Update ngbRadioGroups to native buttons

This commit is contained in:
Michael Shamoon 2022-07-02 00:45:26 -07:00
parent 3c6ba80323
commit 13ef41bd42
5 changed files with 30 additions and 25 deletions

View File

@ -67,12 +67,12 @@ describe('documents-list', () => {
}) })
it('should change to table "details" view', () => { it('should change to table "details" view', () => {
cy.get('div.btn-group-toggle input[value="details"]').parent().click() cy.get('div.btn-group input[value="details"]').next().click()
cy.get('table') cy.get('table')
}) })
it('should change to large cards view', () => { it('should change to large cards view', () => {
cy.get('div.btn-group-toggle input[value="largeCards"]').parent().click() cy.get('div.btn-group input[value="largeCards"]').next().click()
cy.get('app-document-card-large') cy.get('app-document-card-large')
}) })

View File

@ -16,13 +16,11 @@
<div class="dropdown-menu py-0 shadow" ngbDropdownMenu attr.aria-labelledby="dropdown{{title}}"> <div class="dropdown-menu py-0 shadow" ngbDropdownMenu attr.aria-labelledby="dropdown{{title}}">
<div class="list-group list-group-flush"> <div class="list-group list-group-flush">
<div *ngIf="!editing && multiple" class="list-group-item d-flex"> <div *ngIf="!editing && multiple" class="list-group-item d-flex">
<div class="btn-group btn-group-xs btn-group-toggle flex-fill" ngbRadioGroup [(ngModel)]="selectionModel.logicalOperator" (change)="selectionModel.toggleOperator()" [disabled]="!operatorToggleEnabled"> <div class="btn-group btn-group-xs flex-fill">
<label ngbButtonLabel class="btn btn-outline-primary"> <input [(ngModel)]="selectionModel.logicalOperator" [disabled]="!operatorToggleEnabled" (ngModelChange)="selectionModel.toggleOperator()" type="radio" class="btn-check" id="logicalOperatorAnd" value="and">
<input ngbButton type="radio" class="btn-check" name="logicalOperator" value="and" i18n> All <label class="btn btn-outline-primary" for="logicalOperatorAnd" i18n>All</label>
</label> <input [(ngModel)]="selectionModel.logicalOperator" [disabled]="!operatorToggleEnabled" (ngModelChange)="selectionModel.toggleOperator()" type="radio" class="btn-check" id="logicalOperatorOr" value="or">
<label ngbButtonLabel class="btn btn-outline-primary"> <label class="btn btn-outline-primary" for="logicalOperatorOr" i18n>Any</label>
<input ngbButton type="radio" class="btn-check" name="logicalOperator" value="or" i18n> Any
</label>
</div> </div>
</div> </div>
<div class="list-group-item"> <div class="list-group-item">

View File

