From 6573ba9553b40cea4e9697544f9b97a3a41d570f Mon Sep 17 00:00:00 2001 From: David Ralph Date: Sat, 17 Apr 2021 11:17:46 +0100 Subject: [PATCH] fix: various fixes and date zero-padded feature --- src/components/modals/ErrorBoundary.jsx | 10 ++-- src/components/modals/main/scss/index.scss | 4 ++ .../modals/main/settings/Dropdown.jsx | 4 ++ src/components/modals/main/settings/Radio.jsx | 4 ++ .../main/settings/sections/Changelog.jsx | 2 +- .../main/settings/sections/Language.jsx | 53 +++++++++++++++---- .../modals/main/settings/sections/Time.jsx | 1 + src/components/widgets/quote/Quote.jsx | 2 +- src/components/widgets/time/Date.jsx | 6 ++- src/modules/default_settings.json | 4 ++ src/modules/quote_languages.json | 10 ---- src/translations/de_DE.json | 9 ++-- 12 files changed, 74 insertions(+), 35 deletions(-) delete mode 100644 src/modules/quote_languages.json diff --git a/src/components/modals/ErrorBoundary.jsx b/src/components/modals/ErrorBoundary.jsx index 0c5b9622..763b24c2 100644 --- a/src/components/modals/ErrorBoundary.jsx +++ b/src/components/modals/ErrorBoundary.jsx @@ -19,10 +19,12 @@ export default class ErrorBoundary extends React.PureComponent { render() { if (this.state.error) { return ( -
-

{this.language.title}

-

{this.language.message}

- +
+
+

{this.language.title}

+

{this.language.message}

+ +
); } diff --git a/src/components/modals/main/scss/index.scss b/src/components/modals/main/scss/index.scss index 1bece88e..33c2e24c 100644 --- a/src/components/modals/main/scss/index.scss +++ b/src/components/modals/main/scss/index.scss @@ -367,3 +367,7 @@ li { .MuiIconButton-root { color: var(--modal-text) !important; } + +.MuiFormControl-root { + margin-top: 10px !important; +} diff --git a/src/components/modals/main/settings/Dropdown.jsx b/src/components/modals/main/settings/Dropdown.jsx index f626b5c4..a3b87866 100644 --- a/src/components/modals/main/settings/Dropdown.jsx +++ b/src/components/modals/main/settings/Dropdown.jsx @@ -18,6 +18,10 @@ export default class Dropdown extends React.PureComponent { onChange = (e) => { const { value } = e.target; + if (value === window.language.modals.main.loading) { + return; + } + this.setState({ value: value, title: e.target[e.target.selectedIndex].text diff --git a/src/components/modals/main/settings/Radio.jsx b/src/components/modals/main/settings/Radio.jsx index 3030b9e0..05591e63 100644 --- a/src/components/modals/main/settings/Radio.jsx +++ b/src/components/modals/main/settings/Radio.jsx @@ -19,6 +19,10 @@ export default class Radio extends React.PureComponent { handleChange = (e) => { const { value } = e.target; + if (value === 'loading') { + return; + } + localStorage.setItem(this.props.name, value); this.setState({ diff --git a/src/components/modals/main/settings/sections/Changelog.jsx b/src/components/modals/main/settings/sections/Changelog.jsx index 1d4b9965..9cb7dafd 100644 --- a/src/components/modals/main/settings/sections/Changelog.jsx +++ b/src/components/modals/main/settings/sections/Changelog.jsx @@ -18,7 +18,7 @@ export default class Changelog extends React.PureComponent { title: data.title, date: data.date.split(' ')[0], image: data.featured_image || null, - author: 'By ' + data.author, + author: 'By ' + data.authors.join(', '), html: data.html }); } diff --git a/src/components/modals/main/settings/sections/Language.jsx b/src/components/modals/main/settings/sections/Language.jsx index 470702b1..71c42627 100644 --- a/src/components/modals/main/settings/sections/Language.jsx +++ b/src/components/modals/main/settings/sections/Language.jsx @@ -3,17 +3,48 @@ import React from 'react'; import Radio from '../Radio'; const languages = require('../../../../../modules/languages.json'); -const quote_languages = require('../../../../../modules/quote_languages.json'); -export default function LanguageSettings() { - const language = window.language.modals.main.settings.sections.language; +export default class BackgroundSettings extends React.PureComponent { + constructor() { + super(); + this.state = { + quoteLanguages: [{ + name: window.language.modals.main.loading, + value: 'loading' + }] + }; + } - return ( - <> -

{language.title}

- -

{language.quote}

- - - ); + async getQuoteLanguages() { + const data = await (await fetch(window.constants.API_URL + '/quotes/languages')).json(); + + let array = []; + data.forEach(item => { + array.push({ + name: item, + value: item + }); + }); + + this.setState({ + quoteLanguages: array + }); + } + + componentDidMount() { + this.getQuoteLanguages(); + } + + render() { + const language = window.language.modals.main.settings.sections.language; + + return ( + <> +

{language.title}

+ +

{language.quote}

+ + + ); + } } diff --git a/src/components/modals/main/settings/sections/Time.jsx b/src/components/modals/main/settings/sections/Time.jsx index 891eff38..ac36b522 100644 --- a/src/components/modals/main/settings/sections/Time.jsx +++ b/src/components/modals/main/settings/sections/Time.jsx @@ -109,6 +109,7 @@ export default class TimeSettings extends React.PureComponent {
+ {dateSettings} diff --git a/src/components/widgets/quote/Quote.jsx b/src/components/widgets/quote/Quote.jsx index 75946ece..92603740 100644 --- a/src/components/widgets/quote/Quote.jsx +++ b/src/components/widgets/quote/Quote.jsx @@ -106,7 +106,7 @@ export default class Quote extends React.PureComponent { } let authorlink = `https://${window.languagecode.split('_')[0]}.wikipedia.org/wiki/${data.author.split(' ').join('_')}`; - if (localStorage.getItem('authorLink') === 'false') { + if (localStorage.getItem('authorLink') === 'false' || data.author === 'Unknown') { authorlink = null; } diff --git a/src/components/widgets/time/Date.jsx b/src/components/widgets/time/Date.jsx index 2927016b..ec4f5d5f 100644 --- a/src/components/widgets/time/Date.jsx +++ b/src/components/widgets/time/Date.jsx @@ -44,8 +44,10 @@ export default class DateWidget extends React.PureComponent { const dateMonth = date.getMonth() + 1; const dateYear = date.getFullYear(); - let day = dateDay; - let month = dateMonth; + const zero = (localStorage.getItem('datezero') === 'true'); + + let day = zero ? ('00' + dateDay).slice(-2) : dateDay; + let month = zero ? ('00' + dateMonth).slice(-2) : dateMonth; let year = dateYear; switch (localStorage.getItem('dateFormat')) { diff --git a/src/modules/default_settings.json b/src/modules/default_settings.json index 405da0d8..19959443 100644 --- a/src/modules/default_settings.json +++ b/src/modules/default_settings.json @@ -198,5 +198,9 @@ { "name": "hourHand", "value": true + }, + { + "name": "datezero", + "value": true } ] diff --git a/src/modules/quote_languages.json b/src/modules/quote_languages.json deleted file mode 100644 index 5dae4b90..00000000 --- a/src/modules/quote_languages.json +++ /dev/null @@ -1,10 +0,0 @@ -[ - { - "name": "English", - "value": "English" - }, - { - "name": "Français", - "value": "French" - } -] diff --git a/src/translations/de_DE.json b/src/translations/de_DE.json index b4cd31f8..3673e986 100644 --- a/src/translations/de_DE.json +++ b/src/translations/de_DE.json @@ -31,9 +31,6 @@ "weather": { "not_found": "Nicht gefunden" }, - "date": { - "week": "Week" - }, "navbar": { "tooltips": { "update": "Update Hinweise", @@ -254,12 +251,12 @@ "custom_css": "Benutzerdefiniertes CSS", "custom_js": "Benutzerdefiniertes JS", "tab_name": "Tab Name", - "experimental_warning": "Bitte beachten Sie, dass das Mue Team keinen Support leisten kann, wenn Sie den experimentellen Modus aktiviert haben. Bitte deaktivieren Sie ihn zuerst und schauen Sie, ob das Problem weiterhin auftritt, bevor Sie den Support kontaktieren.", - "developer": "Entwickler" + "experimental_warning": "Bitte beachten Sie, dass das Mue Team keinen Support leisten kann, wenn Sie den experimentellen Modus aktiviert haben. Bitte deaktivieren Sie ihn zuerst und schauen Sie, ob das Problem weiterhin auftritt, bevor Sie den Support kontaktieren." }, "experimental": { "title": "Experimentell", - "warning": "Diese Einstellungen sind nicht vollständig getestet/implementiert und funktionieren möglicherweise nicht korrekt!" + "warning": "Diese Einstellungen sind nicht vollständig getestet/implementiert und funktionieren möglicherweise nicht korrekt!", + "developer": "Entwickler" }, "language": { "title": "Sprache",