@@ -56,7 +56,7 @@ <h1>Pixels Visualiser</h1>
5656 < button class ="pill active " data-range ="99999 "> All time</ button >
5757 </ div >
5858
59- < div class ="no-data-error " style =" display: none; " > No data available for the selected range</ div >
59+ < div class ="no-data-error "> No data available for the selected range</ div >
6060
6161 < div id ="stats-content ">
6262 < div class ="stats-grid " id ="statsContainer ">
@@ -119,8 +119,7 @@ <h2>😊 Average score per tag</h2>
119119 < h2 > 🔁 Weekdays average scores</ h2 >
120120 < div class ="options ">
121121 < div class ="option-item ">
122- < label for ="firstDayOfWeekSelect "
123- title ="Which day do you want the week to start on "> First day of the week</ label >
122+ < label for ="firstDayOfWeekSelect " title ="Which day do you want the week to start on "> First day of the week</ label >
124123 < select id ="firstDayOfWeekSelect " class ="select ">
125124 < option value ="1 "> Monday</ option >
126125 < option value ="2 "> Tuesday</ option >
@@ -155,26 +154,71 @@ <h2>📝 Most frequent words</h2>
155154
156155 < div class ="options ">
157156 < div class ="option-item ">
158- < label for =" wordsPercentageCheckbox "
159- title =" Show percentage of appearance among all Pixels instead of raw values " > Show percentages </ label >
160- < input type =" checkbox " id =" wordsPercentageCheckbox " class =" checkbox " >
157+ < button class =" button open-settings " id =" openWordsSettingsDialog " >
158+ < img src =" assets/settings_icon.svg " alt =" Settings " class =" icon-settings " >
159+ </ button >
161160 </ div >
162161
163- < div class ="option-item ">
164- < label for ="wordsOrderCheckbox " title ="Order the words bellow by decreasing score "> Order by score</ label >
165- < input type ="checkbox " id ="wordsOrderCheckbox " class ="checkbox ">
166- </ div >
162+ < dialog id ="dialogWordsSettings " class ="div-dialog-settings ">
163+ < div class ="dialog-settings ">
164+
165+ < h3 > Words settings</ h3 >
166+
167+ < div class ="dialog-settings-group ">
168+ < label for ="wordsPercentageCheckbox " title ="Show percentage of appearance among all Pixels instead of raw values "> Show percentages</ label >
169+ < input type ="checkbox " id ="wordsPercentageCheckbox " class ="checkbox ">
170+
171+ < label for ="wordsOrderCheckbox " title ="Order the words bellow by decreasing score "> Order by score</ label >
172+ < input type ="checkbox " id ="wordsOrderCheckbox " class ="checkbox ">
173+
174+ < label for ="minCountInput " title ="Minimum number of time this words appears in your Pixels "> Minimum count</ label >
175+ < input type ="number " id ="minCountInput " class ="input-nb " min ="1 " value ="10 ">
176+
177+ < label for ="excludeStopwordsCheckbox " title ="Choose which words you want to exclude from the word list "> Customise stopwords</ label >
178+ < button class ="button " id ="openStopwordsSettingsDialog "> Stopwords</ button >
179+ </ div >
180+
181+ < div class ="dialog-buttons ">
182+ < button type ="submit " class ="button button-tertiary " id ="saveWordsSettingsDialog "> Save</ button >
183+ </ div >
184+ </ div >
185+ </ dialog >
186+
187+ < dialog id ="dialogStopwordsSettings " class ="div-dialog-settings ">
188+ < div class ="dialog-settings ">
189+
190+ < h3 > Stopwords settings</ h3 >
191+
192+ < div class ="dialog-settings-group ">
193+
194+ < label for ="stopwordsLanguageSelect " title ="Which language do you want the stopwords to be in? "> Stopwords language</ label >
195+ < select id ="stopwordsLanguageSelect " class ="select ">
196+ < option value ="no "> Don't use</ option >
197+ < option value ="en "> English</ option >
198+ < option value ="fr "> French</ option >
199+ < option value ="es "> Spanish</ option >
200+ < option value ="ge "> German</ option >
201+ < option value ="it "> Italian</ option >
202+ </ select >
203+
204+ < label for ="defaultStopwordsTextarea " title ="Words that are excluded for this language, you can delete some "> Default stopwords</ label >
205+ < textarea id ="defaultStopwordsTextarea " class ="textarea long " rows ="4 " placeholder ="One word per line "> </ textarea >
206+
207+ < label for ="customStopwordsTextarea " title ="Choose personnal words you want to exclude "> Custom stopwords</ label >
208+ < textarea id ="customStopwordsTextarea " class ="textarea " rows ="4 " placeholder ="Enter one word per line "> </ textarea >
209+ </ div >
210+
211+ < div class ="dialog-buttons ">
212+ < button type ="submit " class ="button button-tertiary " id ="saveStopwordsSettingsDialog "> Save</ button >
213+ </ div >
214+ </ div >
215+ </ dialog >
167216
168217 < div class ="option-item ">
169218 < label for ="maxWordsInput " title ="Number of words to display "> Number of words</ label >
170219 < input type ="number " id ="maxWordsInput " class ="input-nb " min ="1 " value ="20 ">
171220 </ div >
172221
173- < div class ="option-item ">
174- < label for ="minCountInput " title ="Minimum number of time this words appears in your Pixels "> Minimum count</ label >
175- < input type ="number " id ="minCountInput " class ="input-nb " min ="1 " value ="10 ">
176- </ div >
177-
178222 < div class ="option-item ">
179223 < label for ="minScoreSlider " title ="Only count words appearing in a Pixel with a score above the defined threshold "> Min score: < span id ="minScoreValue "> 1</ span > </ label >
180224 < input type ="range " id ="minScoreSlider " class ="range-slider " min ="10 " max ="50 " value ="10 ">
@@ -208,11 +252,11 @@ <h2>📝 Most frequent words</h2>
208252 </ div >
209253
210254 < div class ="chart-container " id ="pixelGridExportContainer ">
211- < h2 > 🖼️ Export Pixel Grid </ h2 >
255+ < h2 > 🖼️ Export Pixels image </ h2 >
212256
213257 < div class ="options grid-options ">
214258 < div class ="option-item ">
215- < button class ="button " id ="openSettingsDialog ">
259+ < button class ="button open-settings " id ="openImageSettingsDialog ">
216260 < img src ="assets/settings_icon.svg " alt ="Settings " class ="icon-settings ">
217261 </ button >
218262 </ div >
@@ -236,7 +280,7 @@ <h2>🖼️ Export Pixel Grid</h2>
236280 </ select >
237281 </ div >
238282
239- < dialog id ="dialogSettings ">
283+ < dialog id ="dialogSettings " class =" div-dialog-settings " >
240284 < div class ="dialog-settings ">
241285
242286 < h3 > Image settings</ h3 >
@@ -298,7 +342,7 @@ <h3>Image settings</h3>
298342 </ div >
299343
300344 < div class ="chart-container ">
301- < h2 > 📅 Search Pixel by Date </ h2 >
345+ < h2 > 📅 Search Pixels by date </ h2 >
302346
303347 < div class ="options ">
304348 < div class ="option-item ">
@@ -323,8 +367,8 @@ <h2>📅 Search Pixel by Date</h2>
323367 < img src ="assets/pixels_memories_logo.png " alt ="Pixels Memories ">
324368 </ a >
325369 </ div >
326- < div class ="version "> Version: v1.2.2 </ div >
327- < div class ="version "> Last update: 2025-06-23 </ div >
370+ < div class ="version "> Version: v1.2.3 </ div >
371+ < div class ="version "> Last update: 2025-06-27 </ div >
328372 </ footer >
329373
330374 <!-- Charts.js -->
@@ -336,11 +380,11 @@ <h2>📅 Search Pixel by Date</h2>
336380 < script src ="https://cdnjs.cloudflare.com/ajax/libs/wordcloud2.js/1.1.2/wordcloud2.min.js "> </ script >
337381
338382 < script src ="scripts/utils.js "> </ script >
383+ < script src ="scripts/stopwords.js "> </ script >
339384 < script src ="scripts/main.js "> </ script >
340385 < script src ="scripts/card.js "> </ script >
341386 < script src ="scripts/graphs.js "> </ script >
342387 < script src ="scripts/statistics.js "> </ script >
343- < script src ="scripts/stopwords.js "> </ script >
344388 < script src ="scripts/png.js "> </ script >
345389 < script src ="scripts/storage.js "> </ script >
346390</ body >
0 commit comments