blob: 2293f217811eb05490f748a4be32d0e3674770f5 [file] [log] [blame]
<!--
~ 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.
-->
<zeppelin-page-header title="Credentials" [extra]="headerExtra" [description]="credentialsDescription">
<ng-template #credentialsDescription>
Manage your credentials. You can add new credential information.
<a [href]="docsLink" target="_blank">
<i nz-icon nz-tooltip nzTooltipTitle="Learn more" nzType="question-circle" nzTheme="outline"></i>
</a>
</ng-template>
<ng-template #headerExtra>
<button class="repository-trigger" nz-button [nzType]="showAdd ? 'primary' : 'default'" (click)="triggerAdd()">
<i nz-icon nzType="plus" nzTheme="outline"></i>
Add
</button>
</ng-template>
<div [@collapseMotion]="showAdd ? 'expanded' : 'collapsed'">
<nz-divider nzType="horizontal"></nz-divider>
<h2>Add new credential</h2>
<form nz-form nzLayout="vertical" [formGroup]="addForm" (ngSubmit)="submitForm()">
<nz-form-item>
<nz-form-label>Entity</nz-form-label>
<nz-form-control nzErrorTip="Please input entity!">
<input
[nzAutocomplete]="auto"
(input)="onEntityInput($event)"
formControlName="entity"
nz-input
placeholder="Interpreter Name"
/>
<nz-autocomplete nzBackfill #auto>
<nz-auto-option *ngFor="let option of interpreterFilteredNames" [nzValue]="option">
{{ option }}
</nz-auto-option>
</nz-autocomplete>
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label>Username</nz-form-label>
<nz-form-control nzErrorTip="Please input username!">
<input formControlName="username" nz-input placeholder="Username" />
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label>Password</nz-form-label>
<nz-form-control nzErrorTip="Please input Password!">
<input formControlName="password" nz-input type="password" placeholder="Password" />
</nz-form-control>
</nz-form-item>
<nz-form-item class="new-actions">
<nz-form-control>
<button nz-button nzType="primary" [disabled]="!addForm.valid || adding">Save</button>
<button nz-button type="button" (click)="cancelAdd()">Cancel</button>
</nz-form-control>
</nz-form-item>
</form>
</div>
</zeppelin-page-header>
<div class="content">
<nz-table nzSize="small" [nzData]="credentialControls" [nzFrontPagination]="false" [nzShowPagination]="false">
<thead>
<tr>
<th>Entity</th>
<th>Username</th>
<th>Password</th>
<th nzWidth="225px" class="actions-head">Actions</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let control of credentialControls">
<ng-container *ngIf="control.get('entity')?.value as entity" [formGroup]="control">
<td>{{ entity }}</td>
<ng-container *ngIf="isEditing(control); else credentialDisplay">
<td><input nz-input formControlName="username" /></td>
<td><input nz-input type="password" formControlName="password" /></td>
<td class="credential-actions">
<button nz-button nzType="primary" (click)="saveCredential(control)">
<i nz-icon nzType="save" nzTheme="outline"></i>
Save
</button>
<button nz-button (click)="unsetEditable(control)">
<i nz-icon nzType="close" nzTheme="outline"></i>
Cancel
</button>
</td>
</ng-container>
<ng-template #credentialDisplay>
<td>{{ control.get('username')?.value }}</td>
<td><strong>**********</strong></td>
<td class="credential-actions">
<button nz-button (click)="setEditable(control)">
<i nz-icon nzType="edit" nzTheme="outline"></i>
Edit
</button>
<button
nz-button
nz-popconfirm
nzPopconfirmTitle="Do you want to delete this credential information?"
(nzOnConfirm)="removeCredential(control)"
>
<i nz-icon nzType="delete" nzTheme="outline"></i>
Remove
</button>
</td>
</ng-template>
</ng-container>
</tr>
</tbody>
</nz-table>
</div>