bulk-operations multiSelect items UI v0.1

This commit is contained in:
Milos Holba
2020-11-26 12:26:30 +01:00
parent 1654dc8678
commit 0eb0939598
5 changed files with 97 additions and 85 deletions

View File

@@ -27,9 +27,9 @@
"/chunks/database.js": "/chunks/database.js?id=416a5164bdc53c97ea34",
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=464c8e70974d492ce7f6",
"/chunks/environment-setup.js": "/chunks/environment-setup.js?id=405847df44edd86e301a",
"/chunks/files.js": "/chunks/files.js?id=9e1737eeeb020a6cd38c",
"/chunks/files.js": "/chunks/files.js?id=f1d8017665f8cb3090cf",
"/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/user-subscription.js": "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/user-subscription.js?id=8ccd35de575e8a91d02f",
"/chunks/files~chunks/shared-files~chunks/shared-page.js": "/chunks/files~chunks/shared-files~chunks/shared-page.js?id=990cf6d7b751edb813ff",
"/chunks/files~chunks/shared-files~chunks/shared-page.js": "/chunks/files~chunks/shared-files~chunks/shared-page.js?id=5e607d74a439b6249d61",
"/chunks/files~chunks/shared-page.js": "/chunks/files~chunks/shared-page.js?id=b013006caf6a7063b0b8",
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=aba8c662fbc234892216",
"/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=ecceaa6cdf5768826b36",
@@ -75,53 +75,31 @@
"/chunks/user-storage.js": "/chunks/user-storage.js?id=a99910f95c3e39caa78b",
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=e8ea1e67f9ac0a835ed0",
"/chunks/users.js": "/chunks/users.js?id=cdba7af8fb0cd8e64c40",
"/chunks/files.6a685f6289cf1bfc141c.hot-update.js": "/chunks/files.6a685f6289cf1bfc141c.hot-update.js",
"/chunks/files.cad433a146128f56d2d4.hot-update.js": "/chunks/files.cad433a146128f56d2d4.hot-update.js",
"/chunks/files.c2acb6afedccb96edf6d.hot-update.js": "/chunks/files.c2acb6afedccb96edf6d.hot-update.js",
"/chunks/files.4afd3a8e09953ec679eb.hot-update.js": "/chunks/files.4afd3a8e09953ec679eb.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.45644e070fde396c0c45.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.45644e070fde396c0c45.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.82b8842de1dc1eed4f0a.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.82b8842de1dc1eed4f0a.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.6618863dd49c521e5460.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.6618863dd49c521e5460.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.7d94a828991b0f82b6ca.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.7d94a828991b0f82b6ca.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.b143a803bb292130d301.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.b143a803bb292130d301.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.9d25d0baa12ebb93edd0.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.9d25d0baa12ebb93edd0.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.c05cc53a31e50de846c9.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.c05cc53a31e50de846c9.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.e7ab8044e54a358192eb.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.e7ab8044e54a358192eb.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.f0b6da52d150b6ed56ae.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.f0b6da52d150b6ed56ae.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.61c9eb401b97ac17703e.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.61c9eb401b97ac17703e.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.2dfd480d385288afb597.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.2dfd480d385288afb597.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.5d9e0898faf2107ba995.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.5d9e0898faf2107ba995.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.85a5e7901b2fc3cd5e7f.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.85a5e7901b2fc3cd5e7f.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.4891bbb748d0381e1802.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.4891bbb748d0381e1802.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.d3a98b55bc6bd2b278c4.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.d3a98b55bc6bd2b278c4.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.8b8e51f1f43d983bbbc8.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.8b8e51f1f43d983bbbc8.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.462668061bf4e4d1af3a.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.462668061bf4e4d1af3a.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.2c44c51d9e51f7eb6bd1.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.2c44c51d9e51f7eb6bd1.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.a4763d676d5346a68cc2.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.a4763d676d5346a68cc2.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.2558472fdf41bc798ea6.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.2558472fdf41bc798ea6.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.588b652aabbae77bba23.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.588b652aabbae77bba23.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.5ec643f1187cfb992a54.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.5ec643f1187cfb992a54.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.1f8ccf96f2d7a0fd92d0.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.1f8ccf96f2d7a0fd92d0.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.aa1687209969e4f3552a.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.aa1687209969e4f3552a.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.a05539e331d784642d34.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.a05539e331d784642d34.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.eb449059f5ef4ac5d9c7.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.eb449059f5ef4ac5d9c7.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.bcd7a280db83749a8af6.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.bcd7a280db83749a8af6.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.35aed6f72b3284c78cdb.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.35aed6f72b3284c78cdb.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.97c466136920e93b2570.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.97c466136920e93b2570.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.ea0cec822c5da5db6b3c.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.ea0cec822c5da5db6b3c.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.9c78511c6a28bd62d73c.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.9c78511c6a28bd62d73c.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.2bc56a636af44c93dade.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.2bc56a636af44c93dade.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.41bb54ffce749055cbaa.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.41bb54ffce749055cbaa.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.1d263fe996010eecc975.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.1d263fe996010eecc975.hot-update.js",
"/js/main.ca61458bbbf76d068204.hot-update.js": "/js/main.ca61458bbbf76d068204.hot-update.js",
"/js/main.d0f3dea825e7ba8cd039.hot-update.js": "/js/main.d0f3dea825e7ba8cd039.hot-update.js",
"/js/main.16d87ff0b6a9d1179e96.hot-update.js": "/js/main.16d87ff0b6a9d1179e96.hot-update.js",
"/js/main.08677b8740dd442d3669.hot-update.js": "/js/main.08677b8740dd442d3669.hot-update.js",
"/js/main.8b864ea4da3aea013b5b.hot-update.js": "/js/main.8b864ea4da3aea013b5b.hot-update.js",
"/js/main.e5d3b659975aa3ed6188.hot-update.js": "/js/main.e5d3b659975aa3ed6188.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.c2da7dba0e2ab099ac4e.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.c2da7dba0e2ab099ac4e.hot-update.js",
"/js/main.0faad28cdd76e35d343d.hot-update.js": "/js/main.0faad28cdd76e35d343d.hot-update.js",
"/chunks/files.6bdb070aae5f8d19bb99.hot-update.js": "/chunks/files.6bdb070aae5f8d19bb99.hot-update.js",
"/chunks/files.db549ff873db02b2b72e.hot-update.js": "/chunks/files.db549ff873db02b2b72e.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.51cdf4ae38e7f4bbf41d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.51cdf4ae38e7f4bbf41d.hot-update.js"
"/chunks/files~chunks/shared-files~chunks/shared-page.1672962443faca7a2623.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.1672962443faca7a2623.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.8ca7286c54052251e57b.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.8ca7286c54052251e57b.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.41d33ecbac7eb11ef0a2.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.41d33ecbac7eb11ef0a2.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.92f6cf48da2043954542.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.92f6cf48da2043954542.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.06f22a3e7ffb290c304c.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.06f22a3e7ffb290c304c.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.0c0703e40e2aff2e1670.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.0c0703e40e2aff2e1670.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.360b315efdcbfe9f95d7.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.360b315efdcbfe9f95d7.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.7f7e626521c61230f7af.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.7f7e626521c61230f7af.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.40d0f9487d29ea821e8f.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.40d0f9487d29ea821e8f.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.44f53064191944d190d2.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.44f53064191944d190d2.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.c0a02863175efb4828af.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.c0a02863175efb4828af.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.49cbb11eadbd93961f19.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.49cbb11eadbd93961f19.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.cabc4e894421b1cc17a3.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.cabc4e894421b1cc17a3.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.0db0698de154e2e86fb7.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.0db0698de154e2e86fb7.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.06337e2b8af150596a01.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.06337e2b8af150596a01.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.934927072126ca10ea93.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.934927072126ca10ea93.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.280d2db56305ecfd634d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.280d2db56305ecfd634d.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.71caf8867e73e96ede1d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.71caf8867e73e96ede1d.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.3b123665bbec91cc28ad.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.3b123665bbec91cc28ad.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.5dc8cab9d6b517d330fb.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.5dc8cab9d6b517d330fb.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.b7c3aae8c93c847143be.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.b7c3aae8c93c847143be.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.a2a2aee61f4fa1f213d9.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.a2a2aee61f4fa1f213d9.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.1f8274ef368380ee75f4.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.1f8274ef368380ee75f4.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.c3641dfd1ebb30cbd31a.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.c3641dfd1ebb30cbd31a.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.2c0a2335f261f5eb5911.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.2c0a2335f261f5eb5911.hot-update.js",
"/chunks/files.bc6ba25e4cfc1744d7a1.hot-update.js": "/chunks/files.bc6ba25e4cfc1744d7a1.hot-update.js",
"/chunks/files~chunks/shared-files~chunks/shared-page.51ae6746cbde12d39b6d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.51ae6746cbde12d39b6d.hot-update.js"
}

