Show
Ignore:
Timestamp:
05/13/08 22:50:37 (5 months ago)
Author:
djfiander
Message:

Move all server interaction into the Javascript
Use new object-oriented openils.acq.Picklist
Can now edit funds on lineitem_details

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/acq-experiment/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view.html

    r9517 r9598  
    44--> 
    55<%inherit file='../base.html'/> 
    6 <%namespace file='../../common/widgets.html' name='widget' /> 
    7 <%namespace file='picklist_summary.html' name='picklist' /> 
    86 
    97<%def name="block_js()"> 
    108    ${parent.block_js()} 
     9    <script type="text/javascript"> 
     10        dojo.require('dojo.data.ItemFileReadStore'); 
     11        dojo.require("dijit.layout.SplitContainer") 
     12        dojo.require('dijit.layout.LayoutContainer'); 
     13        dojo.require('dijit.layout.ContentPane'); 
     14        dojo.require('dijit.layout.SplitContainer'); 
     15        dojo.require('dojox.grid.Grid'); 
     16        dojo.require('openils.acq.Picklist'); 
     17        dojo.require("openils.acq.Fund"); 
     18        dojo.require("openils.acq.Lineitems"); 
     19        dojo.require("openils.widget.FundSelector"); 
     20        dojo.require("fieldmapper.OrgUtils"); 
    1121 
    12     <script type="text/javascript"> 
    13         dojo.require("dijit.layout.SplitContainer") 
    14         dojo.require('openils.acq.Picklist'); 
    15         // For decoding fund IDs into names 
    16         dojo.require("openils.acq.Fund"); 
    17         // For decoding Library IDs into names 
    18         dojo.require("fieldmapper.OrgUtils"); 
    19     </script> 
    20     <script type='text/javascript'> 
     22        var globalUser = new openils.User(); 
    2123        function getJUBTitle(rowIndex) { 
    2224            var data = pickListGrid.model.getRow(rowIndex); 
    2325            if (!data) return ''; 
    24             return openils.acq.Picklist.find_attr(data.id, "title", "lineitem_marc_attr_definition") 
     26            return plist.find_attr(data.id, "title", "lineitem_marc_attr_definition") 
    2527        } 
    2628        function getJUBPrice(rowIndex) { 
    2729            var data = pickListGrid.model.getRow(rowIndex); 
    2830            if (!data) return; 
    29             return openils.acq.Picklist.find_attr(data.id, "price", "lineitem_marc_attr_definition") 
     31            return plist.find_attr(data.id, "price", "lineitem_marc_attr_definition") 
    3032        } 
    3133        function getLIDFundName(rowIndex) { 
     
    5355<%def name="block_content()"> 
    5456<div dojoType="dijit.layout.LayoutContainer" style="height:100%"> 
    55     <div dojoType="dijit.layout.ContentPane" layoutAlign="top"> 
    56         ${picklist.summary(c.oils.acq.picklist.value)} 
     57    <div dojoType="dijit.layout.ContentPane" layoutAlign="top" jsId="pl_header"> 
     58        <div id='oils-acq-picklist-header'> 
     59            ${_('Picklist')} 
     60            <span id='oils-acq-picklist-name'> </span> 
     61            <div class='oils-acq-picklist-attributes'> 
     62                <div>Create 
     63                date: <span id="oils-acq-picklist-attr-cdate"></span></div> 
     64                <div>Last updated: <span id="oils-acq-picklist-attr-edate"></span></div> 
     65                <div>Selector: <span id="oils-acq-picklist-attr-owner"></span></div> 
     66            </div> 
     67        </div> 
    5768    </div> 
    5869    <div dojoType="dijit.layout.SplitContainer" 
     
    6071         activeSizing="1" layoutAlign="client"> 
    6172        <div id="oils-acq.picklist-container" 
    62              dojoType="dijit.layout.ContentPane" sizeMin="20" sizeShare="20"> 
     73             dojoType="dijit.layout.ContentPane" sizeMin="20" sizeShare="50"> 
    6374            <div jsid='pickListGrid' dojoType='dojox.Grid' 
    6475                 id="oils-acq-picklist-grid"> </div> 
    65             <script type="text/javascript" src="/js/dojo/openils/acq/Lineitems.js"></script> 
    66             <script type="text/javascript" src="/js/dojo/openils/widget/FundSelector.js"></script> 
    6776            <script type="text/javascript"> 
    68                 dojo.require("openils.acq.Picklist"); 
    69                 dojo.require("openils.acq.Lineitems"); 
    70 //              dojo.require("openils.widget.FundSelector"); 
    71                 dojo.require('dojo.data.ItemFileReadStore'); 
    72  
    7377                var picklistLayout = [{ 
    7478                    cells: [[ 
     
    8185                }]; 
    8286 
    83                 var lineitemLayout = [{ cells: [[ 
    84                     {name:"ID", field:"id"}, 
    85                     {name:"Fund", field:"fund", 
    86                      editor: openils.widget.FundSelector, 
    87                      get:getLIDFundName}, 
    88                     {name:"Location", get:getLIDLibName} ]] }]; 
    89  
    90                 openils.acq.Picklist.createStore(${c.oils.acq.picklist.value.id()}, 
    91                     function(storeData) { 
    92                         var store = new dojo.data.ItemFileReadStore({data:storeData}); 
    93                         var model = new dojox.grid.data.DojoData(null, store, 
    94                                          {rowsPerPage:20, clientSort:true, 
    95                                           query:{id:'*'}}); 
    96                         pickListGrid.setStructure(picklistLayout); 
     87                var lineitemLayout = [{ 
     88                    cells: [[ 
     89                        {name:"ID", field:"id"}, 
     90                        {name:"Fund", field:"fund", 
     91                         get:getLIDFundName, 
     92                         editor: openils.widget.FundSelector, 
     93                        }, 
     94                        {name:"Location", field:"location", 
     95                         get:getLIDLibName} 
     96                    ]] 
     97                }]; 
     98                var plist = new openils.acq.Picklist(${c.oils.acq.picklist.value}, 
     99                    function(model) { 
     100                        pickListGrid.setStructure(picklistLayout); 
    97101                        pickListGrid.setModel(model); 
    98102 
    99                         pickListGrid.onRowClick = function(evt) { 
     103                        dojo.connect(pickListGrid, "onRowClick", function(evt) { 
    100104                            openils.acq.Lineitems.loadGrid(lineItemGrid, 
    101105                                                           model.getRow(evt.rowIndex).id, 
    102106                                                           lineitemLayout); 
    103                         }; 
     107                        }); 
    104108 
     109                        dojo.byId("oils-acq-picklist-name").innerHTML = plist.name(); 
     110                        dojo.byId("oils-acq-picklist-attr-cdate").innerHTML = plist.create_time(); 
     111                        dojo.byId("oils-acq-picklist-attr-edate").innerHTML = plist.edit_time(); 
     112                        dojo.byId("oils-acq-picklist-attr-owner").innerHTML = plist.owner(); 
    105113                        pickListGrid.update(); 
    106114                    }); 
     
    108116        </div> 
    109117        <div dojoType="dijit.layout.ContentPane" sizeMin="20" 
    110              sizeShare="80"> 
     118             sizeShare="50"> 
    111119            <div jsid="lineItemGrid" dojoType="dojox.Grid" id="oils-acq-picklist-details-grid"> 
    112120                <!-- Copy order details go here --> 
     
    116124</div> 
    117125</%def> 
     126<!-- Local Variables: --> 
     127<!-- mmm-classes: html-js --> 
     128<!-- End: -->