import {IdlObject} from '@eg/core/idl.service';
import {EventService} from '@eg/core/event.service';
+const baseIdlClass = {
+ lineitem: 'jub',
+ purchase_order: 'acqpo',
+ picklist: 'acqpl',
+ invoice: 'acqinv'
+};
+
const defaultSearch = {
lineitem: {
jub: [{
const gridSource = new GridDataSource();
this.fetchAttrDefs().then(() => {
- gridSource.getRows = (pager: Pager) => {
+ gridSource.getRows = (pager: Pager, sort: any[]) => {
// don't do a search the very first time we
// get invoked, which is during initialization; we'll
opts['offset'] = pager.offset;
opts['limit'] = pager.limit;
opts['au_by_id'] = true;
+
+ if (sort.length > 0) {
+ opts['order_by'] = [];
+ sort.forEach(sort_clause => {
+ if (searchType === 'lineitem' &&
+ ['title', 'author'].indexOf(sort_clause.name) > -1) {
+ opts['order_by'].push({
+ class: 'acqlia',
+ field: 'attr_value',
+ direction: sort_clause.dir
+ });
+ opts['order_by_attr'] = sort_clause.name;
+ } else {
+ opts['order_by'].push({
+ class: baseIdlClass[searchType],
+ field: sort_clause.name,
+ direction: sort_clause.dir
+ });
+ }
+ });
+ }
+
return this.net.request(
'open-ils.acq',
'open-ils.acq.' + searchType + '.unified_search',
persistKey="acq.search.invoices"
[stickyHeader]="true"
[filterable]="true"
+ [sortable]="true"
idlClass="acqinv" [dataSource]="gridSource">
<eg-grid-toolbar-action label="Print Selected Invoices" i18n-label
idlClass="jub" [dataSource]="gridSource"
[stickyHeader]="true"
[filterable]="true"
+ [sortable]="true"
[showDeclaredFieldsOnly]="true">
<eg-grid-column path="id" [cellTemplate]="idTmpl" [disableTooltip]="true"></eg-grid-column>
- <!-- TODO: Title and Author filters will require special work as they're acqlia values -->
<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" [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="Links" path="_links" [cellTemplate]="liLinksTmpl" [disableTooltip]="true" [filterable]="false" [sortable]="false"></eg-grid-column>
+ <eg-grid-column path="claim_policy.name" [sortable]="false"></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>
</eg-grid>
persistKey="acq.search.selectionlists"
[stickyHeader]="true"
[filterable]="true"
+ [sortable]="true"
idlClass="acqpl" [dataSource]="gridSource">
<eg-grid-toolbar-action label="New Selection List" i18n-label
</eg-grid-toolbar-action>
<eg-grid-column path="name" [cellTemplate]="nameTmpl"></eg-grid-column>
- <eg-grid-column path="entry_count" [filterable]="false"></eg-grid-column>
+ <eg-grid-column path="entry_count" [filterable]="false" [sortable]="false"></eg-grid-column>
<eg-grid-column path="id" [hidden]="true"></eg-grid-column>
<eg-grid-column path="creator" [hidden]="true"></eg-grid-column>
persistKey="acq.search.purchaseorders"
[stickyHeader]="true"
[filterable]="true"
+ [sortable]="true"
idlClass="acqpo" [dataSource]="gridSource">
<eg-grid-column path="name" [cellTemplate]="nameTmpl"></eg-grid-column>