mirror of
https://github.com/bitwarden/browser.git
synced 2024-11-28 12:45:45 +01:00
commit
82cb6fd020
@ -1,97 +1,106 @@
|
|||||||
<div class="content" *ngIf="send">
|
<ng-container *ngIf="send">
|
||||||
<div class="inner-content">
|
<form (ngSubmit)="submit()" [appApiAction]="formPromise">
|
||||||
<div class="box">
|
<div class="content" *ngIf="send">
|
||||||
<div class="box-header">
|
<div class="inner-content">
|
||||||
{{'editSend' | i18n}}
|
<div class="box">
|
||||||
</div>
|
<div class="box-header">
|
||||||
<div class="box-content">
|
{{'editSend' | i18n}}
|
||||||
<div class="box-content-row" appBoxRow>
|
</div>
|
||||||
<label for="name">{{'name' | i18n}}</label>
|
<div class="box-content">
|
||||||
<input id="name" type="text" name="Name" [(ngModel)]="send.name" appAutofocus>
|
<div class="box-content-row" appBoxRow>
|
||||||
|
<label for="name">{{'name' | i18n}}</label>
|
||||||
|
<input id="name" type="text" name="Name" [(ngModel)]="send.name" appAutofocus>
|
||||||
|
</div>
|
||||||
|
<div class="box-content-row" appBoxRow *ngIf="send.type === sendType.File">
|
||||||
|
<label for="file">{{'file' | i18n}}</label>
|
||||||
|
<input id="file" type="text" name="file" [(ngModel)]="send.file.fileName" readonly>
|
||||||
|
</div>
|
||||||
|
<div class="box-content-row" appBoxRow *ngIf="send.type === sendType.Text">
|
||||||
|
<label for="text">{{'text' | i18n}}</label>
|
||||||
|
<input id="text" type="text" name="text" [(ngModel)]="send.text.text">
|
||||||
|
</div>
|
||||||
|
<div class="box-content-row box-content-row-checkbox" appBoxRow *ngIf="send.type === sendType.Text">
|
||||||
|
<label for="hideText">{{'textHiddenByDefault' | i18n}}</label>
|
||||||
|
<input id="hideText" name="hideText" type="checkbox" [(ngModel)]="send.text.hidden">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box-content-row" appBoxRow *ngIf="send.type === sendType.File">
|
<div class="box">
|
||||||
<label for="file">{{'file' | i18n}}</label>
|
<div class="box-header">
|
||||||
<input id="file" type="text" name="file" [(ngModel)]="send.file.fileName" readonly>
|
{{'options' | i18n}}
|
||||||
|
</div>
|
||||||
|
<div class="box-content">
|
||||||
|
<div class="box-content-row" appBoxRow *ngIf="editMode">
|
||||||
|
<label for="deletionDate">{{'deletionDate' | i18n}}</label>
|
||||||
|
<input id="deletionDate" type="datetime-local" name="deletionDate"
|
||||||
|
[(ngModel)]="deletionDate" required placeholder="MM/DD/YYYY HH:MM AM/PM">
|
||||||
|
<div class="subtext">{{'deletionDateDesc' | i18n}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="box-content-row" appBoxRow>
|
||||||
|
<label for="expirationDate">{{'expirationDate' | i18n}}</label>
|
||||||
|
<input id="expirationDate" type="datetime-local" name="expirationDate" [(ngModel)]="expirationDate">
|
||||||
|
<div class="subtext">{{'expirationDateDesc' | i18n}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box-content-row" appBoxRow *ngIf="send.type === sendType.Text">
|
<div class="box">
|
||||||
<label for="text">{{'text' | i18n}}</label>
|
<div class="box-content">
|
||||||
<input id="text" type="text" name="text" [(ngModel)]="send.text.text">
|
<div class="box-content-row" appBoxRow>
|
||||||
|
<label for="maxAccessCount">{{'maxAccessCount' | i18n}}</label>
|
||||||
|
<input id="maxAccessCount" type="number" name="maxAccessCount" [(ngModel)]="send.maxAccessCount">
|
||||||
|
<div class="subtext">{{'maxAccessCountDesc' | i18n}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="box-content-row" appBoxRow>
|
||||||
|
<label for="accessCount">{{'currentAccessCount' | i18n}}</label>
|
||||||
|
<input id="accessCount" type="text" name="accessCount" [(ngModel)]="send.accessCount" readonly>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box-content-row box-content-row-checkbox" appBoxRow *ngIf="send.type === sendType.Text">
|
<div class="box">
|
||||||
<label for="hideText">{{'textHiddenByDefault' | i18n}}</label>
|
<div class="box-content">
|
||||||
<input id="hideText" name="hideText" type="checkbox" [(ngModel)]="send.text.hidden">
|
<div class="box-content-row" appBoxRow>
|
||||||
|
<label for="password">{{(hasPassword ? 'newPassword' : 'password') | i18n}}</label>
|
||||||
|
<input id="password" type="password" name="password" [(ngModel)]="password">
|
||||||
|
<div class="subtext">{{'sendPasswordDesc' | i18n}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="box">
|
||||||
|
<div class="box-header">
|
||||||
|
{{'notes' | i18n}}
|
||||||
|
</div>
|
||||||
|
<div class="box-content">
|
||||||
|
<div class="box-content-row" appBoxRow>
|
||||||
|
<textarea id="notes" name="notes" [(ngModel)]="send.notes" rows="6"></textarea>
|
||||||
|
<small class="subtext">{{'sendNotesDesc' | i18n}}</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<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">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="box">
|
||||||
|
<div class="box-header">
|
||||||
|
{{'share' | i18n}}
|
||||||
|
</div>
|
||||||
|
<div class="box-content">
|
||||||
|
<div class="box-content-row" appBoxRow>
|
||||||
|
<label for="url">{{'sendLink' | i18n}}</label>
|
||||||
|
<input id="url" name="url" [ngModel]="link" readonly>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="box">
|
<div class="footer">
|
||||||
<div class="box-header">
|
<button appBlurClick type="submit" class="primary" appA11yTitle="{{'save' | i18n}}">
|
||||||
{{'options' | i18n}}
|
<i class="fa fa-save fa-lg fa-fw" aria-hidden="true"></i>
|
||||||
</div>
|
</button>
|
||||||
<div class="box-content">
|
|
||||||
<div class="box-content-row" appBoxRow *ngIf="editMode">
|
|
||||||
<label for="deletionDate">{{'deletionDate' | i18n}}</label>
|
|
||||||
<input id="deletionDate" type="datetime-local" name="deletionDate"
|
|
||||||
[(ngModel)]="deletionDate" required placeholder="MM/DD/YYYY HH:MM AM/PM">
|
|
||||||
<div class="subtext">{{'deletionDateDesc' | i18n}}</div>
|
|
||||||
</div>
|
|
||||||
<div class="box-content-row" appBoxRow>
|
|
||||||
<label for="expirationDate">{{'expirationDate' | i18n}}</label>
|
|
||||||
<input id="expirationDate" type="datetime-local" name="expirationDate" [(ngModel)]="send.expirationDate">
|
|
||||||
<div class="subtext">{{'expirationDateDesc' | i18n}}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="box">
|
</form>
|
||||||
<div class="box-content">
|
</ng-container>
|
||||||
<div class="box-content-row" appBoxRow>
|
|
||||||
<label for="maxAccessCount">{{'maxAccessCount' | i18n}}</label>
|
|
||||||
<input id="maxAccessCount" type="number" name="maxAccessCount" [(ngModel)]="send.maxAccessCount">
|
|
||||||
<div class="subtext">{{'maxAccessCountDesc' | i18n}}</div>
|
|
||||||
</div>
|
|
||||||
<div class="box-content-row" appBoxRow>
|
|
||||||
<label for="accessCount">{{'currentAccessCount' | i18n}}</label>
|
|
||||||
<input id="accessCount" type="text" name="accessCount" [(ngModel)]="send.accessCount" readonly>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="box">
|
|
||||||
<div class="box-content">
|
|
||||||
<div class="box-content-row" appBoxRow>
|
|
||||||
<label for="password">{{'password' | i18n}}</label>
|
|
||||||
<input id="password" type="password" name="password" [(ngModel)]="send.password">
|
|
||||||
<div class="subtext">{{'sendPasswordDesc' | i18n}}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="box">
|
|
||||||
<div class="box-header">
|
|
||||||
{{'notes' | i18n}}
|
|
||||||
</div>
|
|
||||||
<div class="box-content">
|
|
||||||
<div class="box-content-row" appBoxRow>
|
|
||||||
<textarea id="notes" name="notes" [(ngModel)]="send.notes" rows="6"></textarea>
|
|
||||||
<small class="subtext">{{'sendNotesDesc' | i18n}}</small>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<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">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="box">
|
|
||||||
<div class="box-header">
|
|
||||||
{{'share' | i18n}}
|
|
||||||
</div>
|
|
||||||
<div class="box-content">
|
|
||||||
<div class="box-content-row" appBoxRow>
|
|
||||||
<label for="url">{{'sendLink' | i18n}}</label>
|
|
||||||
<input id="url" name="url" [ngModel]="link" readonly>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
@ -28,5 +28,9 @@ export class AddEditComponent extends BaseAddEditComponent {
|
|||||||
async refresh() {
|
async refresh() {
|
||||||
const send = await this.loadSend();
|
const send = await this.loadSend();
|
||||||
this.send = await send.decrypt();
|
this.send = await send.decrypt();
|
||||||
|
this.hasPassword = this.send.password != null && this.send.password.trim() !== '';
|
||||||
|
this.deletionDate = this.dateToString(this.send.deletionDate);
|
||||||
|
this.expirationDate = this.dateToString(this.send.expirationDate);
|
||||||
|
this.password = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -67,7 +67,7 @@
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<app-send-add-edit id="addEdit" class="details" *ngIf="action == 'add' || action == 'edit'" [sendId]="sendId" [type]="selectedSendType"></app-send-add-edit>
|
<app-send-add-edit id="addEdit" class="details" *ngIf="action == 'add' || action == 'edit'" [sendId]="sendId" [type]="selectedSendType" (onSavedSend)="refresh()"></app-send-add-edit>
|
||||||
<div class="logo" *ngIf="!action">
|
<div class="logo" *ngIf="!action">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="inner-content">
|
<div class="inner-content">
|
||||||
|
@ -72,6 +72,6 @@ export class SendComponent extends BaseSendComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get selectedSendType() {
|
get selectedSendType() {
|
||||||
return this.sends.find(s => s.id === this.sendId).type;
|
return this.sends.find(s => s.id === this.sendId)?.type;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1568,5 +1568,20 @@
|
|||||||
"textHiddenByDefault": {
|
"textHiddenByDefault": {
|
||||||
"message": "When accessing the Send, hide the text by default",
|
"message": "When accessing the Send, hide the text by default",
|
||||||
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
|
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
|
||||||
|
},
|
||||||
|
"createdSend": {
|
||||||
|
"message": "Created Send",
|
||||||
|
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
|
||||||
|
},
|
||||||
|
"editedSend": {
|
||||||
|
"message": "Edited Send",
|
||||||
|
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
|
||||||
|
},
|
||||||
|
"deletedSend": {
|
||||||
|
"message": "Deleted Send",
|
||||||
|
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
|
||||||
|
},
|
||||||
|
"newPassword": {
|
||||||
|
"message": "New Password"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user