From fa066e7bfb6b5f66ec18f1ba414f3b29c7e3d730 Mon Sep 17 00:00:00 2001 From: Milos Stojanovic Date: Wed, 13 Jan 2021 10:21:49 +0100 Subject: [PATCH] fix for filter_entries used on selection --- frontend/views/Browser.vue | 72 +++++++++++++++++++++----------------- 1 file changed, 39 insertions(+), 33 deletions(-) diff --git a/frontend/views/Browser.vue b/frontend/views/Browser.vue index 585efd7..913d3bf 100644 --- a/frontend/views/Browser.vue +++ b/frontend/views/Browser.vue @@ -146,12 +146,12 @@ -
+
{{ lang('Selected', checked.length, totalCount) }}
- +
@@ -224,9 +224,8 @@ export default { to: to.query.cd }) .then(ret => { - ret.files = this.filterEntries(ret.files) this.$store.commit('setCwd', { - content: ret.files, + content: this.filterEntries(ret.files), location: ret.location, }) this.isLoading = false @@ -243,47 +242,51 @@ export default { } }, methods: { + toggleHidden() { + this.showAllEntries = !this.showAllEntries + this.loadFiles() + this.checked = [] + }, filterEntries(files){ var filter_entries = this.$store.state.config.filter_entries this.hasFilteredEntries = false if (!this.showAllEntries && typeof filter_entries !== 'undefined' && filter_entries.length > 0){ - let filteredFiles = [] - _.forEach(files, (file) => { - let filterContinue = false - _.forEach(filter_entries, (ffilter_Entry) => { - if (typeof ffilter_Entry !== 'undefined' && ffilter_Entry.length > 0){ - let filter_Entry = ffilter_Entry - let filterEntry_type = filter_Entry.endsWith('/')? 'dir':'file' - filter_Entry = filter_Entry.replace(/\/$/, '') - let filterEntry_isFullPath = filter_Entry.startsWith('/') - let filterEntry_tmpName = filterEntry_isFullPath? '/'+file.path : file.name - filter_Entry = filterEntry_isFullPath? '/'+filter_Entry : filter_Entry - filter_Entry = filter_Entry.replace(/[.+?^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '.$&') - let thisRegex = new RegExp('^'+filter_Entry+'$', 'iu') - if(file.type == filterEntry_type && thisRegex.test(filterEntry_tmpName)) - { - filterContinue = true - this.hasFilteredEntries = true - return false - } - } - }) - if(!filterContinue){ - filteredFiles.push(file) - } - }) - return filteredFiles + let filteredFiles = [] + _.forEach(files, (file) => { + let filterContinue = false + _.forEach(filter_entries, (ffilter_Entry) => { + if (typeof ffilter_Entry !== 'undefined' && ffilter_Entry.length > 0){ + let filter_Entry = ffilter_Entry + let filterEntry_type = filter_Entry.endsWith('/')? 'dir':'file' + filter_Entry = filter_Entry.replace(/\/$/, '') + let filterEntry_isFullPath = filter_Entry.startsWith('/') + let filterEntry_tmpName = filterEntry_isFullPath? '/'+file.path : file.name + filter_Entry = filterEntry_isFullPath? '/'+filter_Entry : filter_Entry + filter_Entry = filter_Entry.replace(/[.+?^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '.$&') + let thisRegex = new RegExp('^'+filter_Entry+'$', 'iu') + if(file.type == filterEntry_type && thisRegex.test(filterEntry_tmpName)) + { + filterContinue = true + this.hasFilteredEntries = true + return false + } + } + }) + if(!filterContinue){ + filteredFiles.push(file) + } + }) + return filteredFiles } - return files + return files }, loadFiles() { api.getDir({ to: '', }) .then(ret => { - ret.files = this.filterEntries(ret.files) this.$store.commit('setCwd', { - content: ret.files, + content: this.filterEntries(ret.files), location: ret.location, }) }) @@ -626,6 +629,9 @@ export default { #multi-actions a { margin: 0 15px 15px 0; } +#bottom-info { + padding: 15px 0; +} .file-row a { color: #373737; }