diff --git a/admin/src/app/app.module.ts b/admin/src/app/app.module.ts index 28541a01f..f11334366 100644 --- a/admin/src/app/app.module.ts +++ b/admin/src/app/app.module.ts @@ -30,6 +30,7 @@ import { SpinnerComponent } from './shared/spinner/spinner.component'; import { FilterComponent } from './shared/filter/filter.component'; import { IconTypeComponent } from './shared/type-icon/icon-type.component'; import { AlertComponent } from './shared/alert/alert.component'; +import { SortComponent } from './shared/sort/sort.component'; import { GeneralMessageModalComponent } from './shared/general-message-modal/general-message-modal.component'; //Shared @@ -81,6 +82,7 @@ const DECLARATIONS = [ IconTypeComponent, AlertComponent, GeneralMessageModalComponent, + SortComponent, MapValuesPipe, RemoveNoneTypePipe ]; diff --git a/admin/src/app/pipes/remove-none-type.ts b/admin/src/app/pipes/remove-none-type.ts index f13b7b22b..d6f1b0e7b 100644 --- a/admin/src/app/pipes/remove-none-type.ts +++ b/admin/src/app/pipes/remove-none-type.ts @@ -1,15 +1,15 @@ -import {Pipe, PipeTransform} from '@angular/core'; +import { Pipe, PipeTransform } from '@angular/core'; -@Pipe({name: 'removeNoneType'}) +@Pipe({ name: 'removeEmptyType' }) export class RemoveNoneTypePipe implements PipeTransform { transform(value: any): Object[] { let returnArray = []; value.forEach((entry) => { - if(entry.key !== 'NONE') - returnArray.push({ - key: entry.key, - value: entry.value - }); + if (entry.key !== '') + returnArray.push({ + key: entry.key, + value: entry.value + }); }); return returnArray; } diff --git a/admin/src/app/services/workbasket.service.spec.ts b/admin/src/app/services/workbasket.service.spec.ts index 403e8f699..abd1163eb 100644 --- a/admin/src/app/services/workbasket.service.spec.ts +++ b/admin/src/app/services/workbasket.service.spec.ts @@ -1,5 +1,6 @@ import { TestBed, inject, async } from '@angular/core/testing'; -import { WorkbasketService, Direction } from './workbasket.service'; +import { WorkbasketService } from './workbasket.service'; +import { Direction } from '../shared/sort/sort.component'; import { HttpModule, Http } from '@angular/http'; import { HttpClientModule, HttpClient } from '@angular/common/http'; import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; diff --git a/admin/src/app/services/workbasket.service.ts b/admin/src/app/services/workbasket.service.ts index ab3e6285c..524e2d71e 100644 --- a/admin/src/app/services/workbasket.service.ts +++ b/admin/src/app/services/workbasket.service.ts @@ -4,16 +4,9 @@ import { WorkbasketSummary } from '../model/workbasketSummary'; import { Workbasket } from '../model/workbasket'; import { WorkbasketAccessItems } from '../model/workbasket-access-items'; import { environment } from '../../environments/environment'; +import { Direction } from '../shared/sort/sort.component'; import { Observable } from 'rxjs/Observable'; import { Subject } from 'rxjs/Subject'; -import { Timestamp } from 'rxjs'; - - -//sort direction -export enum Direction { - ASC = 'asc', - DESC = 'desc' -}; @Injectable() export class WorkbasketService { diff --git a/admin/src/app/shared/filter/filter.component.html b/admin/src/app/shared/filter/filter.component.html index 590344da8..562a84566 100644 --- a/admin/src/app/shared/filter/filter.component.html +++ b/admin/src/app/shared/filter/filter.component.html @@ -7,7 +7,7 @@ + \ No newline at end of file diff --git a/admin/src/app/workbasket/list/workbasket-list.component.scss b/admin/src/app/workbasket/list/workbasket-list.component.scss index 05158db72..d9c16c0c9 100644 --- a/admin/src/app/workbasket/list/workbasket-list.component.scss +++ b/admin/src/app/workbasket/list/workbasket-list.component.scss @@ -16,10 +16,6 @@ a > label{ width: 100%; } -.sortby-dropdown { - min-width: 200px; -} - .tab-align{ padding-bottom: 12px; } diff --git a/admin/src/app/workbasket/list/workbasket-list.component.spec.ts b/admin/src/app/workbasket/list/workbasket-list.component.spec.ts index a2e10208b..7da12c837 100644 --- a/admin/src/app/workbasket/list/workbasket-list.component.spec.ts +++ b/admin/src/app/workbasket/list/workbasket-list.component.spec.ts @@ -4,13 +4,14 @@ import { WorkbasketListComponent } from './workbasket-list.component'; import { AngularSvgIconModule } from 'angular-svg-icon'; import { HttpClientModule } from '@angular/common/http'; import { WorkbasketSummary } from '../../model/workbasketSummary'; -import { WorkbasketService, Direction } from '../../services/workbasket.service'; +import { WorkbasketService } from '../../services/workbasket.service'; import { HttpModule } from '@angular/http'; import { Router, Routes } from '@angular/router'; import { RouterTestingModule } from '@angular/router/testing'; import { Observable } from 'rxjs/Observable'; import { SpinnerComponent } from '../../shared/spinner/spinner.component'; import { FilterModel } from '../../shared/filter/filter.component'; +import { SortComponent } from '../../shared/sort/sort.component'; import { IconTypeComponent } from '../../shared/type-icon/icon-type.component'; import { RemoveNoneTypePipe } from '../../pipes/remove-none-type'; import { MapValuesPipe } from '../../pipes/map-values.pipe'; @@ -50,7 +51,7 @@ describe('WorkbasketListComponent', () => { beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [WorkbasketListComponent, DummyDetailComponent, MapValuesPipe, SpinnerComponent, FilterComponent, RemoveNoneTypePipe, IconTypeComponent], + declarations: [WorkbasketListComponent, DummyDetailComponent, SpinnerComponent, FilterComponent, RemoveNoneTypePipe, IconTypeComponent, SortComponent, MapValuesPipe], imports: [ AngularSvgIconModule, HttpModule, diff --git a/admin/src/app/workbasket/list/workbasket-list.component.ts b/admin/src/app/workbasket/list/workbasket-list.component.ts index d3678747b..ccc59d41b 100644 --- a/admin/src/app/workbasket/list/workbasket-list.component.ts +++ b/admin/src/app/workbasket/list/workbasket-list.component.ts @@ -1,9 +1,9 @@ import { Component, OnInit, EventEmitter } from '@angular/core'; import { WorkbasketSummary } from '../../model/workbasketSummary'; -import { WorkbasketService, Direction } from '../../services/workbasket.service' +import { WorkbasketService } from '../../services/workbasket.service' import { Subscription } from 'rxjs/Subscription'; import { FilterModel } from '../../shared/filter/filter.component' -import { filter } from 'rxjs/operator/filter'; +import { Direction, SortingModel } from '../../shared/sort/sort.component' import { Router, ActivatedRoute } from '@angular/router'; @Component({ @@ -20,9 +20,7 @@ export class WorkbasketListComponent implements OnInit { workbaskets: Array = []; requestInProgress: boolean = false; - sortBy: string = 'key'; - sortDirection: Direction = Direction.ASC; - sortingFields: Map = new Map([['name', 'Name'], ['key', 'Id'], ['description', 'Description'], ['owner', 'Owner'], ['type', 'Type']]); + sort: SortingModel = new SortingModel(); filterBy: FilterModel = new FilterModel(); private workBasketSummarySubscription: Subscription; @@ -56,15 +54,11 @@ export class WorkbasketListComponent implements OnInit { this.router.navigate([{outlets: { detail: [this.selectedId] } }], { relativeTo: this.route }); } - - changeOrder(sortDirection: string) { - this.sortDirection = (sortDirection === Direction.ASC) ? Direction.ASC : Direction.DESC; - this.performRequest(); - } - - changeSortBy(sortBy: string) { - this.sortBy = sortBy; + + performSorting(sort: SortingModel) { + this.sort = sort; this.performRequest(); + } performFilter(filterBy: FilterModel) { @@ -81,17 +75,12 @@ export class WorkbasketListComponent implements OnInit { } onClear() { - this.newWorkbasket.workbasketId = ""; - this.newWorkbasket.name = ""; - this.newWorkbasket.description = ""; - this.newWorkbasket.owner = ""; - this.newWorkbasket.key = ""; } private performRequest(): void { this.requestInProgress = true; this.workbaskets = undefined; - this.workbasketServiceSubscription.add(this.workbasketService.getWorkBasketsSummary(true, this.sortBy, this.sortDirection, undefined, + this.workbasketServiceSubscription.add(this.workbasketService.getWorkBasketsSummary(true, this.sort.sortBy, this.sort.sortDirection, undefined, this.filterBy.name, this.filterBy.description, undefined, this.filterBy.owner, this.filterBy.type, undefined, this.filterBy.key).subscribe(resultList => { this.workbaskets = resultList; diff --git a/monitor/package-lock.json b/monitor/package-lock.json index 5738cf9ed..948ff41bd 100644 --- a/monitor/package-lock.json +++ b/monitor/package-lock.json @@ -1652,8 +1652,7 @@ "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.7.1.tgz", "integrity": "sha512-pX1oQAY86MiuyZ2hY593Acbl4MLHKrBBhhmZ1YqSadzQbbsBE2rnd6WISoHjIsdf0WDeC0hbePYCz2ZxkV8L+g==", "requires": { - "chartjs-color": "2.2.0", - "moment": "2.18.1" + "chartjs-color": "2.2.0" } }, "chartjs-color": { @@ -7525,9 +7524,10 @@ } }, "moment": { - "version": "2.18.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz", - "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=" + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.21.0.tgz", + "integrity": "sha512-TCZ36BjURTeFTM/CwRcViQlfkMvL1/vFISuNLO5GkcVm1+QHfbSiNqZuWeMFjj1/3+uAjXswgRk30j1kkLYJBQ==", + "dev": true }, "move-concurrently": { "version": "1.0.1", diff --git a/monitor/package.json b/monitor/package.json index 99f2d9100..934686b5b 100644 --- a/monitor/package.json +++ b/monitor/package.json @@ -50,6 +50,7 @@ "protractor": "5.2.2", "ts-node": "4.1.0", "tslint": "5.9.1", - "typescript": "2.5.3" + "typescript": "2.5.3", + "moment": "2.21.0" } }