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.Grid');
6 dojo.require("fieldmapper.OrgUtils");
7 dojo.require('openils.acq.Provider');
8 dojo.require('openils.Event');
9 dojo.require('openils.User');
10 dojo.require('openils.Util');
13 var marcRegex = /^\/\/\*\[@tag="(\d+)"]\/\*\[@code="(\w)"]$/;
15 function getOrgInfo(rowIndex) {
16 data = providerGrid.model.getRow(rowIndex);
18 return fieldmapper.aou.findOrgUnit(data.owner).shortname();
21 function getTag(rowIdx) {
22 data = padGrid.model.getRow(rowIdx);
24 return data.xpath.replace(marcRegex, '$1');
27 function getSubfield(rowIdx) {
28 data = padGrid.model.getRow(rowIdx);
30 return data.xpath.replace(marcRegex, '$2');
34 function loadProviderGrid() {
35 var store = new dojo.data.ItemFileReadStore({data:acqpro.toStoreData([provider])});
36 var model = new dojox.grid.data.DojoData(
37 null, store, {rowsPerPage: 20, clientSort: true, query:{id:'*'}});
38 providerGrid.setModel(model);
39 providerGrid.update();
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);