diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 3e57120871..1dfe9d7911 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -35,6 +35,8 @@ unpin: "ピン留め解除" copyContent: "内容をコピー" copyLink: "リンクをコピー" delete: "削除" +deleteAndEdit: "削除して編集" +deleteAndEditConfirm: "このノートを削除してもう一度編集しますか?このノートへのリアクション、Renote、返信も全て削除されます。" addToList: "リストに追加" sendMessage: "メッセージを送信" copyUsername: "ユーザー名をコピー" diff --git a/src/client/components/note.vue b/src/client/components/note.vue index db669309d3..b3126e0673 100644 --- a/src/client/components/note.vue +++ b/src/client/components/note.vue @@ -86,7 +86,7 @@ <script lang="ts"> import Vue from 'vue'; import { faBolt, faTimes, faBullhorn, faStar, faLink, faExternalLinkSquareAlt, faPlus, faMinus, faRetweet, faReply, faReplyAll, faEllipsisH, faHome, faUnlock, faEnvelope, faThumbtack, faBan, faQuoteRight, faInfoCircle } from '@fortawesome/free-solid-svg-icons'; -import { faCopy, faTrashAlt, faEye, faEyeSlash } from '@fortawesome/free-regular-svg-icons'; +import { faCopy, faTrashAlt, faEdit, faEye, faEyeSlash } from '@fortawesome/free-regular-svg-icons'; import { parse } from '../../mfm/parse'; import { sum, unique } from '../../prelude/array'; import i18n from '../i18n'; @@ -142,7 +142,7 @@ export default Vue.extend({ replies: [], showContent: false, hideThisNote: false, - faBolt, faTimes, faBullhorn, faPlus, faMinus, faRetweet, faReply, faReplyAll, faEllipsisH, faHome, faUnlock, faEnvelope, faThumbtack, faBan + faEdit, faBolt, faTimes, faBullhorn, faPlus, faMinus, faRetweet, faReply, faReplyAll, faEllipsisH, faHome, faUnlock, faEnvelope, faThumbtack, faBan }; }, @@ -460,6 +460,22 @@ export default Vue.extend({ }); }, + delEdit() { + this.$root.dialog({ + type: 'warning', + text: this.$t('deleteAndEditConfirm'), + showCancelButton: true + }).then(({ canceled }) => { + if (canceled) return; + + this.$root.api('notes/delete', { + noteId: this.appearNote.id + }); + + this.$root.post({ initialNote: this.appearNote, renote: this.appearNote.renote, reply: this.appearNote.reply }); + }); + }, + toggleFavorite(favorite: boolean) { this.$root.api(favorite ? 'notes/favorites/create' : 'notes/favorites/delete', { noteId: this.appearNote.id @@ -547,6 +563,11 @@ export default Vue.extend({ ), ...(this.appearNote.userId == this.$store.state.i.id ? [ null, + { + icon: faEdit, + text: this.$t('deleteAndEdit'), + action: this.delEdit + }, { icon: faTrashAlt, text: this.$t('delete'), diff --git a/src/client/components/post-form.vue b/src/client/components/post-form.vue index 7b84938d5a..d7bd105d80 100644 --- a/src/client/components/post-form.vue +++ b/src/client/components/post-form.vue @@ -300,6 +300,7 @@ export default Vue.extend({ }); } this.visibility = init.visibility; + this.localOnly = init.localOnly; this.quoteId = init.renote ? init.renote.id : null; }