openils.acq.Fund.cache = {};
-openils.acq.Fund.createStore = function(onComplete) {
+openils.acq.Fund.createStore = function(onComplete, limitPerm) {
/** Fetches the list of funding_sources and builds a grid from them */
function mkStore(r) {
items.push(src);
console.log('loaded fund: ' + src.name());
}
- console.log(js2JSON(acqf.toStoreData(items)));
onComplete(acqf.toStoreData(items));
}
fieldmapper.standardRequest(
['open-ils.acq', 'open-ils.acq.fund.org.retrieve'],
{ async: true,
- params: [openils.User.authtoken, null, {flesh_summary:1}],
+ params: [openils.User.authtoken, null, {flesh_summary:1, limit_perm:limitPerm}],
oncomplete: mkStore
}
);
);
};
+
+/**
+ * Synchronous fund retrievel method
+ */
+openils.acq.Fund.retrieve = function(id) {
+ if(openils.acq.Fund.cache[id])
+ return openils.acq.Fund.cache[id];
+ openils.acq.Fund.cache[id] = fieldmapper.standardRequest(
+ ['open-ils.acq', 'open-ils.acq.fund.retrieve'],
+ [openils.User.authtoken, id]
+ );
+ return openils.acq.Fund.cache[id];
+};
+
+
openils.acq.Fund.deleteFromGrid = function(grid, onComplete) {
var list = []
var selected = grid.selection.getSelected();
if(!dojo._hasResource['openils.acq.FundingSource']) {
dojo._hasResource['openils.acq.FundingSource'] = true;
dojo.provide('openils.acq.FundingSource');
+dojo.require('fieldmapper.Fieldmapper');
/** Declare the FundingSource class with dojo */
dojo.declare('openils.acq.FundingSource', null, {
req.send();
};
+/**
+ * Synchronous funding_source retrievel method
+ */
+openils.acq.FundingSource.retrieve = function(id) {
+ if(openils.acq.FundingSource.cache[id])
+ return openils.acq.FundingSource.cache[id];
+ openils.acq.FundingSource.cache[id] = fieldmapper.standardRequest(
+ ['open-ils.acq', 'open-ils.acq.funding_source.retrieve'],
+ [openils.User.authtoken, id]
+ );
+ return openils.acq.FundingSource.cache[id];
+};
+
openils.acq.FundingSource.createCredit = function(fields, onCreateComplete) {
dojo.require('dijit.layout.TabContainer');
dojo.require('dijit.layout.ContentPane');
dojo.require('openils.acq.Fund');
+ dojo.require('openils.acq.FundingSource');
dojo.require('openils.Event');
- dojo.require('fieldmapper.Fieldmapper');
dojo.require('openils.User');
var fundID = ${c.oils.acq.fund_id};
return fieldmapper.aou.findOrgUnit(data.org).shortname();
}
- var fsCache = {};
function getFundingSource(rowIndex) {
data = fundAllocationGrid.model.getRow(rowIndex);
- if(!data) return;
- var fsId = data.funding_source;
- if(!fsCache[fsId]) {
- fsCache[fsId] = fieldmapper.standardRequest(
- ['open-ils.acq', 'open-ils.acq.funding_source.retrieve'],
- [openils.User.authtoken, fsId]
- );
+ if(data) {
+ var fs = openils.acq.FundingSource.retrieve(data.funding_source);
+ return '<a href="${c.oils.acq.prefix.value}/funding_source/view/'+fs.id()+'">'+fs.name()+'</a>';
}
- var name = fsCache[fsId].name();
- return '<a href="${c.oils.acq.prefix.value}/funding_source/view/'+fsId+'">'+name+'</a>';
}
function loadFundGrid() {
dojo.require("dijit.form.Textarea");
dojo.require("dijit.form.CurrencyTextBox");
dojo.require('openils.acq.FundingSource');
+ dojo.require('openils.acq.Fund');
dojo.require('openils.Event');
var ses = new OpenSRF.ClientSession('open-ils.acq');
var fundingSourceID = ${c.oils.acq.funding_source_id};
var fundingSource = null;
- var fundCache = {};
/** creates a new funding_source_credit from the dialog ----- */
function applyFSCredit(fields) {
/** fetch the fleshed funding source ----- */
function loadFS() {
var req = ses.request(
- 'open-ils.acq.funding_source.retrieve', openils.User.authtoken, fundingSourceID,
+ 'open-ils.acq.funding_source.retrieve',
+ openils.User.authtoken, fundingSourceID,
{flesh_summary:1, flesh_credits:1,flesh_allocations:1}
);
}
function getFund(rowIndex) {
- /** synchronous version ... XXX need to refactor this to be async */
data = fsAllocationGrid.model.getRow(rowIndex);
- if(!data) return;
- var fundId = data.fund;
- if(!fundCache[fundId]) {
- req = ses.request('open-ils.acq.fund.retrieve', openils.User.authtoken, fundId);
- req.timeout = 10;
- req.send();
- fundCache[fundId] = req.recv().content();
+ if(data) {
+ var fund = openils.acq.Fund.retrieve(data.fund);
+ return '<a href="${c.oils.acq.prefix.value}/fund/view/'+fund.id()+'">'+fund.name()+'</a>';
}
- var name = fundCache[fundId].name();
- return '<a href="${c.oils.acq.prefix.value}/fund/view/'+fundId+'">'+name+'</a>';
}
/** builds the credits grid ----- */