-<ng-template #ccvmOption let-list="list">
- <ng-container *ngFor="let ccv of list">
+<ng-template #ccvmOption let-list="list" let-simple="simple">
+ <ng-container *ngFor="let ccv of simple">
<option *ngIf="ccv.is_simple() === 't'" value="{{ccv.code()}}">
{{ccv.search_label() || ccv.value()}}
<ng-container *ngIf="ccv.opac_visible() === 'f'" i18n>(Hidden)</ng-container>
</option>
</ng-container>
+ <option *ngIf="simple.length && list.length" disabled='true'>-----</option>
<ng-container *ngFor="let ccv of list">
<option *ngIf="ccv.is_simple() === 'f'" value="{{ccv.code()}}">
{{ccv.search_label() || ccv.value()}}
<select class="form-control" [(ngModel)]="context.termSearch.format">
<option i18n value=''>All Formats</option>
<ng-container
- *ngTemplateOutlet="ccvmOption;context:{list:ccvmMap.search_format}">
+ *ngTemplateOutlet="ccvmOption;context:{list:ccvmMap.search_format, simple:ccvmSimpleMap.search_format}">
</ng-container>
</select>
</div>
[(ngModel)]="context.termSearch.ccvmFilters.item_type">
<option value='' i18n>All Item Types</option>
<ng-container
- *ngTemplateOutlet="ccvmOption;context:{list:ccvmMap.item_type}">
+ *ngTemplateOutlet="ccvmOption;context:{list:ccvmMap.item_type, simple:ccvmSimpleMap.item_type}">
</ng-container>
</select>
</div>
[(ngModel)]="context.termSearch.ccvmFilters.item_form">
<option value='' i18n>All Item Forms</option>
<ng-container
- *ngTemplateOutlet="ccvmOption;context:{list:ccvmMap.item_form}">
+ *ngTemplateOutlet="ccvmOption;context:{list:ccvmMap.item_form, simple:ccvmSimpleMap.item_form}">
</ng-container>
</select>
</div>
[(ngModel)]="context.termSearch.ccvmFilters.item_lang" multiple="true">
<option value='' i18n>All Languages</option>
<ng-container
- *ngTemplateOutlet="ccvmOption;context:{list:ccvmMap.item_lang}">
+ *ngTemplateOutlet="ccvmOption;context:{list:ccvmMap.item_lang, simple:ccvmSimpleMap.item_lang}">
</ng-container>
</select>
</div>
[(ngModel)]="context.termSearch.ccvmFilters.audience" multiple="true">
<option value='' i18n>All Audiences</option>
<ng-container
- *ngTemplateOutlet="ccvmOption;context:{list:ccvmMap.audience}">
+ *ngTemplateOutlet="ccvmOption;context:{list:ccvmMap.audience, simple:ccvmSimpleMap.audience}">
</ng-container>
</select>
</div>
[(ngModel)]="context.termSearch.ccvmFilters.vr_format" multiple="true">
<option value='' i18n>All Video Formats</option>
<ng-container
- *ngTemplateOutlet="ccvmOption;context:{list:ccvmMap.vr_format}">
+ *ngTemplateOutlet="ccvmOption;context:{list:ccvmMap.vr_format, simple:ccvmSimpleMap.vr_format}">
</ng-container>
</select>
</div>
[(ngModel)]="context.termSearch.ccvmFilters.bib_level" multiple="true">
<option value='' i18n>All Bib Levels</option>
<ng-container
- *ngTemplateOutlet="ccvmOption;context:{list:ccvmMap.bib_level}">
+ *ngTemplateOutlet="ccvmOption;context:{list:ccvmMap.bib_level, simple:ccvmSimpleMap.bib_level}">
</ng-container>
</select>
</div>
[(ngModel)]="context.termSearch.ccvmFilters.lit_form" multiple="true">
<option value='' i18n>All Literary Forms</option>
<ng-container
- *ngTemplateOutlet="ccvmOption;context:{list:ccvmMap.lit_form}">
+ *ngTemplateOutlet="ccvmOption;context:{list:ccvmMap.lit_form, simple:ccvmSimpleMap.lit_form}">
</ng-container>
</select>
</div>
context: CatalogSearchContext;
ccvmMap: {[ccvm: string]: IdlObject[]} = {};
+ ccvmSimpleMap: {[ccvm: string]: IdlObject[]} = {};
cmfMap: {[cmf: string]: IdlObject} = {};
showSearchFilters = false;
copyLocations: IdlObject[];
this.ccvmMap = this.cat.ccvmMap;
this.cmfMap = this.cat.cmfMap;
this.context = this.staffCat.searchContext;
+
+ //create our simple sort list
+ this.CompileSimpleSelector();
// Start with advanced search options open
// if any filters are active.
searchFilters(): string[] {
return this.staffCat.searchFilters;
}
+
+ //filters out CCVMs based on their is_simple attribute
+ CompileSimpleSelector(): void {
+ Object.keys(this.ccvmMap).forEach(cType => {
+ if (!this.ccvmSimpleMap[cType]) {
+ //creates simple sort list even if there might be no entries
+ this.ccvmSimpleMap[cType] = [];
+ }
+
+ this.ccvmMap[cType].forEach(ccvm => {
+ if(ccvm.is_simple() === 't'){
+ //push the is_simple ccvms to the simple map
+ this.ccvmSimpleMap[cType].push(ccvm)
+ }});
+ });
+
+ //order the simple sort list
+ Object.keys(this.ccvmSimpleMap).forEach(cType => {
+ this.ccvmSimpleMap[cType] =
+ this.ccvmSimpleMap[cType].sort((a, b) => {
+ return a.value() < b.value() ? -1 : 1;
+ });
+ });
+ }
}