From a5e1ce0e0b80219167737aabf008899b94ab73d7 Mon Sep 17 00:00:00 2001
From: Xeltica <7106976+Xeltica@users.noreply.github.com>
Date: Sat, 21 Mar 2020 18:58:05 +0900
Subject: [PATCH] =?UTF-8?q?Add=20=E5=89=8A=E9=99=A4=E3=81=97=E3=81=A6?=
 =?UTF-8?q?=E7=B7=A8=E9=9B=86=20(#6147)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* Add 削除して編集

* 言語ファイルを更新

* リプライとリノートも復元する

* Revert "リプライとリノートも復元する"

This reverts commit f23f7f8d784b28f3d365c8f5aecf81001577c672.

* リプライとリノートも復元する
---
 locales/ja-JP.yml                   |  2 ++
 src/client/components/note.vue      | 25 +++++++++++++++++++++++--
 src/client/components/post-form.vue |  1 +
 3 files changed, 26 insertions(+), 2 deletions(-)

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;
 			}