From 3d66583386327ede543b3a7713761461061f6dbc Mon Sep 17 00:00:00 2001 From: erickson Date: Thu, 22 May 2008 15:54:05 +0000 Subject: [PATCH] moved jubgrid JS to external file added isbn and pubdate columns when jubgrid is used, you have to provide a list of lineitems directly so it knows how to find the lineitem-attr fields put jubgrid JS into an object (currently called JUBGrid) to contain the helper functions and grid references (less global namespace collision opportunities); updated picklist/view and li_search to use this updated grid Picklist now stores an array of lineitems refs in addition to the _data object git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@9665 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/web/js/dojo/openils/acq/Picklist.js | 8 +- .../media/ui_js/oils/default/acq/po/li_search.js | 47 +------- .../templates/oils/default/acq/picklist/view.html | 4 +- .../templates/oils/default/acq/po/li_search.html | 20 +--- .../templates/oils/default/common/jubgrid.html | 127 ++++++--------------- 5 files changed, 46 insertions(+), 160 deletions(-) diff --git a/Open-ILS/web/js/dojo/openils/acq/Picklist.js b/Open-ILS/web/js/dojo/openils/acq/Picklist.js index 57cee2e2b7..b33fa63155 100644 --- a/Open-ILS/web/js/dojo/openils/acq/Picklist.js +++ b/Open-ILS/web/js/dojo/openils/acq/Picklist.js @@ -31,15 +31,15 @@ dojo.declare('openils.acq.Picklist', null, { var mkStore = function (r) { var storeData; var msg; - var items = []; + pl_this._items = []; while (msg = r.recv()) { var data = msg.content(); pl_this._data[data.id()] = data; - items.push(data); + pl_this._items.push(data); } - storeData = jub.toStoreData(items); + storeData = jub.toStoreData(pl_this._items); pl_this._store = new dojo.data.ItemFileWriteStore({data:storeData}); pl_this._model = new dojox.grid.data.DojoData(null, pl_this._store, {rowsPerPage:20, clientSort:true, @@ -65,7 +65,7 @@ dojo.declare('openils.acq.Picklist', null, { fieldmapper.standardRequest( ['open-ils.acq', 'open-ils.acq.lineitem.picklist.retrieve'], { async: true, - params: [openils.User.authtoken, pl_id, {flesh_attrs:1}], + params: [openils.User.authtoken, pl_id, {flesh_attrs:1, clear_marc:1}], oncomplete: mkStore }); }, diff --git a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/li_search.js b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/li_search.js index 22ee466686..efb710ee6a 100644 --- a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/li_search.js +++ b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/acq/po/li_search.js @@ -68,52 +68,7 @@ function viewList() { 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(); -} - - -function getProvider(rowIndex) { - data = liGrid.model.getRow(rowIndex); - if(!data) return; - if(!data.provider) return ''; - return openils.acq.Provider.retrieve(data.provider).code(); -} - -function getLi(id) { - for(var i in lineitems) { - var li = lineitems[i]; - if(li.id() == id) - return li; - } -} - -function getJUBTitle(rowIndex) { - var data = liGrid.model.getRow(rowIndex); - if(!data) return ''; - return new openils.acq.Lineitems( - {lineitem:getLi(data.id)}).findAttr('title', 'lineitem_marc_attr_definition') -} - -function getJUBIsbn(rowIndex) { - var data = liGrid.model.getRow(rowIndex); - if(!data) return ''; - return new openils.acq.Lineitems( - {lineitem:getLi(data.id)}).findAttr('isbn', 'lineitem_marc_attr_definition') -} - -function getJUBPubdate(rowIndex) { - var data = liGrid.model.getRow(rowIndex); - if(!data) return ''; - return new openils.acq.Lineitems( - {lineitem:getLi(data.id)}).findAttr('pubdate', 'lineitem_marc_attr_definition') -} - -function getJUBPrice(rowIndex) { - var data = liGrid.model.getRow(rowIndex); - if(!data) return; - return new openils.acq.Lineitems( - {lineitem:getLi(data.id)}).findAttr('price', 'lineitem_marc_attr_definition') + JUBGrid.populate(liGrid, model, lineitems) } function createPOFromLineitems() { diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view.html index b121a33765..48e4b7716b 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/picklist/view.html @@ -9,6 +9,7 @@ <%def name="page_title()">${_('Picklist')} @@ -36,8 +37,7 @@ dojo.byId("oils-acq-picklist-attr-cdate").innerHTML = plist.create_time(); dojo.byId("oils-acq-picklist-attr-edate").innerHTML = plist.edit_time(); dojo.byId("oils-acq-picklist-attr-owner").innerHTML = plist.owner(); - - populateJUBGrid(pickListGrid, model); + JUBGrid.populate(pickListGrid, model, plist._items); }); } dojo.addOnLoad(loadPL); diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/li_search.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/li_search.html index 920100b25f..0e429b8246 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/li_search.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/po/li_search.html @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- <%inherit file='base.html'/> <%def name="page_title()">${_('Lineitem Search')} +<%namespace file='/oils/default/common/jubgrid.html' name='jubgrid'/> + <%def name="block_content()"> @@ -70,23 +72,7 @@ - - - -
+ ${jubgrid.jubgrid('oils-acq-lineitem', 'liGrid')} diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/common/jubgrid.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/common/jubgrid.html index a18485f0c5..79af8468ad 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/common/jubgrid.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/common/jubgrid.html @@ -36,102 +36,47 @@ instantiate the template, and model is a javascript variable pointing to the JUB model (and store) that you have created. -
- + -
-
- +
-
-
- -
+
+
+
-- 2.11.0