aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/ng2/pages/interface-definition/interface-definition.page.component.html
blob: f3043ffebd8ed11b5bc0695780216ffde13899ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<!--
 * ============LICENSE_START=======================================================
 * SDC
 * ================================================================================
 * Copyright (C) 2022 Nordix Foundation. 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="interface-definition">
  <loader [display]="isLoading" [size]="'large'" [relative]="true"></loader>
  <div *ngIf="isInterfaceListEmpty()">
    <div class="interface-empty-msg">
      <div>{{ 'INTERFACE_DATA_EMPTY' | translate }}</div>
    </div>
  </div>
  <div
      class="top-add-btn add-btn"
      [ngClass]="{'disabled': readonly}"
      data-tests-id="add-operation"
      (click)="onSelectInterfaceOperation(undefined, undefined)">
    {{ 'INTERFACE_ADD_OPERATION' | translate }}
  </div>
  <div class="operation-list">
    <div *ngIf="!isInterfaceListEmpty()">
      <div class="expand-collapse" *ngIf="isOperationListEmpty()">
        <a class="link"
           [ngClass]="{'disabled': isAllExpanded()}"
           (click)="collapseAll(false)">{{ 'INTERFACE_EXPAND_ALL' | translate }}
        </a> |
        <a class="link"
           [ngClass]="{'disabled': isAllCollapsed()}"
           (click)="collapseAll()">
          {{ 'INTERFACE_COLLAPSE_ALL' | translate }}
        </a>
      </div>

      <div class="interface-row" *ngFor="let interface1 of interfaces">
        <div class="interface-accordion" (click)="interface1.toggleCollapse()">
          <span
              class="chevron-container"
              [ngClass]="{'isCollapsed': interface1.isCollapsed}"
              *ngIf="isOperationListEmpty()">
              <svg-icon
                  name="caret1-down-o"
                  mode="primary"
                  size="small">
              </svg-icon>
          </span>
          <span class="interface-name">{{interface1.type}}</span>
        </div>

        <div class="generic-table" *ngIf="!interface1.isCollapsed && isOperationListEmpty()">
          <div class="header-row table-row">
            <span
                class="cell header-cell field-name header-name">
                {{ 'INTERFACE_HEADER_NAME' | translate }}
            </span>
            <span class="cell header-cell field-description header-description">
              {{ 'INTERFACE_HEADER_DESCRIPTION' | translate }}
            </span>
          </div>
          <div class="data-row" *ngFor="let operation of interface1.operations" (click)="onSelectInterfaceOperation(interface1, operation)">
            <span class="cell field-name">{{operation.name}}</span>
            <span class="cell field-description" [ngClass]="{'collapsed': operation.isCollapsed}">
                {{operation.getDescriptionEllipsis()}}
              <span class="more-or-less link" (click)="operation.toggleCollapsed($event)">
                  {{!operation.isEllipsis ? '' : operation.isCollapsed ? 'More' : 'Less'}}
                </span>
              </span>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>