forked from FoundKeyGang/FoundKey
[wip] フォルダー名の変更と削除機能を実装 (#5874)
* フォルダーの削除機能を実装 * フォルダ名の変更を実装 * ダイアログの削除(v11準拠)とエラーメッセージを表示するように * ダイアログのテキストのkeypathを変更
This commit is contained in:
parent
e812d054bc
commit
18458f418f
2 changed files with 45 additions and 2 deletions
|
@ -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() {
|
||||
for (const file of Array.from((this.$refs.fileInput as any).files)) {
|
||||
this.upload(file, this.folder);
|
||||
|
|
|
@ -57,11 +57,11 @@ export default Vue.extend({
|
|||
}, this.folder ? {
|
||||
text: this.$t('renameFolder'),
|
||||
icon: faICursor,
|
||||
action: () => { this.$refs.drive.renameFolder(); }
|
||||
action: () => { this.$refs.drive.renameFolder(this.folder); }
|
||||
} : undefined, this.folder ? {
|
||||
text: this.$t('deleteFolder'),
|
||||
icon: faTrashAlt,
|
||||
action: () => { this.$refs.drive.deleteFolder(); }
|
||||
action: () => { this.$refs.drive.deleteFolder(this.folder); }
|
||||
} : undefined, {
|
||||
text: this.$t('createFolder'),
|
||||
icon: faFolderPlus,
|
||||
|
|
Loading…
Reference in a new issue