Skip to content

Commit 65c6f2b

Browse files
authored
New: Ability to clear local browser storage (#29)
1 parent 9f99625 commit 65c6f2b

File tree

7 files changed

+55
-12
lines changed

7 files changed

+55
-12
lines changed

frontend/src/AddMovie/AddNewMovie/AddNewMovie/AddNewMovieModalContentConnector.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ class AddNewMovieModalContentConnector extends Component {
6666
this.props.addMovie({
6767
foreignId,
6868
rootFolderPath: rootFolderPath.value,
69-
monitored: monitored.value,
69+
monitored: monitored.value === true,
7070
qualityProfileId: qualityProfileId.value,
7171
searchForMovie: searchForMovie.value,
7272
tags: tags.value
@@ -90,7 +90,7 @@ class AddNewMovieModalContentConnector extends Component {
9090
AddNewMovieModalContentConnector.propTypes = {
9191
foreignId: PropTypes.string.isRequired,
9292
rootFolderPath: PropTypes.object,
93-
monitored: PropTypes.bool.isRequired,
93+
monitored: PropTypes.object,
9494
qualityProfileId: PropTypes.object,
9595
searchForMovie: PropTypes.object.isRequired,
9696
tags: PropTypes.object.isRequired,

frontend/src/AddMovie/AddNewMovie/AddNewPerformer/AddNewPerformerModalContentConnector.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ class AddNewPerformerModalContentConnector extends Component {
6868
this.props.addPerformer({
6969
foreignId,
7070
rootFolderPath: rootFolderPath.value,
71-
monitored: monitored.value,
72-
moviesMonitored: moviesMonitored.value,
71+
monitored: monitored.value === true,
72+
moviesMonitored: moviesMonitored.value === true,
7373
qualityProfileId: qualityProfileId.value,
7474
searchForMovie: searchForMovie.value,
7575
tags: tags.value
@@ -93,8 +93,8 @@ class AddNewPerformerModalContentConnector extends Component {
9393
AddNewPerformerModalContentConnector.propTypes = {
9494
foreignId: PropTypes.string.isRequired,
9595
rootFolderPath: PropTypes.object,
96-
monitored: PropTypes.bool.isRequired,
97-
moviesMonitored: PropTypes.bool.isRequired,
96+
monitored: PropTypes.object,
97+
moviesMonitored: PropTypes.object,
9898
qualityProfileId: PropTypes.object,
9999
searchForMovie: PropTypes.object.isRequired,
100100
tags: PropTypes.object.isRequired,

frontend/src/AddMovie/AddNewMovie/AddNewStudio/AddNewStudioModalContentConnector.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ class AddNewStudioModalContentConnector extends Component {
6868
this.props.addStudio({
6969
foreignId,
7070
rootFolderPath: rootFolderPath.value,
71-
monitored: monitored.value,
72-
moviesMonitored: moviesMonitored.value,
71+
monitored: monitored.value === true,
72+
moviesMonitored: moviesMonitored.value === true,
7373
qualityProfileId: qualityProfileId.value,
7474
searchForMovie: searchForMovie.value,
7575
tags: tags.value
@@ -93,8 +93,8 @@ class AddNewStudioModalContentConnector extends Component {
9393
AddNewStudioModalContentConnector.propTypes = {
9494
foreignId: PropTypes.string.isRequired,
9595
rootFolderPath: PropTypes.object,
96-
monitored: PropTypes.bool.isRequired,
97-
moviesMonitored: PropTypes.bool.isRequired,
96+
monitored: PropTypes.object,
97+
moviesMonitored: PropTypes.object,
9898
qualityProfileId: PropTypes.object,
9999
searchForMovie: PropTypes.object.isRequired,
100100
tags: PropTypes.object.isRequired,

frontend/src/Settings/UI/UISettings.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import Form from 'Components/Form/Form';
66
import FormGroup from 'Components/Form/FormGroup';
77
import FormInputGroup from 'Components/Form/FormInputGroup';
88
import FormLabel from 'Components/Form/FormLabel';
9+
import SpinnerButton from 'Components/Link/SpinnerButton';
910
import LoadingIndicator from 'Components/Loading/LoadingIndicator';
1011
import PageContent from 'Components/Page/PageContent';
1112
import PageContentBody from 'Components/Page/PageContentBody';
@@ -75,6 +76,7 @@ class UISettings extends Component {
7576
onInputChange,
7677
onSavePress,
7778
languages,
79+
isDeleting,
7880
...otherProps
7981
} = this.props;
8082

@@ -83,6 +85,28 @@ class UISettings extends Component {
8385

8486
const uiLanguages = languages.filter((item) => item.value !== 'Original');
8587

88+
const handleClearLocalStoragePress = () => {
89+
let reload = false;
90+
this.setState({
91+
isDeleting: true
92+
});
93+
94+
try {
95+
// clear the PersistState
96+
localStorage.clear();
97+
reload = true;
98+
} catch {
99+
reload = false;
100+
}
101+
102+
this.setState({
103+
isDeleting: false
104+
});
105+
if (reload) {
106+
window.location.reload();
107+
}
108+
};
109+
86110
return (
87111
<PageContent title={translate('UiSettings')}>
88112
<SettingsToolbar
@@ -251,6 +275,21 @@ class UISettings extends Component {
251275
/>
252276
</FormGroup>
253277
</FieldSet>
278+
279+
<FieldSet legend={translate('Browser')}>
280+
<FormGroup>
281+
<FormLabel>{translate('ClearLocalData')}</FormLabel>
282+
<SpinnerButton
283+
kind={kinds.DANGER}
284+
isSpinning={isDeleting}
285+
onPress={handleClearLocalStoragePress}
286+
title={translate('ClearLocalDataHelpText')}
287+
>
288+
{translate('Clear')}
289+
</SpinnerButton>
290+
</FormGroup>
291+
292+
</FieldSet>
254293
</Form> :
255294
null
256295
}
@@ -267,6 +306,7 @@ UISettings.propTypes = {
267306
settings: PropTypes.object.isRequired,
268307
hasSettings: PropTypes.bool.isRequired,
269308
languages: PropTypes.arrayOf(PropTypes.object).isRequired,
309+
isDeleting: PropTypes.bool,
270310
onSavePress: PropTypes.func.isRequired,
271311
onInputChange: PropTypes.func.isRequired
272312
};

frontend/src/Store/Actions/performerActions.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export const defaultState = {
5656

5757
defaults: {
5858
rootFolderPath: '',
59-
monitor: 'movieOnly',
59+
monitored: true,
6060
qualityProfileId: 0,
6161
searchForMovie: true,
6262
tags: []

frontend/src/Store/Actions/studioActions.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export const defaultState = {
5454

5555
defaults: {
5656
rootFolderPath: '',
57-
monitor: 'movieOnly',
57+
monitored: true,
5858
qualityProfileId: 0,
5959
searchForMovie: true,
6060
tags: []

src/NzbDrone.Core/Localization/Core/en.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@
194194
"Branch": "Branch",
195195
"BranchUpdate": "Branch to use to update {appName}",
196196
"BranchUpdateMechanism": "Branch used by external update mechanism",
197+
"Browser": "Browser",
197198
"BrowserReloadRequired": "Browser Reload Required",
198199
"BuiltIn": "Built In",
199200
"BypassDelayIfAboveCustomFormatScore": "Bypass if Above Custom Format Score",
@@ -246,6 +247,8 @@
246247
"Clear": "Clear",
247248
"ClearBlocklist": "Clear blocklist",
248249
"ClearBlocklistMessageText": "Are you sure you want to clear all items from the blocklist?",
250+
"ClearLocalData": "Clear Persistant Browser Settings",
251+
"ClearLocalDataHelpText": "Clicking the button will clear browser data and then use the default settings.",
249252
"ClickToChangeIndexerFlags": "Click to change indexer flags",
250253
"ClickToChangeLanguage": "Click to change language",
251254
"ClickToChangeMovie": "Click to change movie",

0 commit comments

Comments
 (0)