diff --git a/.drone.yml b/.drone.yml index 062871e1..f28af76d 100644 --- a/.drone.yml +++ b/.drone.yml @@ -54,7 +54,7 @@ steps: tags: - dev registry: registry.odit.services - + mtu: 1000 trigger: branch: - dev diff --git a/CHANGELOG.md b/CHANGELOG.md index b77da77c..a372a7b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,370 @@ All notable changes to this project will be documented in this file. Dates are displayed in UTC. +#### [0.8.0](https://git.odit.services/lfk/frontend/compare/0.7.0...0.8.0) + +- new license file version [CI SKIP] [`579ece6`](https://git.odit.services/lfk/frontend/commit/579ece625651c8bf37b5704e82264a8833811f68) +- Merge pull request 'User settings feature/103-settings_page' (#104) from feature/103-settings_page into dev [`822e97d`](https://git.odit.services/lfk/frontend/commit/822e97d3c35be57ecf9ed6bd6af474fd89e7d8d8) +- Sorted translations🌍 [`120d3c9`](https://git.odit.services/lfk/frontend/commit/120d3c9dc81a0878d0dd64b66caadc6201651bda) +- Translated headers [`01eba88`](https://git.odit.services/lfk/frontend/commit/01eba88adfd7cced75e828427494cb99fdf01d70) +- Implemented change detection [`37bc5ff`](https://git.odit.services/lfk/frontend/commit/37bc5ff17b8f97dfc76962435f9cb64156848c82) +- Added new profile deletion modal [`13b557a`](https://git.odit.services/lfk/frontend/commit/13b557aba89378af40e2f9feb5f90a1c582aea91) +- Implemented the password change logic [`24b9898`](https://git.odit.services/lfk/frontend/commit/24b98983cf964fe2b5594e20b22c63e97ada3166) +- The settings page now boasts your profile picture [`e459bb0`](https://git.odit.services/lfk/frontend/commit/e459bb04cc3fcdc5d176e53b764ad3e995d66762) +- Added inputs for password update [`5d7eb69`](https://git.odit.services/lfk/frontend/commit/5d7eb690e4f2be0d389c785abe73c137cf25c29c) +- Added delete Profile button [`418f9c2`](https://git.odit.services/lfk/frontend/commit/418f9c2662531b997699e8db05e21da394025688) +- Implemented profile updates [`3a4575f`](https://git.odit.services/lfk/frontend/commit/3a4575f25148c74878c978e5cf9885ad12101f00) +- Added translations 🌍 [`3945f3c`](https://git.odit.services/lfk/frontend/commit/3945f3cf3862369ff179379d76090b1e2d78b417) +- Its translation time 🌍 [`5de0fd7`](https://git.odit.services/lfk/frontend/commit/5de0fd792f15241a4a49eda575bc8f23ba6c6974) +- Fixed delete_triggered not getting reset [`e76e5ab`](https://git.odit.services/lfk/frontend/commit/e76e5abcf87883602002fb5687a3fd7b95f24793) +- Added deletion confirmation modal [`716b728`](https://git.odit.services/lfk/frontend/commit/716b72880ad7468694affaf5549b2d34186294b6) +- Added translations [`e76854c`](https://git.odit.services/lfk/frontend/commit/e76854c23be9d909c35a61f8f8e65f743ccf3ec4) +- Added translations🌍 [`34dfc9a`](https://git.odit.services/lfk/frontend/commit/34dfc9add670040e2308964ed8c81d3a99f11f0d) +- Added hint to the logout after password update [`0b6134d`](https://git.odit.services/lfk/frontend/commit/0b6134dd8093427ec15e55d805dae3b18dc55c6d) +- Added missing translation [`44d6cba`](https://git.odit.services/lfk/frontend/commit/44d6cba403c117b1b76ecad32fbc4c2bd02a8cc3) +- Updated old endpoints [`178c257`](https://git.odit.services/lfk/frontend/commit/178c2579d56c3e78e947e658a5c3afe367c3e8ce) +- Settings - rouded corners on password change [`e0ae2ec`](https://git.odit.services/lfk/frontend/commit/e0ae2ec42b89271282e3e96e41de38afd08aa229) +- Now force reloading to log out [`342a95d`](https://git.odit.services/lfk/frontend/commit/342a95ddbeceac2cf3547462a9b1996ecd7dba61) +- Removed useless debug info 🐞 [`bef180f`](https://git.odit.services/lfk/frontend/commit/bef180f4ba7aaf252d87efc789eb53fb75abbdf1) +- Bumped lfk client js version [`50be992`](https://git.odit.services/lfk/frontend/commit/50be992b72dd71eb2c756b1bf6f2d606344fe7ca) +- Now showing logo as default profile pic [`d00f46e`](https://git.odit.services/lfk/frontend/commit/d00f46eee1fd28095064f50620c15ac648f331b9) +- Moved settings to their own folder [`016fba5`](https://git.odit.services/lfk/frontend/commit/016fba527910b95eb2690207bbede91004d2f2d9) +- Now also resetting postdata (prevent against password leaks) [`859f6e2`](https://git.odit.services/lfk/frontend/commit/859f6e25675362ee2ef5553255e3dc9e3040672c) + +#### [0.7.0](https://git.odit.services/lfk/frontend/compare/0.6.0...0.7.0) + +> 19 March 2021 + +- Merge pull request 'feature/62-contract-generation' (#76) from feature/62-contract-generation into dev [`#62`](https://git.odit.services/lfk/frontend/issues/62) +- Merge pull request 'Small bugfixes - feature/64-dialog_clearing_bug' (#75) from feature/64-dialog_clearing_bug into dev [`#64`](https://git.odit.services/lfk/frontend/issues/64) +- Fixed non-automatic logout [`#38`](https://git.odit.services/lfk/frontend/issues/38) +- Merge pull request 'feature/69-translation-keys' (#74) from feature/69-translation-keys into dev [`#69`](https://git.odit.services/lfk/frontend/issues/69) +- Merge pull request 'feature/50-contact-management' (#67) from feature/50-contact-management into dev [`#50`](https://git.odit.services/lfk/frontend/issues/50) +- 🚀RELEASE v0.7.0 [`da5d62a`](https://git.odit.services/lfk/frontend/commit/da5d62ae03bbd057f52473ec047e09067e3715a3) +- Ordered locales [`0f93feb`](https://git.odit.services/lfk/frontend/commit/0f93febd866b0117d7bdf6149c2e8b94f801b1b5) +- Added missing translation [`918bb94`](https://git.odit.services/lfk/frontend/commit/918bb946446608ecebf3e388607068f7aa48e105) +- Sorted translations [`eff2050`](https://git.odit.services/lfk/frontend/commit/eff205095915e3f9bf9dd2f746e5245015740ca5) +- Sorted translations 🌎🌍 [`5f6ee33`](https://git.odit.services/lfk/frontend/commit/5f6ee33e2bcabc007bba340ef51bc28f707aa58d) +- Added language keys🌎 [`60aa919`](https://git.odit.services/lfk/frontend/commit/60aa919b141d26853300db28ab20a6fe41c3f0b6) +- Sorted translations 🌎 [`16d0dba`](https://git.odit.services/lfk/frontend/commit/16d0dbab5bb587cb859c30e04321fb5758455f80) +- Translated missing german stuff 🌍 [`e4b80c9`](https://git.odit.services/lfk/frontend/commit/e4b80c9ab34d31ec31df55904eacfac2c8728b10) +- Added translation keys [`880d722`](https://git.odit.services/lfk/frontend/commit/880d722912fbb8aa7b383f3a7f4e04b639287c3f) +- Added german translations [`d4d8470`](https://git.odit.services/lfk/frontend/commit/d4d847059af0a02a67e1759812b420f92609f517) +- Working add fixed/normal switch [`5d2025a`](https://git.odit.services/lfk/frontend/commit/5d2025aa43f6c4bc4c8f792be22fcec07edd37b9) +- Added basic donation detail [`88ade26`](https://git.odit.services/lfk/frontend/commit/88ade26ef7b112a777af2c7efc10088f79b8f04e) +- Added basic overview with emptystate [`f1ceef0`](https://git.odit.services/lfk/frontend/commit/f1ceef05fca603f76480df47623941a4ec6a18d1) +- Finished group creation modal [`d2193bf`](https://git.odit.services/lfk/frontend/commit/d2193bf428d021328f407e6be1e661b582fd2a1d) +- Added basic donation overview [`8d89d15`](https://git.odit.services/lfk/frontend/commit/8d89d158d11874369265ba668967762d4ee20dd8) +- Donors now get their donations linked in the donor detail [`3aea259`](https://git.odit.services/lfk/frontend/commit/3aea259e415e21f99602bc4e4bfc8cb633d68ab9) +- Fixed text size mismatch [`3d51ba0`](https://git.odit.services/lfk/frontend/commit/3d51ba0dc2da65e826bdbb29a6da11ba07078139) +- Applied the select fix to all things runner 🏃‍♀️🏃‍♂️ [`0386d4e`](https://git.odit.services/lfk/frontend/commit/0386d4e88ab57457fa981399627b2b61f38bb1ae) +- Now the saveing button even worx :O [`63e0249`](https://git.odit.services/lfk/frontend/commit/63e02492e81e3ee02386d3e4363d3ae20125aa8b) +- Switched import modal over to svelte select [`bd3ea72`](https://git.odit.services/lfk/frontend/commit/bd3ea721c301bf6ef67ef4e1e27ca73e799e1a35) +- Switched the scanstation detail over to svelte select👀👀 [`b1031e3`](https://git.odit.services/lfk/frontend/commit/b1031e3115ce03ee68e10f3240f8e829f3f7cfde) +- Switched the scanstation modal over to svelte select👀👀 [`64c96f2`](https://git.odit.services/lfk/frontend/commit/64c96f25d4a9277df431011f4660b59a2eb0a9da) +- Fixed select bug for sponsoring detail 🛠 [`64311e9`](https://git.odit.services/lfk/frontend/commit/64311e96528e0b023892170b5541652cc22f176b) +- Added missing translation keys [`c96a21c`](https://git.odit.services/lfk/frontend/commit/c96a21cf9990a80ec2571366a40116a9d5d64549) +- Fixed runner group update recognition being weired [`b009501`](https://git.odit.services/lfk/frontend/commit/b009501a533e6ebfa79dde4c48554c99ee53c9c2) +- Fixed runner group update recognition being weired [`ee49e78`](https://git.odit.services/lfk/frontend/commit/ee49e78dcd34b0d22c3e3c16ed8e0eb8805ea4c8) +- Donors now get their donations linked in the donor overview [`0f64767`](https://git.odit.services/lfk/frontend/commit/0f64767437626e90adaa931cb15c491e5bfa76c9) +- Fixed load order bug [`c575c73`](https://git.odit.services/lfk/frontend/commit/c575c7376499be07980cb4dbdb7a177e0a18e29c) +- Fixed select bug for sponsoring modal 🐞 [`77662b9`](https://git.odit.services/lfk/frontend/commit/77662b9c19bbef57c49471d9326b48656aebf1ff) +- Fixed select bug for org detail 🏠 [`82423ec`](https://git.odit.services/lfk/frontend/commit/82423ec46798a354e6f3208b67eac3723f874a4d) +- Added new icon for donations [`fa522a8`](https://git.odit.services/lfk/frontend/commit/fa522a85d6215d3f6dd9af05f18dd75fbfb5e0c4) +- Formatting [`f09e58c`](https://git.odit.services/lfk/frontend/commit/f09e58c69c4d279f825f756c789db08980be9435) +- Bumped non-svelte dev dependencies🔝 [`629aabd`](https://git.odit.services/lfk/frontend/commit/629aabd3a35766b181bebe28a31d531362c0a400) +- Added missing language keys [`6109996`](https://git.odit.services/lfk/frontend/commit/6109996adeec808847a72691a9cc3f174285612e) +- Added groupoverview to router [`d9eab9f`](https://git.odit.services/lfk/frontend/commit/d9eab9f2547744ae018f6bd20c730ffd289db4c0) +- Added the new, shiny badges to donor overview [`b0aca9d`](https://git.odit.services/lfk/frontend/commit/b0aca9de13b5dcfc082a0bd27bfec4a2ef4402cf) +- Fixed missing inversion [`a8774fa`](https://git.odit.services/lfk/frontend/commit/a8774fa5242a64783c7fcce476c99e7e82a3d158) +- New folder structure [`4dbca60`](https://git.odit.services/lfk/frontend/commit/4dbca6096fa6e0aa6ff3f1a310280cf4e56163b1) +- Fixed missing middlename action [`d6c96b7`](https://git.odit.services/lfk/frontend/commit/d6c96b781f33600fd61057e3ddb0cb0b6313a6ee) +- Formatting [`a79a87d`](https://git.odit.services/lfk/frontend/commit/a79a87de4c04f685d1209a38cab0a590274c6ded) +- Fixed donation badges now show their amount [`fb5a64c`](https://git.odit.services/lfk/frontend/commit/fb5a64c25188cd577196a80613c7aa4851d74bd5) +- Added donation route [`ccacdf2`](https://git.odit.services/lfk/frontend/commit/ccacdf274bcd55c3333e56e83081a4957b8f27db) +- Formatting [`cd9a546`](https://git.odit.services/lfk/frontend/commit/cd9a5469fd085b1204e9a513bc7e22c6f54532b8) +- Enabled add modal [`8042bca`](https://git.odit.services/lfk/frontend/commit/8042bca7ccbfe0782bf875c8dd730d0c8653ff66) +- Added custom i18n ally insert format [`1ef1053`](https://git.odit.services/lfk/frontend/commit/1ef1053d3f96a3b2cd584d27781575e329925613) +- Now routing stuff to the donation detail [`fd406eb`](https://git.odit.services/lfk/frontend/commit/fd406eb3e6ac6ee41884f7f902895756367bd3b9) +- Adjusted togle label font size [`a880ed2`](https://git.odit.services/lfk/frontend/commit/a880ed2b18a1a6ff71f9a95dc1d06242fa4bd613) +- DonorDetail accessibility improvements 👀 [`019a029`](https://git.odit.services/lfk/frontend/commit/019a0297a90695fcf1887c4bbf0310d2a81114bd) +- Updated donor badege styleing [`247ba40`](https://git.odit.services/lfk/frontend/commit/247ba4030928bcf49e15ee2e7383026c019751e9) +- Updated donor badege styleing [`fcf01ba`](https://git.odit.services/lfk/frontend/commit/fcf01ba6772340a82d7f2a703a4e66111e9f13e8) +- Removed useless style [`07636f5`](https://git.odit.services/lfk/frontend/commit/07636f51c426121d56ef27309b5f069b39843393) +- Renamed button [`1124f25`](https://git.odit.services/lfk/frontend/commit/1124f25ea3b1a2c052e2bd9c4c3480d579a8fc74) +- Amount now also self-resetts [`d2430ba`](https://git.odit.services/lfk/frontend/commit/d2430badbe8e07dc0ae0998c9595784be5d1d79e) +- Renamed folder [`7d08ea8`](https://git.odit.services/lfk/frontend/commit/7d08ea84660e735031a0511a2862429bb5222b3a) +- Merge pull request 'Donation management feature/79-donation_management' (#87) from feature/79-donation_management into dev [`03be2d0`](https://git.odit.services/lfk/frontend/commit/03be2d04923970ecb5b05f5de645a446afe3a245) +- Merge pull request 'i18n fix run no.1 feature/69-i18n_fixes' (#85) from feature/69-i18n_fixes into dev [`8b7f5a7`](https://git.odit.services/lfk/frontend/commit/8b7f5a765bcd91207957754747221f05ffdaff4b) +- Merge pull request 'Fixed refresh page reload bug' (#86) from feature/82-auth_refresh_bug into dev [`9cd9400`](https://git.odit.services/lfk/frontend/commit/9cd94004fce1847d8adb028bef36b6fb49ff144d) +- Sorted translations [`8b70882`](https://git.odit.services/lfk/frontend/commit/8b70882fecd2a0830176074dec504e417923fa50) +- Implmented donor deletion confirmation [`264868b`](https://git.odit.services/lfk/frontend/commit/264868bb6afe2066417f9a98091230cadb54ee63) +- Error message on pdf generation fail ❌ [`12bcbd2`](https://git.odit.services/lfk/frontend/commit/12bcbd28f3e5672dfb1d34d6eacfd2cc144dd4d1) +- i18n translation spree 🌍 [`7fb7ba0`](https://git.odit.services/lfk/frontend/commit/7fb7ba0d2b78065d3d6f1c407b91a0bb9fb832cd) +- Added missing translations 🌍 [`a99c022`](https://git.odit.services/lfk/frontend/commit/a99c0226084ceaea1da7a110edf2ab546b797c71) +- Implemented donor creation modal [`1b6f866`](https://git.odit.services/lfk/frontend/commit/1b6f86669c01f556e720ab5ba42b57e67a5a963d) +- Added donor detail [`cb704c4`](https://git.odit.services/lfk/frontend/commit/cb704c4551bdb46685859ec7901041900acf4c52) +- Implemented donor overview and deletion [`02087a5`](https://git.odit.services/lfk/frontend/commit/02087a541e938bfb5286290e12c5557b6b173460) +- Some i18n 🌍 [`ca8f978`](https://git.odit.services/lfk/frontend/commit/ca8f9786675952af47f663ac4593f33d35924a1a) +- Updated sponsoring logo [`3a57e1c`](https://git.odit.services/lfk/frontend/commit/3a57e1c76624c8ee41757771714970d91db0dddc) +- ✨ PDF download from TeamDetail + TeamsOverview [`dbc0ab7`](https://git.odit.services/lfk/frontend/commit/dbc0ab76af0934d3603509e218465378b99cdf63) +- basic progress toasts [`a7642c2`](https://git.odit.services/lfk/frontend/commit/a7642c2da410caf662e788951149169af2668afd) +- i18n run [`1939300`](https://git.odit.services/lfk/frontend/commit/19393006efd841220295ae588a5dbb67408261ee) +- ✨ PDF generation from OrgDetail [`0a55d73`](https://git.odit.services/lfk/frontend/commit/0a55d7314636c1041b63c5a065a69d115890b4b9) +- Now the toast hides the generation toast [`ed13a0d`](https://git.odit.services/lfk/frontend/commit/ed13a0d14b42de646e2b9e2c1566ac9c256cc1d3) +- Now using translations in org/add/address [`b7d38dd`](https://git.odit.services/lfk/frontend/commit/b7d38dd8493833322f6f1e6634ea2f08a5666fd2) +- Now the toast hides the generation toast [`8fa0be7`](https://git.odit.services/lfk/frontend/commit/8fa0be7633f41974e7e2c5e0927449717b88007a) +- Added donors to sidebar [`0cc91ac`](https://git.odit.services/lfk/frontend/commit/0cc91ac0373ec1ff1229408a6a0beb43df07244e) +- More missing translations 🌍 [`d0a48ab`](https://git.odit.services/lfk/frontend/commit/d0a48ab94b5c281692a7bd935a4eaf11d3b32eb5) +- Added missing translations [`2b037d4`](https://git.odit.services/lfk/frontend/commit/2b037d41ac0b972190c9b2c853b42c41f4148c60) +- ✨ progress toast in RunnersOverview [`4ece21c`](https://git.odit.services/lfk/frontend/commit/4ece21cdf240f203b710410b3ce9fb716ad12fef) +- Fixed missing icon [`bca9605`](https://git.odit.services/lfk/frontend/commit/bca9605d4a0ba56468d91cc4165fe15171e90c9b) +- Updated icons [`0321f0e`](https://git.odit.services/lfk/frontend/commit/0321f0e979af8336ab26563f662357e62812a4c7) +- ✒ change "Edit" table actions to "Detail" [`289a8c1`](https://git.odit.services/lfk/frontend/commit/289a8c14d335a3cb3c4333725c14c497dc6944a9) +- Fixed orgs/teams not being marked as selected on initial modal opening [`44ed633`](https://git.odit.services/lfk/frontend/commit/44ed633cbfee880b0bf7056388d04ede5f50fa47) +- Mitigated null error [`396bd22`](https://git.odit.services/lfk/frontend/commit/396bd221996bd21acafddbf1ab87fbf9b378e306) +- Fixed known translation mishaps [`02d2413`](https://git.odit.services/lfk/frontend/commit/02d24139e9974f4a8a8a62fd906efac9cabb2459) +- Added total dontaion amount to donor detail [`5d945f5`](https://git.odit.services/lfk/frontend/commit/5d945f5bc5bc5c4426da71a18c88a82ce4083f30) +- Fixed refresh page reload bug [`c569724`](https://git.odit.services/lfk/frontend/commit/c5697242ee7cef2cb9d2949a10d4efc533684401) +- Merge pull request 'Donor management feature/78-donor_mgnt' (#80) from feature/78-donor_mgnt into dev [`ad638e8`](https://git.odit.services/lfk/frontend/commit/ad638e8bc8b3f2179526d6fbd6cdf18ee2524054) +- 🖼 new donor empty image [`aec8bf5`](https://git.odit.services/lfk/frontend/commit/aec8bf56a2c03364a353e64a640bae3e8d4540a0) +- Formatting [`3e9383e`](https://git.odit.services/lfk/frontend/commit/3e9383e6d9afab2ea06cd8feaff6d52f53e161b9) +- Normalized svg [`18335e3`](https://git.odit.services/lfk/frontend/commit/18335e3325ab41caa54f1ff53bfd09bd0f590c2e) +- Fixed deletion in detail bug [`f97c2a3`](https://git.odit.services/lfk/frontend/commit/f97c2a36f69d431293ed21d20ff2e8e0782bd53d) +- Implemented currency formatting [`1c49755`](https://git.odit.services/lfk/frontend/commit/1c4975589f8ac1c5cd13b7935fb5663adde52615) +- Updated donot empty logo [`fffe5c2`](https://git.odit.services/lfk/frontend/commit/fffe5c2c4b384e3626b140a6c807b505b3dd4ae2) +- Converted total donation amount to € [`04a09c3`](https://git.odit.services/lfk/frontend/commit/04a09c3ce5e990a50e77ba235dce830983e0ff2d) +- Fixed typo [`f63e177`](https://git.odit.services/lfk/frontend/commit/f63e17775c261c994f289f9d0797be3a2c3a6a3e) +- Implemented receipt needed [`78514c6`](https://git.odit.services/lfk/frontend/commit/78514c6572793422bfaed0d9b9ee4516a30f7fe7) +- Merge pull request 'Mitigated null error' (#77) from feature/64-dialog_clearing_bug into dev [`32024cf`](https://git.odit.services/lfk/frontend/commit/32024cf2c5ade31ec0edd8150ab10e801a70dc44) +- 🐞 fixed translation keys [`d67dfdf`](https://git.odit.services/lfk/frontend/commit/d67dfdf2e7ca8f88113377690f794f440d07dd14) +- Removed key duplicate from last merge [`5b3e66c`](https://git.odit.services/lfk/frontend/commit/5b3e66c4f6f30d5ea92ac7281cd2c3a17081c9fa) +- ✨ translation keys [`a588bc4`](https://git.odit.services/lfk/frontend/commit/a588bc46319a387690a284a2dccca718f194b80b) +- ✨ basic select boxes in table [`e8f7c1c`](https://git.odit.services/lfk/frontend/commit/e8f7c1c832037af251d2e3c41600b7c7109fdaa2) +- First part of org detail address edit [`e5c31c9`](https://git.odit.services/lfk/frontend/commit/e5c31c9dd43c36d81205e100ded030309296fb5d) +- Added address to org creation dialog (styleing only) [`6d2431b`](https://git.odit.services/lfk/frontend/commit/6d2431b683b36a2595a259e69339b8b9fd0c9bdc) +- 🐞 fixed bug in OrgDetail address reactivity [`616990b`](https://git.odit.services/lfk/frontend/commit/616990b930cafe4eac57cf771b8b5d722b281218) +- Removed unused locales [`722feac`](https://git.odit.services/lfk/frontend/commit/722feac8bd0a4be5214268c0bdb321243a4d602d) +- ✨ OrgOverview - multiple pdf download [`40dda11`](https://git.odit.services/lfk/frontend/commit/40dda1150ca8ddc17b1bb64649becab3440bdfad) +- Removed unused locales [`4be87a6`](https://git.odit.services/lfk/frontend/commit/4be87a64b9df5a722b3a03893eff64f140f2dc28) +- Translated all missing translations 🌍 [`2e3750c`](https://git.odit.services/lfk/frontend/commit/2e3750c87c882c562822cee1615e74b6e84857d9) +- ✨ PDF from RunnerDetail [`3b18be5`](https://git.odit.services/lfk/frontend/commit/3b18be58747f204908e0d1065abe66e78d156da6) +- 🇩🇪 more german translations [`377d691`](https://git.odit.services/lfk/frontend/commit/377d691053966410da6dfdeb1bf2cb10009a0c0a) +- 🐞 fixed bug in Tracks datatable translation keys [`30867b4`](https://git.odit.services/lfk/frontend/commit/30867b4ba1328a405aa3ea20c1043d066f774ee0) +- 📃 pdf generation in RunnersOverview [`fa3dc87`](https://git.odit.services/lfk/frontend/commit/fa3dc870d3e114ddca472197d30e1f4178030568) +- some more translation keys [`9b0252f`](https://git.odit.services/lfk/frontend/commit/9b0252fb754cceb2c2dd374c0e4f465d6ea67f92) +- drop filepond keys [`e90fe73`](https://git.odit.services/lfk/frontend/commit/e90fe73aa25cdc077bed4446a088583126b5bd20) +- Implemented detail address add fix [`ec8d946`](https://git.odit.services/lfk/frontend/commit/ec8d946a41c8196bce8556179fa93f0ec47a7507) +- reactive button for checkboxes in table [`5e6ada1`](https://git.odit.services/lfk/frontend/commit/5e6ada140ce2722bc67f4c7c10fe95138d7d27f0) +- Genered soem runner related keys [`3c541ad`](https://git.odit.services/lfk/frontend/commit/3c541ada89aa9acee805ab0d31f7a68078bc2a69) +- Added address to org overview [`bcc7d77`](https://git.odit.services/lfk/frontend/commit/bcc7d7770ebcee95cbc6cfa69841ac15d12bc1a6) +- Runner Contact information column npow features address [`57e17f2`](https://git.odit.services/lfk/frontend/commit/57e17f2864765c13ab6cce84ede92a3be8e524fc) +- 🌎 i18n [`ff15308`](https://git.odit.services/lfk/frontend/commit/ff15308c037e6800c1bbd43d01617554e98bf2d1) +- Fixed privacy/imprint fallback bug [`b195c70`](https://git.odit.services/lfk/frontend/commit/b195c707b05ffa415b50afdf4a532e03340e1ebf) +- Formatting [`25ac84e`](https://git.odit.services/lfk/frontend/commit/25ac84e5fddd0927dc4283836a36e0f15615609f) +- Fixed clear on import bug [`e53467d`](https://git.odit.services/lfk/frontend/commit/e53467da22dee965f753500c4807fd54b02ec4be) +- Fixed clear on import bug [`09d27c0`](https://git.odit.services/lfk/frontend/commit/09d27c0b05634e7e8eefd79fa048c2cb53082abf) +- Merge commit 'b337873ca214682487844973104772539956c09a' into feature/48-usergroup-management [`266a11f`](https://git.odit.services/lfk/frontend/commit/266a11f64f073b917ebc7a0c1496d0a48a657e8a) +- Merge commit '6d0bca6d6783d3f7bbff5d413b158c6b60720bd8' into feature/48-usergroup-management [`e442b92`](https://git.odit.services/lfk/frontend/commit/e442b92a5f31d2222184aaea55de17d96ccfecbf) +- new license file version [CI SKIP] [`afd73d5`](https://git.odit.services/lfk/frontend/commit/afd73d53bee7eb2fd3244caaeb1a9867bff68721) +- Merge pull request 'Addresses for orgs and a bunch of bugfixes feature/72-adddress_for_everyone' (#73) from feature/72-adddress_for_everyone into dev [`652e55e`](https://git.odit.services/lfk/frontend/commit/652e55e80e9e7a6c14e7dbeb0ccf6259f11f9368) +- Implemented org address creation modal logic [`86f1300`](https://git.odit.services/lfk/frontend/commit/86f13003b5400ba5ea14bcc6bb9b7e7a9301c212) +- ✨ ForgotPassword demo for translation with interpolation [`505ca6a`](https://git.odit.services/lfk/frontend/commit/505ca6a58effae334f35ae99de798d85bd8fa1a2) +- 🐞 fixed address removal bug ContactDetail [`1eea935`](https://git.odit.services/lfk/frontend/commit/1eea93520749ac4fb4054004fc7ae01a02a05f68) +- Fixed wrong relation getting targeted [`4f3f7d1`](https://git.odit.services/lfk/frontend/commit/4f3f7d1edb3c4f06dcda75461f87fe3688cf20fb) +- Replaced untranslated key with already existant key [`56b5008`](https://git.odit.services/lfk/frontend/commit/56b50082782b3d62f7fe5854d0d37da3a8dd7759) +- Replaced untranslated key with already existant key [`555778f`](https://git.odit.services/lfk/frontend/commit/555778fca43fd4546968205fc41617a10d4c7727) +- Unified key translation style [`ec1a622`](https://git.odit.services/lfk/frontend/commit/ec1a6226a9f3d512404a5af7119b0508b21e03d6) +- Merge commit '9faa93e29239182871b82bca211531fb95d37b7f' into feature/69-translation-keys [`5f1c8f3`](https://git.odit.services/lfk/frontend/commit/5f1c8f3627b5603063821c1a32774d4a000606ac) +- new license file version [CI SKIP] [`3834079`](https://git.odit.services/lfk/frontend/commit/3834079481d36a38fbb6d61a56c56320c075d59d) +- Merge pull request 'component/ structure cleanup feature/68-component-cleanup' (#70) from feature/68-component-cleanup into dev [`9faa93e`](https://git.odit.services/lfk/frontend/commit/9faa93e29239182871b82bca211531fb95d37b7f) +- ✨ basic Contact components [`054c7fa`](https://git.odit.services/lfk/frontend/commit/054c7faaacfca30ab15f6fcb4241949aef4c87eb) +- Sorted locales [`e64b318`](https://git.odit.services/lfk/frontend/commit/e64b318a42741812900feaa7a825b384687bf7d2) +- ✨ basic UserGroup components [`0361f8a`](https://git.odit.services/lfk/frontend/commit/0361f8ad6991e04bc621c3201bd14d6ace9adc76) +- 🌎 Contacts i18n [`c1251d3`](https://git.odit.services/lfk/frontend/commit/c1251d333298326e25ef7573e14ed24124f621de) +- Now w/ 100% german translation 🌍 [`6c2a5f9`](https://git.odit.services/lfk/frontend/commit/6c2a5f904d6d0ab709a503130efc9e20784b9fc3) +- Added license to package [`dc0c738`](https://git.odit.services/lfk/frontend/commit/dc0c7384710985524e8caceebde06918b878ec6c) +- ✨ UserGroupsEmptyState, UserGroupsOverview, basic GroupDetail [`eddfeb1`](https://git.odit.services/lfk/frontend/commit/eddfeb10a55cbf276f29e406ad262d46ac3d1786) +- ✨ ContactDetail route [`6f4f4cc`](https://git.odit.services/lfk/frontend/commit/6f4f4ccb16d91c9ab11f65bc9c01faafa6004f5c) +- AddContactModal - allow optional address [`7138ca1`](https://git.odit.services/lfk/frontend/commit/7138ca1f5f03a6f5dc54e9d91bc1d432e354b77c) +- Initial component sort/cleanup [`c0534a3`](https://git.odit.services/lfk/frontend/commit/c0534a3b06a6f818c94adb70bca2a898ec70c2ab) +- ContactDetail - added checkbox for optional address [`894160f`](https://git.odit.services/lfk/frontend/commit/894160f3f771fa8c3566566626cfe60858fc3ab1) +- 🚧 WIP on ContactDetail [`4541304`](https://git.odit.services/lfk/frontend/commit/4541304fa8033cfc875a08faca85bab86691a1c5) +- renamed folder and removed useless files [`e1427f3`](https://git.odit.services/lfk/frontend/commit/e1427f3ecbf1e6d6dbb0b3e8c7c9514cb68c2c08) +- 🐞 fixed null addresses in ContactsOverview [`6a91bd5`](https://git.odit.services/lfk/frontend/commit/6a91bd53e2f26d72a407a266b660cbfae0902a20) +- ✨ OrgDetail - edit contact [`1586c2f`](https://git.odit.services/lfk/frontend/commit/1586c2f9e625a5eaa116251e5ebd83fcebd3bee5) +- ✨ ContactsEmptyState [`a7098df`](https://git.odit.services/lfk/frontend/commit/a7098df9cfe6ba4dffe2ed121b1e9ae69f40e89d) +- ✨ TeamDetail - edit contact [`2033572`](https://git.odit.services/lfk/frontend/commit/2033572c83654bc51ece17ef60e29c425001fe1c) +- Fixed org deletion dialog [`a4c955c`](https://git.odit.services/lfk/frontend/commit/a4c955ce8530238bcd1eb91db2cee7dae6a9fe8c) +- 🧹 ContactOverview refinement [`0f01330`](https://git.odit.services/lfk/frontend/commit/0f013304ef34d848652351a69e5374f61166db10) +- 🔗 link to ContactDetail from OrgOverview [`1a4cf21`](https://git.odit.services/lfk/frontend/commit/1a4cf211eb5d5278e8d7cf375ba534b1c24a1315) +- German spell check [`83495b1`](https://git.odit.services/lfk/frontend/commit/83495b101c851590473c769121d7a10299bcbcce) +- 🎉 working AddContactModal [`45e7f6a`](https://git.odit.services/lfk/frontend/commit/45e7f6a0d1315db8779111545f317ba746680a28) +- Removed usless console logs [`7278648`](https://git.odit.services/lfk/frontend/commit/72786486421e2161144c04c354e46eb07e00c502) +- 🎉 ContactDetail + ContactOverview [`4ef1b7a`](https://git.odit.services/lfk/frontend/commit/4ef1b7abe8458903ba91ea8aad7566205c8776c4) +- Gendered some stuff [`ce678c1`](https://git.odit.services/lfk/frontend/commit/ce678c1b769db7ab59a003752329e7598f7d86d5) +- Fixed contact update detection bug [`696d3ff`](https://git.odit.services/lfk/frontend/commit/696d3ffabf8a254480344aa5bfb1b5a4360da528) +- 🔗 link to ContactDetail from TeamsOverview [`b01fe05`](https://git.odit.services/lfk/frontend/commit/b01fe050d2a5db5f736e25859c44f8106d1eb526) +- Fixed store destrucuured import [`f086027`](https://git.odit.services/lfk/frontend/commit/f08602791040da3820b8d2317339dd0d3baa260c) +- Fixed group posting issue [`e4ae1dd`](https://git.odit.services/lfk/frontend/commit/e4ae1dd475e5c3a826eecd6af934e9c30b9a722a) +- Fixed modal multiselect [`46cd262`](https://git.odit.services/lfk/frontend/commit/46cd262fabc5d89a80283d9c8510c2a8d476a6c5) +- new license file version [CI SKIP] [`eb46c5e`](https://git.odit.services/lfk/frontend/commit/eb46c5eea65e24e1470a79b3ba9d380b4ce31a6f) +- Merge pull request 'i18n fixed + dependency bumps bugfix/99-i18n_run' (#102) from bugfix/99-i18n_run into dev [`100094e`](https://git.odit.services/lfk/frontend/commit/100094e803fdbb2bc79e2b58d9eb9a9f1b4346ae) +- Added select workaround for all things team🏠 [`5ad42d6`](https://git.odit.services/lfk/frontend/commit/5ad42d6ca7a3823a265e54d9dc7835e4a3e2e89c) +- Implemented svelt select bug workaround for scan detail🔥🔥🔥 [`cda4512`](https://git.odit.services/lfk/frontend/commit/cda45128223ccc47456e2548b048e371d80bb7c2) +- Fix for bug discovered by @philipp [`d28a0e1`](https://git.odit.services/lfk/frontend/commit/d28a0e1dbb877b3e369b106a103a3bfc52dd1e6a) +- Added german translations for the new keys [`635e2ba`](https://git.odit.services/lfk/frontend/commit/635e2ba0e07c04ef0e3b35438193521e2ed2368b) +- Fix for bug discovered by @philipp [`94d52df`](https://git.odit.services/lfk/frontend/commit/94d52df322fca1790776300b2d4be6a3996cd57f) +- Svelte select is now 100% keyboard useable (or at least in one modal it is....) [`eb6af4b`](https://git.odit.services/lfk/frontend/commit/eb6af4b4f0b561653fe57ec41c272cb1cb127ecc) +- Added patime to track scan detail [`937265e`](https://git.odit.services/lfk/frontend/commit/937265e82890c26046ccf321a3a4d6b9258674a9) +- sorted translations 🌍 [`e723cbf`](https://git.odit.services/lfk/frontend/commit/e723cbf3b301ecb0de6426345def3fe53618a29c) +- Removed lodash as a dependency 🗑 [`f09224d`](https://git.odit.services/lfk/frontend/commit/f09224d5c02a2c2d2f1ac221314d2c22758143ba) +- Added translation keys [`99c3050`](https://git.odit.services/lfk/frontend/commit/99c30504115b068b65a48c651091252371b180ae) +- Found a hiddeen missing key👀👀 [`00d16ef`](https://git.odit.services/lfk/frontend/commit/00d16ef59f2af3a540708cd61c195ea0ead86995) +- Bumped svelte-* dependencies (non-dev)🔝 [`b4e7f90`](https://git.odit.services/lfk/frontend/commit/b4e7f9046c29aa45661f175f7b8cdca5d6a1a9a0) +- Bumped svelte-related dev dependencies🔥 [`5204ba5`](https://git.odit.services/lfk/frontend/commit/5204ba5e24ca6e8ab0c5ad0255c54eede15a3baf) +- Bumped router [`1b9b9ed`](https://git.odit.services/lfk/frontend/commit/1b9b9ed3723b0c12ab3b65eb0d94ec8c2c16ef42) +- new license file version [CI SKIP] [`7521ad8`](https://git.odit.services/lfk/frontend/commit/7521ad8bbbb094bbe9ba723d03b3e9eb7f6a3243) +- Merge pull request 'Scan management feature/92-scan_mgnt' (#101) from feature/92-scan_mgnt into dev [`b994065`](https://git.odit.services/lfk/frontend/commit/b994065e1810c44f4f9373b71baf632cccb34967) +- Merge pull request 'Svelte select dropdown fix bugfix/98-dropdowns' (#100) from bugfix/98-dropdowns into dev [`a7fb2b8`](https://git.odit.services/lfk/frontend/commit/a7fb2b8a1a1e36a420ecbfce0ae41f685d6e24f8) +- Sorted translations [`95eb8b6`](https://git.odit.services/lfk/frontend/commit/95eb8b6ae4d427c3ed7c64ac2d43b27545a64e3d) +- Basic scan detail [`107360c`](https://git.odit.services/lfk/frontend/commit/107360cd93f00beb73bf0e3a50ca45fbfed63dfc) +- Fixed emptystate 🛠 [`e9d5527`](https://git.odit.services/lfk/frontend/commit/e9d5527482b2dd2c61b83642051c4f808906139b) +- Implemented basic scan creation [`1ada5d9`](https://git.odit.services/lfk/frontend/commit/1ada5d9c2c4d78868ca87b5cb05c0b6d770c7e9c) +- Bugfix for download button dropdown outsideclick [`6a925cb`](https://git.odit.services/lfk/frontend/commit/6a925cb27f06101a7292aae7e77223a0cd204dfa) +- Added basic scan overview [`eb0910b`](https://git.odit.services/lfk/frontend/commit/eb0910be575f4d83ab4f81a75a76cdfac46db19b) +- Advanced Scan detail [`284bdc6`](https://git.odit.services/lfk/frontend/commit/284bdc6e33508fe4e277ea5fd312bea84881c882) +- Added contact selection via svelte select [`7edc342`](https://git.odit.services/lfk/frontend/commit/7edc3427e10166d2a5e1b911cc459b26b37f984b) +- Runner detail now uses svelte select🔥🔥 [`cee1ab1`](https://git.odit.services/lfk/frontend/commit/cee1ab1347beb80f7e391f41117b25ecef212032) +- Added formatted laptime [`5afa541`](https://git.odit.services/lfk/frontend/commit/5afa541b303d9a650b5fd5a46cd4dd7b839d6085) +- Added scans to sidebar (including a new icon) [`2cf8e02`](https://git.odit.services/lfk/frontend/commit/2cf8e0291ada3a9f70a8172ec95ed98be86ad7d0) +- Adjusted filter [`53aa3bc`](https://git.odit.services/lfk/frontend/commit/53aa3bc3ae111399b22a122ad8912d78a12b8d79) +- Org detail now uses svelte select [`6b59067`](https://git.odit.services/lfk/frontend/commit/6b590671bcb95c8c223860137ffbf2c82d05a144) +- Add runner now uses svelte-select [`0e682bf`](https://git.odit.services/lfk/frontend/commit/0e682bf6302aea388ecfe6c92ad571db04d1c496) +- Added basic files for scans [`f67e089`](https://git.odit.services/lfk/frontend/commit/f67e089ff39aa885983c063b82b60ba0ea432b69) +- Added new scan icon to add scan modal [`9e5a093`](https://git.odit.services/lfk/frontend/commit/9e5a093a3a472ad06c7f0f0faee3b3ad318c8c44) +- Now using svelte-select [`2a644d7`](https://git.odit.services/lfk/frontend/commit/2a644d70704cd3ffc5f0d7dd7894b2389ab90b1f) +- MAde detail editable through the more reacctive process [`8b95b30`](https://git.odit.services/lfk/frontend/commit/8b95b300e283b25a9e25acbd6ffd5c003e30e59c) +- Add Team now uses the new select [`1da1578`](https://git.odit.services/lfk/frontend/commit/1da15783d56ff4a998f872ce6842e83707b274ff) +- Formatting [`e1bd364`](https://git.odit.services/lfk/frontend/commit/e1bd364278e590b8081c10fae3f642b91936c69b) +- Fixed broken change detection [`a45c5da`](https://git.odit.services/lfk/frontend/commit/a45c5da0a7b9ef8f3a60b2b50cb8d1bd68d6ede8) +- Fixed bugs with stuff not being displayed🛠 [`ff1bc8a`](https://git.odit.services/lfk/frontend/commit/ff1bc8a44a0d020d57aaba5a3eb255a22d65bb3d) +- Now routing scans "start" page [`915bbbb`](https://git.odit.services/lfk/frontend/commit/915bbbbde023c34feb4595629d59546970ba8c94) +- Added translations 🌎 [`8acbfa8`](https://git.odit.services/lfk/frontend/commit/8acbfa89674130667da11bca00879a30163b3523) +- Now checking selectables for not being null [`5a2172b`](https://git.odit.services/lfk/frontend/commit/5a2172bb9b878c77c4f09e65237ce1a179c95b8c) +- formatting [`9d0c6b9`](https://git.odit.services/lfk/frontend/commit/9d0c6b9ef44846bf59a521b71b2c4d9e91189ed5) +- Fixed initial select value [`d3a3de2`](https://git.odit.services/lfk/frontend/commit/d3a3de2eac40503a5c626e59f9b5036e482b7399) +- Small bugfixes [`dfa38d3`](https://git.odit.services/lfk/frontend/commit/dfa38d34215921a10619de71c7a7cf390be3b722) +- Added clear event [`ee0c149`](https://git.odit.services/lfk/frontend/commit/ee0c1496e67316a7473fdcccecad67cb1d10cdf9) +- Now routing scan detail [`abf9aa4`](https://git.odit.services/lfk/frontend/commit/abf9aa475b62ead1bfa185c39f8934fba508f9d8) +- Small bugfixes [`6e04b71`](https://git.odit.services/lfk/frontend/commit/6e04b71c1aaed142152f1ef045c69f02ee116a3f) +- Reset array [`8252a35`](https://git.odit.services/lfk/frontend/commit/8252a35771bbde82cfcf4f049be8536193df9a17) +- Removed useless console.logs [`fc668c6`](https://git.odit.services/lfk/frontend/commit/fc668c68806bc0b132d818d64ee2c833ce3ace06) +- Bumped lfk lib version [`bb7f2a6`](https://git.odit.services/lfk/frontend/commit/bb7f2a611a199f59932f61be36464ed654d76a06) +- Fixed visual bug (overflow) [`4e51b12`](https://git.odit.services/lfk/frontend/commit/4e51b128e6d13d222b196175ddc5fbc5c1f9597e) +- Bumped svelte select version [`0277263`](https://git.odit.services/lfk/frontend/commit/0277263f9825e78812e0518d0a849535c0fe99a4) +- Removed depreciated information [`99fb420`](https://git.odit.services/lfk/frontend/commit/99fb420d5804c6061d806f518d8d3e742b20eacb) +- Merge pull request 'Make dropdowns (selects) searchable feature/91-searchable_dropdowns' (#97) from feature/91-searchable_dropdowns into dev [`b541c93`](https://git.odit.services/lfk/frontend/commit/b541c93797b1a0317fee8c934e9803a9f2f7677d) +- Fixed typo✏ [`e6df764`](https://git.odit.services/lfk/frontend/commit/e6df76456204282c7724f62ada6a902c771ec451) +- Reapplied change from dev [`b841cc8`](https://git.odit.services/lfk/frontend/commit/b841cc8b959546d04daa0bacc04265a95573cd12) +- Removed console log 🤫 [`bc2a8ca`](https://git.odit.services/lfk/frontend/commit/bc2a8caf3e3f87de11a7402c433d95d1851b4e4c) +- Applied Docker MTU fix 🛠 [`f24b2b9`](https://git.odit.services/lfk/frontend/commit/f24b2b9b4cdb5e00eacea35be3199a38352d8a55) +- Small bugfix 🛠 [`1a115a8`](https://git.odit.services/lfk/frontend/commit/1a115a842350da0b0ece58a9b5176a90897db9b7) +- Merge pull request 'Scan station management feature/93-scan_stations' (#95) from feature/93-scan_stations into dev [`d00446d`](https://git.odit.services/lfk/frontend/commit/d00446dc7b27d67589a7eb7f251b6b8d60dedd43) +- Fixed case sensitivity [`c6db6c5`](https://git.odit.services/lfk/frontend/commit/c6db6c553588c7cfb33fd3105122b63ecf6c12fb) +- Sorted translations [`74c042a`](https://git.odit.services/lfk/frontend/commit/74c042a86b7e98ee0dd7f28981836ca33d1d6576) +- Sorted translations 👀 [`a5d1b76`](https://git.odit.services/lfk/frontend/commit/a5d1b7689161ac491ab6aa68aad3625e5207bdb6) +- Added translations for runner searching [`8c4a54e`](https://git.odit.services/lfk/frontend/commit/8c4a54eb07c8c6cc9ee4ea1b5c620a12bdabc0e3) +- Sorted translations [`476f919`](https://git.odit.services/lfk/frontend/commit/476f9191211c473244f2e05a1d840eabada8190a) +- Added search languagke keys [`47f0cd0`](https://git.odit.services/lfk/frontend/commit/47f0cd0b589729ea0d60e12c3f3ead7a2538e9ff) +- i18n run: Added keys 🌍 [`50aa891`](https://git.odit.services/lfk/frontend/commit/50aa8917090af743fa99e9da79327496640a0014) +- Added new translation keys 🌍 [`1aa2b3b`](https://git.odit.services/lfk/frontend/commit/1aa2b3b065816f82c85b5320261a10b9c4d1879c) +- Added german translations 🇩🇪 [`e6d80c8`](https://git.odit.services/lfk/frontend/commit/e6d80c8ccb1e15cbac421b883da07be370c89456) +- Added german translations [`e93f4e9`](https://git.odit.services/lfk/frontend/commit/e93f4e99f9f768b7e2b81088c3d47c3363197ab2) +- Basic scanstation creation [`9ee7685`](https://git.odit.services/lfk/frontend/commit/9ee768551f0d617257452f7a89992f25927de02a) +- Added scanstation detail [`258b3ce`](https://git.odit.services/lfk/frontend/commit/258b3cea66148a1a2beb14dd7aba5c785ff30c83) +- Added station token copy modal [`8856671`](https://git.odit.services/lfk/frontend/commit/88566719ec4eab243369f9f26151e9f6377ddfa6) +- Added station deletion confirmation dialog [`9f754ef`](https://git.odit.services/lfk/frontend/commit/9f754ef0e98ab78548391796db96e69b15fcd20e) +- New fancy selects for donation details [`76be8d5`](https://git.odit.services/lfk/frontend/commit/76be8d5a8766c55e59e34dab2bfa0d24734b7886) +- Spelling+Formatting [`7ff1d50`](https://git.odit.services/lfk/frontend/commit/7ff1d5007935946423d49eb559cb9e15f7dbb023) +- Finished scanstationmodal (without i18n) [`83e782c`](https://git.odit.services/lfk/frontend/commit/83e782c7c567d3747eb4e0a4313f6e7de6f2355f) +- Now with custom label generation functions [`48b8dfe`](https://git.odit.services/lfk/frontend/commit/48b8dfe973c880f4bad5884cd49769f14ba0f78d) +- Updated ci secrets and type [`65111e8`](https://git.odit.services/lfk/frontend/commit/65111e87c1dc5a397f47b94282a18c0eb9888794) +- New select [`fe16c66`](https://git.odit.services/lfk/frontend/commit/fe16c66cf2d9ee2a950b0865b43fe7797b9540b2) +- Added custom placeholders [`1c330d0`](https://git.odit.services/lfk/frontend/commit/1c330d0301d5f3167a49161974eb09ff2324ba16) +- Added new select for runners [`dab5bee`](https://git.odit.services/lfk/frontend/commit/dab5bee3c0ed48f0e7562b2d829a25cb8b80f2c6) +- Added scanstations to sidebar [`4b47e70`](https://git.odit.services/lfk/frontend/commit/4b47e70b13507034dc321a80e4e61fd387749571) +- Added fancier active states [`95b1490`](https://git.odit.services/lfk/frontend/commit/95b1490f8493168a07e3db167ee8c9ac81730429) +- Finished scanstations base view [`85fa9d9`](https://git.odit.services/lfk/frontend/commit/85fa9d942ea8e8d636509bf0db79b56f4c1a20b8) +- Added missing clear [`1bc8404`](https://git.odit.services/lfk/frontend/commit/1bc840430f6c6e886d38c50a1c5b31ae2204a615) +- Added icon 🖼 [`e8e3ddc`](https://git.odit.services/lfk/frontend/commit/e8e3ddceff08e9b3b024da8e6b534a86b35f6f39) +- Added translation strings [`88ad64f`](https://git.odit.services/lfk/frontend/commit/88ad64f113878784dfc0808ffdc83c8aca85588f) +- Added custom filter/search [`f97be4e`](https://git.odit.services/lfk/frontend/commit/f97be4e7291f45f9240a3491603b9c0982b37a68) +- Merge pull request 'Well that was less work than expected ....' (#96) from feature/90-translations into dev [`64b6c4d`](https://git.odit.services/lfk/frontend/commit/64b6c4d5f7a6f56370336828f05a56520976135d) +- And with working i18n 🌍 [`e07d1e4`](https://git.odit.services/lfk/frontend/commit/e07d1e42e2ed4e21d053aef85432c9dbb9f103f4) +- Sorted translations [`6870e31`](https://git.odit.services/lfk/frontend/commit/6870e31a8143187d98e39f1964139a0f57328779) +- Sorted translations [`e487213`](https://git.odit.services/lfk/frontend/commit/e4872131c84d5021a0b02a944550fbcd99fb5c1a) +- Added translation keyz [`3693025`](https://git.odit.services/lfk/frontend/commit/36930259d2bd250af8453ac3ed9349503c5f109d) +- Translated stuff 🌍 [`dcaca2e`](https://git.odit.services/lfk/frontend/commit/dcaca2ecbded329b3240a30e8b2d51fc392483eb) +- Moved pdf generation to function instead of onclick for all components [`22e9f53`](https://git.odit.services/lfk/frontend/commit/22e9f53c42d27177bd101d3724ff7e640850f5f6) +- New download buttons for everyone (that can generate sponsoring contracts) [`e24b84e`](https://git.odit.services/lfk/frontend/commit/e24b84e7095fc929d1c160646dfaa01a260f229b) +- Now routing to gorup permissions [`af7e44c`](https://git.odit.services/lfk/frontend/commit/af7e44cf7cb168eb9d017951c5e9cf4e0ead4673) +- Now routing scan statins overview [`ca9c390`](https://git.odit.services/lfk/frontend/commit/ca9c390bb265e5c1b1f8752e118c5f3c560ddc82) +- Implemented rough outside click handler for the dropdown [`c2bd696`](https://git.odit.services/lfk/frontend/commit/c2bd696bfedcfdaf0b13eb165d800691d58ca010) +- Working button onklicks [`3b7c25b`](https://git.odit.services/lfk/frontend/commit/3b7c25b106b5369e622fabb844302463a55971b5) +- Added basic table for scanstations [`c53b579`](https://git.odit.services/lfk/frontend/commit/c53b579fca6f65b8d34ab63a8ec8321100e563bd) +- Added permissions list to usergroup detail [`05099d0`](https://git.odit.services/lfk/frontend/commit/05099d066bb383b4883b4fae59da35e419935827) +- Working suergroup permissions overview [`7c32486`](https://git.odit.services/lfk/frontend/commit/7c324869a463d07af8c8f43b1853544c4a0d3440) +- Switched the icon style [`305b18e`](https://git.odit.services/lfk/frontend/commit/305b18ef57c885d7cd1295557f8651f546b7934a) +- Basic sponsoring language dropdown for runners [`6079e1f`](https://git.odit.services/lfk/frontend/commit/6079e1fa90249cfc94ed210fb40bd6fcf7e9ec11) +- Updated users icon [`8ebc88a`](https://git.odit.services/lfk/frontend/commit/8ebc88aebb5af1fc6361582745d57d37ea6905e1) +- You can now delete a station from it's detail [`c4acf77`](https://git.odit.services/lfk/frontend/commit/c4acf774ec6ab59eb24da437548667a5d26d624b) +- Updated users icon [`c111ec9`](https://git.odit.services/lfk/frontend/commit/c111ec9d9113adac7f19fc5f0b527e0755cafd0e) +- More i18n 🌍 [`e85cdaf`](https://git.odit.services/lfk/frontend/commit/e85cdaf3240abc78f9bf6353e911f157a06f11ca) +- Added group detail routing [`937486a`](https://git.odit.services/lfk/frontend/commit/937486a66bd0c8bacbb867c469e7a69c30be2a5e) +- Changed row order [`773fbfc`](https://git.odit.services/lfk/frontend/commit/773fbfc579014dcf67c87b43ab0a0d9d11ea23d6) +- Added missing translations 🌍 [`599d340`](https://git.odit.services/lfk/frontend/commit/599d340a72a9577a28fd652648558fee1ccd6bf1) +- Added missing translations 🌍 [`89b7fb8`](https://git.odit.services/lfk/frontend/commit/89b7fb8072bdc463cd9ac2926fef7f92c9b7130c) +- Now with dropdown aiutoclose [`c89caf7`](https://git.odit.services/lfk/frontend/commit/c89caf78558d379ad587b37375280d5319c51cd2) +- Now routing scan station detail [`a3daa2d`](https://git.odit.services/lfk/frontend/commit/a3daa2d24f5ed76fbde5d073360b2ca0a98fa9ac) +- You can now add scanstations [`e45f8fa`](https://git.odit.services/lfk/frontend/commit/e45f8fa9efabcb18f69577a368235ee568dc16cb) +- Clicking on a dropdown option now closes it everywhere [`9fec315`](https://git.odit.services/lfk/frontend/commit/9fec31591007253ced7a9c8d29552980138a5971) +- Removed locale overrides [`9a8a978`](https://git.odit.services/lfk/frontend/commit/9a8a978e4959b36c5d6beccdcec6c313e1529e65) +- Udergroup permission reactivity fix [`bfc9315`](https://git.odit.services/lfk/frontend/commit/bfc93158f50bfa78a26340b609dffcc6b164f90c) +- Added "tooltip" [`2de861d`](https://git.odit.services/lfk/frontend/commit/2de861d4c13da8327b2bd9ec34f17c71e83105fc) +- Fixed nameing [`5e417f0`](https://git.odit.services/lfk/frontend/commit/5e417f0714c3aa0189d9a7148d81d48ca922802b) +- Changed group icon [`16e1434`](https://git.odit.services/lfk/frontend/commit/16e1434f2a53270d237a9345d55748f9b3d0460b) +- New image for emptystate [`e8de1f6`](https://git.odit.services/lfk/frontend/commit/e8de1f6d9c120636f51f7e916692690050060719) +- Added german translation 🇩🇪 [`95fcd1d`](https://git.odit.services/lfk/frontend/commit/95fcd1dcc49247a620e030084674c23c871472b6) +- Fixed routing [`891ea2d`](https://git.odit.services/lfk/frontend/commit/891ea2da12679049c018e87b8474af91978d9f56) +- Well that was less work than expected .... [`8d8695b`](https://git.odit.services/lfk/frontend/commit/8d8695ba13b0183b5f1535bd48c162bb809b01f0) +- Added cursor-pointer [`27a1f57`](https://git.odit.services/lfk/frontend/commit/27a1f57ed34577f0c6865161559081763d29c6dc) +- Spelling [`bd22d3b`](https://git.odit.services/lfk/frontend/commit/bd22d3be3626429fb3d82c881dfe58c41fdcd00b) +- Switched pipeline type to kubernetes [`ba9d458`](https://git.odit.services/lfk/frontend/commit/ba9d4587cb5ff203b5ad67681c333834ac3213a9) +- Fixed emptystate svg [`870e772`](https://git.odit.services/lfk/frontend/commit/870e772da27d1ee2bf59b4d110cd3161bc52a865) +- new license file version [CI SKIP] [`7d654f4`](https://git.odit.services/lfk/frontend/commit/7d654f4a208b42e43899d770137b6dc90a2a2aa4) +- Merge pull request 'Spnonsoring contract language selector feature/84-sponsoringcontract_language_selector' (#89) from feature/84-sponsoringcontract_language_selector into dev [`b810bb0`](https://git.odit.services/lfk/frontend/commit/b810bb01dbbe3d506af3852fcda8e1365a570c70) +- Merge pull request 'Usergroup management in the UI feature/48-usergroup-management' (#88) from feature/48-usergroup-management into dev [`434466b`](https://git.odit.services/lfk/frontend/commit/434466b306ec11ad46e5ee99bec22bdcd01872b6) +- Fixed root breadcrumb linking [`e1ac35f`](https://git.odit.services/lfk/frontend/commit/e1ac35f848e810191b98b2dc2b9f6ec7e4975f6f) +- Added missing translations 🌍 [`29f99f0`](https://git.odit.services/lfk/frontend/commit/29f99f0b2047686327fe8c6f6ae68427c6db724b) +- Formatting [`b8725c9`](https://git.odit.services/lfk/frontend/commit/b8725c96cdf8057498503728d8c8a7934983d14c) +- Fixed Back linking [`4397566`](https://git.odit.services/lfk/frontend/commit/4397566f1e9ce8f0f1e5a6ba7c3c500dddb64bd0) +- Fix for user permission availdable [`7e80608`](https://git.odit.services/lfk/frontend/commit/7e80608066d158221a36cb251d2ba4dd2a27c785) +- Dependency bump 👊 [`2b57d49`](https://git.odit.services/lfk/frontend/commit/2b57d49e4e703ca15dc151ab69614dd893e8a0a5) +- Removed filepond [`ca41f4d`](https://git.odit.services/lfk/frontend/commit/ca41f4d4f26871b2768a1cc1d438cd99f21956b9) +- Reimported simple.css [`e2fb9a6`](https://git.odit.services/lfk/frontend/commit/e2fb9a66adbc2ecb12b3705a24fd6469d0f3af38) +- Fixed store not being found [`543b3bd`](https://git.odit.services/lfk/frontend/commit/543b3bd937bdb8e0ac1fabee3c996be5d7874348) +- new license file version [CI SKIP] [`0c9785a`](https://git.odit.services/lfk/frontend/commit/0c9785af36807608970ff3c91549c7b694a9d5c4) +- Fixed address update bug [`14e5d0e`](https://git.odit.services/lfk/frontend/commit/14e5d0e7405f010e0d55aa31b0f3fd5f050d4f57) +- Removed debug output [`27609dc`](https://git.odit.services/lfk/frontend/commit/27609dc5e0bf9a78ef37f0b3b74cc2ca25bfddbf) +- Merge pull request 'Translated everything feature/65-translations' (#66) from feature/65-translations into dev [`3f54180`](https://git.odit.services/lfk/frontend/commit/3f5418083ff1a3ce883563610c8e4c67244df64f) +- Fixed import modal width [`d822e4a`](https://git.odit.services/lfk/frontend/commit/d822e4ab3f61a019c9bdea3e56acdea8711f1b8f) +- User permission update reactivity fix [`5994b22`](https://git.odit.services/lfk/frontend/commit/5994b22464e38fcde6f1073da073782d00dfbdc8) + #### [0.6.0](https://git.odit.services/lfk/frontend/compare/0.5.0...0.6.0) +> 12 February 2021 + - Merge pull request 'feature/52-runner-filters' (#63) from feature/52-runner-filters into dev [`#52`](https://git.odit.services/lfk/frontend/issues/52) - Merge pull request 'feature/43-password-reset' (#61) from feature/43-password-reset into dev [`#43`](https://git.odit.services/lfk/frontend/issues/43) - Merge pull request 'feature/51-teamoverview-badge-org' (#59) from feature/51-teamoverview-badge-org into dev [`#51`](https://git.odit.services/lfk/frontend/issues/51) @@ -19,6 +381,7 @@ All notable changes to this project will be documented in this file. Dates are d - 👀 ResetPassword - success and error states [`8b2f196`](https://git.odit.services/lfk/frontend/commit/8b2f1965e2a754da6e40a3051e8ae3e771d70336) - added Privacy page [`5741cbe`](https://git.odit.services/lfk/frontend/commit/5741cbe7562542ba2b81a9a6d6be7fb0f5145801) - ImportRunnerModal - differenciate between team and org import [`acf0562`](https://git.odit.services/lfk/frontend/commit/acf0562851a77b9122473ffb1753a94b4272e53b) +- 🚀RELEASE v0.6.0 [`087c85e`](https://git.odit.services/lfk/frontend/commit/087c85e58674e317cbe11bd135d3f051defa7911) - ✨ RunnersOverview - basic working filter [`575b4ce`](https://git.odit.services/lfk/frontend/commit/575b4ce9708625fbec23c49101f44825c6a75bce) - basic select filtering in RunnersOverview [`e415258`](https://git.odit.services/lfk/frontend/commit/e415258787c776d4a5291632f47c2fcceba9a040) - WIP on filter [`e23821a`](https://git.odit.services/lfk/frontend/commit/e23821a7cbe73fda420e4bcaaa2dbf5a89b56cc9) diff --git a/index.template.html b/index.template.html index cfe50ebd..c172557a 100644 --- a/index.template.html +++ b/index.template.html @@ -1,23 +1,23 @@ - - - - - - - - - - - - Lauf für Kaya! - Admin - __TAILWIND_INSERT__ - - - - - - - - - + + + + + + + + + + + + Lauf für Kaya! - Admin + __TAILWIND_INSERT__ + + + + + + + + + \ No newline at end of file diff --git a/package.json b/package.json index 431d16df..d8dd9033 100644 --- a/package.json +++ b/package.json @@ -1,62 +1,61 @@ -{ - "name": "@odit/lfk-frontend", - "version": "0.6.0", - "scripts": { - "i18n-order": "node order.js", - "dev:all": "yarn prebuild && snowpack dev", - "dev": "cross-env NODE_ENV_ODIT=development_fast node template-copy.js && yarn build:sw && snowpack dev", - "build": "yarn prebuild && snowpack build", - "prebuild": "cross-env NODE_ENV_ODIT=production node template-copy.js && yarn build:sw", - "build:sw": "workbox generateSW workbox-config.js", - "release": "release-it", - "licenses:export": "license-exporter --json -o public" - }, - "license": "CC-BY-NC-SA-4.0", - "dependencies": { - "@odit/lfk-client-js": "0.4.5", - "csvtojson": "^2.0.10", - "gridjs": "3.3.0", - "localforage": "1.9.0", - "lodash.isequal": "^4.5.0", - "marked": "^2.0.0", - "svelte-focus-trap": "1.0.1", - "svelte-i18n": "3.3.2", - "svelte-select": "^3.16.1", - "tailwindcss": "2.0.3", - "tinro": "0.5.12", - "toastify-js": "1.9.3", - "validator": "13.5.2", - "xlsx": "^0.16.9" - }, - "devDependencies": { - "@odit/license-exporter": "^0.0.10", - "@snowpack/plugin-svelte": "3.5.2", - "auto-changelog": "^2.2.1", - "autoprefixer": "10.2.4", - "cross-env": "^7.0.3", - "postcss": "8.2.6", - "postcss-load-config": "3.0.1", - "release-it": "^14.4.0", - "snowpack": "3.0.11", - "svelte": "3.32.3", - "svelte-preprocess": "4.6.8", - "workbox-cli": "6.1.0" - }, - "release-it": { - "git": { - "commit": true, - "requireCleanWorkingDir": false, - "commitMessage": "🚀RELEASE v${version}", - "push": false, - "tag": true, - "tagName": null, - "tagAnnotation": "v${version}" - }, - "npm": { - "publish": false - }, - "hooks": { - "after:bump": "npx auto-changelog --commit-limit false -p -u --hide-credit && git add CHANGELOG.md && node versionbuilder.js && git add index.template.html && node order.js && git add src/locales" - } - } -} +{ + "name": "@odit/lfk-frontend", + "version": "0.8.0", + "scripts": { + "i18n-order": "node order.js", + "dev:all": "yarn prebuild && snowpack dev", + "dev": "cross-env NODE_ENV_ODIT=development_fast node template-copy.js && yarn build:sw && snowpack dev", + "build": "yarn prebuild && snowpack build", + "prebuild": "cross-env NODE_ENV_ODIT=production node template-copy.js && yarn build:sw", + "build:sw": "workbox generateSW workbox-config.js", + "release": "release-it", + "licenses:export": "license-exporter --json -o public" + }, + "license": "CC-BY-NC-SA-4.0", + "dependencies": { + "@odit/lfk-client-js": "0.6.4", + "csvtojson": "^2.0.10", + "gridjs": "3.3.0", + "localforage": "1.9.0", + "marked": "^2.0.1", + "svelte-focus-trap": "1.0.1", + "svelte-i18n": "3.3.7", + "svelte-select": "^3.17.0", + "tailwindcss": "2.0.3", + "tinro": "0.6.1", + "toastify-js": "1.9.3", + "validator": "13.5.2", + "xlsx": "^0.16.9" + }, + "devDependencies": { + "@odit/license-exporter": "^0.0.11", + "@snowpack/plugin-svelte": "3.5.2", + "auto-changelog": "^2.2.1", + "autoprefixer": "10.2.5", + "cross-env": "^7.0.3", + "postcss": "8.2.8", + "postcss-load-config": "3.0.1", + "release-it": "^14.4.1", + "snowpack": "3.0.13", + "svelte": "3.35.0", + "svelte-preprocess": "4.6.9", + "workbox-cli": "6.1.2" + }, + "release-it": { + "git": { + "commit": true, + "requireCleanWorkingDir": false, + "commitMessage": "🚀RELEASE v${version}", + "push": false, + "tag": true, + "tagName": null, + "tagAnnotation": "v${version}" + }, + "npm": { + "publish": false + }, + "hooks": { + "after:bump": "npx auto-changelog --commit-limit false -p -u --hide-credit && git add CHANGELOG.md && node versionbuilder.js && git add index.template.html && node order.js && git add src/locales" + } + } +} diff --git a/public/licenses.json b/public/licenses.json index 936e445c..26b3ece2 100644 --- a/public/licenses.json +++ b/public/licenses.json @@ -1 +1 @@ -[{"author":"ODIT.Services","repo":{"type":"git","url":"git+https://git.odit.services/lfk/lfk-client-js"},"description":"A lib to interact with https://git.odit.services/lfk/backend. Use this version for native JS applications.","name":"@odit/lfk-client-js","license":"CC-BY-NC-SA-4.0","version":"0.4.5","licensetext":"Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Creative\r\nCommons Corporation (\"Creative Commons\") is not a law firm and does not provide\r\nlegal services or legal advice. Distribution of Creative Commons public licenses\r\ndoes not create a lawyer-client or other relationship. Creative Commons makes\r\nits licenses and related information available on an \"as-is\" basis. Creative\r\nCommons gives no warranties regarding its licenses, any material licensed\r\nunder their terms and conditions, or any related information. Creative Commons\r\ndisclaims all liability for damages resulting from their use to the fullest\r\nextent possible.\r\n\r\nUsing Creative Commons Public Licenses\r\n\r\nCreative Commons public licenses provide a standard set of terms and conditions\r\nthat creators and other rights holders may use to share original works of\r\nauthorship and other material subject to copyright and certain other rights\r\nspecified in the public license below. The following considerations are for\r\ninformational purposes only, are not exhaustive, and do not form part of our\r\nlicenses.\r\n\r\nConsiderations for licensors: Our public licenses are intended for use by\r\nthose authorized to give the public permission to use material in ways otherwise\r\nrestricted by copyright and certain other rights. Our licenses are irrevocable.\r\nLicensors should read and understand the terms and conditions of the license\r\nthey choose before applying it. Licensors should also secure all rights necessary\r\nbefore applying our licenses so that the public can reuse the material as\r\nexpected. Licensors should clearly mark any material not subject to the license.\r\nThis includes other CC-licensed material, or material used under an exception\r\nor limitation to copyright. More considerations for licensors : wiki.creativecommons.org/Considerations_for_licensors\r\n\r\nConsiderations for the public: By using one of our public licenses, a licensor\r\ngrants the public permission to use the licensed material under specified\r\nterms and conditions. If the licensor's permission is not necessary for any\r\nreason–for example, because of any applicable exception or limitation to copyright–then\r\nthat use is not regulated by the license. Our licenses grant only permissions\r\nunder copyright and certain other rights that a licensor has authority to\r\ngrant. Use of the licensed material may still be restricted for other reasons,\r\nincluding because others have copyright or other rights in the material. A\r\nlicensor may make special requests, such as asking that all changes be marked\r\nor described. Although not required by our licenses, you are encouraged to\r\nrespect those requests where reasonable. More considerations for the public\r\n: wiki.creativecommons.org/Considerations_for_licensees\r\n\r\nCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public\r\nLicense\r\n\r\nBy exercising the Licensed Rights (defined below), You accept and agree to\r\nbe bound by the terms and conditions of this Creative Commons Attribution-NonCommercial-ShareAlike\r\n4.0 International Public License (\"Public License\"). To the extent this Public\r\nLicense may be interpreted as a contract, You are granted the Licensed Rights\r\nin consideration of Your acceptance of these terms and conditions, and the\r\nLicensor grants You such rights in consideration of benefits the Licensor\r\nreceives from making the Licensed Material available under these terms and\r\nconditions.\r\n\r\nSection 1 – Definitions.\r\n\r\na. Adapted Material means material subject to Copyright and Similar Rights\r\nthat is derived from or based upon the Licensed Material and in which the\r\nLicensed Material is translated, altered, arranged, transformed, or otherwise\r\nmodified in a manner requiring permission under the Copyright and Similar\r\nRights held by the Licensor. For purposes of this Public License, where the\r\nLicensed Material is a musical work, performance, or sound recording, Adapted\r\nMaterial is always produced where the Licensed Material is synched in timed\r\nrelation with a moving image.\r\n\r\nb. Adapter's License means the license You apply to Your Copyright and Similar\r\nRights in Your contributions to Adapted Material in accordance with the terms\r\nand conditions of this Public License.\r\n\r\nc. BY-NC-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses,\r\napproved by Creative Commons as essentially the equivalent of this Public\r\nLicense.\r\n\r\nd. Copyright and Similar Rights means copyright and/or similar rights closely\r\nrelated to copyright including, without limitation, performance, broadcast,\r\nsound recording, and Sui Generis Database Rights, without regard to how the\r\nrights are labeled or categorized. For purposes of this Public License, the\r\nrights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.\r\n\r\ne. Effective Technological Measures means those measures that, in the absence\r\nof proper authority, may not be circumvented under laws fulfilling obligations\r\nunder Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996,\r\nand/or similar international agreements.\r\n\r\nf. Exceptions and Limitations means fair use, fair dealing, and/or any other\r\nexception or limitation to Copyright and Similar Rights that applies to Your\r\nuse of the Licensed Material.\r\n\r\ng. License Elements means the license attributes listed in the name of a Creative\r\nCommons Public License. The License Elements of this Public License are Attribution,\r\nNonCommercial, and ShareAlike.\r\n\r\nh. Licensed Material means the artistic or literary work, database, or other\r\nmaterial to which the Licensor applied this Public License.\r\n\r\ni. Licensed Rights means the rights granted to You subject to the terms and\r\nconditions of this Public License, which are limited to all Copyright and\r\nSimilar Rights that apply to Your use of the Licensed Material and that the\r\nLicensor has authority to license.\r\n\r\nj. Licensor means the individual(s) or entity(ies) granting rights under this\r\nPublic License.\r\n\r\nk. NonCommercial means not primarily intended for or directed towards commercial\r\nadvantage or monetary compensation. For purposes of this Public License, the\r\nexchange of the Licensed Material for other material subject to Copyright\r\nand Similar Rights by digital file-sharing or similar means is NonCommercial\r\nprovided there is no payment of monetary compensation in connection with the\r\nexchange.\r\n\r\nl. Share means to provide material to the public by any means or process that\r\nrequires permission under the Licensed Rights, such as reproduction, public\r\ndisplay, public performance, distribution, dissemination, communication, or\r\nimportation, and to make material available to the public including in ways\r\nthat members of the public may access the material from a place and at a time\r\nindividually chosen by them.\r\n\r\nm. Sui Generis Database Rights means rights other than copyright resulting\r\nfrom Directive 96/9/EC of the European Parliament and of the Council of 11\r\nMarch 1996 on the legal protection of databases, as amended and/or succeeded,\r\nas well as other essentially equivalent rights anywhere in the world.\r\n\r\nn. You means the individual or entity exercising the Licensed Rights under\r\nthis Public License. Your has a corresponding meaning.\r\n\r\nSection 2 – Scope.\r\n\r\n a. License grant.\r\n\r\n1. Subject to the terms and conditions of this Public License, the Licensor\r\nhereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive,\r\nirrevocable license to exercise the Licensed Rights in the Licensed Material\r\nto:\r\n\r\nA. reproduce and Share the Licensed Material, in whole or in part, for NonCommercial\r\npurposes only; and\r\n\r\nB. produce, reproduce, and Share Adapted Material for NonCommercial purposes\r\nonly.\r\n\r\n2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions\r\nand Limitations apply to Your use, this Public License does not apply, and\r\nYou do not need to comply with its terms and conditions.\r\n\r\n 3. Term. The term of this Public License is specified in Section 6(a).\r\n\r\n4. Media and formats; technical modifications allowed. The Licensor authorizes\r\nYou to exercise the Licensed Rights in all media and formats whether now known\r\nor hereafter created, and to make technical modifications necessary to do\r\nso. The Licensor waives and/or agrees not to assert any right or authority\r\nto forbid You from making technical modifications necessary to exercise the\r\nLicensed Rights, including technical modifications necessary to circumvent\r\nEffective Technological Measures. For purposes of this Public License, simply\r\nmaking modifications authorized by this Section 2(a)(4) never produces Adapted\r\nMaterial.\r\n\r\n 5. Downstream recipients.\r\n\r\nA. Offer from the Licensor – Licensed Material. Every recipient of the Licensed\r\nMaterial automatically receives an offer from the Licensor to exercise the\r\nLicensed Rights under the terms and conditions of this Public License.\r\n\r\nB. Additional offer from the Licensor – Adapted Material. Every recipient\r\nof Adapted Material from You automatically receives an offer from the Licensor\r\nto exercise the Licensed Rights in the Adapted Material under the conditions\r\nof the Adapter's License You apply.\r\n\r\nC. No downstream restrictions. You may not offer or impose any additional\r\nor different terms or conditions on, or apply any Effective Technological\r\nMeasures to, the Licensed Material if doing so restricts exercise of the Licensed\r\nRights by any recipient of the Licensed Material.\r\n\r\n6. No endorsement. Nothing in this Public License constitutes or may be construed\r\nas permission to assert or imply that You are, or that Your use of the Licensed\r\nMaterial is, connected with, or sponsored, endorsed, or granted official status\r\nby, the Licensor or others designated to receive attribution as provided in\r\nSection 3(a)(1)(A)(i).\r\n\r\n b. Other rights.\r\n\r\n1. Moral rights, such as the right of integrity, are not licensed under this\r\nPublic License, nor are publicity, privacy, and/or other similar personality\r\nrights; however, to the extent possible, the Licensor waives and/or agrees\r\nnot to assert any such rights held by the Licensor to the limited extent necessary\r\nto allow You to exercise the Licensed Rights, but not otherwise.\r\n\r\n2. Patent and trademark rights are not licensed under this Public License.\r\n\r\n3. To the extent possible, the Licensor waives any right to collect royalties\r\nfrom You for the exercise of the Licensed Rights, whether directly or through\r\na collecting society under any voluntary or waivable statutory or compulsory\r\nlicensing scheme. In all other cases the Licensor expressly reserves any right\r\nto collect such royalties, including when the Licensed Material is used other\r\nthan for NonCommercial purposes.\r\n\r\nSection 3 – License Conditions.\r\n\r\nYour exercise of the Licensed Rights is expressly made subject to the following\r\nconditions.\r\n\r\n a. Attribution.\r\n\r\n1. If You Share the Licensed Material (including in modified form), You must:\r\n\r\nA. retain the following if it is supplied by the Licensor with the Licensed\r\nMaterial:\r\n\r\ni. identification of the creator(s) of the Licensed Material and any others\r\ndesignated to receive attribution, in any reasonable manner requested by the\r\nLicensor (including by pseudonym if designated);\r\n\r\n ii. a copyright notice;\r\n\r\n iii. a notice that refers to this Public License;\r\n\r\n iv. a notice that refers to the disclaimer of warranties;\r\n\r\n \r\n\r\nv. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;\r\n\r\nB. indicate if You modified the Licensed Material and retain an indication\r\nof any previous modifications; and\r\n\r\nC. indicate the Licensed Material is licensed under this Public License, and\r\ninclude the text of, or the URI or hyperlink to, this Public License.\r\n\r\n2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner\r\nbased on the medium, means, and context in which You Share the Licensed Material.\r\nFor example, it may be reasonable to satisfy the conditions by providing a\r\nURI or hyperlink to a resource that includes the required information.\r\n\r\n3. If requested by the Licensor, You must remove any of the information required\r\nby Section 3(a)(1)(A) to the extent reasonably practicable.\r\n\r\nb. ShareAlike.In addition to the conditions in Section 3(a), if You Share\r\nAdapted Material You produce, the following conditions also apply.\r\n\r\n1. The Adapter's License You apply must be a Creative Commons license with\r\nthe same License Elements, this version or later, or a BY-NC-SA Compatible\r\nLicense.\r\n\r\n2. You must include the text of, or the URI or hyperlink to, the Adapter's\r\nLicense You apply. You may satisfy this condition in any reasonable manner\r\nbased on the medium, means, and context in which You Share Adapted Material.\r\n\r\n3. You may not offer or impose any additional or different terms or conditions\r\non, or apply any Effective Technological Measures to, Adapted Material that\r\nrestrict exercise of the rights granted under the Adapter's License You apply.\r\n\r\nSection 4 – Sui Generis Database Rights.\r\n\r\nWhere the Licensed Rights include Sui Generis Database Rights that apply to\r\nYour use of the Licensed Material:\r\n\r\na. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract,\r\nreuse, reproduce, and Share all or a substantial portion of the contents of\r\nthe database for NonCommercial purposes only;\r\n\r\nb. if You include all or a substantial portion of the database contents in\r\na database in which You have Sui Generis Database Rights, then the database\r\nin which You have Sui Generis Database Rights (but not its individual contents)\r\nis Adapted Material, including for purposes of Section 3(b); and\r\n\r\nc. You must comply with the conditions in Section 3(a) if You Share all or\r\na substantial portion of the contents of the database.\r\n\r\nFor the avoidance of doubt, this Section 4 supplements and does not replace\r\nYour obligations under this Public License where the Licensed Rights include\r\nother Copyright and Similar Rights.\r\n\r\nSection 5 – Disclaimer of Warranties and Limitation of Liability.\r\n\r\na. Unless otherwise separately undertaken by the Licensor, to the extent possible,\r\nthe Licensor offers the Licensed Material as-is and as-available, and makes\r\nno representations or warranties of any kind concerning the Licensed Material,\r\nwhether express, implied, statutory, or other. This includes, without limitation,\r\nwarranties of title, merchantability, fitness for a particular purpose, non-infringement,\r\nabsence of latent or other defects, accuracy, or the presence or absence of\r\nerrors, whether or not known or discoverable. Where disclaimers of warranties\r\nare not allowed in full or in part, this disclaimer may not apply to You.\r\n\r\nb. To the extent possible, in no event will the Licensor be liable to You\r\non any legal theory (including, without limitation, negligence) or otherwise\r\nfor any direct, special, indirect, incidental, consequential, punitive, exemplary,\r\nor other losses, costs, expenses, or damages arising out of this Public License\r\nor use of the Licensed Material, even if the Licensor has been advised of\r\nthe possibility of such losses, costs, expenses, or damages. Where a limitation\r\nof liability is not allowed in full or in part, this limitation may not apply\r\nto You.\r\n\r\nc. The disclaimer of warranties and limitation of liability provided above\r\nshall be interpreted in a manner that, to the extent possible, most closely\r\napproximates an absolute disclaimer and waiver of all liability.\r\n\r\nSection 6 – Term and Termination.\r\n\r\na. This Public License applies for the term of the Copyright and Similar Rights\r\nlicensed here. However, if You fail to comply with this Public License, then\r\nYour rights under this Public License terminate automatically.\r\n\r\nb. Where Your right to use the Licensed Material has terminated under Section\r\n6(a), it reinstates:\r\n\r\n1. automatically as of the date the violation is cured, provided it is cured\r\nwithin 30 days of Your discovery of the violation; or\r\n\r\n 2. upon express reinstatement by the Licensor.\r\n\r\nFor the avoidance of doubt, this Section 6(b) does not affect any right the\r\nLicensor may have to seek remedies for Your violations of this Public License.\r\n\r\nc. For the avoidance of doubt, the Licensor may also offer the Licensed Material\r\nunder separate terms or conditions or stop distributing the Licensed Material\r\nat any time; however, doing so will not terminate this Public License.\r\n\r\n d. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.\r\n\r\nSection 7 – Other Terms and Conditions.\r\n\r\na. The Licensor shall not be bound by any additional or different terms or\r\nconditions communicated by You unless expressly agreed.\r\n\r\nb. Any arrangements, understandings, or agreements regarding the Licensed\r\nMaterial not stated herein are separate from and independent of the terms\r\nand conditions of this Public License.\r\n\r\nSection 8 – Interpretation.\r\n\r\na. For the avoidance of doubt, this Public License does not, and shall not\r\nbe interpreted to, reduce, limit, restrict, or impose conditions on any use\r\nof the Licensed Material that could lawfully be made without permission under\r\nthis Public License.\r\n\r\nb. To the extent possible, if any provision of this Public License is deemed\r\nunenforceable, it shall be automatically reformed to the minimum extent necessary\r\nto make it enforceable. If the provision cannot be reformed, it shall be severed\r\nfrom this Public License without affecting the enforceability of the remaining\r\nterms and conditions.\r\n\r\nc. No term or condition of this Public License will be waived and no failure\r\nto comply consented to unless expressly agreed to by the Licensor.\r\n\r\nd. Nothing in this Public License constitutes or may be interpreted as a limitation\r\nupon, or waiver of, any privileges and immunities that apply to the Licensor\r\nor You, including from the legal processes of any jurisdiction or authority.\r\n\r\nCreative Commons is not a party to its public licenses. Notwithstanding, Creative\r\nCommons may elect to apply one of its public licenses to material it publishes\r\nand in those instances will be considered the \"Licensor.\" The text of the\r\nCreative Commons public licenses is dedicated to the public domain under the\r\nCC0 Public Domain Dedication. Except for the limited purpose of indicating\r\nthat material is shared under a Creative Commons public license or as otherwise\r\npermitted by the Creative Commons policies published at creativecommons.org/policies,\r\nCreative Commons does not authorize the use of the trademark \"Creative Commons\"\r\nor any other trademark or logo of Creative Commons without its prior written\r\nconsent including, without limitation, in connection with any unauthorized\r\nmodifications to any of its public licenses or any other arrangements, understandings,\r\nor agreements concerning use of licensed material. For the avoidance of doubt,\r\nthis paragraph does not form part of the public licenses.\r\n\r\nCreative Commons may be contacted at creativecommons.org.\r\n"},{"author":"Keyang Xiang ","repo":{"type":"git","url":"https://github.com/Keyang/node-csvtojson.git"},"description":"A tool concentrating on converting csv data to JSON with customised parser supporting","name":"csvtojson","license":"MIT","version":"2.0.10","licensetext":"Copyright (C) 2013 Keyang Xiang\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"},{"author":"Afshin Mehrabani ","repo":"https://github.com/grid-js/gridjs","description":"Advanced table plugin","name":"gridjs","license":"MIT","version":"3.3.0","licensetext":""},{"author":"Mozilla","repo":{"type":"git","url":"git://github.com/localForage/localForage.git"},"description":"Offline storage, improved.","name":"localforage","license":"Apache-2.0","version":"1.9.0","licensetext":" Apache License\n Version 2.0, January 2004\n http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n \"License\" shall mean the terms and conditions for use, reproduction,\n and distribution as defined by Sections 1 through 9 of this document.\n\n \"Licensor\" shall mean the copyright owner or entity authorized by\n the copyright owner that is granting the License.\n\n \"Legal Entity\" shall mean the union of the acting entity and all\n other entities that control, are controlled by, or are under common\n control with that entity. For the purposes of this definition,\n \"control\" means (i) the power, direct or indirect, to cause the\n direction or management of such entity, whether by contract or\n otherwise, or (ii) ownership of fifty percent (50%) or more of the\n outstanding shares, or (iii) beneficial ownership of such entity.\n\n \"You\" (or \"Your\") shall mean an individual or Legal Entity\n exercising permissions granted by this License.\n\n \"Source\" form shall mean the preferred form for making modifications,\n including but not limited to software source code, documentation\n source, and configuration files.\n\n \"Object\" form shall mean any form resulting from mechanical\n transformation or translation of a Source form, including but\n not limited to compiled object code, generated documentation,\n and conversions to other media types.\n\n \"Work\" shall mean the work of authorship, whether in Source or\n Object form, made available under the License, as indicated by a\n copyright notice that is included in or attached to the work\n (an example is provided in the Appendix below).\n\n \"Derivative Works\" shall mean any work, whether in Source or Object\n form, that is based on (or derived from) the Work and for which the\n editorial revisions, annotations, elaborations, or other modifications\n represent, as a whole, an original work of authorship. For the purposes\n of this License, Derivative Works shall not include works that remain\n separable from, or merely link (or bind by name) to the interfaces of,\n the Work and Derivative Works thereof.\n\n \"Contribution\" shall mean any work of authorship, including\n the original version of the Work and any modifications or additions\n to that Work or Derivative Works thereof, that is intentionally\n submitted to Licensor for inclusion in the Work by the copyright owner\n or by an individual or Legal Entity authorized to submit on behalf of\n the copyright owner. For the purposes of this definition, \"submitted\"\n means any form of electronic, verbal, or written communication sent\n to the Licensor or its representatives, including but not limited to\n communication on electronic mailing lists, source code control systems,\n and issue tracking systems that are managed by, or on behalf of, the\n Licensor for the purpose of discussing and improving the Work, but\n excluding communication that is conspicuously marked or otherwise\n designated in writing by the copyright owner as \"Not a Contribution.\"\n\n \"Contributor\" shall mean Licensor and any individual or Legal Entity\n on behalf of whom a Contribution has been received by Licensor and\n subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n copyright license to reproduce, prepare Derivative Works of,\n publicly display, publicly perform, sublicense, and distribute the\n Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n (except as stated in this section) patent license to make, have made,\n use, offer to sell, sell, import, and otherwise transfer the Work,\n where such license applies only to those patent claims licensable\n by such Contributor that are necessarily infringed by their\n Contribution(s) alone or by combination of their Contribution(s)\n with the Work to which such Contribution(s) was submitted. If You\n institute patent litigation against any entity (including a\n cross-claim or counterclaim in a lawsuit) alleging that the Work\n or a Contribution incorporated within the Work constitutes direct\n or contributory patent infringement, then any patent licenses\n granted to You under this License for that Work shall terminate\n as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n Work or Derivative Works thereof in any medium, with or without\n modifications, and in Source or Object form, provided that You\n meet the following conditions:\n\n (a) You must give any other recipients of the Work or\n Derivative Works a copy of this License; and\n\n (b) You must cause any modified files to carry prominent notices\n stating that You changed the files; and\n\n (c) You must retain, in the Source form of any Derivative Works\n that You distribute, all copyright, patent, trademark, and\n attribution notices from the Source form of the Work,\n excluding those notices that do not pertain to any part of\n the Derivative Works; and\n\n (d) If the Work includes a \"NOTICE\" text file as part of its\n distribution, then any Derivative Works that You distribute must\n include a readable copy of the attribution notices contained\n within such NOTICE file, excluding those notices that do not\n pertain to any part of the Derivative Works, in at least one\n of the following places: within a NOTICE text file distributed\n as part of the Derivative Works; within the Source form or\n documentation, if provided along with the Derivative Works; or,\n within a display generated by the Derivative Works, if and\n wherever such third-party notices normally appear. The contents\n of the NOTICE file are for informational purposes only and\n do not modify the License. You may add Your own attribution\n notices within Derivative Works that You distribute, alongside\n or as an addendum to the NOTICE text from the Work, provided\n that such additional attribution notices cannot be construed\n as modifying the License.\n\n You may add Your own copyright statement to Your modifications and\n may provide additional or different license terms and conditions\n for use, reproduction, or distribution of Your modifications, or\n for any such Derivative Works as a whole, provided Your use,\n reproduction, and distribution of the Work otherwise complies with\n the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n any Contribution intentionally submitted for inclusion in the Work\n by You to the Licensor shall be under the terms and conditions of\n this License, without any additional terms or conditions.\n Notwithstanding the above, nothing herein shall supersede or modify\n the terms of any separate license agreement you may have executed\n with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n names, trademarks, service marks, or product names of the Licensor,\n except as required for reasonable and customary use in describing the\n origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n agreed to in writing, Licensor provides the Work (and each\n Contributor provides its Contributions) on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n implied, including, without limitation, any warranties or conditions\n of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n PARTICULAR PURPOSE. You are solely responsible for determining the\n appropriateness of using or redistributing the Work and assume any\n risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n whether in tort (including negligence), contract, or otherwise,\n unless required by applicable law (such as deliberate and grossly\n negligent acts) or agreed to in writing, shall any Contributor be\n liable to You for damages, including any direct, indirect, special,\n incidental, or consequential damages of any character arising as a\n result of this License or out of the use or inability to use the\n Work (including but not limited to damages for loss of goodwill,\n work stoppage, computer failure or malfunction, or any and all\n other commercial damages or losses), even if such Contributor\n has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n the Work or Derivative Works thereof, You may choose to offer,\n and charge a fee for, acceptance of support, warranty, indemnity,\n or other liability obligations and/or rights consistent with this\n License. However, in accepting such obligations, You may act only\n on Your own behalf and on Your sole responsibility, not on behalf\n of any other Contributor, and only if You agree to indemnify,\n defend, and hold each Contributor harmless for any liability\n incurred by, or claims asserted against, such Contributor by reason\n of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n To apply the Apache License to your work, attach the following\n boilerplate notice, with the fields enclosed by brackets \"{}\"\n replaced with your own identifying information. (Don't include\n the brackets!) The text should be enclosed in the appropriate\n comment syntax for the file format. We also recommend that a\n file or class name and description of purpose be included on the\n same \"printed page\" as the copyright notice for easier\n identification within third-party archives.\n\n Copyright 2014 Mozilla\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n"},{"author":"John-David Dalton (http://allyoucanleet.com/)","repo":"lodash/lodash","description":"The Lodash method `_.isEqual` exported as a module.","name":"lodash.isequal","license":"MIT","version":"4.5.0","licensetext":"Copyright JS Foundation and other contributors \n\nBased on Underscore.js, copyright Jeremy Ashkenas,\nDocumentCloud and Investigative Reporters & Editors \n\nThis software consists of voluntary contributions made by many\nindividuals. For exact contribution history, see the revision history\navailable at https://github.com/lodash/lodash\n\nThe following license applies to all parts of this software except as\ndocumented below:\n\n====\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n====\n\nCopyright and related rights for sample code are waived via CC0. Sample\ncode is defined as all source code displayed within the prose of the\ndocumentation.\n\nCC0: http://creativecommons.org/publicdomain/zero/1.0/\n\n====\n\nFiles located in the node_modules and vendor directories are externally\nmaintained libraries used by this software which have their own\nlicenses; we recommend you read them, as their terms may differ from the\nterms above.\n"},{"author":"Christopher Jeffrey","repo":"git://github.com/markedjs/marked.git","description":"A markdown parser built for speed","name":"marked","license":"MIT","version":"2.0.1","licensetext":"# License information\n\n## Contribution License Agreement\n\nIf you contribute code to this project, you are implicitly allowing your code\nto be distributed under the MIT license. You are also implicitly verifying that\nall code is your original work. ``\n\n## Marked\n\nCopyright (c) 2018+, MarkedJS (https://github.com/markedjs/)\nCopyright (c) 2011-2018, Christopher Jeffrey (https://github.com/chjj/)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n## Markdown\n\nCopyright © 2004, John Gruber\nhttp://daringfireball.net/\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n* Neither the name “Markdown” nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n\nThis software is provided by the copyright holders and contributors “as is” and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.\n"},{"author":{"name":"Greg Larrenaga","url":"https://github.com/Duder-onomy"},"repo":"github:Duder-onomy/svelte-focus-trap","description":"A svelte directive that will trap and wrap focus within an element.","name":"svelte-focus-trap","license":"MIT","version":"1.0.1","licensetext":"The MIT License (MIT)\n\nCopyright (c) 2020\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."},{"author":"Christian Kaisermann ","repo":"https://github.com/kaisermann/svelte-i18n","description":"Internationalization library for Svelte","name":"svelte-i18n","license":"MIT","version":"3.3.2","licensetext":"Copyright 2017 Christian Kaisermann \n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"},{"author":"rob-balfre","repo":"https://rob-balfre@github.com/rob-balfre/svelte-select.git","description":"A component for Svelte apps","name":"svelte-select","license":"LIL","version":"3.17.0","licensetext":"Copyright (c) 2019 Robert Balfre\n\nPermission is hereby granted by the authors of this software, to any person, to use the software for any purpose, free of charge, including the rights to run, read, copy, change, distribute and sell it, and including usage rights to any patents the authors may hold on it, subject to the following conditions:\n\nThis license, or a link to its text, must be included with all copies of the software and any derivative works.\n\nAny modification to the software submitted to the authors may be incorporated into the software under the terms of this license.\n\nThe software is provided \"as is\", without warranty of any kind, including but not limited to the warranties of title, fitness, merchantability and non-infringement. The authors have no obligation to provide support or updates for the software, and may not be held liable for any damages, claims or other liability arising from its use.\n"},{"author":"?","repo":{"url":"https://github.com/tailwindlabs/tailwindcss"},"description":"A utility-first CSS framework for rapidly building custom user interfaces.","name":"tailwindcss","license":"MIT","version":"2.0.3","licensetext":"MIT License\n\nCopyright (c) Adam Wathan \nCopyright (c) Jonathan Reinink \n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"},{"author":"Alexey Schebelev","repo":{"type":"git","url":"https://github.com/AlexxNB/tinro"},"description":"tinro is a tiny declarative router for Svelte","name":"tinro","license":"MIT","version":"0.6.1","licensetext":"MIT License\n\nCopyright (c) 2020 Alexey Schebelev\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"},{"author":"Varun A P","repo":{"type":"git","url":"https://github.com/apvarun/toastify-js"},"description":"Toastify is a lightweight, vanilla JS toast notification library.","name":"toastify-js","license":"MIT","version":"1.9.3","licensetext":"MIT License\n\nCopyright (c) 2018 apvarun\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"},{"author":"Chris O'Hara ","repo":{"type":"git","url":"https://github.com/chriso/validator.js"},"description":"String validation and sanitization","name":"validator","license":"MIT","version":"13.5.2","licensetext":"Copyright (c) 2018 Chris O'Hara \n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"},{"author":"sheetjs","repo":{"type":"git","url":"https://github.comSheetJS/sheetjs"},"description":"SheetJS Spreadsheet data parser and writer","name":"xlsx","license":"Apache-2.0","version":"0.16.9","licensetext":" Apache License\n Version 2.0, January 2004\n http://www.apache.org/licenses/\n\n TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n 1. Definitions.\n\n \"License\" shall mean the terms and conditions for use, reproduction,\n and distribution as defined by Sections 1 through 9 of this document.\n\n \"Licensor\" shall mean the copyright owner or entity authorized by\n the copyright owner that is granting the License.\n\n \"Legal Entity\" shall mean the union of the acting entity and all\n other entities that control, are controlled by, or are under common\n control with that entity. For the purposes of this definition,\n \"control\" means (i) the power, direct or indirect, to cause the\n direction or management of such entity, whether by contract or\n otherwise, or (ii) ownership of fifty percent (50%) or more of the\n outstanding shares, or (iii) beneficial ownership of such entity.\n\n \"You\" (or \"Your\") shall mean an individual or Legal Entity\n exercising permissions granted by this License.\n\n \"Source\" form shall mean the preferred form for making modifications,\n including but not limited to software source code, documentation\n source, and configuration files.\n\n \"Object\" form shall mean any form resulting from mechanical\n transformation or translation of a Source form, including but\n not limited to compiled object code, generated documentation,\n and conversions to other media types.\n\n \"Work\" shall mean the work of authorship, whether in Source or\n Object form, made available under the License, as indicated by a\n copyright notice that is included in or attached to the work\n (an example is provided in the Appendix below).\n\n \"Derivative Works\" shall mean any work, whether in Source or Object\n form, that is based on (or derived from) the Work and for which the\n editorial revisions, annotations, elaborations, or other modifications\n represent, as a whole, an original work of authorship. For the purposes\n of this License, Derivative Works shall not include works that remain\n separable from, or merely link (or bind by name) to the interfaces of,\n the Work and Derivative Works thereof.\n\n \"Contribution\" shall mean any work of authorship, including\n the original version of the Work and any modifications or additions\n to that Work or Derivative Works thereof, that is intentionally\n submitted to Licensor for inclusion in the Work by the copyright owner\n or by an individual or Legal Entity authorized to submit on behalf of\n the copyright owner. For the purposes of this definition, \"submitted\"\n means any form of electronic, verbal, or written communication sent\n to the Licensor or its representatives, including but not limited to\n communication on electronic mailing lists, source code control systems,\n and issue tracking systems that are managed by, or on behalf of, the\n Licensor for the purpose of discussing and improving the Work, but\n excluding communication that is conspicuously marked or otherwise\n designated in writing by the copyright owner as \"Not a Contribution.\"\n\n \"Contributor\" shall mean Licensor and any individual or Legal Entity\n on behalf of whom a Contribution has been received by Licensor and\n subsequently incorporated within the Work.\n\n 2. Grant of Copyright License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n copyright license to reproduce, prepare Derivative Works of,\n publicly display, publicly perform, sublicense, and distribute the\n Work and such Derivative Works in Source or Object form.\n\n 3. Grant of Patent License. Subject to the terms and conditions of\n this License, each Contributor hereby grants to You a perpetual,\n worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n (except as stated in this section) patent license to make, have made,\n use, offer to sell, sell, import, and otherwise transfer the Work,\n where such license applies only to those patent claims licensable\n by such Contributor that are necessarily infringed by their\n Contribution(s) alone or by combination of their Contribution(s)\n with the Work to which such Contribution(s) was submitted. If You\n institute patent litigation against any entity (including a\n cross-claim or counterclaim in a lawsuit) alleging that the Work\n or a Contribution incorporated within the Work constitutes direct\n or contributory patent infringement, then any patent licenses\n granted to You under this License for that Work shall terminate\n as of the date such litigation is filed.\n\n 4. Redistribution. You may reproduce and distribute copies of the\n Work or Derivative Works thereof in any medium, with or without\n modifications, and in Source or Object form, provided that You\n meet the following conditions:\n\n (a) You must give any other recipients of the Work or\n Derivative Works a copy of this License; and\n\n (b) You must cause any modified files to carry prominent notices\n stating that You changed the files; and\n\n (c) You must retain, in the Source form of any Derivative Works\n that You distribute, all copyright, patent, trademark, and\n attribution notices from the Source form of the Work,\n excluding those notices that do not pertain to any part of\n the Derivative Works; and\n\n (d) If the Work includes a \"NOTICE\" text file as part of its\n distribution, then any Derivative Works that You distribute must\n include a readable copy of the attribution notices contained\n within such NOTICE file, excluding those notices that do not\n pertain to any part of the Derivative Works, in at least one\n of the following places: within a NOTICE text file distributed\n as part of the Derivative Works; within the Source form or\n documentation, if provided along with the Derivative Works; or,\n within a display generated by the Derivative Works, if and\n wherever such third-party notices normally appear. The contents\n of the NOTICE file are for informational purposes only and\n do not modify the License. You may add Your own attribution\n notices within Derivative Works that You distribute, alongside\n or as an addendum to the NOTICE text from the Work, provided\n that such additional attribution notices cannot be construed\n as modifying the License.\n\n You may add Your own copyright statement to Your modifications and\n may provide additional or different license terms and conditions\n for use, reproduction, or distribution of Your modifications, or\n for any such Derivative Works as a whole, provided Your use,\n reproduction, and distribution of the Work otherwise complies with\n the conditions stated in this License.\n\n 5. Submission of Contributions. Unless You explicitly state otherwise,\n any Contribution intentionally submitted for inclusion in the Work\n by You to the Licensor shall be under the terms and conditions of\n this License, without any additional terms or conditions.\n Notwithstanding the above, nothing herein shall supersede or modify\n the terms of any separate license agreement you may have executed\n with Licensor regarding such Contributions.\n\n 6. Trademarks. This License does not grant permission to use the trade\n names, trademarks, service marks, or product names of the Licensor,\n except as required for reasonable and customary use in describing the\n origin of the Work and reproducing the content of the NOTICE file.\n\n 7. Disclaimer of Warranty. Unless required by applicable law or\n agreed to in writing, Licensor provides the Work (and each\n Contributor provides its Contributions) on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n implied, including, without limitation, any warranties or conditions\n of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n PARTICULAR PURPOSE. You are solely responsible for determining the\n appropriateness of using or redistributing the Work and assume any\n risks associated with Your exercise of permissions under this License.\n\n 8. Limitation of Liability. In no event and under no legal theory,\n whether in tort (including negligence), contract, or otherwise,\n unless required by applicable law (such as deliberate and grossly\n negligent acts) or agreed to in writing, shall any Contributor be\n liable to You for damages, including any direct, indirect, special,\n incidental, or consequential damages of any character arising as a\n result of this License or out of the use or inability to use the\n Work (including but not limited to damages for loss of goodwill,\n work stoppage, computer failure or malfunction, or any and all\n other commercial damages or losses), even if such Contributor\n has been advised of the possibility of such damages.\n\n 9. Accepting Warranty or Additional Liability. While redistributing\n the Work or Derivative Works thereof, You may choose to offer,\n and charge a fee for, acceptance of support, warranty, indemnity,\n or other liability obligations and/or rights consistent with this\n License. However, in accepting such obligations, You may act only\n on Your own behalf and on Your sole responsibility, not on behalf\n of any other Contributor, and only if You agree to indemnify,\n defend, and hold each Contributor harmless for any liability\n incurred by, or claims asserted against, such Contributor by reason\n of your accepting any such warranty or additional liability.\n\n END OF TERMS AND CONDITIONS\n\n APPENDIX: How to apply the Apache License to your work.\n\n To apply the Apache License to your work, attach the following\n boilerplate notice, with the fields enclosed by brackets \"{}\"\n replaced with your own identifying information. (Don't include\n the brackets!) The text should be enclosed in the appropriate\n comment syntax for the file format. We also recommend that a\n file or class name and description of purpose be included on the\n same \"printed page\" as the copyright notice for easier\n identification within third-party archives.\n\n Copyright (C) 2012-present SheetJS LLC\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n"},{"author":"ODIT.Services","repo":{"type":"git","url":"https://git.odit.services/odit/license-exporter"},"description":"A simple license crawler for crediting open source work","name":"@odit/license-exporter","license":"MIT","version":"0.0.11","licensetext":"MIT License Copyright (c) 2020 ODIT.Services (info@odit.services)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is furnished\nto do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice (including the next\nparagraph) shall be included in all copies or substantial portions of the\nSoftware.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\nOR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF\nOR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"},{"author":"?","repo":{"type":"git","url":"https://github.com/snowpackjs/snowpack","directory":"plugins/plugin-svelte"},"description":"","name":"@snowpack/plugin-svelte","license":"MIT","version":"3.5.2","licensetext":""},{"author":"Pete Cook (https://github.com/cookpete)","repo":{"type":"git","url":"https://github.com/CookPete/auto-changelog"},"description":"Command line tool for generating a changelog from git tags and commit history","name":"auto-changelog","license":"MIT","version":"2.2.1","licensetext":"The MIT License\n\nCopyright (c) 2017 Pete Cook https://cookpete.com\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"},{"author":"Andrey Sitnik ","repo":{"url":"postcss/autoprefixer"},"description":"Parse CSS and add vendor prefixes to CSS rules using values from the Can I Use website","name":"autoprefixer","license":"MIT","version":"10.2.5","licensetext":"The MIT License (MIT)\n\nCopyright 2013 Andrey Sitnik \n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"},{"author":"Kent C. Dodds (https://kentcdodds.com)","repo":{"type":"git","url":"https://github.com/kentcdodds/cross-env"},"description":"Run scripts that set and use environment variables across platforms","name":"cross-env","license":"MIT","version":"7.0.3","licensetext":"The MIT License (MIT)\nCopyright (c) 2017 Kent C. Dodds\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"},{"author":"Andrey Sitnik ","repo":{"url":"postcss/postcss"},"description":"Tool for transforming styles with JS plugins","name":"postcss","license":"MIT","version":"8.2.8","licensetext":"The MIT License (MIT)\n\nCopyright 2013 Andrey Sitnik \n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"},{"author":"Michael Ciniawky ","repo":{"url":"postcss/postcss-load-config"},"description":"Autoload Config for PostCSS","name":"postcss-load-config","license":"MIT","version":"3.0.1","licensetext":"The MIT License (MIT)\n\nCopyright Michael Ciniawsky \n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"},{"author":"Lars Kappert","repo":{"type":"git","url":"https://github.com/release-it/release-it"},"description":"Generic CLI tool to automate versioning and package publishing related tasks.","name":"release-it","license":"MIT","version":"14.5.0","licensetext":"MIT License\n\nCopyright (c) 2018 Lars Kappert\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"},{"author":"Fred K. Schott ","repo":{"type":"git","url":"https://github.com/snowpackjs/snowpack"},"description":"The ESM-powered frontend build tool. Fast, lightweight, unbundled.","name":"snowpack","license":"MIT","version":"3.0.13","licensetext":"MIT License\n\nCopyright (c) 2019 Fred K. Schott\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"},{"author":"Rich Harris","repo":{"type":"git","url":"https://github.com/sveltejs/svelte"},"description":"Cybernetically enhanced web apps","name":"svelte","license":"MIT","version":"3.35.0","licensetext":"Copyright (c) 2016-21 [these people](https://github.com/sveltejs/svelte/graphs/contributors)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"},{"author":"Christian Kaisermann ","repo":{"url":"https://github.com/sveltejs/svelte-preprocess"},"description":"A Svelte preprocessor wrapper with baked-in support for commonly used preprocessors","name":"svelte-preprocess","license":"MIT","version":"4.6.9","licensetext":"Copyright (c) 2016-20 [these people](https://github.com/sveltejs/svelte-preprocess/graphs/contributors)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"},{"author":"Google's Web DevRel Team","repo":"https://github.com/GoogleChrome/workbox/tree/master/packages/workbox-cli","description":"workbox-cli is the command line interface for Workbox.","name":"workbox-cli","license":"MIT","version":"6.1.2","licensetext":"Copyright 2018 Google LLC\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"}] \ No newline at end of file diff --git a/src/App.svelte b/src/App.svelte index 3e30b8ad..5b78d33f 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -42,7 +42,7 @@ import MainDashContent from "./components/dashboard/MainDashContent.svelte"; import Users from "./components/users/Users.svelte"; import About from "./components/general/About.svelte"; - import Settings from "./components/general/Settings.svelte"; + import Settings from "./components/settings/Settings.svelte"; import Transition from "./components/base/Transition.svelte"; import Orgs from "./components/orgs/Orgs.svelte"; import Runners from "./components/runners/Runners.svelte"; @@ -69,6 +69,11 @@ import Donations from "./components/donations/Donations.svelte"; import DonationDetail from "./components/donations/DonationDetail.svelte"; import GroupDetail from "./components/groups/GroupDetail.svelte"; + import ScanStationsOverview from "./components/scanstations/ScanStationsOverview.svelte"; + import ScanStations from "./components/scanstations/ScanStations.svelte"; + import ScanStationDetail from "./components/scanstations/ScanStationDetail.svelte"; + import Scans from "./components/scans/Scans.svelte"; +import ScanDetail from "./components/scans/ScanDetail.svelte"; store.init(); registerSW(); @@ -180,6 +185,22 @@ + + + + + + + + + + + + + + + + diff --git a/src/components/dashboard/Dashboard.svelte b/src/components/dashboard/Dashboard.svelte index 4c66b23c..38505b49 100644 --- a/src/components/dashboard/Dashboard.svelte +++ b/src/components/dashboard/Dashboard.svelte @@ -172,21 +172,61 @@ {$_('tracks')} {/if} - - - - {$_('contacts')} - + {#if store.state.jwtinfo.userdetails.permissions.includes('SCAN:GET')} + + + + Scans + + {/if} + {#if store.state.jwtinfo.userdetails.permissions.includes('CONTACT:GET')} + + + + {$_('contacts')} + + {/if} + {#if store.state.jwtinfo.userdetails.permissions.includes('STATION:GET')} + + + + {$_('scanstations')} + + {/if} + option.firstname + " " + (option.middlename || "") + " " + option.lastname; + const filterDonors = (label, filterText, option) => + label.toLowerCase().includes(filterText.toLowerCase()) || + option.value.id.toString().startsWith(filterText.toLowerCase()); function focus(el) { el.focus(); } @@ -19,12 +25,14 @@ $: runners = []; $: is_fixed = false; DonorService.donorControllerGetAll().then((val) => { - donors = val; - donor = donors[0].id || 0; + donors = val.map((r) => { + return { label: getDonorLabel(r), value: r }; + }); }); RunnerService.runnerControllerGetAll().then((val) => { - runners = val; - runner = runners[0].id || 0; + runners = val.map((r) => { + return { label: getDonorLabel(r), value: r }; + }); }); $: amount_input = 0; $: processed_last_submit = true; @@ -158,7 +166,7 @@ class="hidden sm:inline-block sm:align-middle sm:h-screen" aria-hidden="true">​

