From 26ca6b10690b47b357e34f9abef9cbe6e1a13890 Mon Sep 17 00:00:00 2001 From: erickson Date: Tue, 22 Apr 2008 01:58:31 +0000 Subject: [PATCH] updating provider grid code. added provider retrieval method git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@9422 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/web/js/dojo/openils/acq/Provider.js | 58 ++++++++++++------- .../oils/default/acq/financial/list_providers.html | 66 +++++++++++++++++----- 2 files changed, 88 insertions(+), 36 deletions(-) diff --git a/Open-ILS/web/js/dojo/openils/acq/Provider.js b/Open-ILS/web/js/dojo/openils/acq/Provider.js index 523ba854b9..a13bd22ac3 100644 --- a/Open-ILS/web/js/dojo/openils/acq/Provider.js +++ b/Open-ILS/web/js/dojo/openils/acq/Provider.js @@ -17,39 +17,55 @@ if(!dojo._hasResource['openils.acq.Provider']) { dojo._hasResource['openils.acq.Provider'] = true; dojo.provide('openils.acq.Provider'); -dojo.require('util.Dojo'); +dojo.require('fieldmapper.Fieldmapper'); /** Declare the Provider class with dojo */ dojo.declare('openils.acq.Provider', null, { /* add instance methods here if necessary */ }); -/* define some static provider methods ------- */ +openils.acq.Provider.cache = {}; -openils.acq.Provider.loadGrid = function(domId, columns) { - /** Fetches the list of providers and builds a grid from them */ +/* define some static provider methods ------- */ - var gridRefs = util.Dojo.buildSimpleGrid(domId, columns, [], 'id', true); - var ses = new OpenSRF.ClientSession('open-ils.acq'); - var req = ses.request('open-ils.acq.provider.org.retrieve', openils.User.authtoken); +openils.acq.Provider.createStore = function(onComplete, limitPerm) { + /** Fetches the list of funding_sources and builds a grid from them */ - req.oncomplete = function(r) { - var msg - gridRefs.grid.setModel(gridRefs.model); + function mkStore(r) { + var msg; + var items = []; while(msg = r.recv()) { - var prov = msg.content(); - gridRefs.store.newItem({ - id:prov.id(), - name:prov.name(), - owner: findOrgUnit(prov.owner()).name(), - currency_type:prov.currency_type() - }); + var provider = msg.content(); + openils.acq.Provider.cache[provider.id()] = provider; + items.push(provider); } - gridRefs.grid.update(); - }; + onComplete(acqpro.toStoreData(items)); + } - req.send(); - return gridRefs.grid; + fieldmapper.standardRequest( + ['open-ils.acq', 'open-ils.acq.provider.org.retrieve'], + { async: true, + params: [openils.User.authtoken], + oncomplete: mkStore + } + ); }; + + +/** + * Synchronous provider retrievel method + */ +openils.acq.Provider.retrieve = function(id) { + if(openils.acq.Provider.cache[id]) + return openils.acq.Provider.cache[id]; + + openils.acq.Provider.cache[id] = + fieldmapper.standardRequest( + ['open-ils.acq', 'open-ils.acq.provider.retrieve'], + [openils.User.authtoken, id] + ); + return openils.acq.Provider.cache[id]; +}; + } diff --git a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/financial/list_providers.html b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/financial/list_providers.html index 19b7acd790..e876b126d2 100644 --- a/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/financial/list_providers.html +++ b/Open-ILS/web/oilsweb/oilsweb/templates/oils/default/acq/financial/list_providers.html @@ -1,28 +1,64 @@ # -*- coding: utf-8 -*- <%inherit file='../base.html'/> -<%namespace file='../../common/widgets.html' name='widget'/> <%def name="page_title()">${_('Providers')} <%def name="block_content()"> + +
${_('Providers')}
-
-
+ + +
+ + -- 2.11.0