From 44b37d72ec682aa2ad0be3caae8050925e97bb6a Mon Sep 17 00:00:00 2001 From: erickson Date: Mon, 29 Sep 2008 15:29:53 +0000 Subject: [PATCH] settings are now editable. added different widget types for the expected settings values. started plugging in entities git-svn-id: svn://svn.open-ils.org/ILS/trunk@10727 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/web/opac/locale/en-US/lang.dtd | 20 +++- .../xul/staff_client/server/admin/admin.css | 3 + .../server/admin/org_unit_settings.js | 92 ++++++++++++++++++- .../server/admin/org_unit_settings.xhtml | 56 ++++++++++- 4 files changed, 160 insertions(+), 11 deletions(-) diff --git a/Open-ILS/web/opac/locale/en-US/lang.dtd b/Open-ILS/web/opac/locale/en-US/lang.dtd index a8884aeede..4483928a95 100644 --- a/Open-ILS/web/opac/locale/en-US/lang.dtd +++ b/Open-ILS/web/opac/locale/en-US/lang.dtd @@ -48,6 +48,9 @@ + + + @@ -1436,6 +1439,8 @@ + + @@ -1450,11 +1455,22 @@ - - + + + + + + + + + + + + + diff --git a/Open-ILS/xul/staff_client/server/admin/admin.css b/Open-ILS/xul/staff_client/server/admin/admin.css index 74e3227e51..166b8dd769 100644 --- a/Open-ILS/xul/staff_client/server/admin/admin.css +++ b/Open-ILS/xul/staff_client/server/admin/admin.css @@ -6,6 +6,9 @@ body { font-family: Verdana, Tahoma; font-size: 10pt; background-color: white; margin: 0px; padding: 0px;} .welcome_box { position:absolute; top: 5px; right: 5px; } .title { font-weight: bold; font-size: 14pt; margin: 10px;} +.hidden { display: none } +.form_table td { padding: 6px; } +.form_table thead td { border-bottom: 1px solid #808080; } .hide_me { visibility: hidden; display: none } .has_color { background: #E0F0E0; color: #000000; } .data_grid { font-weight: 500; border-collapse: collapse;} diff --git a/Open-ILS/xul/staff_client/server/admin/org_unit_settings.js b/Open-ILS/xul/staff_client/server/admin/org_unit_settings.js index 10c727bd31..8f8773b285 100644 --- a/Open-ILS/xul/staff_client/server/admin/org_unit_settings.js +++ b/Open-ILS/xul/staff_client/server/admin/org_unit_settings.js @@ -1,6 +1,7 @@ dojo.require("dijit.layout.LayoutContainer"); dojo.require("dijit.layout.ContentPane"); dojo.require('dijit.form.FilteringSelect'); +dojo.require('dijit.Dialog'); dojo.require("dojox.grid.Grid"); dojo.require("fieldmapper.Fieldmapper"); dojo.require("fieldmapper.dojoData"); @@ -18,8 +19,8 @@ var workOrgs; function osInit(data) { authtoken = dojo.cookie('ses') || new openils.CGI().param('ses'); - user = new openils.User({authtoken:authtoken}).user; - contextOrg = user.ws_ou(); + user = new openils.User({authtoken:authtoken}); + contextOrg = user.user.ws_ou(); fieldmapper.standardRequest( [ 'open-ils.actor', @@ -80,7 +81,7 @@ function buildMergedOrgSelector(orgList) { var store = new dojo.data.ItemFileReadStore({data:aou.toStoreData(orgNodeList)}); osContextSelector.store = store; osContextSelector.startup(); - osContextSelector.setValue(user.ws_ou()); + osContextSelector.setValue(user.user.ws_ou()); } function osChangeContext() { @@ -102,6 +103,15 @@ function osLoadGrid(data) { } gridData.items.push({name:key}); } + gridData.items = gridData.items.sort( + function(a, b) { + var seta = osSettings[a.name]; + var setb = osSettings[b.name]; + if(seta.label > setb.label) return 1; + if(seta.label < setb.label) return -1; + return 0; + } + ); gridData.identifier = 'name'; var store = new dojo.data.ItemFileReadStore({data:gridData}); var model = new dojox.grid.data.DojoData( @@ -115,11 +125,18 @@ function osLoadGrid(data) { function osGetGridData(rowIdx) { var data = this.grid.model.getRow(rowIdx); if(!data) return ''; - var value = osSettings[data.name][this.field]; + var setting = osSettings[data.name]; + var value = setting[this.field]; if(value == null) return ''; switch(this.field) { case 'context': return fieldmapper.aou.findOrgUnit(value).shortname(); + case 'value': + if(setting.type == 'bool') { + if(value) + return dojo.byId('os-true').innerHTML; + return dojo.byId('os-false').innerHTML; + } default: return value; } @@ -132,5 +149,72 @@ function osGetEditLink(rowIdx) { } function osLaunchEditor(name) { + osEditDialog._osattr = name; + osEditDialog.show(); + user.buildPermOrgSelector('UPDATE_ORG_UNIT_SETTING.' + name, osEditContextSelector); + dojo.byId('os-edit-name').innerHTML = osSettings[name].label; + dojo.byId('os-edit-desc').innerHTML = osSettings[name].desc || ''; + + dojo.style(osEditTextBox.domNode, 'display', 'none'); + dojo.style(osEditCurrencyTextBox.domNode, 'display', 'none'); + dojo.style(osEditNumberTextBox.domNode, 'display', 'none'); + dojo.style(osEditBoolSelect.domNode, 'display', 'none'); + + switch(osSettings[name].type) { + case 'number': + dojo.style(osEditNumberTextBox.domNode, 'display', 'block'); + break; + case 'currency': + dojo.style(osEditCurrencyTextBox.domNode, 'display', 'block'); + break; + case 'bool': + dojo.style(osEditBoolSelect.domNode, 'display', 'block'); + break; + default: + dojo.style(osEditTextBox.domNode, 'display', 'block'); + } +} + +function osEditSetting(deleteMe) { + osEditDialog.hide(); + var name = osEditDialog._osattr; + + var obj = {}; + if(deleteMe) { + obj[name] = null; + + } else { + + switch(osSettings[name].type) { + case 'number': + obj[name] = osEditNumberTextBox.getValue(); + if(obj[name] == null) return; + break; + case 'currency': + obj[name] = osEditCurrencyTextBox.getValue(); + if(obj[name] == null) return; + break; + case 'bool': + var val = osEditBoolSelect.getValue(); + obj[name] = (val == 'true') ? 1 : null; + break; + default: + obj[name] = osEditTextBox.getValue(); + if(obj[name] == null) return; + } + } + + fieldmapper.standardRequest( + ['open-ils.actor', 'open-ils.actor.org_unit.settings.update'], + { async: true, + params: [authtoken, osEditContextSelector.getValue(), obj], + oncomplete: function(r) { + var res = r.recv().content(); + if(e = openils.Event.parse(res)) + return alert(e); + osDraw(); + } + } + ); } diff --git a/Open-ILS/xul/staff_client/server/admin/org_unit_settings.xhtml b/Open-ILS/xul/staff_client/server/admin/org_unit_settings.xhtml index e2c836783d..73435cf312 100644 --- a/Open-ILS/xul/staff_client/server/admin/org_unit_settings.xhtml +++ b/Open-ILS/xul/staff_client/server/admin/org_unit_settings.xhtml @@ -23,7 +23,7 @@ Org Unit Settings - + @@ -87,6 +91,48 @@
+ + +
+ + + + + + + + + + + + + + + + + + + +
Context + +
Value + + + + +
+ + + +
+
+ + -- 2.43.2