From adaf7444d31ab450eb750fe11358753a7313c094 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Sun, 22 Sep 2024 06:51:17 +0300 Subject: [PATCH] Add movie availability descriptions --- .../AddNewMovie/AddNewMovieModalContent.js | 22 +++++++++++++-- .../ImportMovie/Import/ImportMovieHeader.js | 18 ++++++++++++- ...MovieMinimumAvailabilityPopoverContent.tsx | 27 +++++++++++++++++++ .../src/Movie/Edit/EditMovieModalContent.css | 6 ++--- .../Movie/Edit/EditMovieModalContent.css.d.ts | 2 +- .../src/Movie/Edit/EditMovieModalContent.js | 21 +++++++++++++-- .../EditImportListModalContent.css | 4 +++ .../EditImportListModalContent.css.d.ts | 1 + .../ImportLists/EditImportListModalContent.js | 23 ++++++++++++++-- src/NzbDrone.Core/Localization/Core/en.json | 3 +++ 10 files changed, 115 insertions(+), 12 deletions(-) create mode 100644 frontend/src/AddMovie/MovieMinimumAvailabilityPopoverContent.tsx diff --git a/frontend/src/AddMovie/AddNewMovie/AddNewMovieModalContent.js b/frontend/src/AddMovie/AddNewMovie/AddNewMovieModalContent.js index c742eedd8..7e13c4641 100644 --- a/frontend/src/AddMovie/AddNewMovie/AddNewMovieModalContent.js +++ b/frontend/src/AddMovie/AddNewMovie/AddNewMovieModalContent.js @@ -1,16 +1,19 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; +import MovieMinimumAvailabilityPopoverContent from 'AddMovie/MovieMinimumAvailabilityPopoverContent'; import CheckInput from 'Components/Form/CheckInput'; import Form from 'Components/Form/Form'; import FormGroup from 'Components/Form/FormGroup'; import FormInputGroup from 'Components/Form/FormInputGroup'; import FormLabel from 'Components/Form/FormLabel'; +import Icon from 'Components/Icon'; import SpinnerButton from 'Components/Link/SpinnerButton'; import ModalBody from 'Components/Modal/ModalBody'; import ModalContent from 'Components/Modal/ModalContent'; import ModalFooter from 'Components/Modal/ModalFooter'; import ModalHeader from 'Components/Modal/ModalHeader'; -import { inputTypes, kinds } from 'Helpers/Props'; +import Popover from 'Components/Tooltip/Popover'; +import { icons, inputTypes, kinds, tooltipPositions } from 'Helpers/Props'; import MoviePoster from 'Movie/MoviePoster'; import translate from 'Utilities/String/translate'; import styles from './AddNewMovieModalContent.css'; @@ -115,13 +118,28 @@ class AddNewMovieModalContent extends Component { - {translate('MinimumAvailability')} + + {translate('MinimumAvailability')} + + + } + title={translate('MinimumAvailability')} + body={} + position={tooltipPositions.RIGHT} + /> + diff --git a/frontend/src/AddMovie/ImportMovie/Import/ImportMovieHeader.js b/frontend/src/AddMovie/ImportMovie/Import/ImportMovieHeader.js index 14b41d351..a61a9152e 100644 --- a/frontend/src/AddMovie/ImportMovie/Import/ImportMovieHeader.js +++ b/frontend/src/AddMovie/ImportMovie/Import/ImportMovieHeader.js @@ -1,8 +1,12 @@ import PropTypes from 'prop-types'; import React from 'react'; +import MovieMinimumAvailabilityPopoverContent from 'AddMovie/MovieMinimumAvailabilityPopoverContent'; +import Icon from 'Components/Icon'; import VirtualTableHeader from 'Components/Table/VirtualTableHeader'; import VirtualTableHeaderCell from 'Components/Table/VirtualTableHeaderCell'; import VirtualTableSelectAllHeaderCell from 'Components/Table/VirtualTableSelectAllHeaderCell'; +import Popover from 'Components/Tooltip/Popover'; +import { icons, tooltipPositions } from 'Helpers/Props'; import translate from 'Utilities/String/translate'; import styles from './ImportMovieHeader.css'; @@ -46,7 +50,19 @@ function ImportMovieHeader(props) { className={styles.minimumAvailability} name="minimumAvailability" > - {translate('MinAvailability')} + {translate('MinimumAvailability')} + + + } + title={translate('MinimumAvailability')} + body={} + position={tooltipPositions.LEFT} + /> + + + + + + + ); +} + +export default MovieMinimumAvailabilityPopoverContent; diff --git a/frontend/src/Movie/Edit/EditMovieModalContent.css b/frontend/src/Movie/Edit/EditMovieModalContent.css index 050567669..fd7ddf093 100644 --- a/frontend/src/Movie/Edit/EditMovieModalContent.css +++ b/frontend/src/Movie/Edit/EditMovieModalContent.css @@ -4,8 +4,6 @@ margin-right: auto; } -.tagInternalInput { - composes: internalInput from '~Components/Form/TagInput.css'; - - flex: 0 0 100%; +.labelIcon { + margin-left: 8px; } diff --git a/frontend/src/Movie/Edit/EditMovieModalContent.css.d.ts b/frontend/src/Movie/Edit/EditMovieModalContent.css.d.ts index 930ca0cb3..238343ae5 100644 --- a/frontend/src/Movie/Edit/EditMovieModalContent.css.d.ts +++ b/frontend/src/Movie/Edit/EditMovieModalContent.css.d.ts @@ -2,7 +2,7 @@ // Please do not change this file! interface CssExports { 'deleteButton': string; - 'tagInternalInput': string; + 'labelIcon': string; } export const cssExports: CssExports; export default cssExports; diff --git a/frontend/src/Movie/Edit/EditMovieModalContent.js b/frontend/src/Movie/Edit/EditMovieModalContent.js index 21194b9c7..f6cefb798 100644 --- a/frontend/src/Movie/Edit/EditMovieModalContent.js +++ b/frontend/src/Movie/Edit/EditMovieModalContent.js @@ -1,16 +1,19 @@ import PropTypes from 'prop-types'; import React, { Component } from 'react'; +import MovieMinimumAvailabilityPopoverContent from 'AddMovie/MovieMinimumAvailabilityPopoverContent'; import Form from 'Components/Form/Form'; import FormGroup from 'Components/Form/FormGroup'; import FormInputGroup from 'Components/Form/FormInputGroup'; import FormLabel from 'Components/Form/FormLabel'; +import Icon from 'Components/Icon'; import Button from 'Components/Link/Button'; import SpinnerButton from 'Components/Link/SpinnerButton'; import ModalBody from 'Components/Modal/ModalBody'; import ModalContent from 'Components/Modal/ModalContent'; import ModalFooter from 'Components/Modal/ModalFooter'; import ModalHeader from 'Components/Modal/ModalHeader'; -import { inputTypes, kinds } from 'Helpers/Props'; +import Popover from 'Components/Tooltip/Popover'; +import { icons, inputTypes, kinds, tooltipPositions } from 'Helpers/Props'; import MoveMovieModal from 'Movie/MoveMovie/MoveMovieModal'; import translate from 'Utilities/String/translate'; import styles from './EditMovieModalContent.css'; @@ -103,7 +106,21 @@ class EditMovieModalContent extends Component { - {translate('MinimumAvailability')} + + {translate('MinimumAvailability')} + + + } + title={translate('MinimumAvailability')} + body={} + position={tooltipPositions.RIGHT} + /> + - {translate('MinimumAvailability')} + + {translate('MinimumAvailability')} + + + } + title={translate('MinimumAvailability')} + body={} + position={tooltipPositions.RIGHT} + /> + + diff --git a/src/NzbDrone.Core/Localization/Core/en.json b/src/NzbDrone.Core/Localization/Core/en.json index 8004785a4..45c71b584 100644 --- a/src/NzbDrone.Core/Localization/Core/en.json +++ b/src/NzbDrone.Core/Localization/Core/en.json @@ -71,6 +71,7 @@ "Analytics": "Analytics", "AnalyticsEnabledHelpText": "Send anonymous usage and error information to {appName}'s servers. This includes information on your browser, which {appName} WebUI pages you use, error reporting as well as OS and runtime version. We will use this information to prioritize features and bug fixes.", "Announced": "Announced", + "AnnouncedMovieAvailabilityDescription": "Movies are considered available as soon as they are added to {appName}.", "AnnouncedMovieDescription": "Movie is announced", "Any": "Any", "ApiKey": "API Key", @@ -749,6 +750,7 @@ "Importing": "Importing", "InCinemas": "In Cinemas", "InCinemasDate": "In Cinemas Date", + "InCinemasMovieAvailabilityDescription": "Movies are considered available as soon as movies hit cinemas.", "InCinemasMovieDescription": "Movie is in Cinemas", "IncludeCustomFormatWhenRenaming": "Include Custom Format when Renaming", "IncludeCustomFormatWhenRenamingHelpText": "Include in {Custom Formats} renaming format", @@ -1409,6 +1411,7 @@ "ReleaseStatus": "Release Status", "ReleaseTitle": "Release Title", "Released": "Released", + "ReleasedMovieAvailabilityDescription": "Movies are considered available as soon as the Blu-Ray or streaming version is released.", "ReleasedMovieDescription": "Movie is released", "Reload": "Reload", "RemotePath": "Remote Path",