diff --git a/apps/browser/src/popup/app.module.ts b/apps/browser/src/popup/app.module.ts index f7539d6fa6..0115768a40 100644 --- a/apps/browser/src/popup/app.module.ts +++ b/apps/browser/src/popup/app.module.ts @@ -33,7 +33,6 @@ import { UpdateTempPasswordComponent } from "../auth/popup/update-temp-password. import { GeneratorComponent } from "../tools/popup/generator/generator.component"; import { PasswordGeneratorHistoryComponent } from "../tools/popup/generator/password-generator-history.component"; import { SendListComponent } from "../tools/popup/send/components/send-list.component"; -import { EffluxDatesComponent as SendEffluxDatesComponent } from "../tools/popup/send/efflux-dates.component"; import { SendAddEditComponent } from "../tools/popup/send/send-add-edit.component"; import { SendGroupingsComponent } from "../tools/popup/send/send-groupings.component"; import { SendTypeComponent } from "../tools/popup/send/send-type.component"; @@ -133,7 +132,6 @@ import "../platform/popup/locales"; PrivateModeWarningComponent, RegisterComponent, SendAddEditComponent, - SendEffluxDatesComponent, SendGroupingsComponent, SendListComponent, SendTypeComponent, diff --git a/apps/browser/src/tools/popup/send/efflux-dates.component.html b/apps/browser/src/tools/popup/send/efflux-dates.component.html deleted file mode 100644 index 737fdae4aa..0000000000 --- a/apps/browser/src/tools/popup/send/efflux-dates.component.html +++ /dev/null @@ -1,217 +0,0 @@ - -
-
- -
- - -
-
- -
-
-
- - -
-
- -
-
-
- -
- - -
-
- -
-
-
-
- - -
- -
-
- -
- - - -
- - -
-
- -
- - -
-
- - - -
-
- - - -
- - -
-
- -
- - -
-
- - - -
-
-
diff --git a/apps/browser/src/tools/popup/send/efflux-dates.component.ts b/apps/browser/src/tools/popup/send/efflux-dates.component.ts deleted file mode 100644 index 3d575b41fa..0000000000 --- a/apps/browser/src/tools/popup/send/efflux-dates.component.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { DatePipe } from "@angular/common"; -import { Component, EventEmitter, Input, Output } from "@angular/core"; -import { ControlContainer, NgForm } from "@angular/forms"; - -import { EffluxDatesComponent as BaseEffluxDatesComponent } from "@bitwarden/angular/tools/send/efflux-dates.component"; -import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; -import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; - -@Component({ - selector: "app-send-efflux-dates", - templateUrl: "efflux-dates.component.html", - viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], -}) -export class EffluxDatesComponent extends BaseEffluxDatesComponent { - @Input() readonly inPopout: boolean; - @Output() popOutWindow = new EventEmitter(); - - constructor( - protected i18nService: I18nService, - protected platformUtilsService: PlatformUtilsService, - protected datePipe: DatePipe - ) { - super(i18nService, platformUtilsService, datePipe); - } -} diff --git a/apps/browser/src/tools/popup/send/send-add-edit.component.html b/apps/browser/src/tools/popup/send/send-add-edit.component.html index db31ad808a..707adaa7a5 100644 --- a/apps/browser/src/tools/popup/send/send-add-edit.component.html +++ b/apps/browser/src/tools/popup/send/send-add-edit.component.html @@ -1,4 +1,4 @@ -
+
@@ -7,7 +7,7 @@ {{ title }}
- @@ -42,9 +42,8 @@
@@ -66,12 +65,9 @@ >
-
+
@@ -93,9 +89,8 @@
@@ -105,17 +100,15 @@
-
+
@@ -125,13 +118,7 @@
- +
@@ -144,13 +131,7 @@
- +
@@ -170,15 +151,140 @@
- - + +
+
+ +
+ + +
+
+ +
+
+
+ + +
+
+ +
+ + +
+
+ +
+ + +
+
+ +
+
+
+
+ + +
+ +
+
+ +
@@ -190,8 +296,7 @@ type="number" name="MaximumAccessCount" aria-describedby="maximumAccessCountHelp" - [(ngModel)]="send.maxAccessCount" - [readonly]="disableSend" + formControlName="maxAccessCount" />
@@ -206,10 +311,9 @@
@@ -227,9 +331,8 @@ name="Password" aria-describedby="passwordHelp" class="monospaced" - [(ngModel)]="password" + formControlName="password" appInputVerbatim - [readonly]="disableSend" />
@@ -264,8 +367,7 @@ name="Notes" aria-describedby="notesHelp" rows="6" - [(ngModel)]="send.notes" - [readonly]="disableSend" + formControlName="notes" >
@@ -278,13 +380,7 @@
- +
@@ -293,13 +389,7 @@
- +
diff --git a/apps/browser/src/tools/popup/send/send-add-edit.component.ts b/apps/browser/src/tools/popup/send/send-add-edit.component.ts index 1efd950c50..2d90957de7 100644 --- a/apps/browser/src/tools/popup/send/send-add-edit.component.ts +++ b/apps/browser/src/tools/popup/send/send-add-edit.component.ts @@ -1,5 +1,6 @@ import { DatePipe, Location } from "@angular/common"; import { Component } from "@angular/core"; +import { FormBuilder } from "@angular/forms"; import { ActivatedRoute, Router } from "@angular/router"; import { first } from "rxjs/operators"; @@ -47,7 +48,8 @@ export class SendAddEditComponent extends BaseAddEditComponent { private popupUtilsService: PopupUtilsService, logService: LogService, sendApiService: SendApiService, - dialogService: DialogService + dialogService: DialogService, + formBuilder: FormBuilder ) { super( i18nService, @@ -60,7 +62,8 @@ export class SendAddEditComponent extends BaseAddEditComponent { logService, stateService, sendApiService, - dialogService + dialogService, + formBuilder ); } diff --git a/apps/desktop/src/app/app.module.ts b/apps/desktop/src/app/app.module.ts index 3ac2ca2975..d14c40854c 100644 --- a/apps/desktop/src/app/app.module.ts +++ b/apps/desktop/src/app/app.module.ts @@ -53,7 +53,6 @@ import { ExportComponent } from "./tools/export/export.component"; import { GeneratorComponent } from "./tools/generator.component"; import { PasswordGeneratorHistoryComponent } from "./tools/password-generator-history.component"; import { AddEditComponent as SendAddEditComponent } from "./tools/send/add-edit.component"; -import { EffluxDatesComponent as SendEffluxDatesComponent } from "./tools/send/efflux-dates.component"; import { SendComponent } from "./tools/send/send.component"; @NgModule({ @@ -87,7 +86,6 @@ import { SendComponent } from "./tools/send/send.component"; SearchComponent, SendAddEditComponent, SendComponent, - SendEffluxDatesComponent, SetPasswordComponent, SetPinComponent, SettingsComponent, diff --git a/apps/desktop/src/app/tools/send/add-edit.component.html b/apps/desktop/src/app/tools/send/add-edit.component.html index e9e1b319ad..d9f280be59 100644 --- a/apps/desktop/src/app/tools/send/add-edit.component.html +++ b/apps/desktop/src/app/tools/send/add-edit.component.html @@ -1,4 +1,4 @@ - +
@@ -16,14 +16,7 @@
- +
@@ -31,20 +24,16 @@
-
+
-
+
{{ send.file.fileName }} ({{ send.file.sizeName }})
-
+
@@ -83,13 +70,7 @@
- +
@@ -112,14 +93,82 @@
- - +
+
+
+ + + {{ + "deletionDateDesc" | i18n + }} +
+
+ + + {{ + "deletionDateDesc" | i18n + }} +
+
+ + + {{ + "expirationDateDesc" | i18n + }} +
+
+ + + {{ + "expirationDateDesc" | i18n + }} +
+
+
@@ -129,8 +178,7 @@ type="number" name="maxAccessCount" aria-describedby="maxAccessCountHelp" - [(ngModel)]="send.maxAccessCount" - [readOnly]="disableSend" + formControlName="maxAccessCount" />
@@ -154,8 +202,7 @@ name="password" aria-describedby="passwordHelp" type="{{ showPassword ? 'text' : 'password' }}" - [(ngModel)]="password" - [readOnly]="disableSend" + formControlName="password" appInputVerbatim />
@@ -167,7 +214,6 @@ appA11yTitle="{{ 'toggleVisibility' | i18n }}" [attr.aria-pressed]="showPassword" (click)="togglePasswordVisible()" - [disabled]="disableSend" >
@@ -206,13 +251,7 @@
- +
@@ -220,13 +259,7 @@
- +
@@ -238,17 +271,11 @@
- +
- +
@@ -259,13 +286,12 @@ type="submit" class="primary btn-submit" appA11yTitle="{{ 'save' | i18n }}" - [disabled]="form.loading" *ngIf="!disableSend" > -
diff --git a/apps/desktop/src/app/tools/send/add-edit.component.ts b/apps/desktop/src/app/tools/send/add-edit.component.ts index de5d2a601a..98764866a5 100644 --- a/apps/desktop/src/app/tools/send/add-edit.component.ts +++ b/apps/desktop/src/app/tools/send/add-edit.component.ts @@ -1,5 +1,6 @@ import { DatePipe } from "@angular/common"; import { Component } from "@angular/core"; +import { FormBuilder } from "@angular/forms"; import { AddEditComponent as BaseAddEditComponent } from "@bitwarden/angular/tools/send/add-edit.component"; import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction"; @@ -29,7 +30,8 @@ export class AddEditComponent extends BaseAddEditComponent { policyService: PolicyService, logService: LogService, sendApiService: SendApiService, - dialogService: DialogService + dialogService: DialogService, + formBuilder: FormBuilder ) { super( i18nService, @@ -42,7 +44,8 @@ export class AddEditComponent extends BaseAddEditComponent { logService, stateService, sendApiService, - dialogService + dialogService, + formBuilder ); } @@ -50,6 +53,7 @@ export class AddEditComponent extends BaseAddEditComponent { this.password = null; const send = await this.loadSend(); this.send = await send.decrypt(); + this.updateFormValues(); this.hasPassword = this.send.password != null && this.send.password.trim() !== ""; } @@ -65,4 +69,11 @@ export class AddEditComponent extends BaseAddEditComponent { this.i18nService.t("valueCopied", this.i18nService.t("sendLink")) ); } + + async resetAndLoad() { + this.sendId = null; + this.send = null; + await this.load(); + this.updateFormValues(); + } } diff --git a/apps/desktop/src/app/tools/send/efflux-dates.component.html b/apps/desktop/src/app/tools/send/efflux-dates.component.html deleted file mode 100644 index 156dfae9dd..0000000000 --- a/apps/desktop/src/app/tools/send/efflux-dates.component.html +++ /dev/null @@ -1,62 +0,0 @@ - -
-
-
- - - {{ "deletionDateDesc" | i18n }} -
-
- - - {{ - "deletionDateDesc" | i18n - }} -
-
- - - {{ "expirationDateDesc" | i18n }} -
-
- - - {{ - "expirationDateDesc" | i18n - }} -
-
-
-
diff --git a/apps/desktop/src/app/tools/send/efflux-dates.component.ts b/apps/desktop/src/app/tools/send/efflux-dates.component.ts deleted file mode 100644 index 40215348d5..0000000000 --- a/apps/desktop/src/app/tools/send/efflux-dates.component.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { DatePipe } from "@angular/common"; -import { Component, OnChanges } from "@angular/core"; -import { ControlContainer, NgForm } from "@angular/forms"; - -import { EffluxDatesComponent as BaseEffluxDatesComponent } from "@bitwarden/angular/tools/send/efflux-dates.component"; -import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; -import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; - -@Component({ - selector: "app-send-efflux-dates", - templateUrl: "efflux-dates.component.html", - viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], -}) -export class EffluxDatesComponent extends BaseEffluxDatesComponent implements OnChanges { - constructor( - protected i18nService: I18nService, - protected platformUtilsService: PlatformUtilsService, - protected datePipe: DatePipe - ) { - super(i18nService, platformUtilsService, datePipe); - } - - // We reuse the same form on desktop and just swap content, so need to watch these to maintin proper values. - ngOnChanges() { - this.selectedExpirationDatePreset.setValue(0); - this.selectedDeletionDatePreset.setValue(0); - this.defaultDeletionDateTime.setValue( - this.datePipe.transform(new Date(this.initialDeletionDate), "yyyy-MM-ddTHH:mm") - ); - if (this.initialExpirationDate) { - this.defaultExpirationDateTime.setValue( - this.datePipe.transform(new Date(this.initialExpirationDate), "yyyy-MM-ddTHH:mm") - ); - } else { - this.defaultExpirationDateTime.setValue(null); - } - } -} diff --git a/apps/desktop/src/app/tools/send/send.component.ts b/apps/desktop/src/app/tools/send/send.component.ts index 7ad98ceda1..21b759e49b 100644 --- a/apps/desktop/src/app/tools/send/send.component.ts +++ b/apps/desktop/src/app/tools/send/send.component.ts @@ -91,12 +91,10 @@ export class SendComponent extends BaseSendComponent implements OnInit, OnDestro this.searchBarService.setEnabled(false); } - addSend() { + async addSend() { this.action = Action.Add; if (this.addEditComponent != null) { - this.addEditComponent.sendId = null; - this.addEditComponent.send = null; - this.addEditComponent.load(); + await this.addEditComponent.resetAndLoad(); } } diff --git a/apps/web/src/app/shared/loose-components.module.ts b/apps/web/src/app/shared/loose-components.module.ts index 62702349f9..4552162cc8 100644 --- a/apps/web/src/app/shared/loose-components.module.ts +++ b/apps/web/src/app/shared/loose-components.module.ts @@ -93,7 +93,6 @@ import { GeneratorComponent } from "../tools/generator.component"; import { PasswordGeneratorHistoryComponent } from "../tools/password-generator-history.component"; import { AccessComponent } from "../tools/send/access.component"; import { AddEditComponent as SendAddEditComponent } from "../tools/send/add-edit.component"; -import { EffluxDatesComponent as SendEffluxDatesComponent } from "../tools/send/efflux-dates.component"; import { ToolsComponent } from "../tools/tools.component"; import { PasswordRepromptComponent } from "../vault/components/password-reprompt.component"; import { PremiumBadgeComponent } from "../vault/components/premium-badge.component"; @@ -198,7 +197,6 @@ import { SharedModule } from "./shared.module"; SecurityKeysComponent, SelectableAvatarComponent, SendAddEditComponent, - SendEffluxDatesComponent, SetPasswordComponent, SettingsComponent, ShareComponent, @@ -302,7 +300,6 @@ import { SharedModule } from "./shared.module"; SecurityKeysComponent, SelectableAvatarComponent, SendAddEditComponent, - SendEffluxDatesComponent, SetPasswordComponent, SettingsComponent, ShareComponent, diff --git a/apps/web/src/app/tools/send/add-edit.component.html b/apps/web/src/app/tools/send/add-edit.component.html index 9cd90840b6..319d988f21 100644 --- a/apps/web/src/app/tools/send/add-edit.component.html +++ b/apps/web/src/app/tools/send/add-edit.component.html @@ -1,303 +1,276 @@ -