From 91a59677278fb9fd9ff55a882453e98e22de661f Mon Sep 17 00:00:00 2001 From: Robbie Antenesse Date: Wed, 10 Jul 2019 15:11:46 -0600 Subject: [PATCH] Add new features to offline and view --- offline.html | 32 +++++++++++++++++++++++++++----- src/js/view/render.js | 21 +++++++++++++-------- src/js/view/search.js | 11 +++++++++-- template-view.html | 3 +++ 4 files changed, 52 insertions(+), 15 deletions(-) diff --git a/offline.html b/offline.html index 2e05cd1..1aa910f 100644 --- a/offline.html +++ b/offline.html @@ -13,7 +13,7 @@ - + @@ -26,13 +26,13 @@ - +
- + @@ -81,6 +81,9 @@ +
@@ -241,9 +244,11 @@
Maximize
@@ -254,8 +259,12 @@ -
+

Phonotactics

@@ -309,6 +321,13 @@

Orthography

+ @@ -345,6 +364,9 @@ +
' : ''; - const orthographyHTML = translations.length > 0 && orthographyNotesHTML.length > 0 + const orthographyHTML = translations.length + orthographyNotesHTML.length > 0 ? `

Orthography

- ${translations.length > 0 ? translationsHTML : ''} + ${translationsHTML} ${orthographyNotesHTML}` : ''; - const grammarHTML = '

Grammar

' + md(removeTags(grammar.notes)) + '
'; + const grammarHTML = grammar.notes.trim().length > 0 ? '

Grammar

' + + (grammar.notes.trim().length > 0 ? md(removeTags(grammar.notes)) : '') + + '
' : ''; detailsPanel.innerHTML = generalHTML + phonologyHTML + phonotacticsHTML + orthographyHTML + grammarHTML; } diff --git a/src/js/view/search.js b/src/js/view/search.js index b0073ef..c3637b1 100644 --- a/src/js/view/search.js +++ b/src/js/view/search.js @@ -22,6 +22,7 @@ export function getSearchFilters() { caseSensitive: document.getElementById('searchCaseSensitive').checked, ignoreDiacritics: document.getElementById('searchIgnoreDiacritics').checked, exact: document.getElementById('searchExactWords').checked, + orthography: document.getElementById('searchOrthography').checked, name: document.getElementById('searchIncludeName').checked, definition: document.getElementById('searchIncludeDefinition').checked, details: document.getElementById('searchIncludeDetails').checked, @@ -53,11 +54,13 @@ export function getMatchingSearchWords() { }).filter(word => { searchTerm = filters.ignoreDiacritics ? removeDiacritics(searchTerm) : searchTerm; searchTerm = filters.caseSensitive ? searchTerm : searchTerm.toLowerCase(); - let name = filters.ignoreDiacritics ? removeDiacritics(word.name) : word.name; + let name = filters.orthography ? translateOrthography(word.name) : word.name; + name = filters.ignoreDiacritics ? removeDiacritics(name) : name; name = filters.caseSensitive ? name : name.toLowerCase(); let definition = filters.ignoreDiacritics ? removeDiacritics(word.definition) : word.definition; definition = filters.caseSensitive ? definition : definition.toLowerCase(); - let details = filters.ignoreDiacritics ? removeDiacritics(word.details) : word.details; + let details = filters.orthography ? parseReferences(word.details) : word.details; + details = filters.ignoreDiacritics ? removeDiacritics(details) : details; details = filters.caseSensitive ? details : details.toLowerCase(); const isInName = filters.name && (filters.exact @@ -80,6 +83,10 @@ export function highlightSearchTerm(word) { if (searchTerm) { const filters = getSearchFilters(); const markedUpWord = cloneObject(word); + if (filters.orthography) { + markedUpWord.name = translateOrthography(markedUpWord.name); + markedUpWord.details = parseReferences(markedUpWord.details); + } if (filters.ignoreDiacritics) { const searchTermLength = searchTerm.length; searchTerm = removeDiacritics(searchTerm); diff --git a/template-view.html b/template-view.html index 7b9fe82..c5183dc 100644 --- a/template-view.html +++ b/template-view.html @@ -81,6 +81,9 @@ +