diff --git a/src/js/quote-search-popup.js b/src/js/quote-search-popup.js
index d0fff2fc6..4a0570912 100644
--- a/src/js/quote-search-popup.js
+++ b/src/js/quote-search-popup.js
@@ -124,13 +124,6 @@ $("#quoteSearchPopup .searchBox").keydown((e) => {
updateResults(searchText);
}, 0.1); //arbitrarily v. small time as it's only to allow text to input before searching
});
-// //sets quote id to searched quote clicked
-// $("#quoteSearchResults").click((e) => {
-// if ($(e.target).hasClass("quoteSearchButton")) {
-// document.getElementById("inputNumber").value = e.target.getAttribute("id");
-// applyMode2Popup();
-// }
-// });
$("#quoteSearchPopupWrapper").click((e) => {
if ($(e.target).attr("id") === "quoteSearchPopupWrapper") {
diff --git a/src/js/settings.js b/src/js/settings.js
index 5718cafed..7f444183a 100644
--- a/src/js/settings.js
+++ b/src/js/settings.js
@@ -433,7 +433,7 @@ async function fillSettingsPage() {
let fontsEl = $(".pageSettings .section.fontFamily .buttons").empty();
Misc.getFontsList().then((fonts) => {
fonts.forEach((font) => {
- if (Config.fontFamily === font.name) isCustomFont(false);
+ if (Config.fontFamily === font.name) isCustomFont = false;
fontsEl.append(
`
{
+ let prettyLang = language;
+ prettyLang = prettyLang.replace("_", " ");
+ $("#languageList").append(`
+
+ `)
+ })
+ $("#languageList").select2({
+ minimumResultsForSearch: -1,
+ });
+}
+
+function hideWordFilterPopup(){
+ $("#wordFilterPopupWrapper").addClass("hidden");
+ $("#customTextPopupWrapper").removeClass("hidden");
+}
+
+async function applyWordFilterPopup(){
+ let language = $("#languageList").val();
+ let filteredWords = await filter(language);
+ let customText = "";
+ filteredWords.forEach( word => {
+ customText += (word + " ");
+ })
+ hideWordFilterPopup();
+ $("#customTextPopup textarea").val(customText);
+}
+
+$("#wordFilterPopupWrapper").mousedown((e) => {
+ if ($(e.target).attr("id") === "wordFilterPopupWrapper") {
+ hideWordFilterPopup();
+ }
+});
+
+$("#wordFilterPopupWrapper .button").mousedown((e) => {
+ $("#wordFilterPopupWrapper .wfload").removeClass("hidden");
+ $("#wordFilterPopupWrapper .button").addClass("hidden");
+ setTimeout(() => {
+ applyWordFilterPopup();
+ $("#wordFilterPopupWrapper .wfload").addClass("hidden");
+ $("#wordFilterPopupWrapper .button").removeClass("hidden");
+ }, 1)
+});
+
+async function filter(language){
+ let filterin = $("#wordFilter").val();
+ filterin = filterin.trim();
+ filterin = filterin.replace(/ /gi, "|");
+ let regincl = new RegExp(filterin, "i");
+ let filterout = $("#wordExclude").val();
+ filterout = filterout.trim();
+ filterout = filterout.replace(/ /gi, "|");
+ let regexcl = new RegExp(filterout, "i");
+ let filteredWords = [];
+ let languageWordList = await Misc.getLanguage(language);
+ let maxLength = $("#wordMax").val();
+ let minLength = $("#wordMin").val();
+ if(maxLength == ""){
+ maxLength = 999;
+ }
+ if(minLength == ""){
+ minLength = 1;
+ }
+ for( let i = 0; i < languageWordList.words.length; i++){
+ let word = languageWordList.words[i];
+ let test1 = regincl.test(word);
+ let test2 = regexcl.test(word);
+ if((test1 && !test2 || test1 && filterout == "") && word.length <= maxLength && word.length >= minLength){
+ filteredWords.push(word);
+ }
+ }
+ return filteredWords;
+}
\ No newline at end of file
diff --git a/src/sass/style.scss b/src/sass/style.scss
index 088e1958e..e5612617f 100644
--- a/src/sass/style.scss
+++ b/src/sass/style.scss
@@ -117,6 +117,85 @@ html {
overflow-y: scroll;
}
+.select2-dropdown {
+ background-color: var(--bg-color);
+ color: var(--text-color);
+ outline: none;
+}
+
+.select2-selection {
+ background: rgba(0, 0, 0, 0.1);
+ height: fit-content;
+ padding: 5px;
+ border-radius: var(--roundness);
+ color: var(--text-color);
+ font: var(--font);
+ border: none;
+ outline: none;
+}
+
+.select2-container--default .select2-selection--single .select2-selection__rendered {
+ color: var(--text-color);
+ outline: none;
+}
+
+.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
+ background-color: var(--sub-color);
+ color: var(--text-color);
+}
+
+.select2-container--default .select2-results__option--selected {
+ background-color: var(--main-color);
+ color: var(--bg-color);
+}
+
+.select2-container--open .select2-dropdown--below {
+ border-color: rgba(0, 0, 0, 0.1);
+ background: var(--bg-color);
+ color: var(--sub-color);
+ border-radius: var(--roundness);
+}
+
+.select2-container--default .select2-selection--single
+{
+ color: var(--text-color);
+ background: rgba(0, 0, 0, 0.1);
+ outline: none;
+ border: none;
+ height:auto;
+}
+
+.select2-selection:focus{
+ height: fit-content;
+ padding: 5px;
+ border-radius: var(--roundness);
+ color: var(--text-color);
+ font: var(--font);
+ border: none;
+ outline: none;
+}
+.select2-selection:active{
+ height: fit-content;
+ padding: 5px;
+ border-radius: var(--roundness);
+ color: var(--text-color);
+ font: var(--font);
+ border: none;
+ outline: none;
+}
+
+.select2-container--default .select2-selection--single .select2-selection__arrow {
+ height: 35px;
+}
+
+.select2-container--default .select2-selection--single .select2-selection__arrow b {
+ border-color: var(--main-color) transparent transparent transparent;
+}
+
+.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
+ border-color: var(--main-color) transparent;
+}
+
/* width */
::-webkit-scrollbar {
width: 7px;
@@ -512,6 +591,51 @@ a:hover {
}
}
+#wordFilterPopupWrapper{
+ width: 100%;
+ height: 100%;
+ background: rgba(0, 0, 0, 0.75);
+ position: fixed;
+ left: 0;
+ top: 0;
+ z-index: 1000;
+ display: grid;
+ justify-content: center;
+ align-items: center;
+ padding: 5rem 0;
+
+ #wordFilterPopup{
+ background: var(--bg-color);
+ border-radius: var(--roundness);
+ padding: 2rem;
+ display: grid;
+ gap: 1rem;
+ width: 400px;
+
+
+
+ .lengthgrid{
+ display:grid;
+ grid-template-columns: 1fr 1fr;
+ grid-template-rows: 1fr 1fr;
+ gap: 0.2rem;
+ }
+
+ .wordLength{
+ width: 10rem;
+ }
+
+ .wftip{
+ color: var(--sub-color);
+ font-size: 0.8rem;
+ }
+
+ .wfload{
+ justify-self: center;
+ }
+ }
+}
+
#simplePopupWrapper {
width: 100%;
height: 100%;