better error/warnings
This commit is contained in:
parent
dda95543e8
commit
395e12cbc6
3 changed files with 66 additions and 13 deletions
|
@ -19,6 +19,9 @@ import {
|
||||||
faWindowMinimize
|
faWindowMinimize
|
||||||
} from '@fortawesome/free-regular-svg-icons'
|
} from '@fortawesome/free-regular-svg-icons'
|
||||||
|
|
||||||
|
const PLEROMAFE_SETTINGS_MAJOR_VERSION = 1
|
||||||
|
const PLEROMAFE_SETTINGS_MINOR_VERSION = 0
|
||||||
|
|
||||||
library.add(
|
library.add(
|
||||||
faTimes,
|
faTimes,
|
||||||
faWindowMinimize,
|
faWindowMinimize,
|
||||||
|
@ -65,12 +68,52 @@ const SettingsModal = {
|
||||||
this.$store.dispatch('togglePeekSettingsModal')
|
this.$store.dispatch('togglePeekSettingsModal')
|
||||||
},
|
},
|
||||||
importValidator (data) {
|
importValidator (data) {
|
||||||
return data._pleroma_settings_version[0] === 1
|
if (!Array.isArray(data._pleroma_settings_version)) {
|
||||||
|
return {
|
||||||
|
messageKey: 'settings.file_import_export.invalid_file'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const [major, minor] = data._pleroma_settings_version
|
||||||
|
|
||||||
|
if (major > PLEROMAFE_SETTINGS_MAJOR_VERSION) {
|
||||||
|
return {
|
||||||
|
messageKey: 'settings.file_export_import.errors.file_too_new',
|
||||||
|
messageArgs: {
|
||||||
|
fileMajor: major,
|
||||||
|
feMajor: PLEROMAFE_SETTINGS_MAJOR_VERSION
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (major < PLEROMAFE_SETTINGS_MAJOR_VERSION) {
|
||||||
|
return {
|
||||||
|
messageKey: 'settings.file_export_import.errors.file_too_old',
|
||||||
|
messageArgs: {
|
||||||
|
fileMajor: major,
|
||||||
|
feMajor: PLEROMAFE_SETTINGS_MAJOR_VERSION
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (minor > PLEROMAFE_SETTINGS_MINOR_VERSION) {
|
||||||
|
this.$store.dispatch('pushGlobalNotice', {
|
||||||
|
level: 'warning',
|
||||||
|
messageKey: 'settings.file_export_import.errors.file_slightly_new',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
},
|
},
|
||||||
onImportFailure () {
|
onImportFailure (result) {
|
||||||
|
if (result.error) {
|
||||||
this.$store.dispatch('pushGlobalNotice', { messageKey: 'settings.invalid_settings_imported', level: 'error' })
|
this.$store.dispatch('pushGlobalNotice', { messageKey: 'settings.invalid_settings_imported', level: 'error' })
|
||||||
|
} else {
|
||||||
|
this.$store.dispatch('pushGlobalNotice', { ...result.validationResult, level: 'error' })
|
||||||
|
}
|
||||||
},
|
},
|
||||||
onImport (data) {
|
onImport (data) {
|
||||||
|
if (data)
|
||||||
this.$store.dispatch('loadSettings', data)
|
this.$store.dispatch('loadSettings', data)
|
||||||
},
|
},
|
||||||
restore () {
|
restore () {
|
||||||
|
@ -99,7 +142,10 @@ const SettingsModal = {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
const clone = cloneDeep(sample)
|
const clone = cloneDeep(sample)
|
||||||
clone._pleroma_settings_version = [1, 0]
|
clone._pleroma_settings_version = [
|
||||||
|
PLEROMAFE_SETTINGS_MAJOR_VERSION,
|
||||||
|
PLEROMAFE_SETTINGS_MINOR_VERSION
|
||||||
|
]
|
||||||
return clone
|
return clone
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -67,7 +67,7 @@
|
||||||
class="btn button-default"
|
class="btn button-default"
|
||||||
:title="$t('general.close')"
|
:title="$t('general.close')"
|
||||||
>
|
>
|
||||||
<span>{{ $t("settings.backup_restore") }}</span>
|
<span>{{ $t("settings.file_export_import.backup_restore") }}</span>
|
||||||
<FAIcon
|
<FAIcon
|
||||||
icon="chevron-down"
|
icon="chevron-down"
|
||||||
/>
|
/>
|
||||||
|
@ -85,7 +85,7 @@
|
||||||
<FAIcon
|
<FAIcon
|
||||||
icon="file-download"
|
icon="file-download"
|
||||||
fixed-width
|
fixed-width
|
||||||
/><span>{{ $t("settings.backup_settings") }}</span>
|
/><span>{{ $t("settings.file_export_import.backup_settings") }}</span>
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
class="button-default dropdown-item dropdown-item-icon"
|
class="button-default dropdown-item dropdown-item-icon"
|
||||||
|
@ -95,7 +95,7 @@
|
||||||
<FAIcon
|
<FAIcon
|
||||||
icon="file-download"
|
icon="file-download"
|
||||||
fixed-width
|
fixed-width
|
||||||
/><span>{{ $t("settings.backup_settings_theme") }}</span>
|
/><span>{{ $t("settings.file_export_import.backup_settings_theme") }}</span>
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
class="button-default dropdown-item dropdown-item-icon"
|
class="button-default dropdown-item dropdown-item-icon"
|
||||||
|
@ -105,7 +105,7 @@
|
||||||
<FAIcon
|
<FAIcon
|
||||||
icon="file-upload"
|
icon="file-upload"
|
||||||
fixed-width
|
fixed-width
|
||||||
/><span>{{ $t("settings.restore_settings") }}</span>
|
/><span>{{ $t("settings.file_export_import.restore_settings") }}</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -357,7 +357,6 @@
|
||||||
"interface": "Interface",
|
"interface": "Interface",
|
||||||
"interfaceLanguage": "Interface language",
|
"interfaceLanguage": "Interface language",
|
||||||
"invalid_theme_imported": "The selected file is not a supported Pleroma theme. No changes to your theme were made.",
|
"invalid_theme_imported": "The selected file is not a supported Pleroma theme. No changes to your theme were made.",
|
||||||
"invalid_settings_imported": "The selected file is not a supported Pleroma settings backup. No changes were made.",
|
|
||||||
"limited_availability": "Unavailable in your browser",
|
"limited_availability": "Unavailable in your browser",
|
||||||
"links": "Links",
|
"links": "Links",
|
||||||
"lock_account_description": "Restrict your account to approved followers only",
|
"lock_account_description": "Restrict your account to approved followers only",
|
||||||
|
@ -365,10 +364,18 @@
|
||||||
"loop_video_silent_only": "Loop only videos without sound (i.e. Mastodon's \"gifs\")",
|
"loop_video_silent_only": "Loop only videos without sound (i.e. Mastodon's \"gifs\")",
|
||||||
"mutes_tab": "Mutes",
|
"mutes_tab": "Mutes",
|
||||||
"play_videos_in_modal": "Play videos in a popup frame",
|
"play_videos_in_modal": "Play videos in a popup frame",
|
||||||
|
"file_export_import": {
|
||||||
"backup_restore": "Settings backup",
|
"backup_restore": "Settings backup",
|
||||||
"backup_settings": "Backup settings to file",
|
"backup_settings": "Backup settings to file",
|
||||||
"backup_settings_theme": "Backup settings and theme to file",
|
"backup_settings_theme": "Backup settings and theme to file",
|
||||||
"restore_settings": "Restore settings from file",
|
"restore_settings": "Restore settings from file",
|
||||||
|
"errors": {
|
||||||
|
"invalid_file": "The selected file is not a supported Pleroma settings backup. No changes were made.",
|
||||||
|
"file_too_new": "Incompatile major version: {fileMajor}, this PleromaFE (settings ver {feMajor}) is too old to handle it",
|
||||||
|
"file_too_old": "Incompatile major version: {fileMajor}, file version is too old and not supported (min. set. ver. {feMajor})",
|
||||||
|
"file_slightly_new": "File minor version is different, some settings might not load"
|
||||||
|
}
|
||||||
|
},
|
||||||
"profile_fields": {
|
"profile_fields": {
|
||||||
"label": "Profile metadata",
|
"label": "Profile metadata",
|
||||||
"add_field": "Add Field",
|
"add_field": "Add Field",
|
||||||
|
|
Loading…
Reference in a new issue