bitwarden-desktop/src/app/send/add-edit.component.html

187 lines
11 KiB
HTML
Raw Normal View History

2021-02-16 17:52:23 +01:00
<form (ngSubmit)="submit()" [appApiAction]="formPromise">
<div class="content">
<div class="inner-content" *ngIf="send">
2021-02-18 19:03:20 +01:00
<div class="box">
<app-callout *ngIf="disableSend">
<span>{{'sendDisabledWarning' | i18n}}</span>
</app-callout>
</div>
2021-02-16 17:52:23 +01:00
<div class="box">
<div class="box-header">
{{title}}
</div>
<div class="box-content">
<div class="box-content-row" appBoxRow>
<label for="name">{{'name' | i18n}}</label>
2021-02-18 19:03:20 +01:00
<input id="name" type="text" name="Name" [(ngModel)]="send.name" appAutofocus [readOnly]="disableSend">
2021-02-10 20:15:10 +01:00
</div>
2021-02-16 17:52:23 +01:00
</div>
</div>
<div class="box">
<div class="box-content">
<ng-container *ngIf="!editMode">
<div class="box-content-row box-content-row-radio">
<label class="radio-header">{{'whatTypeOfSend' | i18n}}</label>
<div class="item" *ngFor="let o of typeOptions">
<input type="radio" class="radio" [(ngModel)]="send.type" name="Type_{{o.value}}"
id="type_{{o.value}}" [value]="o.value" (change)="typeChanged(o)"
2021-02-23 16:40:44 +01:00
[checked]="send.type === o.value" [disabled]="disableSend">
2021-02-22 21:06:18 +01:00
<label class="unstyled" for="type_{{o.value}}">
2021-02-16 17:52:23 +01:00
{{o.name}}
</label>
</div>
2021-02-10 20:15:10 +01:00
</div>
2021-02-16 17:52:23 +01:00
<div *ngIf="send.type === sendType.File" class="box-content-row" appBowRow>
<label for="file">{{'file' | i18n}}</label>
2021-02-23 16:40:44 +01:00
<input type="file" id="file" class="form-control-file" name="file" required [disabled]="disableSend">
2021-02-16 17:52:23 +01:00
<div class="subtext">{{'sendFileDesc' | i18n}} {{'maxFileSize' | i18n}}</div>
</div>
</ng-container>
<ng-container *ngIf="editMode && send.type === sendType.File">
<div class="box-content-row" appBoxRow>
2021-02-10 20:15:10 +01:00
<label for="file">{{'file' | i18n}}</label>
2021-03-09 20:30:30 +01:00
<div class="row-main">{{send.file.fileName}} ({{send.file.sizeName}})</div>
2021-02-10 20:15:10 +01:00
</div>
2021-02-16 17:52:23 +01:00
</ng-container>
<ng-container *ngIf="send.type === sendType.Text">
2021-02-10 20:15:10 +01:00
<div class="box-content-row" appBoxRow *ngIf="send.type === sendType.Text">
<label for="text">{{'text' | i18n}}</label>
2021-02-18 19:03:20 +01:00
<textarea id="text" name="text" [(ngModel)]="send.text.text" rows="6" [readOnly]="disableSend"></textarea>
2021-02-16 17:52:23 +01:00
<div class="subtext">{{'sendTextDesc' | i18n}}</div>
2021-02-10 20:15:10 +01:00
</div>
<div class="box-content-row box-content-row-checkbox" appBoxRow *ngIf="send.type === sendType.Text">
<label for="hideText">{{'textHiddenByDefault' | i18n}}</label>
2021-02-18 19:03:20 +01:00
<input id="hideText" name="hideText" type="checkbox" [(ngModel)]="send.text.hidden" [disabled]="disableSend">
2021-02-10 20:15:10 +01:00
</div>
2021-02-16 17:52:23 +01:00
</ng-container>
</div>
</div>
<div class="box">
<div class="box-header">
{{'options' | i18n}}
2021-02-18 19:03:20 +01:00
<a class="toggle" href="#" appStopClick appBlurClick role="button" (click)="toggleOptions()">
<i class="fa fa-lg" aria-hidden="true" [ngClass]="{'fa-chevron-down': !showOptions, 'fa-chevron-up': showOptions}"></i>
</a>
2021-02-09 21:57:10 +01:00
</div>
2021-02-18 19:03:20 +01:00
</div>
<div [hidden]="!showOptions">
<div class="box">
<div class="box-content">
<div class="box-content-row" appBoxRow *ngIf="!editMode">
<label for="deletionDate">{{'deletionDate' | i18n}}</label>
2021-02-23 16:40:44 +01:00
<select id="deletionDate" name="DeletionDateSelect" [(ngModel)]="deletionDateSelect" required>
2021-02-18 19:03:20 +01:00
<option *ngFor="let o of deletionDateOptions" [ngValue]="o.value">{{o.name}}
</option>
</select>
<div class="subtext">{{'deletionDateDesc' | i18n}}</div>
</div>
<div class="box-content-row" *ngIf="deletionDateSelect === 0 || editMode">
<label *ngIf="editMode" for="deletionDateCustom">{{'deletionDate' | i18n}}</label>
<input id="deletionDateCustom" type="datetime-local" name="deletionDate"
2021-02-23 16:40:44 +01:00
[(ngModel)]="deletionDate" required placeholder="MM/DD/YYYY HH:MM AM/PM">
2021-02-18 19:03:20 +01:00
<div class="subtext">{{'deletionDateDesc' | i18n}}</div>
</div>
<div class="box-content-row" appBoxRow *ngIf="!editMode">
<label for="expirationDate">{{'expirationDate' | i18n}}</label>
<select id="expirationDate" name="expirationDateSelect" [(ngModel)]="expirationDateSelect" required>
<option *ngFor="let o of expirationDateOptions" [ngValue]="o.value">{{o.name}}
</option>
</select>
<div class="subtext">{{'expirationDateDesc' | i18n}}</div>
</div>
<div class="box-content-row" *ngIf="expirationDateSelect === 0 || editMode">
<label *ngIf="editMode" for="expirationDateCustom">{{'expirationDate' | i18n}}</label>
<input id="expirationDateCustom" type="datetime-local" name="expirationDate"
[(ngModel)]="expirationDate" required placeholder="MM/DD/YYYY HH:MM AM/PM" [readOnly]="disableSend">
<div *ngIf="editMode" class="subtext">{{'expirationDateDesc' | i18n}}</div>
</div>
2021-02-10 20:15:10 +01:00
</div>
2021-02-18 19:03:20 +01:00
</div>
<div class="box">
<div class="box-content">
<div class="box-content-row" appBoxRow>
<label for="maxAccessCount">{{'maxAccessCount' | i18n}}</label>
<input id="maxAccessCount" type="number" name="maxAccessCount" [(ngModel)]="send.maxAccessCount" [readOnly]="disableSend">
<div class="subtext">{{'maxAccessCountDesc' | i18n}}</div>
</div>
<div *ngIf="editMode" class="box-content-row" appBoxRow>
<label for="accessCount">{{'currentAccessCount' | i18n}}</label>
<input id="accessCount" type="text" name="accessCount" [(ngModel)]="send.accessCount" readonly>
</div>
2021-02-10 20:15:10 +01:00
</div>
2021-02-18 19:03:20 +01:00
</div>
<div class="box">
<div class="box-content">
<div class="box-content-row box-content-row-flex" appBoxRow>
<div class="row-main">
<label for="password">{{(hasPassword ? 'newPassword' : 'password') | i18n}}</label>
<input id="password" name="password" type="{{showPassword ? 'text' : 'password'}}" [(ngModel)]="password" [readOnly]="disableSend">
<div class="subtext">{{'sendPasswordDesc' | i18n}}</div>
</div>
<div class="action-buttons">
<a class="row-btn" href="#" appStopClick appBlurClick role="button"
appA11yTitle="{{'toggleVisibility' | i18n}}" (click)="togglePasswordVisible()" [disabled]="disableSend">
<i class="fa fa-lg" aria-hidden="true"
[ngClass]="{'fa-eye': !showPassword, 'fa-eye-slash': showPassword}"></i>
</a>
</div>
</div>
2021-02-10 20:15:10 +01:00
</div>
2021-02-09 21:57:10 +01:00
</div>
2021-02-18 19:03:20 +01:00
<div class="box">
<div class="box-header">
{{'notes' | i18n}}
2021-02-10 20:15:10 +01:00
</div>
2021-02-18 19:03:20 +01:00
<div class="box-content">
<div class="box-content-row" appBoxRow>
<textarea id="notes" name="notes" [(ngModel)]="send.notes" rows="6" [readOnly]="disableSend"></textarea>
<small class="subtext">{{'sendNotesDesc' | i18n}}</small>
</div>
2021-02-10 20:15:10 +01:00
</div>
2021-02-09 21:57:10 +01:00
</div>
2021-02-18 19:03:20 +01:00
<div class="box">
<div class="box-content">
<div class="box-content-row box-content-row-checkbox" appBoxRow>
<label for="disabled">{{'disableSend' | i18n}}</label>
<input id="disabled" type="checkbox" name="disabled" [(ngModel)]="send.disabled" [disabled]="disableSend">
</div>
2021-02-16 17:52:23 +01:00
</div>
</div>
</div>
<div class="box">
<div class="box-header">
2021-02-18 19:03:20 +01:00
{{'share' | i18n}}
2021-02-16 17:52:23 +01:00
</div>
<div class="box-content">
2021-02-18 19:03:20 +01:00
<div class="box-content-row" appBoxRow *ngIf="editMode">
<label for="link">{{'sendLinkLabel' | i18n}}</label>
<input id="link" name="link" [ngModel]="link" readonly>
2021-02-10 20:15:10 +01:00
</div>
2021-02-16 17:52:23 +01:00
<div class="box-content-row box-content-row-checkbox" appBoxRow>
2021-02-18 19:03:20 +01:00
<label for="copyLink">{{'copySendLinkOnSave' | i18n}}</label>
2021-02-23 16:40:44 +01:00
<input id="copyLink" name="copyLink" [(ngModel)]="copyLink" type="checkbox" [disabled]="disableSend">
2021-02-10 20:15:10 +01:00
</div>
2021-02-09 21:57:10 +01:00
</div>
</div>
</div>
2021-02-16 17:52:23 +01:00
</div>
<div class="footer">
2021-02-18 19:03:20 +01:00
<button appBlurClick type="submit" class="primary" appA11yTitle="{{'save' | i18n}}" *ngIf="!disableSend">
2021-02-16 17:52:23 +01:00
<i class="fa fa-save fa-lg fa-fw" aria-hidden="true"></i>
</button>
<button appBlurClick type="button" (click)="cancel()">
{{'cancel' | i18n}}
</button>
<div class="right">
2021-02-18 19:03:20 +01:00
<button appBlurClick type="button" (click)="copyLinkToClipboard(link)" appA11yTitle="{{'copySendLinkToClipboard' | i18n}}" *ngIf="editMode">
<i class="fa fa-copy fa-lg fa-fw" aria-hidden="true"></i>
</button>
2021-02-16 17:52:23 +01:00
<button #deleteBtn appBlurClick type="button" (click)="delete()" class="danger"
2021-03-08 21:19:08 +01:00
appA11yTitle="{{'delete' | i18n}}" *ngIf="editMode">
2021-02-16 17:52:23 +01:00
<i class="fa fa-trash-o fa-lg fa-fw" [hidden]="deleteBtn.loading" aria-hidden="true"></i>
<i class="fa fa-spinner fa-spin fa-lg fa-fw" [hidden]="!deleteBtn.loading" aria-hidden="true"></i>
2021-02-10 20:15:10 +01:00
</button>
2021-02-03 22:24:49 +01:00
</div>
2021-02-16 17:52:23 +01:00
</div>
</form>