From 2ce581d29df12e8c7a5deeed155f5a7ca0624a32 Mon Sep 17 00:00:00 2001 From: Joze RIHTARSIC <joze.rihtarsic@ext.ec.europa.eu> Date: Mon, 15 Oct 2018 09:57:45 +0200 Subject: [PATCH] set Edit Service group page for Edit - change expand button with (+), (-) --- smp-angular/src/app/app.component.html | 6 ++-- smp-angular/src/app/app.routes.ts | 2 +- .../search-table/search-table.component.css | 4 +++ .../search-table/search-table.component.html | 11 +++---- .../search-table/search-table.component.ts | 15 ++++++--- .../service-group.component.html | 2 +- .../service-group.component.ts | 1 - .../service-group-ro.model.ts | 8 ----- .../service-group-search-controller.ts | 13 ++------ .../service-group-search-ro.model.ts | 8 +++++ .../service-group-search.component.html | 31 +++++++++++++++---- .../service-group-search.component.ts | 17 +++++----- ...ts => service-metadata-search-ro.model.ts} | 2 +- 13 files changed, 70 insertions(+), 50 deletions(-) delete mode 100644 smp-angular/src/app/service-group-search/service-group-ro.model.ts create mode 100644 smp-angular/src/app/service-group-search/service-group-search-ro.model.ts rename smp-angular/src/app/service-group-search/{service-metadata-ro.model.ts => service-metadata-search-ro.model.ts} (74%) diff --git a/smp-angular/src/app/app.component.html b/smp-angular/src/app/app.component.html index ea081424a..4957b3e62 100644 --- a/smp-angular/src/app/app.component.html +++ b/smp-angular/src/app/app.component.html @@ -9,11 +9,11 @@ </div> <button mat-raised-button class="sideNavButton" [routerLink]="['/']" id="search_id"> - <mat-icon matTooltip="Search participants" matTooltipDisabled="{{fullMenu}}" matTooltipDisabled="right">search</mat-icon> + <mat-icon matTooltip="Search" matTooltipDisabled="{{fullMenu}}" matTooltipDisabled="right">search</mat-icon> <span>Search</span> </button> - <button mat-raised-button class="sideNavButton" [routerLink]="['/']" id="edit_id"> - <mat-icon matTooltip="Search participants" matTooltipDisabled="{{fullMenu}}" matTooltipDisabled="right">edit</mat-icon> + <button mat-raised-button class="sideNavButton" [routerLink]="['/edit']" id="edit_id"> + <mat-icon matTooltip="Edit" matTooltipDisabled="{{fullMenu}}" matTooltipDisabled="right">edit</mat-icon> <span>Edit</span> </button> <button mat-raised-button class="sideNavButton" [routerLink]="['/domain']" id="domain_id"> diff --git a/smp-angular/src/app/app.routes.ts b/smp-angular/src/app/app.routes.ts index 784b9cfe2..6d09b43e6 100644 --- a/smp-angular/src/app/app.routes.ts +++ b/smp-angular/src/app/app.routes.ts @@ -4,13 +4,13 @@ import {ServiceGroupSearchComponent} from './service-group-search/service-group- import {ServiceGroupComponent} from './service-group-edit/service-group.component'; import {DomainComponent} from './domain/domain.component'; import {AuthenticatedGuard} from './guards/authenticated.guard'; -import {AuthorizedAdminGuard} from './guards/authorized-admin.guard'; import {UserComponent} from './user/user.component'; const appRoutes: Routes = [ {path: '', component: ServiceGroupSearchComponent}, {path: 'search', component: ServiceGroupSearchComponent}, + {path: 'edit', component: ServiceGroupComponent}, {path: 'domain', component: DomainComponent}, {path: 'user', component: UserComponent}, diff --git a/smp-angular/src/app/common/search-table/search-table.component.css b/smp-angular/src/app/common/search-table/search-table.component.css index 163929e63..9cdb4f048 100644 --- a/smp-angular/src/app/common/search-table/search-table.component.css +++ b/smp-angular/src/app/common/search-table/search-table.component.css @@ -25,3 +25,7 @@ left: 8px; bottom: 8px; } +.table-button-expand { + padding: 0 !important; + margin: 0 !important; +} diff --git a/smp-angular/src/app/common/search-table/search-table.component.html b/smp-angular/src/app/common/search-table/search-table.component.html index 5dc0ced5a..5f1075801 100644 --- a/smp-angular/src/app/common/search-table/search-table.component.html +++ b/smp-angular/src/app/common/search-table/search-table.component.html @@ -57,7 +57,7 @@ <!-- Row Detail Template --> <ngx-datatable-row-detail id="rowDetail" [rowHeight]="'auto'" #searchTableDetailRow (toggle)="onDetailToggle($event)"> - <ng-template let-row="row" let-expanded="expanded" ngx-datatable-row-detail-template> + <ng-template let-row="row" let-expanded="expanded" let-enabled="enabled" ngx-datatable-row-detail-template> <ng-container [ngTemplateOutlet]="tableRowDetailContainer" [ngTemplateOutletContext]="{row:row}"></ng-container> </ng-template> @@ -81,13 +81,12 @@ </div> </ng-template> - <ng-template #rowExpand let-row="row" let-expanded="expanded" ngx-datatable-cell-template> - <a + <ng-template #rowExpand let-row="row" let-expanded="expanded" let-disabled="disabled" ngx-datatable-cell-template > + <span *ngIf="!!disabled">( )</span> + <a *ngIf="!disabled" class="table-button-expand" href="javascript:void(0)" - [class.datatable-icon-right]="!expanded" - [class.datatable-icon-down]="expanded" title="Expand/Collapse Row" - (click)="toggleExpandRow(row)"> + (click)="toggleExpandRow(row)">{{expanded?'(-)':'(+)'}} </a> </ng-template> </div> diff --git a/smp-angular/src/app/common/search-table/search-table.component.ts b/smp-angular/src/app/common/search-table/search-table.component.ts index c72fa2073..ce94644e2 100644 --- a/smp-angular/src/app/common/search-table/search-table.component.ts +++ b/smp-angular/src/app/common/search-table/search-table.component.ts @@ -41,6 +41,7 @@ export class SearchTableComponent implements OnInit { @Input() filter: any = {}; @Input() showActionButtons: boolean = true; @Input() showSearchPanel: boolean = true; + @Input() showIndexColumn: boolean = false; loading = false; @@ -71,6 +72,7 @@ export class SearchTableComponent implements OnInit { cellTemplate: this.rowIndex, name: 'Index', width: 50, + maxWidth:80, sortable: false }; @@ -78,24 +80,29 @@ export class SearchTableComponent implements OnInit { cellTemplate: this.rowActions, name: 'Actions', width: 80, + maxWidth:80, sortable: false }; this.columnExpandDetails= { cellTemplate: this.rowExpand, name: ' ', - width: 20, + width: 40, + maxWidth:50, sortable: false }; // Add actions to last column if (this.columnPicker) { - this.columnPicker.allColumns.unshift(this.columnIndex); - this.columnPicker.selectedColumns.unshift(this.columnIndex); - + // prepend columns if (!!this.tableRowDetailContainer){ this.columnPicker.allColumns.unshift(this.columnExpandDetails); this.columnPicker.selectedColumns.unshift(this.columnExpandDetails); } + if (this.showIndexColumn){ + this.columnPicker.allColumns.unshift(this.columnIndex); + this.columnPicker.selectedColumns.unshift(this.columnIndex); + } + if (this.showActionButtons) { this.columnPicker.allColumns.push(this.columnActions); this.columnPicker.selectedColumns.push(this.columnActions); diff --git a/smp-angular/src/app/service-group-edit/service-group.component.html b/smp-angular/src/app/service-group-edit/service-group.component.html index f8b1282f6..0bdf69b5b 100644 --- a/smp-angular/src/app/service-group-edit/service-group.component.html +++ b/smp-angular/src/app/service-group-edit/service-group.component.html @@ -2,7 +2,7 @@ page_id='participants_id' title='Participants' [columnPicker]="columnPicker" - url="ui/servicegroup" + url="rest/servicegroup" [additionalToolButtons]="additionalToolButtons" [searchPanel]="searchPanel" [filter]="filter" diff --git a/smp-angular/src/app/service-group-edit/service-group.component.ts b/smp-angular/src/app/service-group-edit/service-group.component.ts index 0edccfd6a..3edbb969c 100644 --- a/smp-angular/src/app/service-group-edit/service-group.component.ts +++ b/smp-angular/src/app/service-group-edit/service-group.component.ts @@ -1,7 +1,6 @@ import {Component, OnInit, TemplateRef, ViewChild} from '@angular/core'; import {ColumnPicker} from '../common/column-picker/column-picker.model'; import {MatDialog, MatDialogRef} from '@angular/material'; -import {ServiceGroupDetailsDialogComponent} from './service-group-details-dialog/service-group-details-dialog.component'; import {AlertService} from '../alert/alert.service'; import {ServiceGroupController} from './service-group-controller'; import {HttpClient} from '@angular/common/http'; diff --git a/smp-angular/src/app/service-group-search/service-group-ro.model.ts b/smp-angular/src/app/service-group-search/service-group-ro.model.ts deleted file mode 100644 index 613bf2b3f..000000000 --- a/smp-angular/src/app/service-group-search/service-group-ro.model.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ServiceMetadataRo } from './service-metadata-ro.model'; -import {SearchTableEntity} from "../common/search-table/search-table-entity.model"; - -export interface ServiceGroupRo extends SearchTableEntity { - participantIdentifier: string; - participantScheme: string; - serviceMetadata: Array<ServiceMetadataRo>; -} diff --git a/smp-angular/src/app/service-group-search/service-group-search-controller.ts b/smp-angular/src/app/service-group-search/service-group-search-controller.ts index bdf2e3da0..28c1698b6 100644 --- a/smp-angular/src/app/service-group-search/service-group-search-controller.ts +++ b/smp-angular/src/app/service-group-search/service-group-search-controller.ts @@ -1,25 +1,17 @@ import {SearchTableController} from '../common/search-table/search-table-controller'; import {MatDialog, MatDialogConfig, MatDialogRef} from '@angular/material'; - -import {UserDetailsDialogComponent} from '../user/user-details-dialog/user-details-dialog.component'; -import {SearchTableEntity} from '../common/search-table/search-table-entity.model'; -import {ServiceGroupRo} from './service-group-ro.model'; -import {SearchTableEntityStatus} from '../common/search-table/search-table-entity-status.model'; +import {ServiceGroupSearchRo} from './service-group-search-ro.model'; export class ServiceGroupSearchController implements SearchTableController { constructor(public dialog: MatDialog) { } public showDetails(row: any) { - } public showExtension(row: any) { - } - - public edit(row: any) { } public delete(row: any) { } @@ -28,8 +20,7 @@ export class ServiceGroupSearchController implements SearchTableController { return null; } - public newRow(): ServiceGroupRo { + public newRow(): ServiceGroupSearchRo { return null; } - } diff --git a/smp-angular/src/app/service-group-search/service-group-search-ro.model.ts b/smp-angular/src/app/service-group-search/service-group-search-ro.model.ts new file mode 100644 index 000000000..f20d01a53 --- /dev/null +++ b/smp-angular/src/app/service-group-search/service-group-search-ro.model.ts @@ -0,0 +1,8 @@ +import { ServiceMetadataSearchRo } from './service-metadata-search-ro.model'; +import {SearchTableEntity} from "../common/search-table/search-table-entity.model"; + +export interface ServiceGroupSearchRo extends SearchTableEntity { + participantIdentifier: string; + participantScheme: string; + serviceMetadata: Array<ServiceMetadataSearchRo>; +} diff --git a/smp-angular/src/app/service-group-search/service-group-search.component.html b/smp-angular/src/app/service-group-search/service-group-search.component.html index 3881811ef..d9f40a701 100644 --- a/smp-angular/src/app/service-group-search/service-group-search.component.html +++ b/smp-angular/src/app/service-group-search/service-group-search.component.html @@ -9,6 +9,7 @@ [searchTableController]="serviceGroupSearchController" [tableRowDetailContainer]="tableRowDetailContainer" [showActionButtons]="false" + [showIndexColumn]="true" > @@ -24,7 +25,7 @@ <ng-template #rowSMPUrlLinkAction let-row="row" let-value="value" ngx-datatable-cell-template> <a target="_blank" - href="{{contextPath}}{{row.participantScheme}}::{{row.participantIdentifier}}" >{{row.participantScheme}}::{{row.participantIdentifier}}</a> + href="{{contextPath}}{{row.participantScheme}}::{{row.participantIdentifier}}" >Open URL</a> </ng-template> @@ -53,21 +54,39 @@ <ng-template #additionalToolButtons> - <button mat-raised-button color="primary" + <!-- button mat-raised-button color="primary" id="extensionbutton_id"> <mat-icon>code</mat-icon> <span>Extension</span> - </button> + </button --> </ng-template> <ng-template #tableRowDetailContainer let-row="row"> <div *ngIf="row.serviceMetadata.length===0" style="padding-left:20px;"> - No service metadata; + No service metadata </div> <div *ngIf="row.serviceMetadata.length !== 0" > - <table style="width: 100%"> + <!-- ngx-datatable + class='material striped' + style="width: 80%" + [loadingIndicator]="loading" + [rows]='row.serviceMetadata' + [columns]='[{name:"Domain", prop:"domainCode", maxWidth: 250 },{name:"Document identifier scheme",prop:"documentIdentifierScheme",maxWidth: 350},{name:"Document identifier", prop:"documentIdentifier"},{name:"OASIS SMP URL",maxWidth: 350}]' + [columnMode]='"force"' + [headerHeight]='50' + [footerHeight]='50' + [rowHeight]='"auto"'> + <ng-template #rowMetadataSMPUrlLinkAction let-row="smdRow" let-value="value" ngx-datatable-cell-template> + + <a target="_blank" + href="{{contextPath}}{{row.participantScheme}}::{{row.participantIdentifier}}/services/{{smdRow.documentIdentifierScheme}}::{{smdRow.documentIdentifier}}" >Open URL</a> + + </ng-template> + </ngx-datatable --> + + <table style="width: 80%"> <tr> <th>Domain</th> <th>Document identifier scheme</th> @@ -80,7 +99,7 @@ <td >{{smd.documentIdentifier}}</td> <td style="width: 50em"> <a target="_blank" - href="{{contextPath}}{{row.participantScheme}}::{{row.participantIdentifier}}/services/{{smd.documentIdentifierScheme}}::{{smd.documentIdentifier}}">Oasis URL</a> + href="{{contextPath}}{{row.participantScheme}}::{{row.participantIdentifier}}/services/{{smd.documentIdentifierScheme}}::{{smd.documentIdentifier}}">OASIS ServiceMetadata URL</a> </td> </tr> </table> diff --git a/smp-angular/src/app/service-group-search/service-group-search.component.ts b/smp-angular/src/app/service-group-search/service-group-search.component.ts index 8481c552e..c27683511 100644 --- a/smp-angular/src/app/service-group-search/service-group-search.component.ts +++ b/smp-angular/src/app/service-group-search/service-group-search.component.ts @@ -7,7 +7,6 @@ import {HttpClient} from '@angular/common/http'; import {Observable} from "rxjs/index"; import {SearchTableResult} from "../common/search-table/search-table-result.model"; import {DomainRo} from "../domain/domain-ro.model"; -import {SearchTableEntityStatus} from "../common/search-table/search-table-entity-status.model"; @Component({ moduleId: module.id, @@ -29,7 +28,6 @@ export class ServiceGroupSearchComponent implements OnInit { constructor(protected http: HttpClient, protected alertService: AlertService, public dialog: MatDialog) { this.domainObserver = this.http.get<SearchTableResult>('rest/domain'); - this.domainObserver.subscribe((domains: SearchTableResult) => { this.domainlist = new Array(domains.serviceEntities.length) .map((v, index) => domains.serviceEntities[index] as DomainRo); @@ -51,34 +49,37 @@ export class ServiceGroupSearchComponent implements OnInit { { name: 'Metadata count', prop: 'serviceMetadata.length', - width: 60 + width: 60, + maxWidth: 80 }, { name: 'Participant scheme', prop: 'participantScheme', + maxWidth: 300 }, { name: 'Participant identifier', prop: 'participantIdentifier', - width: 275 }, { cellTemplate: this.rowSMPUrlLinkAction, - name: 'SMP Url', - width: 80, + name: 'OASIS ServiceGroup URL', + width: 150, + maxWidth: 250, sortable: false }, + /* { cellTemplate: this.rowExtensionAction, name: 'Extension', width: 80, sortable: false - } + }*/ ]; this.columnPicker.selectedColumns = this.columnPicker.allColumns.filter(col => { - return ["Metadata count", "Participant scheme", "Participant identifier","SMP Url", "Extension"].indexOf(col.name) != -1 + return ["Metadata count", "Participant scheme", "Participant identifier","OASIS ServiceGroup URL"].indexOf(col.name) != -1 }); } diff --git a/smp-angular/src/app/service-group-search/service-metadata-ro.model.ts b/smp-angular/src/app/service-group-search/service-metadata-search-ro.model.ts similarity index 74% rename from smp-angular/src/app/service-group-search/service-metadata-ro.model.ts rename to smp-angular/src/app/service-group-search/service-metadata-search-ro.model.ts index 9b97f060a..d6260aa78 100644 --- a/smp-angular/src/app/service-group-search/service-metadata-ro.model.ts +++ b/smp-angular/src/app/service-group-search/service-metadata-search-ro.model.ts @@ -1,6 +1,6 @@ import {SearchTableEntity} from "../common/search-table/search-table-entity.model"; -export interface ServiceMetadataRo extends SearchTableEntity { +export interface ServiceMetadataSearchRo extends SearchTableEntity { documentIdentifier: string; documentIdentifierScheme: string; smlSubdomain: string; -- GitLab