From 43338da2602dfbd949492ae47d1daaf5d49a9e7f Mon Sep 17 00:00:00 2001 From: erickson Date: Sun, 22 Mar 2009 16:22:43 +0000 Subject: [PATCH] added batch update for copies git-svn-id: svn://svn.open-ils.org/ILS/trunk@12640 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/web/css/skin/default/acq.css | 1 - .../web/js/ui/default/acq/common/li_table.js | 40 ++++++++++++++++++- .../templates/default/acq/common/li_table.tt2 | 28 +++++++++---- 3 files changed, 59 insertions(+), 10 deletions(-) diff --git a/Open-ILS/web/css/skin/default/acq.css b/Open-ILS/web/css/skin/default/acq.css index 9ce84ac2bd..32fbeb3149 100644 --- a/Open-ILS/web/css/skin/default/acq.css +++ b/Open-ILS/web/css/skin/default/acq.css @@ -101,4 +101,3 @@ #acq-lit-li-details-table td {padding:0px 10px 0px 10px;} #acq-lit-li-details-table th {padding:0px 10px 0px 10px; font-weight:bold;} .acq-lit-li-menu-bar {width:99%; text-align:left; border:1px solid #aaa; margin:5px 0px 10px 0px;} - diff --git a/Open-ILS/web/js/ui/default/acq/common/li_table.js b/Open-ILS/web/js/ui/default/acq/common/li_table.js index 4d875b9956..d3a98de810 100644 --- a/Open-ILS/web/js/ui/default/acq/common/li_table.js +++ b/Open-ILS/web/js/ui/default/acq/common/li_table.js @@ -18,6 +18,7 @@ function AcqLiTable() { this.rowTemplate = this.tbody.removeChild(dojo.byId('acq-lit-row')); this.copyTbody = dojo.byId('acq-lit-li-details-tbody'); this.copyRow = this.copyTbody.removeChild(dojo.byId('acq-lit-li-details-row')); + this.copyBatchRow = dojo.byId('acq-lit-li-details-batch-row'); dojo.byId('acq-lit-select-toggle').onclick = function(){self.toggleSelect()}; dojo.byId('acq-lit-info-back-button').onclick = function(){self.show('list')}; @@ -186,10 +187,34 @@ function AcqLiTable() { this.drawCopies = function(liId) { this.show('copies'); + var self = this; this.copyCache = {}; + this.copyWidgetCache = {}; + this.copyBatchWidgets = {}; acqLitSaveCopies.onClick = function() { self.saveCopyChanges(liId) }; + acqLitBatchUpdateCopies.onClick = function() { self.batchCopyUpdate() }; + while(this.copyTbody.childNodes[0]) this.copyTbody.removeChild(this.copyTbody.childNodes[0]); + + var row = this.copyBatchRow; + if(!this.copyBatchRowDrawn) { + dojo.forEach(['fund', 'owning_lib', 'location'], + function(field) { + var widget = new openils.widget.AutoFieldWidget({ + fmField : field, + fmClass : 'acqlid', + parentNode : dojo.query('[name='+field+']', row)[0], + orgLimitPerms : ['CREATE_PICKLIST'], + }); + widget.build(); + self.copyBatchWidgets[field] = widget.widget; + } + ); + this.copyBatchRowDrawn = true; + }; + + openils.acq.Lineitem.fetchAttrDefs( function() { self._fetchLineitem(liId, function(li){self._drawCopies(li);}); @@ -197,6 +222,17 @@ function AcqLiTable() { ); }; + this.batchCopyUpdate = function() { + var self = this; + var fields = ['fund', 'owning_lib', 'location']; + for(var k in this.copyWidgetCache) { + var cache = this.copyWidgetCache[k]; + dojo.forEach(fields, function(f) { + var newval = self.copyBatchWidgets[f].attr('value'); + if(newval) cache[f].attr('value', newval); + }); + } + }; this._drawCopies = function(li) { acqLitAddCopyCount.onClick = function() { @@ -219,6 +255,7 @@ function AcqLiTable() { this.addCopy = function(li, copy) { var row = this.copyRow.cloneNode(true); this.copyTbody.appendChild(row); + var self = this; if(!copy) { copy = new fieldmapper.acqlid(); @@ -229,6 +266,7 @@ function AcqLiTable() { this.copyCache[copy.id()] = copy; row.setAttribute('copy_id', copy.id()); + self.copyWidgetCache[copy.id()] = {}; dojo.forEach(['fund', 'owning_lib', 'location', 'barcode', 'cn_label'], function(field) { @@ -249,10 +287,10 @@ function AcqLiTable() { } } ); + self.copyWidgetCache[copy.id()][field] = widget.widget; } ); - var self = this; dojo.query('[name=delete]', row)[0].onclick = function() { self.deleteCopy(row) }; }; diff --git a/Open-ILS/web/templates/default/acq/common/li_table.tt2 b/Open-ILS/web/templates/default/acq/common/li_table.tt2 index 48d895654b..a0b293575f 100644 --- a/Open-ILS/web/templates/default/acq/common/li_table.tt2 +++ b/Open-ILS/web/templates/default/acq/common/li_table.tt2 @@ -82,6 +82,7 @@