Commits
Tim Donohue authored and GitHub committed ae10f0a1ef0 Merge
8 8 | [selectable]="true" |
9 9 | [selectionConfig]="{ repeatable: repeatable, listId: listId }" |
10 10 | [showScopeSelector]="false" |
11 11 | [showViewModes]="false" |
12 12 | [query]="query" |
13 13 | (resultFound)="onResultFound($event)" |
14 14 | (deselectObject)="deselectObject.emit($event)" |
15 15 | (selectObject)="selectObject.emit($event)"> |
16 16 | <div additionalSearchOptions *ngIf="repeatable" class="position-absolute"> |
17 17 | <div class="input-group mb-3"> |
18 - | <div class="input-group-prepend"> |
19 - | <div class="input-group-text"> |
20 - | <!-- In theory we don't need separate checkboxes for this, |
21 - | but I wasn't able to get this to work correctly without them. |
22 - | Checkboxes that are in the indeterminate state always switch to checked when clicked |
23 - | This seemed like the cleanest and clearest solution to solve this issue for now. --> |
24 - | |
25 - | <input *ngIf="!allSelected && (someSelected$ | async) !== true" |
26 - | type="checkbox" |
27 - | [indeterminate]="false" |
28 - | (change)="selectAll()"> |
29 - | <input *ngIf="!allSelected && (someSelected$ | async)" |
30 - | type="checkbox" |
31 - | [indeterminate]="true" |
32 - | (change)="deselectAll()"> |
33 - | <input *ngIf="allSelected" type="checkbox" |
34 - | [checked]="true" |
35 - | (change)="deselectAll()"> |
36 - | </div> |
37 - | </div> |
38 - | <div ngbDropdown class="input-group-append"> |
18 + | <div ngbDropdown class="input-group dropdown-button"> |
39 19 | <button *ngIf="selectAllLoading" type="button" |
40 20 | class="btn btn-outline-secondary rounded-right"> |
41 21 | <span class="spinner-border spinner-border-sm" role="status" |
42 22 | aria-hidden="true"></span> |
43 23 | <span class="sr-only">{{ ('submission.sections.describe.relationship-lookup.search-tab.loading' | translate) }}</span> |
44 24 | </button> |
45 25 | <button id="resultdropdown" type="button" |
46 26 | ngbDropdownToggle |
47 27 | class="btn btn-outline-secondary dropdown-toggle-split" |
48 28 | data-toggle="dropdown" aria-haspopup="true" |
49 29 | aria-expanded="false" |
50 30 | [hidden]="selectAllLoading"> |
51 31 | <span class="sr-only">{{ ('submission.sections.describe.relationship-lookup.toggle-dropdown' | translate) }}</span> |
52 32 | </button> |
53 33 | <div ngbDropdownMenu aria-labelledby="resultdropdown" *ngVar="(resultsRD$ | async) as resultsRD"> |
54 34 | <button class="dropdown-item" |
55 35 | (click)="selectPage(resultsRD?.page)">{{ ('submission.sections.describe.relationship-lookup.search-tab.select-page' | translate) }}</button> |
56 36 | <button class="dropdown-item" |
57 37 | (click)="deselectPage(resultsRD?.page)">{{ ('submission.sections.describe.relationship-lookup.search-tab.deselect-page' | translate) }}</button> |
58 - | <button class="dropdown-item" (click)="selectAll()">{{ ('submission.sections.describe.relationship-lookup.search-tab.select-all' | translate) }}</button> |
59 - | <button class="dropdown-item" (click)="deselectAll()">{{ ('submission.sections.describe.relationship-lookup.search-tab.deselect-all' | translate) }}</button> |
60 38 | </div> |
61 39 | </div> |
62 40 | </div> |
63 41 | </div> |
64 42 | |
65 43 | </ds-search> |