diff --git a/package.json b/package.json index 336cabce..6712bf76 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@chenfengyuan/vue-qrcode": "2.0.0", "@fortawesome/fontawesome-svg-core": "1.3.0", "@fortawesome/free-regular-svg-icons": "^6.1.2", - "@fortawesome/free-solid-svg-icons": "5.15.4", + "@fortawesome/free-solid-svg-icons": "^6.2.0", "@fortawesome/vue-fontawesome": "3.0.1", "@kazvmoe-infra/pinch-zoom-element": "1.2.0", "@vuelidate/core": "2.0.0-alpha.42", diff --git a/src/components/extra_buttons/extra_buttons.js b/src/components/extra_buttons/extra_buttons.js index f24e261b..4bc6144c 100644 --- a/src/components/extra_buttons/extra_buttons.js +++ b/src/components/extra_buttons/extra_buttons.js @@ -8,7 +8,8 @@ import { faThumbtack, faShareAlt, faExternalLinkAlt, - faHistory + faHistory, + faFilePen } from '@fortawesome/free-solid-svg-icons' import { faBookmark as faBookmarkReg, @@ -24,7 +25,8 @@ library.add( faShareAlt, faExternalLinkAlt, faFlag, - faHistory + faHistory, + faFilePen ) const ExtraButtons = { @@ -36,7 +38,8 @@ const ExtraButtons = { data () { return { expanded: false, - showingDeleteDialog: false + showingDeleteDialog: false, + showingRedraftDialog: false } }, methods: { @@ -122,6 +125,34 @@ const ExtraButtons = { const stripFieldsList = ['attachments', 'created_at', 'emojis', 'text', 'raw_html', 'nsfw', 'poll', 'summary', 'summary_raw_html'] stripFieldsList.forEach(p => delete originalStatus[p]) this.$store.dispatch('openStatusHistoryModal', originalStatus) + }, + redraftStatus () { + if (this.shouldConfirmDelete) { + this.showRedraftStatusConfirmDialog() + } else { + this.doRedraftStatus() + } + }, + doRedraftStatus () { + this.$store.dispatch('fetchStatusSource', { id: this.status.id }) + .then(data => this.$store.dispatch('openPostStatusModal', { + isRedraft: true, + statusId: this.status.id, + subject: data.spoiler_text, + statusText: data.text, + statusIsSensitive: this.status.nsfw, + statusPoll: this.status.poll, + statusFiles: [...this.status.attachments], + statusScope: this.status.visibility, + statusContentType: data.content_type + })) + this.doDeleteStatus() + }, + showRedraftStatusConfirmDialog () { + this.showingRedraftDialog = true + }, + hideRedraftStatusConfirmDialog () { + this.showingRedraftDialog = false } }, computed: { diff --git a/src/components/extra_buttons/extra_buttons.vue b/src/components/extra_buttons/extra_buttons.vue index a15f0bf2..9da2ad8c 100644 --- a/src/components/extra_buttons/extra_buttons.vue +++ b/src/components/extra_buttons/extra_buttons.vue @@ -95,6 +95,17 @@ icon="history" />{{ $t("status.edit_history") }} +