Compare commits

...

8 Commits

Author SHA1 Message Date
Alicia Sykes 40e242269d
Merge 3416615d30 into 382f8f3ec0 2024-04-27 01:01:56 +01:00
Alicia Sykes 3416615d30 Merge branch 'FEAT/3.0.1-improvements' of github.com:lissy93/dashy into FEAT/3.0.1-improvements 2024-04-27 01:01:48 +01:00
Alicia Sykes db63362327 💬 Translate critical error text, and update styles 2024-04-27 00:45:30 +01:00
Alicia Sykes 9e6fb17d93 🥅 Catch error caused by empty config 2024-04-27 00:32:01 +01:00
Alicia Sykes 4594c99b57 🐛 Fix collapse state persistence (#1546) 2024-04-26 00:29:35 +01:00
Alicia Bot 382f8f3ec0 💙 Updates contributor SVG 2024-04-21 02:26:38 +01:00
liss-bot 1e72debe5f 💛 Updates sponsors table 2024-04-21 02:26:32 +01:00
liss-bot 54a00ee099 💜 Updates contributors list 2024-04-21 02:26:30 +01:00
12 changed files with 334 additions and 258 deletions

View File

@ -539,13 +539,6 @@ Huge thanks to the sponsors helping to support Dashy's development!
<sub><b>Aaron Viehl</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/peng1can">
<img src="https://avatars.githubusercontent.com/u/225854?v=4" width="80;" alt="peng1can"/>
<br />
<sub><b>Peng1can</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/tbjers">
<img src="https://avatars.githubusercontent.com/u/1117052?v=4" width="80;" alt="tbjers"/>
@ -566,8 +559,7 @@ Huge thanks to the sponsors helping to support Dashy's development!
<br />
<sub><b>Anand Chowdhary</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/shrippen">
<img src="https://avatars.githubusercontent.com/u/2873570?v=4" width="80;" alt="shrippen"/>
@ -608,17 +600,17 @@ Huge thanks to the sponsors helping to support Dashy's development!
<a href="https://github.com/araguaci">
<img src="https://avatars.githubusercontent.com/u/7318668?v=4" width="80;" alt="araguaci"/>
<br />
<sub><b>araguaci</b></sub>
<sub><b>Araguaci</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/bmcgonag">
<img src="https://avatars.githubusercontent.com/u/7346620?u=2a0f9284f3e12ac1cc15288c254d1ec68a5081e8&v=4" width="80;" alt="bmcgonag"/>
<br />
<sub><b>Brian McGonagill</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/vlad-timofeev">
<img src="https://avatars.githubusercontent.com/u/11474041?u=eee43705b54d2ec9f51fc4fcce5ad18dd17c87e4&v=4" width="80;" alt="vlad-timofeev"/>
@ -635,7 +627,7 @@ Huge thanks to the sponsors helping to support Dashy's development!
</td>
<td align="center">
<a href="https://github.com/patvdv">
<img src="https://avatars.githubusercontent.com/u/12430107?v=4" width="80;" alt="patvdv"/>
<img src="https://avatars.githubusercontent.com/u/12430107?u=e8911c2fb91af4d30432f76da8c40927b2830bd7&v=4" width="80;" alt="patvdv"/>
<br />
<sub><b>Patrick Van Der Veken</b></sub>
</a>
@ -647,6 +639,13 @@ Huge thanks to the sponsors helping to support Dashy's development!
<sub><b>Göksel Yeşiller</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/allesauseinerhand">
<img src="https://avatars.githubusercontent.com/u/32039836?v=4" width="80;" alt="allesauseinerhand"/>
<br />
<sub><b>allesauseinerhand</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/undefined">
<img src="" width="80;" alt="undefined"/>
@ -655,6 +654,13 @@ Huge thanks to the sponsors helping to support Dashy's development!
</a>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/lamtrinhdev">
<img src="https://avatars.githubusercontent.com/u/49742151?v=4" width="80;" alt="lamtrinhdev"/>
<br />
<sub><b>LamTrinh.Dev</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Bastii717">
<img src="https://avatars.githubusercontent.com/u/53431819?u=604977bed6ad6875ada890d0d3765a4cacc2fa14&v=4" width="80;" alt="Bastii717"/>

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 29 MiB

After

Width:  |  Height:  |  Size: 30 MiB

View File

@ -18,13 +18,6 @@
<sub><b>Aaron Viehl</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/peng1can">
<img src="https://avatars.githubusercontent.com/u/225854?v=4" width="80;" alt="peng1can"/>
<br />
<sub><b>Null</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/tbjers">
<img src="https://avatars.githubusercontent.com/u/1117052?v=4" width="80;" alt="tbjers"/>
@ -45,15 +38,15 @@
<br />
<sub><b>Anand Chowdhary</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/shrippen">
<img src="https://avatars.githubusercontent.com/u/2873570?v=4" width="80;" alt="shrippen"/>
<br />
<sub><b>Null</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/bile0026">
<img src="https://avatars.githubusercontent.com/u/5022496?u=aec96ad173c0ea9baaba93807efa8a848af6595c&v=4" width="80;" alt="bile0026"/>
@ -88,15 +81,15 @@
<br />
<sub><b>Null</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/bmcgonag">
<img src="https://avatars.githubusercontent.com/u/7346620?u=2a0f9284f3e12ac1cc15288c254d1ec68a5081e8&v=4" width="80;" alt="bmcgonag"/>
<br />
<sub><b>Brian McGonagill</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/vlad-timofeev">
<img src="https://avatars.githubusercontent.com/u/11474041?u=eee43705b54d2ec9f51fc4fcce5ad18dd17c87e4&v=4" width="80;" alt="vlad-timofeev"/>
@ -113,7 +106,7 @@
</td>
<td align="center">
<a href="https://github.com/patvdv">
<img src="https://avatars.githubusercontent.com/u/12430107?v=4" width="80;" alt="patvdv"/>
<img src="https://avatars.githubusercontent.com/u/12430107?u=e8911c2fb91af4d30432f76da8c40927b2830bd7&v=4" width="80;" alt="patvdv"/>
<br />
<sub><b>Patrick Van Der Veken</b></sub>
</a>
@ -125,6 +118,13 @@
<sub><b>Göksel Yeşiller</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/allesauseinerhand">
<img src="https://avatars.githubusercontent.com/u/32039836?v=4" width="80;" alt="allesauseinerhand"/>
<br />
<sub><b>Null</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/forwardemail">
<img src="https://avatars.githubusercontent.com/u/32481436?v=4" width="80;" alt="forwardemail"/>
@ -133,6 +133,13 @@
</a>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/lamtrinhdev">
<img src="https://avatars.githubusercontent.com/u/49742151?v=4" width="80;" alt="lamtrinhdev"/>
<br />
<sub><b>LamTrinh.Dev</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Bastii717">
<img src="https://avatars.githubusercontent.com/u/53431819?u=604977bed6ad6875ada890d0d3765a4cacc2fa14&v=4" width="80;" alt="Bastii717"/>
@ -167,7 +174,8 @@
<br />
<sub><b>Nixy</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/nrvo">
<img src="https://avatars.githubusercontent.com/u/151435968?u=e1dcb307fd0efdc45cddbe9490a7b956e4da6835&v=4" width="80;" alt="nrvo"/>
@ -347,18 +355,18 @@
</a>
</td>
<td align="center">
<a href="https://github.com/aviolaris">
<img src="https://avatars.githubusercontent.com/u/48277853?v=4" width="80;" alt="aviolaris"/>
<a href="https://github.com/toddejohnson">
<img src="https://avatars.githubusercontent.com/u/507545?v=4" width="80;" alt="toddejohnson"/>
<br />
<sub><b>Andreas Violaris</b></sub>
<sub><b>Todd Johnson</b></sub>
</a>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/Tracreed">
<img src="https://avatars.githubusercontent.com/u/6306365?v=4" width="80;" alt="Tracreed"/>
<a href="https://github.com/remygrandin">
<img src="https://avatars.githubusercontent.com/u/1934515?v=4" width="80;" alt="remygrandin"/>
<br />
<sub><b>David Alasow</b></sub>
<sub><b>Remygrandin</b></sub>
</a>
</td>
<td align="center">
@ -369,46 +377,39 @@
</a>
</td>
<td align="center">
<a href="https://github.com/remygrandin">
<img src="https://avatars.githubusercontent.com/u/1934515?v=4" width="80;" alt="remygrandin"/>
<a href="https://github.com/Tracreed">
<img src="https://avatars.githubusercontent.com/u/6306365?v=4" width="80;" alt="Tracreed"/>
<br />
<sub><b>Remygrandin</b></sub>
<sub><b>David Alasow</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/alucarddelta">
<img src="https://avatars.githubusercontent.com/u/20882097?v=4" width="80;" alt="alucarddelta"/>
<a href="https://github.com/aviolaris">
<img src="https://avatars.githubusercontent.com/u/48277853?v=4" width="80;" alt="aviolaris"/>
<br />
<sub><b>Brent</b></sub>
<sub><b>Andreas Violaris</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/berksmbl">
<img src="https://avatars.githubusercontent.com/u/10000339?v=4" width="80;" alt="berksmbl"/>
<a href="https://github.com/rubenandre">
<img src="https://avatars.githubusercontent.com/u/9402773?v=4" width="80;" alt="rubenandre"/>
<br />
<sub><b>Berk Sümbül</b></sub>
<sub><b>Rúben Silva</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Tuzi555">
<img src="https://avatars.githubusercontent.com/u/62188066?v=4" width="80;" alt="Tuzi555"/>
<a href="https://github.com/rtm516">
<img src="https://avatars.githubusercontent.com/u/5401186?v=4" width="80;" alt="rtm516"/>
<br />
<sub><b>Jakub Tuzar</b></sub>
<sub><b>Rtm516</b></sub>
</a>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/Bogyie">
<img src="https://avatars.githubusercontent.com/u/82003678?v=4" width="80;" alt="Bogyie"/>
<a href="https://github.com/zcq100">
<img src="https://avatars.githubusercontent.com/u/425234?v=4" width="80;" alt="zcq100"/>
<br />
<sub><b>Bogyeong Kim</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/stanly0726">
<img src="https://avatars.githubusercontent.com/u/37040069?v=4" width="80;" alt="stanly0726"/>
<br />
<sub><b>Stanly0726</b></sub>
<sub><b>Null</b></sub>
</a>
</td>
<td align="center">
@ -419,27 +420,41 @@
</a>
</td>
<td align="center">
<a href="https://github.com/zcq100">
<img src="https://avatars.githubusercontent.com/u/425234?v=4" width="80;" alt="zcq100"/>
<a href="https://github.com/stanly0726">
<img src="https://avatars.githubusercontent.com/u/37040069?v=4" width="80;" alt="stanly0726"/>
<br />
<sub><b>Null</b></sub>
<sub><b>Stanly0726</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/rtm516">
<img src="https://avatars.githubusercontent.com/u/5401186?v=4" width="80;" alt="rtm516"/>
<a href="https://github.com/Bogyie">
<img src="https://avatars.githubusercontent.com/u/82003678?v=4" width="80;" alt="Bogyie"/>
<br />
<sub><b>Rtm516</b></sub>
<sub><b>Bogyeong Kim</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/rubenandre">
<img src="https://avatars.githubusercontent.com/u/9402773?v=4" width="80;" alt="rubenandre"/>
<a href="https://github.com/Tuzi555">
<img src="https://avatars.githubusercontent.com/u/62188066?v=4" width="80;" alt="Tuzi555"/>
<br />
<sub><b>Rúben Silva</b></sub>
<sub><b>Jakub Tuzar</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/berksmbl">
<img src="https://avatars.githubusercontent.com/u/10000339?v=4" width="80;" alt="berksmbl"/>
<br />
<sub><b>Berk Sümbül</b></sub>
</a>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/alucarddelta">
<img src="https://avatars.githubusercontent.com/u/20882097?v=4" width="80;" alt="alucarddelta"/>
<br />
<sub><b>Brent</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/k073l">
<img src="https://avatars.githubusercontent.com/u/21180271?v=4" width="80;" alt="k073l"/>
@ -474,6 +489,21 @@
<br />
<sub><b>Denis Kazimirov</b></sub>
</a>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/zigotica">
<img src="https://avatars.githubusercontent.com/u/178855?v=4" width="80;" alt="zigotica"/>
<br />
<sub><b>Sergi Meseguer</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/BySempron">
<img src="https://avatars.githubusercontent.com/u/15928132?v=4" width="80;" alt="BySempron"/>
<br />
<sub><b>Sergio</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/ssrangisetti">
@ -481,14 +511,6 @@
<br />
<sub><b>Null</b></sub>
</a>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/BySempron">
<img src="https://avatars.githubusercontent.com/u/15928132?v=4" width="80;" alt="BySempron"/>
<br />
<sub><b>Sergio</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/itsmejoeeey">
@ -510,7 +532,8 @@
<br />
<sub><b>Thomas Wienecke</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/deneor">
<img src="https://avatars.githubusercontent.com/u/1063265?v=4" width="80;" alt="deneor"/>
@ -524,8 +547,7 @@
<br />
<sub><b>Dan Gilbert</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/moemoeq">
<img src="https://avatars.githubusercontent.com/u/1808434?v=4" width="80;" alt="moemoeq"/>
@ -547,19 +569,20 @@
<sub><b>Alexander Mnich</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/alayham">
<img src="https://avatars.githubusercontent.com/u/518776?v=4" width="80;" alt="alayham"/>
<br />
<sub><b>Al-Ayham Saleh</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/alexdelprete">
<img src="https://avatars.githubusercontent.com/u/7027842?v=4" width="80;" alt="alexdelprete"/>
<br />
<sub><b>Alessandro Del Prete</b></sub>
</a>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/alayham">
<img src="https://avatars.githubusercontent.com/u/518776?v=4" width="80;" alt="alayham"/>
<br />
<sub><b>Al-Ayham Saleh</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/sachahjkl">
@ -567,8 +590,7 @@
<br />
<sub><b>Sacha</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/shazzx">
<img src="https://avatars.githubusercontent.com/u/131521332?v=4" width="80;" alt="shazzx"/>
@ -596,7 +618,8 @@
<br />
<sub><b>Null</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/stavros-k">
<img src="https://avatars.githubusercontent.com/u/47820033?v=4" width="80;" alt="stavros-k"/>
@ -610,8 +633,7 @@
<br />
<sub><b>Steffen Schmidt</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/StevKast">
<img src="https://avatars.githubusercontent.com/u/17804308?v=4" width="80;" alt="StevKast"/>
@ -639,7 +661,8 @@
<br />
<sub><b>Null</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/PrynsTag">
<img src="https://avatars.githubusercontent.com/u/56314705?v=4" width="80;" alt="PrynsTag"/>
@ -653,8 +676,7 @@
<br />
<sub><b>Andrey</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/oka4shi">
<img src="https://avatars.githubusercontent.com/u/67847553?v=4" width="80;" alt="oka4shi"/>
@ -682,7 +704,8 @@
<br />
<sub><b>Mert Sefa AKGUN</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/ethan-hann">
<img src="https://avatars.githubusercontent.com/u/36464732?v=4" width="80;" alt="ethan-hann"/>
@ -696,8 +719,7 @@
<br />
<sub><b>Null</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/sur1v">
<img src="https://avatars.githubusercontent.com/u/19678230?v=4" width="80;" alt="sur1v"/>
@ -725,7 +747,8 @@
<br />
<sub><b>Mark Oude Elberink</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/lxjv">
<img src="https://avatars.githubusercontent.com/u/63261955?v=4" width="80;" alt="lxjv"/>
@ -739,8 +762,7 @@
<br />
<sub><b>Kxenox</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/jrobles98">
<img src="https://avatars.githubusercontent.com/u/30221842?v=4" width="80;" alt="jrobles98"/>
@ -768,7 +790,8 @@
<br />
<sub><b>Aniket Teredesai</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/huangshaohuai">
<img src="https://avatars.githubusercontent.com/u/24775925?v=4" width="80;" alt="huangshaohuai"/>
@ -782,8 +805,7 @@
<br />
<sub><b>Null</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/dr460nf1r3">
<img src="https://avatars.githubusercontent.com/u/12834713?v=4" width="80;" alt="dr460nf1r3"/>
@ -811,7 +833,8 @@
<br />
<sub><b>Xert</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/emiran-orange">
<img src="https://avatars.githubusercontent.com/u/71817149?v=4" width="80;" alt="emiran-orange"/>
@ -825,8 +848,7 @@
<br />
<sub><b>Eduardo Gomez</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/Dylan-Bs">
<img src="https://avatars.githubusercontent.com/u/35694107?v=4" width="80;" alt="Dylan-Bs"/>
@ -854,7 +876,8 @@
<br />
<sub><b>DeepSource Bot</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/DawidPietrykowski">
<img src="https://avatars.githubusercontent.com/u/53954695?v=4" width="80;" alt="DawidPietrykowski"/>
@ -868,8 +891,7 @@
<br />
<sub><b>David</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/clsty">
<img src="https://avatars.githubusercontent.com/u/129247596?v=4" width="80;" alt="clsty"/>
@ -897,7 +919,8 @@
<br />
<sub><b>Begin</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/BRAVO68WEB">
<img src="https://avatars.githubusercontent.com/u/41448663?v=4" width="80;" alt="BRAVO68WEB"/>
@ -911,8 +934,7 @@
<br />
<sub><b>Artyom</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/alydemah">
<img src="https://avatars.githubusercontent.com/u/652035?v=4" width="80;" alt="alydemah"/>
@ -940,7 +962,8 @@
<br />
<sub><b>Maxime Moreillon</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/Glitch3dPenguin">
<img src="https://avatars.githubusercontent.com/u/3271160?v=4" width="80;" alt="Glitch3dPenguin"/>
@ -954,8 +977,7 @@
<br />
<sub><b>Markus Krause</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/asenov">
<img src="https://avatars.githubusercontent.com/u/280619?v=4" width="80;" alt="asenov"/>
@ -983,7 +1005,8 @@
<br />
<sub><b>Kieren Connell</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/kieraneglin">
<img src="https://avatars.githubusercontent.com/u/569917?v=4" width="80;" alt="kieraneglin"/>
@ -997,8 +1020,7 @@
<br />
<sub><b>Jeremy Chauvin</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/Hellhium">
<img src="https://avatars.githubusercontent.com/u/11504877?v=4" width="80;" alt="Hellhium"/>
@ -1026,7 +1048,8 @@
<br />
<sub><b>Iaroslav Dronskii</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/nealian">
<img src="https://avatars.githubusercontent.com/u/865115?v=4" width="80;" alt="nealian"/>
@ -1040,8 +1063,7 @@
<br />
<sub><b>Hendrik Strydom</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/hubortje">
<img src="https://avatars.githubusercontent.com/u/62364169?v=4" width="80;" alt="hubortje"/>

View File

@ -312,6 +312,14 @@
"view-title": "View Config"
}
},
"critical-error": {
"title": "Configuration Load Error",
"subtitle": "Dashy has failed to load correctly due to a configuration error.",
"sub-ensure-that": "Ensure that",
"sub-error-details": "Error Details",
"sub-next-steps": "Next Steps",
"ignore-button": "Ignore Critical Errors"
},
"widgets": {
"general": {
"loading": "Loading...",

View File

@ -116,7 +116,8 @@ export default {
},
mounted() {
const jsonData = { ...this.config };
jsonData.sections = jsonData.sections.map(({ filteredItems, ...section }) => section);
jsonData.sections = (jsonData.sections || []).map(({ filteredItems, ...section }) => section);
if (!jsonData.pageInfo) jsonData.pageInfo = { title: 'Dashy' };
this.jsonData = jsonData;
if (!this.allowWriteToDisk) this.saveMode = 'local';
},

View File

@ -64,7 +64,6 @@ export default {
return this.$store.state.editMode;
},
sectionKey() {
if (this.isEditMode) return undefined;
return `collapsible-${this.uniqueKey}`;
},
collapseClass() {
@ -104,12 +103,23 @@ export default {
watch: {
checkboxState(newState) {
this.isExpanded = newState;
this.updateLocalStorage(); // Save every change immediately
},
uniqueKey() {
this.checkboxState = this.isExpanded;
uniqueKey(newVal, oldVal) {
if (newVal !== oldVal) {
this.refreshCollapseState(); // Refresh state when key changes
}
},
},
methods: {
refreshCollapseState() {
this.checkboxState = this.isExpanded;
},
updateLocalStorage() {
const collapseState = this.locallyStoredCollapseStates();
collapseState[this.uniqueKey] = this.checkboxState;
localStorage.setItem(localStorageKeys.COLLAPSE_STATE, JSON.stringify(collapseState));
},
/* Either expand or collapse section, based on it's current state */
toggle() {
this.checkboxState = !this.checkboxState;

View File

@ -1,19 +1,17 @@
<template>
<div class="critical-error-wrap" v-if="shouldShow">
<button class="close" title="Close Warning" @click="close">🗙</button>
<h3>Configuration Load Error</h3>
<p>
Dashy has failed to load correctly due to a configuration error.
</p>
<h4>Ensure that</h4>
<h3>{{ $t('critical-error.title') }}</h3>
<p>{{ $t('critical-error.subtitle') }}</p>
<h4>{{ $t('critical-error.sub-ensure-that') }}</h4>
<ul>
<li>The configuration file can be found at the specified location</li>
<li>There are no CORS rules preventing client-side access</li>
<li>The YAML is valid, parsable and matches the schema</li>
</ul>
<h4>Error Details</h4>
<h4>{{ $t('critical-error.sub-error-details') }}</h4>
<pre>{{ this.$store.state.criticalError }}</pre>
<h4>Next Steps</h4>
<h4>{{ $t('critical-error.sub-next-steps') }}</h4>
<ul>
<li>Check the browser console for more details
(<a href="https://github.com/Lissy93/dashy/blob/master/docs/troubleshooting.md#how-to-open-browser-console">see how</a>)
@ -29,7 +27,9 @@
</li>
<li>Click 'Ignore Critical Errors' below to not show this warning again</li>
</ul>
<button class="user-doesnt-care" @click="ignoreWarning">Ignore Critical Errors</button>
<button class="user-doesnt-care" @click="ignoreWarning">
{{ $t('critical-error.ignore-button') }}
</button>
</div>
</template>
@ -69,6 +69,7 @@ export default {
left: 50%;
transform: translate(-50%, -50%);
z-index: 3;
max-width: 50rem;
background: var(--background-darker);
padding: 1rem;
border-radius: var(--curve-factor);

View File

@ -28,7 +28,7 @@ const HomeMixin = {
return this.$store.state.modalOpen;
},
pageId() {
return (this.subPageInfo && this.subPageInfo.pageId) ? this.subPageInfo.pageId : 'home';
return this.$store.state.currentConfigInfo?.confId || 'home';
},
},
data: () => ({
@ -84,6 +84,14 @@ const HomeMixin = {
searching(searchValue) {
this.searchValue = searchValue || '';
},
/* Returns a unique ID based on the page and section name */
makeSectionId(section) {
const normalize = (str) => (
str ? str.trim().toLowerCase().replace(/[^a-zA-Z0-9]/g, '-')
: `unnamed-${(`000${Math.floor(Math.random() * 1000)}`).slice(-3)}`
);
return `${this.pageId || 'unknown-page'}-${normalize(section.name)}`;
},
/* Returns true if there is one or more sections in the config */
checkTheresData(sections) {
const localSections = localStorage[localStorageKeys.CONF_SECTIONS];

View File

@ -44,6 +44,12 @@ const {
CRITICAL_ERROR_MSG,
} = Keys;
const emptyConfig = {
appConfig: {},
pageInfo: { title: 'Dashy' },
sections: [],
};
const store = new Vuex.Store({
state: {
config: {}, // The current config being used, and rendered to the UI
@ -335,7 +341,7 @@ const store = new Vuex.Store({
data = yaml.load(response.data);
} catch (parseError) {
commit(CRITICAL_ERROR_MSG, `Failed to parse YAML: ${parseError.message}`);
return {};
return { ...emptyConfig };
}
// Replace missing root properties with empty objects
if (!data.appConfig) data.appConfig = {};
@ -357,7 +363,7 @@ const store = new Vuex.Store({
} else {
commit(CRITICAL_ERROR_MSG, `Failed to fetch configuration: ${fetchError.message}`);
}
return {};
return { ...emptyConfig };
}
},
/**
@ -368,6 +374,7 @@ const store = new Vuex.Store({
*/
async [INITIALIZE_CONFIG]({ commit, state }, subConfigId) {
const rootConfig = state.rootConfig || await this.dispatch(Keys.INITIALIZE_ROOT_CONFIG);
commit(SET_IS_USING_LOCAL_CONFIG, false);
if (!subConfigId) { // Use root config as config
commit(SET_CONFIG, rootConfig);
@ -396,7 +403,7 @@ const store = new Vuex.Store({
if (!subConfigPath) {
commit(CRITICAL_ERROR_MSG, `Unable to find config for '${subConfigId}'`);
return null;
return { ...emptyConfig };
}
axios.get(subConfigPath).then((response) => {
@ -428,7 +435,7 @@ const store = new Vuex.Store({
commit(CRITICAL_ERROR_MSG, `Unable to load config from '${subConfigPath}'`, err);
});
}
return null;
return { ...emptyConfig };
},
},
modules: {},

View File

@ -1717,6 +1717,7 @@ html[data-theme='neomorphic'] {
.config-buttons > svg,
.display-options svg,
form.minimal input,
.critical-error-wrap button.user-doesnt-care,
a.config-button, button.config-button {
border-radius: 0.35rem;
box-shadow: var(--glass-button-shadow);
@ -1724,6 +1725,7 @@ html[data-theme='neomorphic'] {
border: 1px solid rgba(255, 255, 255, 0.19);
background: rgba(255, 255, 255, 0.15);
transition: all 0.2s ease-in-out;
text-decoration: none;
&:hover, &.selected {
box-shadow: var(--glass-button-hover-shadow);
border: 1px solid rgba(255, 255, 255, 0.25) !important;
@ -1791,6 +1793,11 @@ html[data-theme='neomorphic'] {
background: rgba(255, 255, 255, 0.15);
backdrop-filter: blur(50px);
}
.critical-error-wrap {
backdrop-filter: blur(15px);
background: #0f0528c4;
}
}
html[data-theme='glass'] {

View File

@ -34,7 +34,7 @@
:title="section.name"
:icon="section.icon || undefined"
:displayData="getDisplayData(section)"
:groupId="`${pageId}-section-${index}`"
:groupId="makeSectionId(section)"
:items="section.filteredItems"
:widgets="section.widgets"
:searchTerm="searchValue"

View File

@ -34,7 +34,7 @@
:index="index"
:title="section.name"
:icon="section.icon || undefined"
:groupId="`section-${index}`"
:groupId="makeSectionId(section)"
:items="filterTiles(section.items)"
:widgets="section.widgets"
:selected="selectedSection === index"