@ -13,23 +13,21 @@
<button ngbDropdownItem (click)="list.selectAll()" i18n>Select all</button> <button ngbDropdownItem (click)="list.selectAll()" i18n>Select all</button>
</div> </div>
</div> </div>
<div class="btn-group flex-fill" role="group">
<div class="btn-group btn-group-toggle flex-fill" ngbRadioGroup [(ngModel)]="displayMode" <input type="radio" class="btn-check" [(ngModel)]="displayMode" value="details" (ngModelChange)="saveDisplayMode()" id="displayModeDetails">
(ngModelChange)="saveDisplayMode()"> <label for="displayModeDetails" class="btn btn-outline-primary btn-sm">
<label ngbButtonLabel class="btn-outline-primary btn-sm">
<input ngbButton type="radio" class="btn-check btn-sm" value="details">
<svg class="toolbaricon" fill="currentColor"> <svg class="toolbaricon" fill="currentColor">
<use xlink:href="assets/bootstrap-icons.svg#list-ul" /> <use xlink:href="assets/bootstrap-icons.svg#list-ul" />
</svg> </svg>
</label> </label>
<label ngbButtonLabel class="btn-outline-primary btn-sm"> <input type="radio" class="btn-check" [(ngModel)]="displayMode" value="smallCards" (ngModelChange)="saveDisplayMode()" id="displayModeSmall">
<input ngbButton type="radio" class="btn-check btn-sm" value="smallCards"> <label for="displayModeSmall" class="btn btn-outline-primary btn-sm">
<svg class="toolbaricon" fill="currentColor"> <svg class="toolbaricon" fill="currentColor">
<use xlink:href="assets/bootstrap-icons.svg#grid" /> <use xlink:href="assets/bootstrap-icons.svg#grid" />
</svg> </svg>
</label> </label>
<label ngbButtonLabel class="btn-outline-primary btn-sm"> <input type="radio" class="btn-check" [(ngModel)]="displayMode" value="largeCards" (ngModelChange)="saveDisplayMode()" id="displayModeLarge">
<input ngbButton type="radio" class="btn-check btn-sm" value="largeCards"> <label for="displayModeLarge" class="btn btn-outline-primary btn-sm">
<svg class="toolbaricon" fill="currentColor"> <svg class="toolbaricon" fill="currentColor">
<use xlink:href="assets/bootstrap-icons.svg#hdd-stack" /> <use xlink:href="assets/bootstrap-icons.svg#hdd-stack" />
</svg> </svg>
@ -39,15 +37,15 @@
<div ngbDropdown class="btn-group ms-2 flex-fill"> <div ngbDropdown class="btn-group ms-2 flex-fill">
<button class="btn btn-outline-primary btn-sm" id="dropdownBasic1" ngbDropdownToggle i18n>Sort</button> <button class="btn btn-outline-primary btn-sm" id="dropdownBasic1" ngbDropdownToggle i18n>Sort</button>
<div ngbDropdownMenu aria-labelledby="dropdownBasic1" class="shadow dropdown-menu-right"> <div ngbDropdownMenu aria-labelledby="dropdownBasic1" class="shadow dropdown-menu-right">
<div class="w-100 d-flex btn-group-toggle pb-2 mb-1 border-bottom" ngbRadioGroup [(ngModel)]="listSort"> <div class="w-100 d-flex pb-2 mb-1 border-bottom">
<label ngbButtonLabel class="btn-outline-primary btn-sm mx-2 flex-fill"> <input type="radio" class="btn-check" [value]="false" [(ngModel)]="listSortReverse" id="listSortReverseFalse">
<input ngbButton type="radio" class="btn btn-check btn-sm" [value]="false"> <label class="btn btn-outline-primary btn-sm mx-2 flex-fill" for="listSortReverseFalse">
<svg class="toolbaricon" fill="currentColor"> <svg class="toolbaricon" fill="currentColor">
<use xlink:href="assets/bootstrap-icons.svg#sort-alpha-down" /> <use xlink:href="assets/bootstrap-icons.svg#sort-alpha-down" />
</svg> </svg>
</label> </label>
<label ngbButtonLabel class="btn-outline-primary btn-sm me-2 flex-fill"> <input type="radio" class="btn-check" [value]="true" [(ngModel)]="listSortReverse" id="listSortReverseTrue">
<input ngbButton type="radio" class="btn btn-check btn-sm" [value]="true"> <label class="btn btn-outline-primary btn-sm me-2 flex-fill" for="listSortReverseTrue">
<svg class="toolbaricon" fill="currentColor"> <svg class="toolbaricon" fill="currentColor">
<use xlink:href="assets/bootstrap-icons.svg#sort-alpha-up-alt" /> <use xlink:href="assets/bootstrap-icons.svg#sort-alpha-up-alt" />
</svg> </svg>

View File

@ -71,11 +71,11 @@ export class DocumentListComponent implements OnInit, OnDestroy {
: DOCUMENT_SORT_FIELDS : DOCUMENT_SORT_FIELDS
} }
set listSort(reverse: boolean) { set listSortReverse(reverse: boolean) {
this.list.sortReverse = reverse this.list.sortReverse = reverse
} }
get listSort(): boolean { get listSortReverse(): boolean {
return this.list.sortReverse return this.list.sortReverse
} }

View File

@ -121,6 +121,15 @@ svg.logo {
box-shadow: 0 0 0 0.25rem hsla(var(--pngx-primary), var(--pngx-primary-lightness), var(--pngx-focus-alpha)); box-shadow: 0 0 0 0.25rem hsla(var(--pngx-primary), var(--pngx-primary-lightness), var(--pngx-focus-alpha));
} }
.btn-check:checked + .btn-outline-primary,
.btn-check:active + .btn-outline-primary,
.btn-outline-primary:active,
.btn-outline-primary.active,
.btn-outline-primary.dropdown-toggle.show {
background-color: var(--bs-primary);
color: var(--pngx-primary-text-contrast) !important;
}
.form-switch .form-check-input:focus { .form-switch .form-check-input:focus {
background-image: escape-svg(url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#bbb'/></svg>")); background-image: escape-svg(url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#bbb'/></svg>"));
} }