diff options
author | talio <tali.orenbach@amdocs.com> | 2019-04-14 15:37:20 +0300 |
---|---|---|
committer | Avi Gaffa <avi.gaffa@amdocs.com> | 2019-04-14 16:07:26 +0000 |
commit | fe4afd47955705bb377583649cb53e2cf4508493 (patch) | |
tree | 335f4555155fbeb1085e7ab554ad8406a3ad68be /catalog-ui/src/app/ng2/components/logic/policies-table/policies-table.component.ts | |
parent | b08309847c24bd3c060839a335a20cb3f750ed30 (diff) |
Declare properties as policies
Change-Id: I54dc7b444e08117097c314cf5f51bd356ac5287d
Issue-ID: SDC-2240
Signed-off-by: talio <tali.orenbach@amdocs.com>
Diffstat (limited to 'catalog-ui/src/app/ng2/components/logic/policies-table/policies-table.component.ts')
-rw-r--r-- | catalog-ui/src/app/ng2/components/logic/policies-table/policies-table.component.ts | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/catalog-ui/src/app/ng2/components/logic/policies-table/policies-table.component.ts b/catalog-ui/src/app/ng2/components/logic/policies-table/policies-table.component.ts new file mode 100644 index 0000000000..aa5f2420b3 --- /dev/null +++ b/catalog-ui/src/app/ng2/components/logic/policies-table/policies-table.component.ts @@ -0,0 +1,100 @@ +/*! + * Copyright © 2016-2018 European Support Limited + * + * 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. + */ + + +import { Component, Input, Output, EventEmitter } from "@angular/core"; +import { PolicyInstance } from "app/models"; +import { ModalService } from "../../../services/modal.service"; +import { InstanceFeDetails } from "app/models/instance-fe-details"; +import {TranslateService} from 'app/ng2/shared/translator/translate.service'; + +@Component({ + selector: 'policies-table', + templateUrl: 'policies-table.component.html', + styleUrls: ['policies-table.component.less'], +}) +export class PoliciesTableComponent { + + @Input() policies: Array<PolicyInstance>; + @Input() instanceNamesMap: Map<string, InstanceFeDetails>; + @Input() readonly: boolean; + @Input() isLoading: boolean; + @Output() deletePolicy: EventEmitter<any> = new EventEmitter<any>(); + + sortBy: String; + reverse: boolean; + selectedPolicyToDelete: PolicyInstance; + deleteMsgTitle: string; + deleteMsgBodyTxt: string; + modalDeleteBtn: string; + modalCancelBtn: string; + + 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.policies.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, private translateService: TranslateService) { + } + + ngOnInit() { + this.translateService.languageChangedObservable.subscribe(lang => { + this.deleteMsgTitle = this.translateService.translate("DELETE_POLICY_TITLE"); + this.modalDeleteBtn = this.translateService.translate("MODAL_DELETE"); + this.modalCancelBtn = this.translateService.translate("MODAL_CANCEL"); + + }); + } + + onDeletePolicy = () => { + this.deletePolicy.emit(this.selectedPolicyToDelete); + this.modalService.closeCurrentModal(); + }; + + openDeleteModal = (policy: PolicyInstance) => { + this.selectedPolicyToDelete = policy; + this.translateService.languageChangedObservable.subscribe(lang => { + this.deleteMsgBodyTxt = this.translateService.translate("DELETE_POLICY_MSG", {policyName: policy.name}); + this.modalService.createActionModal(this.deleteMsgTitle, this.deleteMsgBodyTxt, this.modalDeleteBtn, this.onDeletePolicy, this.modalCancelBtn).instance.open(); + }); + } +} + + |