mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-18 08:12:15 +00:00
Move item grid to folder bug
This commit is contained in:
@@ -97,7 +97,7 @@ export default {
|
||||
if (!this.clipboard.includes(this.draggingId)) {
|
||||
this.$store.dispatch('moveItem', {
|
||||
to_item: data,
|
||||
noSelectedItem: this.draggingId,
|
||||
item: this.draggingId,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ export default {
|
||||
if (this.clipboard.length > 0 && this.clipboard.includes(this.draggingId)) {
|
||||
this.$store.dispatch('moveItem', {
|
||||
to_item: data,
|
||||
noSelectedItem: null,
|
||||
item: null,
|
||||
})
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -96,7 +96,7 @@ export default {
|
||||
// Move item
|
||||
this.$store.dispatch('moveItem', {
|
||||
to_item: this.selectedFolder,
|
||||
noSelectedItem: this.isSelectedItem ? this.pickedItem : null,
|
||||
item: this.isSelectedItem ? this.pickedItem : undefined,
|
||||
})
|
||||
|
||||
// Close popup
|
||||
|
||||
@@ -108,7 +108,7 @@ export default {
|
||||
if (!this.clipboard.includes(this.draggedItem[0])) {
|
||||
this.$store.dispatch('moveItem', {
|
||||
to_item: this.nodes,
|
||||
noSelectedItem: this.draggedItem[0],
|
||||
item: this.draggedItem[0],
|
||||
})
|
||||
}
|
||||
|
||||
@@ -116,7 +116,7 @@ export default {
|
||||
if (this.clipboard.includes(this.draggedItem[0])) {
|
||||
this.$store.dispatch('moveItem', {
|
||||
to_item: this.nodes,
|
||||
noSelectedItem: null,
|
||||
item: null,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
87
resources/js/store/modules/fileFunctions.js
vendored
87
resources/js/store/modules/fileFunctions.js
vendored
@@ -40,22 +40,22 @@ const actions = {
|
||||
// Download zip
|
||||
Vue.prototype.$downloadFile(route, 'files.zip')
|
||||
},
|
||||
moveItem: ({ commit, getters, dispatch }, { to_item, noSelectedItem }) => {
|
||||
let itemsToMove = []
|
||||
let items = [noSelectedItem]
|
||||
moveItem: ({ commit, getters, dispatch }, { to_item, item }) => {
|
||||
let items = item
|
||||
? [item]
|
||||
: getters.clipboard
|
||||
|
||||
// If coming no selected item dont get items to move from clipboard
|
||||
if (!noSelectedItem) items = getters.clipboard
|
||||
|
||||
items.forEach((data) =>
|
||||
itemsToMove.push({
|
||||
let itemsToMove = items.map((data) => {
|
||||
return {
|
||||
id: data.data.id,
|
||||
type: data.data.type,
|
||||
})
|
||||
)
|
||||
}
|
||||
})
|
||||
|
||||
// Remove file preview
|
||||
if (!noSelectedItem) commit('CLIPBOARD_CLEAR')
|
||||
if (!item) {
|
||||
commit('CLIPBOARD_CLEAR')
|
||||
}
|
||||
|
||||
// Get route
|
||||
let route = {
|
||||
@@ -63,14 +63,11 @@ const actions = {
|
||||
Public: `/api/editor/move/${router.currentRoute.params.token}`,
|
||||
}[router.currentRoute.name] || '/api/move'
|
||||
|
||||
let moveToId = null
|
||||
|
||||
if (to_item.data) moveToId = to_item.data.id
|
||||
else if (to_item.id) moveToId = to_item.id
|
||||
let moveToId = to_item.data ? to_item.data.id : to_item.id
|
||||
|
||||
axios
|
||||
.post(route, {
|
||||
to_id: moveToId,
|
||||
to_id: moveToId || null,
|
||||
items: itemsToMove,
|
||||
})
|
||||
.then(() => {
|
||||
@@ -78,9 +75,11 @@ const actions = {
|
||||
commit('REMOVE_ITEM', item.id)
|
||||
commit('INCREASE_FOLDER_ITEM', moveToId)
|
||||
|
||||
if (item.type === 'folder') dispatch('getAppData')
|
||||
if (item.type === 'folder')
|
||||
dispatch('getAppData')
|
||||
|
||||
if (Vue.prototype.$isThisRoute(router.currentRoute, ['Public'])) dispatch('getFolderTree')
|
||||
if (Vue.prototype.$isThisRoute(router.currentRoute, ['Public']))
|
||||
dispatch('getFolderTree')
|
||||
})
|
||||
})
|
||||
.catch(() => Vue.prototype.$isSomethingWrong())
|
||||
@@ -270,19 +269,18 @@ const actions = {
|
||||
})
|
||||
},
|
||||
restoreItem: ({ commit, getters }, item) => {
|
||||
let itemToRestore = []
|
||||
let items = [item]
|
||||
let items = item
|
||||
? [item]
|
||||
: getters.clipboard
|
||||
|
||||
let restoreToHome = Vue.prototype.$isThisRoute(router.currentRoute, ['Trash'])
|
||||
|
||||
// If coming no selected item dont get items to restore from clipboard
|
||||
if (!item) items = getters.clipboard
|
||||
|
||||
items.forEach((data) =>
|
||||
itemToRestore.push({
|
||||
let itemToRestore = items.map((data) => {
|
||||
return {
|
||||
type: data.data.type,
|
||||
id: data.data.id,
|
||||
})
|
||||
)
|
||||
}
|
||||
})
|
||||
|
||||
// Remove file preview
|
||||
commit('CLIPBOARD_CLEAR')
|
||||
@@ -292,31 +290,28 @@ const actions = {
|
||||
to_home: restoreToHome,
|
||||
items: itemToRestore,
|
||||
})
|
||||
.then(items.forEach((item) => commit('REMOVE_ITEM', item.data.id)))
|
||||
.then(() => items.forEach((item) => commit('REMOVE_ITEM', item.data.id)))
|
||||
.catch(() => Vue.prototype.$isSomethingWrong())
|
||||
},
|
||||
deleteItem: ({ commit, getters, dispatch }, noSelectedItem) => {
|
||||
let itemsToDelete = []
|
||||
let items = [noSelectedItem]
|
||||
deleteItem: ({ commit, getters, dispatch }, item) => {
|
||||
let items = item
|
||||
? [item]
|
||||
: getters.clipboard
|
||||
|
||||
// If coming no selected item dont get items to move from clipboard
|
||||
if (!noSelectedItem) items = getters.clipboard
|
||||
|
||||
items.forEach((data) => {
|
||||
itemsToDelete.push({
|
||||
force_delete: !!data.data.attributes.deleted_at,
|
||||
type: data.data.type,
|
||||
id: data.data.id,
|
||||
})
|
||||
|
||||
// Remove file
|
||||
let deletedItems = items.map((data) => {
|
||||
// Remove file from view
|
||||
commit('REMOVE_ITEM', data.data.id)
|
||||
commit('REMOVE_ITEM_FROM_CLIPBOARD', data.data.id)
|
||||
events.$emit('file:deleted', data.data.id)
|
||||
|
||||
// Remove item from sidebar
|
||||
if (! ['Public', 'RequestUpload'].includes(router.currentRoute.name)) {
|
||||
if (data.data.type === 'folder') commit('REMOVE_ITEM_FROM_FAVOURITES', data)
|
||||
if (! ['Public', 'RequestUpload'].includes(router.currentRoute.name) && data.data.type === 'folder')
|
||||
commit('REMOVE_ITEM_FROM_FAVOURITES', data)
|
||||
|
||||
return {
|
||||
force_delete: !!data.data.attributes.deleted_at,
|
||||
type: data.data.type,
|
||||
id: data.data.id,
|
||||
}
|
||||
})
|
||||
|
||||
@@ -328,10 +323,10 @@ const actions = {
|
||||
|
||||
axios
|
||||
.post(route, {
|
||||
items: itemsToDelete,
|
||||
items: deletedItems,
|
||||
})
|
||||
.then(() => {
|
||||
itemsToDelete.forEach((data) => {
|
||||
deletedItems.forEach((data) => {
|
||||
// If is folder, update app data
|
||||
if (data.type === 'folder' && getters.currentFolder && data.id === getters.currentFolder.data.id) {
|
||||
router.back()
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
:class="{ 'is-inactive': clipboard.length < 1 }"
|
||||
/>
|
||||
<ToolbarButton
|
||||
@click.native="$deleteFileOrFolder(clipboard)"
|
||||
@click.native="$deleteFileOrFolder()"
|
||||
class="mr-4"
|
||||
source="trash"
|
||||
:class="{ 'is-inactive': clipboard.length < 1 }"
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
:class="{ 'is-inactive': clipboard.length < 1 }"
|
||||
/>
|
||||
<ToolbarButton
|
||||
@click.native="$deleteFileOrFolder(clipboard)"
|
||||
@click.native="$deleteFileOrFolder()"
|
||||
class="mr-4"
|
||||
source="trash"
|
||||
:class="{ 'is-inactive': clipboard.length < 1 }"
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
|
||||
<MobileMultiSelectToolbar>
|
||||
<ToolbarButton
|
||||
@click.native="$deleteFileOrFolder(clipboard)"
|
||||
@click.native="$deleteFileOrFolder()"
|
||||
class="mr-4"
|
||||
source="trash"
|
||||
:class="{ 'is-inactive': clipboard.length < 1 }"
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
/>
|
||||
<ToolbarButton
|
||||
v-if="canEdit"
|
||||
@click.native="$deleteFileOrFolder(clipboard)"
|
||||
@click.native="$deleteFileOrFolder()"
|
||||
class="mr-4"
|
||||
source="trash"
|
||||
:class="{ 'is-inactive': clipboard.length < 1 }"
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
:class="{ 'is-inactive': clipboard.length < 1 }"
|
||||
/>
|
||||
<ToolbarButton
|
||||
@click.native="$deleteFileOrFolder(clipboard)"
|
||||
@click.native="$deleteFileOrFolder()"
|
||||
class="mr-4"
|
||||
source="trash"
|
||||
:class="{ 'is-inactive': clipboard.length < 1 }"
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
|
||||
<MobileMultiSelectToolbar>
|
||||
<ToolbarButton
|
||||
@click.native="$deleteFileOrFolder(clipboard)"
|
||||
@click.native="$deleteFileOrFolder()"
|
||||
class="mr-4"
|
||||
source="trash"
|
||||
:class="{ 'is-inactive': clipboard.length < 1 }"
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
:class="{ 'is-inactive': clipboard.length < 1 }"
|
||||
/>
|
||||
<ToolbarButton
|
||||
@click.native="$deleteFileOrFolder(clipboard)"
|
||||
@click.native="$deleteFileOrFolder()"
|
||||
source="trash"
|
||||
:class="{ 'is-inactive': clipboard.length < 1 }"
|
||||
:action="$t('delete')"
|
||||
|
||||
Reference in New Issue
Block a user