From 29149b1b58c07aedaf8f96e8dce8e7601bca28b2 Mon Sep 17 00:00:00 2001 From: Carlos Date: Mon, 13 Nov 2017 22:15:44 +0100 Subject: [PATCH 1/2] corrected some eslint errors and small refactor --- client/auth/src/login/login.html | 24 +++++------ client/auth/src/login/style.scss | 4 ++ client/client/src/card/style.css | 2 +- client/client/src/index/style.css | 2 +- client/client/src/notes/notes.js | 3 ++ client/client/src/notes/style.css | 2 +- .../client/src/search-panel/search-panel.js | 3 ++ .../src/search-panel/search-panel.spec.js | 4 +- client/client/src/web-access/web-access.js | 1 + client/core/src/autocomplete/autocomplete.js | 8 +++- services/loopback/server/middleware.json | 4 +- services/salix/client/index.ejs | 40 +++++++++---------- 12 files changed, 57 insertions(+), 40 deletions(-) diff --git a/client/auth/src/login/login.html b/client/auth/src/login/login.html index 7ca073e72..161ffa732 100644 --- a/client/auth/src/login/login.html +++ b/client/auth/src/login/login.html @@ -1,18 +1,18 @@
-
- -
- - -
diff --git a/client/auth/src/login/style.scss b/client/auth/src/login/style.scss index fddd2d14e..8f1df6705 100644 --- a/client/auth/src/login/style.scss +++ b/client/auth/src/login/style.scss @@ -16,6 +16,7 @@ vn-login > div { margin: auto; height: inherit; } + .box { box-sizing: border-box; position: absolute; @@ -27,15 +28,18 @@ vn-login > div { box-shadow: 0 0 1em 0 rgba(1,1,1,.6); border-radius: .5em; } + img { width: 100%; padding-bottom: 1em; } + .footer { margin-top: 1em; text-align: center; position: relative; } + .spinner-wrapper { position: absolute; width: 0; diff --git a/client/client/src/card/style.css b/client/client/src/card/style.css index f788e35c6..195879409 100644 --- a/client/client/src/card/style.css +++ b/client/client/src/card/style.css @@ -1,3 +1,3 @@ -vn-descriptor{ +vn-descriptor { font-family: raleway-bold; } \ No newline at end of file diff --git a/client/client/src/index/style.css b/client/client/src/index/style.css index ba7f75844..b30351f09 100644 --- a/client/client/src/index/style.css +++ b/client/client/src/index/style.css @@ -11,6 +11,6 @@ vn-item-client a:hover { background-color: #424242; } -.vn-item-client-name{ +.vn-item-client-name { font-family: raleway-bold; } diff --git a/client/client/src/notes/notes.js b/client/client/src/notes/notes.js index bd214cf49..7e0ec424a 100644 --- a/client/client/src/notes/notes.js +++ b/client/client/src/notes/notes.js @@ -6,11 +6,13 @@ export default class Controller { this.$http = $http; this.$state = $state; } + $onChanges() { if (this.client) { this.getObservation(this.client.id); } } + getObservation(clientId) { let json = JSON.stringify({where: {clientFk: this.client.id}, order: 'created DESC'}); this.$http.get(`/client/api/clientObservations?filter=${json}`).then( @@ -19,6 +21,7 @@ export default class Controller { } ); } + newObservation() { this.$state.go("clientCard.notes.create", {id: this.client.id}); } diff --git a/client/client/src/notes/style.css b/client/client/src/notes/style.css index b5e17c7a7..4d0f8eba7 100644 --- a/client/client/src/notes/style.css +++ b/client/client/src/notes/style.css @@ -1,3 +1,3 @@ -.notes-date{ +.notes-date { font-family: raleway-bold; } \ No newline at end of file diff --git a/client/client/src/search-panel/search-panel.js b/client/client/src/search-panel/search-panel.js index 87f6308ce..88aa89af3 100644 --- a/client/client/src/search-panel/search-panel.js +++ b/client/client/src/search-panel/search-panel.js @@ -6,15 +6,18 @@ export default class Controller { // onSubmit() is defined by @vnSearchbar this.onSubmit = () => {}; } + onSearch() { this.setStorageValue(); this.onSubmit(this.filter); } + $onChanges() { var value = JSON.parse(this.$window.sessionStorage.getItem('filter')); if (value !== undefined) this.filter = value; } + setStorageValue() { this.$window.sessionStorage.setItem('filter', JSON.stringify(this.filter)); } diff --git a/client/client/src/search-panel/search-panel.spec.js b/client/client/src/search-panel/search-panel.spec.js index 9f7695924..2c3137ff0 100644 --- a/client/client/src/search-panel/search-panel.spec.js +++ b/client/client/src/search-panel/search-panel.spec.js @@ -17,7 +17,7 @@ describe('Client', () => { })); describe('onSearch()', () => { - it(`should call setStorageValue() and onSubmit()`, () => { + it('should call setStorageValue() and onSubmit()', () => { spyOn(controller, 'setStorageValue'); spyOn(controller, 'onSubmit'); controller.setStorageValue(); @@ -29,7 +29,7 @@ describe('Client', () => { }); describe('$onChanges()', () => { - it(`should set filter properties using the search values`, () => { + it('should set filter properties using the search values', () => { expect(controller.filter).not.toBeDefined(); spyOn(JSON, 'parse').and.returnValue({data: 'data'}); controller.$onChanges(); diff --git a/client/client/src/web-access/web-access.js b/client/client/src/web-access/web-access.js index dc61eac82..696d8a0ad 100644 --- a/client/client/src/web-access/web-access.js +++ b/client/client/src/web-access/web-access.js @@ -29,6 +29,7 @@ export default class Controller { this.repeatPassword = ''; this.$.$apply(); } + onPassChange(response) { if (response == 'ACCEPT' && this.canChangePassword) try { diff --git a/client/core/src/autocomplete/autocomplete.js b/client/core/src/autocomplete/autocomplete.js index 0366cece7..8623eccb7 100644 --- a/client/core/src/autocomplete/autocomplete.js +++ b/client/core/src/autocomplete/autocomplete.js @@ -32,6 +32,7 @@ class Autocomplete extends Component { get showDropDown() { return this._showDropDown; } + set showDropDown(value) { if (value && this.url && !this._preLoad) { this._preLoad = true; @@ -77,6 +78,7 @@ class Autocomplete extends Component { get field() { return this.multiple ? this._multiField : this._field; } + set field(value) { if (!angular.equals(value, this.field)) { this.finding = true; @@ -103,7 +105,7 @@ class Autocomplete extends Component { if (value && value.hasOwnProperty(this.valueField)) { this._field = value[this.valueField]; if (this.multiple) { - this._multiField = [value[this.valueField]] + this._multiField = [value[this.valueField]]; } if (value.hasOwnProperty(this.showField)) { this.displayValue = value[this.showField]; @@ -164,6 +166,7 @@ class Autocomplete extends Component { json => this.onItemRequest(null) ); } + onItemRequest(data) { if (data && data.length > 0) this.showItem(data[0]); @@ -222,6 +225,7 @@ class Autocomplete extends Component { this.getItems(); } } + getItems() { if (this.url === undefined) { this.items = copyObject(this.data); @@ -273,6 +277,7 @@ class Autocomplete extends Component { } } } + $onInit() { this.findMore = this.url && this.maxRow; this.mouseFocus = false; @@ -321,7 +326,6 @@ class Autocomplete extends Component { } } - Autocomplete.$inject = ['$element', '$scope', '$http', '$timeout', '$filter']; module.component('vnAutocomplete', { diff --git a/services/loopback/server/middleware.json b/services/loopback/server/middleware.json index 8412781d5..151b6a0e0 100644 --- a/services/loopback/server/middleware.json +++ b/services/loopback/server/middleware.json @@ -1,6 +1,8 @@ { "initial:before": { - "loopback#favicon": {} + "loopback#favicon": { + "params": "$!../favicon.ico" + } }, "initial": { "compression": {}, diff --git a/services/salix/client/index.ejs b/services/salix/client/index.ejs index 9ed38a508..ed1bd1cd8 100644 --- a/services/salix/client/index.ejs +++ b/services/salix/client/index.ejs @@ -1,24 +1,24 @@ - - - Salix - - - - - - - - - + + + Salix + + + + + + + + + From 77ccc0e8afb487dbaa24dcd877c5fa109b38a3a8 Mon Sep 17 00:00:00 2001 From: Carlos Date: Tue, 14 Nov 2017 08:24:01 +0100 Subject: [PATCH 2/2] temp favicon.ico (to update once we have the right one) --- services/loopback/favicon.ico | Bin 0 -> 9972 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 services/loopback/favicon.ico diff --git a/services/loopback/favicon.ico b/services/loopback/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..affd413f83bfdbc2777e2268a98e89711e087f04 GIT binary patch literal 9972 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 literal 0 HcmV?d00001