From 5227f7ab98c776df79149708f7550f305ca65bb4 Mon Sep 17 00:00:00 2001 From: erickson Date: Wed, 27 Aug 2008 14:13:21 +0000 Subject: [PATCH] move the approval callback to external function because JS will overwrite closure vars within a loop git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@10460 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../media/ui_js/oils/default/common/jubgrid.js | 61 +++++++++++----------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/common/jubgrid.js b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/common/jubgrid.js index abb4782355..536ee1d67c 100644 --- a/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/common/jubgrid.js +++ b/Open-ILS/web/oilsweb/oilsweb/public/oils/media/ui_js/oils/default/common/jubgrid.js @@ -144,41 +144,40 @@ var JUBGrid = { }, approveJUB: function(evt) { - var list = []; - var selected = JUBGrid.jubGrid.selection.getSelected(); - - for (var idx = 0; idx < selected.length; idx++) { - var rowIdx = selected[idx]; - var jub = JUBGrid.jubGrid.model.getRow(rowIdx); - var li = new openils.acq.Lineitem({lineitem:JUBGrid.getLi(jub.id)}); - var approveStore = function(evt) { - if (evt) { - // something bad happened - console.log("jubgrid.js: approveJUB: error:"); - console.dir(evt); - alert("Error: "+evt.desc); - } else { - var approveACQLI = function(jub, rq) { - JUBGrid.jubGrid.model.store.setValue(jub, - "state", - "approved"); - JUBGrid.jubGrid.update(); - // Reload lineitem details, read-only - openils.acq.Lineitem.loadLIDGrid( - JUBGrid.jubDetailGrid, li.id(), - JUBGrid.jubDetailGridLayout); - //JUBGrid.jubDetailGridLayoutReadOnly); - }; + var list = []; + var selected = JUBGrid.jubGrid.selection.getSelected(); + for (var idx = 0; idx < selected.length; idx++) { + var rowIdx = selected[idx]; + JUBGrid.approveSingleJUB(JUBGrid.jubGrid.model.getRow(rowIdx)); + } + }, - JUBGrid.jubGrid.model.store.fetch({query:{id:jub.id}, - onItem: approveACQLI}); - } - }; + approveSingleJUB: function(jub) { + var li = new openils.acq.Lineitem({lineitem:JUBGrid.getLi(jub.id)}); + var approveStore = function(evt) { + if (evt) { + // something bad happened + console.log("jubgrid.js: approveJUB: error:"); + console.dir(evt); + alert("Error: "+evt.desc); + } else { + var approveACQLI = function(jub, rq) { + alert('setting jub to approved ' + jub.id); + JUBGrid.jubGrid.model.store.setValue(jub, "state", "approved"); + JUBGrid.jubGrid.model.refresh(); + JUBGrid.jubGrid.update(); + // Reload lineitem details, read-only + //openils.acq.Lineitem.loadLIDGrid(JUBGrid.jubDetailGrid, li.id(), JUBGrid.jubDetailGridLayout); + //JUBGrid.jubDetailGridLayoutReadOnly); + }; + JUBGrid.jubGrid.model.store.fetch({query:{id:jub.id}, onItem: approveACQLI}); + } + }; - li.approve(approveStore); - } + li.approve(approveStore); }, + removeSelectedJUBs: function(evt) { function deleteList(list, idx, oncomplete) { -- 2.11.0