Skip to content

Commit 382ddd1

Browse files
committed
Merge branch 'hotfix/v2.0.2'
2 parents e03a330 + 8014ff5 commit 382ddd1

File tree

7 files changed

+111
-114
lines changed

7 files changed

+111
-114
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "laravel-file-manager",
3-
"version": "2.0.1",
3+
"version": "2.0.2",
44
"description": "File manager for Laravel",
55
"keywords": [
66
"laravel",

src/FileManager.vue

Lines changed: 84 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,11 @@
3131
</template>
3232

3333
<script>
34-
/* eslint-disable import/no-duplicates */
34+
/* eslint-disable import/no-duplicates, no-param-reassign */
3535
import { mapState } from 'vuex';
36-
// Axios interceptors
37-
import { requestInterceptor, responseInterceptor } from './http/interceptors';
36+
// Axios
37+
import HTTP from './http/init-axios';
38+
import EventBus from './eventBus';
3839
// Components
3940
import Navbar from './components/blocks/Navbar.vue';
4041
import FolderTree from './components/tree/FolderTree.vue';
@@ -70,10 +71,10 @@ export default {
7071
this.$store.commit('fm/settings/initBaseUrl');
7172
7273
// add axios request interceptor
73-
requestInterceptor();
74+
this.requestInterceptor();
7475
7576
// add axios response interceptor
76-
responseInterceptor();
77+
this.responseInterceptor();
7778
7879
// initialize app settings
7980
this.$store.dispatch('fm/initializeApp');
@@ -91,6 +92,84 @@ export default {
9192
*/
9293
},
9394
methods: {
95+
/**
96+
* Add axios request interceptor
97+
*/
98+
requestInterceptor() {
99+
HTTP.interceptors.request.use((config) => {
100+
// overwrite base url
101+
if (this.$store.getters['fm/settings/baseUrl'] !== config.baseURL) {
102+
config.baseURL = this.$store.getters['fm/settings/baseUrl'];
103+
}
104+
105+
// overwrite headers
106+
const newHeaders = this.$store.state.fm.settings.headers;
107+
108+
if (newHeaders) {
109+
Object.keys(newHeaders)
110+
.forEach((key) => { config.headers[key] = newHeaders[key]; });
111+
}
112+
113+
// loading spinner +
114+
this.$store.commit('fm/messages/addLoading');
115+
116+
return config;
117+
}, (error) => {
118+
// loading spinner -
119+
this.$store.commit('fm/messages/subtractLoading');
120+
// Do something with request error
121+
return Promise.reject(error);
122+
});
123+
},
124+
125+
/**
126+
* Add axios response interceptor
127+
*/
128+
responseInterceptor() {
129+
HTTP.interceptors.response.use((response) => {
130+
// loading spinner -
131+
this.$store.commit('fm/messages/subtractLoading');
132+
133+
// create notification, if find message text
134+
if (Object.prototype.hasOwnProperty.call(response.data, 'result')) {
135+
if (response.data.result.message) {
136+
// show notification
137+
EventBus.$emit('addNotification', response.data.result);
138+
139+
// set action result
140+
this.$store.commit('fm/messages/setActionResult', response.data.result);
141+
}
142+
}
143+
144+
return response;
145+
}, (error) => {
146+
// loading spinner -
147+
this.$store.commit('fm/messages/subtractLoading');
148+
149+
// set error message
150+
this.$store.commit('fm/messages/setError', error);
151+
152+
const errorMessage = {
153+
status: 'error',
154+
message: '',
155+
};
156+
157+
// add message
158+
if (error.response) {
159+
errorMessage.message = error.response.data.message || error.response.statusText;
160+
} else if (error.request) {
161+
errorMessage.message = error.request.statusText || 'Network error';
162+
} else {
163+
errorMessage.message = error.message;
164+
}
165+
166+
// show notification
167+
EventBus.$emit('addNotification', errorMessage);
168+
169+
return Promise.reject(error);
170+
});
171+
},
172+
94173
/**
95174
* Select manager (when shown 2 file manager windows)
96175
* @param managerName

src/assets/laravel-file-manager.gif

19 Bytes
Loading

src/http/interceptors.js

Lines changed: 0 additions & 84 deletions
This file was deleted.

src/main.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,20 @@
11
/* eslint-disable-next-line */
22
import '@babel/polyfill';
33
import Vue from 'vue';
4-
import store from './store';
4+
import Vuex from 'vuex';
5+
// store
6+
import fm from './store';
7+
// App
58
import App from './FileManager.vue';
69

10+
Vue.use(Vuex);
11+
12+
// create new store
13+
const store = new Vuex.Store({
14+
strict: process.env.NODE_ENV !== 'production',
15+
modules: { fm },
16+
});
17+
718
Vue.config.productionTip = process.env.NODE_ENV === 'production';
819

920
window.fm = new Vue({

src/store.js

Lines changed: 13 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import Vue from 'vue';
2-
import Vuex from 'vuex';
31
// store modules
42
import tree from './store/tree/store';
53
import modal from './store/modal/store';
@@ -12,25 +10,18 @@ import mutations from './store/mutations';
1210
import getters from './store/getters';
1311
import actions from './store/actions';
1412

15-
Vue.use(Vuex);
16-
17-
export default new Vuex.Store({
18-
strict: process.env.NODE_ENV !== 'production',
13+
export default {
14+
namespaced: true,
1915
modules: {
20-
fm: {
21-
namespaced: true,
22-
modules: {
23-
settings,
24-
left: manager,
25-
right: manager,
26-
tree,
27-
modal,
28-
messages,
29-
},
30-
state,
31-
mutations,
32-
actions,
33-
getters,
34-
},
16+
settings,
17+
left: manager,
18+
right: manager,
19+
tree,
20+
modal,
21+
messages,
3522
},
36-
});
23+
state,
24+
mutations,
25+
actions,
26+
getters,
27+
};

src/store/settings/store.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export default {
1111
state() {
1212
return {
1313
// App version
14-
version: '2.0.1',
14+
version: '2.0.2',
1515

1616
// this headers will be merged with default headers
1717
headers: {},

0 commit comments

Comments
 (0)