rsanchez
2017-03-15 68bfeadaca5c3af78a9884614dfec7a188454a2f
#3527 fix - Changes on lsting layout
5 files modified
changed files
securis/src/main/webapp/assets/securis.css patch | view | blame | history
securis/src/main/webapp/src/app/license.list.component.html patch | view | blame | history
securis/src/main/webapp/src/app/license.list.component.ts patch | view | blame | history
securis/src/main/webapp/src/app/pack.list.component.html patch | view | blame | history
securis/src/main/webapp/src/app/pack.list.component.ts patch | view | blame | history
securis/src/main/webapp/assets/securis.css
....@@ -25,11 +25,6 @@
2525 font-size: 0.8em;
2626 }
2727
28
-.td-data-table-row > .td-data-table-cell:first-child,
29
-.td-data-table-row > .td-data-table-column:first-child {
30
- max-width: 30px !important;
31
-}
32
-
3328 md-dialog-actions > .mat-button {
3429 margin-left: 5px !important;
3530 margin-right: 5px !important;
....@@ -41,4 +36,12 @@
4136
4237 input:read-only {
4338 color: rgba(0, 0, 0, 0.50) !important;
39
+}
40
+
41
+.expired {
42
+ color: darkred;
43
+}
44
+
45
+td-paging-bar[hidden] {
46
+ display: none !important;
4447 }
securis/src/main/webapp/src/app/license.list.component.html
....@@ -1,71 +1,73 @@
1
-<md-toolbar role="toolbar" class="mat-secondary">
2
- <span class="push-left-sm">
3
- <button md-icon-button (click)="goBack" color="accent">
4
- <md-icon class="md-36">arrow_back</md-icon>
5
- </button>
6
- <span class="md-title" i18n>Licenses for pack</span>: {{pack?.code}}
7
- </span>
8
- <span class="push-left-sm" *ngIf="filteredItems < data.length">
9
- <span class="md-body-1">{{filteredItems}} of {{data.length}} packs filtered</span>
10
- </span>
11
- <td-search-box #searchBox class="push-right-sm" placeholder="Search here" (searchDebounce)="search($event)" flex>
12
- </td-search-box>
13
- <button md-mini-fab color="accent" (click)="createLicense()">
14
- <md-icon>add</md-icon>
15
- </button>
16
- <md-toolbar-row *ngIf="!!pack">
17
- <md-chip-list flex="80" style="margin-left: 70px;">
18
- <md-chip selected [mdTooltip]="$L.get('field.application_name')" color="primary">{{pack.application_name}} </md-chip>
19
- <md-chip selected [mdTooltip]="$L.get('field.organization_id')" color="accent">{{pack.organization_name}} </md-chip>
20
- <md-chip selected [mdTooltip]="$L.get('field.license_type_id')" color="accent">{{pack.licensetype_code}} </md-chip>
21
- <md-chip selected [mdTooltip]="$L.get('field.num_available')" color="accent">{{pack.num_available}} </md-chip>
22
- </md-chip-list>
23
- </md-toolbar-row>
24
-</md-toolbar>
25
-<md-divider></md-divider>
26
-<div layout="row" layout-align="center center">
27
- <div flex="80" layout="column" layout-align="end center" >
28
-<td-data-table
29
- [data]="filteredData"
30
- [columns]="columns"
31
- [sortable]="true"
32
- [sortBy]="sortBy"
33
- (sortChange)="sort($event)"
34
- style="width: 100%">
35
- <template tdDataTableTemplate="status" let-row="row">
36
- <div layout="row">
37
- <md-chip-list>
38
- <md-icon [style]="'color: ' + licenses.getStatusColor(row.status)">brightness_1</md-icon>&nbsp;<span>{{licenses.getStatusName(row.status)}}</span>
39
- </md-chip-list>
40
- </div>
41
- </template>
42
- <template tdDataTableTemplate="email" let-row="row">
43
- <div layout="row">
44
- <a [href]="'mailto:' + row.email + '?subject=SeCuris'">{{row.email}}</a>
45
- </div>
46
- </template>
47
- <template tdDataTableTemplate="expiration_date" let-row="row">
48
- <div layout="row">
49
- <span [class]="isLicenseExpired(row) ? 'warn' : ''" >{{row.expiration_date | date: 'short'}}</span>
50
- </div>
51
- </template>
52
-
53
- <template tdDataTableTemplate="menu" let-row="row" let-index="index">
54
- <div layout="row" layout-align="end center">
55
- <button md-icon-button (click)="editLicense(row)" color="primary"><md-icon>edit</md-icon></button>
56
- <button md-icon-button [mdMenuTriggerFor]="licenseMenu" aria-label="License menu">
57
- <md-icon>more_vert</md-icon>
1
+<td-layout-card-over cardWidth="80">
2
+ <md-toolbar role="toolbar" class="mat-secondary">
3
+ <span class="push-left-sm">
4
+ <button md-icon-button (click)="goBack()" color="accent">
5
+ <md-icon>arrow_back</md-icon>
586 </button>
59
- <md-menu #licenseMenu="mdMenu">
60
- <button md-menu-item *ngFor="let action of license_menu_options" (click)="licenseAction(action.command, row)" [disabled]="!isActionAvailable(row)">
61
- <md-icon *ngIf="!!action.icon">{{ action.icon }}</md-icon> {{ action.name }}
7
+ <span class="md-title" i18n>Licenses for pack</span>: {{pack?.code}}
8
+ </span>
9
+ <span class="push-left-sm" *ngIf="filteredItems < data.length">
10
+ <span class="md-body-1">{{filteredItems}} of {{data.length}} packs filtered</span>
11
+ </span>
12
+ <td-search-box #searchBox class="push-right-sm" placeholder="Search here" (searchDebounce)="search($event)" flex>
13
+ </td-search-box>
14
+ <button md-mini-fab color="accent" (click)="createLicense()">
15
+ <md-icon>add</md-icon>
16
+ </button>
17
+ <md-toolbar-row *ngIf="!!pack">
18
+ <md-chip-list flex="80" style="margin-left: 70px;">
19
+ <md-chip selected [mdTooltip]="$L.get('field.application_name')" color="primary">{{pack.application_name}} </md-chip>
20
+ <md-chip selected [mdTooltip]="$L.get('field.organization_id')" color="accent">{{pack.organization_name}} </md-chip>
21
+ <md-chip selected [mdTooltip]="$L.get('field.license_type_id')" color="accent">{{pack.licensetype_code}} </md-chip>
22
+ <md-chip selected [mdTooltip]="$L.get('field.num_available')" color="accent">{{pack.num_available}} </md-chip>
23
+ </md-chip-list>
24
+ </md-toolbar-row>
25
+ </md-toolbar>
26
+ <div flex layout="column" layout-align="center end" >
27
+ <td-data-table
28
+ [data]="filteredData"
29
+ [columns]="columns"
30
+ [sortable]="true"
31
+ [sortBy]="sortBy"
32
+ (sortChange)="sort($event)"
33
+ style="width: 100%">
34
+ <template tdDataTableTemplate="code" let-row="row" let-value="value">
35
+ <div layout="row" layout-align="start center">
36
+ <span style="white-space: nowrap">{{value}}</span>
37
+ </div>
38
+ </template>
39
+ <template tdDataTableTemplate="status" let-row="row">
40
+ <div layout="row" layout-align="start center">
41
+ <md-icon [style.color]="licenses.getStatusColor(row.status)">brightness_1</md-icon>&nbsp;<span>{{licenses.getStatusName(row.status)}}</span>
42
+ </div>
43
+ </template>
44
+ <template tdDataTableTemplate="email" let-row="row">
45
+ <div layout="row">
46
+ <a md-button color="primary" [href]="'mailto:' + row.email + '?subject=SeCuris'">{{row.email}}</a>
47
+ </div>
48
+ </template>
49
+ <template tdDataTableTemplate="expiration_date" let-row="row">
50
+ <div layout="row">
51
+ <span [class.expired]="isLicenseExpired(row)" >{{row.expiration_date | date: 'mediumDate'}}</span>
52
+ </div>
53
+ </template>
54
+
55
+ <template tdDataTableTemplate="menu" let-row="row" let-index="index">
56
+ <div layout="row" layout-align="end center">
57
+ <button md-icon-button (click)="editLicense(row)" color="primary"><md-icon>edit</md-icon></button>
58
+ <button md-icon-button [mdMenuTriggerFor]="licenseMenu" aria-label="License menu">
59
+ <md-icon>more_vert</md-icon>
6260 </button>
63
- </md-menu>
64
- </div>
65
- </template>
66
-</td-data-table>
67
-<td-paging-bar #pagingBar [pageSizes]="[10, 20, 40]" [total]="filteredTotal" (change)="page($event)" align="end">
68
- <span td-paging-bar-label hide-xs>Rows per page:</span> {{pagingBar.range}} <span hide-xs>of {{pagingBar.total}}</span>
69
-</td-paging-bar>
70
-</div>
71
-</div>
61
+ <md-menu #licenseMenu="mdMenu">
62
+ <button md-menu-item *ngFor="let action of license_menu_options" (click)="licenseAction(action.command, row)" [disabled]="!isActionAvailable(row)">
63
+ <md-icon *ngIf="!!action.icon">{{ action.icon }}</md-icon> {{ action.name }}
64
+ </button>
65
+ </md-menu>
66
+ </div>
67
+ </template>
68
+ </td-data-table>
69
+ <td-paging-bar #pagingBar [pageSizes]="[10, 20, 40]" [total]="filteredTotal" (change)="page($event)" [hidden]="pagingBar.total <= pagingBar.pageSize" >
70
+ <span i18n td-paging-bar-label hide-xs>Rows per page:</span> {{pagingBar.range}} <span hide-xs>of {{pagingBar.total}}</span>
71
+ </td-paging-bar>
72
+ </div>
73
+</td-layout-card-over>
securis/src/main/webapp/src/app/license.list.component.ts
....@@ -1,12 +1,13 @@
11 import { LocaleService } from './common/i18n';
22 import { ActivatedRoute, Router } from '@angular/router';
33 import { MdDialog, MdDialogConfig } from '@angular/material';
4
-import { TdDataTableService, TdDataTableSortingOrder, ITdDataTableSortChangeEvent, ITdDataTableColumn } from '@covalent/core';
4
+import { TdDataTableService, TdPagingBarComponent, TdDataTableSortingOrder, ITdDataTableSortChangeEvent, ITdDataTableColumn } from '@covalent/core';
55 import { IPageChangeEvent } from '@covalent/core';
6
-import { Component, AfterViewInit } from '@angular/core';
6
+import { Component, AfterViewInit, ViewChild } from '@angular/core';
77 import { TdMediaService } from '@covalent/core';
88 import { LicensesService } from './resources/licenses';
99 import { PacksService } from './resources/packs';
10
+import { Location } from '@angular/common';
1011
1112 import { LicenseFormComponent } from './forms/license.form.component';
1213
....@@ -37,6 +38,8 @@
3738 })
3839 export class LicenseListComponent implements AfterViewInit {
3940 data: any[] = [];
41
+ @ViewChild('pagingBar') pagingBar : TdPagingBarComponent ;
42
+
4043 pack: any = null;
4144 columns: ITdDataTableColumn[] = [
4245 { name: 'code', label: 'Code', tooltip: 'License code' },
....@@ -79,6 +82,7 @@
7982 private media: TdMediaService,
8083 private $L: LocaleService,
8184 private router: Router,
85
+ private location: Location,
8286 private route: ActivatedRoute,
8387 private dialog: MdDialog,
8488 private licenseForm: LicenseFormComponent,
....@@ -105,6 +109,10 @@
105109 });
106110 }
107111
112
+ goBack() : void {
113
+ this.location.back();
114
+ }
115
+
108116 isLicenseExpired(lic: any): boolean {
109117 return lic.expiration_date < (new Date().getTime());
110118 }
securis/src/main/webapp/src/app/pack.list.component.html
....@@ -1,57 +1,56 @@
1
-<md-toolbar role="toolbar" class="mat-secondary">
2
- <span class="push-left-sm">
3
- <span class="md-title" i18n>License Packs</span>
4
- </span>
5
- <span class="push-left-sm" *ngIf="filteredItems < data.length">
6
- <span class="md-body-1">{{filteredItems}} of {{data.length}} packs filtered</span>
7
- </span>
8
- <td-search-box #searchBox class="push-right-sm" placeholder="Search here" (searchDebounce)="search($event)" flex>
9
- </td-search-box>
10
- <button md-mini-fab color="accent" (click)="createPack()">
11
- <md-icon>add</md-icon>
12
- </button>
13
-</md-toolbar>
14
-<md-divider></md-divider>
15
-<div layout="row" layout-align="center center">
16
- <div flex="80" layout="column" layout-align="end center" >
17
-<td-data-table
18
- [data]="filteredData"
19
- [columns]="columns"
20
- [sortable]="true"
21
- [sortBy]="sortBy"
22
- (sortChange)="sort($event)"
23
- style="width: 100%">
24
- <template tdDataTableTemplate="used_licenses" let-row="row">
25
- <div layout="row">
26
- <md-chip-list flex>
27
- <md-chip selected [mdTooltip]="$L.get('field.num_licenses')" color="secondary" >{{row['num_licenses']}}</md-chip>
28
- <md-chip selected [mdTooltip]="$L.get('field.num_available')" [color]="row['num_available'] > 0 ? 'primary': 'warn'">{{row['num_available']}}</md-chip>
29
- </md-chip-list>
30
- </div>
31
- </template>
32
- <template tdDataTableTemplate="code" let-row="row" let-value="value">
33
- <div layout="row" layout-align="start center">
34
- <span style="white-space: nowrap">{{value}}</span>
35
- </div>
36
- </template>
37
- <template tdDataTableTemplate="menu" let-row="row" let-index="index">
38
- <div layout="row" layout-align="end center">
39
- <button md-icon-button (click)="editPack(row)" color="primary"><md-icon>edit</md-icon></button>
40
- <button md-icon-button [mdMenuTriggerFor]="packMenu" aria-label="Pack menu">
41
- <md-icon>more_vert</md-icon>
1
+<td-layout-card-over cardWidth="90">
2
+ <md-toolbar role="toolbar" class="mat-secondary">
3
+ <span class="push-left-sm">
4
+ <span class="md-title" i18n>Packs</span>
5
+ </span>
6
+ <span class="push-left-sm" *ngIf="filteredItems < data.length">
7
+ <span class="md-body-1">{{filteredItems}} of {{data.length}} packs filtered</span>
8
+ </span>
9
+ <td-search-box #searchBox class="push-right-sm" placeholder="Search here" (searchDebounce)="search($event)" flex>
10
+ </td-search-box>
11
+ <button md-mini-fab color="accent" (click)="createPack()">
12
+ <md-icon>add</md-icon>
4213 </button>
43
-
44
- <md-menu #packMenu="mdMenu">
45
- <button md-menu-item *ngFor="let action of pack_menu_options" (click)="packAction(action.command, row)" [disabled]="!isActionAvailable(row)">
46
- <md-icon *ngIf="!!action.icon">{{ action.icon }}</md-icon> {{ action.name }}
14
+ </md-toolbar>
15
+ <div flex="84" layout-align="center end" layout="column">
16
+ <td-data-table
17
+ [data]="filteredData"
18
+ [columns]="columns"
19
+ [sortable]="true"
20
+ [sortBy]="sortBy"
21
+ (sortChange)="sort($event)"
22
+ style="width: 100%">
23
+ <template tdDataTableTemplate="used_licenses" let-row="row">
24
+ <div layout="row">
25
+ <md-chip-list flex>
26
+ <md-chip selected [mdTooltip]="$L.get('field.num_licenses')" color="secondary" >{{row['num_licenses']}}</md-chip>
27
+ <md-chip selected [mdTooltip]="$L.get('field.num_available')" [color]="row['num_available'] > 0 ? 'primary': 'warn'">{{row['num_available']}}</md-chip>
28
+ </md-chip-list>
29
+ </div>
30
+ </template>
31
+ <template tdDataTableTemplate="code" let-row="row" let-value="value">
32
+ <div layout="row" layout-align="start center">
33
+ <span style="white-space: nowrap">{{value}}</span>
34
+ </div>
35
+ </template>
36
+ <template tdDataTableTemplate="menu" let-row="row" let-index="index">
37
+ <div layout="row" layout-align="end center">
38
+ <button md-icon-button (click)="editPack(row)" color="primary"><md-icon>edit</md-icon></button>
39
+ <button md-icon-button [mdMenuTriggerFor]="packMenu" aria-label="Pack menu">
40
+ <md-icon>more_vert</md-icon>
4741 </button>
48
- </md-menu>
49
- <button md-icon-button (click)="showLicenses(row)" color="accent"><md-icon>arrow_forward</md-icon></button>
50
- </div>
51
- </template>
52
-</td-data-table>
53
-<td-paging-bar #pagingBar [pageSizes]="[10, 20, 40]" [total]="filteredTotal" (change)="page($event)" align="end">
54
- <span td-paging-bar-label hide-xs>Rows per page:</span> {{pagingBar.range}} <span hide-xs>of {{pagingBar.total}}</span>
55
-</td-paging-bar>
56
-</div>
57
-</div>
42
+
43
+ <md-menu #packMenu="mdMenu">
44
+ <button md-menu-item *ngFor="let action of pack_menu_options" (click)="packAction(action.command, row)" [disabled]="!isActionAvailable(row)">
45
+ <md-icon *ngIf="!!action.icon">{{ action.icon }}</md-icon> {{ action.name }}
46
+ </button>
47
+ </md-menu>
48
+ <button md-icon-button (click)="showLicenses(row)" color="accent"><md-icon>arrow_forward</md-icon></button>
49
+ </div>
50
+ </template>
51
+ </td-data-table>
52
+ <td-paging-bar #pagingBar [pageSizes]="[10, 20, 40]" [total]="filteredTotal" (change)="page($event)" [hidden]="pagingBar.total <= pagingBar.pageSize">
53
+ <span td-paging-bar-label hide-xs>Rows per page:</span> {{pagingBar.range}} <span hide-xs>of {{pagingBar.total}}</span>
54
+ </td-paging-bar>
55
+ </div>
56
+</td-layout-card-over>
securis/src/main/webapp/src/app/pack.list.component.ts
....@@ -1,8 +1,14 @@
11 import { Router, ActivatedRoute } from '@angular/router';
22 import { MdDialog, MdDialogConfig } from '@angular/material';
3
-import { TdDataTableService, TdDataTableSortingOrder, ITdDataTableSortChangeEvent, ITdDataTableColumn } from '@covalent/core';
3
+import {
4
+ ITdDataTableColumn,
5
+ ITdDataTableSortChangeEvent,
6
+ TdDataTableService,
7
+ TdDataTableSortingOrder,
8
+ TdPagingBarComponent
9
+} from '@covalent/core';
410 import { IPageChangeEvent } from '@covalent/core';
5
-import { Component, AfterViewInit } from '@angular/core';
11
+import { Component, ViewChild, AfterViewInit } from '@angular/core';
612 import { TdMediaService } from '@covalent/core';
713 import { PacksService } from './resources/packs';
814 import { PackFormComponent } from './forms/pack.form.component';
....@@ -49,6 +55,9 @@
4955 })
5056 export class PackListComponent implements AfterViewInit {
5157 data: any[] = [];
58
+
59
+ @ViewChild('pagingBar') pagingBar : TdPagingBarComponent ;
60
+
5261 columns: ITdDataTableColumn[] = [
5362 { name: 'code', label: 'Code', tooltip: 'License pack code' },
5463 { name: 'application_name', label: 'App name' },
....@@ -133,6 +142,7 @@
133142 this.sortBy = sortEvent.name === 'used_licenses' ? 'num_available' : sortEvent.name;
134143 this.sortOrder = sortEvent.order;
135144 this.filter();
145
+ console.log(this.pagingBar);
136146 }
137147
138148 search(searchTerm: string): void {