From 8599af64bc5893ea8e74367dfc9b6d9d6f54c428 Mon Sep 17 00:00:00 2001 From: Vijay Aravamudhan Date: Sun, 19 Jun 2022 13:54:06 +0530 Subject: Add ability to enable the progressbar for each service (#301) --- src/components/services/content/ServiceView.js | 4 ++-- src/components/settings/services/EditServiceForm.js | 1 + src/config.ts | 1 + src/containers/settings/EditServiceScreen.js | 9 +++++++++ src/i18n/locales/en-US.json | 1 + src/internal-server/app/Controllers/Http/ServiceController.js | 3 +++ src/models/Service.js | 7 +++++++ src/stores/AppStore.js | 1 + src/stores/ServicesStore.js | 1 + 9 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/components/services/content/ServiceView.js b/src/components/services/content/ServiceView.js index 39f1176f3..5ff059f52 100644 --- a/src/components/services/content/ServiceView.js +++ b/src/components/services/content/ServiceView.js @@ -114,8 +114,8 @@ class ServiceView extends Component { !service.isServiceAccessRestricted && ( )} - {service.isLoadingPage && !service.isFirstLoad && ( - + {service.isProgressbarEnabled && service.isLoadingPage && !service.isFirstLoad && ( + )} {service.isError && ( )} +
diff --git a/src/config.ts b/src/config.ts index 2aad2e931..8b61b5698 100644 --- a/src/config.ts +++ b/src/config.ts @@ -282,6 +282,7 @@ export const DEFAULT_SERVICE_SETTINGS = { isMuted: false, customIcon: false, isDarkModeEnabled: false, + isProgressbarEnabled: true, // Note: Do NOT change these default values. If they change, then the corresponding changes in the recipes needs to be done hasDirectMessages: true, hasIndirectMessages: false, diff --git a/src/containers/settings/EditServiceScreen.js b/src/containers/settings/EditServiceScreen.js index db8602c10..4615a9cdf 100644 --- a/src/containers/settings/EditServiceScreen.js +++ b/src/containers/settings/EditServiceScreen.js @@ -85,6 +85,10 @@ const messages = defineMessages({ id: 'settings.service.form.darkReaderSepia', defaultMessage: 'Dark Reader Sepia', }, + enableProgressbar: { + id: 'settings.service.form.enableProgressbar', + defaultMessage: 'Enable Progress bar', + }, trapLinkClicks: { id: 'settings.service.form.trapLinkClicks', defaultMessage: 'Open URLs within Ferdium', @@ -244,6 +248,11 @@ class EditServiceScreen extends Component { : undefined, default: 10, }, + isProgressbarEnabled: { + label: intl.formatMessage(messages.enableProgressbar), + value: service.isProgressbarEnabled, + default: DEFAULT_SERVICE_SETTINGS.isProgressbarEnabled, + }, spellcheckerLanguage: { label: intl.formatMessage(globalMessages.spellcheckerLanguage), value: service.spellcheckerLanguage, diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index fa54fcd35..297f941b9 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -323,6 +323,7 @@ "settings.service.form.enableDarkMode": "Enable Dark Mode", "settings.service.form.enableHibernation": "Enable hibernation", "settings.service.form.enableNotification": "Enable notifications", + "settings.service.form.enableProgressbar": "Enable Progress bar", "settings.service.form.enableService": "Enable service", "settings.service.form.enableWakeUp": "Enable wake up", "settings.service.form.headlineAppearance": "Appearance", diff --git a/src/internal-server/app/Controllers/Http/ServiceController.js b/src/internal-server/app/Controllers/Http/ServiceController.js index 4b26f4747..89091aa57 100644 --- a/src/internal-server/app/Controllers/Http/ServiceController.js +++ b/src/internal-server/app/Controllers/Http/ServiceController.js @@ -51,6 +51,7 @@ class ServiceController { trapLinkClicks: DEFAULT_SERVICE_SETTINGS.trapLinkClicks, isMuted: DEFAULT_SERVICE_SETTINGS.isMuted, isDarkModeEnabled: '', // TODO: This should ideally be a boolean (false). But, changing it caused the sidebar toggle to not work. + isProgressbarEnabled: DEFAULT_SERVICE_SETTINGS.isProgressbarEnabled, spellcheckerLanguage: '', order: DEFAULT_SERVICE_ORDER, customRecipe: false, @@ -79,6 +80,7 @@ class ServiceController { isBadgeEnabled: DEFAULT_SERVICE_SETTINGS.isBadgeEnabled, trapLinkClicks: DEFAULT_SERVICE_SETTINGS.trapLinkClicks, isDarkModeEnabled: '', // TODO: This should ideally be a boolean (false). But, changing it caused the sidebar toggle to not work. + isProgressbarEnabled: DEFAULT_SERVICE_SETTINGS.isProgressbarEnabled, isEnabled: DEFAULT_SERVICE_SETTINGS.isEnabled, isMuted: DEFAULT_SERVICE_SETTINGS.isMuted, isNotificationEnabled: DEFAULT_SERVICE_SETTINGS.isNotificationEnabled, @@ -223,6 +225,7 @@ class ServiceController { isBadgeEnabled: DEFAULT_SERVICE_SETTINGS.isBadgeEnabled, trapLinkClicks: DEFAULT_SERVICE_SETTINGS.trapLinkClicks, isDarkModeEnabled: '', // TODO: This should ideally be a boolean (false). But, changing it caused the sidebar toggle to not work. + isProgressbarEnabled: DEFAULT_SERVICE_SETTINGS.isProgressbarEnabled, isEnabled: DEFAULT_SERVICE_SETTINGS.isEnabled, isMuted: DEFAULT_SERVICE_SETTINGS.isMuted, isNotificationEnabled: DEFAULT_SERVICE_SETTINGS.isNotificationEnabled, diff --git a/src/models/Service.js b/src/models/Service.js index ae13a063d..1adb1998b 100644 --- a/src/models/Service.js +++ b/src/models/Service.js @@ -66,6 +66,8 @@ export default class Service { @observable isDarkModeEnabled = false; + @observable isProgressbarEnabled = true; + @observable darkReaderSettings = { brightness: 100, contrast: 90, sepia: 10 }; @observable spellcheckerLanguage = null; @@ -155,6 +157,10 @@ export default class Service { data.darkReaderSettings, this.darkReaderSettings, ); + this.isProgressbarEnabled = ifUndefinedBoolean( + data.isProgressbarEnabled, + this.isProgressbarEnabled, + ); this.hasCustomUploadedIcon = ifUndefinedBoolean( data.hasCustomIcon, this.hasCustomUploadedIcon, @@ -210,6 +216,7 @@ export default class Service { id: this.id, spellcheckerLanguage: this.spellcheckerLanguage, isDarkModeEnabled: this.isDarkModeEnabled, + isProgressbarEnabled: this.isProgressbarEnabled, darkReaderSettings: this.darkReaderSettings, team: this.team, url: this.url, diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js index a9c92fe87..2d85b9ffe 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js @@ -295,6 +295,7 @@ export default class AppStore extends Store { isHibernating: service.isHibernating, hasCrashed: service.hasCrashed, isDarkModeEnabled: service.isDarkModeEnabled, + isProgressbarEnabled: service.isProgressbarEnabled, })), messages: this.stores.globalError.messages, workspaces: this.stores.workspaces.workspaces.map(workspace => ({ diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index 6b1ceb51f..999b48d92 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js @@ -414,6 +414,7 @@ export default class ServicesStore extends Store { isMuted: DEFAULT_SERVICE_SETTINGS.isMuted, customIcon: DEFAULT_SERVICE_SETTINGS.customIcon, isDarkModeEnabled: DEFAULT_SERVICE_SETTINGS.isDarkModeEnabled, + isProgressbarEnabled: DEFAULT_SERVICE_SETTINGS.isProgressbarEnabled, spellcheckerLanguage: SPELLCHECKER_LOCALES[this.stores.settings.app.spellcheckerLanguage], userAgentPref: '', -- cgit v1.2.3-70-g09d2