added initial provider attr def creation interface. need to add a dropdown of code...
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 14 May 2008 21:41:34 +0000 (21:41 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 14 May 2008 21:41:34 +0000 (21:41 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@9608 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/js/dojo/openils/acq/Provider.js
Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/financial/view_provider.js
Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/financial/view_provider.html

index 1d015b2..6b4f05c 100644 (file)
@@ -68,5 +68,30 @@ openils.acq.Provider.retrieve = function(id) {
     return openils.acq.Provider.cache[id];
 };
 
+
+openils.acq.Provider.retrieveLineitemAttrDefs = function(providerId, oncomplete) {
+    fieldmapper.standardRequest(
+        ['open-ils.acq', 'open-ils.acq.lineitem_provider_attr_definition.provider.retrieve.atomic'],
+        {   async: true,
+            params: [openils.User.authtoken, providerId],
+            oncomplete: function(r) {oncomplete(r.recv().content());}
+        }
+    );
+}
+
+openils.acq.Provider.createLineitemAttrDef = function(fields, oncomplete) {
+    var attr = new acqlipad();
+    for(var field in fields) 
+        attr[field](fields[field]);
+
+    fieldmapper.standardRequest(
+        ['open-ils.acq', 'open-ils.acq.lineitem_provider_attr_definition.create'],
+        {   async: true,
+            params: [openils.User.authtoken, attr],
+            oncomplete: function(r) {oncomplete(r.recv().content());}
+        }
+    );
 }
 
+
+}
index 7943b80..a4bac60 100644 (file)
@@ -22,6 +22,17 @@ function loadProviderGrid() {
     providerGrid.setModel(model);
     providerGrid.update();
 }
+function loadPADGrid() {
+    openils.acq.Provider.retrieveLineitemAttrDefs(providerId, 
+        function(attrs) {
+            var store = new dojo.data.ItemFileReadStore({data:acqlipad.toStoreData(attrs)});
+            var model = new dojox.grid.data.DojoData(
+                null, store, {rowsPerPage: 20, clientSort: true, query:{id:'*'}});
+            padGrid.setModel(model);
+            padGrid.update();
+        }
+    );
+}
 
 function fetchProvider() {
     fieldmapper.standardRequest(
@@ -36,5 +47,15 @@ function fetchProvider() {
     );
 }
 
+function createOrderRecordField(fields) {
+    fields.provider = providerId;
+    openils.acq.Provider.createLineitemAttrDef(fields, 
+        function(id) {
+            loadPADGrid();
+        }
+    );
+}
+
 dojo.addOnLoad(fetchProvider);
 
+
index a12cfb9..49cad7e 100644 (file)
             </script>
             <div jsId='providerGrid' dojoType="dojox.Grid" structure='providerGridLayout'> </div>
         </div>
+        <div dojoType="dijit.layout.ContentPane" 
+                class='oils-acq-detail-content-pane' title="${_('Order Record Format')}" style='height:400px;'>
+
+            <div class='oils-acq-actions-div' style='margin:8px;'>
+                <!-- Dropdown menu for creating a new funding source credit -->
+                <div dojoType="dijit.form.DropDownButton">
+                    <span>${('Create Order Record Field')}</span>
+                    <div dojoType="dijit.TooltipDialog" execute="createOrderRecordField(arguments[0]);">
+                        <table class='dijitTooltipTable'>
+                            <tr>
+                                <td><label for="code">${_('Code:')} </label></td>
+                                <td><input dojoType='dijit.form.TextBox' name='code'></input></td>
+                            </tr>
+                            <tr>
+                                <td><label for="description">${_('Description:')} </label></td>
+                                <td>
+                                    <!-- XXX get currency from funding source ... -->
+                                    <input dojoType="dijit.form.TextBox" name="description"> </input>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td><label for="amount">${_('XPath:')} </label></td>
+                                <td><input dojoType="dijit.form.TextBox" name="xpath"></input></td>
+                            </tr>
+                            <tr>
+                                <td colspan='2' align='center'>
+                                    <button dojoType=dijit.form.Button type="submit">${_('Apply')}</button>
+                                </td>
+                            </tr>
+                        </table>
+                    </div>
+                </div> 
+            </div>
+
+            <script type='dojo/connect' event='onShow'>loadPADGrid();</script>
+            <script>
+                var padGridLayout = [{
+                    cells : [[
+                        {name: '${_("ID")}', field: 'id'},
+                        {name: '${_("Code")}', field:'code'},
+                        {name: '${_("Description")}', field: "description", width:'auto'}, 
+                        {name: '${_("XPath")}', field:'xpath', width:'auto'}
+                    ]]
+                }];
+            </script>
+            <div jsId='padGrid' dojoType="dojox.Grid" structure='padGridLayout'> </div>
+        </div>
     </div>
 </div>