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();
}
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);
+ }
}
}