Error importing data type in the UI
[sdc.git] / catalog-ui / src / app / ng2 / pages / properties-assignment / properties-assignment.page.component.html
1 <!--
2   ~ Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
3   ~
4   ~ Licensed under the Apache License, Version 2.0 (the "License");
5   ~ you may not use this file except in compliance with the License.
6   ~ You may obtain a copy of the License at
7   ~
8   ~      http://www.apache.org/licenses/LICENSE-2.0
9   ~
10   ~ Unless required by applicable law or agreed to in writing, software
11   ~ distributed under the License is distributed on an "AS IS" BASIS,
12   ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   ~ See the License for the specific language governing permissions and
14   ~ limitations under the License.
15   -->
16  
17 <div class="properties-assignment-page">
18     <div class="main-content">
19         <div class="left-column">
20             <div class="main-tabs-section">
21                 <tabs #propertyInputTabs tabStyle="round-tabs" (tabChanged)="tabChanged($event)" [hideIndicationOnTabChange]="true" >
22                     <tab tabTitle="Properties">
23                         <properties-table class="properties-table"
24                             [fePropertiesMap]="instanceFePropertiesMap"
25                             [feInstanceNamesMap]="componentInstanceNamesMap"
26                             [searchTerm]="searchQuery"
27                             [selectedPropertyId]="selectedFlatProperty.path"
28                             [propertyNameSearchText]="searchPropertyName"
29                             [readonly]="isReadonly || resourceIsReadonly"
30                             [isLoading]="loadingProperties || savingChangedData"
31                             [hasDeclareOption]="true"
32                             [showDelete]="!isReadOnly && isSelf()"
33                             (propertyChanged)="dataChanged($event)"
34                             (propertySelected)="propertySelected($event)"
35                             (selectPropertyRow)="selectPropertyRow($event)"
36                             (selectChildProperty)="selectChildProperty($event)"
37                             (updateCheckedPropertyCount)="updateCheckedPropertyCount($event)"
38                             (updateCheckedChildPropertyCount)="updateCheckedChildPropertyCount($event)"
39                             (togggleToscaBtn)="togggleToscaBtn($event)"
40                             (selectInstanceRow)="selectInstanceRow($event)"
41                             (deleteProperty)="deleteProperty($event)">
42                         </properties-table>
43                     </tab>
44                     <tab tabTitle="Inputs" [show]="isSelf()">
45                         <inputs-table class="properties-table"
46                             [fePropertiesMap]="instanceFePropertiesMap"
47                             [readonly]="isReadonly"
48                             [showDelete]="!isReadOnly && isSelf()"
49                             [inputs]="inputs | searchFilter:'name':searchQuery"
50                             [instanceNamesMap]="componentInstanceNamesMap"
51                             [isLoading]="loadingInputs"
52                             [componentType]="component.componentType"
53                             (deleteInput)="deleteInput($event)"
54                             (inputChanged)="dataChanged($event)">
55                         </inputs-table>
56                     </tab>
57                     <tab tabTitle="Policies" [show]="isSelf()">
58                         <policies-table class="properties-table"
59                                       [readonly]="isReadonly"
60                                       [policies]="policies | searchFilter:'name':searchQuery"
61                                       [instanceNamesMap]="componentInstanceNamesMap"
62                                       [isLoading]="loadingPolicies"
63                                       (deletePolicy)="deletePolicy($event)">
64                         </policies-table>
65                     </tab>
66                 </tabs>
67                 <div class="main-tabs-section-buttons">
68                     <button class="tlv-btn outline blue" [disabled]="!hasChangedData || savingChangedData" (click)="reverseChangedData()" data-tests-id="properties-reverse-button">Discard</button>
69                     <button class="tlv-btn blue" [disabled]="!hasChangedData || !isValidChangedData || savingChangedData" (click)="doSaveChangedData()" data-tests-id="properties-save-button">{{savingChangedData ? 'Saving' : 'Save'}}</button>
70                 </div>
71             </div>
72             <div class="header">
73                 <div class="search-filter-container" [class.without-filter]="isInputsTabSelected || isPoliciesTabSelected">
74                     <span *ngIf="displayClearSearch && isPropertiesTabSelected" (click)="clickOnClearSearch()" class="clear-filter" data-tests-id="clear-filter-button">Clear All</span>
75                     <input type="text" class="search-box" placeholder="Search" [(ngModel)]="searchQuery" data-tests-id="search-box"/>
76                     <span class="sprite search-icon" data-tests-id="search-button"></span>
77                     <filter-properties-assignment *ngIf="isPropertiesTabSelected" #advanceSearch class="advance-search" [componentType]="component.componentType" (searchProperties)="searchPropertiesInstances($event)"></filter-properties-assignment>
78                 </div>
79                 <button (click)="selectToscaFunctionAndValues()"
80                         *ngIf="isPropertiesTabSelected && !isSelf()"
81                         [disabled]="(checkedPropertiesCount != 1 || isReadonly || hasChangedData) && !enableToscaFunction"
82                         class="tlv-btn blue declare-button"
83                         data-tests-id="declare-button select-tosca-function">{{'TOSCA_FUNCTION_LABEL' | translate}}</button>
84                 <button class="tlv-btn blue declare-button" [disabled]="!checkedPropertiesCount || isReadonly || hasChangedData" (click)="declareProperties()" data-tests-id="declare-button declare-input">Declare Input</button>
85                 <button class="tlv-btn blue declare-button" [disabled]="!checkedPropertiesCount || isReadonly || hasChangedData || isSelf()" (click)="declarePropertiesToPolicies()" data-tests-id="declare-button declare-policy">Declare Policy</button>
86                 <button class="tlv-btn blue declare-button" [disabled]="!checkedPropertiesCount || checkedChildPropertiesCount || isReadonly || hasChangedData" (click)="declareListProperties()" data-tests-id="declare-but($event)ton declare-list-input">Create List Input</button>
87             </div>
88         </div>
89         <div class="right-column">
90             <div *ngIf="!isReadonly && !isInputsTabSelected" class="add-btn"
91                  (click)="addProperty(component.model)" data-tests-id="properties-add-button" [ngClass]="{'disabled': !showAddProperties()}">Add Property</div>
92             <div *ngIf="!isReadonly && isInputsTabSelected" class="add-btn"
93                  (click)="addInput()" [ngClass]="{'disabled': !isSelf()}">Add Input</div>
94             <tabs #hierarchyNavTabs tabStyle="simple-tabs" class="gray-border">
95                 <tab tabTitle="Composition">
96                     <div class="hierarchy-nav-container">
97                         <loader [display]="loadingInstances" [size]="'medium'" [relative]="true" [loaderDelay]="500"></loader>
98                         <div class="hierarchy-header white-sub-header">
99                             <span tooltip="{{component.name}}">{{component.name}}</span>
100                         </div>
101                         <div *ngIf="!instancesNavigationData || instancesNavigationData.length === 0 || isInputsTabSelected || isPoliciesTabSelected">No data to display</div>
102                         <hierarchy-navigation class="hierarchy-nav"
103                                 (updateSelected)="onInstanceSelectedUpdate($event)"
104                                 [displayData]="isInputsTabSelected || isPoliciesTabSelected ? []: instancesNavigationData"
105                                 [selectedItem]="selectedInstanceData?.uniqueId"
106                                 [displayOptions]="hierarchyInstancesDisplayOptions"></hierarchy-navigation>
107                     </div>
108                 </tab>
109                 <tab tabTitle="Property Structure">
110                     <div class="hierarchy-nav-container">
111                     <div class="hierarchy-header white-sub-header" [class.selected]="selectedFlatProperty.path == propertyStructureHeader">
112                         <span tooltip="{{isPropertiesTabSelected ? propertyStructureHeader : ''}}">{{isPropertiesTabSelected ? (propertyStructureHeader || "No Property Selected") : "No Property Selected"}}</span>
113                     </div>
114                     <div *ngIf="!propertiesNavigationData || propertiesNavigationData.length === 0 || isInputsTabSelected || isPoliciesTabSelected">No data to display</div>
115                     <hierarchy-navigation class="hierarchy-nav"
116                             (updateSelected)="onPropertySelectedUpdate($event)"
117                             [displayData]="isInputsTabSelected || isPoliciesTabSelected ? [] : propertiesNavigationData"
118                             [selectedItem]="selectedFlatProperty.path"
119                             [displayOptions]="hierarchyPropertiesDisplayOptions"></hierarchy-navigation>
120                     </div>
121                 </tab>
122             </tabs>
123         </div>
124     </div>
125 </div>