diff --git a/front/core/services/app.js b/front/core/services/app.js
index 6b2cd1d2a0..889b24d01b 100644
--- a/front/core/services/app.js
+++ b/front/core/services/app.js
@@ -10,6 +10,7 @@ export default class App {
constructor() {
this.loaderStatus = 0;
this.loading = false;
+ this.versionInterval = setInterval(this.getVersion.bind(this), 300000);
}
showMessage(message) {
@@ -38,6 +39,21 @@ export default class App {
if (this.loaderStatus === 0)
this.loading = false;
}
+
+ getVersion() {
+ this.logger.$http.get('Applications/status');
+ }
+
+ setVersion(newVersion) {
+ if (newVersion) {
+ const currentVersion = localStorage.getItem('salix-version');
+ if (newVersion != currentVersion) {
+ this.hasNewVersion = true;
+ clearInterval(this.versionInterval);
+ }
+ localStorage.setItem('salix-version', newVersion);
+ }
+ }
}
ngModule.service('vnApp', App);
diff --git a/front/core/services/interceptor.js b/front/core/services/interceptor.js
index b7cf3a0ec4..3f3d9912b1 100644
--- a/front/core/services/interceptor.js
+++ b/front/core/services/interceptor.js
@@ -30,14 +30,17 @@ function interceptor($q, vnApp, vnToken, $translate) {
},
response(response) {
vnApp.popLoader();
+ const newVersion = response.headers('salix-version');
+ vnApp.setVersion(newVersion);
+
return response;
},
responseError(rejection) {
vnApp.popLoader();
- let err = new HttpError(rejection.statusText);
+ const err = new HttpError(rejection.statusText);
Object.assign(err, rejection);
return $q.reject(err);
- }
+ },
};
}
ngModule.factory('vnInterceptor', interceptor);
diff --git a/front/salix/components/layout/index.html b/front/salix/components/layout/index.html
index cd13c565e0..5a525ef77a 100644
--- a/front/salix/components/layout/index.html
+++ b/front/salix/components/layout/index.html
@@ -19,6 +19,14 @@