[wip] フォルダー名の変更と削除機能を実装 (#5874)
* フォルダーの削除機能を実装 * フォルダ名の変更を実装 * ダイアログの削除(v11準拠)とエラーメッセージを表示するように * ダイアログのテキストのkeypathを変更
This commit is contained in:
parent
e812d054bc
commit
18458f418f
|
@ -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);
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Reference in a new issue