add sorting for every getData and navigator, Favourites need to be fixed

This commit is contained in:
Milos Holba
2020-12-08 19:14:53 +01:00
parent 2ba92ed3b6
commit 7e325c5101
8 changed files with 93 additions and 36 deletions

View File

@@ -28,7 +28,7 @@
</ul>
<ul class="menu-option-group">
<li class="menu-option" @click="sort('date')">
<li class="menu-option" @click="sort('created_at')">
<div class="icon">
<calendar-icon size="17"/>
</div>
@@ -36,7 +36,7 @@
{{$t('preview_sorting.sort_date')}}
</div>
<div class="show-icon" >
<arrow-up-icon size="17" v-if="filter.field === 'date'" :class="{ 'arrow-down': filter.sort === 'ASC' }"/>
<arrow-up-icon size="17" v-if="filter.field === 'created_at'" :class="{ 'arrow-down': filter.sort === 'ASC' }"/>
</div>
</li>
<li class="menu-option" @click="sort('name')" >
@@ -114,8 +114,8 @@
let sorting = JSON.parse(localStorage.getItem('sorting'))
this.filter.sort = sorting ? sorting.sort : undefined
this.filter.field = sorting ? sorting.field : undefined
this.filter.sort = sorting ? sorting.sort : 'DESC'
this.filter.field = sorting ? sorting.field : 'created_at'
events.$on('sortingAndPreview-open', () => {
this.isVisible = true

View File

@@ -308,11 +308,29 @@ const Helpers = {
return validated
}
Vue.prototype.$getDataByLocation = function() {
let previousFolder = store.getters.currentFolder
let folder = store.getters.currentFolder
if(this.$isThisLocation('base')){
this.$store.dispatch('getFolder', [{folder: previousFolder, back: false, init: false}])
if(this.$isThisLocation('base') || this.$isThisLocation('public')){
this.$store.dispatch('getFolder', [{ folder: folder, back: true, init: false, sorting:true}])
}
if(this.$isThisLocation('latest')) {
this.$store.dispatch('getLatest')
}
if(this.$isThisLocation('shared')) {
this.$store.dispatch('getShared')
}
if(this.$isThisLocation('participant_uploads')) {
this.$store.dispatch('getParticipantUploads')
}
if(this.$isThisLocation('trash-root')) {
this.$store.dispatch('getTrash')
}
this.$store.dispatch('getAppData')
}
}
}

View File

@@ -20,6 +20,10 @@ const actions = {
getFolder: ({commit, getters}, [payload]) => {
commit('LOADING_STATE', {loading: true, data: []})
let getSort = JSON.parse(localStorage.getItem('sorting'))
let sorting = {sort : getSort ? getSort.sort : 'DESC' , field:getSort ? getSort.field : 'created_at'}
let sortingUrl = '?sort=' + sorting.field + '&direction=' + sorting.sort
if (payload.init)
commit('FLUSH_FOLDER_HISTORY')
@@ -32,7 +36,7 @@ const actions = {
// Set folder location
payload.folder.location = payload.folder.deleted_at || payload.folder.location === 'trash' ? 'trash' : 'base'
if (! payload.back)
if (! payload.back && !payload.sorting)
commit('STORE_PREVIOUS_FOLDER', getters.currentFolder)
let url = payload.folder.location === 'trash'
@@ -40,12 +44,12 @@ const actions = {
: '/folders/' + payload.folder.unique_id
axios
.get(getters.api + url)
.get(getters.api + url + sortingUrl)
.then(response => {
commit('LOADING_STATE', {loading: false, data: response.data})
commit('STORE_CURRENT_FOLDER', payload.folder)
if (payload.back)
if (payload.back && !payload.sorting)
commit('REMOVE_BROWSER_HISTORY')
events.$emit('scrollTop')
@@ -71,6 +75,10 @@ const actions = {
getLatest: ({commit, getters}) => {
commit('LOADING_STATE', {loading: true, data: []})
let getSort = JSON.parse(localStorage.getItem('sorting'))
let sorting = {sort : getSort ? getSort.sort : 'DESC' , field:getSort ? getSort.field : 'created_at'}
let sortingUrl = '?sort=' + sorting.field + '&direction=' + sorting.sort
commit('STORE_PREVIOUS_FOLDER', getters.currentFolder)
commit('STORE_CURRENT_FOLDER', {
name: i18n.t('sidebar.latest'),
@@ -79,7 +87,7 @@ const actions = {
})
axios
.get(getters.api + '/latest')
.get(getters.api + '/latest' + sortingUrl)
.then(response => {
commit('LOADING_STATE', {loading: false, data: response.data})
events.$emit('scrollTop')
@@ -90,6 +98,10 @@ const actions = {
commit('LOADING_STATE', {loading: true, data: []})
commit('FLUSH_FOLDER_HISTORY')
let getSort = JSON.parse(localStorage.getItem('sorting'))
let sorting = {sort : getSort ? getSort.sort : 'DESC' , field:getSort ? getSort.field : 'created_at'}
let sortingUrl = '?sort=' + sorting.field + '&direction=' + sorting.sort
let currentFolder = {
name: i18n.t('sidebar.my_shared'),
location: 'shared',
@@ -99,7 +111,7 @@ const actions = {
commit('STORE_CURRENT_FOLDER', currentFolder)
axios
.get(getters.api + '/shared-all')
.get(getters.api + '/shared-all' + sortingUrl)
.then(response => {
commit('LOADING_STATE', {loading: false, data: response.data})
commit('STORE_PREVIOUS_FOLDER', currentFolder)
@@ -111,6 +123,10 @@ const actions = {
getParticipantUploads: ({commit, getters}) => {
commit('LOADING_STATE', {loading: true, data: []})
let getSort = JSON.parse(localStorage.getItem('sorting'))
let sorting = {sort : getSort ? getSort.sort : 'DESC' , field:getSort ? getSort.field : 'created_at'}
let sortingUrl = '?sort=' + sorting.field + '&direction=' + sorting.sort
commit('STORE_PREVIOUS_FOLDER', getters.currentFolder)
commit('STORE_CURRENT_FOLDER', {
name: i18n.t('sidebar.participant_uploads'),
@@ -119,7 +135,7 @@ const actions = {
})
axios
.get(getters.api + '/participant-uploads')
.get(getters.api + '/participant-uploads' + sortingUrl)
.then(response => {
commit('LOADING_STATE', {loading: false, data: response.data})
@@ -131,6 +147,11 @@ const actions = {
commit('LOADING_STATE', {loading: true, data: []})
commit('FLUSH_FOLDER_HISTORY')
let getSort = JSON.parse(localStorage.getItem('sorting'))
let sorting = {sort : getSort ? getSort.sort : 'DESC' , field:getSort ? getSort.field : 'created_at'}
let sortingUrl = '?sort=' + sorting.field + '&direction=' + sorting.sort
let trash = {
name: i18n.t('locations.trash'),
unique_id: undefined,
@@ -140,7 +161,7 @@ const actions = {
commit('STORE_CURRENT_FOLDER', trash)
axios
.get(getters.api + '/trash')
.get(getters.api + '/trash' + sortingUrl)
.then(response => {
commit('LOADING_STATE', {loading: false, data: response.data})
commit('STORE_PREVIOUS_FOLDER', trash)
@@ -174,6 +195,10 @@ const actions = {
},
getFolderTree: ({commit, getters}) => {
let getSort = JSON.parse(localStorage.getItem('sorting'))
let sorting = {sort : getSort ? getSort.sort : 'DESC' , field:getSort ? getSort.field : 'created_at'}
let sortingUrl = '?sort=' + sorting.field + '&direction=' + sorting.sort
return new Promise((resolve, reject) => {
// Get route
@@ -187,7 +212,7 @@ const actions = {
route = '/api/navigation'
axios
.get(route)
.get(route + sortingUrl)
.then(response => {
resolve(response)

View File

@@ -11,9 +11,13 @@ const defaultState = {
const actions = {
getAppData: ({commit, getters}) => {
let getSort = JSON.parse(localStorage.getItem('sorting'))
let sorting = {sort : getSort ? getSort.sort : 'DESC' , field:getSort ? getSort.field : 'created_at'}
let sortingUrl = '?sort=' + sorting.field + '&direction=' + sorting.sort
return new Promise((resolve, reject) => {
axios
.get(getters.api + '/user')
.get(getters.api + '/user' + sortingUrl)
.then((response) => {
resolve(response)

View File

@@ -101,6 +101,9 @@
<!--File browser-->
<FileBrowser/>
<!-- Selecting preview list and sorting -->
<SortingAndPreview/>
</div>
</div>
</div>
@@ -109,6 +112,7 @@
<script>
import {ValidationProvider, ValidationObserver} from 'vee-validate/dist/vee-validate.full'
import MobileMultiSelectMenu from '@/components/FilesView/MobileMultiSelectMenu'
import SortingAndPreview from '@/components/FilesView/SortingAndPreview'
import TreeMenuNavigator from '@/components/Others/TreeMenuNavigator'
import FileFullPreview from '@/components/FilesView/FileFullPreview'
import DesktopToolbar from '@/components/FilesView/DesktopToolbar'
@@ -140,6 +144,7 @@
components: {
MobileMultiSelectMenu,
ValidationProvider,
SortingAndPreview,
ValidationObserver,
TreeMenuNavigator,
FileFullPreview,