From be1993cf8b04f89bd0e2fc185054f13d07a469c0 Mon Sep 17 00:00:00 2001 From: alexandre Date: Thu, 2 Mar 2023 11:33:55 +0100 Subject: [PATCH 1/7] refs #5206 version with top-searcher and two fields for reference and id --- front/core/styles/variables.scss | 1 + front/salix/components/layout/style.scss | 6 +- .../front/extra-community/locale/es.yml | 4 +- modules/travel/front/index/index.html | 27 +- modules/travel/front/locale/es.yml | 10 +- modules/travel/front/main/index.html | 3 +- modules/travel/front/search-panel/index.html | 299 +++++++++++------- modules/travel/front/search-panel/index.js | 42 ++- modules/travel/front/search-panel/style.scss | 42 +++ modules/travel/front/summary/locale/es.yml | 6 +- 10 files changed, 279 insertions(+), 161 deletions(-) create mode 100644 modules/travel/front/search-panel/style.scss diff --git a/front/core/styles/variables.scss b/front/core/styles/variables.scss index bcc9fab667..c280838ca3 100644 --- a/front/core/styles/variables.scss +++ b/front/core/styles/variables.scss @@ -2,6 +2,7 @@ $font-size: 11pt; $menu-width: 256px; +$right-menu-width: 318px; $topbar-height: 56px; $mobile-width: 800px; $float-spacing: 20px; diff --git a/front/salix/components/layout/style.scss b/front/salix/components/layout/style.scss index 6123662280..6697bb1b01 100644 --- a/front/salix/components/layout/style.scss +++ b/front/salix/components/layout/style.scss @@ -88,13 +88,13 @@ vn-layout { } &.right-menu { & > vn-topbar > .end { - width: 80px + $menu-width; + width: 80px + $right-menu-width; } & > .main-view { - padding-right: $menu-width; + padding-right: $right-menu-width; } [fixed-bottom-right] { - right: $menu-width; + right: $right-menu-width; } } & > .main-view { diff --git a/modules/travel/front/extra-community/locale/es.yml b/modules/travel/front/extra-community/locale/es.yml index dc231226f4..ed6179c91c 100644 --- a/modules/travel/front/extra-community/locale/es.yml +++ b/modules/travel/front/extra-community/locale/es.yml @@ -6,6 +6,6 @@ Phy. KG: KG físico Vol. KG: KG Vol. Search by travel id or reference: Buscar por id de travel o referencia Search by extra community travel: Buscar por envío extra comunitario -Continent Out: Continente salida +Continent Out: Cont. salida W. Shipped: F. envío -W. Landed: F. llegada \ No newline at end of file +W. Landed: F. llegada diff --git a/modules/travel/front/index/index.html b/modules/travel/front/index/index.html index 27a7000833..14faef3eef 100644 --- a/modules/travel/front/index/index.html +++ b/modules/travel/front/index/index.html @@ -2,6 +2,9 @@ + + @@ -9,7 +12,6 @@ - Id Reference Agency Warehouse Out @@ -22,10 +24,9 @@ - - {{::travel.id}} {{::travel.ref}} {{::travel.agencyModeName}} {{::travel.warehouseOutName}} @@ -49,7 +50,7 @@ vn-tooltip="Clone" icon="icon-clone"> - @@ -78,7 +79,7 @@ fixed-bottom-right> - Filter by selection - Exclude selection - Remove filter - Remove all filters - Copy value - \ No newline at end of file + diff --git a/modules/travel/front/locale/es.yml b/modules/travel/front/locale/es.yml index 7231d37cda..043702b99c 100644 --- a/modules/travel/front/locale/es.yml +++ b/modules/travel/front/locale/es.yml @@ -1,7 +1,7 @@ #Ordenar alfabeticamente Reference: Referencia -Warehouse Out: Almacén salida -Warehouse In: Almacén llegada +Warehouse Out: Alm salida +Warehouse In: Alm llegada Shipped from: Salida desde Shipped to: Salida hasta Landed from: Llegada desde @@ -10,12 +10,12 @@ Shipped: F. salida Landed: F. llegada Delivered: Enviado Received: Recibido -Travel id: Id envío -Search travels by id: Buscar envíos por identificador +Travel id: Id +Search travels by id: Buscar envíos por identificador o referencia New travel: Nuevo envío travel: envío # Sections Travels: Envíos Log: Historial -Thermographs: Termógrafos \ No newline at end of file +Thermographs: Termógrafos diff --git a/modules/travel/front/main/index.html b/modules/travel/front/main/index.html index feb1e8b017..acf1a1612d 100644 --- a/modules/travel/front/main/index.html +++ b/modules/travel/front/main/index.html @@ -7,7 +7,6 @@ - \ No newline at end of file + diff --git a/modules/travel/front/search-panel/index.html b/modules/travel/front/search-panel/index.html index 2e9c796c32..26f6b96c67 100644 --- a/modules/travel/front/search-panel/index.html +++ b/modules/travel/front/search-panel/index.html @@ -1,109 +1,190 @@ -
-
- - - - - - - - - - - - - - - - -
- - - - - - Or - - - - - -
- - - - - - - - - - - - - - - - - - - -
-
\ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + Or +
+ + + + +
+
+ + + + + + + + + + + + +
+ + {{$ctrl.$t('Reference')}}: {{$ctrl.filter.ref}} + + + {{$ctrl.$t('Total entries')}}: {{$ctrl.filter.totalEntries}} + + + {{$ctrl.$t('Travel id')}}: {{$ctrl.filter.id}} + + + {{$ctrl.$t('Agency')}}: {{agency.selection.name}} + + + {{$ctrl.$t('Continent Out')}}: {{continent.selection.name}} + + + {{$ctrl.$t('Shipped from')}}: {{$ctrl.filter.shippedFrom | date:'dd/MM/yyyy'}} + + + {{$ctrl.$t('Shipped to')}}: {{$ctrl.filter.shippedTo | date:'dd/MM/yyyy'}} + + + {{$ctrl.$t('Days onward')}}: {{$ctrl.filter.scopeDays}} + + + {{$ctrl.$t('Landed from')}}: {{$ctrl.filter.landedFrom | date:'dd/MM/yyyy'}} + + + {{$ctrl.$t('Landed to')}}: {{$ctrl.filter.landedTo | date:'dd/MM/yyyy'}} + + + {{$ctrl.$t('Warehouse Out')}}: {{warehouseOut.selection.name}} + + + {{$ctrl.$t('Warehouse In')}}: {{warehouseIn.selection.name}} + +
+
diff --git a/modules/travel/front/search-panel/index.js b/modules/travel/front/search-panel/index.js index 877d4f9d3e..69d8dafcd2 100644 --- a/modules/travel/front/search-panel/index.js +++ b/modules/travel/front/search-panel/index.js @@ -1,43 +1,37 @@ import ngModule from '../module'; import SearchPanel from 'core/components/searchbar/search-panel'; +import './style.scss'; class Controller extends SearchPanel { constructor($, $element) { super($, $element); - this.filter = this.$.filter; } - get shippedFrom() { - return this._shippedFrom; - } - - set shippedFrom(value) { - this._shippedFrom = value; + changeShipped() { this.filter.scopeDays = null; + this.addFilters(); } - get shippedTo() { - return this._shippedTo; - } - - set shippedTo(value) { - this._shippedTo = value; - this.filter.scopeDays = null; - } - - get scopeDays() { - return this._scopeDays; - } - - set scopeDays(value) { - this._scopeDays = value; - + changeScopeDays() { this.filter.shippedFrom = null; this.filter.shippedTo = null; + this.addFilters(); + } + + addFilters() { + this.model.addFilter({}, this.filter); + } + + removeParamFilter(param) { + this.filter[param] = null; + this.addFilters(); } } ngModule.vnComponent('vnTravelSearchPanel', { template: require('./index.html'), - controller: Controller + controller: Controller, + bindings: { + model: '<' + } }); diff --git a/modules/travel/front/search-panel/style.scss b/modules/travel/front/search-panel/style.scss new file mode 100644 index 0000000000..4d08c1402e --- /dev/null +++ b/modules/travel/front/search-panel/style.scss @@ -0,0 +1,42 @@ +@import "variables"; + +vn-travel-search-panel vn-side-menu { + .menu { + min-width: $right-menu-width; + } + & > div { + .input { + padding-left: $spacing-md; + padding-right: $spacing-md; + border-color: $color-spacer; + border-bottom: $border-thin; + } + .horizontal { + padding-left: $spacing-md; + padding-right: $spacing-md; + grid-auto-flow: column; + grid-column-gap: $spacing-sm; + align-items: center; + } + .chips { + display: flex; + flex-wrap: wrap; + padding: $spacing-md; + overflow: hidden; + max-width: 100%; + border-color: $color-spacer; + } + + .or { + align-self: center; + font-weight: bold; + font-size: 26px; + color: $color-font-secondary; + } + + .scope-days{ + display: flex; + align-items: center; + } + } +} diff --git a/modules/travel/front/summary/locale/es.yml b/modules/travel/front/summary/locale/es.yml index aa002fad05..aa6adc9381 100644 --- a/modules/travel/front/summary/locale/es.yml +++ b/modules/travel/front/summary/locale/es.yml @@ -1,9 +1,9 @@ Reference: Referencia -Warehouse In: Almacén entrada -Warehouse Out: Almacén salida +Warehouse In: Alm. entrada +Warehouse Out: Alm. salida Shipped: F. envío Landed: F. entrega -Total entries: Entradas totales +Total entries: Ent. totales Delivered: Enviada Received: Recibida Agency: Agencia -- 2.40.1 From dbe42e3bf4490ac60a8d4dc37ea982fb4bd5bc7c Mon Sep 17 00:00:00 2001 From: alexandre Date: Thu, 2 Mar 2023 13:55:47 +0100 Subject: [PATCH 2/7] refs #5206 version with plane added, needs to implement general search --- front/core/locale/es.yml | 10 +++--- modules/travel/front/index/index.html | 27 +++++++++++--- modules/travel/front/index/index.js | 1 + modules/travel/front/index/style.scss | 11 ++++++ modules/travel/front/main/index.html | 13 ------- modules/travel/front/main/index.js | 22 ------------ modules/travel/front/search-panel/index.html | 37 ++++++-------------- modules/travel/front/search-panel/index.js | 31 ++++++++++++++++ 8 files changed, 82 insertions(+), 70 deletions(-) create mode 100644 modules/travel/front/index/style.scss diff --git a/front/core/locale/es.yml b/front/core/locale/es.yml index d849fcdd28..f654c61cf8 100644 --- a/front/core/locale/es.yml +++ b/front/core/locale/es.yml @@ -26,7 +26,7 @@ Value should have at most %s characters: El valor debe tener un máximo de %s ca Enter a new search: Introduce una nueva búsqueda No results: Sin resultados Ups! It seems there was an error: ¡Vaya! Parece que ha habido un error -General search: Busqueda general +General search: Búsqueda general January: Enero February: Febrero March: Marzo @@ -42,9 +42,9 @@ December: Diciembre Monday: Lunes Tuesday: Martes Wednesday: Miércoles -Thursday: Jueves -Friday: Viernes -Saturday: Sábado +Thursday: Jueves +Friday: Viernes +Saturday: Sábado Sunday: Domingo Has delivery: Hay reparto Loading: Cargando @@ -63,4 +63,4 @@ Loading...: Cargando... No results found: Sin resultados No data: Sin datos Undo changes: Deshacer cambios -Load more results: Cargar más resultados \ No newline at end of file +Load more results: Cargar más resultados diff --git a/modules/travel/front/index/index.html b/modules/travel/front/index/index.html index 14faef3eef..06acd92a1b 100644 --- a/modules/travel/front/index/index.html +++ b/modules/travel/front/index/index.html @@ -5,6 +5,13 @@ + + @@ -16,10 +23,10 @@ Agency Warehouse Out Shipped - Delivered + Warehouse In Landed - Received + @@ -35,14 +42,26 @@ {{::travel.shipped | date:'dd/MM/yyyy'}} - + + + + {{::travel.warehouseInName}} {{::travel.landed | date:'dd/MM/yyyy'}} - + + + + - - - diff --git a/modules/travel/front/main/index.js b/modules/travel/front/main/index.js index fbaf78c164..6a153f21a4 100644 --- a/modules/travel/front/main/index.js +++ b/modules/travel/front/main/index.js @@ -4,28 +4,6 @@ import ModuleMain from 'salix/components/module-main'; export default class Travel extends ModuleMain { constructor() { super(); - - this.filterParams = { - scopeDays: 1 - }; - } - - fetchParams($params) { - if (!Object.entries($params).length) - $params.scopeDays = 1; - - if (typeof $params.scopeDays === 'number') { - const shippedFrom = Date.vnNew(); - shippedFrom.setHours(0, 0, 0, 0); - - const shippedTo = new Date(shippedFrom.getTime()); - shippedTo.setDate(shippedTo.getDate() + $params.scopeDays); - shippedTo.setHours(23, 59, 59, 999); - - Object.assign($params, {shippedFrom, shippedTo}); - } - - return $params; } } diff --git a/modules/travel/front/search-panel/index.html b/modules/travel/front/search-panel/index.html index 26f6b96c67..d39f32a7dc 100644 --- a/modules/travel/front/search-panel/index.html +++ b/modules/travel/front/search-panel/index.html @@ -1,23 +1,18 @@ + label="General search" + info="Search travels by id" + ng-model="$ctrl.search" + ng-keydown="$ctrl.onKeyPress($event, 'search')"> - - + ng-model="$ctrl.totalEntries" + ng-keydown="$ctrl.onKeyPress($event, 'totalEntries')"> @@ -61,12 +56,9 @@ label="Days onward" ng-model="$ctrl.filter.scopeDays" on-change="$ctrl.changeScopeDays()" - display-controls="true"> + display-controls="true" + info="Cannot choose a range of dates and days onward at the same time"> - - @@ -103,11 +95,11 @@
- {{$ctrl.$t('Reference')}}: {{$ctrl.filter.ref}} + Id/{{$ctrl.$t('Reference')}}: {{$ctrl.filter.search}} {{$ctrl.$t('Total entries')}}: {{$ctrl.filter.totalEntries}} - - {{$ctrl.$t('Travel id')}}: {{$ctrl.filter.id}} - Date: Thu, 2 Mar 2023 15:10:17 +0100 Subject: [PATCH 3/7] refs #5206 implemented general search, missing tests --- modules/travel/front/index/index.html | 3 +- modules/travel/front/main/index.js | 3 -- modules/travel/front/search-panel/index.js | 39 ++++++++-------------- 3 files changed, 15 insertions(+), 30 deletions(-) diff --git a/modules/travel/front/index/index.html b/modules/travel/front/index/index.html index 06acd92a1b..df7fd5611d 100644 --- a/modules/travel/front/index/index.html +++ b/modules/travel/front/index/index.html @@ -9,8 +9,7 @@ vn-id="model" url="Travels/filter" limit="20" - order="shipped DESC, landed DESC" - auto-load="true"> + order="shipped DESC, landed DESC"> { + if (param) + this.checkJustOneResult(); + }); } removeParamFilter(param) { @@ -51,12 +36,16 @@ class Controller extends SearchPanel { } onKeyPress($event, param) { - console.log('event'); if ($event.key === 'Enter') { this.filter[param] = this[param]; - this.addFilters(); + this.addFilters(param === 'search'); } } + + checkJustOneResult() { + if (this.model._orgData.length === 1) + this.$state.go('travel.card.summary', {id: this.model._orgData[0].id}); + } } ngModule.vnComponent('vnTravelSearchPanel', { -- 2.40.1 From 874fd0656c58730df7b5bef998cfe0a99972fd0c Mon Sep 17 00:00:00 2001 From: alexandre Date: Fri, 10 Mar 2023 10:05:16 +0100 Subject: [PATCH 4/7] refs #5206 url gets params --- modules/travel/front/index/index.html | 2 + modules/travel/front/search-panel/index.html | 145 ++++++++----------- modules/travel/front/search-panel/index.js | 58 +++++--- modules/travel/front/search-panel/style.scss | 5 - 4 files changed, 95 insertions(+), 115 deletions(-) diff --git a/modules/travel/front/index/index.html b/modules/travel/front/index/index.html index df7fd5611d..a6952321f9 100644 --- a/modules/travel/front/index/index.html +++ b/modules/travel/front/index/index.html @@ -26,6 +26,7 @@ Warehouse In Landed + Total entries @@ -61,6 +62,7 @@ ng-class="{active: travel.isReceived}"> + {{::travel.totalEntries}} - - - - + on-change="$ctrl.applyFilters()"> - - - - - - - - - - - Or -
- - -
-
- - - - - + on-change="$ctrl.applyFilters()"> + on-change="$ctrl.applyFilters()"> + + + + + + + + + + + + + + + +
Id/{{$ctrl.$t('Reference')}}: {{$ctrl.filter.search}} - - {{$ctrl.$t('Total entries')}}: {{$ctrl.filter.totalEntries}} - {{$ctrl.$t('Agency')}}: {{agency.selection.name}} - {{$ctrl.$t('Continent Out')}}: {{continent.selection.name}} + {{$ctrl.$t('Warehouse Out')}}: {{warehouseOut.selection.name}} - {{$ctrl.$t('Shipped from')}}: {{$ctrl.filter.shippedFrom | date:'dd/MM/yyyy'}} - - - {{$ctrl.$t('Shipped to')}}: {{$ctrl.filter.shippedTo | date:'dd/MM/yyyy'}} + {{$ctrl.$t('Warehouse In')}}: {{warehouseIn.selection.name}} {{$ctrl.$t('Landed to')}}: {{$ctrl.filter.landedTo | date:'dd/MM/yyyy'}} - {{$ctrl.$t('Warehouse Out')}}: {{warehouseOut.selection.name}} + {{$ctrl.$t('Continent Out')}}: {{continent.selection.name}} - {{$ctrl.$t('Warehouse In')}}: {{warehouseIn.selection.name}} + {{$ctrl.$t('Total entries')}}: {{$ctrl.filter.totalEntries}}
diff --git a/modules/travel/front/search-panel/index.js b/modules/travel/front/search-panel/index.js index 8269a7d51b..9cf417da10 100644 --- a/modules/travel/front/search-panel/index.js +++ b/modules/travel/front/search-panel/index.js @@ -5,47 +5,59 @@ import './style.scss'; class Controller extends SearchPanel { constructor($, $element) { super($, $element); - this.filter = { - scopeDays: 1, - }; + this.initFilter(); + this.fetchData(); } - changeShipped() { - this.filter.scopeDays = null; - this.addFilters(); + $onChanges() { + if (this.model) + this.applyFilters(); } - changeScopeDays() { - this.filter.shippedFrom = null; - this.filter.shippedTo = null; - this.addFilters(); + fetchData() { + this.$http.get('AgencyModes').then(res => { + this.agencyModes = res.data; + }); + this.$http.get('Warehouses').then(res => { + this.warehouses = res.data; + }); + this.$http.get('Continents').then(res => { + this.continents = res.data; + }); } - addFilters(param) { - this.model.addFilter({}, this.filter) + initFilter() { + this.filter = {}; + if (this.$params.q) { + this.filter = JSON.parse(this.$params.q); + this.search = this.filter.search; + this.totalEntries = this.filter.totalEntries; + } + if (!this.filter.scopeDays) this.filter.scopeDays = 7; + } + + applyFilters(param) { + this.model.applyFilter({}, this.filter) .then(() => { - if (param) - this.checkJustOneResult(); + if (param && this.model._orgData.length === 1) + this.$state.go('travel.card.summary', {id: this.model._orgData[0].id}); + else + this.$state.go(this.$state.current.name, {q: JSON.stringify(this.filter)}, {location: 'replace'}); }); } removeParamFilter(param) { - if (this[param]) this[param] = null; - this.filter[param] = null; - this.addFilters(); + if (this[param]) delete this[param]; + delete this.filter[param]; + this.applyFilters(); } onKeyPress($event, param) { if ($event.key === 'Enter') { this.filter[param] = this[param]; - this.addFilters(param === 'search'); + this.applyFilters(param === 'search'); } } - - checkJustOneResult() { - if (this.model._orgData.length === 1) - this.$state.go('travel.card.summary', {id: this.model._orgData[0].id}); - } } ngModule.vnComponent('vnTravelSearchPanel', { diff --git a/modules/travel/front/search-panel/style.scss b/modules/travel/front/search-panel/style.scss index 4d08c1402e..94fe7b2395 100644 --- a/modules/travel/front/search-panel/style.scss +++ b/modules/travel/front/search-panel/style.scss @@ -33,10 +33,5 @@ vn-travel-search-panel vn-side-menu { font-size: 26px; color: $color-font-secondary; } - - .scope-days{ - display: flex; - align-items: center; - } } } -- 2.40.1 From 6738243534184ae85ae938223fd87508b69f535a Mon Sep 17 00:00:00 2001 From: alexandre Date: Thu, 23 Mar 2023 14:30:58 +0100 Subject: [PATCH 5/7] refs #5206 added e2e --- CHANGELOG.md | 2 +- e2e/helpers/selectors.js | 11 +++- e2e/paths/10-travel/06_search_panel.spec.js | 62 +++++++++++++++++++++ 3 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 e2e/paths/10-travel/06_search_panel.spec.js diff --git a/CHANGELOG.md b/CHANGELOG.md index dde790aaa4..7abd8d6a4b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - ### Changed -- +- (Envíos -> Índice) Cambiado el buscador superior por uno lateral ### Fixed - diff --git a/e2e/helpers/selectors.js b/e2e/helpers/selectors.js index 0762a79f09..dbb1d998f1 100644 --- a/e2e/helpers/selectors.js +++ b/e2e/helpers/selectors.js @@ -1139,7 +1139,16 @@ export default { landingDate: 'vn-travel-create vn-date-picker[ng-model="$ctrl.travel.landed"]', warehouseOut: 'vn-travel-create vn-autocomplete[ng-model="$ctrl.travel.warehouseOutFk"]', warehouseIn: 'vn-travel-create vn-autocomplete[ng-model="$ctrl.travel.warehouseInFk"]', - save: 'vn-travel-create vn-submit > button' + save: 'vn-travel-create vn-submit > button', + generalSearchFilter: 'vn-travel-search-panel vn-textfield[ng-model="$ctrl.search"]', + agencyFilter: 'vn-travel-search-panel vn-autocomplete[ng-model="$ctrl.filter.agencyModeFk"]', + warehouseOutFilter: 'vn-travel-search-panel vn-autocomplete[ng-model="$ctrl.filter.warehouseOutFk"]', + warehouseInFilter: 'vn-travel-search-panel vn-autocomplete[ng-model="$ctrl.filter.warehouseInFk"]', + scopeDaysFilter: 'vn-travel-search-panel vn-input-number[ng-model="$ctrl.filter.scopeDays"]', + continentFilter: 'vn-travel-search-panel vn-autocomplete[ng-model="$ctrl.filter.continent"]', + totalEntriesFilter: 'vn-travel-search-panel vn-input-number[ng-model="$ctrl.totalEntries"]', + chip: 'vn-travel-search-panel vn-chip > vn-icon', + }, travelExtraCommunity: { anySearchResult: 'vn-travel-extra-community > vn-card div > tbody > tr[ng-attr-id="{{::travel.id}}"]', diff --git a/e2e/paths/10-travel/06_search_panel.spec.js b/e2e/paths/10-travel/06_search_panel.spec.js new file mode 100644 index 0000000000..420ceaf48e --- /dev/null +++ b/e2e/paths/10-travel/06_search_panel.spec.js @@ -0,0 +1,62 @@ +import selectors from '../../helpers/selectors.js'; +import getBrowser from '../../helpers/puppeteer'; + +describe('Travel search panel path', () => { + let browser; + let page; + let httpRequest; + + beforeAll(async() => { + browser = await getBrowser(); + page = browser.page; + await page.loginAndModule('buyer', 'travel'); + page.on('request', req => { + if (req.url().includes(`Travels/filter`)) + httpRequest = req.url(); + }); + }); + + afterAll(async() => { + await browser.close(); + }); + + it('should filter using all the fields', async() => { + await page.click(selectors.travelIndex.chip); + await page.write(selectors.travelIndex.generalSearchFilter, 'travel'); + await page.keyboard.press('Enter'); + + expect(httpRequest).toContain('search=travel'); + + await page.click(selectors.travelIndex.chip); + await page.autocompleteSearch(selectors.travelIndex.agencyFilter, 'Entanglement'); + + expect(httpRequest).toContain('agencyModeFk'); + + await page.click(selectors.travelIndex.chip); + await page.autocompleteSearch(selectors.travelIndex.warehouseOutFilter, 'Warehouse One'); + + expect(httpRequest).toContain('warehouseOutFk'); + + await page.click(selectors.travelIndex.chip); + await page.autocompleteSearch(selectors.travelIndex.warehouseInFilter, 'Warehouse Two'); + + expect(httpRequest).toContain('warehouseInFk'); + + await page.click(selectors.travelIndex.chip); + await page.overwrite(selectors.travelIndex.scopeDaysFilter, '15'); + await page.keyboard.press('Enter'); + + expect(httpRequest).toContain('scopeDays=15'); + + await page.click(selectors.travelIndex.chip); + await page.autocompleteSearch(selectors.travelIndex.continentFilter, 'Asia'); + + expect(httpRequest).toContain('continent'); + + await page.click(selectors.travelIndex.chip); + await page.write(selectors.travelIndex.totalEntriesFilter, '1'); + await page.keyboard.press('Enter'); + + expect(httpRequest).toContain('totalEntries=1'); + }); +}); -- 2.40.1 From 0baccc47453e2964a6b392cde9a0c78204846c5b Mon Sep 17 00:00:00 2001 From: alexandre Date: Fri, 24 Mar 2023 08:25:37 +0100 Subject: [PATCH 6/7] refs #5206 fix tests front --- modules/travel/front/index/index.html | 29 ----------- modules/travel/front/index/index.js | 31 ------------ modules/travel/front/main/index.js | 3 ++ modules/travel/front/main/index.spec.js | 49 ------------------- .../travel/front/search-panel/index.spec.js | 48 +++++++----------- 5 files changed, 22 insertions(+), 138 deletions(-) delete mode 100644 modules/travel/front/main/index.spec.js diff --git a/modules/travel/front/index/index.html b/modules/travel/front/index/index.html index a6952321f9..a768e4a29b 100644 --- a/modules/travel/front/index/index.html +++ b/modules/travel/front/index/index.html @@ -105,32 +105,3 @@ question="Do you want to clone this travel?" message="All it's properties will be copied"> - - - - Filter by selection - - - Exclude selection - - - Remove filter - - - Remove all filters - - - Copy value - - - diff --git a/modules/travel/front/index/index.js b/modules/travel/front/index/index.js index 2c8f8fc8a6..a570146fe3 100644 --- a/modules/travel/front/index/index.js +++ b/modules/travel/front/index/index.js @@ -31,37 +31,6 @@ export default class Controller extends Section { if (timeDifference == 0) return 'warning'; if (timeDifference < 0) return 'success'; } - - exprBuilder(param, value) { - switch (param) { - case 'search': - return /^\d+$/.test(value) - ? {'t.id': value} - : {'t.ref': {like: `%${value}%`}}; - case 'ref': - return {'t.ref': {like: `%${value}%`}}; - case 'shipped': - return {'t.shipped': {between: this.dateRange(value)}}; - case 'landed': - return {'t.landed': {between: this.dateRange(value)}}; - case 'id': - case 'agencyModeFk': - case 'warehouseOutFk': - case 'warehouseInFk': - case 'totalEntries': - param = `t.${param}`; - return {[param]: value}; - } - } - - dateRange(value) { - const minHour = new Date(value); - minHour.setHours(0, 0, 0, 0); - const maxHour = new Date(value); - maxHour.setHours(23, 59, 59, 59); - - return [minHour, maxHour]; - } } ngModule.vnComponent('vnTravelIndex', { diff --git a/modules/travel/front/main/index.js b/modules/travel/front/main/index.js index 82ebe61af7..6a153f21a4 100644 --- a/modules/travel/front/main/index.js +++ b/modules/travel/front/main/index.js @@ -2,6 +2,9 @@ import ngModule from '../module'; import ModuleMain from 'salix/components/module-main'; export default class Travel extends ModuleMain { + constructor() { + super(); + } } ngModule.vnComponent('vnTravel', { diff --git a/modules/travel/front/main/index.spec.js b/modules/travel/front/main/index.spec.js deleted file mode 100644 index bf5a27b410..0000000000 --- a/modules/travel/front/main/index.spec.js +++ /dev/null @@ -1,49 +0,0 @@ -import './index.js'; - -describe('Travel Component vnTravel', () => { - let controller; - - beforeEach(ngModule('travel')); - - beforeEach(inject($componentController => { - let $element = angular.element(`
`); - controller = $componentController('vnTravel', {$element}); - })); - - describe('fetchParams()', () => { - it('should return a range of dates with passed scope days', () => { - let params = controller.fetchParams({ - scopeDays: 2 - }); - const shippedFrom = Date.vnNew(); - shippedFrom.setHours(0, 0, 0, 0); - const shippedTo = new Date(shippedFrom.getTime()); - shippedTo.setDate(shippedTo.getDate() + params.scopeDays); - shippedTo.setHours(23, 59, 59, 999); - - const expectedParams = { - shippedFrom, - scopeDays: params.scopeDays, - shippedTo - }; - - expect(params).toEqual(expectedParams); - }); - - it('should return default value for scope days', () => { - let params = controller.fetchParams({ - scopeDays: 1 - }); - - expect(params.scopeDays).toEqual(1); - }); - - it('should return the given scope days', () => { - let params = controller.fetchParams({ - scopeDays: 2 - }); - - expect(params.scopeDays).toEqual(2); - }); - }); -}); diff --git a/modules/travel/front/search-panel/index.spec.js b/modules/travel/front/search-panel/index.spec.js index 884f4fb179..488143e80c 100644 --- a/modules/travel/front/search-panel/index.spec.js +++ b/modules/travel/front/search-panel/index.spec.js @@ -8,41 +8,31 @@ describe('Travel Component vnTravelSearchPanel', () => { beforeEach(inject($componentController => { controller = $componentController('vnTravelSearchPanel', {$element: null}); controller.$t = () => {}; - controller.filter = {}; })); - describe('shippedFrom() setter', () => { - it('should clear the scope days when setting the from property', () => { - controller.filter.scopeDays = 1; + describe('applyFilters()', () => { + it('should apply filters', async() => { + controller.filter = {foo: 'bar'}; + controller.model = { + applyFilter: jest.fn().mockResolvedValue(), + _orgData: [{id: 1}] + }; + controller.$state = { + current: { + name: 'foo' + }, + go: jest.fn() + }; - controller.shippedFrom = Date.vnNew(); + await controller.applyFilters(true); - expect(controller.filter.scopeDays).toBeNull(); - expect(controller.shippedFrom).toBeDefined(); - }); - }); + expect(controller.model.applyFilter).toHaveBeenCalledWith({}, controller.filter); + expect(controller.$state.go).toHaveBeenCalledWith('travel.card.summary', {id: 1}); - describe('shippedTo() setter', () => { - it('should clear the scope days when setting the to property', () => { - controller.filter.scopeDays = 1; + await controller.applyFilters(false); - controller.shippedTo = Date.vnNew(); - - expect(controller.filter.scopeDays).toBeNull(); - expect(controller.shippedTo).toBeDefined(); - }); - }); - - describe('scopeDays() setter', () => { - it('should clear the date range when setting the scopeDays property', () => { - controller.filter.shippedFrom = Date.vnNew(); - controller.filter.shippedTo = Date.vnNew(); - - controller.scopeDays = 1; - - expect(controller.filter.shippedFrom).toBeNull(); - expect(controller.filter.shippedTo).toBeNull(); - expect(controller.scopeDays).toBeDefined(); + expect(controller.$state.go).toHaveBeenCalledWith(controller.$state.current.name, + {q: JSON.stringify(controller.filter)}, {location: 'replace'}); }); }); }); -- 2.40.1 From cfe4570d3b548f63561809c8d19c4064446a50c0 Mon Sep 17 00:00:00 2001 From: alexandre Date: Fri, 24 Mar 2023 09:21:55 +0100 Subject: [PATCH 7/7] refs #5206 e2es fixed --- e2e/paths/10-travel/02_basic_data_and_log.spec.js | 3 ++- e2e/paths/10-travel/03_descriptor.spec.js | 6 ++++-- e2e/paths/10-travel/05_thermograph.spec.js | 3 ++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/e2e/paths/10-travel/02_basic_data_and_log.spec.js b/e2e/paths/10-travel/02_basic_data_and_log.spec.js index bffcb86426..5abf8a65e5 100644 --- a/e2e/paths/10-travel/02_basic_data_and_log.spec.js +++ b/e2e/paths/10-travel/02_basic_data_and_log.spec.js @@ -9,7 +9,8 @@ describe('Travel basic data path', () => { browser = await getBrowser(); page = browser.page; await page.loginAndModule('buyer', 'travel'); - await page.accessToSearchResult('3'); + await page.write(selectors.travelIndex.generalSearchFilter, '3'); + await page.keyboard.press('Enter'); await page.accessToSection('travel.card.basicData'); }); diff --git a/e2e/paths/10-travel/03_descriptor.spec.js b/e2e/paths/10-travel/03_descriptor.spec.js index 79dcad514b..3752400c6b 100644 --- a/e2e/paths/10-travel/03_descriptor.spec.js +++ b/e2e/paths/10-travel/03_descriptor.spec.js @@ -9,7 +9,8 @@ describe('Travel descriptor path', () => { browser = await getBrowser(); page = browser.page; await page.loginAndModule('buyer', 'travel'); - await page.accessToSearchResult('1'); + await page.write(selectors.travelIndex.generalSearchFilter, '1'); + await page.keyboard.press('Enter'); await page.waitForState('travel.card.summary'); }); @@ -81,7 +82,8 @@ describe('Travel descriptor path', () => { await page.waitToClick('.cancel'); await page.waitToClick(selectors.globalItems.homeButton); await page.selectModule('travel'); - await page.accessToSearchResult('3'); + await page.write(selectors.travelIndex.generalSearchFilter, '3'); + await page.keyboard.press('Enter'); await page.waitForState('travel.card.summary'); const state = await page.getState(); diff --git a/e2e/paths/10-travel/05_thermograph.spec.js b/e2e/paths/10-travel/05_thermograph.spec.js index a99dc8352c..c9709f2f56 100644 --- a/e2e/paths/10-travel/05_thermograph.spec.js +++ b/e2e/paths/10-travel/05_thermograph.spec.js @@ -10,7 +10,8 @@ describe('Travel thermograph path', () => { browser = await getBrowser(); page = browser.page; await page.loginAndModule('buyer', 'travel'); - await page.accessToSearchResult('3'); + await page.write(selectors.travelIndex.generalSearchFilter, '3'); + await page.keyboard.press('Enter'); await page.accessToSection('travel.card.thermograph.index'); }); -- 2.40.1