1 dojo.require('dijit.layout.TabContainer');
2 dojo.require('openils.widget.AutoGrid');
3 dojo.require('dijit.form.FilteringSelect');
4 dojo.require('openils.PermaCrud');
5 dojo.require('openils.MarcXPathParser');
6 dojo.require('openils.widget.OrgUnitFilteringSelect');
10 var xpathParser = new openils.MarcXPathParser();
12 var adminPermOrgs = [];
13 var viewPermOrgs = [];
24 user = new openils.User();
31 openils.Util.hide('provider-details-div');
33 // after a provider is created, load the provider page
34 pListGrid.onPostCreate = function(fmObject) {
35 location.href = location.href + '/' + fmObject.id();
38 user.buildPermOrgSelector(
40 contextOrgSelector, null,
43 if (!contextOrgSelector.attr('value')) return
45 dojo.connect(contextOrgSelector, 'onChange', drawProviderGrid);
47 // fetch the admin org units
54 // fetch the view org units
71 function drawOneProvider() {
72 openils.Util.hide('provider-list-div');
74 var pcrud = new openils.PermaCrud();
75 pcrud.retrieve('acqpro', providerId, {
76 oncomplete : function(r) {
77 provider = openils.Util.readResponse(r);
78 console.log('provider is' + js2JSON(provider));
79 var pane = new openils.widget.EditPane({fmObject:provider, paneStackCount:2}, dojo.byId('provider-summary-pane'));
81 console.log("pane started");
82 dojo.connect(providerTabs, 'selectChild', drawProviderSummary);
86 drawProviderSummary();
90 function drawProviderGrid() {
91 pListGrid.resetStore();
93 // view providers for here plus children
94 var list = fieldmapper.aou.descendantNodeList(
95 contextOrgSelector.attr('value'), true, true);
98 {order_by : [ // sort providers I can edit to the front
101 compare : {'in' : adminPermOrgs},
104 { 'class' : 'acqpro',
112 function drawProviderSummary(child) {
113 var loadedTabs = {'provider-address' : true};
115 if(loadedTabs[child.id]) return;
116 loadedTabs[child.id] = true;
118 case 'tab-pro-contact':
119 pcListGrid.overrideEditWidgets.provider = new
120 dijit.form.TextBox({disabled: 'true', value: providerId});
121 pcListGrid.resetStore();
123 oncomplete:function(r) {
125 pcListGrid.store.fetch( {
126 onComplete:function(list) {
130 dojo.forEach(list, function(item) {
131 contactIds.push(pcListGrid.store.getValue(item, 'id'));
134 pcaListGrid.overrideEditWidgets.contact = new
135 dijit.form.FilteringSelect({store: pcListGrid.store});
136 pcaListGrid.resetStore();
137 pcaListGrid.loadAll({order_by:{acqpca : 'contact'}}, {contact: contactIds});
145 }, {provider : providerId});
150 padListGrid.overrideEditWidgets.provider = new
151 dijit.form.TextBox({disabled: 'true', value: providerId});
152 padListGrid.resetStore();
153 padListGrid.loadAll({order_by:{acqlipad : 'code'}}, {provider : providerId});
157 phsListGrid.overrideEditWidgets.provider = new
158 dijit.form.TextBox({disabled: 'true', value: providerId});
159 phsListGrid.resetStore();
160 phsListGrid.loadAll({order_by:{acqphsm : 'name'}}, {provider : providerId});
164 invListGrid.resetStore();
166 {"order_by": {"acqinv": "recv_date DESC"}},
167 {"provider": providerId}
172 paListGrid.overrideEditWidgets.provider = new
173 dijit.form.TextBox({disabled: 'true', value: providerId});
174 paListGrid.resetStore();
175 paListGrid.loadAll({order_by:{acqpa:'provider'}}, {provider: providerId});
179 paListGrid.overrideEditWidgets.provider = new
180 dijit.form.TextBox({disabled: 'true', value: providerId});
181 paListGrid.resetStore();
182 paListGrid.loadAll({order_by:{acqpa:'provider'}}, {provider: providerId});
187 function getParsedTag(rowIndex, item) {
188 return item && xpathParser.parse(padListGrid.store.getValue(item, 'xpath')).tags;
192 function getParsedSubf(rowIndex, item) {
194 var subfields = xpathParser.parse(padListGrid.store.getValue(item, 'xpath')).subfields;
195 return subfields.join(',');
201 openils.Util.addOnLoad(draw);