From a04e31770aee576c7587a895ada148326249e36b Mon Sep 17 00:00:00 2001
From: Milos Stojanovic
Date: Thu, 20 Feb 2020 15:29:36 +0100
Subject: [PATCH] refactoring
---
frontend/mixins/shared.js | 12 ++++++++++++
frontend/views/Browser.vue | 6 ++++--
frontend/views/partials/Preview.vue | 19 +++++--------------
3 files changed, 21 insertions(+), 16 deletions(-)
diff --git a/frontend/mixins/shared.js b/frontend/mixins/shared.js
index ea072be..889c5e7 100644
--- a/frontend/mixins/shared.js
+++ b/frontend/mixins/shared.js
@@ -122,6 +122,18 @@ const funcs = {
getDownloadLink(path) {
return Vue.config.baseURL+'/download&path='+encodeURIComponent(Base64.encode(path))
},
+ hasPreview(name) {
+ return this.isText(name) || this.isImage(name)
+ },
+ isText(name) {
+ return this.hasExtension(name, ['.txt', '.html', '.css', '.js', '.ts', '.php'])
+ },
+ isImage(name) {
+ return this.hasExtension(name, ['.jpg', '.jpeg', '.gif', '.png'])
+ },
+ hasExtension(name, exts) {
+ return (new RegExp('(' + exts.join('|').replace(/\./g, '\\.') + ')$', 'i')).test(name)
+ },
}
}
diff --git a/frontend/views/Browser.vue b/frontend/views/Browser.vue
index 0abd3cf..670c42e 100644
--- a/frontend/views/Browser.vue
+++ b/frontend/views/Browser.vue
@@ -113,7 +113,7 @@
{{ lang('Download') }}
-
+
{{ lang('View') }}
@@ -252,8 +252,10 @@ export default {
itemClick(item) {
if (item.type == 'dir' || item.type == 'back') {
this.goTo(item.path)
- } else if (this.can(['read', 'download'])) {
+ } else if (this.can(['download']) && this.hasPreview(item.path)) {
this.preview(item)
+ } else if (this.can(['download'])) {
+ this.download(item)
}
},
selectDir() {
diff --git a/frontend/views/partials/Preview.vue b/frontend/views/partials/Preview.vue
index 7c7bd8f..6dea33c 100644
--- a/frontend/views/partials/Preview.vue
+++ b/frontend/views/partials/Preview.vue
@@ -7,13 +7,13 @@