}
};
+const operatorMap = {
+ "=": "",
+}
+
@Injectable()
export class AcqSearchService {
) {
}
+ generateAcqSearch(searchType, filters): any {
+ const baseSearch = JSON.parse(JSON.stringify(defaultSearch[searchType])); // deep copy
+ Object.keys(filters).forEach(filterField => {
+ const coreRecType = Object.keys(defaultSearch[searchType])[0];
+ const filterOp = Object.keys(filters[filterField][0][filterField])[0];
+ const filterVal = filters[filterField][0][filterField][filterOp];
+
+ const searchTerm: Object = {};
+ searchTerm[filterField] = filterVal;
+ searchTerm[operatorMap[filterOp]] = true;
+ baseSearch[coreRecType].push(searchTerm);
+ });
+ console.debug(baseSearch);
+ return baseSearch;
+ }
+
getAcqSearchDataSource(searchType: string): GridDataSource {
const gridSource = new GridDataSource();
gridSource.getRows = (pager: Pager) => {
+
+ const currentSearch = this.generateAcqSearch(searchType, gridSource.filters);
+
const opts = { ...searchOptions[searchType] };
opts['offset'] = pager.offset;
opts['limit'] = pager.limit;
'open-ils.acq',
'open-ils.acq.' + searchType + '.unified_search',
this.auth.token(),
- defaultSearch[searchType],
+ currentSearch,
null,
null,
opts
persistKey="acq.search.lineitems"
idlClass="jub" [dataSource]="gridSource"
[stickyHeader]="true"
+ [filterable]="true"
[showDeclaredFieldsOnly]="true">
<eg-grid-column path="id" [cellTemplate]="idTmpl" [disableTooltip]="true"></eg-grid-column>
<eg-grid-column i18n-label label="Title" path="title" [cellTemplate]="liAttrTmpl"></eg-grid-column>
<eg-grid-column i18n-label label="Author" path="author" [cellTemplate]="liAttrTmpl"></eg-grid-column>
- <eg-grid-column path="provider.name" [cellTemplate]="providerTmpl"></eg-grid-column>
- <eg-grid-column i18n-label label="Links" path="_links" [cellTemplate]="liLinksTmpl" [disableTooltip]="true"></eg-grid-column>
+ <eg-grid-column path="provider" [cellTemplate]="providerTmpl"></eg-grid-column>
+ <eg-grid-column i18n-label label="Links" path="_links" [cellTemplate]="liLinksTmpl" [disableTooltip]="true" [filterable]="false"></eg-grid-column>
<eg-grid-column path="claim_policy.name"></eg-grid-column>
<eg-grid-column i18n-label label="Status" path="state" [disableTooltip]="true"></eg-grid-column>
<eg-grid-column path="estimated_unit_price" [disableTooltip]="true"></eg-grid-column>