Compare commits

...

2 Commits

Author SHA1 Message Date
Augusto Gunsch 4c45fba5f6 Fix missing tables 2023-03-16 08:58:12 +01:00
Augusto Gunsch 77bc2f9b41 Fix content type 2023-03-14 10:06:08 +01:00
3 changed files with 728 additions and 484 deletions

1191
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -12,15 +12,15 @@ use crate::language::Language;
use crate::FRONTEND_DIR;
#[get("/")]
pub fn frontend() -> content::Html<String> {
pub fn frontend() -> content::RawHtml<String> {
match fs::read_to_string(&format!("{}/{}", FRONTEND_DIR, "index.html")) {
Ok(file) => content::Html(file),
Err(_) => content::Html(String::from("<h1>No web frontend installed.</h1>"))
Ok(file) => content::RawHtml(file),
Err(_) => content::RawHtml(String::from("<h1>No web frontend installed.</h1>"))
}
}
#[get("/langs/<lang>/words/<word>")]
pub fn get_entries(db: &State<WordDb>, lang: &str, word: &str) -> status::Custom<content::Json<String>> {
pub fn get_entries(db: &State<WordDb>, lang: &str, word: &str) -> status::Custom<content::RawJson<String>> {
let conn = db.connect();
let mut statement = conn.prepare(&format!(
@ -46,7 +46,7 @@ pub fn get_entries(db: &State<WordDb>, lang: &str, word: &str) -> status::Custom
}
words.push(']');
status::Custom(Status::Ok, content::Json(words))
status::Custom(Status::Ok, content::RawJson(words))
}
#[get("/langs/<lang>/words?<like>&<limit>&<offset>")]

View File

@ -184,7 +184,12 @@ $(document).ready(() => {
html += `<h1>Not found: <mark>${decodeURIComponent(word)}</mark></h1>`;
} else {
data.forEach(entry => {
html += `<h1>${entry.word} <span class="pos">${entry.sounds[0].ipa} (${entry.pos})</span></h1>`
html += `<h1>${entry.word} <span class="pos">(${entry.pos})</span></h1>`
if('sounds' in entry) {
html += `<p>${entry.sounds.map(sound => sound.ipa).join(', ')}</p>`;
}
if('senses' in entry) {
let tags = [];
entry.senses.forEach(sense => {
@ -228,7 +233,7 @@ $(document).ready(() => {
if('forms' in entry) {
if(entry.pos === 'verb') {
let conjugation = entry.forms.filter(form =>
'source' in form && form.source === 'Conjugation');
'source' in form && form.source === 'conjugation');
if(conjugation.length > 0) {
html += '<h2>Conjugation</h2>';
@ -237,7 +242,7 @@ $(document).ready(() => {
}
} else {
let declension = entry.forms.filter(form =>
'source' in form && form.source === 'Declension');
'source' in form && form.source === 'declension');
if(declension.length > 0) {
html += '<h2>Declension</h2>';