1 dojo.require("dijit.Dialog");
2 dojo.require('dijit.layout.TabContainer');
3 dojo.require('dijit.layout.ContentPane');
4 dojo.require('dijit.form.FilteringSelect');
5 dojo.require('dojox.grid.DataGrid');
6 dojo.require('dojo.data.ItemFileReadStore');
7 dojo.require("fieldmapper.OrgUtils");
8 dojo.require('openils.acq.Provider');
9 dojo.require('openils.Event');
10 dojo.require('openils.User');
11 dojo.require('openils.Util');
14 var marcRegex = /^\/\/\*\[@tag="(\d+)"]\/\*\[@code="(\w)"]$/;
16 function getOrgInfo(rowIndex, item) {
18 var owner = this.grid.store.getValue(item, 'owner');
19 return fieldmapper.aou.findOrgUnit(owner).shortname();
23 function getTag(rowIdx, item) {
25 var xpath = this.grid.store.getValue(item, 'xpath');
26 return xpath.replace(marcRegex, '$1');
29 function getSubfield(rowIdx, item) {
31 var xpath = this.grid.store.getValue(item, 'xpath');
32 return xpath.replace(marcRegex, '$2');
35 function loadProviderGrid() {
36 var store = new dojo.data.ItemFileReadStore({data:acqpro.toStoreData([provider])});
38 providerGrid.setStore(store);
39 providerGrid.render();
42 function loadPADGrid() {
43 openils.acq.Provider.retrieveLineitemProviderAttrDefs(providerId,
45 var store = new dojo.data.ItemFileReadStore({data:acqlipad.toStoreData(attrs)});
46 var model = new dojox.grid.data.DojoData(
47 null, store, {rowsPerPage: 20, clientSort: true, query:{id:'*'}});
48 padGrid.setModel(model);
55 function fetchProvider() {
56 fieldmapper.standardRequest(
57 ['open-ils.acq', 'open-ils.acq.provider.retrieve'],
59 params: [ openils.User.authtoken, providerId ],
60 oncomplete: function(r) {
61 provider = r.recv().content();
62 loadProviderGrid(provider);
68 function createOrderRecordField(fields) {
69 fields.provider = providerId;
71 fields.xpath = '//*[@tag="'+fields.tag+'"]/*[@code="'+fields.subfield+'"]';
73 delete fields.subfield;
74 openils.acq.Provider.createLineitemProviderAttrDef(fields,
81 function setORDesc() {
82 var code = dijit.byId('oils-acq-provider-or-code');
83 var desc = dijit.byId('oils-acq-provider-or-desc');
84 desc.setValue(code.getDisplayedValue());
87 function deleteORDataFields() {
89 var selected = padGrid.selection.getSelected();
90 for(var idx = 0; idx < selected.length; idx++)
91 list.push(padGrid.model.getRow(selected[idx]).id);
92 openils.acq.Provider.lineitemProviderAttrDefDeleteList(
93 list, function(){loadPADGrid();});
97 openils.Util.addOnLoad(fetchProvider);