From: erickson Date: Tue, 13 May 2008 15:34:33 +0000 (+0000) Subject: dojo-ized the PO details interface. for now, has summary and lineitem grids X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=3d2aad8781f7dde3d600e5b84ab922d3d30fa851;p=Evergreen.git dojo-ized the PO details interface. for now, has summary and lineitem grids git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@9578 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/search.js b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/search.js index 71c819772e..ad048ab845 100644 --- a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/search.js +++ b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/search.js @@ -18,7 +18,7 @@ function getProvider(rowIndex) { return openils.acq.Provider.retrieve(data.provider).name(); } -function getOwner(rowIndex) { +function getPOOwner(rowIndex) { data = poGrid.model.getRow(rowIndex); if(!data) return; return new openils.User({id:data.owner}).user.usrname(); diff --git a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/view_po.js b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/view_po.js new file mode 100644 index 0000000000..c56a27cc65 --- /dev/null +++ b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/view_po.js @@ -0,0 +1,104 @@ +dojo.require("dijit.Dialog"); +dojo.require('dijit.form.FilteringSelect'); +dojo.require('dijit.layout.TabContainer'); +dojo.require('dijit.layout.ContentPane'); +dojo.require('dojox.grid.Grid'); +dojo.require('openils.acq.PO'); +dojo.require('openils.Event'); +dojo.require('openils.User'); +dojo.require('fieldmapper.OrgUtils'); +dojo.require('openils.acq.Provider'); +dojo.require('openils.acq.Picklist'); + +var PO = null; +var lineitems = []; + +function getOrgInfo(rowIndex) { + data = poGrid.model.getRow(rowIndex); + if(!data) return; + return fieldmapper.aou.findOrgUnit(data.owner).shortname(); +} + +function getProvider(rowIndex) { + data = poGrid.model.getRow(rowIndex); + if(!data) return; + return openils.acq.Provider.retrieve(data.provider).name(); +} + +function getPOOwner(rowIndex) { + data = poGrid.model.getRow(rowIndex); + if(!data) return; + return new openils.User({id:data.owner}).user.usrname(); +} + +function getJUBTitle(rowIndex) { + var data = liGrid.model.getRow(rowIndex); + if(!data) return ''; + for(var i in lineitems) { + var li = lineitems[i]; + if(li.id() == data.id) { + openils.acq.Picklist.cache[data.id] = li; + return openils.acq.Picklist.find_attr(data.id, 'title', 'lineitem_marc_attr_definition') + } + } +} + +function getJUBPrice(rowIndex) { + var data = liGrid.model.getRow(rowIndex); + if(!data) return; + for(var i in lineitems) { + var li = lineitems[i]; + if(li.id() == data.id) { + openils.acq.Picklist.cache[data.id] = li; + return openils.acq.Picklist.find_attr(data.id, 'price', 'lineitem_marc_attr_definition') + } + } +} + + +function loadPOGrid() { + if(!PO) return; + var store = new dojo.data.ItemFileReadStore({data:acqpo.toStoreData([PO])}); + var model = new dojox.grid.data.DojoData( + null, store, {rowsPerPage: 20, clientSort: true, query:{id:'*'}}); + poGrid.setModel(model); + poGrid.update(); +} + +function loadLIGrid() { + if(liGrid.isLoaded) return; + + function load(r) { + var po = r.recv().content(); + lineitems = po.lineitems(); + var store = new dojo.data.ItemFileReadStore({data:jub.toStoreData(lineitems)}); + var model = new dojox.grid.data.DojoData( + null, store, {rowsPerPage: 20, clientSort: true, query:{id:'*'}}); + liGrid.setModel(model); + liGrid.update(); + } + + fieldmapper.standardRequest( + ['open-ils.acq', 'open-ils.acq.purchase_order.retrieve'], + { async: true, + params: [openils.User.authtoken, poId, {flesh_lineitems:1, clear_marc:1}], /* XXX PAGING */ + oncomplete : load + } + ); + liGrid.isLoaded = true; +} + +function loadPage() { + fetchPO(); +} + +function fetchPO() { + openils.acq.PO.retrieve(poId, + function(po) { + PO = po; + loadPOGrid(); + } + ); +} + +dojo.addOnLoad(loadPage); diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/search.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/search.html index 8f689f19e5..3aad74f12f 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/search.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/search.html @@ -32,7 +32,7 @@ var poGridStructure = [{ cells : [[ {name: '${_("ID")}', field: 'id'}, - {name: '${_("Owner")}', get:getOwner}, + {name: '${_("Owner")}', get:getPOOwner}, {name: '${_("Ordering Agency")}', get:getOrgInfo}, {name: '${_("Create Time")}', field:'create_time'}, {name: '${_("Edit Time")}', field: "edit_time"}, diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/view_po.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/view_po.html index 56347aab91..b015724709 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/view_po.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/view_po.html @@ -1,62 +1,57 @@ # -*- coding: utf-8 -*- <%inherit file='../base.html' /> -<%namespace file='../../common/widgets.html' name='widget' /> -<%def name='page_title()'>${_('Evergreen View PO')} +<%def name='page_title()'>${_('View PO')} <%def name='block_content()'> -<%include file='po_summary.html' /> - -
- - - - - - - - - <% - import oilsweb.lib.bib - from oilsweb.lib.acq.po_manager import PO_Manager -%> - % for li in c.oils.acq.po.value.lineitems(): - - - - - - - - - - - - - - % endfor - -
- - - - -
- PUT PAGING HERE - - PUT PO ACTIONS HERE -
-
Item# of CopiesSelect
- - - ${PO_Manager.find_li_attr(li, "title")} - ${li.item_count()}
${PO_Manager.find_li_attr(li, "author")} -
- ${PO_Manager.find_li_attr(li, "isbn")} | - ${PO_Manager.find_li_attr(li, "pubdate")} | - ${PO_Manager.find_li_attr(li, "pagination")} - ${_('Delete')} - ${PO_Manager.find_li_attr(li, "price")}
-
+ + + + +
+
${_('PO Details')}
+
+ + +
+
+ +
+ + +
+
+ +
+ + +
+
+
+
+