Skip to content

Commit 2f80415

Browse files
committed
Add custom logic
1 parent 2d87a89 commit 2f80415

File tree

7 files changed

+59
-15
lines changed

7 files changed

+59
-15
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/components/blocks/NavbarBlock.vue

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,15 @@
113113
>
114114
<i class="bi" v-bind:class="[hiddenFiles ? 'bi-eye-fill' : 'bi-eye-slash-fill']" />
115115
</button>
116+
<button
117+
type="button"
118+
class="btn btn-secondary"
119+
v-bind:disabled="insertDisabled"
120+
v-bind:title="lang.btn.insert"
121+
v-on:click="insertSelected"
122+
>
123+
<i class="bi bi-check"></i>
124+
</button>
116125
</div>
117126
</div>
118127
<div class="col-auto text-right">
@@ -247,6 +256,14 @@ export default {
247256
hiddenFiles() {
248257
return this.$store.state.fm.settings.hiddenFiles;
249258
},
259+
260+
/**
261+
* Insert button state
262+
* @returns {boolean}
263+
*/
264+
insertDisabled() {
265+
return this.$store.state.fm[this.activeManager].selected.files.length <= 0;
266+
},
250267
},
251268
methods: {
252269
/**
@@ -305,6 +322,17 @@ export default {
305322
this.$store.commit('fm/settings/toggleHiddenFiles');
306323
},
307324
325+
/**
326+
* Insert
327+
*/
328+
insertSelected() {
329+
window.dispatchEvent(
330+
new CustomEvent('fm:insert', {
331+
detail: { files: this.$store.getters['fm/selectedItems'] },
332+
})
333+
);
334+
},
335+
308336
/**
309337
* Show modal window
310338
* @param modalName

src/components/blocks/mixins/contextMenuActions.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,17 @@ export default {
6161
});
6262
},
6363

64+
/**
65+
* Select file
66+
*/
67+
insertAction() {
68+
window.dispatchEvent(
69+
new CustomEvent('fm:insert', {
70+
detail: { files: this.$store.getters['fm/selectedItems'] },
71+
})
72+
);
73+
},
74+
6475
/**
6576
* Select file
6677
*/

src/components/blocks/mixins/contextMenuRules.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,14 @@ export default {
4747
return !this.multiSelect && this.firstItemType === 'file' && this.canEdit(this.selectedItems[0].extension);
4848
},
4949

50+
/**
51+
* Insert - menu item status - show or hide
52+
* @returns {boolean|*}
53+
*/
54+
insertRule() {
55+
return this.firstItemType === 'file' && this.canEdit(this.selectedItems[0].extension);
56+
},
57+
5058
/**
5159
* Select - menu item status - show or hide
5260
* @returns {boolean|null}

src/components/manager/mixins/manager.js

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -100,20 +100,13 @@ export default {
100100
// search in selected array
101101
const alreadySelected = this.selected[type].includes(path);
102102

103-
// if pressed Ctrl -> multi select
104-
if (event.ctrlKey || event.metaKey) {
105-
if (!alreadySelected) {
106-
// add new selected item
107-
this.$store.commit(`fm/${this.manager}/setSelected`, { type, path });
108-
} else {
109-
// remove selected item
110-
this.$store.commit(`fm/${this.manager}/removeSelected`, { type, path });
111-
}
112-
}
113-
114-
// single select
115-
if (!event.ctrlKey && !alreadySelected && !event.metaKey) {
103+
if (!alreadySelected) {
104+
// add new selected item
105+
this.$store.commit(`fm/${this.manager}/setSelected`, { type, path });
116106
this.$store.commit(`fm/${this.manager}/changeSelected`, { type, path });
107+
} else {
108+
// remove selected item
109+
this.$store.commit(`fm/${this.manager}/removeSelected`, { type, path });
117110
}
118111
},
119112

src/lang/en.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ const en = {
2424
upload: 'Upload',
2525
uploadSelect: 'Select files',
2626
hidden: ' Hidden files',
27+
insert: 'Insert',
2728
},
2829
clipboard: {
2930
actionType: 'Type',
@@ -49,6 +50,7 @@ const en = {
4950
edit: 'Edit',
5051
audioPlay: 'Play',
5152
videoPlay: 'Play',
53+
insert: 'Insert',
5254
},
5355
info: {
5456
directories: 'Folders:',

src/lang/ru.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ const ru = {
2424
upload: 'Загрузить',
2525
uploadSelect: 'Выбрать файлы',
2626
hidden: 'Скрытые файлы',
27+
insert: 'Выбрать',
2728
},
2829
clipboard: {
2930
actionType: 'Тип операции',
@@ -49,6 +50,7 @@ const ru = {
4950
edit: 'Редактировать',
5051
audioPlay: 'Воспроизвести',
5152
videoPlay: 'Воспроизвести',
53+
insert: 'Выбрать',
5254
},
5355
info: {
5456
directories: 'Папок:',

0 commit comments

Comments
 (0)