]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/web/js/ui/default/acq/financial/view_provider.js
LP2045292 Color contrast for AngularJS patron bills
[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.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');
12
13 var provider = null;
14 var marcRegex = /^\/\/\*\[@tag="(\d+)"]\/\*\[@code="(\w)"]$/;
15
16 function getOrgInfo(rowIndex, item) {
17     if(!item) return ''; 
18     var owner = this.grid.store.getValue(item, 'owner'); 
19     return fieldmapper.aou.findOrgUnit(owner).shortname();
20
21 }
22
23 function getTag(rowIdx, item) {
24     if(!item) return '';
25     var xpath = this.grid.store.getValue(item, 'xpath');
26     return xpath.replace(marcRegex, '$1');
27 }
28
29 function getSubfield(rowIdx, item) {
30     if(!item) return '';
31     var xpath = this.grid.store.getValue(item, 'xpath');
32     return xpath.replace(marcRegex, '$2');
33 }
34
35 function loadProviderGrid() {
36     var store = new dojo.data.ItemFileReadStore({data:acqpro.toStoreData([provider])});
37    
38     providerGrid.setStore(store);
39     providerGrid.render();
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