From a59ffc166b116dc6715552027bd2305c75410224 Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Thu, 17 Nov 2022 17:04:51 +0600 Subject: [PATCH 01/29] Test commit. --- package-lock.json | 4 ++-- package.json | 2 +- src/FileManager.vue | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 97bf9a8..1e166d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "laravel-file-manager", - "version": "3.0.2", + "version": "3.0.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "laravel-file-manager", - "version": "3.0.2", + "version": "3.0.3", "license": "MIT", "dependencies": { "axios": "^0.25.0", diff --git a/package.json b/package.json index 9ba977c..e227018 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "file", "manager" ], - "author": "Aleksandr Manekin ", + "author": "Mohammad Ashrafuddin Ferdousi ", "private": false, "license": "MIT", "main": "src/init.js", diff --git a/src/FileManager.vue b/src/FileManager.vue index ed25791..3133e25 100644 --- a/src/FileManager.vue +++ b/src/FileManager.vue @@ -120,8 +120,8 @@ export default { * Axios default config */ setAxiosConfig() { - HTTP.defaults.baseURL = this.$store.getters['fm/settings/baseUrl']; - HTTP.defaults.headers = this.$store.getters['fm/settings/headers']; + // HTTP.defaults.baseURL = this.$store.getters['fm/settings/baseUrl']; + // HTTP.defaults.headers = this.$store.getters['fm/settings/headers']; }, /** From ff3875628d5dab8765eed593c8c3b758c5233d69 Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Thu, 17 Nov 2022 17:25:08 +0600 Subject: [PATCH 02/29] Experimental solution with localstorage. --- package.json | 2 +- src/FileManager.vue | 6 ++++++ src/http/axios.js | 9 ++++++++- src/mixins/localstore.js | 38 ++++++++++++++++++++++++++++++++++++++ src/store/actions.js | 3 +++ 5 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 src/mixins/localstore.js diff --git a/package.json b/package.json index e227018..92e8091 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "laravel-file-manager", + "name": "codeperl/laravel-file-manager", "version": "3.0.3", "description": "File manager for Laravel", "keywords": [ diff --git a/src/FileManager.vue b/src/FileManager.vue index 3133e25..33b6a86 100644 --- a/src/FileManager.vue +++ b/src/FileManager.vue @@ -50,6 +50,7 @@ import ContextMenu from './components/blocks/ContextMenu.vue'; import NotificationBlock from './components/blocks/NotificationBlock.vue'; // Mixins import translate from './mixins/translate'; +import localstore from "./mixins/localstore"; export default { name: 'FileManager', @@ -86,6 +87,11 @@ export default { created() { // manual settings this.$store.commit('fm/settings/manualSettings', this.settings); + /** + * FIXME: Manual settings set the vuex settings store but to initiate axios, that value is not available + * in js files, I am using localstorage to manage those settings. + */ + localstore.setStorage(localstore.axiosSettingType, this.settings); // initiate Axios this.$store.commit('fm/settings/initAxiosSettings'); diff --git a/src/http/axios.js b/src/http/axios.js index e4118fd..949657b 100644 --- a/src/http/axios.js +++ b/src/http/axios.js @@ -1,4 +1,11 @@ import axios from 'axios'; +import localstore from '../mixins/localstore'; + +let settings = localstore.getStorage(localstore.axiosSettingType); +let obj = {}; + +if(settings.data.baseURL) obj.baseURL = settings.data.baseURL; +if(settings.data.headers) obj.headers = settings.data.headers; // set new axios instance -export default axios.create(); +export default axios.create(obj); diff --git a/src/mixins/localstore.js b/src/mixins/localstore.js new file mode 100644 index 0000000..b374ec4 --- /dev/null +++ b/src/mixins/localstore.js @@ -0,0 +1,38 @@ +export default { + axiosSettingType: 'axiosSettings', + + setStorage: function(key, data) { + this.removeStorage(key); + let d = new Date(); + data = { + 'id': Math.random()*d.getTime(), + 'data': data, + 'time': d.getTime() + }; + data = JSON.stringify(data); + data = encodeURIComponent(btoa(data)); + return localStorage.setItem('@'+key, data); + }, + + getStorage: function (key) { + let jsonData = localStorage.getItem('@'+key); + if(jsonData != null){ + jsonData = atob(decodeURIComponent(jsonData)); + jsonData = JSON.parse(jsonData); + return jsonData.data; + }else{ + return jsonData; + } + }, + + removeStorage: function (key) { + return localStorage.removeItem(key); + }, + removeAllStorage: function () { + for (var key in localStorage){ + if(key.indexOf("@") == 0){ + localStorage.removeItem(key); + } + } + }, +} diff --git a/src/store/actions.js b/src/store/actions.js index 0e59211..3ab342e 100644 --- a/src/store/actions.js +++ b/src/store/actions.js @@ -1,6 +1,7 @@ /* eslint-disable max-len,prefer-destructuring,object-curly-newline */ import GET from '../http/get'; import POST from '../http/post'; +import localstore from "../mixins/localstore"; export default { /** @@ -561,6 +562,8 @@ export default { commit('tree/clearTempArray'); } + localstore.removeStorage(localstore.axiosSettingType); + commit('resetState'); }, From 8e87537ade85c06ab4636f54e3760cdf2e9cc8eb Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Thu, 17 Nov 2022 17:39:01 +0600 Subject: [PATCH 03/29] Changing package name in package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 92e8091..2f60104 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "codeperl/laravel-file-manager", + "name": "laravel-frontend-file-manager", "version": "3.0.3", "description": "File manager for Laravel", "keywords": [ From 149607a891fe0ab700f3d8118971fa07155835e0 Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Thu, 17 Nov 2022 17:44:28 +0600 Subject: [PATCH 04/29] Changing author email in package.json --- package.json | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 2f60104..c4ffabd 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "file", "manager" ], - "author": "Mohammad Ashrafuddin Ferdousi ", + "author": "Mohammad Ashrafuddin Ferdousi ", "private": false, "license": "MIT", "main": "src/init.js", @@ -37,5 +37,13 @@ "prettier": "^2.5.1", "sass": "^1.49.7", "vite": "^3.0.0" - } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/codeperl/vue-laravel-file-manager.git" + }, + "bugs": { + "url": "https://github.com/codeperl/vue-laravel-file-manager/issues" + }, + "homepage": "https://github.com/codeperl/vue-laravel-file-manager#readme" } From a544f1fb94a8b61edba196e959798ac2c42793e8 Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Thu, 17 Nov 2022 17:51:50 +0600 Subject: [PATCH 05/29] Fixing settings bug and update version to 3.0.4 --- package.json | 2 +- src/http/axios.js | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index c4ffabd..6995fdd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.3", + "version": "3.0.4", "description": "File manager for Laravel", "keywords": [ "laravel", diff --git a/src/http/axios.js b/src/http/axios.js index 949657b..fcf347e 100644 --- a/src/http/axios.js +++ b/src/http/axios.js @@ -4,8 +4,10 @@ import localstore from '../mixins/localstore'; let settings = localstore.getStorage(localstore.axiosSettingType); let obj = {}; -if(settings.data.baseURL) obj.baseURL = settings.data.baseURL; -if(settings.data.headers) obj.headers = settings.data.headers; +if(settings) { + if(settings.data.baseURL) obj.baseURL = settings.data.baseURL; + if(settings.data.headers) obj.headers = settings.data.headers; +} // set new axios instance export default axios.create(obj); From 38bdcb3cc463acf80c7ac219616a85fd4bdcbdad Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Thu, 17 Nov 2022 17:58:38 +0600 Subject: [PATCH 06/29] Fixing settings bug and update version to 3.0.5 --- package.json | 2 +- src/FileManager.vue | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 6995fdd..91be413 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.4", + "version": "3.0.5", "description": "File manager for Laravel", "keywords": [ "laravel", diff --git a/src/FileManager.vue b/src/FileManager.vue index 33b6a86..f1f5930 100644 --- a/src/FileManager.vue +++ b/src/FileManager.vue @@ -128,6 +128,16 @@ export default { setAxiosConfig() { // HTTP.defaults.baseURL = this.$store.getters['fm/settings/baseUrl']; // HTTP.defaults.headers = this.$store.getters['fm/settings/headers']; + let settings = localstore.getStorage(localstore.axiosSettingType); + let obj = {}; + + if(settings) { + if(settings.data.baseURL) obj.baseURL = settings.data.baseURL; + if(settings.data.headers) obj.headers = settings.data.headers; + } + + axios.defaults.baseURL = obj.baseURL; + axios.defaults.headers = obj.headers; }, /** From e19001951afd42260981e472bfdc72c973eaca22 Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Thu, 17 Nov 2022 18:28:05 +0600 Subject: [PATCH 07/29] Fixing settings bug and update version to 3.0.6 --- package.json | 2 +- src/FileManager.vue | 8 ++------ src/http/axios.js | 4 ++-- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 91be413..4924ed9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.5", + "version": "3.0.6", "description": "File manager for Laravel", "keywords": [ "laravel", diff --git a/src/FileManager.vue b/src/FileManager.vue index f1f5930..67e9367 100644 --- a/src/FileManager.vue +++ b/src/FileManager.vue @@ -129,15 +129,11 @@ export default { // HTTP.defaults.baseURL = this.$store.getters['fm/settings/baseUrl']; // HTTP.defaults.headers = this.$store.getters['fm/settings/headers']; let settings = localstore.getStorage(localstore.axiosSettingType); - let obj = {}; if(settings) { - if(settings.data.baseURL) obj.baseURL = settings.data.baseURL; - if(settings.data.headers) obj.headers = settings.data.headers; + if(settings.baseURL) axios.defaults.baseURL = settings.baseURL; + if(settings.headers) axios.defaults.headers = settings.headers; } - - axios.defaults.baseURL = obj.baseURL; - axios.defaults.headers = obj.headers; }, /** diff --git a/src/http/axios.js b/src/http/axios.js index fcf347e..166847e 100644 --- a/src/http/axios.js +++ b/src/http/axios.js @@ -5,8 +5,8 @@ let settings = localstore.getStorage(localstore.axiosSettingType); let obj = {}; if(settings) { - if(settings.data.baseURL) obj.baseURL = settings.data.baseURL; - if(settings.data.headers) obj.headers = settings.data.headers; + if(settings.baseURL) obj.baseURL = settings.baseURL; + if(settings.headers) obj.headers = settings.headers; } // set new axios instance From b070e0d77789d756fe5a6763bdbabdb544caa38a Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Thu, 17 Nov 2022 18:34:43 +0600 Subject: [PATCH 08/29] Fixing settings bug and update version to 3.0.7 --- package.json | 2 +- src/FileManager.vue | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 4924ed9..307fc1d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.6", + "version": "3.0.7", "description": "File manager for Laravel", "keywords": [ "laravel", diff --git a/src/FileManager.vue b/src/FileManager.vue index 67e9367..5f74b9b 100644 --- a/src/FileManager.vue +++ b/src/FileManager.vue @@ -131,8 +131,8 @@ export default { let settings = localstore.getStorage(localstore.axiosSettingType); if(settings) { - if(settings.baseURL) axios.defaults.baseURL = settings.baseURL; - if(settings.headers) axios.defaults.headers = settings.headers; + if(settings.baseURL) HTTP.defaults.baseURL = settings.baseURL; + if(settings.headers) HTTP.defaults.headers = settings.headers; } }, From 1c1f89340a8fa2bb719ea7e520ca24b8aeee9f03 Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Fri, 18 Nov 2022 21:42:13 +0600 Subject: [PATCH 09/29] Adding axios.configs and version update --- package.json | 2 +- src/FileManager.vue | 1 + src/http/axios.js | 8 ++++---- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 307fc1d..2555a7b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.7", + "version": "3.0.8", "description": "File manager for Laravel", "keywords": [ "laravel", diff --git a/src/FileManager.vue b/src/FileManager.vue index 5f74b9b..881982e 100644 --- a/src/FileManager.vue +++ b/src/FileManager.vue @@ -132,6 +132,7 @@ export default { if(settings) { if(settings.baseURL) HTTP.defaults.baseURL = settings.baseURL; + if(settings.withCredentials) HTTP.defaults.withCredentials = settings.withCredentials; if(settings.headers) HTTP.defaults.headers = settings.headers; } }, diff --git a/src/http/axios.js b/src/http/axios.js index 166847e..f4fe744 100644 --- a/src/http/axios.js +++ b/src/http/axios.js @@ -2,12 +2,12 @@ import axios from 'axios'; import localstore from '../mixins/localstore'; let settings = localstore.getStorage(localstore.axiosSettingType); -let obj = {}; if(settings) { - if(settings.baseURL) obj.baseURL = settings.baseURL; - if(settings.headers) obj.headers = settings.headers; + if(settings.baseURL) axios.defaults.baseURL = settings.baseURL; + if(settings.withCredentials) axios.defaults.withCredentials = settings.withCredentials; + if(settings.headers) axios.defaults.headers = settings.headers; } // set new axios instance -export default axios.create(obj); +export default axios; From 6a6f760fe868958be96eade37721f27b36e88893 Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Sun, 20 Nov 2022 20:53:21 +0600 Subject: [PATCH 10/29] Updated. --- package.json | 2 +- src/FileManager.vue | 8 +++++--- src/http/axios.js | 11 +++++++---- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 2555a7b..5f2717a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.8", + "version": "3.0.9", "description": "File manager for Laravel", "keywords": [ "laravel", diff --git a/src/FileManager.vue b/src/FileManager.vue index 881982e..333fe46 100644 --- a/src/FileManager.vue +++ b/src/FileManager.vue @@ -131,9 +131,11 @@ export default { let settings = localstore.getStorage(localstore.axiosSettingType); if(settings) { - if(settings.baseURL) HTTP.defaults.baseURL = settings.baseURL; - if(settings.withCredentials) HTTP.defaults.withCredentials = settings.withCredentials; - if(settings.headers) HTTP.defaults.headers = settings.headers; + if(settings.baseURL) HTTP.baseURL = settings.baseURL; + if(settings.withCredentials) HTTP.withCredentials = settings.withCredentials; + if(settings.headers) HTTP.headers = settings.headers; + } else { + throw `settings.baseURL: ${settings.baseURL}, settings.withCredentials: ${settings.withCredentials}, settings.headers: ${settings.headers} is set!`; } }, diff --git a/src/http/axios.js b/src/http/axios.js index f4fe744..e402766 100644 --- a/src/http/axios.js +++ b/src/http/axios.js @@ -2,12 +2,15 @@ import axios from 'axios'; import localstore from '../mixins/localstore'; let settings = localstore.getStorage(localstore.axiosSettingType); +let axiosSettings = {}; if(settings) { - if(settings.baseURL) axios.defaults.baseURL = settings.baseURL; - if(settings.withCredentials) axios.defaults.withCredentials = settings.withCredentials; - if(settings.headers) axios.defaults.headers = settings.headers; + if(settings.baseURL) axiosSettings.baseURL = settings.baseURL; + if(settings.withCredentials) axiosSettings.withCredentials = settings.withCredentials; + if(settings.headers) axiosSettings.headers = settings.headers; } // set new axios instance -export default axios; +export default axios.create({ + axiosSettings +}); From ccaff92968cbe2ca3a0b4d8ef0f082e55f58b6f5 Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Sun, 20 Nov 2022 21:57:17 +0600 Subject: [PATCH 11/29] Updated. --- package.json | 2 +- src/FileManager.vue | 6 +++--- src/http/axios.js | 11 ++++------- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 5f2717a..c0d3749 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.9", + "version": "3.0.10", "description": "File manager for Laravel", "keywords": [ "laravel", diff --git a/src/FileManager.vue b/src/FileManager.vue index 333fe46..a649a30 100644 --- a/src/FileManager.vue +++ b/src/FileManager.vue @@ -131,9 +131,9 @@ export default { let settings = localstore.getStorage(localstore.axiosSettingType); if(settings) { - if(settings.baseURL) HTTP.baseURL = settings.baseURL; - if(settings.withCredentials) HTTP.withCredentials = settings.withCredentials; - if(settings.headers) HTTP.headers = settings.headers; + if(settings.baseURL) HTTP.defaults.baseURL = settings.baseURL; + if(settings.withCredentials) HTTP.defaults.withCredentials = settings.withCredentials; + if(settings.headers) HTTP.defaults.headers = settings.headers; } else { throw `settings.baseURL: ${settings.baseURL}, settings.withCredentials: ${settings.withCredentials}, settings.headers: ${settings.headers} is set!`; } diff --git a/src/http/axios.js b/src/http/axios.js index e402766..f4fe744 100644 --- a/src/http/axios.js +++ b/src/http/axios.js @@ -2,15 +2,12 @@ import axios from 'axios'; import localstore from '../mixins/localstore'; let settings = localstore.getStorage(localstore.axiosSettingType); -let axiosSettings = {}; if(settings) { - if(settings.baseURL) axiosSettings.baseURL = settings.baseURL; - if(settings.withCredentials) axiosSettings.withCredentials = settings.withCredentials; - if(settings.headers) axiosSettings.headers = settings.headers; + if(settings.baseURL) axios.defaults.baseURL = settings.baseURL; + if(settings.withCredentials) axios.defaults.withCredentials = settings.withCredentials; + if(settings.headers) axios.defaults.headers = settings.headers; } // set new axios instance -export default axios.create({ - axiosSettings -}); +export default axios; From 52c29f77f4fddc422c91366150ed4e649f2d197f Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Sun, 20 Nov 2022 22:07:38 +0600 Subject: [PATCH 12/29] Updated. --- package.json | 2 +- src/FileManager.vue | 6 +++--- src/http/axios.js | 11 +++++++---- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index c0d3749..6a566d2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.10", + "version": "3.0.11", "description": "File manager for Laravel", "keywords": [ "laravel", diff --git a/src/FileManager.vue b/src/FileManager.vue index a649a30..333fe46 100644 --- a/src/FileManager.vue +++ b/src/FileManager.vue @@ -131,9 +131,9 @@ export default { let settings = localstore.getStorage(localstore.axiosSettingType); if(settings) { - if(settings.baseURL) HTTP.defaults.baseURL = settings.baseURL; - if(settings.withCredentials) HTTP.defaults.withCredentials = settings.withCredentials; - if(settings.headers) HTTP.defaults.headers = settings.headers; + if(settings.baseURL) HTTP.baseURL = settings.baseURL; + if(settings.withCredentials) HTTP.withCredentials = settings.withCredentials; + if(settings.headers) HTTP.headers = settings.headers; } else { throw `settings.baseURL: ${settings.baseURL}, settings.withCredentials: ${settings.withCredentials}, settings.headers: ${settings.headers} is set!`; } diff --git a/src/http/axios.js b/src/http/axios.js index f4fe744..e402766 100644 --- a/src/http/axios.js +++ b/src/http/axios.js @@ -2,12 +2,15 @@ import axios from 'axios'; import localstore from '../mixins/localstore'; let settings = localstore.getStorage(localstore.axiosSettingType); +let axiosSettings = {}; if(settings) { - if(settings.baseURL) axios.defaults.baseURL = settings.baseURL; - if(settings.withCredentials) axios.defaults.withCredentials = settings.withCredentials; - if(settings.headers) axios.defaults.headers = settings.headers; + if(settings.baseURL) axiosSettings.baseURL = settings.baseURL; + if(settings.withCredentials) axiosSettings.withCredentials = settings.withCredentials; + if(settings.headers) axiosSettings.headers = settings.headers; } // set new axios instance -export default axios; +export default axios.create({ + axiosSettings +}); From 2f9c22ab6ebdc57e1737102482dcf0fd5be0ec9d Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Sun, 20 Nov 2022 23:31:09 +0600 Subject: [PATCH 13/29] Updated. --- src/FileManager.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/FileManager.vue b/src/FileManager.vue index 333fe46..e350314 100644 --- a/src/FileManager.vue +++ b/src/FileManager.vue @@ -131,9 +131,9 @@ export default { let settings = localstore.getStorage(localstore.axiosSettingType); if(settings) { - if(settings.baseURL) HTTP.baseURL = settings.baseURL; - if(settings.withCredentials) HTTP.withCredentials = settings.withCredentials; - if(settings.headers) HTTP.headers = settings.headers; + if(settings.baseURL) HTTP.defaults.baseURL = settings.baseURL; + if(settings.withCredentials) HTTP.defaults.withCredentials = settings.withCredentials; + if(settings.headers) HTTP.defaults.headers = settings.headers; } else { throw `settings.baseURL: ${settings.baseURL}, settings.withCredentials: ${settings.withCredentials}, settings.headers: ${settings.headers} is set!`; } From c295134d9e7904d2e46b7dfdcbd45ef29c6d0a0d Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Sun, 20 Nov 2022 23:31:22 +0600 Subject: [PATCH 14/29] Updated. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6a566d2..87f5c02 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.11", + "version": "3.0.12", "description": "File manager for Laravel", "keywords": [ "laravel", From d2e9d7def931db7c3a63256cf6ed140cfeb484a2 Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Mon, 21 Nov 2022 00:37:36 +0600 Subject: [PATCH 15/29] Updated. --- package.json | 2 +- src/http/axios.js | 11 ++++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 87f5c02..62ea66d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.12", + "version": "3.0.13", "description": "File manager for Laravel", "keywords": [ "laravel", diff --git a/src/http/axios.js b/src/http/axios.js index e402766..dd66a81 100644 --- a/src/http/axios.js +++ b/src/http/axios.js @@ -2,15 +2,12 @@ import axios from 'axios'; import localstore from '../mixins/localstore'; let settings = localstore.getStorage(localstore.axiosSettingType); -let axiosSettings = {}; if(settings) { - if(settings.baseURL) axiosSettings.baseURL = settings.baseURL; - if(settings.withCredentials) axiosSettings.withCredentials = settings.withCredentials; - if(settings.headers) axiosSettings.headers = settings.headers; + if(settings.baseURL) axios.default.baseURL = settings.baseURL; + if(settings.withCredentials) axios.default.withCredentials = settings.withCredentials; + if(settings.headers) axios.default.headers = settings.headers; } // set new axios instance -export default axios.create({ - axiosSettings -}); +export default axios; From 3e939fb0345bcb44d188228c7d6eaab01b2e90b8 Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Mon, 21 Nov 2022 01:53:48 +0600 Subject: [PATCH 16/29] Updated. --- package.json | 2 +- src/http/axios.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 62ea66d..456d472 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.13", + "version": "3.0.14", "description": "File manager for Laravel", "keywords": [ "laravel", diff --git a/src/http/axios.js b/src/http/axios.js index dd66a81..f4fe744 100644 --- a/src/http/axios.js +++ b/src/http/axios.js @@ -4,9 +4,9 @@ import localstore from '../mixins/localstore'; let settings = localstore.getStorage(localstore.axiosSettingType); if(settings) { - if(settings.baseURL) axios.default.baseURL = settings.baseURL; - if(settings.withCredentials) axios.default.withCredentials = settings.withCredentials; - if(settings.headers) axios.default.headers = settings.headers; + if(settings.baseURL) axios.defaults.baseURL = settings.baseURL; + if(settings.withCredentials) axios.defaults.withCredentials = settings.withCredentials; + if(settings.headers) axios.defaults.headers = settings.headers; } // set new axios instance From da2d68cf5124a2f0dd61f1ae88a9ca0a9a783a24 Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Tue, 22 Nov 2022 22:38:44 +0600 Subject: [PATCH 17/29] Changing this.src = ; in loadImage in Thumbnail.vue --- package.json | 2 +- src/components/manager/Thumbnail.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 456d472..7b7ad36 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.14", + "version": "3.0.15", "description": "File manager for Laravel", "keywords": [ "laravel", diff --git a/src/components/manager/Thumbnail.vue b/src/components/manager/Thumbnail.vue index 243fbc9..eb853ee 100644 --- a/src/components/manager/Thumbnail.vue +++ b/src/components/manager/Thumbnail.vue @@ -73,7 +73,7 @@ export default { const mimeType = response.headers['content-type'].toLowerCase(); const imgBase64 = Buffer.from(response.data, 'binary').toString('base64'); - this.src = `data:${mimeType};base64,${imgBase64}`; + this.src = `data:${mimeType};base64,${response.data}`; }); } else { this.src = `${this.$store.getters['fm/settings/baseUrl']}thumbnails?disk=${ From 2dd079c5736bfbab5ab3d1cc1171095fab742b8d Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Wed, 23 Nov 2022 00:11:23 +0600 Subject: [PATCH 18/29] Changing response.data in loadImage in Thumbnail.vue --- package.json | 2 +- src/components/manager/Thumbnail.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 7b7ad36..6ec1ad8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.15", + "version": "3.0.16", "description": "File manager for Laravel", "keywords": [ "laravel", diff --git a/src/components/manager/Thumbnail.vue b/src/components/manager/Thumbnail.vue index eb853ee..f65fc27 100644 --- a/src/components/manager/Thumbnail.vue +++ b/src/components/manager/Thumbnail.vue @@ -71,7 +71,7 @@ export default { if (this.auth) { GET.thumbnail(this.disk, this.file.path).then((response) => { const mimeType = response.headers['content-type'].toLowerCase(); - const imgBase64 = Buffer.from(response.data, 'binary').toString('base64'); + //const imgBase64 = Buffer.from(response.data, 'binary').toString('base64'); this.src = `data:${mimeType};base64,${response.data}`; }); From 0b5c59c6439f51f685fa146d281dc51138f04492 Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Wed, 23 Nov 2022 10:45:05 +0600 Subject: [PATCH 19/29] Investigation. --- package.json | 2 +- src/components/manager/GridView.vue | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 6ec1ad8..02dd678 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.16", + "version": "3.0.17", "description": "File manager for Laravel", "keywords": [ "laravel", diff --git a/src/components/manager/GridView.vue b/src/components/manager/GridView.vue index 3ffbaf2..183e490 100644 --- a/src/components/manager/GridView.vue +++ b/src/components/manager/GridView.vue @@ -34,6 +34,7 @@ v-on:dblclick="selectAction(file.path, file.extension)" v-on:contextmenu.prevent="contextMenu(file, $event)" > + {{ files }}
From 1d5100140f3d0d597cd49e14f1a047a3455c95ec Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Thu, 24 Nov 2022 12:06:12 +0600 Subject: [PATCH 20/29] Fixing file manager by adding localstorage and configuring at init.js --- package.json | 2 +- src/FileManager.vue | 16 ++++++++-------- src/components/manager/GridView.vue | 1 - src/components/manager/Thumbnail.vue | 6 +++--- src/components/modals/views/PreviewModal.vue | 7 ++++--- src/init.js | 14 ++++++++++++++ 6 files changed, 30 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 02dd678..00705b6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.17", + "version": "3.0.34", "description": "File manager for Laravel", "keywords": [ "laravel", diff --git a/src/FileManager.vue b/src/FileManager.vue index e350314..6b90358 100644 --- a/src/FileManager.vue +++ b/src/FileManager.vue @@ -87,12 +87,6 @@ export default { created() { // manual settings this.$store.commit('fm/settings/manualSettings', this.settings); - /** - * FIXME: Manual settings set the vuex settings store but to initiate axios, that value is not available - * in js files, I am using localstorage to manage those settings. - */ - localstore.setStorage(localstore.axiosSettingType, this.settings); - // initiate Axios this.$store.commit('fm/settings/initAxiosSettings'); this.setAxiosConfig(); @@ -122,12 +116,18 @@ export default { }), }, methods: { + storeAxiosConfig() { + localstore.setStorage(localstore.axiosSettingType, this.settings); + }, /** * Axios default config */ setAxiosConfig() { - // HTTP.defaults.baseURL = this.$store.getters['fm/settings/baseUrl']; - // HTTP.defaults.headers = this.$store.getters['fm/settings/headers']; + /** Original version **/ + /*HTTP.defaults.baseURL = this.$store.getters['fm/settings/baseUrl']; + HTTP.defaults.headers = this.$store.getters['fm/settings/headers'];*/ + + /** Customized by Mohammad Ashrafuddin Ferdousi */ let settings = localstore.getStorage(localstore.axiosSettingType); if(settings) { diff --git a/src/components/manager/GridView.vue b/src/components/manager/GridView.vue index 183e490..3ffbaf2 100644 --- a/src/components/manager/GridView.vue +++ b/src/components/manager/GridView.vue @@ -34,7 +34,6 @@ v-on:dblclick="selectAction(file.path, file.extension)" v-on:contextmenu.prevent="contextMenu(file, $event)" > - {{ files }}
diff --git a/src/components/manager/Thumbnail.vue b/src/components/manager/Thumbnail.vue index f65fc27..b4823a8 100644 --- a/src/components/manager/Thumbnail.vue +++ b/src/components/manager/Thumbnail.vue @@ -70,10 +70,10 @@ export default { // if authorization required if (this.auth) { GET.thumbnail(this.disk, this.file.path).then((response) => { - const mimeType = response.headers['content-type'].toLowerCase(); + // FIXED: Mohammad Ashrafuddin Ferdousi + const mimeType = response.data.headers['Content-Type'].toLowerCase(); //const imgBase64 = Buffer.from(response.data, 'binary').toString('base64'); - - this.src = `data:${mimeType};base64,${response.data}`; + this.src = `data:${mimeType};base64,${response.data.data}`; }); } else { this.src = `${this.$store.getters['fm/settings/baseUrl']}thumbnails?disk=${ diff --git a/src/components/modals/views/PreviewModal.vue b/src/components/modals/views/PreviewModal.vue index 3a3567c..65511f2 100644 --- a/src/components/modals/views/PreviewModal.vue +++ b/src/components/modals/views/PreviewModal.vue @@ -131,10 +131,11 @@ export default { // if authorization required if (this.auth) { GET.preview(this.selectedDisk, this.selectedItem.path).then((response) => { - const mimeType = response.headers['content-type'].toLowerCase(); - const imgBase64 = Buffer.from(response.data, 'binary').toString('base64'); + // FIXED: Mohammad Ashrafuddin Ferdousi + const mimeType = response.data.headers['Content-Type'].toLowerCase(); + // const imgBase64 = Buffer.from(response.data, 'binary').toString('base64'); - this.imgSrc = `data:${mimeType};base64,${imgBase64}`; + this.imgSrc = `data:${mimeType};base64,${response.data.data}`; }); } else { this.imgSrc = `${this.$store.getters['fm/settings/baseUrl']}preview?disk=${ diff --git a/src/init.js b/src/init.js index 9c4a10e..9b0cc75 100644 --- a/src/init.js +++ b/src/init.js @@ -1,5 +1,7 @@ import store from './store'; import FileManager from './FileManager.vue'; +import localstore from './mixins/localstore'; +import HTTP from './http/axios'; export default { install: (app, options) => { @@ -9,5 +11,17 @@ export default { app.component('file-manager', FileManager); options.store.registerModule('fm', store); + + localstore.setStorage(localstore.axiosSettingType, options.settings); + + let settings = options.settings; + + if(settings) { + if(settings.baseURL) HTTP.defaults.baseURL = settings.baseURL; + if(settings.withCredentials) HTTP.defaults.withCredentials = settings.withCredentials; + if(settings.headers) HTTP.defaults.headers = settings.headers; + } else { + throw `settings.baseURL: ${settings.baseURL}, settings.withCredentials: ${settings.withCredentials}, settings.headers: ${settings.headers} is set!`; + } }, }; From 5c59d3513c3a44d0b7cb28b1650c534202ce35f8 Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Fri, 25 Nov 2022 00:53:33 +0600 Subject: [PATCH 21/29] Axios instance is working properly now. --- package.json | 2 +- src/FileManager.vue | 11 ++++++++--- src/http/axios.js | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 00705b6..cceaff9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.34", + "version": "3.0.44", "description": "File manager for Laravel", "keywords": [ "laravel", diff --git a/src/FileManager.vue b/src/FileManager.vue index 6b90358..2e475db 100644 --- a/src/FileManager.vue +++ b/src/FileManager.vue @@ -131,9 +131,14 @@ export default { let settings = localstore.getStorage(localstore.axiosSettingType); if(settings) { - if(settings.baseURL) HTTP.defaults.baseURL = settings.baseURL; - if(settings.withCredentials) HTTP.defaults.withCredentials = settings.withCredentials; - if(settings.headers) HTTP.defaults.headers = settings.headers; + HTTP.interceptors.request.use( async config => { + config.baseURL = settings.baseURL; + config.withCredentials = settings.withCredentials; + config.headers = settings.headers; + + return config; + }, error => Promise.reject(error) + ); } else { throw `settings.baseURL: ${settings.baseURL}, settings.withCredentials: ${settings.withCredentials}, settings.headers: ${settings.headers} is set!`; } diff --git a/src/http/axios.js b/src/http/axios.js index f4fe744..2ae01b6 100644 --- a/src/http/axios.js +++ b/src/http/axios.js @@ -10,4 +10,4 @@ if(settings) { } // set new axios instance -export default axios; +export default axios.create(settings); From b2eb4a464a729fc3ead0a642030dd11874c985c0 Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Sat, 26 Nov 2022 19:30:33 +0600 Subject: [PATCH 22/29] Auth functionality added. --- package.json | 2 +- src/FileManager.vue | 2 ++ src/components/blocks/NavbarBlock.vue | 4 +++ .../blocks/mixins/contextMenuActions.js | 6 ++++ src/components/manager/DiskList.vue | 4 +++ src/components/manager/Thumbnail.vue | 6 ++-- src/components/manager/mixins/manager.js | 4 +++ .../modals/additions/CropperModule.vue | 2 ++ .../modals/views/AudioPlayerModal.vue | 2 +- src/components/modals/views/DeleteModal.vue | 3 +- src/components/modals/views/NewFileModal.vue | 2 ++ .../modals/views/NewFolderModal.vue | 2 ++ src/components/modals/views/PreviewModal.vue | 6 ++-- .../modals/views/PropertiesModal.vue | 2 ++ src/components/modals/views/RenameModal.vue | 3 +- src/components/modals/views/TextEditModal.vue | 3 ++ src/components/modals/views/UnzipModal.vue | 2 ++ src/components/modals/views/UploadModal.vue | 2 ++ .../modals/views/VideoPlayerModal.vue | 2 +- src/components/modals/views/ZipModal.vue | 2 ++ src/components/tree/TreeBranch.vue | 2 ++ src/http/get.js | 11 ++++++ src/http/post.js | 9 +++++ src/store/actions.js | 36 ++++++++++++++++++- src/store/manager/actions.js | 6 ++++ src/store/tree/actions.js | 8 +++++ 26 files changed, 123 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index cceaff9..cab682f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.44", + "version": "3.0.52", "description": "File manager for Laravel", "keywords": [ "laravel", diff --git a/src/FileManager.vue b/src/FileManager.vue index 2e475db..5b3148c 100644 --- a/src/FileManager.vue +++ b/src/FileManager.vue @@ -94,6 +94,8 @@ export default { this.responseInterceptor(); // initialize app settings + // Mohammad Ashrafuddin Ferdousi : 1 + // Mohammad Ashrafuddin Ferdousi : 2 this.$store.dispatch('fm/initializeApp'); }, destroyed() { diff --git a/src/components/blocks/NavbarBlock.vue b/src/components/blocks/NavbarBlock.vue index 07667ca..cd90fc8 100644 --- a/src/components/blocks/NavbarBlock.vue +++ b/src/components/blocks/NavbarBlock.vue @@ -252,7 +252,9 @@ export default { /** * Refresh file manager */ + // Mohammad Ashrafuddin Ferdousi : 2 refreshAll() { + // Mohammad Ashrafuddin Ferdousi : 2 this.$store.dispatch('fm/refreshAll'); }, @@ -294,7 +296,9 @@ export default { /** * Paste */ + // Mohammad Ashrafuddin Ferdousi : 17 paste() { + // Mohammad Ashrafuddin Ferdousi : 17 this.$store.dispatch('fm/paste'); }, diff --git a/src/components/blocks/mixins/contextMenuActions.js b/src/components/blocks/mixins/contextMenuActions.js index 9f50929..f6e78fd 100644 --- a/src/components/blocks/mixins/contextMenuActions.js +++ b/src/components/blocks/mixins/contextMenuActions.js @@ -64,8 +64,10 @@ export default { /** * Select file */ + // Mohammad Ashrafuddin Ferdousi : 5 selectAction() { // file callback + // Mohammad Ashrafuddin Ferdousi : 5 this.$store .dispatch('fm/url', { disk: this.selectedDisk, @@ -81,6 +83,7 @@ export default { /** * Download file */ + // Mohammad Ashrafuddin Ferdousi : 10 downloadAction() { const tempLink = document.createElement('a'); tempLink.style.display = 'none'; @@ -88,6 +91,7 @@ export default { // download file with authorization if (this.$store.getters['fm/settings/authHeader']) { + // Mohammad Ashrafuddin Ferdousi : 10 HTTP.download(this.selectedDisk, this.selectedItems[0].path).then((response) => { tempLink.href = window.URL.createObjectURL(new Blob([response.data])); document.body.appendChild(tempLink); @@ -134,8 +138,10 @@ export default { /** * Paste copied or cut items */ + // Mohammad Ashrafuddin Ferdousi : 17 pasteAction() { // paste items in the selected folder + // Mohammad Ashrafuddin Ferdousi : 17 this.$store.dispatch('fm/paste'); }, diff --git a/src/components/manager/DiskList.vue b/src/components/manager/DiskList.vue index 555d1c8..a001fa8 100644 --- a/src/components/manager/DiskList.vue +++ b/src/components/manager/DiskList.vue @@ -43,8 +43,12 @@ export default { * Select disk * @param disk */ + // Mohammad Ashrafuddin Ferdousi : 3 + // Mohammad Ashrafuddin Ferdousi : 2 selectDisk(disk) { if (this.selectedDisk !== disk) { + // Mohammad Ashrafuddin Ferdousi : 2 + // Mohammad Ashrafuddin Ferdousi : 3 this.$store.dispatch('fm/selectDisk', { disk, manager: this.manager, diff --git a/src/components/manager/Thumbnail.vue b/src/components/manager/Thumbnail.vue index b4823a8..a13a72f 100644 --- a/src/components/manager/Thumbnail.vue +++ b/src/components/manager/Thumbnail.vue @@ -66,10 +66,12 @@ export default { /** * Load image */ + // Mohammad Ashrafuddin Ferdousi : 8 loadImage() { // if authorization required if (this.auth) { - GET.thumbnail(this.disk, this.file.path).then((response) => { + // Mohammad Ashrafuddin Ferdousi : 8 + GET.thumbnail(this.disk, `${this.file.path}&token=${window.localStorage.getItem('_token')}`).then((response) => { // FIXED: Mohammad Ashrafuddin Ferdousi const mimeType = response.data.headers['Content-Type'].toLowerCase(); //const imgBase64 = Buffer.from(response.data, 'binary').toString('base64'); @@ -78,7 +80,7 @@ export default { } else { this.src = `${this.$store.getters['fm/settings/baseUrl']}thumbnails?disk=${ this.disk - }&path=${encodeURIComponent(this.file.path)}&v=${this.file.timestamp}`; + }&path=${encodeURIComponent(this.file.path)}&v=${this.file.timestamp}&token=${window.localStorage.getItem('_token')}`; } }, }, diff --git a/src/components/manager/mixins/manager.js b/src/components/manager/mixins/manager.js index 96ff1e0..7e32b32 100644 --- a/src/components/manager/mixins/manager.js +++ b/src/components/manager/mixins/manager.js @@ -146,9 +146,12 @@ export default { * @param path * @param extension */ + // Mohammad Ashrafuddin Ferdousi : 7 + // Mohammad Ashrafuddin Ferdousi : 5 selectAction(path, extension) { // if is set fileCallback if (this.$store.state.fm.fileCallback) { + // Mohammad Ashrafuddin Ferdousi : 5 this.$store .dispatch('fm/url', { disk: this.selectedDisk, @@ -195,6 +198,7 @@ export default { }); } else if (extension.toLowerCase() === 'pdf') { // show pdf document + // Mohammad Ashrafuddin Ferdousi : 7 this.$store.dispatch('fm/openPDF', { disk: this.selectedDisk, path, diff --git a/src/components/modals/additions/CropperModule.vue b/src/components/modals/additions/CropperModule.vue index a7e3c11..27f5468 100644 --- a/src/components/modals/additions/CropperModule.vue +++ b/src/components/modals/additions/CropperModule.vue @@ -234,6 +234,7 @@ export default { /** * Save cropped image */ + // Mohammad Ashrafuddin Ferdousi : 12 cropSave() { this.cropper.getCroppedCanvas().toBlob( (blob) => { @@ -245,6 +246,7 @@ export default { // new image formData.append('file', blob, this.selectedItem.basename); + // Mohammad Ashrafuddin Ferdousi : 12 this.$store.dispatch('fm/updateFile', formData).then((response) => { // if file updated successfully if (response.data.result.status === 'success') { diff --git a/src/components/modals/views/AudioPlayerModal.vue b/src/components/modals/views/AudioPlayerModal.vue index 84692ff..bea4044 100644 --- a/src/components/modals/views/AudioPlayerModal.vue +++ b/src/components/modals/views/AudioPlayerModal.vue @@ -131,7 +131,7 @@ export default { { src: `${this.$store.getters['fm/settings/baseUrl']}stream-file?disk=${ this.selectedDisk - }&path=${encodeURIComponent(this.audioFiles[index].path)}`, + }&path=${encodeURIComponent(this.audioFiles[index].path)}&token=${window.localStorage.getItem('_token')}`, type: `audio/${this.audioFiles[index].extension}`, }, ], diff --git a/src/components/modals/views/DeleteModal.vue b/src/components/modals/views/DeleteModal.vue index e6cb475..a97b68c 100644 --- a/src/components/modals/views/DeleteModal.vue +++ b/src/components/modals/views/DeleteModal.vue @@ -41,13 +41,14 @@ export default { /** * Delete selected directories and files */ + // Mohammad Ashrafuddin Ferdousi : 15 deleteItems() { // create items list for delete const items = this.selectedItems.map((item) => ({ path: item.path, type: item.type, })); - + // Mohammad Ashrafuddin Ferdousi : 15 this.$store.dispatch('fm/delete', items).then(() => { this.hideModal(); }); diff --git a/src/components/modals/views/NewFileModal.vue b/src/components/modals/views/NewFileModal.vue index 38197ee..ab04bfb 100644 --- a/src/components/modals/views/NewFileModal.vue +++ b/src/components/modals/views/NewFileModal.vue @@ -70,7 +70,9 @@ export default { /** * Create new file */ + // Mohammad Ashrafuddin Ferdousi : 11 addFile() { + // Mohammad Ashrafuddin Ferdousi : 11 this.$store.dispatch('fm/createFile', this.fileName).then((response) => { if (response.data.result.status === 'success') { this.hideModal(); diff --git a/src/components/modals/views/NewFolderModal.vue b/src/components/modals/views/NewFolderModal.vue index 111d100..9ee62dd 100644 --- a/src/components/modals/views/NewFolderModal.vue +++ b/src/components/modals/views/NewFolderModal.vue @@ -72,7 +72,9 @@ export default { /** * Create new directory */ + // Mohammad Ashrafuddin Ferdousi : 13 addFolder() { + // Mohammad Ashrafuddin Ferdousi : 13 this.$store.dispatch('fm/createDirectory', this.directoryName).then((response) => { if (response.data.result.status === 'success') { this.hideModal(); diff --git a/src/components/modals/views/PreviewModal.vue b/src/components/modals/views/PreviewModal.vue index 65511f2..23ee96a 100644 --- a/src/components/modals/views/PreviewModal.vue +++ b/src/components/modals/views/PreviewModal.vue @@ -127,10 +127,12 @@ export default { /** * Load image */ + // Mohammad Ashrafuddin Ferdousi : 9 loadImage() { // if authorization required if (this.auth) { - GET.preview(this.selectedDisk, this.selectedItem.path).then((response) => { + // Mohammad Ashrafuddin Ferdousi : 9 + GET.preview(this.selectedDisk, `${this.selectedItem.path}&token=${window.localStorage.getItem('_token')}`).then((response) => { // FIXED: Mohammad Ashrafuddin Ferdousi const mimeType = response.data.headers['Content-Type'].toLowerCase(); // const imgBase64 = Buffer.from(response.data, 'binary').toString('base64'); @@ -140,7 +142,7 @@ export default { } else { this.imgSrc = `${this.$store.getters['fm/settings/baseUrl']}preview?disk=${ this.selectedDisk - }&path=${encodeURIComponent(this.selectedItem.path)}&v=${this.selectedItem.timestamp}`; + }&path=${encodeURIComponent(this.selectedItem.path)}&v=${this.selectedItem.timestamp}&token=${window.localStorage.getItem('_token')}`; } }, }, diff --git a/src/components/modals/views/PropertiesModal.vue b/src/components/modals/views/PropertiesModal.vue index 01fb8df..b56f522 100644 --- a/src/components/modals/views/PropertiesModal.vue +++ b/src/components/modals/views/PropertiesModal.vue @@ -123,7 +123,9 @@ export default { /** * Get URL */ + // Mohammad Ashrafuddin Ferdousi : 5 getUrl() { + // Mohammad Ashrafuddin Ferdousi : 5 this.$store .dispatch('fm/url', { disk: this.selectedDisk, diff --git a/src/components/modals/views/RenameModal.vue b/src/components/modals/views/RenameModal.vue index fa1d5c7..c2985c9 100644 --- a/src/components/modals/views/RenameModal.vue +++ b/src/components/modals/views/RenameModal.vue @@ -95,10 +95,11 @@ export default { /** * Rename item */ + // Mohammad Ashrafuddin Ferdousi : 16 rename() { // create new name with path const newName = this.selectedItem.dirname ? `${this.selectedItem.dirname}/${this.name}` : this.name; - + // Mohammad Ashrafuddin Ferdousi : 16 this.$store .dispatch('fm/rename', { type: this.selectedItem.type, diff --git a/src/components/modals/views/TextEditModal.vue b/src/components/modals/views/TextEditModal.vue index 6b062af..66f7f3a 100644 --- a/src/components/modals/views/TextEditModal.vue +++ b/src/components/modals/views/TextEditModal.vue @@ -63,6 +63,7 @@ export default { }, mounted() { // get file for edit + // Mohammad Ashrafuddin Ferdousi : 6 this.$store .dispatch('fm/getFile', { disk: this.selectedDisk, @@ -123,6 +124,7 @@ export default { /** * Update file */ + // Mohammad Ashrafuddin Ferdousi : 12 updateFile() { const formData = new FormData(); // add disk name @@ -132,6 +134,7 @@ export default { // add updated file formData.append('file', new Blob([this.editedCode]), this.selectedItem.basename); + // Mohammad Ashrafuddin Ferdousi : 12 this.$store.dispatch('fm/updateFile', formData).then((response) => { if (response.data.result.status === 'success') { this.hideModal(); diff --git a/src/components/modals/views/UnzipModal.vue b/src/components/modals/views/UnzipModal.vue index f695891..387e004 100644 --- a/src/components/modals/views/UnzipModal.vue +++ b/src/components/modals/views/UnzipModal.vue @@ -105,7 +105,9 @@ export default { /** * Unpack selected archive */ + // Mohammad Ashrafuddin Ferdousi : 19 unpackArchive() { + // Mohammad Ashrafuddin Ferdousi : 19 this.$store.dispatch('fm/unzip', this.createFolder ? this.directoryName : null).then(() => { this.hideModal(); }); diff --git a/src/components/modals/views/UploadModal.vue b/src/components/modals/views/UploadModal.vue index a238298..2c97373 100644 --- a/src/components/modals/views/UploadModal.vue +++ b/src/components/modals/views/UploadModal.vue @@ -164,10 +164,12 @@ export default { /** * Upload new files */ + // Mohammad Ashrafuddin Ferdousi : 14 uploadFiles() { // if files exists if (this.countFiles) { // upload files + // Mohammad Ashrafuddin Ferdousi : 14 this.$store .dispatch('fm/upload', { files: this.newFiles, diff --git a/src/components/modals/views/VideoPlayerModal.vue b/src/components/modals/views/VideoPlayerModal.vue index a634ddc..d5a5f49 100644 --- a/src/components/modals/views/VideoPlayerModal.vue +++ b/src/components/modals/views/VideoPlayerModal.vue @@ -36,7 +36,7 @@ export default { { src: `${this.$store.getters['fm/settings/baseUrl']}stream-file?disk=${ this.selectedDisk - }&path=${encodeURIComponent(this.videoFile.path)}`, + }&path=${encodeURIComponent(this.videoFile.path)}&token=${window.localStorage.getItem('_token')}`, type: `audio/${this.videoFile.extension}`, }, ], diff --git a/src/components/modals/views/ZipModal.vue b/src/components/modals/views/ZipModal.vue index ec6df60..4db1633 100644 --- a/src/components/modals/views/ZipModal.vue +++ b/src/components/modals/views/ZipModal.vue @@ -79,7 +79,9 @@ export default { /** * Create new archive */ + // Mohammad Ashrafuddin Ferdousi : 18 createArchive() { + // Mohammad Ashrafuddin Ferdousi : 18 this.$store.dispatch('fm/zip', `${this.archiveName}.zip`).then(() => { // close modal window this.hideModal(); diff --git a/src/components/tree/TreeBranch.vue b/src/components/tree/TreeBranch.vue index 52133c1..55adbca 100644 --- a/src/components/tree/TreeBranch.vue +++ b/src/components/tree/TreeBranch.vue @@ -67,12 +67,14 @@ export default { * @param path * @param showState */ + // Mohammad Ashrafuddin Ferdousi : 2 showSubdirectories(path, showState) { if (showState) { // hide this.$store.dispatch('fm/tree/hideSubdirectories', path); } else { // show + // Mohammad Ashrafuddin Ferdousi : 2 this.$store.dispatch('fm/tree/showSubdirectories', path); } }, diff --git a/src/http/get.js b/src/http/get.js index 93764d4..857ebaa 100644 --- a/src/http/get.js +++ b/src/http/get.js @@ -5,6 +5,7 @@ export default { * Get configuration data from server * @returns {*} */ + // Mohammad Ashrafuddin Ferdousi : 1 initialize() { return HTTP.get('initialize'); }, @@ -15,7 +16,9 @@ export default { * @param path * @returns {*} */ + // Mohammad Ashrafuddin Ferdousi : 2 tree(disk, path) { + // Mohammad Ashrafuddin Ferdousi : 2 return HTTP.get('tree', { params: { disk, path } }); }, @@ -24,6 +27,7 @@ export default { * @param disk * @returns {*} */ + // Mohammad Ashrafuddin Ferdousi : 3 selectDisk(disk) { return HTTP.get('select-disk', { params: { disk } }); }, @@ -34,6 +38,7 @@ export default { * @param path * @returns {*} */ + // Mohammad Ashrafuddin Ferdousi : 4 content(disk, path) { return HTTP.get('content', { params: { disk, path } }); }, @@ -51,6 +56,7 @@ export default { * @param path * @returns {*} */ + // Mohammad Ashrafuddin Ferdousi : 5 url(https://github.com/disk,%20path) { return HTTP.get('url', { params: { disk, path } }); }, @@ -61,6 +67,7 @@ export default { * @param path * @returns {*} */ + // Mohammad Ashrafuddin Ferdousi : 6 getFile(disk, path) { return HTTP.get('download', { params: { disk, path } }); }, @@ -71,6 +78,7 @@ export default { * @param path * @returns {*} */ + // Mohammad Ashrafuddin Ferdousi : 7 getFileArrayBuffer(disk, path) { return HTTP.get('download', { responseType: 'arraybuffer', @@ -84,6 +92,7 @@ export default { * @param path * @returns {*} */ + // Mohammad Ashrafuddin Ferdousi : 8 thumbnail(disk, path) { return HTTP.get('thumbnails', { responseType: 'arraybuffer', @@ -97,6 +106,7 @@ export default { * @param path * @return {*} */ + // Mohammad Ashrafuddin Ferdousi : 9 preview(disk, path) { return HTTP.get('preview', { responseType: 'arraybuffer', @@ -110,6 +120,7 @@ export default { * @param path * @return {*} */ + // Mohammad Ashrafuddin Ferdousi : 10 download(disk, path) { return HTTP.get('download', { responseType: 'arraybuffer', diff --git a/src/http/post.js b/src/http/post.js index 052a8dd..b91977b 100644 --- a/src/http/post.js +++ b/src/http/post.js @@ -8,6 +8,7 @@ export default { * @param name * @returns {Promise>} */ + // Mohammad Ashrafuddin Ferdousi : 11 createFile(disk, path, name) { return HTTP.post('create-file', { disk, path, name }); }, @@ -17,6 +18,7 @@ export default { * @param formData * @returns {*} */ + // Mohammad Ashrafuddin Ferdousi : 12 updateFile(formData) { return HTTP.post('update-file', formData); }, @@ -26,6 +28,7 @@ export default { * @param data * @returns {*} */ + // Mohammad Ashrafuddin Ferdousi : 13 createDirectory(data) { return HTTP.post('create-directory', data); }, @@ -36,6 +39,7 @@ export default { * @param config * @returns {Promise>} */ + // Mohammad Ashrafuddin Ferdousi : 14 upload(data, config) { return HTTP.post('upload', data, config); }, @@ -45,6 +49,7 @@ export default { * @param data * @returns {*} */ + // Mohammad Ashrafuddin Ferdousi : 15 delete(data) { return HTTP.post('delete', data); }, @@ -54,6 +59,7 @@ export default { * @param data * @returns {*} */ + // Mohammad Ashrafuddin Ferdousi : 16 rename(data) { return HTTP.post('rename', data); }, @@ -63,6 +69,7 @@ export default { * @param data * @returns {*} */ + // Mohammad Ashrafuddin Ferdousi : 17 paste(data) { return HTTP.post('paste', data); }, @@ -72,6 +79,7 @@ export default { * @param data * @returns {*} */ + // Mohammad Ashrafuddin Ferdousi : 18 zip(data) { return HTTP.post('zip', data); }, @@ -81,6 +89,7 @@ export default { * @returns {*} * @param data */ + // Mohammad Ashrafuddin Ferdousi : 19 unzip(data) { return HTTP.post('unzip', data); }, diff --git a/src/store/actions.js b/src/store/actions.js index 3ab342e..bab1719 100644 --- a/src/store/actions.js +++ b/src/store/actions.js @@ -11,7 +11,10 @@ export default { * @param getters * @param dispatch */ + // Mohammad Ashrafuddin Ferdousi : 1 + // Mohammad Ashrafuddin Ferdousi : 2 initializeApp({ state, commit, getters, dispatch }) { + // Mohammad Ashrafuddin Ferdousi : 1 GET.initialize().then((response) => { if (response.data.result.status === 'success') { commit('settings/initSettings', response.data.config); @@ -78,6 +81,7 @@ export default { } else if (state.settings.windowsConfig === 2) { // if selected left manager and directories tree // init directories tree + // Mohammad Ashrafuddin Ferdousi : 2 dispatch('tree/initTree', leftDisk).then(() => { if (leftPath) { // reopen folders if path not null @@ -96,7 +100,9 @@ export default { * @param disk * @param path */ + // Mohammad Ashrafuddin Ferdousi : 4 getLoadContent(context, { manager, disk, path }) { + // Mohammad Ashrafuddin Ferdousi : 4 GET.content(disk, path).then((response) => { if (response.data.result.status === 'success') { context.commit(`${manager}/setDirectoryContent`, response.data); @@ -112,7 +118,11 @@ export default { * @param disk * @param manager */ + // Mohammad Ashrafuddin Ferdousi : 3 + // Mohammad Ashrafuddin Ferdousi : 2 selectDisk({ state, commit, dispatch }, { disk, manager }) { + // Mohammad Ashrafuddin Ferdousi : 3 + // Mohammad Ashrafuddin Ferdousi : 2 GET.selectDisk(disk).then((response) => { // if disk exist => change disk if (response.data.result.status === 'success') { @@ -124,6 +134,7 @@ export default { // reinitialize tree if directories tree is shown if (state.settings.windowsConfig === 2) { + // Mohammad Ashrafuddin Ferdousi : 2 dispatch('tree/initTree', disk); } @@ -140,11 +151,13 @@ export default { * @param fileName * @returns {Promise} */ + // Mohammad Ashrafuddin Ferdousi : 11 createFile({ getters, dispatch }, fileName) { // directory for new file const selectedDirectory = getters.selectedDirectory; // create new file, server side + // Mohammad Ashrafuddin Ferdousi : 11 return POST.createFile(getters.selectedDisk, selectedDirectory, fileName).then((response) => { // update file list dispatch('updateContent', { @@ -165,6 +178,7 @@ export default { * @param path * @returns {*} */ + // Mohammad Ashrafuddin Ferdousi : 6 getFile(context, { disk, path }) { return GET.getFile(disk, path); }, @@ -176,7 +190,9 @@ export default { * @param formData * @returns {PromiseLike | Promise} */ + // Mohammad Ashrafuddin Ferdousi : 12 updateFile({ getters, dispatch }, formData) { + // Mohammad Ashrafuddin Ferdousi : 12 return POST.updateFile(formData).then((response) => { // update file list dispatch('updateContent', { @@ -197,11 +213,13 @@ export default { * @param name * @returns {*} */ + // Mohammad Ashrafuddin Ferdousi : 13 createDirectory({ getters, dispatch }, name) { // directory for new folder const selectedDirectory = getters.selectedDirectory; // create new directory, server side + // Mohammad Ashrafuddin Ferdousi : 13 return POST.createDirectory({ disk: getters.selectedDisk, path: selectedDirectory, @@ -228,6 +246,7 @@ export default { * @param overwrite * @returns {Promise} */ + // Mohammad Ashrafuddin Ferdousi : 14 upload({ getters, commit, dispatch }, { files, overwrite }) { // directory where files will be uploaded const selectedDirectory = getters.selectedDirectory; @@ -251,6 +270,7 @@ export default { }; // upload files + // Mohammad Ashrafuddin Ferdousi : 14 return POST.upload(data, config) .then((response) => { // clear progress @@ -275,7 +295,9 @@ export default { * @param items * @returns {*} */ + // Mohammad Ashrafuddin Ferdousi : 15 delete({ state, getters, dispatch }, items) { + // Mohammad Ashrafuddin Ferdousi : 15 return POST.delete({ disk: getters.selectedDisk, items, @@ -302,7 +324,9 @@ export default { * @param getters * @param dispatch */ + // Mohammad Ashrafuddin Ferdousi : 17 paste({ state, commit, getters, dispatch }) { + // Mohammad Ashrafuddin Ferdousi : 17 POST.paste({ disk: getters.selectedDisk, path: getters.selectedDirectory, @@ -329,7 +353,9 @@ export default { * @param oldName * @returns {Promise} */ + // Mohammad Ashrafuddin Ferdousi : 16 rename({ getters, dispatch }, { type, newName, oldName }) { + // Mohammad Ashrafuddin Ferdousi : 16 return POST.rename({ disk: getters.selectedDisk, newName, @@ -353,6 +379,7 @@ export default { * @param path * @returns {Promise} */ + // Mohammad Ashrafuddin Ferdousi : 5 url(https://github.com/store,%20%7B%20disk,%20path%20%7D) { return GET.url(https://github.com/disk,%20path); }, @@ -365,9 +392,11 @@ export default { * @param name * @returns {*|PromiseLike|Promise} */ + // Mohammad Ashrafuddin Ferdousi : 18 zip({ state, getters, dispatch }, name) { const selectedDirectory = getters.selectedDirectory; + // Mohammad Ashrafuddin Ferdousi : 18 return POST.zip({ disk: getters.selectedDisk, path: selectedDirectory, @@ -390,9 +419,11 @@ export default { * @param folder * @returns {*} */ + // Mohammad Ashrafuddin Ferdousi : 19 unzip({ getters, dispatch }, folder) { const selectedDirectory = getters.selectedDirectory; + // Mohammad Ashrafuddin Ferdousi : 19 return POST.unzip({ disk: getters.selectedDisk, path: getters.selectedItems[0].path, @@ -455,9 +486,11 @@ export default { * @param dispatch * @returns {*} */ + // Mohammad Ashrafuddin Ferdousi : 2 refreshAll({ state, getters, dispatch }) { if (state.settings.windowsConfig === 2) { // refresh tree + // Mohammad Ashrafuddin Ferdousi : 2 return dispatch('tree/initTree', state.left.selectedDisk).then(() => Promise.all([ // reopen folders if need @@ -573,9 +606,10 @@ export default { * @param disk * @param path */ + // Mohammad Ashrafuddin Ferdousi : 7 openPDF(context, { disk, path }) { const win = window.open(); - + // Mohammad Ashrafuddin Ferdousi : 7 GET.getFileArrayBuffer(disk, path).then((response) => { const blob = new Blob([response.data], { type: 'application/pdf' }); diff --git a/src/store/manager/actions.js b/src/store/manager/actions.js index 8ee8450..15d4041 100644 --- a/src/store/manager/actions.js +++ b/src/store/manager/actions.js @@ -12,10 +12,13 @@ export default { * @param history * @returns {Promise} */ + // Mohammad Ashrafuddin Ferdousi : 4 selectDirectory({ state, commit, dispatch, rootState }, { path, history }) { // reset content commit('setDirectoryContent', { directories: [], files: [] }); + // Mohammad Ashrafuddin Ferdousi : 4 + // Mohammad Ashrafuddin Ferdousi : 2 // get content for the selected directory return GET.content(state.selectedDisk, path).then((response) => { if (response.data.result.status === 'success') { @@ -28,6 +31,7 @@ export default { // if directories tree is shown, not main directory and directory have subdirectories if (rootState.fm.settings.windowsConfig === 2 && path && response.data.directories.length) { + // Mohammad Ashrafuddin Ferdousi : 2 dispatch('fm/tree/showSubdirectories', path, { root: true }); } } @@ -40,7 +44,9 @@ export default { * @param commit * @param dispatch */ + // Mohammad Ashrafuddin Ferdousi : 4 refreshDirectory({ state, commit, dispatch }) { + // Mohammad Ashrafuddin Ferdousi : 4 GET.content(state.selectedDisk, state.selectedDirectory).then((response) => { commit('resetSelected'); commit('resetSortSettings'); diff --git a/src/store/tree/actions.js b/src/store/tree/actions.js index 02332d8..a5ece75 100644 --- a/src/store/tree/actions.js +++ b/src/store/tree/actions.js @@ -8,7 +8,9 @@ export default { * @param disk * @returns {Promise} */ + // Mohammad Ashrafuddin Ferdousi : 2 initTree({ state, commit }, disk) { + // Mohammad Ashrafuddin Ferdousi : 2 return GET.tree(disk, null).then((response) => { // if the action was successful if (response.data.result.status === 'success') { @@ -138,7 +140,9 @@ export default { * @param parentIndex * @returns {Promise} */ + // Mohammad Ashrafuddin Ferdousi : 2 getSubdirectories({ commit, rootGetters }, { path, parentId, parentIndex }) { + // Mohammad Ashrafuddin Ferdousi : 2 return GET.tree(rootGetters['fm/selectedDisk'], path).then((response) => { // if the action was successful if (response.data.result.status === 'success') { @@ -168,6 +172,7 @@ export default { * @param path * @returns {*} */ + // Mohammad Ashrafuddin Ferdousi : 2 showSubdirectories({ state, commit, getters, dispatch }, path) { const promise = Promise.resolve(); // find parent directory index @@ -185,6 +190,7 @@ export default { }); } else { // load subdirectories + // Mohammad Ashrafuddin Ferdousi : 2 return dispatch('getSubdirectories', { path: state.directories[parentDirectoryIndex].path, parentId: state.directories[parentDirectoryIndex].id, @@ -235,6 +241,7 @@ export default { * @param path * @returns {Promise} */ + // Mohammad Ashrafuddin Ferdousi : 2 reopenPath({ dispatch }, path) { let promises = Promise.resolve(); @@ -242,6 +249,7 @@ export default { const splitPath = path.split('/'); for (let i = 0; splitPath.length > i; i += 1) { + // Mohammad Ashrafuddin Ferdousi : 2 promises = promises.then(() => dispatch('showSubdirectories', splitPath.slice(0, i + 1).join('/'))); } From 442f527ef39bd756ff4e1be2eef3d884f4402f78 Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Sat, 26 Nov 2022 19:36:27 +0600 Subject: [PATCH 23/29] Auth functionality added. --- src/http/get.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/http/get.js b/src/http/get.js index 857ebaa..fbf3a0c 100644 --- a/src/http/get.js +++ b/src/http/get.js @@ -7,7 +7,7 @@ export default { */ // Mohammad Ashrafuddin Ferdousi : 1 initialize() { - return HTTP.get('initialize'); + return HTTP.get(`initialize?token=${window.localStorage.getItem('_token')}`); }, /** From bcf5e9db126db2923f2f94d3ff6172a5e450c9ba Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Sat, 26 Nov 2022 19:37:38 +0600 Subject: [PATCH 24/29] Auth functionality added and so version updated. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index cab682f..881dc9b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.52", + "version": "3.0.53", "description": "File manager for Laravel", "keywords": [ "laravel", From e989bf2aed13f1e4032a897f642f2774b696bc06 Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Sun, 27 Nov 2022 01:36:23 +0600 Subject: [PATCH 25/29] Refresh on unauthorized response. --- package.json | 2 +- src/FileManager.vue | 3 ++- src/http/get.js | 10 ++++++++-- src/store/actions.js | 4 ++++ 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 881dc9b..29f8fca 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.53", + "version": "3.0.68", "description": "File manager for Laravel", "keywords": [ "laravel", diff --git a/src/FileManager.vue b/src/FileManager.vue index 5b3148c..9a21983 100644 --- a/src/FileManager.vue +++ b/src/FileManager.vue @@ -133,10 +133,11 @@ export default { let settings = localstore.getStorage(localstore.axiosSettingType); if(settings) { - HTTP.interceptors.request.use( async config => { + HTTP.interceptors.request.use(config => { config.baseURL = settings.baseURL; config.withCredentials = settings.withCredentials; config.headers = settings.headers; + config.headers.common.Authorization = `Bearer ${window.localStorage.getItem('_token')}`; return config; }, error => Promise.reject(error) diff --git a/src/http/get.js b/src/http/get.js index fbf3a0c..3b0ed30 100644 --- a/src/http/get.js +++ b/src/http/get.js @@ -1,13 +1,19 @@ import HTTP from './axios'; export default { + async getToken() { + return new Promise(resolve => { + resolve(window.localStorage.getItem('_token')); + }); + }, /** * Get configuration data from server * @returns {*} */ // Mohammad Ashrafuddin Ferdousi : 1 - initialize() { - return HTTP.get(`initialize?token=${window.localStorage.getItem('_token')}`); + async initialize() { + let token = await this.getToken(); + return HTTP.get(`initialize?token=${token}`); }, /** diff --git a/src/store/actions.js b/src/store/actions.js index bab1719..c126136 100644 --- a/src/store/actions.js +++ b/src/store/actions.js @@ -89,7 +89,11 @@ export default { } }); } + } else { + window.location.reload(); } + }).catch(err => { + window.location.reload(); }); }, From 80bd308e68c6f55dc8aaeac1371ce0937a487005 Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Sun, 27 Nov 2022 13:37:23 +0600 Subject: [PATCH 26/29] File manager fixed with refresh page. --- package.json | 2 +- src/FileManager.vue | 15 +++++++++++++-- src/http/axios.js | 8 ++++++-- src/store/actions.js | 22 ++++++++++++++++++++-- src/store/getters.js | 9 +++++++++ src/store/mutations.js | 4 ++++ src/store/settings/getters.js | 4 ++++ src/store/settings/mutations.js | 8 ++++++++ src/store/settings/store.js | 3 +++ src/store/state.js | 3 +++ 10 files changed, 71 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 29f8fca..3a2b3b6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.68", + "version": "3.0.79", "description": "File manager for Laravel", "keywords": [ "laravel", diff --git a/src/FileManager.vue b/src/FileManager.vue index 9a21983..3eff1fd 100644 --- a/src/FileManager.vue +++ b/src/FileManager.vue @@ -130,7 +130,8 @@ export default { HTTP.defaults.headers = this.$store.getters['fm/settings/headers'];*/ /** Customized by Mohammad Ashrafuddin Ferdousi */ - let settings = localstore.getStorage(localstore.axiosSettingType); + // Uncomment when needed. + /*let settings = localstore.getStorage(localstore.axiosSettingType); if(settings) { HTTP.interceptors.request.use(config => { @@ -144,7 +145,17 @@ export default { ); } else { throw `settings.baseURL: ${settings.baseURL}, settings.withCredentials: ${settings.withCredentials}, settings.headers: ${settings.headers} is set!`; - } + }*/ + // End of uncomment when needed. + HTTP.interceptors.request.use(config => { + config.baseURL = this.$store.getters['fm/settings/baseUrl']; + config.withCredentials = this.$store.getters['fm/settings/withCredentials']; + config.headers = this.$store.getters['fm/settings/headers']; + config.headers.common.Authorization = `Bearer ${window.localStorage.getItem('_token')}`; + + return config; + }, error => Promise.reject(error) + ); }, /** diff --git a/src/http/axios.js b/src/http/axios.js index 2ae01b6..838281f 100644 --- a/src/http/axios.js +++ b/src/http/axios.js @@ -1,5 +1,6 @@ import axios from 'axios'; -import localstore from '../mixins/localstore'; +// Uncomment when needed. +/*import localstore from '../mixins/localstore'; let settings = localstore.getStorage(localstore.axiosSettingType); @@ -10,4 +11,7 @@ if(settings) { } // set new axios instance -export default axios.create(settings); +export default axios.create(settings);*/ +// End of uncomment when needed. + +export default axios.create(); diff --git a/src/store/actions.js b/src/store/actions.js index c126136..cf18ce6 100644 --- a/src/store/actions.js +++ b/src/store/actions.js @@ -15,7 +15,8 @@ export default { // Mohammad Ashrafuddin Ferdousi : 2 initializeApp({ state, commit, getters, dispatch }) { // Mohammad Ashrafuddin Ferdousi : 1 - GET.initialize().then((response) => { + let init = GET.initialize(); + init.then((response) => { if (response.data.result.status === 'success') { commit('settings/initSettings', response.data.config); commit('setDisks', response.data.config.disks); @@ -89,11 +90,28 @@ export default { } }); } - } else { + } + else { window.location.reload(); + // Uncomment when needed. + /*if(getters.callInitTill) { + setTimeout(() => { + dispatch('initializeApp'); + commit('increaseInitCallCount'); + }, 1000); + }*/ + // End of uncomment when needed. } }).catch(err => { window.location.reload(); + // Uncomment when needed. + /*if(getters.callInitTill) { + setTimeout(() => { + dispatch('initializeApp'); + commit('increaseInitCallCount'); + }, 1000); + }*/ + // End of uncomment when needed. }); }, diff --git a/src/store/getters.js b/src/store/getters.js index 0bcde26..0c885e1 100644 --- a/src/store/getters.js +++ b/src/store/getters.js @@ -44,4 +44,13 @@ export default { inactiveManager(state) { return state.activeManager === 'left' ? 'right' : 'left'; }, + + /** + * + * @param state + * @returns {boolean} + */ + callInitTill(state) { + return state.initCallCount < 3; + } }; diff --git a/src/store/mutations.js b/src/store/mutations.js index 5c703bb..5ed4774 100644 --- a/src/store/mutations.js +++ b/src/store/mutations.js @@ -92,4 +92,8 @@ export default { state.fileCallback = null; state.fullScreen = false; }, + + increaseInitCallCount(state) { + state.initCallCount++; + } }; diff --git a/src/store/settings/getters.js b/src/store/settings/getters.js index 94b8e3b..d09ec2c 100644 --- a/src/store/settings/getters.js +++ b/src/store/settings/getters.js @@ -25,4 +25,8 @@ export default { authHeader(state) { return Object.prototype.hasOwnProperty.call(state.headers, 'Authorization'); }, + + withCredentials(state) { + return state.withCredentials; + } }; diff --git a/src/store/settings/mutations.js b/src/store/settings/mutations.js index 3b843ce..59d97a3 100644 --- a/src/store/settings/mutations.js +++ b/src/store/settings/mutations.js @@ -76,6 +76,14 @@ export default { } } } + + if (state.withCredentials === false) { + if((import.meta.env.VITE_APP_LFM_WITH_CREDENTIALS !== undefined)) { + state.withCredentials = import.meta.env.VITE_APP_LFM_WITH_CREDENTIALS; + } else if((import.meta.env.VITE_LFM_CSRF_WITH_CREDENTIALS !== undefined)) { + state.withCredentials = import.meta.env.VITE_LFM_CSRF_WITH_CREDENTIALS; + } + } }, /** diff --git a/src/store/settings/store.js b/src/store/settings/store.js index ef29acb..4ec1e2c 100644 --- a/src/store/settings/store.js +++ b/src/store/settings/store.js @@ -37,6 +37,9 @@ export default { // axios default URL baseUrl: null, + // axios default withCredentials + withCredentials: true, + /** * File manager windows configuration * 1 - only one file manager window diff --git a/src/store/state.js b/src/store/state.js index afbc675..1350d26 100644 --- a/src/store/state.js +++ b/src/store/state.js @@ -25,4 +25,7 @@ export default { // full screen mode fullScreen: false, + + //initializeApp call count + initCallCount: 0, }; From 9396aadda828afe909a31cee83f79b991eb5d8f4 Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Mon, 28 Nov 2022 00:05:33 +0600 Subject: [PATCH 27/29] retry on failure for initializing app. --- package.json | 2 +- src/store/actions.js | 14 ++++++++++++-- src/store/getters.js | 2 +- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 3a2b3b6..1b9fca6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.79", + "version": "3.0.80", "description": "File manager for Laravel", "keywords": [ "laravel", diff --git a/src/store/actions.js b/src/store/actions.js index cf18ce6..4022df2 100644 --- a/src/store/actions.js +++ b/src/store/actions.js @@ -92,7 +92,12 @@ export default { } } else { - window.location.reload(); + if(getters.callInitTill) { + setTimeout(() => { + window.location.reload(); + commit('increaseInitCallCount'); + }, 1000); + } // Uncomment when needed. /*if(getters.callInitTill) { setTimeout(() => { @@ -103,7 +108,12 @@ export default { // End of uncomment when needed. } }).catch(err => { - window.location.reload(); + if(getters.callInitTill) { + setTimeout(() => { + window.location.reload(); + commit('increaseInitCallCount'); + }, 1000); + } // Uncomment when needed. /*if(getters.callInitTill) { setTimeout(() => { diff --git a/src/store/getters.js b/src/store/getters.js index 0c885e1..13c52a1 100644 --- a/src/store/getters.js +++ b/src/store/getters.js @@ -51,6 +51,6 @@ export default { * @returns {boolean} */ callInitTill(state) { - return state.initCallCount < 3; + return state.initCallCount < 2; } }; From c976f969734227b3310b4293d5e138100e08ab40 Mon Sep 17 00:00:00 2001 From: Mohammad Ashraufuddin Ferdousi Date: Thu, 1 Dec 2022 21:04:25 +0600 Subject: [PATCH 28/29] Fixed authentication with file manager. --- package-lock.json | 20 ++--- package.json | 2 +- src/FileManager.vue | 78 ++++++++------------ src/components/manager/Thumbnail.vue | 24 ++++-- src/components/modals/views/PreviewModal.vue | 7 +- src/http/axios.js | 14 ---- src/http/get.js | 12 +-- src/store/actions.js | 34 +-------- src/store/getters.js | 9 --- src/store/mutations.js | 4 - src/store/state.js | 3 - 11 files changed, 70 insertions(+), 137 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1e166d8..77607da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { - "name": "laravel-file-manager", - "version": "3.0.3", + "name": "laravel-frontend-file-manager", + "version": "3.0.142", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "laravel-file-manager", - "version": "3.0.3", + "name": "laravel-frontend-file-manager", + "version": "3.0.142", "license": "MIT", "dependencies": { "axios": "^0.25.0", @@ -1537,9 +1537,9 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "dev": true, "dependencies": { "function-bind": "^1.1.1", @@ -3999,9 +3999,9 @@ "dev": true }, "get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "dev": true, "requires": { "function-bind": "^1.1.1", diff --git a/package.json b/package.json index 1b9fca6..4872611 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laravel-frontend-file-manager", - "version": "3.0.80", + "version": "3.0.159", "description": "File manager for Laravel", "keywords": [ "laravel", diff --git a/src/FileManager.vue b/src/FileManager.vue index 3eff1fd..037bfc2 100644 --- a/src/FileManager.vue +++ b/src/FileManager.vue @@ -85,18 +85,27 @@ export default { }; }, created() { - // manual settings - this.$store.commit('fm/settings/manualSettings', this.settings); - // initiate Axios - this.$store.commit('fm/settings/initAxiosSettings'); - this.setAxiosConfig(); - this.requestInterceptor(); - this.responseInterceptor(); - - // initialize app settings - // Mohammad Ashrafuddin Ferdousi : 1 - // Mohammad Ashrafuddin Ferdousi : 2 - this.$store.dispatch('fm/initializeApp'); + new Promise(resolve => { + // manual settings + this.$store.commit('fm/settings/manualSettings', this.settings); + resolve(); + }).then(() => { + // initiate Axios + this.$store.commit('fm/settings/initAxiosSettings'); + }).then(() => { + this.setAxiosConfig(); + }).then(() => { + this.requestInterceptor(); + }).then(() => { + this.responseInterceptor(); + }).then(() => { + // initialize app settings + // Mohammad Ashrafuddin Ferdousi : 1 + // Mohammad Ashrafuddin Ferdousi : 2 + this.$store.dispatch('fm/initializeApp'); + }).catch(err => { + Promise.reject(err); + }); }, destroyed() { // reset state @@ -118,44 +127,19 @@ export default { }), }, methods: { - storeAxiosConfig() { - localstore.setStorage(localstore.axiosSettingType, this.settings); - }, /** * Axios default config */ - setAxiosConfig() { - /** Original version **/ - /*HTTP.defaults.baseURL = this.$store.getters['fm/settings/baseUrl']; - HTTP.defaults.headers = this.$store.getters['fm/settings/headers'];*/ - - /** Customized by Mohammad Ashrafuddin Ferdousi */ - // Uncomment when needed. - /*let settings = localstore.getStorage(localstore.axiosSettingType); - - if(settings) { - HTTP.interceptors.request.use(config => { - config.baseURL = settings.baseURL; - config.withCredentials = settings.withCredentials; - config.headers = settings.headers; - config.headers.common.Authorization = `Bearer ${window.localStorage.getItem('_token')}`; - - return config; - }, error => Promise.reject(error) - ); - } else { - throw `settings.baseURL: ${settings.baseURL}, settings.withCredentials: ${settings.withCredentials}, settings.headers: ${settings.headers} is set!`; - }*/ - // End of uncomment when needed. - HTTP.interceptors.request.use(config => { - config.baseURL = this.$store.getters['fm/settings/baseUrl']; - config.withCredentials = this.$store.getters['fm/settings/withCredentials']; - config.headers = this.$store.getters['fm/settings/headers']; - config.headers.common.Authorization = `Bearer ${window.localStorage.getItem('_token')}`; - - return config; - }, error => Promise.reject(error) - ); + async setAxiosConfig() { + HTTP.defaults.baseURL = this.$store.getters['fm/settings/baseUrl']; + HTTP.defaults.withCredentials = this.$store.getters['fm/settings/withCredentials']; + HTTP.defaults.headers = this.$store.getters['fm/settings/headers']; + HTTP.defaults.headers.common = {}; + HTTP.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; + let token = await new Promise(resolve => { + resolve(window.localStorage.getItem('_token')); + }); + HTTP.defaults.headers.Authorization = `Bearer ${token}`; }, /** diff --git a/src/components/manager/Thumbnail.vue b/src/components/manager/Thumbnail.vue index a13a72f..ac06f95 100644 --- a/src/components/manager/Thumbnail.vue +++ b/src/components/manager/Thumbnail.vue @@ -1,10 +1,18 @@