More UI Cleanup

This commit is contained in:
Qstick 2017-10-07 18:38:31 -04:00
parent 9c88c2006d
commit 1700c471b7
96 changed files with 267 additions and 333 deletions

View file

@ -68,7 +68,7 @@ const addArtistActionHandlers = {
promise.done((data) => {
dispatch(batchActions([
updateItem({ section: 'series', ...data }),
updateItem({ section: 'artist', ...data }),
set({
section,

View file

@ -17,31 +17,31 @@ const albumStudioActionHandlers = {
} = payload;
let monitoringOptions = null;
const series = [];
const allArtists = getState().series.items;
const artist = [];
const allArtists = getState().artist.items;
artistIds.forEach((id) => {
const s = _.find(allArtists, { id });
const seriesToUpdate = { id };
const artistToUpdate = { id };
if (payload.hasOwnProperty('monitored')) {
seriesToUpdate.monitored = monitored;
artistToUpdate.monitored = monitored;
}
if (monitor) {
const {
seasons,
options: seriesMonitoringOptions
options: artistMonitoringOptions
} = getMonitoringOptions(_.cloneDeep(s.seasons), monitor);
if (!monitoringOptions) {
monitoringOptions = seriesMonitoringOptions;
monitoringOptions = artistMonitoringOptions;
}
seriesToUpdate.seasons = seasons;
artistToUpdate.seasons = seasons;
}
series.push(seriesToUpdate);
artist.push(artistToUpdate);
});
dispatch(set({
@ -53,7 +53,7 @@ const albumStudioActionHandlers = {
url: '/albumStudio',
method: 'POST',
data: JSON.stringify({
series,
artist,
monitoringOptions
}),
dataType: 'json'

View file

@ -7,7 +7,7 @@ import createSaveProviderHandler from './Creators/createSaveProviderHandler';
import createRemoveItemHandler from './Creators/createRemoveItemHandler';
import { updateItem } from './baseActions';
const section = 'series';
const section = 'artist';
const artistActionHandlers = {
[types.FETCH_ARTIST]: createFetchHandler(section, '/artist'),
@ -15,12 +15,12 @@ const artistActionHandlers = {
[types.SAVE_ARTIST]: createSaveProviderHandler(
section,
'/artist',
(state) => state.series),
(state) => state.artist),
[types.DELETE_ARTIST]: createRemoveItemHandler(
section,
'/artist',
(state) => state.series),
(state) => state.artist),
[types.TOGGLE_ARTIST_MONITORED]: function(payload) {
return function(dispatch, getState) {
@ -29,7 +29,7 @@ const artistActionHandlers = {
monitored
} = payload;
const series = _.find(getState().series.items, { id });
const artist = _.find(getState().artist.items, { id });
dispatch(updateItem({
id,
@ -41,7 +41,7 @@ const artistActionHandlers = {
url: `/artist/${id}`,
method: 'PUT',
data: JSON.stringify({
...series,
...artist,
monitored
}),
dataType: 'json'
@ -74,8 +74,8 @@ const artistActionHandlers = {
monitored
} = payload;
const series = _.find(getState().series.items, { id });
const seasons = _.cloneDeep(series.seasons);
const artist = _.find(getState().artist.items, { id });
const seasons = _.cloneDeep(artist.seasons);
const season = _.find(seasons, { seasonNumber });
season.isSaving = true;
@ -92,7 +92,7 @@ const artistActionHandlers = {
url: `/artist/${id}`,
method: 'PUT',
data: JSON.stringify({
...series,
...artist,
seasons
}),
dataType: 'json'
@ -122,7 +122,7 @@ const artistActionHandlers = {
dispatch(updateItem({
id,
section,
seasons: series.seasons
seasons: artist.seasons
}));
});
};

View file

@ -5,12 +5,12 @@ import artistActionHandlers from './artistActionHandlers';
export const fetchArtist = artistActionHandlers[types.FETCH_ARTIST];
export const saveArtist = artistActionHandlers[types.SAVE_ARTIST];
export const deleteArtist = artistActionHandlers[types.DELETE_ARTIST];
export const toggleSeriesMonitored = artistActionHandlers[types.TOGGLE_ARTIST_MONITORED];
export const toggleArtistMonitored = artistActionHandlers[types.TOGGLE_ARTIST_MONITORED];
export const toggleSeasonMonitored = artistActionHandlers[types.TOGGLE_ALBUM_MONITORED];
export const setArtistValue = createAction(types.SET_ARTIST_VALUE, (payload) => {
return {
section: 'series',
section: 'artist',
...payload
};
});

View file

@ -22,11 +22,11 @@ const artistEditorActionHandlers = {
promise.done((data) => {
dispatch(batchActions([
...data.map((series) => {
...data.map((artist) => {
return updateItem({
id: series.id,
section: 'series',
...series
id: artist.id,
section: 'artist',
...artist
});
}),

View file

@ -4,7 +4,7 @@ import { batchActions } from 'redux-batched-actions';
import getNewSeries from 'Utilities/Series/getNewSeries';
import * as types from './actionTypes';
import { set, updateItem, removeItem } from './baseActions';
import { startLookupSeries } from './importArtistActions';
import { startLookupArtist } from './importArtistActions';
import { fetchRootFolders } from './rootFolderActions';
const section = 'importArtist';
@ -38,7 +38,7 @@ const importArtistActionHandlers = {
}));
if (term && term.length > 2) {
dispatch(startLookupSeries());
dispatch(startLookupArtist());
}
};
},
@ -97,7 +97,7 @@ const importArtistActionHandlers = {
promise.always(() => {
concurrentLookups--;
dispatch(startLookupSeries());
dispatch(startLookupArtist());
});
};
},
@ -114,8 +114,8 @@ const importArtistActionHandlers = {
const item = _.find(items, { id });
const selectedArtist = item.selectedArtist;
// Make sure we have a selected series and
// the same series hasn't been added yet.
// Make sure we have a selected artist and
// the same artist hasn't been added yet.
if (selectedArtist && !_.some(acc, { foreignArtistId: selectedArtist.foreignArtistId })) {
const newSeries = getNewSeries(_.cloneDeep(selectedArtist), item);
newSeries.path = item.path;
@ -142,7 +142,7 @@ const importArtistActionHandlers = {
isImported: true
}),
...data.map((series) => updateItem({ section: 'series', ...series })),
...data.map((artist) => updateItem({ section: 'artist', ...artist })),
...addedIds.map((id) => removeItem({ section, id }))
]));

View file

@ -3,7 +3,7 @@ import * as types from './actionTypes';
import importArtistActionHandlers from './importArtistActionHandlers';
export const queueLookupArtist = importArtistActionHandlers[types.QUEUE_LOOKUP_ARTIST];
export const startLookupSeries = importArtistActionHandlers[types.START_LOOKUP_ARTIST];
export const startLookupArtist = importArtistActionHandlers[types.START_LOOKUP_ARTIST];
export const importArtist = importArtistActionHandlers[types.IMPORT_ARTIST];
export const clearImportArtist = createAction(types.CLEAR_IMPORT_ARTIST);

View file

@ -22,7 +22,6 @@ export const defaultState = {
monitor: 'allEpisodes',
qualityProfileId: 0,
languageProfileId: 0,
seriesType: 'standard',
primaryAlbumTypes: ['Album'],
secondaryAlbumTypes: ['Studio'],
albumFolder: true,

View file

@ -20,7 +20,7 @@ export const defaultState = {
pendingChanges: {}
};
const reducerSection = 'series';
const reducerSection = 'artist';
const artistReducers = handleActions({

View file

@ -19,7 +19,7 @@ export const defaultState = {
columns: [
{
name: 'series.sortName',
name: 'artist.sortName',
label: 'Artist Name',
isSortable: true,
isVisible: true

View file

@ -2,9 +2,9 @@ import { combineReducers } from 'redux';
import { enableBatching } from 'redux-batched-actions';
import { routerReducer } from 'react-router-redux';
import app, { defaultState as defaultappState } from './appReducers';
import addArtist, { defaultState as defaultAddSeriesState } from './addArtistReducers';
import addArtist, { defaultState as defaultAddArtistState } from './addArtistReducers';
import importArtist, { defaultState as defaultImportArtistState } from './importArtistReducers';
import series, { defaultState as defaultArtistState } from './artistReducers';
import artist, { defaultState as defaultArtistState } from './artistReducers';
import artistIndex, { defaultState as defaultArtistIndexState } from './artistIndexReducers';
import artistEditor, { defaultState as defaultArtistEditorState } from './artistEditorReducers';
import albumStudio, { defaultState as defaultAlbumStudioState } from './albumStudioReducers';
@ -31,9 +31,9 @@ import organizePreview, { defaultState as defaultOrganizePreviewState } from './
export const defaultState = {
app: defaultappState,
addArtist: defaultAddSeriesState,
addArtist: defaultAddArtistState,
importArtist: defaultImportArtistState,
series: defaultArtistState,
artist: defaultArtistState,
artistIndex: defaultArtistIndexState,
artistEditor: defaultArtistEditorState,
albumStudio: defaultAlbumStudioState,
@ -63,7 +63,7 @@ export default enableBatching(combineReducers({
app,
addArtist,
importArtist,
series,
artist,
artistIndex,
artistEditor,
albumStudio,

View file

@ -19,10 +19,10 @@ export const defaultState = {
recentFolders: [],
importMode: 'move',
sortPredicates: {
series: function(item, direction) {
const series = item.series;
artist: function(item, direction) {
const artist = item.artist;
return series ? series.sortName : '';
return artist ? artist.sortName : '';
},
quality: function(item, direction) {

View file

@ -44,7 +44,7 @@ export const defaultState = {
isModifiable: false
},
{
name: 'series.sortName',
name: 'artist.sortName',
label: 'Artist',
isSortable: true,
isVisible: true

View file

@ -71,7 +71,7 @@ export const defaultState = {
columns: [
{
name: 'series.sortName',
name: 'artist.sortName',
label: 'Artist Name',
isSortable: true,
isVisible: true

View file

@ -2,9 +2,9 @@ import { createSelector } from 'reselect';
function createAllArtistSelector() {
return createSelector(
(state) => state.series,
(series) => {
return series.items;
(state) => state.artist,
(artist) => {
return artist.items;
}
);
}

View file

@ -6,8 +6,8 @@ function createArtistSelector() {
return createSelector(
(state, { artistId }) => artistId,
createAllArtistSelector(),
(artistId, series) => {
return _.find(series, { id: artistId });
(artistId, artist) => {
return _.find(artist, { id: artistId });
}
);
}

View file

@ -6,8 +6,8 @@ function createExistingArtistSelector() {
return createSelector(
(state, { foreignArtistId }) => foreignArtistId,
createAllArtistSelector(),
(foreignArtistId, series) => {
return _.some(series, { foreignArtistId });
(foreignArtistId, artist) => {
return _.some(artist, { foreignArtistId });
}
);
}

View file

@ -8,16 +8,15 @@ function createImportArtistItemSelector() {
(state) => state.addArtist,
(state) => state.importArtist,
createAllArtistSelector(),
(id, addArtist, importArtist, series) => {
(id, addArtist, importArtist, artist) => {
const item = _.find(importArtist.items, { id }) || {};
const selectedArtist = item && item.selectedArtist;
const isExistingArtist = !!selectedArtist && _.some(series, { foreignArtistId: selectedArtist.foreignArtistId });
const isExistingArtist = !!selectedArtist && _.some(artist, { foreignArtistId: selectedArtist.foreignArtistId });
return {
defaultMonitor: addArtist.defaults.monitor,
defaultQualityProfileId: addArtist.defaults.qualityProfileId,
defaultSeriesType: addArtist.defaults.seriesType,
defaultSeasonFolder: addArtist.defaults.albumFolder,
defaultAlbumFolder: addArtist.defaults.albumFolder,
...item,
isExistingArtist
};

View file

@ -6,12 +6,12 @@ function createProfileInUseSelector(profileProp) {
return createSelector(
(state, { id }) => id,
createAllArtistSelector(),
(id, series) => {
(id, artist) => {
if (!id) {
return false;
}
return _.some(series, { [profileProp]: id });
return _.some(artist, { [profileProp]: id });
}
);
}