]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/web/js/ui/default/acq/financial/view_provider.js
Merging acq-experiment to trunk, since rel_1_4 has been branched.
[working/Evergreen.git] / Open-ILS / web / js / ui / default / acq / financial / view_provider.js
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');
11
12 var provider = null;
13 var marcRegex = /^\/\/\*\[@tag="(\d+)"]\/\*\[@code="(\w)"]$/;
14
15 function getOrgInfo(rowIndex) {
16     data = providerGrid.model.getRow(rowIndex);
17     if(!data) return;
18     return fieldmapper.aou.findOrgUnit(data.owner).shortname();
19 }
20
21 function getTag(rowIdx) {
22     data = padGrid.model.getRow(rowIdx);
23     if(!data) return;
24     return data.xpath.replace(marcRegex, '$1');
25 }
26
27 function getSubfield(rowIdx) {
28     data = padGrid.model.getRow(rowIdx);
29     if(!data) return;
30     return data.xpath.replace(marcRegex, '$2');
31 }
32
33
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();
40 }
41
42 function loadPADGrid() {
43     openils.acq.Provider.retrieveLineitemProviderAttrDefs(providerId, 
44         function(attrs) {
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);
49             padGrid.update();
50         }
51     );
52 }
53
54
55 function fetchProvider() {
56     fieldmapper.standardRequest(
57         ['open-ils.acq', 'open-ils.acq.provider.retrieve'],
58         {   async: true,
59             params: [ openils.User.authtoken, providerId ],
60             oncomplete: function(r) {
61                 provider = r.recv().content();
62                 loadProviderGrid(provider);
63             }
64         }
65     );
66 }
67
68 function createOrderRecordField(fields) {
69     fields.provider = providerId;
70     if(!fields.xpath) 
71         fields.xpath = '//*[@tag="'+fields.tag+'"]/*[@code="'+fields.subfield+'"]';
72     delete fields.tag;
73     delete fields.subfield;
74     openils.acq.Provider.createLineitemProviderAttrDef(fields, 
75         function(id) {
76             loadPADGrid();
77         }
78     );
79 }
80
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());
85 }
86
87 function deleteORDataFields() {
88     var list = []
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();});
94 }
95
96
97 openils.Util.addOnLoad(fetchProvider);
98
99