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>
|