]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/web/js/ui/default/conify/global/acq/provider.js
Acq: Tracked down a small but subtle bug with the Holding Subfield tab of
[Evergreen.git] / Open-ILS / web / js / ui / default / conify / global / acq / provider.js
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
7
8 var provider;
9 var xpathParser = new openils.MarcXPathParser();
10 var subFields= [];
11
12 function draw() {
13     if(providerId) {
14         openils.Util.addCSSClass(dojo.byId('provider-list-div'), 'hidden');
15        
16         console.log('in draw');
17         var pcrud = new openils.PermaCrud();
18         pcrud.retrieve('acqpro', providerId, {
19                 oncomplete : function(r) {
20                     provider = openils.Util.readResponse(r);
21                     console.log('provider is' + js2JSON(provider));
22                     var pane = new openils.widget.EditPane({fmObject:provider, paneStackCount:2}, dojo.byId('provider-summary-pane'));
23                     pane.startup();
24                     console.log("pane started");
25                     dojo.connect(providerTabs, 'selectChild', drawProviderSummary);                        
26                 }
27  
28             });
29       
30         drawProviderSummary();
31     } else {
32         openils.Util.addCSSClass(dojo.byId('provider-details-div'), 'hidden');       
33         console.log('in else block');
34         pListGrid.loadAll({order_by:{acqpro : 'name'}});       
35         pListGrid.onPostCreate = function(fmObject) {
36             location.href = location.href + '/' + fmObject.id();
37         }
38         
39     }
40    
41 }
42 function drawProviderSummary(child) {
43     var loadedTabs = {'provider-address' : true};
44     if(child){   
45         if(loadedTabs[child.id]) return;
46         loadedTabs[child.id] = true;
47         switch(child.id) {
48         case 'tab-pro-contact': 
49             pcListGrid.overrideEditWidgets.provider = new
50                 dijit.form.TextBox({disabled: 'true', value: providerId});
51             pcListGrid.resetStore();
52             pcListGrid.loadAll( {oncomplete:function(r){
53                         var count = 0; 
54                         pcListGrid.store.fetch( {onComplete:function(list) { 
55                             count =  list.length
56                             if(count>=1){
57                                 var contactIds = [];                                                    dojo.forEach(list, function(item) {
58                                         contactIds.push(pcListGrid.store.getValue(item, 'id')); }
59                                     );
60                                
61                                 pcaListGrid.overrideEditWidgets.contact = new
62                                 dijit.form.FilteringSelect({store: pcListGrid.store});
63                                 pcaListGrid.resetStore();
64                                 pcaListGrid.loadAll({order_by:{acqpca : 'contact'}}, {contact: contactIds});
65                             }else{ 
66                                 return;
67                             }            
68                                 }
69                             }
70                             );
71                     }
72                 }, {provider : providerId});
73             
74             break;
75         case 'tab-attr': 
76             padListGrid.overrideEditWidgets.provider = new
77                 dijit.form.TextBox({disabled: 'true', value: providerId});
78             padListGrid.resetStore();
79             padListGrid.loadAll({order_by:{acqlipad : 'code'}}, {provider : providerId});
80             break;
81         case 'tab-hold': 
82             phsListGrid.overrideEditWidgets.provider = new
83                 dijit.form.TextBox({disabled: 'true', value: providerId});
84             phsListGrid.resetStore();
85             phsListGrid.loadAll({order_by:{acqphsm : 'name'}}, {provider : providerId});
86             break;
87         case "tab-invoice":
88             invListGrid.resetStore();
89             invListGrid.loadAll(
90                 {"order_by": {"acqinv": "recv_date DESC"}},
91                 {"provider": providerId}
92             );
93             break;
94         default:
95             paListGrid.overrideEditWidgets.provider = new
96                 dijit.form.TextBox({disabled: 'true', value: providerId});
97             paListGrid.resetStore();
98             paListGrid.loadAll({order_by:{acqpa:'provider'}}, {provider: providerId}); 
99         }
100         
101     } else {
102         paListGrid.overrideEditWidgets.provider = new
103             dijit.form.TextBox({disabled: 'true', value: providerId});
104         paListGrid.resetStore();
105         paListGrid.loadAll({order_by:{acqpa:'provider'}}, {provider: providerId}); 
106     }
107 }
108
109
110 function getParsedTag(rowIndex, item) {
111     return item && xpathParser.parse(padListGrid.store.getValue(item, 'xpath')).tags;
112 }
113
114
115 function getParsedSubf(rowIndex, item) {
116
117     if(item) {
118         var subfields = xpathParser.parse(padListGrid.store.getValue(item, 'xpath')).subfields;
119         return subfields.join(',');
120     }
121     return'';
122 }
123 openils.Util.addOnLoad(draw);