New: RSS Sync button on Calendar

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
pull/4242/head
Qstick 4 years ago
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…
Cancel
Save