From b4450a308c56f767fbaa769d574a1b3f8e221d59 Mon Sep 17 00:00:00 2001 From: TheCatLady <52870424+TheCatLady@users.noreply.github.com> Date: Mon, 5 Apr 2021 18:56:21 -0400 Subject: [PATCH] fix: various fixes for new tags feature (#1369) * fix(backend): fix movie override tags check * fix(lang): fix 'no tags' and 'anime tags' strings * fix(logging): correct capitalization of Radarr/Sonarr * fix(ui): consistently disable tag select / display loading placeholder --- server/entity/MediaRequest.ts | 24 +++++++++---------- .../RequestModal/AdvancedRequester/index.tsx | 9 +++++-- src/components/Settings/RadarrModal/index.tsx | 7 ++++-- src/components/Settings/SonarrModal/index.tsx | 6 ++--- src/i18n/locale/en.json | 9 +++---- 5 files changed, 32 insertions(+), 23 deletions(-) diff --git a/server/entity/MediaRequest.ts b/server/entity/MediaRequest.ts index 6f719bb1..ebc9b9fd 100644 --- a/server/entity/MediaRequest.ts +++ b/server/entity/MediaRequest.ts @@ -361,7 +361,7 @@ export class MediaRequest { const settings = getSettings(); if (settings.radarr.length === 0 && !settings.radarr[0]) { logger.info( - 'Skipped radarr request as there is no radarr configured', + 'Skipped Radarr request as there is no Radarr server configured', { label: 'Media Request' } ); return; @@ -389,7 +389,9 @@ export class MediaRequest { logger.info( `There is no default ${ this.is4k ? '4K ' : '' - }radarr configured. Did you set any of your Radarr servers as default?`, + }Radarr server configured. Did you set any of your ${ + this.is4k ? '4K ' : '' + }Radarr servers as default?`, { label: 'Media Request' } ); return; @@ -420,11 +422,7 @@ export class MediaRequest { }); } - if ( - this.tags && - (radarrSettings.tags.length !== (this.tags?.length ?? 0) || - radarrSettings.tags.every((num) => (this.tags ?? []).includes(num))) - ) { + if (this.tags && !isEqual(this.tags, radarrSettings.tags)) { tags = this.tags; logger.info(`Request has override tags`, { label: 'Media Request', @@ -505,7 +503,7 @@ export class MediaRequest { }); logger.info('Sent request to Radarr', { label: 'Media Request' }); } catch (e) { - const errorMessage = `Request failed to send to radarr: ${e.message}`; + const errorMessage = `Request failed to send to Radarr: ${e.message}`; logger.error('Request failed to send to Radarr', { label: 'Media Request', errorMessage, @@ -525,7 +523,7 @@ export class MediaRequest { const settings = getSettings(); if (settings.sonarr.length === 0 && !settings.sonarr[0]) { logger.info( - 'Skipped sonarr request as there is no sonarr configured', + 'Skipped Sonarr request as there is no Sonarr server configured', { label: 'Media Request' } ); return; @@ -553,7 +551,9 @@ export class MediaRequest { logger.info( `There is no default ${ this.is4k ? '4K ' : '' - }sonarr configured. Did you set any of your Sonarr servers as default?`, + }Sonarr server configured. Did you set any of your ${ + this.is4k ? '4K ' : '' + }Sonarr servers as default?`, { label: 'Media Request' } ); return; @@ -654,7 +654,7 @@ export class MediaRequest { tags = this.tags; logger.info(`Request has override tags`, { label: 'Media Request', - tags, + tagIds: tags, }); } @@ -719,7 +719,7 @@ export class MediaRequest { }); logger.info('Sent request to Sonarr', { label: 'Media Request' }); } catch (e) { - const errorMessage = `Request failed to send to sonarr: ${e.message}`; + const errorMessage = `Request failed to send to Sonarr: ${e.message}`; logger.error('Request failed to send to Sonarr', { label: 'Media Request', errorMessage, diff --git a/src/components/RequestModal/AdvancedRequester/index.tsx b/src/components/RequestModal/AdvancedRequester/index.tsx index e9f5a508..f0bee3a4 100644 --- a/src/components/RequestModal/AdvancedRequester/index.tsx +++ b/src/components/RequestModal/AdvancedRequester/index.tsx @@ -35,7 +35,7 @@ const messages = defineMessages({ languageprofile: 'Language Profile', tags: 'Tags', selecttags: 'Select tags', - notagoptions: 'No Tags', + notagoptions: 'No tags.', }); export type RequestOverrides = { @@ -466,7 +466,12 @@ const AdvancedRequester: React.FC = ({ value: tag.id, }))} isMulti - placeholder={intl.formatMessage(messages.selecttags)} + isDisabled={isValidating || !serverData} + placeholder={ + isValidating || !serverData + ? intl.formatMessage(globalMessages.loading) + : intl.formatMessage(messages.selecttags) + } className="react-select-container react-select-container-dark" classNamePrefix="react-select" value={selectedTags.map((tagId) => { diff --git a/src/components/Settings/RadarrModal/index.tsx b/src/components/Settings/RadarrModal/index.tsx index 89514b9b..bf3b0f20 100644 --- a/src/components/Settings/RadarrModal/index.tsx +++ b/src/components/Settings/RadarrModal/index.tsx @@ -59,6 +59,7 @@ const messages = defineMessages({ testFirstQualityProfiles: 'Test connection to load quality profiles', loadingrootfolders: 'Loading root folders…', testFirstRootFolders: 'Test connection to load root folders', + loadingTags: 'Loading tags…', testFirstTags: 'Test connection to load tags', tags: 'Tags', preventSearch: 'Disable Auto-Search', @@ -66,7 +67,7 @@ const messages = defineMessages({ validationApplicationUrlTrailingSlash: 'URL must not end in a trailing slash', validationBaseUrlLeadingSlash: 'Base URL must have a leading slash', validationBaseUrlTrailingSlash: 'Base URL must not end in a trailing slash', - notagoptions: 'No Tags', + notagoptions: 'No tags.', selecttags: 'Select tags', }); @@ -631,10 +632,12 @@ const RadarrModal: React.FC = ({ : [] } isMulti - isDisabled={!isValidated} + isDisabled={!isValidated || isTesting} placeholder={ !isValidated ? intl.formatMessage(messages.testFirstTags) + : isTesting + ? intl.formatMessage(messages.loadingTags) : intl.formatMessage(messages.selecttags) } className="react-select-container" diff --git a/src/components/Settings/SonarrModal/index.tsx b/src/components/Settings/SonarrModal/index.tsx index fefb4eea..429a0fb6 100644 --- a/src/components/Settings/SonarrModal/index.tsx +++ b/src/components/Settings/SonarrModal/index.tsx @@ -72,8 +72,8 @@ const messages = defineMessages({ validationBaseUrlLeadingSlash: 'Base URL must have a leading slash', validationBaseUrlTrailingSlash: 'Base URL must not end in a trailing slash', tags: 'Tags', - animeTags: 'Tags', - notagoptions: 'No Tags', + animeTags: 'Anime Tags', + notagoptions: 'No tags.', selecttags: 'Select tags', }); @@ -685,7 +685,7 @@ const SonarrModal: React.FC = ({ : [] } isMulti - isDisabled={!isValidated} + isDisabled={!isValidated || isTesting} placeholder={ !isValidated ? intl.formatMessage(messages.testFirstTags) diff --git a/src/i18n/locale/en.json b/src/i18n/locale/en.json index d031fe82..d9a94db2 100644 --- a/src/i18n/locale/en.json +++ b/src/i18n/locale/en.json @@ -176,7 +176,7 @@ "components.RequestModal.AdvancedRequester.destinationserver": "Destination Server", "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", "components.RequestModal.AdvancedRequester.languageprofile": "Language Profile", - "components.RequestModal.AdvancedRequester.notagoptions": "No Tags", + "components.RequestModal.AdvancedRequester.notagoptions": "No tags.", "components.RequestModal.AdvancedRequester.qualityprofile": "Quality Profile", "components.RequestModal.AdvancedRequester.requestas": "Request As", "components.RequestModal.AdvancedRequester.rootfolder": "Root Folder", @@ -332,10 +332,11 @@ "components.Settings.RadarrModal.externalUrl": "External URL", "components.Settings.RadarrModal.externalUrlPlaceholder": "External URL pointing to your Radarr server", "components.Settings.RadarrModal.hostname": "Hostname or IP Address", + "components.Settings.RadarrModal.loadingTags": "Loading tags…", "components.Settings.RadarrModal.loadingprofiles": "Loading quality profiles…", "components.Settings.RadarrModal.loadingrootfolders": "Loading root folders…", "components.Settings.RadarrModal.minimumAvailability": "Minimum Availability", - "components.Settings.RadarrModal.notagoptions": "No Tags", + "components.Settings.RadarrModal.notagoptions": "No tags.", "components.Settings.RadarrModal.port": "Port", "components.Settings.RadarrModal.preventSearch": "Disable Auto-Search", "components.Settings.RadarrModal.qualityprofile": "Quality Profile", @@ -443,7 +444,7 @@ "components.Settings.SettingsUsers.userSettingsDescription": "Configure global and default user settings.", "components.Settings.SettingsUsers.users": "Users", "components.Settings.SonarrModal.add": "Add Server", - "components.Settings.SonarrModal.animeTags": "Tags", + "components.Settings.SonarrModal.animeTags": "Anime Tags", "components.Settings.SonarrModal.animelanguageprofile": "Anime Language Profile", "components.Settings.SonarrModal.animequalityprofile": "Anime Quality Profile", "components.Settings.SonarrModal.animerootfolder": "Anime Root Folder", @@ -465,7 +466,7 @@ "components.Settings.SonarrModal.loadinglanguageprofiles": "Loading language profiles…", "components.Settings.SonarrModal.loadingprofiles": "Loading quality profiles…", "components.Settings.SonarrModal.loadingrootfolders": "Loading root folders…", - "components.Settings.SonarrModal.notagoptions": "No Tags", + "components.Settings.SonarrModal.notagoptions": "No tags.", "components.Settings.SonarrModal.port": "Port", "components.Settings.SonarrModal.preventSearch": "Disable Auto-Search", "components.Settings.SonarrModal.qualityprofile": "Quality Profile",