mirror of https://github.com/Radarr/Radarr
New: RSS Sync button on Calendar
Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
This commit is contained in:
parent
aae0ef200d
commit
d99519cb23
|
@ -7,6 +7,7 @@ import Measure from 'Components/Measure';
|
||||||
import PageContentBodyConnector from 'Components/Page/PageContentBodyConnector';
|
import PageContentBodyConnector from 'Components/Page/PageContentBodyConnector';
|
||||||
import PageToolbar from 'Components/Page/Toolbar/PageToolbar';
|
import PageToolbar from 'Components/Page/Toolbar/PageToolbar';
|
||||||
import PageToolbarSection from 'Components/Page/Toolbar/PageToolbarSection';
|
import PageToolbarSection from 'Components/Page/Toolbar/PageToolbarSection';
|
||||||
|
import PageToolbarSeparator from 'Components/Page/Toolbar/PageToolbarSeparator';
|
||||||
import PageToolbarButton from 'Components/Page/Toolbar/PageToolbarButton';
|
import PageToolbarButton from 'Components/Page/Toolbar/PageToolbarButton';
|
||||||
import FilterMenu from 'Components/Menu/FilterMenu';
|
import FilterMenu from 'Components/Menu/FilterMenu';
|
||||||
import NoMovie from 'Movie/NoMovie';
|
import NoMovie from 'Movie/NoMovie';
|
||||||
|
@ -78,8 +79,10 @@ class CalendarPage extends Component {
|
||||||
hasMovie,
|
hasMovie,
|
||||||
movieError,
|
movieError,
|
||||||
missingMovieIds,
|
missingMovieIds,
|
||||||
|
isRssSyncExecuting,
|
||||||
isSearchingForMissing,
|
isSearchingForMissing,
|
||||||
useCurrentPage,
|
useCurrentPage,
|
||||||
|
onRssSyncPress,
|
||||||
onFilterSelect
|
onFilterSelect
|
||||||
} = this.props;
|
} = this.props;
|
||||||
|
|
||||||
|
@ -101,6 +104,15 @@ class CalendarPage extends Component {
|
||||||
onPress={this.onGetCalendarLinkPress}
|
onPress={this.onGetCalendarLinkPress}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<PageToolbarSeparator />
|
||||||
|
|
||||||
|
<PageToolbarButton
|
||||||
|
label="RSS Sync"
|
||||||
|
iconName={icons.RSS}
|
||||||
|
isSpinning={isRssSyncExecuting}
|
||||||
|
onPress={onRssSyncPress}
|
||||||
|
/>
|
||||||
|
|
||||||
<PageToolbarButton
|
<PageToolbarButton
|
||||||
label="Search for Missing"
|
label="Search for Missing"
|
||||||
iconName={icons.SEARCH}
|
iconName={icons.SEARCH}
|
||||||
|
@ -181,10 +193,12 @@ CalendarPage.propTypes = {
|
||||||
hasMovie: PropTypes.bool.isRequired,
|
hasMovie: PropTypes.bool.isRequired,
|
||||||
movieError: PropTypes.object,
|
movieError: PropTypes.object,
|
||||||
missingMovieIds: PropTypes.arrayOf(PropTypes.number).isRequired,
|
missingMovieIds: PropTypes.arrayOf(PropTypes.number).isRequired,
|
||||||
|
isRssSyncExecuting: PropTypes.bool.isRequired,
|
||||||
isSearchingForMissing: PropTypes.bool.isRequired,
|
isSearchingForMissing: PropTypes.bool.isRequired,
|
||||||
useCurrentPage: PropTypes.bool.isRequired,
|
useCurrentPage: PropTypes.bool.isRequired,
|
||||||
onSearchMissingPress: PropTypes.func.isRequired,
|
onSearchMissingPress: PropTypes.func.isRequired,
|
||||||
onDaysCountChange: PropTypes.func.isRequired,
|
onDaysCountChange: PropTypes.func.isRequired,
|
||||||
|
onRssSyncPress: PropTypes.func.isRequired,
|
||||||
onFilterSelect: PropTypes.func.isRequired
|
onFilterSelect: PropTypes.func.isRequired
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -3,11 +3,14 @@ import { createSelector } from 'reselect';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
import { isCommandExecuting } from 'Utilities/Command';
|
import { isCommandExecuting } from 'Utilities/Command';
|
||||||
import isBefore from 'Utilities/Date/isBefore';
|
import isBefore from 'Utilities/Date/isBefore';
|
||||||
|
import * as commandNames from 'Commands/commandNames';
|
||||||
import withCurrentPage from 'Components/withCurrentPage';
|
import withCurrentPage from 'Components/withCurrentPage';
|
||||||
|
import { executeCommand } from 'Store/Actions/commandActions';
|
||||||
import { searchMissing, setCalendarDaysCount, setCalendarFilter } from 'Store/Actions/calendarActions';
|
import { searchMissing, setCalendarDaysCount, setCalendarFilter } from 'Store/Actions/calendarActions';
|
||||||
import createMovieCountSelector from 'Store/Selectors/createMovieCountSelector';
|
import createMovieCountSelector from 'Store/Selectors/createMovieCountSelector';
|
||||||
import createUISettingsSelector from 'Store/Selectors/createUISettingsSelector';
|
import createUISettingsSelector from 'Store/Selectors/createUISettingsSelector';
|
||||||
import createCommandsSelector from 'Store/Selectors/createCommandsSelector';
|
import createCommandsSelector from 'Store/Selectors/createCommandsSelector';
|
||||||
|
import createCommandExecutingSelector from 'Store/Selectors/createCommandExecutingSelector';
|
||||||
import CalendarPage from './CalendarPage';
|
import CalendarPage from './CalendarPage';
|
||||||
|
|
||||||
function createMissingMovieIdsSelector() {
|
function createMissingMovieIdsSelector() {
|
||||||
|
@ -59,6 +62,7 @@ function createMapStateToProps() {
|
||||||
createMovieCountSelector(),
|
createMovieCountSelector(),
|
||||||
createUISettingsSelector(),
|
createUISettingsSelector(),
|
||||||
createMissingMovieIdsSelector(),
|
createMissingMovieIdsSelector(),
|
||||||
|
createCommandExecutingSelector(commandNames.RSS_SYNC),
|
||||||
createIsSearchingSelector(),
|
createIsSearchingSelector(),
|
||||||
(
|
(
|
||||||
selectedFilterKey,
|
selectedFilterKey,
|
||||||
|
@ -66,6 +70,7 @@ function createMapStateToProps() {
|
||||||
movieCount,
|
movieCount,
|
||||||
uiSettings,
|
uiSettings,
|
||||||
missingMovieIds,
|
missingMovieIds,
|
||||||
|
isRssSyncExecuting,
|
||||||
isSearchingForMissing
|
isSearchingForMissing
|
||||||
) => {
|
) => {
|
||||||
return {
|
return {
|
||||||
|
@ -75,6 +80,7 @@ function createMapStateToProps() {
|
||||||
hasMovie: !!movieCount.count,
|
hasMovie: !!movieCount.count,
|
||||||
movieError: movieCount.error,
|
movieError: movieCount.error,
|
||||||
missingMovieIds,
|
missingMovieIds,
|
||||||
|
isRssSyncExecuting,
|
||||||
isSearchingForMissing
|
isSearchingForMissing
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -83,6 +89,12 @@ function createMapStateToProps() {
|
||||||
|
|
||||||
function createMapDispatchToProps(dispatch, props) {
|
function createMapDispatchToProps(dispatch, props) {
|
||||||
return {
|
return {
|
||||||
|
onRssSyncPress() {
|
||||||
|
dispatch(executeCommand({
|
||||||
|
name: commandNames.RSS_SYNC
|
||||||
|
}));
|
||||||
|
},
|
||||||
|
|
||||||
onSearchMissingPress(movieIds) {
|
onSearchMissingPress(movieIds) {
|
||||||
dispatch(searchMissing({ movieIds }));
|
dispatch(searchMissing({ movieIds }));
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue