[wip] フォルダー名の変更と削除機能を実装 (#5874)

* フォルダーの削除機能を実装

* フォルダ名の変更を実装

* ダイアログの削除(v11準拠)とエラーメッセージを表示するように

* ダイアログのテキストのkeypathを変更
This commit is contained in:
fuyu 2020-02-08 13:09:38 +09:00 committed by GitHub
parent e812d054bc
commit 18458f418f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 45 additions and 2 deletions

View File

@ -319,6 +319,49 @@ export default Vue.extend({
}); });
}, },
renameFolder(folder) {
this.$root.dialog({
title: this.$t('contextmenu.rename-folder'),
input: {
placeholder: this.$t('contextmenu.input-new-folder-name'),
default: folder.name
}
}).then(({ canceled, result: name }) => {
if (canceled) return;
this.$root.api('drive/folders/update', {
folderId: folder.id,
name: name
}).then(folder => {
// FIXME:
this.move(folder);
});
});
},
deleteFolder(folder) {
this.$root.api('drive/folders/delete', {
folderId: folder.id
}).then(() => {
//
this.move(folder.parentId);
}).catch(err => {
switch(err.id) {
case 'b0fc8a17-963c-405d-bfbc-859a487295e1':
this.$root.dialog({
type: 'error',
title: this.$t('unable-to-delete'),
text: this.$t('has-child-files-or-folders')
});
break;
default:
this.$root.dialog({
type: 'error',
text: this.$t('unable-to-delete')
});
}
});
},
onChangeFileInput() { onChangeFileInput() {
for (const file of Array.from((this.$refs.fileInput as any).files)) { for (const file of Array.from((this.$refs.fileInput as any).files)) {
this.upload(file, this.folder); this.upload(file, this.folder);

View File

@ -57,11 +57,11 @@ export default Vue.extend({
}, this.folder ? { }, this.folder ? {
text: this.$t('renameFolder'), text: this.$t('renameFolder'),
icon: faICursor, icon: faICursor,
action: () => { this.$refs.drive.renameFolder(); } action: () => { this.$refs.drive.renameFolder(this.folder); }
} : undefined, this.folder ? { } : undefined, this.folder ? {
text: this.$t('deleteFolder'), text: this.$t('deleteFolder'),
icon: faTrashAlt, icon: faTrashAlt,
action: () => { this.$refs.drive.deleteFolder(); } action: () => { this.$refs.drive.deleteFolder(this.folder); }
} : undefined, { } : undefined, {
text: this.$t('createFolder'), text: this.$t('createFolder'),
icon: faFolderPlus, icon: faFolderPlus,