diff options
Diffstat (limited to 'src/components/settings/settings/EditSettingsForm.tsx')
-rw-r--r-- | src/components/settings/settings/EditSettingsForm.tsx | 125 |
1 files changed, 88 insertions, 37 deletions
diff --git a/src/components/settings/settings/EditSettingsForm.tsx b/src/components/settings/settings/EditSettingsForm.tsx index c3e8d46a0..2900aa2af 100644 --- a/src/components/settings/settings/EditSettingsForm.tsx +++ b/src/components/settings/settings/EditSettingsForm.tsx | |||
@@ -1,5 +1,6 @@ | |||
1 | import { systemPreferences } from '@electron/remote'; | 1 | import { systemPreferences } from '@electron/remote'; |
2 | import { mdiGithub, mdiOpenInNew, mdiPowerPlug } from '@mdi/js'; | 2 | import { mdiGithub, mdiOpenInNew, mdiPowerPlug } from '@mdi/js'; |
3 | import { ipcRenderer } from 'electron'; | ||
3 | import { noop } from 'lodash'; | 4 | import { noop } from 'lodash'; |
4 | import { observer } from 'mobx-react'; | 5 | import { observer } from 'mobx-react'; |
5 | import prettyBytes from 'pretty-bytes'; | 6 | import prettyBytes from 'pretty-bytes'; |
@@ -191,6 +192,14 @@ const messages = defineMessages({ | |||
191 | id: 'settings.app.subheadlineCache', | 192 | id: 'settings.app.subheadlineCache', |
192 | defaultMessage: 'Cache', | 193 | defaultMessage: 'Cache', |
193 | }, | 194 | }, |
195 | subheadlineUserAgent: { | ||
196 | id: 'settings.app.subheadlineUserAgent', | ||
197 | defaultMessage: 'User Agent', | ||
198 | }, | ||
199 | subheadlineDownloads: { | ||
200 | id: 'settings.app.subheadlineDownloads', | ||
201 | defaultMessage: 'Downloads', | ||
202 | }, | ||
194 | cacheInfo: { | 203 | cacheInfo: { |
195 | id: 'settings.app.cacheInfo', | 204 | id: 'settings.app.cacheInfo', |
196 | defaultMessage: 'Ferdium cache is currently using {size} of disk space.', | 205 | defaultMessage: 'Ferdium cache is currently using {size} of disk space.', |
@@ -281,6 +290,10 @@ const messages = defineMessages({ | |||
281 | id: 'settings.app.buttonOpenFerdiumCertsFolder', | 290 | id: 'settings.app.buttonOpenFerdiumCertsFolder', |
282 | defaultMessage: 'Open certificates folder', | 291 | defaultMessage: 'Open certificates folder', |
283 | }, | 292 | }, |
293 | buttonOpenFolderSelector: { | ||
294 | id: 'settings.app.buttonOpenFolderSelector', | ||
295 | defaultMessage: 'Open folder selector', | ||
296 | }, | ||
284 | }); | 297 | }); |
285 | 298 | ||
286 | const Hr = (): ReactElement => ( | 299 | const Hr = (): ReactElement => ( |
@@ -1034,49 +1047,87 @@ class EditSettingsForm extends Component<IProps, IState> { | |||
1034 | 1047 | ||
1035 | <Hr /> | 1048 | <Hr /> |
1036 | 1049 | ||
1037 | <Input | 1050 | <div className="settings__settings-group"> |
1038 | placeholder="User Agent" | 1051 | <H3>{intl.formatMessage(messages.subheadlineDownloads)}</H3> |
1039 | onChange={e => this.submit(e)} | 1052 | |
1040 | {...form.$('userAgentPref').bind()} | 1053 | <Input |
1041 | /> | 1054 | placeholder="Default download folder" |
1042 | <p className="settings__help"> | 1055 | onChange={e => { |
1043 | {intl.formatMessage(globalMessages.userAgentHelp)} | 1056 | this.submit(e); |
1044 | </p> | 1057 | }} |
1045 | <p className="settings__help"> | 1058 | {...form.$('downloadFolderPath').bind()} |
1046 | {intl.formatMessage(messages.appRestartRequired)} | 1059 | /> |
1047 | </p> | 1060 | |
1061 | <Button | ||
1062 | buttonType="secondary" | ||
1063 | label={intl.formatMessage( | ||
1064 | messages.buttonOpenFolderSelector, | ||
1065 | )} | ||
1066 | className="settings__open-settings-cache-button" | ||
1067 | onClick={e => { | ||
1068 | ipcRenderer | ||
1069 | .invoke('download-folder-select') | ||
1070 | .then(path => { | ||
1071 | if (path) { | ||
1072 | form.$('downloadFolderPath').set(path); | ||
1073 | this.submit(e); | ||
1074 | } | ||
1075 | }) | ||
1076 | .catch(console.error); | ||
1077 | }} | ||
1078 | disabled={isClearingAllCache} | ||
1079 | loaded={!isClearingAllCache} | ||
1080 | /> | ||
1081 | </div> | ||
1048 | 1082 | ||
1049 | <Hr /> | 1083 | <Hr /> |
1050 | 1084 | ||
1051 | <div className="settings__settings-group"> | 1085 | <div className="settings__settings-group"> |
1052 | <H3>{intl.formatMessage(messages.subheadlineCache)}</H3> | 1086 | <Input |
1053 | <p> | 1087 | placeholder="User Agent" |
1054 | {intl.formatMessage(messages.cacheInfo, { | 1088 | onChange={e => this.submit(e)} |
1055 | size: cacheSize, | 1089 | {...form.$('userAgentPref').bind()} |
1056 | })} | 1090 | /> |
1091 | |||
1092 | <p className="settings__help"> | ||
1093 | {intl.formatMessage(globalMessages.userAgentHelp)} | ||
1057 | </p> | 1094 | </p> |
1058 | {notCleared && ( | 1095 | <p className="settings__help"> |
1059 | <p>{intl.formatMessage(messages.cacheNotCleared)}</p> | 1096 | {intl.formatMessage(messages.appRestartRequired)} |
1060 | )} | 1097 | </p> |
1098 | |||
1099 | <Hr /> | ||
1100 | |||
1061 | <div className="settings__settings-group"> | 1101 | <div className="settings__settings-group"> |
1062 | <div className="settings__open-settings-cache-container"> | 1102 | <H3>{intl.formatMessage(messages.subheadlineCache)}</H3> |
1063 | <Button | 1103 | <p> |
1064 | buttonType="secondary" | 1104 | {intl.formatMessage(messages.cacheInfo, { |
1065 | label={intl.formatMessage(globalMessages.clearCache)} | 1105 | size: cacheSize, |
1066 | className="settings__open-settings-cache-button" | 1106 | })} |
1067 | onClick={() => { | 1107 | </p> |
1068 | onClearAllCache(); | 1108 | {notCleared && ( |
1069 | this.onClearCacheClicked(); | 1109 | <p>{intl.formatMessage(messages.cacheNotCleared)}</p> |
1070 | }} | 1110 | )} |
1071 | disabled={isClearingAllCache} | 1111 | <div className="settings__settings-group"> |
1072 | loaded={!isClearingAllCache} | 1112 | <div className="settings__open-settings-cache-container"> |
1073 | /> | 1113 | <Button |
1074 | <Button | 1114 | buttonType="secondary" |
1075 | buttonType="secondary" | 1115 | label={intl.formatMessage(globalMessages.clearCache)} |
1076 | label="Open Process Manager" | 1116 | className="settings__open-settings-cache-button" |
1077 | className="settings__open-settings-cache-button" | 1117 | onClick={() => { |
1078 | onClick={openProcessManager} | 1118 | onClearAllCache(); |
1079 | /> | 1119 | this.onClearCacheClicked(); |
1120 | }} | ||
1121 | disabled={isClearingAllCache} | ||
1122 | loaded={!isClearingAllCache} | ||
1123 | /> | ||
1124 | <Button | ||
1125 | buttonType="secondary" | ||
1126 | label="Open Process Manager" | ||
1127 | className="settings__open-settings-cache-button" | ||
1128 | onClick={openProcessManager} | ||
1129 | /> | ||
1130 | </div> | ||
1080 | </div> | 1131 | </div> |
1081 | </div> | 1132 | </div> |
1082 | </div> | 1133 | </div> |