mirror of
https://github.com/bitwarden/browser
synced 2026-01-19 08:53:28 +00:00
* [AC-1423] Update organization subscription cloud page (#5614) * [AC-1423] Add ProgressModule to shared.module.ts * [AC-1423] Update cloud subscription page styles - Remove bootstrap styles - Use CL components where applicable - Use CL typography directives - Update heading levels to prepare for new SM sections * [AC-1423] Add usePasswordManager boolean to organization domain * [AC-1423] Introduce BitwardenProductType enum * [AC-1423] Update Organization subscription line items - Add product type prefix - Indent addon services like additional storage and service accounts - Show line items for free plans * [AC-1420] Add Secrets Manager subscribe component (#5617) * [AC-1418] Add secrets manager manage subscription component (#5661) * add additional properties (#5743) * Allow autoscale limits to be removed, update naming (#5781) * [AC-1488] Store Organization.SmServiceAccounts as total not additional (#5784) * Allow autoscale limits to be removed, update naming * Display additional service accounts only * [AC-1531] Fix SM subscribe component not showing in free org billing tab (#5848) --------- Co-authored-by: Shane Melton <smelton@bitwarden.com> Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com> Co-authored-by: Thomas Rittson <trittson@bitwarden.com> Co-authored-by: cyprain-okeke <108260115+cyprain-okeke@users.noreply.github.com> Co-authored-by: Rui Tome <rtome@bitwarden.com>
66 lines
2.3 KiB
HTML
66 lines
2.3 KiB
HTML
<form #form (ngSubmit)="submit()" [appApiAction]="formPromise" ngNativeValidate>
|
|
<div>
|
|
<div class="row">
|
|
<div class="form-group col-8">
|
|
<label for="newSeatCount">{{ "subscriptionSeats" | i18n }}</label>
|
|
<input
|
|
id="newSeatCount"
|
|
class="form-control"
|
|
type="number"
|
|
name="NewSeatCount"
|
|
[(ngModel)]="newSeatCount"
|
|
min="0"
|
|
step="1"
|
|
required
|
|
/>
|
|
<small class="d-block text-muted mb-4">
|
|
<strong>{{ "total" | i18n }}:</strong> {{ newSeatCount || 0 }} ×
|
|
{{ seatPrice | currency : "$" }} = {{ adjustedSeatTotal | currency : "$" }} /
|
|
{{ interval | i18n }}
|
|
</small>
|
|
</div>
|
|
</div>
|
|
<div class="row mb-4">
|
|
<div class="form-group col-sm">
|
|
<div class="form-check">
|
|
<input
|
|
id="limitSubscription"
|
|
class="form-check-input"
|
|
type="checkbox"
|
|
name="LimitSubscription"
|
|
[(ngModel)]="limitSubscription"
|
|
(change)="limitSubscriptionChanged()"
|
|
/>
|
|
<label for="limitSubscription">{{ "limitSubscription" | i18n }}</label>
|
|
</div>
|
|
<small class="d-block text-muted">{{ "limitSubscriptionDesc" | i18n }}</small>
|
|
</div>
|
|
</div>
|
|
<div class="row mb-4" [hidden]="!limitSubscription">
|
|
<div class="form-group col-sm">
|
|
<label for="maxAutoscaleSeats">{{ "maxSeatLimit" | i18n }}</label>
|
|
<input
|
|
id="maxAutoscaleSeats"
|
|
class="form-control col-8"
|
|
type="number"
|
|
name="MaxAutoscaleSeats"
|
|
[(ngModel)]="newMaxSeats"
|
|
[min]="newSeatCount == null ? 1 : newSeatCount"
|
|
step="1"
|
|
[required]="limitSubscription"
|
|
/>
|
|
<small class="d-block text-muted">
|
|
<strong>{{ "maxSeatCost" | i18n }}:</strong> {{ newMaxSeats || 0 }} ×
|
|
{{ seatPrice | currency : "$" }} = {{ maxSeatTotal | currency : "$" }} /
|
|
{{ interval | i18n }}
|
|
</small>
|
|
</div>
|
|
</div>
|
|
<button type="submit" class="btn btn-primary btn-submit" [disabled]="form.loading">
|
|
<i class="bwi bwi-spinner bwi-spin" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
|
|
<span>{{ "save" | i18n }}</span>
|
|
</button>
|
|
</div>
|
|
</form>
|
|
<app-payment [showMethods]="false"></app-payment>
|