From: erickson Date: Tue, 23 Dec 2008 21:38:26 +0000 (+0000) Subject: implemented delete and update X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=24007c87440ab21ca426f7c4b85bec6e212601a9;p=Evergreen.git implemented delete and update git-svn-id: svn://svn.open-ils.org/ILS/trunk@11674 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/web/js/ui/default/conify/global/config/standing_penalty.js b/Open-ILS/web/js/ui/default/conify/global/config/standing_penalty.js index ddeb67c99e..cd05a703fe 100644 --- a/Open-ILS/web/js/ui/default/conify/global/config/standing_penalty.js +++ b/Open-ILS/web/js/ui/default/conify/global/config/standing_penalty.js @@ -2,19 +2,25 @@ dojo.require('dojox.grid.DataGrid'); dojo.require('dojo.data.ItemFileWriteStore'); dojo.require('dojox.form.CheckedMultiSelect'); dojo.require('dijit.form.TextBox'); +dojo.require('dojox.grid.cells.dijit'); + + var spCache = {}; function spBuildGrid() { - var store = new dojo.data.ItemFileWriteStore({data:csp.toStoreData([])}); + var store = new dojo.data.ItemFileWriteStore({data:csp.initStoreData()}); spGrid.setStore(store); spGrid.render(); + dojo.connect(store, 'onSet', spGridChanged); + fieldmapper.standardRequest( ['open-ils.pcrud', 'open-ils.pcrud.search.csp'], { async: true, params: [openils.User.authtoken, {id:{'!=':null}}, {order_by:{csp:'id'}}], onresponse: function(r) { if(sp = openils.Util.readResponse(r)) - store.newItem(csp.toStoreData([sp]).items[0]); - }, + store.newItem(csp.itemToStoreData(sp)); + spCache[sp.id()] = sp; + } } ); } @@ -25,25 +31,106 @@ function spCreate(args) { var penalty = new csp(); penalty.name(args.name); penalty.label(args.label); + penalty.block_list(formatBlockList(args.block_list)); + fieldmapper.standardRequest( + ['open-ils.permacrud', 'open-ils.permacrud.create.csp'], + { async: true, + params: [openils.User.authtoken, penalty], + oncomplete: function(r) { + if(obj = openils.Util.readResponse(r)) + spGrid.store.newItem(csp.itemToStoreData(obj)); + } + } + ); +} + +function formatBlockList(list) { var str = ''; - for(var idx in args.block_list) - str += args.block_list[idx] + '|'; - str = str.replace(/\|$/, ''); - penalty.block_list(str || null); + for(var idx in list) + str += list[idx] + '|'; + return str.replace(/\|$/, ''); +} +function spGridChanged(item, attr, oldVal, newVal) { + var sp = spCache[spGrid.store.getValue(item, 'id')]; + console.log("changing cm " + sp.id() + " object: " + attr + " = " + newVal); + if(attr == 'block_list') { + sp[attr](formatBlockList(newVal)); + } else { + sp[attr](newVal); + } + sp.ischanged(true); + spSaveButton.setDisabled(false); +} +function saveChanges() { + spGrid.doclick(0); + var changedObjects = []; + for(var i in spCache){ + var sp = spCache[i]; + if(sp.ischanged()) + changedObjects.push(sp); + } + _saveChanges(changedObjects, 0); +} +function _saveChanges(changedObjects, idx) { + + if(idx >= changedObjects.length) { + // we've made it through the list + spSaveButton.setDisabled(true); + return; + } + + var item = changedObjects[idx]; + fieldmapper.standardRequest( - ['open-ils.permacrud', 'open-ils.permacrud.create.csp'], + ['open-ils.permacrud', 'open-ils.permacrud.update.csp'], { async: true, - params: [openils.User.authtoken, penalty], + params: [openils.User.authtoken, item], oncomplete: function(r) { - if(new String(openils.Util.readResponse(r)) != '0') - spBuildGrid(); + if(stat = openils.Util.readResponse(r)) { + _saveChanges(changedObjects, ++idx); + } } } ); } +function formatId(inDatum) { + if(inDatum < 100){ + return ""+ inDatum +""; + } + return inDatum; + +} +function deleteFromGrid() { + _deleteFromGrid(spGrid.selection.getSelected(), 0); +} + +function _deleteFromGrid(list, idx) { + if(idx >= list.length) // we've made it through the list + return; + + var item = list[idx]; + var id = spGrid.store.getValue(item, 'id'); + if(id > 100){ + _deleteFromGrid(list, ++idx); + return; + } + fieldmapper.standardRequest( + ['open-ils.permacrud', 'open-ils.permacrud.delete.csp'], + { async: true, + params: [openils.User.authtoken, id], + oncomplete: function(r) { + if(obj = openils.Util.readResponse(r)) { + spGrid.store.deleteItem(item); + } + _deleteFromGrid(list, ++idx); + } + } + ); +} + openils.Util.addOnLoad(spBuildGrid); diff --git a/Open-ILS/web/templates/default/conify/global/config/standing_penalty.tt2 b/Open-ILS/web/templates/default/conify/global/config/standing_penalty.tt2 index 91fe513ca0..424b6e456b 100644 --- a/Open-ILS/web/templates/default/conify/global/config/standing_penalty.tt2 +++ b/Open-ILS/web/templates/default/conify/global/config/standing_penalty.tt2 @@ -5,6 +5,26 @@

Standing Penalty Types


+ +
New Standing Penalty
@@ -20,11 +40,7 @@ - +