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