diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index 637f2235d6..6b008a3df8 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -958,7 +958,7 @@ desktop/views/components/drive.file.vue:
unmark-as-sensitive: "閲覧注意を解除"
copy-url: "URLをコピー"
download: "ダウンロード"
- else-files: "その他..."
+ else-files: "その他"
set-as-avatar: "アイコンに設定"
set-as-banner: "バナーに設定"
open-in-app: "アプリで開く"
@@ -969,6 +969,7 @@ desktop/views/components/drive.file.vue:
copied-url-to-clipboard: "URLをクリップボードにコピーしました"
desktop/views/components/drive.folder.vue:
+ upload-folder: "既定アップロード先"
unable-to-process: "操作を完了できません"
circular-reference-detected: "移動先のフォルダーは、移動するフォルダーのサブフォルダーです。"
unhandled-error: "不明なエラー"
@@ -980,6 +981,8 @@ desktop/views/components/drive.folder.vue:
rename: "名前を変更"
rename-folder: "フォルダ名の変更"
input-new-folder-name: "新しいフォルダ名を入力してください"
+ else-folders: "その他"
+ set-as-upload-folder: "既定アップロード先に設定"
desktop/views/components/drive.vue:
search: "検索"
@@ -1143,6 +1146,9 @@ common/views/components/drive-settings.vue:
max: "容量"
in-use: "使用中"
stats: "統計"
+ default-upload-folder: "既定のアップロード先フォルダ"
+ default-upload-folder-name: "フォルダ"
+ change-default-upload-folder: "フォルダを変更"
common/views/components/mute-and-block.vue:
mute-and-block: "ミュートとブロック"
diff --git a/src/client/app/common/scripts/post-form.ts b/src/client/app/common/scripts/post-form.ts
index 7cd2e7c310..1d93b4c268 100644
--- a/src/client/app/common/scripts/post-form.ts
+++ b/src/client/app/common/scripts/post-form.ts
@@ -245,7 +245,7 @@ export default (opts) => ({
},
upload(file) {
- (this.$refs.uploader as any).upload(file);
+ (this.$refs.uploader as any).upload(file, this.$store.state.settings.uploadFolder);
},
onChangeUploadings(uploads) {
diff --git a/src/client/app/common/views/components/messaging-room.form.vue b/src/client/app/common/views/components/messaging-room.form.vue
index 1dfb0589e4..74e30d29e8 100644
--- a/src/client/app/common/views/components/messaging-room.form.vue
+++ b/src/client/app/common/views/components/messaging-room.form.vue
@@ -158,7 +158,7 @@ export default Vue.extend({
},
upload(file) {
- (this.$refs.uploader as any).upload(file);
+ (this.$refs.uploader as any).upload(file, this.$store.state.settings.uploadFolder);
},
onUploaded(file) {
diff --git a/src/client/app/common/views/components/settings/drive.vue b/src/client/app/common/views/components/settings/drive.vue
index 7bdc806ae7..9b049c98e3 100644
--- a/src/client/app/common/views/components/settings/drive.vue
+++ b/src/client/app/common/views/components/settings/drive.vue
@@ -11,6 +11,12 @@
+ {{ $t('upload-folder') }} +
@@ -73,6 +76,14 @@ export default Vue.extend({ text: this.$t('@.delete'), icon: ['far', 'trash-alt'], action: this.deleteFolder + }, null, { + type: 'nest', + text: this.$t('contextmenu.else-folders'), + menu: [{ + type: 'item', + text: this.$t('contextmenu.set-as-upload-folder'), + action: this.setAsUploadFolder + }] }], { closed: () => { this.isContextmenuShowing = false; @@ -213,6 +224,13 @@ export default Vue.extend({ deleteFolder() { this.$root.api('drive/folders/delete', { folderId: this.folder.id + }).then(() => { + if (this.$store.state.settings.uploadFolder === this.folder.id) { + this.$store.dispatch('settings/set', { + key: 'uploadFolder', + value: null + }); + } }).catch(err => { switch(err.id) { case 'b0fc8a17-963c-405d-bfbc-859a487295e1': @@ -229,7 +247,14 @@ export default Vue.extend({ }); } }); - } + }, + + setAsUploadFolder() { + this.$store.dispatch('settings/set', { + key: 'uploadFolder', + value: this.folder.id + }); + }, } }); @@ -279,4 +304,10 @@ export default Vue.extend({ margin-left 2px text-align left + > .upload + margin 4px 4px + font-size 0.8em + text-align right + color var(--desktopDriveFolderFg) + diff --git a/src/client/app/store.ts b/src/client/app/store.ts index 852d2c393d..f5c89e24f6 100644 --- a/src/client/app/store.ts +++ b/src/client/app/store.ts @@ -38,6 +38,7 @@ const defaultSettings = { homeProfiles: {}, mobileHomeProfiles: {}, deckProfiles: {}, + uploadFolder: null, }; const defaultDeviceSettings = {