-<ng-template #ccvmOption let-list="list">
- <option *ngFor="let ccv of list" value="{{ccv.code()}}">
+<ng-template #ccvmOption let-list="list" let-simple="simple">
+ <option *ngFor="let ccv of simple" value="{{ccv.code()}}">
{{ccv.search_label() || ccv.value()}}
<ng-container *ngIf="ccv.opac_visible() === 'f'" i18n>(Hidden)</ng-container>
</option>
+ <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()}}
+ <ng-container *ngIf="ccv.opac_visible() === 'f'" i18n>(Hidden)</ng-container>
+ </option>
+ </ng-container>
</ng-template>
<div id='staffcat-search-form'>
<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[];
}
ngOnInit() {
- this.ccvmMap = this.cat.ccvmMap;
+ this.ccvmMap = this.cat.ccvmMap;
this.cmfMap = this.cat.cmfMap;
this.context = this.staffCat.searchContext;
// Start with advanced search options open
// if any filters are active.
this.showSearchFilters = this.filtersActive();
+
+ //create our simple sort list
+ this.CompileSimpleSelector();
// Some search scenarios, like rendering a search template,
// will not be searchable and thus not resovle to a specific
showExcludeElectronic(): boolean {
return this.staffCat.showExcludeElectronic;
}
+
+ //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'){
+ this.ccvmSimpleMap[cType].push(ccvm);
+ }});
+ });
+ }
}