Merge branch 'from/develop/tusooa/backup-ui' into 'develop'
Add ui for backup See merge request pleroma/pleroma-fe!1520
This commit is contained in:
commit
5ad7dc7835
|
@ -7,11 +7,16 @@ const DataImportExportTab = {
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
activeTab: 'profile',
|
activeTab: 'profile',
|
||||||
newDomainToMute: ''
|
newDomainToMute: '',
|
||||||
|
listBackupsError: false,
|
||||||
|
addBackupError: false,
|
||||||
|
addedBackup: false,
|
||||||
|
backups: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created () {
|
created () {
|
||||||
this.$store.dispatch('fetchTokens')
|
this.$store.dispatch('fetchTokens')
|
||||||
|
this.fetchBackups()
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
Importer,
|
Importer,
|
||||||
|
@ -72,6 +77,28 @@ const DataImportExportTab = {
|
||||||
}
|
}
|
||||||
return user.screen_name
|
return user.screen_name
|
||||||
}).join('\n')
|
}).join('\n')
|
||||||
|
},
|
||||||
|
addBackup () {
|
||||||
|
this.$store.state.api.backendInteractor.addBackup()
|
||||||
|
.then((res) => {
|
||||||
|
this.addedBackup = true
|
||||||
|
this.addBackupError = false
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
this.addedBackup = false
|
||||||
|
this.addBackupError = error
|
||||||
|
})
|
||||||
|
.then(() => this.fetchBackups())
|
||||||
|
},
|
||||||
|
fetchBackups () {
|
||||||
|
this.$store.state.api.backendInteractor.listBackups()
|
||||||
|
.then((res) => {
|
||||||
|
this.backups = res
|
||||||
|
this.listBackupsError = false
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
this.listBackupsError = error.error
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,6 +53,67 @@
|
||||||
:export-button-label="$t('settings.mute_export_button')"
|
:export-button-label="$t('settings.mute_export_button')"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="setting-item">
|
||||||
|
<h2>{{ $t('settings.account_backup') }}</h2>
|
||||||
|
<p>{{ $t('settings.account_backup_description') }}</p>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>{{ $t('settings.account_backup_table_head') }}</th>
|
||||||
|
<th />
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr
|
||||||
|
v-for="backup in backups"
|
||||||
|
:key="backup.id"
|
||||||
|
>
|
||||||
|
<td>{{ backup.inserted_at }}</td>
|
||||||
|
<td class="actions">
|
||||||
|
<a
|
||||||
|
v-if="backup.processed"
|
||||||
|
target="_blank"
|
||||||
|
:href="backup.url"
|
||||||
|
>
|
||||||
|
{{ $t('settings.download_backup') }}
|
||||||
|
</a>
|
||||||
|
<span
|
||||||
|
v-else
|
||||||
|
>
|
||||||
|
{{ $t('settings.backup_not_ready') }}
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<div
|
||||||
|
v-if="listBackupsError"
|
||||||
|
class="alert error"
|
||||||
|
>
|
||||||
|
{{ $t('settings.list_backups_error', { error }) }}
|
||||||
|
<button
|
||||||
|
:title="$t('settings.hide_list_backups_error_action')"
|
||||||
|
@click="listBackupsError = false"
|
||||||
|
>
|
||||||
|
<FAIcon
|
||||||
|
class="fa-scale-110 fa-old-padding"
|
||||||
|
icon="times"
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<button
|
||||||
|
class="btn button-default"
|
||||||
|
@click="addBackup"
|
||||||
|
>
|
||||||
|
{{ $t('settings.add_backup') }}
|
||||||
|
</button>
|
||||||
|
<p v-if="addedBackup">
|
||||||
|
{{ $t('settings.added_backup') }}
|
||||||
|
</p>
|
||||||
|
<template v-if="addBackupError !== false">
|
||||||
|
<p>{{ $t('settings.add_backup_error', { error: addBackupError }) }}</p>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -317,6 +317,16 @@
|
||||||
"mute_import_error": "Error importing mutes",
|
"mute_import_error": "Error importing mutes",
|
||||||
"mutes_imported": "Mutes imported! Processing them will take a while.",
|
"mutes_imported": "Mutes imported! Processing them will take a while.",
|
||||||
"import_mutes_from_a_csv_file": "Import mutes from a csv file",
|
"import_mutes_from_a_csv_file": "Import mutes from a csv file",
|
||||||
|
"account_backup": "Account backup",
|
||||||
|
"account_backup_description": "This allows you to download an archive of your account information and your posts, but they cannot yet be imported into a Pleroma account.",
|
||||||
|
"account_backup_table_head": "Backup",
|
||||||
|
"download_backup": "Download",
|
||||||
|
"backup_not_ready": "This backup is not ready yet.",
|
||||||
|
"remove_backup": "Remove",
|
||||||
|
"list_backups_error": "Error fetching backup list: {error}",
|
||||||
|
"add_backup": "Create a new backup",
|
||||||
|
"added_backup": "Added a new backup.",
|
||||||
|
"add_backup_error": "Error adding a new backup: {error}",
|
||||||
"blocks_tab": "Blocks",
|
"blocks_tab": "Blocks",
|
||||||
"bot": "This is a bot account",
|
"bot": "This is a bot account",
|
||||||
"btnRadius": "Buttons",
|
"btnRadius": "Buttons",
|
||||||
|
|
|
@ -87,6 +87,7 @@ const PLEROMA_CHAT_URL = id => `/api/v1/pleroma/chats/by-account-id/${id}`
|
||||||
const PLEROMA_CHAT_MESSAGES_URL = id => `/api/v1/pleroma/chats/${id}/messages`
|
const PLEROMA_CHAT_MESSAGES_URL = id => `/api/v1/pleroma/chats/${id}/messages`
|
||||||
const PLEROMA_CHAT_READ_URL = id => `/api/v1/pleroma/chats/${id}/read`
|
const PLEROMA_CHAT_READ_URL = id => `/api/v1/pleroma/chats/${id}/read`
|
||||||
const PLEROMA_DELETE_CHAT_MESSAGE_URL = (chatId, messageId) => `/api/v1/pleroma/chats/${chatId}/messages/${messageId}`
|
const PLEROMA_DELETE_CHAT_MESSAGE_URL = (chatId, messageId) => `/api/v1/pleroma/chats/${chatId}/messages/${messageId}`
|
||||||
|
const PLEROMA_BACKUP_URL = '/api/v1/pleroma/backups'
|
||||||
|
|
||||||
const oldfetch = window.fetch
|
const oldfetch = window.fetch
|
||||||
|
|
||||||
|
@ -875,6 +876,25 @@ const fetchBlocks = ({ credentials }) => {
|
||||||
.then((users) => users.map(parseUser))
|
.then((users) => users.map(parseUser))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const addBackup = ({ credentials }) => {
|
||||||
|
return promisedRequest({
|
||||||
|
url: PLEROMA_BACKUP_URL,
|
||||||
|
method: 'POST',
|
||||||
|
credentials
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const listBackups = ({ credentials }) => {
|
||||||
|
return promisedRequest({
|
||||||
|
url: PLEROMA_BACKUP_URL,
|
||||||
|
method: 'GET',
|
||||||
|
credentials,
|
||||||
|
params: {
|
||||||
|
_cacheBooster: (new Date()).getTime()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
const fetchOAuthTokens = ({ credentials }) => {
|
const fetchOAuthTokens = ({ credentials }) => {
|
||||||
const url = '/api/oauth_tokens.json'
|
const url = '/api/oauth_tokens.json'
|
||||||
|
|
||||||
|
@ -1332,6 +1352,8 @@ const apiService = {
|
||||||
generateMfaBackupCodes,
|
generateMfaBackupCodes,
|
||||||
mfaSetupOTP,
|
mfaSetupOTP,
|
||||||
mfaConfirmOTP,
|
mfaConfirmOTP,
|
||||||
|
addBackup,
|
||||||
|
listBackups,
|
||||||
fetchFollowRequests,
|
fetchFollowRequests,
|
||||||
approveUser,
|
approveUser,
|
||||||
denyUser,
|
denyUser,
|
||||||
|
|
Loading…
Reference in New Issue