- - {#if is_fixed}{$_('create-a-new-fixed-donation')}{:else}{$_('create-a-new-distance-donation')}{/if} + {#if is_fixed} + {$_('create-a-new-fixed-donation')} + {:else}{$_('create-a-new-distance-donation')}{/if}

- + - {#each runners as r} - - {/each} - + 0; + $: is_everything_set = + editable.donor != null && + ((original_data.responseType == "DISTANCEDONATION" && + editable?.runner != null) || + original_data.responseType !== "DISTANCEDONATION"); $: changes_performed = - !(original_comparison_string === JSON.stringify(editable)) || + !(JSON.stringify(original_data) === JSON.stringify(editable)) || (original_data.responseType == "DISTANCEDONATION" && !(Math.floor(amount_input * 100) === original_data.amountPerDistance)) || (original_data.responseType !== "DISTANCEDONATION" && !(Math.floor(amount_input * 100) === original_data.amount)); - $: save_enabled = changes_performed && is_amount_valid; - const donor_promise = DonorService.donorControllerGetAll().then((val) => { - current_donors = val; - }); - const runner_promise = RunnerService.runnerControllerGetAll().then((val) => { - current_runners = val; - }); + $: save_enabled = changes_performed && is_amount_valid && is_everything_set; + const promise = DonationService.donationControllerGetOne( params.donationid ).then((data) => { data_loaded = true; original_data = Object.assign(original_data, data); editable = Object.assign(editable, original_data); - editable.donor = data.donor.id; if (data.responseType == "DISTANCEDONATION") { - editable.runner = data.runner.id; amount_input = data.amountPerDistance / 100; + RunnerService.runnerControllerGetAll().then((val) => { + current_runners = val.map((r) => { + return { label: getDonorLabel(r), value: r }; + }); + runner = current_runners.find((g) => g.value.id == editable.runner.id); + }); } else { amount_input = data.amount / 100; } - original_comparison_string = JSON.stringify(editable); + DonorService.donorControllerGetAll().then((val) => { + current_donors = val.map((r) => { + return { label: getDonorLabel(r), value: r }; + }); + donor = current_donors.find((g) => g.value.id == editable.donor.id); + }); }); + const getDonorLabel = (option) => + option.firstname + " " + (option.middlename || "") + " " + option.lastname; + const filterDonors = (label, filterText, option) => + label.toLowerCase().includes(filterText.toLowerCase()) || + option.value.id.toString().startsWith(filterText.toLowerCase()); function submit() { if (data_loaded === true && save_enabled) { @@ -53,14 +69,18 @@ text: "Donation is being updated", duration: 2500, }).showToast(); + let postdata = {}; if (original_data.responseType === "DISTANCEDONATION") { editable.amountPerDistance = Math.floor(amount_input * 100); + postdata = Object.assign(postdata, editable); + postdata.runner = postdata.runner.id; + postdata.donor = postdata.donor.id; DonationService.donationControllerPutDistance( original_data.id, - editable + postdata ) .then((resp) => { - Object.assign(original_data, resp); + Object.assign(original_data, editable); original_data = original_data; Toastify({ text: "updated donation", @@ -71,7 +91,9 @@ .catch((err) => {}); } else { editable.amount = Math.floor(amount_input * 100); - DonationService.donationControllerPutFixed(original_data.id, editable) + postdata = Object.assign(postdata, editable); + postdata.donor = postdata.donor.id; + DonationService.donationControllerPutFixed(original_data.id, postdata) .then((resp) => { Object.assign(original_data, editable); original_data = original_data; @@ -103,7 +125,7 @@ } -{#await donor_promise && runner_promise && promise} +{#await promise} {$_('loading-donation-details')} {:then}
@@ -192,7 +214,8 @@
- {$_('total-donation-amount')}: + {$_('total-donation-amount')}: {(editable.amount / 100) .toFixed(2) .toLocaleString('de-DE', { valute: 'EUR' })}€ @@ -201,34 +224,32 @@ - + - {#each current_runners as r} - - {/each} - + - {#if !isGroupnameValid} - - {$_('group-name-is-required')} - - {/if} -
-
- - -
-
-

- {$_('permissions')} - {$_('edit-permissions')} -

-
- -
- {#each original_data.permissions as p} - {#if p.toLowerCase().includes(search_permission.toLowerCase())} - {p} - - {/if} - {/each} -
- -{:catch error} - -{/await} + + +{#await promise} + {$_('loading-group-detail')} +{:then} +
+
+
+ +
+
+
+ {original_data.name} + + {#if store.state.jwtinfo.userdetails.permissions.includes('USERGROUP:DELETE')} + {#if delete_triggered} + + + {/if} + {#if !delete_triggered} + + {/if} + {/if} + {#if !delete_triggered} + + {/if} + +
+ +
+ + + {#if !isGroupnameValid} + + {$_('group-name-is-required')} + + {/if} +
+
+ + +
+
+

+ {$_('permissions')} + {$_('edit-permissions')} +

+
+ +
+ {#each original_data.permissions as p} + {#if p.toLowerCase().includes(search_permission.toLowerCase())} + {p} + + {/if} + {/each} +
+
+{:catch error} + +{/await} diff --git a/src/components/groups/GroupPermissions.svelte b/src/components/groups/GroupPermissions.svelte index 8bd4714b..d2f81a9b 100644 --- a/src/components/groups/GroupPermissions.svelte +++ b/src/components/groups/GroupPermissions.svelte @@ -67,7 +67,6 @@ UserGroupService, delete p.responseType; grantedPermissions = grantedPermissions.concat([p]); }); - console.log(grantedPermissions) grantedPermissions_initial = grantedPermissions; }); diff --git a/src/components/orgs/OrgDetail.svelte b/src/components/orgs/OrgDetail.svelte index ea459cf0..d0dc8bd4 100644 --- a/src/components/orgs/OrgDetail.svelte +++ b/src/components/orgs/OrgDetail.svelte @@ -9,6 +9,7 @@ import ConfirmOrgDeletion from "./ConfirmOrgDeletion.svelte"; import ImportRunnerModal from "../runners/ImportRunnerModal.svelte"; import PromiseError from "../base/PromiseError.svelte"; + import Select from "svelte-select"; $: delete_triggered = false; $: address_valid_or_none = (isAddress1Valid && iszipcodevalid && iscityvalid) || @@ -19,22 +20,19 @@ let contacts = []; export let params; $: editable = {}; + $: contact = {}; $: data_loaded = false; $: data_changed = !(JSON.stringify(editable) === original); $: isAddress1Valid = editable.address?.address1?.trim().length !== 0; $: iszipcodevalid = editable.address?.postalcode?.trim().length !== 0; $: iscityvalid = editable.address?.city?.trim().length !== 0; $: sponsoring_contracts_download_open = false; - + const getContactLabel = (option) => + option.firstname + " " + (option.middlename || "") + " " + option.lastname; const promise = RunnerOrganizationService.runnerOrganizationControllerGetOne( params.orgid ).then((value) => { data_loaded = true; - if (value.contact) { - if (value.contact !== "null") { - value.contact = value.contact.id; - } - } value.address_checked = value.address.address1 !== null; if (value.address_checked === false) { value.address = { @@ -49,16 +47,23 @@ editable = editable; original_object = Object.assign(editable, value); original = JSON.stringify(value); - }); - GroupContactService.groupContactControllerGetAll().then((val) => { - contacts = val; + GroupContactService.groupContactControllerGetAll().then((val) => { + contacts = val.map((r) => { + return { label: getContactLabel(r), value: r }; + }); + if (editable.contact) { + contact = contacts.find((g) => g.value.id == editable.contact.id); + } else { + contact = null; + } + }); }); let modal_open = false; let delete_org = {}; document.addEventListener("click", function (e) { if ( - e.target.parentNode.parentNode.id != "sponsoring:dropdown" && - e.target.parentNode.parentNode.id != "sponsoring:dropdown:menu" + e.target.parentNode?.parentNode?.id != "sponsoring:dropdown" && + e.target.parentNode?.parentNode?.id != "sponsoring:dropdown:menu" ) { sponsoring_contracts_download_open = false; } @@ -91,13 +96,14 @@ if (postdata.address_checked === false) { postdata.address = null; } - postdata.contact = postdata.contact === "null" ? null : postdata.contact; + postdata.contact = postdata.contact?.id; RunnerOrganizationService.runnerOrganizationControllerPut( original_object.id, postdata ) .then((resp) => { - original = JSON.stringify(editable); + original_object = Object.assign({}, editable); + original = JSON.stringify(original_object); Toastify({ text: $_("updated-organization"), duration: 2500, @@ -188,7 +194,17 @@ aria-haspopup="true" aria-expanded="true"> {$_('generate-sponsoring-contracts')} - + + {#if sponsoring_contracts_download_open} @@ -349,19 +365,22 @@ - + {$_('team')} - + { - orgs = val; - if(opened_from === 'OrgOverview'){ - selected_org = orgs[0].id - } - }); - let teams = []; - RunnerTeamService.runnerTeamControllerGetAll().then((val) => { - teams = val; - if (opened_from === "RunnerOverview" && teams.length>0) { - selected_org_or_team = "TEAM_" + teams[0].id; - } - if(teams.length==0 && orgs.length>0){ - selected_org_or_team = "ORG_" + orgs[0].id - } + const orgs = val.map((r) => { + return { label: r.name, value: `ORG_${r.id}` }; + }); + groups = groups.concat(orgs); + RunnerTeamService.runnerTeamControllerGetAll().then((val) => { + const teams = val.map((r) => { + return { label: `${r.parentGroup.name} > ${r.name}`, value: `TEAM_${r.id}` }; + }); + groups = groups.concat(teams); + }); }); let selected_org; $: selected_org_or_team = ""; @@ -264,21 +261,23 @@ {/if} {#if opened_from === 'RunnerOverview'}

{$_('group')}

- + filterRunners(label, filterText, option)} + items={runners} + showChevron={true} + placeholder={$_('search-for-runner-by-name-or-id')} + noOptionsMessage={$_('no-runners-found')} + on:select={(selectedValue) => (runner = selectedValue.detail.value.id)} + on:clear={() => (runner = null)} /> + +
+ +
+ + m +
+ {#if !is_distance_valid} + + {$_('the-scans-distance-must-be-greater-than-0m')} + + {/if} +
+ + + + +
+ + +
+ + + +{/if} diff --git a/src/components/scans/ScanDetail.svelte b/src/components/scans/ScanDetail.svelte new file mode 100644 index 00000000..f054dad5 --- /dev/null +++ b/src/components/scans/ScanDetail.svelte @@ -0,0 +1,272 @@ + + +{#await promise} + Loading scan details +{:then} +
+
+
+ +
+
+
+ {runner.value?.firstname} + {runner.value?.middlename || ''} + {runner.value?.lastname} + #{original_data.id} + + {#if store.state.jwtinfo.userdetails.permissions.includes('SCAN:DELETE')} + {#if delete_triggered} + + + {/if} + {#if !delete_triggered} + + {/if} + {/if} + {#if !delete_triggered} + + {/if} + +
+ +
+ +   + { + editable.valid = !editable.valid; + }} + name="valid" + type="checkbox" + checked={editable.valid} + class="focus:ring-indigo-500 align-bottom h-7 w-5font-medium text-indigo-600 border-gray-300 rounded" /> +   +

+ {#if editable.valid}{$_('valid')}{:else}{$_('invalid')}{/if} +

+
+ {#if editable.responseType === 'TRACKSCAN'} +
+ + {editable.track.name} + +
+
+ +
+ {/if} +
+ + + m +
+ {#if !is_distance_valid} + + {$_('the-scans-distance-must-be-greater-than-0m')} + + {/if} + +
+{:catch error} + +{/await} diff --git a/src/components/scans/Scans.svelte b/src/components/scans/Scans.svelte new file mode 100644 index 00000000..984190a2 --- /dev/null +++ b/src/components/scans/Scans.svelte @@ -0,0 +1,29 @@ + + +
+ + {$_('scans')} + {#if store.state.jwtinfo.userdetails.permissions.includes('SCAN:CREATE')} + + {/if} + + +
+ +{#if store.state.jwtinfo.userdetails.permissions.includes('SCAN:CREATE')} + +{/if} diff --git a/src/components/scans/ScansEmptyState.svelte b/src/components/scans/ScansEmptyState.svelte new file mode 100644 index 00000000..f1964072 --- /dev/null +++ b/src/components/scans/ScansEmptyState.svelte @@ -0,0 +1,12 @@ + + +
+

+ + {$_('there-are-no-scans-yet')}
+ {$_('add-your-fist-scan')} +

+
diff --git a/src/components/scans/ScansOverview.svelte b/src/components/scans/ScansOverview.svelte new file mode 100644 index 00000000..81ccec1e --- /dev/null +++ b/src/components/scans/ScansOverview.svelte @@ -0,0 +1,201 @@ + + +{#if store.state.jwtinfo.userdetails.permissions.includes('SCAN:GET')} + {#await scans_promise} + + {:then} + {#if current_scans.length === 0} + + {:else} + +
+ + + + + + + + + + + + {#each current_scans as scan} + {#if scan.track?.name + .toLowerCase() + .includes( + searchvalue.toLowerCase() + ) || scan.runner?.firstname + .toLowerCase() + .includes( + searchvalue.toLowerCase() + ) || scan.runner?.middlename + .toLowerCase() + .includes( + searchvalue.toLowerCase() + ) || scan.runner?.lastname + .toLowerCase() + .includes( + searchvalue.toLowerCase() + ) || should_display_based_on_id(scan.id)} + + + + + + + {#if active_deletes[scan.id] === true} + + {:else} + + {/if} + + {/if} + {/each} + +
+ {$_('runner')} + + {$_('distance-track')} + + {$_('laptime')} + + {$_('status')} + + {$_('action')} +
+ + +
+ {#if scan.distance < 1000} + {scan.distance}m + {:else}{scan.distance / 1000}km{/if} + {#if scan.track} + {scan.track.name} + + {/if} +
+
+ {#if scan.responseType === "TRACKSCAN"} +
+ {format_laptime(scan.lapTime)} +
+ {:else} +
+ {$_('scan-with-fixed-distance')} +
+ {/if} +
+
+ {#if scan.valid} + {$_('valid')} + {:else} + {$_('invalid')} + {/if} +
+
+ + + + {$_('details')} + {#if store.state.jwtinfo.userdetails.permissions.includes('SCAN:DELETE')} + + {/if} +
+
+ {/if} + {:catch error} +
+ + {$_('general_promise_error')} + {error} + +
+ {/await} +{/if} diff --git a/src/components/scans/scans.svg b/src/components/scans/scans.svg new file mode 100644 index 00000000..13a97190 --- /dev/null +++ b/src/components/scans/scans.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/scanstations/AddScanStationModal.svelte b/src/components/scanstations/AddScanStationModal.svelte new file mode 100644 index 00000000..64603c54 --- /dev/null +++ b/src/components/scanstations/AddScanStationModal.svelte @@ -0,0 +1,205 @@ + + +{#if modal_open} +
{ + modal_open = false; + }}> +
+ +
+{/if} diff --git a/src/components/scanstations/ConfirmScanStationDeletion.svelte b/src/components/scanstations/ConfirmScanStationDeletion.svelte new file mode 100644 index 00000000..450ee494 --- /dev/null +++ b/src/components/scanstations/ConfirmScanStationDeletion.svelte @@ -0,0 +1,92 @@ + + +{#if modal_open} +
+
+ +
+{/if} diff --git a/src/components/scanstations/CopyScanStationTokenModal.svelte b/src/components/scanstations/CopyScanStationTokenModal.svelte new file mode 100644 index 00000000..2067b175 --- /dev/null +++ b/src/components/scanstations/CopyScanStationTokenModal.svelte @@ -0,0 +1,125 @@ + + +{#if copy_modal_open} + {#if valueCopy != null} + + {/if} +
+
+ +
+{/if} diff --git a/src/components/scanstations/ScanStationDetail.svelte b/src/components/scanstations/ScanStationDetail.svelte new file mode 100644 index 00000000..15b65af8 --- /dev/null +++ b/src/components/scanstations/ScanStationDetail.svelte @@ -0,0 +1,206 @@ + + + +{#await promise} + {$_('loading-station-details')} +{:then} +
+
+
+ +
+
+
+ #{original_data.id} + + {#if store.state.jwtinfo.userdetails.permissions.includes('STATION:DELETE')} + {#if delete_triggered} + + + {/if} + {#if !delete_triggered} + + {/if} + {/if} + {#if !delete_triggered} + + {/if} + +
+ +
+ + +
+
+ +
+

+ { + editable.enabled = !editable.enabled; + }} + name="enabled" + type="checkbox" + checked={editable.enabled} + class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded" /> + {$_('this-scanstation-is')} + {#if editable.enabled}{$_('enabled')}{:else}{$_('disabled')}{/if} +

+
+
+{:catch error} + +{/await} diff --git a/src/components/scanstations/ScanStations.svelte b/src/components/scanstations/ScanStations.svelte new file mode 100644 index 00000000..74b636af --- /dev/null +++ b/src/components/scanstations/ScanStations.svelte @@ -0,0 +1,33 @@ + + +
+ + {$_('scanstations')} + {#if store.state.jwtinfo.userdetails.permissions.includes('STATION:CREATE')} + + {/if} + + +
+ +{#if store.state.jwtinfo.userdetails.permissions.includes('STATION:CREATE')} + + +{/if} diff --git a/src/components/scanstations/ScanStationsEmptyState.svelte b/src/components/scanstations/ScanStationsEmptyState.svelte new file mode 100644 index 00000000..5a1baec6 --- /dev/null +++ b/src/components/scanstations/ScanStationsEmptyState.svelte @@ -0,0 +1,21 @@ + + +
+

+ + {$_('you-dont-have-any-scanstations-yet')}.
+ {$_('add-the-first-scanstation')} +

+
+ + + \ No newline at end of file diff --git a/src/components/scanstations/ScanStationsOverview.svelte b/src/components/scanstations/ScanStationsOverview.svelte new file mode 100644 index 00000000..72a64162 --- /dev/null +++ b/src/components/scanstations/ScanStationsOverview.svelte @@ -0,0 +1,169 @@ + + + { + modal_open = false; + active_deletes[event.detail.id] = false; + }} + bind:modal_open + bind:delete_station /> +{#if store.state.jwtinfo.userdetails.permissions.includes('STATION:GET')} + {#await promise} + + {:then} + {#if current_stations.length === 0} + + {:else} + +
+ + + + + + + + + + + {#each current_stations as s} + {#if Object.values(s) + .toString() + .toLowerCase() + .includes(searchvalue)} + + + + + {#if active_deletes[s.id] === true} + + {:else} + + {/if} + + {/if} + {/each} + +
+ {$_('track')} + + {$_('description')} + + {$_('status')} + + {$_('action')} +
+ + +
+
+
+ {s.description} +
+
+
+
+
+ {#if s.enabled} + {$_('active')} + {:else} + {$_('inactive')} + {/if} +
+
+ + + + {$_('details')} + {#if store.state.jwtinfo.userdetails.permissions.includes('STATION:DELETE')} + + {/if} +
+
+ {/if} + {:catch error} +
+ + {$_('general_promise_error')} + {error} + +
+ {/await} +{/if} diff --git a/src/components/scanstations/scanstations_empty.svg b/src/components/scanstations/scanstations_empty.svg new file mode 100644 index 00000000..e66691db --- /dev/null +++ b/src/components/scanstations/scanstations_empty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/settings/ConfirmProfileDeletion.svelte b/src/components/settings/ConfirmProfileDeletion.svelte new file mode 100644 index 00000000..10e79cd6 --- /dev/null +++ b/src/components/settings/ConfirmProfileDeletion.svelte @@ -0,0 +1,90 @@ + + +{#if modal_open} +
+
+ +
+{/if} diff --git a/src/components/settings/Settings.svelte b/src/components/settings/Settings.svelte new file mode 100644 index 00000000..e570390a --- /dev/null +++ b/src/components/settings/Settings.svelte @@ -0,0 +1,319 @@ + + + +
+
+

+ 🔨
{$_('settings')} +

+
+
+
+
+
+
+
+
+

+ {$_('profile')} +

+

+ {$_('everything-concerning-your-profile')} +

+
+
+ {#await user_promise} + {$_('loading-profile-data')} + {:then} +
+
+
+
+ + +
+ + {$_('profile-picture')} + + +
+
+
+ + +
+
+ + +
+ {#if !isEmail(editable.email)} + {$_('valid-email-is-required')} + {/if} +
+ + +
+
+ + +
+
+ + +
+
+
+ +
+
+
+ {/await} +
+
+
+
+
+
+
+
+

+ {$_('password')} +

+

+ {$_('change-your-password-here')} +

+
+
+ {#await user_promise} + {$_('loading-profile-data')} + {:then} +
+
+
+ +
+ +
+ +
+ +
+ {#if password_change != password_confirm && password_change.length > 0} + {$_('passwords-dont-match')} + {/if} +
+
+ + {#if update_password_enabled} +

+ {$_('after-the-update-youll-get-logged-out-please-login-with-your-new-password-after-that')} +

+ {/if} +
+
+
+ {/await} +
+
+
+
+
+
+
+
+

+ {$_('danger-zone')} +

+

+ {$_('stuff-that-could-harm-your-profile')} +

+
+
+ {#await user_promise} + {$_('loading-profile-data')} + {:then} +
+
+
+ + {#if delete_triggered} + + + {/if} + {#if !delete_triggered} + + {/if} + +
+
+
+ {/await} +
+
+
+
diff --git a/src/components/teams/AddTeamModal.svelte b/src/components/teams/AddTeamModal.svelte index db1e8106..06ba6a49 100644 --- a/src/components/teams/AddTeamModal.svelte +++ b/src/components/teams/AddTeamModal.svelte @@ -6,6 +6,7 @@ RunnerOrganizationService, RunnerTeamService, } from "@odit/lfk-client-js"; + import Select from "svelte-select"; import Toastify from "toastify-js"; export let modal_open; export let current_teams; @@ -34,7 +35,9 @@ $: parentGroup = undefined; $: orgs = []; RunnerOrganizationService.runnerOrganizationControllerGetAll().then((val) => { - orgs = val; + orgs = val.map((r) => { + return { label: r.name, value: r }; + }); }); function submit() { if (processed_last_submit === true) { @@ -90,7 +93,7 @@ class="hidden sm:inline-block sm:align-middle sm:h-screen" aria-hidden="true">​ -
- - -
-
- - -
-
- - -
-
- - -
- {#if !isEmail(editable_userdata.email)} - {$_('valid-email-is-required')} - {/if} -
- - -
-
- {$_('groups')} - - -
-
-

- {$_('permissions')} - {$_('edit-permissions')} -

-
- -
- {#each original_data.permissions as p} - {#if p.toLowerCase().includes(search_permission.toLowerCase())} - {p} - - {/if} - {/each} -
- -{:catch error} - -{/await} + + +{#await user_promise} + +{:then user} +
+
+
+ +
+
+
+ {original_data.firstname} + {original_data.middlename || ''} + {original_data.lastname} + + {#if store.state.jwtinfo.userdetails.permissions.includes('USER:DELETE')} + {#if delete_triggered} + + + {/if} + {#if !delete_triggered} + + {/if} + {/if} + {#if !delete_triggered} + + {/if} + +
+
+

{$_('profile-picture')}

+ {$_('profile-picture')} +
+
+ +
+

+ { + editable_userdata.enabled = !editable_userdata.enabled; + }} + name="enabled" + type="checkbox" + checked={editable_userdata.enabled} + class="focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded" /> + {$_('set-the-user-active-inactive')} +

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ {#if !isEmail(editable_userdata.email)} + {$_('valid-email-is-required')} + {/if} +
+ + +
+
+ {$_('groups')} + + +
+
+

+ {$_('permissions')} + {$_('edit-permissions')} +

+
+ +
+ {#each original_data.permissions as p} + {#if p.toLowerCase().includes(search_permission.toLowerCase())} + {p} + + {/if} + {/each} +
+
+{:catch error} + +{/await} diff --git a/src/locales/de.json b/src/locales/de.json index d6223ace..79a9d436 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -6,6 +6,7 @@ "active": "Aktiv", "add-donation": "Sponsoring erstellen", "add-donor": "Sponsor:in erstellen", + "add-scan": "Scan erstellen", "add-user-group": "Neue Gruppe erstellen", "add-your-first-contact": "Erstelle den ersten Kontakt", "add-your-first-donor": "Erstelle die erste Sponsor:in", @@ -15,8 +16,12 @@ "add-your-first-team": "Erstelle das erste Team", "add-your-first-track": "Erstelle den ersten Track (Laufstrecke).", "add-your-first-user": "Erstelle die erste Benutzer:in", + "add-your-fist-scan": "Füge deinene ersten Scan hinzu", + "adding-scan": "Scan wird hinzugefügt", "address": "Adresse", "address-is-required": "Du musst eine Adresse angeben", + "after-deletion-we-cant-restore-your-old-profile": "Nach der Löschung können auch die Admins dein Profil nicht wiederherstellen!", + "after-the-update-youll-get-logged-out-please-login-with-your-new-password-after-that": "Nach der Änderung wirst du abgemeldet - bitte melde dich dann mit deinem neuen Passwort an.", "all-associated-donations-will-get-deleted-as-well": "Alle Sponsorings dieser Sponsor:in werden ebenfalls gelöscht", "all-associated-runners-will-be-deleted-too": "Alle zugehörigen Läufer:innen werden auch gelöscht!", "all-associated-teams-and-runners-will-be-deleted-too": "Alle assoziierten Teams und Läufer:innen werden auch gelöscht!", @@ -31,18 +36,23 @@ "cancel": "Abbrechen", "cancel-delete": "Löschen abbrechen", "cancel-keep-donor": "Abbrechen, Sponsor:in behalten", + "cancel-keep-my-profile": "Abbrechen, mein Profil behalten", "cancel-keep-organization": "Abbrechen und Organisation bearbeiten", "cancel-keep-team": "Abbrechen, Team behalten", "cannot-reset-your-password-directly": "Schade. \nWir können das Passwort leider nicht direkt zurücksetzen.\nBitte sende uns eine Mail in der du deine Identität bestätigst.", + "change-your-password-here": "Hier kannst du dein Passwort ändern", + "changing-your-password": "Passwort wird geändert", "city": "Stadt", "close": "Schließen", "configure-the-tracks-and-minimum-lap-times": "Bearbeite die Tracks und ihre minimale Rundenzeit", "confirm": "Bestätigen", "confirm-delete": "Löschung Bestätigen", "confirm-delete-donor-with-all-donations": "Bestätigen, Sponsor:in mit allen Sponsorings löschen", + "confirm-delete-my-user-profile": "Bestätigung, mein Benutzerprofil löschen", "confirm-delete-organization-and-associated-teams-runners": "Bestätugung, lösche die Organisation und alle zugehörigen Teams und Läufer:innen.", "confirm-delete-team-and-associated-runners": "Bestätigung, lösche das Team mitsamt seinen Läufer:innen.", "confirm-deletion": "Löschung Bestätigen", + "confirm-the-new-password": "Neues Passwort bestätigen", "contact": "Kontakt", "contact-deleted": "Kontakt gelöscht", "contact-information": "Kontaktinformation", @@ -60,6 +70,8 @@ "create-a-new-fixed-donation": "Erstelle eine neue Festbetragsspende", "create-a-new-organization": "Neue Organisation anlegen", "create-a-new-runner": "Neue Läufer:in erstellen", + "create-a-new-scan-fixed-only": "Neuen Scan erstellen (nur mit Festdistanz)", + "create-a-new-scanstation": "Neue Station erstellen", "create-a-new-team": "Erstelle ein neues Team", "create-a-new-track": "Neuen Track erstellen", "create-a-new-user": "Neue Benutzer:in anlegen", @@ -74,6 +86,7 @@ "csv_import__lastname": "Nachname", "csv_import__middlename": "Mittelname", "csv_import__team": "Team", + "danger-zone": "Gefahrenzone", "dashboard-greeting": "Moin", "dashboard-title": "Dashboard", "datatable": { @@ -97,9 +110,13 @@ "delete-donor": "Sponsor:in löschen", "delete-group": "Gruppe löschen", "delete-organization": "Organisation löschen", + "delete-profile": "Profil löschen", "delete-runner": "Läufer:in löschen", + "delete-scan": "Scan löschen", + "delete-station": "Station löschen", "delete-team": "Team Löschen", "delete-user": "Benutzer:in löschen", + "deleted-scan": "Scan wurde gelöscht", "dependency_name": "Name", "description": "Beschreibung", "description-optional": "Beschreibung (optional)", @@ -108,6 +125,8 @@ "distance": "Distanz", "distance-donation": "Sponsoring", "distance-in-km": "Distanz (in KM)", + "distance-track": "Distanz (+Track)", + "do-you-really-want-to-delete-your-profile": "Möchtest du dein Profil wirklich löschen?", "do-you-want-to-delete-the-organization-delete_org-name": "Möchtest du die Organisation {orgname} löschen?", "do-you-want-to-delete-the-team-delete_team-name": "Möchtest du das Team {teamname} löschen?", "do-you-want-to-delete-this-donor-with-all-related-donations": "Möchtest du diese Sponsor:in mit all ihren Sponsorings löschen?", @@ -128,14 +147,17 @@ "edit": "Bearbeiten", "edit-permissions": "Berechtigungen bearbeiten", "email_address_or_username": "E-Mail-Adresse/ Benutzername", + "enabled": "aktiviert", "english": "Englisch", "error_on_login": "😢Fehler beim Login", "erteilte": "Direkt erteilte", + "everything-concerning-your-profile": "Alles zu deinem Profil", "everything-is-more-fun-together": "Im Team macht's mehr Spaß 🏃‍♂️🏃‍♀️🏃‍♂️", "faq": "FAQ", "filter-by-organization-team": "Filtern nach Organisation / Team", "first-name": "Vorname", "first-name-is-required": "Vorname muss angegeben werden", + "first-scan-of-the-day": "Erster Scan des Tages", "fixed-donation": "Festbetragsspende", "forgot_password": "Passwort vergessen?", "geerbte": "geerbte", @@ -156,6 +178,7 @@ "group-name-is-required": "Der Gruppenname muss angegeben werden.", "group-updated": "Gruppe aktualisiert", "groups": "Gruppen", + "groups-are-being-loaded": "Gruppen werden geladen", "home": "Start", "icon-image-credits": "Wir möchten uns außerdem für die verwendeten Icons und Bilder bedanken bei:", "import-finished": "Import abgeschlossen", @@ -166,9 +189,11 @@ "inactive": "Inaktiv", "installed-version": "Installierte Version", "internal-error": "Interner Fehler", + "invalid": "Ungültig", "invalid-mail-reset": "Das ist keine gültige E-Mail", "laeufer-hinzufuegen": "Läufer:in hinzufügen", "laeufer-importieren": "Läufer:innen importieren", + "laptime": "Rundenzeit", "last-name": "Nachname", "last-name-is-required": "Nachname muss angegeben werden", "lfk-is-os": "Das \"Lauf für Kaya!\" Frontend ist (wie alle anderen Projekte für den \"LfK!\" auch) ein OpenSource Projekt.", @@ -177,7 +202,10 @@ "loading-contact-details": "Kontaktdaten werden geladen ...", "loading-donation-details": "Lade Sponsoringdetails", "loading-donor-details": "Lade Details", + "loading-group-detail": "Lade Gruppendetails...", + "loading-profile-data": "Lade Profildaten", "loading-runners": "Läufer:innen werden geladen...", + "loading-station-details": "Lade Scanstation-Details ...", "log_in": "Anmelden", "log_in_to_your_account": "Bitte melde dich an", "login_is_checked": "Login wird überprüft", @@ -190,9 +218,15 @@ "name": "Name", "name-is-required": "Der Gruppenname muss angegeben werden", "new-password": "Neues Passwort", + "no-contact-found": "Keine Kontakte gefunden", + "no-contact-selected": "Kein Kontakt ausgewählt", "no-contact-specified": "Kein Kontakt angegeben", + "no-donors-found": "Keine Spender:innen gefunden", "no-license-text-could-be-found": "Kein Lizenz-Text gefunden 😢", + "no-organization-or-team-found": "Keine Organisationen oder Teams gefunden", "no-organization-specified": "Keine Organisation angegeben", + "no-organizations-found": "Keine Organisationen gefunden", + "no-runners-found": "Keine Läufer:innen gefunden", "no-tracks-added-yet": "Es wurden noch keine Tracks erstellt.", "organization": "Organisation", "organization-added": "Organisation hinzugefügt", @@ -205,11 +239,13 @@ "orgs": "Organisationen", "oss_credit_description": "Wir verwenden eine Menge Open Source-Software bei diesen Projekten und möchten uns bei den folgenden Projekten und Mitwirkenden bedanken, die dazu beitragen, Open Source großartig zu machen!", "password": "Passwort", + "password-changed": "Passwort wurde aktualisiert!", "password-is-required": "Passwort muss angegeben werden", "password-reset-failed": "Passwort zurücksetzen ist fehlgeschlagen!", "password-reset-in-progress": "Passwort wird zurückgesetzt...", "password-reset-mail-sent": "Passwort-Reset Mail wurde an \"{usersEmail}\" geschickt.", "password-reset-successful": "Passwort erfolgreich zurückgesetzt!", + "passwords-dont-match": "Die Passwörter stimmen nicht überein.", "pdf-generation-failed": "PDF Generierung fehlgeschlagen!", "pdf-successfully-generated": "PDF wurde erfolgreich generiert!", "pdfs-successfully-generated": "Alle PDFs wurden generiert!", @@ -220,6 +256,7 @@ "please-provide-a-password": "Bitte gebe ein Passwort an...", "please-provide-the-nessecary-information-to-add-a-new-donor": "Bitte mach die Notwendigen Angaben, um eine neue Sponsor:in zu erstellen", "please-provide-the-nessecary-information-to-create-a-new-donation": "Bitte gebe alle für das Sponsoring notwendigen Daten an.", + "please-provide-the-nessecary-information-to-create-a-new-scan": "Bitte gebe alle notwendigen Informationen an, um einen neuen Scan zu erstellen.", "please-provide-the-required-csv-xlsx-file": "Bitte eine CSV oder XLSX Datei hochladen.", "please-provide-the-required-information-for-creating-a-new-user-group": "Bitte gebe alle für eine neue Gruppe notwendigen Informationen an.", "please-provide-the-required-information-to-add-a-new-contact": "Bitte gebe alle nötigen Informationen an, im den neuen Kontakt zu erstellen.", @@ -231,7 +268,9 @@ "please-request-a-new-reset-mail": "Bitte eine neue Passwortreset-Mail anfordern...", "privacy": "Datenschutz", "privacy-loading": "Datenschutzerklärung lädt...", + "profile": "Profil", "profile-picture": "Profilbild", + "profile-updated": "Profil wurde aktualisiert!", "read-license": "Lizenz-Text lesen", "receipt-needed": "Spendenquittung benötigt", "repo_link": "Link", @@ -249,15 +288,29 @@ "runners-are-being-loaded": "Läufer:innen werden geladen ...", "save": "Speichern", "save-changes": "Änderungen speichern", + "scan-added": "Scan hinzugefügt", + "scan-is-being-updated": "Scan wird aktualisiert", + "scan-with-fixed-distance": "Scan mit Festdistanz", + "scans": "Scans", + "scans-are-being-loaded": "Scans werden geladen", + "scanstation": "Scanner Station", + "scanstations": "Scanner Stationen", + "scanstations-are-being-loaded": "Scannerstationen werden geladen...", + "search-for-an-organization-by-name-or-id": "Suche eine Organisation (via Name oder Id)", + "search-for-an-organization-or-team-by-name-or-id": "Suche eine Organisation oder ein Team (via Name oder Id)", + "search-for-donor-name-or-id": "Suche eine Spender:in (via Name oder Id)", "search-for-permission": "Berechtigungen durchsuchen", + "search-for-runner-by-name-or-id": "Suche eine Läufer:in (via Name oder Id)", "select-all": "Alle auswählen", "select-language": "Sprache auswählen", "send-a-mail-to-lfk-odit-services": "Sende eine Mail an lfk@odit.services", "set-the-user-active-inactive": "Den Benutzer auf (in)aktiv setzen", "settings": "Einstellungen", + "settings-for-your-profile": "Die Einstellungen deines Accounts", "something-about-the-group": "Infos zur Gruppe", "stats-are-being-loaded": "Die Statistiken werden geladen...", "status": "Status", + "stuff-that-could-harm-your-profile": "Einstellungen, die deinem Profil nachhaltig schaden können", "successful-password-reset": "Passwort erfolgreich zurückgesetzt!", "team": "Team", "team-detail-is-being-loaded": "Team wird geladen...", @@ -266,18 +319,22 @@ "teams": "Teams", "teams-are-being-loaded": "Teams werden geladen ...", "the-provided-phone-number-is-invalid-less-than-br-greater-than-please-enter-a-valid-international-number": "Die angegebene Telefonnummer ist nicht korrekt.
Bitte gebe eine Telefonnummer im internationalen Format an...", + "the-scans-distance-must-be-greater-than-0m": "Die Distanz muss größer als 0m sein.", "there-are-no-contacts-added-yet": "Es wurden noch keine Kontakte hinzugefügt.", "there-are-no-donors-yet": "Es gibt noch keine Sponsor:innen", "there-are-no-groups-yet": "Es gibt noch keine Gruppen", "there-are-no-organizations-added-yet": "Es wurden noch keine Organisationen hinzugefügt.", "there-are-no-runners-added-yet": "Es wurden noch keine Läufer:innen hinzugefügt.", + "there-are-no-scans-yet": "Es gibt noch keine scans", "there-are-no-teams-added-yet": "Es wurden noch keine Teams hinzugefügt.", "there-are-no-users-added-yet": "Es wurden noch keine Benutzer hinzugefügt.", "this-might-take-a-moment": "Das könnte einen kleinen Moment dauern", + "this-scanstation-is": "Diese Station ist", "total-distance": "gelaufene Strecke", "total-donation-amount": "Gesamtbetrag", "total-donations": "Spendensumme", "total-scans": "gesamte Scans", + "track": "Track", "track-added": "Track hinzugefügt", "track-data-is-being-loaded": "Trackdaten werden geladen", "track-is-being-added": "Track wird hinzugefügt...", @@ -286,26 +343,33 @@ "track-name": "Trackname", "track-name-must-not-be-empty": "Der Name muss angegeben werden", "tracks": "Tracks", + "update-password": "Passwort ändern", "updated-contact": "Kontakt aktualisiert!", "updated-donor": "Sponsor:in wurde aktualisiert", "updated-organization": "Organisation wurde aktualisiert", + "updated-scan": "Scan wurde aktualisiert", "updateing-group": "Gruppe wird aktualisiert...", "updating-organization": "Organisation wird aktualisiert", "updating-permissions": "Berechtigungen werden aktualisiert...", "updating-runner": "Läufer:in wird aktualisiert.", "updating-user": "Benutzer:in wird aktualisiert...", + "updating-your-profile": "Profil wird aktualisiert...", "user-added": "Benutzer hinzugefügt", "user-groups": "Benutzergruppen", "user-is-being-added": "Benutzer wird hinzugefügt ...", "user-updated": "Benutzer:in wurde aktualisiert", "username": "Benutzername", "users": "Benutzer", + "valid": "Gültig", "valid-city-is-required": "Du musst eine Stadt angeben", "valid-email-is-required": "Es wird eine valide E-Mail Adresse benötigt", "valid-international-phone-number-is-required": "Du musst eine Telefonnummer im internationalen Format angeben...", "valid-zipcode-postal-code-is-required": "Du musst eine valide Postleitzahl angeben", "verfuegbare": "Verfügbar", "welcome_wavinghand": "Willkommen 👋", + "yes-i-copied-the-token": "Ja, ich habe den Token kopiert", + "you-are-going-to-loose-all-permissions-and-access-to-the-runner-system": "Du wirst all deine Berechtigungen und den Zugriff aufs Läufersystem verlieren!", "you-can-now-use-your-new-password-to-log-in-to-your-account": "Du kannst dich jetzt mit deinem neuen Passwort anmelden! 🎉", + "you-have-to-provide-an-organization": "Du musst eine Organisation angeben", "zip-postal-code": "Postleitzahl" } \ No newline at end of file diff --git a/src/locales/en.json b/src/locales/en.json index d4d5de0d..d68823ea 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -6,6 +6,7 @@ "active": "Active", "add-donation": "Add donation", "add-donor": "add donor", + "add-scan": "Add scan", "add-user-group": "Add User Group", "add-your-first-contact": "Add your first contact", "add-your-first-donor": "add your first donor", @@ -15,8 +16,12 @@ "add-your-first-team": "Add your first team", "add-your-first-track": "Add your first track.", "add-your-first-user": "Add your first user", + "add-your-fist-scan": "Add your fist scan", + "adding-scan": "Adding Scan", "address": "Address", "address-is-required": "Address is required", + "after-deletion-we-cant-restore-your-old-profile": "After deletion we can't restore your old profile!", + "after-the-update-youll-get-logged-out-please-login-with-your-new-password-after-that": "After the update you'll get logged out - Please login with your new password after that.", "all-associated-donations-will-get-deleted-as-well": "All associated donations will get deleted as well", "all-associated-runners-will-be-deleted-too": "All associated runners will be deleted too!", "all-associated-teams-and-runners-will-be-deleted-too": "All associated teams and runners will be deleted too!", @@ -31,18 +36,23 @@ "cancel": "Cancel", "cancel-delete": "Cancel Delete", "cancel-keep-donor": "Cancel, keep donor", + "cancel-keep-my-profile": "Cancel, keep my profile", "cancel-keep-organization": "Cancel, keep organization", "cancel-keep-team": "Cancel, keep team", "cannot-reset-your-password-directly": "Bummer. We unfortunately cannot reset your password directly. Please send us a mail and confirm your identity", + "change-your-password-here": "Change your password here", + "changing-your-password": "Changing your password", "city": "City", "close": "Close", "configure-the-tracks-and-minimum-lap-times": "configure the tracks & minimum lap times", "confirm": "Confirm", "confirm-delete": "Confirm Delete", "confirm-delete-donor-with-all-donations": "Confirm, delete donor with all donations", + "confirm-delete-my-user-profile": "Confirm, delete my user profile", "confirm-delete-organization-and-associated-teams-runners": "Confirm, delete organization and associated teams+runners.", "confirm-delete-team-and-associated-runners": "Confirm, delete team and associated runners.", "confirm-deletion": "Confirm Deletion", + "confirm-the-new-password": "Confirm the new password", "contact": "Contact", "contact-deleted": "Contact deleted", "contact-information": "Contact Information", @@ -60,6 +70,8 @@ "create-a-new-fixed-donation": "Create a new fixed donation", "create-a-new-organization": "Create a new Organization", "create-a-new-runner": "Create a new Runner", + "create-a-new-scan-fixed-only": "Create a new scan (fixed only)", + "create-a-new-scanstation": "Create a new station", "create-a-new-team": "Create a new team", "create-a-new-track": "Create a new Track", "create-a-new-user": "Create a new User", @@ -74,6 +86,7 @@ "csv_import__lastname": "Lastname", "csv_import__middlename": "Middlename", "csv_import__team": "Team", + "danger-zone": "Danger zone", "dashboard-greeting": "hello there", "dashboard-title": "Dashboard", "datatable": { @@ -97,9 +110,13 @@ "delete-donor": "Delete donor", "delete-group": "Delete Group", "delete-organization": "Delete Organization", + "delete-profile": "Delete Profile", "delete-runner": "Delete Runner", + "delete-scan": "Delete scan", + "delete-station": "Delete station", "delete-team": "Delete Team", "delete-user": "Delete User", + "deleted-scan": "Deleted scan", "dependency_name": "Name", "description": "description", "description-optional": "Description (optional)", @@ -108,6 +125,8 @@ "distance": "Distance", "distance-donation": "distance donation", "distance-in-km": "Distance in km", + "distance-track": "Distance (+Track)", + "do-you-really-want-to-delete-your-profile": "Do you really want to delete your profile?", "do-you-want-to-delete-the-organization-delete_org-name": "Do you want to delete the organization {orgname}?", "do-you-want-to-delete-the-team-delete_team-name": "Do you want to delete the team {teamname}?", "do-you-want-to-delete-this-donor-with-all-related-donations": "Do you want to delete this donor with all related donations", @@ -128,14 +147,17 @@ "edit": "Edit", "edit-permissions": "edit permissions", "email_address_or_username": "Email / username", + "enabled": "enabled", "english": "English", "error_on_login": "Error on login", "erteilte": "Directly granted", + "everything-concerning-your-profile": "Everything concerning your profile", "everything-is-more-fun-together": "everything is more fun together 🏃‍♂️🏃‍♀️🏃‍♂️", "faq": "FAQ", "filter-by-organization-team": "Filter by Organization/ Team", "first-name": "First name", "first-name-is-required": "First Name is required", + "first-scan-of-the-day": "First scan of the day.", "fixed-donation": "fixed donation", "forgot_password": "Forgot your password?", "geerbte": "inherited", @@ -156,6 +178,7 @@ "group-name-is-required": "Group name is required", "group-updated": "group updated", "groups": "Groups", + "groups-are-being-loaded": "Groups are being loaded", "home": "Home", "icon-image-credits": "We also want to thank these projects for illustrations and icons:", "import-finished": "Import finished", @@ -166,9 +189,11 @@ "inactive": "Inactive", "installed-version": "Installed version", "internal-error": "Internal Error", + "invalid": "Invalid", "invalid-mail-reset": "the provided email is invalid", "laeufer-hinzufuegen": "Add runner", "laeufer-importieren": "Läufer importieren", + "laptime": "Laptime", "last-name": "Last name", "last-name-is-required": "Last Name is required", "lfk-is-os": "The \"Lauf für Kaya!\" Frontend is (like all other projects for the \"LfK!\" Also) an open source project.", @@ -177,7 +202,10 @@ "loading-contact-details": "Loading contact details...", "loading-donation-details": "Loading donation details", "loading-donor-details": "Loading donor details", + "loading-group-detail": "Loading group detail...", + "loading-profile-data": "Loading profile data", "loading-runners": "loading runners...", + "loading-station-details": "Loading station details", "log_in": "Log in", "log_in_to_your_account": "Log in to your account", "login_is_checked": "Login is being checked...", @@ -190,9 +218,15 @@ "name": "Name", "name-is-required": "Name is required", "new-password": "New password", + "no-contact-found": "No contacts found", + "no-contact-selected": "No contact selected", "no-contact-specified": "no contact specified", + "no-donors-found": "No donors found", "no-license-text-could-be-found": "No license text could be found 😢", + "no-organization-or-team-found": "No organization or team found", "no-organization-specified": "no organization specified", + "no-organizations-found": "No organizations found", + "no-runners-found": "No runners found", "no-tracks-added-yet": "there are no tracks added yet.", "organization": "Organization", "organization-added": "Organization added", @@ -202,14 +236,16 @@ "organization-name-is-required": "Organization name is required", "organizations": "Organizations", "organizations-are-being-loaded": "organizations are being loaded...", - "orgs": "Orgs", + "orgs": "Organizations", "oss_credit_description": "We use a lot of open source software on these projects, and would like to thank the following projects and contributors who help make open source great!", "password": "Password", + "password-changed": "Password changed!", "password-is-required": "Password is required", "password-reset-failed": "Password reset failed!", "password-reset-in-progress": "Password Reset in Progress...", "password-reset-mail-sent": "Password reset mail was sent to \"{usersEmail}\".", "password-reset-successful": "Password Reset successful!", + "passwords-dont-match": "Passwords don't match", "pdf-generation-failed": "PDF generation failed!", "pdf-successfully-generated": "PDF successfully generated!", "pdfs-successfully-generated": "PDFs successfully generated!", @@ -220,6 +256,7 @@ "please-provide-a-password": "Please provide a password...", "please-provide-the-nessecary-information-to-add-a-new-donor": "Please provide the nessecary information to add a new donor", "please-provide-the-nessecary-information-to-create-a-new-donation": "Please provide the nessecary information to create a new donation", + "please-provide-the-nessecary-information-to-create-a-new-scan": "Please provide the nessecary information to create a new scan.", "please-provide-the-required-csv-xlsx-file": "Please provide the required csv/ xlsx file", "please-provide-the-required-information-for-creating-a-new-user-group": "Please provide the required information for creating a new user group.", "please-provide-the-required-information-to-add-a-new-contact": "Please provide the required information to add a new contact.", @@ -231,7 +268,9 @@ "please-request-a-new-reset-mail": "Please request a new reset mail...", "privacy": "Privacy", "privacy-loading": "Privacy loading...", + "profile": "Profile", "profile-picture": "Profile Picture", + "profile-updated": "Profile updated!", "read-license": "Read License", "receipt-needed": "Receipt needed", "repo_link": "Link", @@ -249,15 +288,29 @@ "runners-are-being-loaded": "runners are being loaded...", "save": "Save", "save-changes": "Save Changes", + "scan-added": "Scan added", + "scan-is-being-updated": "Scan is being updated", + "scan-with-fixed-distance": "Scan with fixed distance", + "scans": "Scans", + "scans-are-being-loaded": "Scans are being loaded", + "scanstation": "Scanstation", + "scanstations": "Scanstations", + "scanstations-are-being-loaded": "Loading scanstations...", + "search-for-an-organization-by-name-or-id": "Search for an organization (by name or id)", + "search-for-an-organization-or-team-by-name-or-id": "Search for an organization or team (by name or id)", + "search-for-donor-name-or-id": "Search for donor (by name or id)", "search-for-permission": "Search for permission", + "search-for-runner-by-name-or-id": "Search for runner (by name or id)", "select-all": "select all", "select-language": "Select language", "send-a-mail-to-lfk-odit-services": "send a mail to lfk@odit.services", "set-the-user-active-inactive": "set the user active/ inactive", "settings": "Settings", + "settings-for-your-profile": "Settings for your profile", "something-about-the-group": "Something about the group...", "stats-are-being-loaded": "stats are being loaded...", "status": "Status", + "stuff-that-could-harm-your-profile": "Stuff that could harm your profile", "successful-password-reset": "Successful password reset!", "team": "Team", "team-detail-is-being-loaded": "team detail is being loaded...", @@ -266,18 +319,22 @@ "teams": "Teams", "teams-are-being-loaded": "teams are being loaded...", "the-provided-phone-number-is-invalid-less-than-br-greater-than-please-enter-a-valid-international-number": "the provided phone number is invalid.
please enter a valid international number...", + "the-scans-distance-must-be-greater-than-0m": "The scan's distance must be greater than 0m", "there-are-no-contacts-added-yet": "There are no contacts added yet.", "there-are-no-donors-yet": "There are no donors yet", "there-are-no-groups-yet": "There are no groups yet", "there-are-no-organizations-added-yet": "There are no organizations added yet.", "there-are-no-runners-added-yet": "There are no runners added yet.", + "there-are-no-scans-yet": "There are no scans yet", "there-are-no-teams-added-yet": "There are no teams added yet.", "there-are-no-users-added-yet": "There are no users added yet.", "this-might-take-a-moment": "This might take a moment 👀", + "this-scanstation-is": "This scanstation is", "total-distance": "total distance", "total-donation-amount": "total donation amount", "total-donations": "total donations", "total-scans": "total scans", + "track": "Track", "track-added": "Track added", "track-data-is-being-loaded": "Track data is being loaded", "track-is-being-added": "Track is being added...", @@ -286,26 +343,33 @@ "track-name": "Track name", "track-name-must-not-be-empty": "Track name must not be empty", "tracks": "Tracks", + "update-password": "Update password", "updated-contact": "Updated contact!", "updated-donor": "updated donor", "updated-organization": "updated organization", + "updated-scan": "updated scan", "updateing-group": "updateing group...", "updating-organization": "updating organization", "updating-permissions": "updating permissions...", "updating-runner": "Updating runner...", "updating-user": "updating user...", + "updating-your-profile": "Updating your profile...", "user-added": "User added", "user-groups": "User Groups", "user-is-being-added": "User is being added...", "user-updated": "User updated", "username": "Username", "users": "Users", + "valid": "Valid", "valid-city-is-required": "Valid city is required", "valid-email-is-required": "valid email is required", "valid-international-phone-number-is-required": "valid international phone number is required...", "valid-zipcode-postal-code-is-required": "Valid zipcode/ postal code is required", "verfuegbare": "availdable", "welcome_wavinghand": "Welcome 👋", + "yes-i-copied-the-token": "Yes, I copied the token", + "you-are-going-to-loose-all-permissions-and-access-to-the-runner-system": "You are going to loose all permissions and access to the runner system!", "you-can-now-use-your-new-password-to-log-in-to-your-account": "You can now use your new password to log in to your account! 🎉", + "you-have-to-provide-an-organization": "You have to provide an organization", "zip-postal-code": "ZIP/ postal code" } \ No newline at end of file