summaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/ng2/components/logic/inputs-table
diff options
context:
space:
mode:
authorAnjali walsatwar <anjali.walsatwar@huawei.com>2018-08-17 11:03:43 +0530
committerIdan Amit <ia096e@intl.att.com>2018-09-12 11:53:10 +0000
commit4ea0c4b514eed8d65849647955bfffa97559194a (patch)
tree9df9c14fb28f672eda4b0b805179fd5269ec4d64 /catalog-ui/src/app/ng2/components/logic/inputs-table
parentc72587ed4cdd2a324ef6e5a1576f9a132ef314a1 (diff)
Add sorting capability to property assignment
Change-Id: I74cbebac6cfe76f4334fcb46813c98686de55822 Issue-ID: SDC-1516 Signed-off-by: Anjali walsatwar <anjali.walsatwar@huawei.com>
Diffstat (limited to 'catalog-ui/src/app/ng2/components/logic/inputs-table')
-rw-r--r--catalog-ui/src/app/ng2/components/logic/inputs-table/inputs-table.component.html36
-rw-r--r--catalog-ui/src/app/ng2/components/logic/inputs-table/inputs-table.component.less27
-rw-r--r--catalog-ui/src/app/ng2/components/logic/inputs-table/inputs-table.component.ts49
3 files changed, 96 insertions, 16 deletions
diff --git a/catalog-ui/src/app/ng2/components/logic/inputs-table/inputs-table.component.html b/catalog-ui/src/app/ng2/components/logic/inputs-table/inputs-table.component.html
index daffc9efea..8a263c000d 100644
--- a/catalog-ui/src/app/ng2/components/logic/inputs-table/inputs-table.component.html
+++ b/catalog-ui/src/app/ng2/components/logic/inputs-table/inputs-table.component.html
@@ -1,9 +1,39 @@
+<!--
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2018 Huawei Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2018 Huawei Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+-->
+
<div class="properties-table">
<loader [display]="isLoading" [size]="'large'" [relative]="true"></loader>
<div class="table-header">
- <div class="table-cell col1">Property Name</div>
- <div class="table-cell col3">From Instance</div>
- <div class="table-cell col2">Type</div>
+ <div class="table-cell col1" (click)="sort('name')">Property Name
+ <span *ngIf="sortBy === 'name'" class="table-header-sort-arrow" [ngClass]="{'down': reverse, 'up':!reverse}">
+ </span>
+ </div>
+ <div class="table-cell col3" (click)="sort('instanceUniqueId')">From Instance
+ <span *ngIf="sortBy === 'instanceUniqueId'" class="table-header-sort-arrow" [ngClass]="{'down': reverse, 'up':!reverse}">
+ </span>
+ </div>
+ <div class="table-cell col2" (click)="sort('type')">Type
+ <span *ngIf="sortBy === 'type'" class="table-header-sort-arrow" [ngClass]="{'down': reverse, 'up':!reverse}">
+ </span>
+ </div>
<div class="table-cell valueCol">Value</div>
</div>
<div class="table-body">
diff --git a/catalog-ui/src/app/ng2/components/logic/inputs-table/inputs-table.component.less b/catalog-ui/src/app/ng2/components/logic/inputs-table/inputs-table.component.less
index 5fbb62f7fb..72e19f3f51 100644
--- a/catalog-ui/src/app/ng2/components/logic/inputs-table/inputs-table.component.less
+++ b/catalog-ui/src/app/ng2/components/logic/inputs-table/inputs-table.component.less
@@ -26,6 +26,23 @@
.table-cell {
font-size: 13px;
+ .table-header-sort-arrow {
+ display: inline-block;
+ background-color: transparent;
+ border: none;
+ color: #AAA;
+ margin: 8px 0 0 5px;
+ &.up {
+ border-left: 5px solid transparent;
+ border-right: 5px solid transparent;
+ border-bottom: 5px solid;
+ }
+ &.down {
+ border-left: 5px solid transparent;
+ border-right: 5px solid transparent;
+ border-top: 5px solid;
+ }
+ }
}
.valueCol {
justify-content: flex-start;
@@ -85,9 +102,9 @@
border-right:#d2d2d2 solid 1px;
}
&.col1 {
- flex: 1 0 120px;
- max-width:120px;
- display: flex;
+ flex: 1 0 130px;
+ max-width:130px;
+
justify-content: space-between;
.property-name {
@@ -102,8 +119,8 @@
}
}
&.col2 {
- flex: 0 0 150px;
- max-width:150px;
+ flex: 0 0 140px;
+ max-width:140px;
}
&.col3 {
diff --git a/catalog-ui/src/app/ng2/components/logic/inputs-table/inputs-table.component.ts b/catalog-ui/src/app/ng2/components/logic/inputs-table/inputs-table.component.ts
index 0c7fc2a24c..d95198f162 100644
--- a/catalog-ui/src/app/ng2/components/logic/inputs-table/inputs-table.component.ts
+++ b/catalog-ui/src/app/ng2/components/logic/inputs-table/inputs-table.component.ts
@@ -3,6 +3,7 @@
* SDC
* ================================================================================
* Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2018 Huawei Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,9 +22,9 @@
/**
* Created by rc2122 on 5/4/2017.
*/
-import {Component, Input, Output, EventEmitter} from "@angular/core";
-import {InputFEModel} from "app/models";
-import {ModalService} from "../../../services/modal.service";
+import { Component, Input, Output, EventEmitter } from "@angular/core";
+import { InputFEModel } from "app/models";
+import { ModalService } from "../../../services/modal.service";
import { InstanceFeDetails } from "app/models/instance-fe-details";
@Component({
@@ -35,16 +36,48 @@ export class InputsTableComponent {
@Input() inputs: Array<InputFEModel>;
@Input() instanceNamesMap: Map<string, InstanceFeDetails>;
- @Input() readonly:boolean;
- @Input() isLoading:boolean;
+ @Input() readonly: boolean;
+ @Input() isLoading: boolean;
@Output() inputChanged: EventEmitter<any> = new EventEmitter<any>();
@Output() deleteInput: EventEmitter<any> = new EventEmitter<any>();
- selectedInputToDelete:InputFEModel;
+ sortBy: String;
+ reverse: boolean;
+ selectedInputToDelete: InputFEModel;
- constructor(private modalService: ModalService){
+ sort = (sortBy) => {
+ this.reverse = (this.sortBy === sortBy) ? !this.reverse : true;
+ let reverse = this.reverse ? 1 : -1;
+ this.sortBy = sortBy;
+ let instanceNameMapTemp = this.instanceNamesMap;
+ let itemIdx1Val = "";
+ let itemIdx2Val = "";
+ this.inputs.sort(function (itemIdx1, itemIdx2) {
+ if (sortBy == 'instanceUniqueId') {
+ itemIdx1Val = (itemIdx1[sortBy] && instanceNameMapTemp[itemIdx1[sortBy]] !== undefined) ? instanceNameMapTemp[itemIdx1[sortBy]].name : "";
+ itemIdx2Val = (itemIdx2[sortBy] && instanceNameMapTemp[itemIdx2[sortBy]] !== undefined) ? instanceNameMapTemp[itemIdx2[sortBy]].name : "";
+ }
+ else {
+ itemIdx1Val = itemIdx1[sortBy];
+ itemIdx2Val = itemIdx2[sortBy];
+ }
+ if (itemIdx1Val < itemIdx2Val) {
+ return -1 * reverse;
+ }
+ else if (itemIdx1Val > itemIdx2Val) {
+ return 1 * reverse;
+ }
+ else {
+ return 0;
+ }
+ });
+ };
+
+
+ constructor(private modalService: ModalService) {
}
+
onInputChanged = (input, event) => {
input.updateDefaultValueObj(event.value, event.isValid);
this.inputChanged.emit(input);
@@ -55,7 +88,7 @@ export class InputsTableComponent {
this.modalService.closeCurrentModal();
};
- openDeleteModal = (input:InputFEModel) => {
+ openDeleteModal = (input: InputFEModel) => {
this.selectedInputToDelete = input;
this.modalService.createActionModal("Delete Input", "Are you sure you want to delete this input?", "Delete", this.onDeleteInput, "Close").instance.open();
}