View File

@@ -1,5 +1,5 @@
<template>
<div class="file-content" :class="{ 'is-offset': uploadingFilesCount, 'is-dragging': isDragging }"
<div class="file-content" id="file-content-id" :class="{ 'is-offset': uploadingFilesCount, 'is-dragging': isDragging }"
@dragover.prevent
@drop.stop.prevent="dropUpload($event)"
@dragover="dragEnter"
@@ -29,6 +29,7 @@
:class="FilePreviewType"
>
<FileItemList
@drag.native="mousePosition"
@dragstart="dragStart(item)"
@drop.stop.native.prevent="dragFinish(item, $event)"
@contextmenu.native.prevent="contextMenu($event, item)"
@@ -81,6 +82,7 @@
<!--If file info panel empty show message-->
<EmptyMessage v-if="fileInfoDetail.length === 0" :message="$t('messages.nothing_to_preview')" icon="eye-off"/>
</div>
<MultiSelected @click.prevent="" :clone-element="dragInProgress" :style="{ top: positionY + 'px', left: positionX + 'px' }" id="multi-selected" v-if="dragInProgress && this.fileInfoDetail.length > 1" />
</div>
</template>
@@ -135,10 +137,25 @@
return {
draggingId: undefined,
isDragging: false,
mobileMultiSelect: false
mobileMultiSelect: false,
dragInProgress:false,
positionY:undefined,
positionX:undefined
}
},
methods: {
mousePosition() {
let contentLeft = document.getElementById('file-content-id').getBoundingClientRect().left -15
if(event.clientX > contentLeft ) {
this.positionY = event.clientY -85
this.positionX = event.clientX -350
}else if (event.clientX < contentLeft){
this.positionY = event.clientY -15
this.positionX = event.clientX -30
}
// console.log(event.clientX, contentLeft)
},
dropUpload(event) {
// Upload external file
this.$uploadExternalFiles(event, this.currentFolder.unique_id)
@@ -152,16 +169,11 @@
this.isDragging = false
},
dragStart(data) {
let elementClone = event.target.cloneNode(true)
elementClone.className = 'draged-clone'
console.log(elementClone)
// elementClone.style.backgroundColor = "red"
// let element = document.getElementsByClassName('file-item')
// element.style.display = "none"
// var crt = this.cloneNode(true);
// crt.style.backgroundColor = "red";
// this.style.display = "none"
let img = document.createElement('img')
img.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
event.dataTransfer.setDragImage(img, 0, 0)
this.dragInProgress = true
events.$emit('dragstart', data)
@@ -170,6 +182,7 @@
},
dragFinish(data, event) {
this.dragInProgress = false
if (event.dataTransfer.items.length == 0) {
// Prevent to drop on file or image
@@ -222,7 +235,8 @@
})
events.$on('drop', () => {
this.isDragging = false
this.isDragging = false,
this.dragInProgress = false
})
events.$on('fileItem:deselect', () =>
@@ -250,6 +264,13 @@
@import '@assets/vue-file-manager/_variables';
@import '@assets/vue-file-manager/_mixins';
#multi-selected {
position: fixed;
pointer-events: none;
z-index: 100;
}
.draged-clone {
display: none !important;
opacity: 0 !important;

View File

@@ -1,5 +1,5 @@
<template>
<div :class="this.moveItem ? 'move-item' : 'wrapper'">
<div :class="[this.moveItem ? 'move-item' : 'wrapper' , this.cloneElement ? 'clone' : '']">
<div class="icon-wrapper">
<CheckSquareIcon class="icon" size="21"/>
</div>
@@ -16,7 +16,7 @@ import {mapGetters} from 'vuex'
export default {
name:'MultiSelected',
props: ['moveItem'],
props: ['moveItem' , 'cloneElement'],
components: {CheckSquareIcon},
computed: {
...mapGetters(['fileInfoDetail'])
@@ -28,6 +28,9 @@ import {mapGetters} from 'vuex'
<style lang="scss" scoped>
@import '@assets/vue-file-manager/_variables';
@import '@assets/vue-file-manager/_mixins';
.clone {
position: relative;
}
.wrapper {
display: flex;

View File

@@ -1,5 +1,5 @@
<template>
<section id="viewport" v-if="user" ref="wrapper" @mousemove="mousePosition">
<section id="viewport" v-if="user">
<ContentSidebar>
@@ -79,7 +79,6 @@
</ContentGroup>
</ContentSidebar>
<MultiSelected :clone-element="false" :style="{ top: positionY + 'px', left: positionX + 'px' }" id="multi-selected" v-if="dragInProgress" />
<ContentFileView/>
</section>
@@ -133,18 +132,9 @@
return {
area: false,
draggedItem: undefined,
dragInProgress:false,
positionY:undefined,
positionX:undefined
}
},
methods: {
mousePosition(event){
this.positionX = event.clientX -50
this.positionY = event.clientY -25
},
getTrash() {
this.$store.dispatch('getTrash')
},
@@ -196,9 +186,6 @@
this.$store.dispatch('removeFromFavourites', folder)
}
},
updated () {
this.$refs.wrapper.focus()
},
created() {
this.goHome()
@@ -228,10 +215,6 @@
<style lang="scss" scoped>
#multi-selected {
position: absolute;
}
.empty-note {
&.navigator {

View File

@@ -438,4 +438,31 @@
}
}
}
}
::-webkit-scrollbar {
width: 4px;
// border-radius: 15px;
}
/* Handle */
::-webkit-scrollbar-thumb {
width: 4px;
background: #7f7f7f;
border-radius: 25px;
}
::-webkit-scrollbar-track {
width: 8px;
padding: 4px;
}
@media (prefers-color-scheme: dark) {
::-webkit-scrollbar-thumb {
background: $light_text;
}
}