From: Bill Erickson Date: Mon, 28 Jan 2013 16:41:48 +0000 (-0500) Subject: ACQ upload form persist scratch X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=e8bed020499d368e8bab3a39a785891be2a956a4;p=evergreen%2Fequinox.git ACQ upload form persist scratch Signed-off-by: Bill Erickson --- diff --git a/Open-ILS/web/js/ui/default/acq/picklist/upload.js b/Open-ILS/web/js/ui/default/acq/picklist/upload.js index fed74d38d2..33397985eb 100644 --- a/Open-ILS/web/js/ui/default/acq/picklist/upload.js +++ b/Open-ILS/web/js/ui/default/acq/picklist/upload.js @@ -21,8 +21,56 @@ var usingNewPl = false; var xulStorage = openils.XUL.localStorage(); var storekey = 'eg.acq.upload.'; +var osetkey = 'acq.upload.default.'; +var persistOrgSettings; +// some org setting names don't map directly to dijit names +var setNameMap = { + match_set : 'vandelay.match_set', + merge_profile : 'vandelay.merge_profile', + create_assets : 'vandelay.load_item_for_imported', + match_quality_ratio : 'vandelay.quality_ratio', + auto_overlay_1match : 'vandelay.merge_on_single', + import_no_match : 'vandelay.import_non_matching', + fall_through_merge_profile : 'vandelay.low_quality_fall_thru_profile', + auto_overlay_exact : 'vandelay.merge_on_exact', + auto_overlay_best_match : 'vandelay.merge_on_best' +} + +// per-UI setting to change this? +// if true, set default widget values from org settings +// (when defined) regardless of any locally persisted value +var ouSettingTrumpsPersist = true; function init() { + + fieldmapper.standardRequest( + ['open-ils.actor','open-ils.actor.ou_setting.ancestor_default.batch'], + { async : true, + params : [ + new openils.User().user.ws_ou(), + [ osetkey + 'create_po', + osetkey + 'activate_po', + osetkey + 'provider', + osetkey + 'vandelay.match_set', + osetkey + 'vandelay.merge_profile', + osetkey + 'vandelay.import_non_matching', + osetkey + 'vandelay.merge_on_exact', + osetkey + 'vandelay.merge_on_best', + osetkey + 'vandelay.merge_on_single', + osetkey + 'vandelay.quality_ratio', + osetkey + 'vandelay.low_quality_fall_thru_profile', + osetkey + 'vandelay.load_item_for_imported' + ] + ], + oncomplete : function(r) { + persistOrgSettings = openils.Util.readResponse(r); + init2(); + } + } + ); +} + +function init2() { dojo.byId('acq-pl-upload-ses').value = openils.User.authtoken; loadYearSelector(); @@ -74,19 +122,34 @@ function init() { } function readCachedValue(dij, key) { - // TODO: check for org settings first - var val = xulStorage.getItem(storekey + key); - if (dij && val) dij.attr('value', val); + var val; + var setname = osetkey + (setNameMap[key] ? setNameMap[key] : key); + + if (ouSettingTrumpsPersist && persistOrgSettings[setname]) { + val = persistOrgSettings[setname].value; + } else { + val = xulStorage.getItem(storekey + key); + if (!val && persistOrgSettings[setname]) + val = persistOrgSettings[setname].value; + } + + if (val) dij.attr('value', val); return val; } function writeCachedValue(dij, key) { - // TODO: if org settings exist for key, do not store - var val = dij.attr('value'); - if (val === null || val === false || val == '') { + if (ouSettingTrumpsPersist && persistOrgSettings[setname]) { + // don't muck up localStorage if we're using org settings xulStorage.removeItem(storekey + key); + } else { - xulStorage.setItem(storekey + key, val); + var val = dij.attr('value'); + + if (val === null || val === false || val == '') { + xulStorage.removeItem(storekey + key); + } else { + xulStorage.setItem(storekey + key, val); + } } }