This commit is contained in:
Peter Papp
2020-12-19 17:04:52 +01:00
parent 9098634b99
commit 08dc813af9
4 changed files with 118 additions and 229 deletions
@@ -1,6 +1,7 @@
<template>
<div :style="{ top: positionY + 'px', left: positionX + 'px' }" @click="closeAndResetContextMenu" class="contextmenu" v-show="isVisible || showFromPreview" ref="contextmenu" :class="{ 'filePreviewFixed' : showFromPreview}">
<!-- ContextMenu for File Preview -->
<!-- File Preview -->
<div class="menu-options" id="menu-list" v-if="showFromPreview">
<ul class="menu-option-group">
<li class="menu-option" @click="renameItem" v-if="multiSelectContextMenu">
@@ -52,7 +53,7 @@
</ul>
</div>
<!--ContextMenu for trash location-->
<!-- Trash location-->
<div v-if="
$isThisLocation(['trash', 'trash-root']) && $checkPermission('master') && !showFromPreview
" id="menu-list" class="menu-options">
@@ -102,7 +103,7 @@
</ul>
</div>
<!--ContextMenu for Base location with MASTER permission-->
<!-- Shared location with MASTER permission-->
<div v-if="$isThisLocation(['shared']) && $checkPermission('master') && !showFromPreview" id="menu-list" class="menu-options">
<ul class="menu-option-group" v-if="item && isFolder && multiSelectContextMenu">
<li class="menu-option" @click="addToFavourites">
@@ -176,7 +177,7 @@
</ul>
</div>
<!--ContextMenu for Base location with MASTER permission-->
<!-- Base location with MASTER permission-->
<div v-if="
$isThisLocation(['base', 'participant_uploads', 'latest']) &&
$checkPermission('master') && !showFromPreview
@@ -261,7 +262,7 @@
</ul>
</div>
<!--ContextMenu for Base location with EDITOR permission-->
<!-- Base & Public location with EDITOR permission-->
<div v-if="$isThisLocation(['base', 'public']) && $checkPermission('editor') && !showFromPreview " id="menu-list" class="menu-options">
<ul class="menu-option-group">
<li class="menu-option" @click="createFolder">
@@ -319,7 +320,7 @@
</ul>
</div>
<!--ContextMenu for Base location with VISITOR permission-->
<!-- Base & Public location with VISITOR permission-->
<div v-if="
$isThisLocation(['base', 'public']) && $checkPermission('visitor') && !showFromPreview
" id="menu-list" class="menu-options">
@@ -442,7 +443,7 @@ export default {
// Check if folder is in favourites and then add/remove from favourites
if (
this.favourites &&
!this.favourites.find((el) => el.unique_id == this.item.unique_id)
!this.favourites.find(el => el.unique_id == this.item.unique_id)
) {
// Add to favourite folder that is not selected
if (!this.fileInfoDetail.includes(this.item)) {
@@ -472,7 +473,6 @@ export default {
this.$store.dispatch('fileInfoToggle', true)
},
deleteItem() {
// Dispatch remove item
// If is context menu open on non selected item delete this single item
if (!this.fileInfoDetail.includes(this.item)) {
this.$store.dispatch('deleteItem', this.item)
+10 -16
View File
@@ -2,6 +2,7 @@ import axios from 'axios'
import {events} from '@/bus'
import i18n from '@/i18n/index.js'
import router from '@/router'
import Vue from 'vue'
const defaultState = {
authorized: undefined,
@@ -52,13 +53,14 @@ const actions = {
let addFavourites = []
let items = [folder]
if(!folder){
if(!folder)
items = context.getters.fileInfoDetail
}
items.forEach((data) => {
if(data.type === 'folder' ) {
if(context.getters.user.relationships.favourites.data.attributes.folders.find(folder => folder.unique_id === data.unique_id)) return
addFavourites.push({
'unique_id': data.unique_id
})
@@ -71,7 +73,7 @@ const actions = {
let pushToFavorites = []
//Check is favorites already don't include some of pushed folders
// Check is favorites already don't include some of pushed folders
items.map(data => {
if(!context.getters.user.relationships.favourites.data.attributes.folders.find(folder => folder.unique_id === data.unique_id)){
pushToFavorites.push(data)
@@ -86,28 +88,20 @@ const actions = {
folders: addFavourites
})
.catch(() => {
// Show error message
events.$emit('alert:open', {
title: i18n.t('popup_error.title'),
message: i18n.t('popup_error.message'),
})
Vue.prototype.$isSomethingWrong()
})
},
removeFromFavourites: (context, folder) => {
removeFromFavourites: ({commit, getters, dispatch}, folder) => {
// Remove from storage
context.commit('REMOVE_ITEM_FROM_FAVOURITES', folder)
commit('REMOVE_ITEM_FROM_FAVOURITES', folder)
axios
.post(context.getters.api + '/folders/favourites/' + folder.unique_id, {
.post(getters.api + '/folders/favourites/' + folder.unique_id, {
_method: 'delete'
})
.catch(() => {
// Show error message
events.$emit('alert:open', {
title: i18n.t('popup_error.title'),
message: i18n.t('popup_error.message'),
})
Vue.prototype.$isSomethingWrong()
})
},
}
+1 -1
View File
@@ -55,7 +55,7 @@
{{ $t('sidebar.favourites_empty') }}
</span>
<a @click.stop="openFolder(folder)" class="menu-list-item" :class="{'is-current': (folder && currentFolder) && (currentFolder.unique_id === folder.unique_id)}" v-for="folder in favourites" :key="folder.unique_id">
<a @click.stop="openFolder(folder)" class="menu-list-item" :class="{'is-current': (folder && currentFolder) && (currentFolder.unique_id === folder.unique_id)}" v-for="(folder, i) in favourites" :key="i">
<div>
<folder-icon size="17" class="folder-icon"></folder-icon>
<span class="label">{{ folder.name }}</span>