<option i18n value="__gte" [hidden]="searchTermDatatypes[t.field] != 'timestamp' && !dateLikeSearchFields[t.field]">is on or AFTER</option>
<option i18n value="__between" [hidden]="searchTermDatatypes[t.field] != 'timestamp'">is BETWEEN</option>
<option i18n value="__age" [hidden]="searchTermDatatypes[t.field] != 'timestamp'">age (relative date)</option>
- <option i18n value="__isnotnull">exists</option>
- <option i18n value="__isnull">does NOT exist</option>
+ <option i18n value="__isnotnull" [hidden]="searchTermDatatypes[t.field] == 'id' || searchTermFieldIsRequired[t.field]">exists</option>
+ <option i18n value="__isnull" [hidden]="searchTermDatatypes[t.field] == 'id' || searchTermFieldIsRequired[t.field]">does NOT exist</option>
<option i18n value="__in">matches a term from a file</option>
</select>
</div>
availableSearchFields = {};
dateLikeSearchFields = {};
searchTermDatatypes = {};
+ searchTermFieldIsRequired = {};
searchFieldLinkedClasses = {};
validSearchTypes = ['lineitems', 'purchaseorders', 'invoices', 'selectionlists'];
defaultSearchType = 'lineitems';
datatype: field.datatype
};
self.searchTermDatatypes[hint + ':' + field.name] = field.datatype;
+ self.searchTermFieldIsRequired[hint + ':' + field.name] = field.required;
if (field.datatype === 'link') {
self.searchFieldLinkedClasses[hint + ':' + field.name] = field.class;
}
</a>
<a class="dropdown-item"
routerLink="/staff/acq/search/invoices"
- [queryParams]="{f: ['acqinv:receiver', 'acqinv:close_date'], val1: [ws_ou(), null]}">
+ [queryParams]="{f: ['acqinv:receiver', 'acqinv:close_date'], op: ['', '__isnull'], val1: [ws_ou(), null]}">
<span class="material-icons">attach_money</span>
<span i18n>Open Invoices</span>
</a>