From fd8375a45a4a6c66f1b43c1943b1e903910ab598 Mon Sep 17 00:00:00 2001 From: alexm Date: Tue, 14 Jun 2022 10:16:41 +0200 Subject: [PATCH] move code to vnApp and interceptor --- front/core/services/app.js | 5 +++++ front/core/services/interceptor.js | 12 ++++++++++-- front/salix/components/layout/index.html | 2 +- front/salix/components/layout/index.js | 17 ++--------------- front/salix/components/layout/index.spec.js | 13 ------------- loopback/server/middleware/salix-version.js | 3 +-- 6 files changed, 19 insertions(+), 33 deletions(-) diff --git a/front/core/services/app.js b/front/core/services/app.js index 6b2cd1d2a0..8c628aaa56 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,10 @@ export default class App { if (this.loaderStatus === 0) this.loading = false; } + + getVersion() { + this.logger.$http.get('Applications/status'); + } } ngModule.service('vnApp', App); diff --git a/front/core/services/interceptor.js b/front/core/services/interceptor.js index f7cc19e360..ad2227332b 100644 --- a/front/core/services/interceptor.js +++ b/front/core/services/interceptor.js @@ -30,7 +30,15 @@ function interceptor($q, vnApp, vnToken, $translate) { }, response(response) { vnApp.popLoader(); - localStorage.setItem('salix-version', response.headers('salix-version')); + const currentVersion = localStorage.getItem('salix-version'); + const newVersion = response.headers('salix-version'); + if (newVersion) { + if (newVersion != currentVersion) { + vnApp.hasNewVersion = true; + clearInterval(vnApp.versionInterval); + } + localStorage.setItem('salix-version', newVersion); + } return response; }, responseError(rejection) { @@ -38,7 +46,7 @@ function interceptor($q, vnApp, vnToken, $translate) { 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 88d15987cd..5a525ef77a 100644 --- a/front/salix/components/layout/index.html +++ b/front/salix/components/layout/index.html @@ -22,7 +22,7 @@ diff --git a/front/salix/components/layout/index.js b/front/salix/components/layout/index.js index 9f18695541..372e8e8283 100644 --- a/front/salix/components/layout/index.js +++ b/front/salix/components/layout/index.js @@ -3,11 +3,9 @@ import Component from 'core/lib/component'; import './style.scss'; export class Layout extends Component { - constructor($element, $, vnModules, $http) { + constructor($element, $, vnModules) { super($element, $); this.modules = vnModules.get(); - this.$http = $http; - this.versionInterval = setInterval(this.getVersion.bind(this), 300000); } $onInit() { @@ -32,19 +30,8 @@ export class Layout extends Component { refresh() { window.location.reload(); } - - getVersion() { - const currentVersion = localStorage.getItem('salix-version'); - this.$http.get('Applications/status').then(res => { - const newVersion = res.headers('salix-version'); - if (newVersion != currentVersion) { - this.hasNewVersion = true; - clearInterval(this.versionInterval); - } - }); - } } -Layout.$inject = ['$element', '$scope', 'vnModules', '$http']; +Layout.$inject = ['$element', '$scope', 'vnModules']; ngModule.vnComponent('vnLayout', { template: require('./index.html'), diff --git a/front/salix/components/layout/index.spec.js b/front/salix/components/layout/index.spec.js index 49491e8c81..71dbb91923 100644 --- a/front/salix/components/layout/index.spec.js +++ b/front/salix/components/layout/index.spec.js @@ -37,17 +37,4 @@ describe('Component vnLayout', () => { expect(url).not.toBeDefined(); }); }); - - describe('getVersion()', () => { - it('should detect if there is a new version', () => { - const frontVersion = '1'; - localStorage.setItem('salix-version', frontVersion); - - $httpBackend.when('GET', `Applications/status`).respond(200); - controller.getVersion(); - $httpBackend.flush(); - - expect(controller.hasNewVersion).toEqual(true); - }); - }); }); diff --git a/loopback/server/middleware/salix-version.js b/loopback/server/middleware/salix-version.js index 5f297c3342..988a3b39c9 100644 --- a/loopback/server/middleware/salix-version.js +++ b/loopback/server/middleware/salix-version.js @@ -1,8 +1,7 @@ +const packageJson = require('../../../package.json'); module.exports = function(options) { return function(req, res, next) { - const packageJson = require('../../../package.json'); - res.set('Salix-Version', packageJson.version); next(); };