fix: page styling, search page

This commit is contained in:
Sheldon Cooper 2026-01-17 15:46:49 -05:00
parent ee8ac6fd85
commit 2db955bd7b
8 changed files with 54 additions and 34 deletions

View file

@ -59,17 +59,13 @@ function initExpress() {
await Lemma.find({ relations: { word_forms: { lect: true } } })
).filter((e) => {
for (const wf of e.word_forms) {
if (wf.word_form.includes(search_term)) {
return true;
}
return wf.word_form.includes(search_term);
}
});
const lects = await Lect.find();
res.status(200).send({
terms: lemmas.length,
results: lemmas,
lects: lects,
results: lemmas
});
});
@ -101,6 +97,8 @@ function initExpress() {
});
}
//todo: redo this without using google sheets; instead, use a local CSV or like.
/**
* @param auth The authenticated Google OAuth client.
*/

View file

@ -1,5 +1,5 @@
<!doctype html>
<html lang="en" class="has-background-black has-navbar-fixed-top">
<html lang="en" class="has-navbar-fixed-top">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/viossa_circle.svg"/>

View file

@ -56,7 +56,7 @@ const closeBurger = (): void => {
<RouterLink class="navbar-item" to="/kotoba">
Kotoba
</RouterLink>
<LocalePicker />
<LocalePicker class="navbar-item"/>
</div>
</div>
</nav>

View file

@ -13,7 +13,7 @@ defineProps<{
<template v-if="reverse">
<div class="column">
<h2 class="title is-4">{{ title }}</h2>
<p class="has-text-white">{{ text }}</p>
<p>{{ text }}</p>
</div>
<div class="column is-one-quarter" v-if="image">
<figure class="image">
@ -30,7 +30,7 @@ defineProps<{
</div>
<div class="column">
<h2 class="title is-4">{{ title }}</h2>
<p class="has-text-white">{{ text }}</p>
<p>{{ text }}</p>
</div>
</template>
</div>

View file

@ -5,13 +5,13 @@
</section>
<section class="section container">
<input type="text" name="text" id="aaa">
<p class="notification">
under construction :3
</p>
</section>
</div>
</template>
<!-- -->
<script setup lang="ts">
<script lang="ts">
</script>

View file

@ -0,0 +1,12 @@
import axios from "axios";
import SERVER_URL from "./web.service"
import type { SearchResult } from "@repo/common/dto";
export default class KotobaService {
public static search(search_term:string){
return axios.get<SearchResult>(`${SERVER_URL}/search`,
{params:{ search_term }});
}
}

View file

@ -0,0 +1,4 @@
/* Establish constants here */
export default class WebConstants {
static SERVER_URL: string = "http://localhost:1225"
}

View file

@ -1,51 +1,57 @@
export interface SearchResult {
terms: number;
results: LemmaDto[];
lects: LectDto[];
}
export interface LemmaDto {
lemma_name: string;
word_forms: WordFormDto[];
examples: ExampleDto[];
definitions: DefinitionDto[];
comments: CommentDto[];
media: MediaDto[];
lemma_name: string;
word_forms: WordFormDto[];
examples: ExampleDto[];
definitions: DefinitionDto[];
comments: CommentDto[];
media: MediaDto[];
parts_of_speech: PartOfSpeechDto[];
}
export interface LectDto {
name: string;
name: string;
word_forms: WordFormDto[];
}
export interface WordFormDto {
word_form_id: number;
word_form: string;
lemma: LemmaDto;
word_form_id: number;
word_form: string;
lemma: LemmaDto;
lect: LectDto;
}
export interface ExampleDto {
example_id: number;
example_text: string;
example_id: number;
example_text: string;
lemma: LemmaDto;
}
export interface MediaDto {
media_id: number;
media_url: string;
media_id: number;
media_url: string;
lemma: LemmaDto;
}
export interface DefinitionDto {
definition_id: number;
definition_text: string;
definition_id: number;
definition_text: string;
lemma: LemmaDto;
}
export interface CommentDto {
comment_id: number;
comment_text: string;
comment_id: number;
comment_text: string;
lemma: LemmaDto;
}
export interface PartOfSpeechDto {
long_form: string;
long_form: string;
short_form: string;
}