From fd8bb815bb0b0a7390c68f85ca66b3c5fe590107 Mon Sep 17 00:00:00 2001 From: erickson Date: Mon, 29 Sep 2008 04:51:39 +0000 Subject: [PATCH] org unit setting editor that is more context-specific, which honors parent settings. read-only for now. later this will replace the existing org settings editor git-svn-id: svn://svn.open-ils.org/ILS/trunk@10723 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../xul/staff_client/server/admin/admin.css | 8 +- .../server/admin/org_unit_settings.js | 90 +++++++++++++++++++ .../server/admin/org_unit_settings.xml | 88 ++++++++++++++++++ 3 files changed, 185 insertions(+), 1 deletion(-) create mode 100644 Open-ILS/xul/staff_client/server/admin/org_unit_settings.js create mode 100644 Open-ILS/xul/staff_client/server/admin/org_unit_settings.xml diff --git a/Open-ILS/xul/staff_client/server/admin/admin.css b/Open-ILS/xul/staff_client/server/admin/admin.css index 0c112a11ec..74e3227e51 100644 --- a/Open-ILS/xul/staff_client/server/admin/admin.css +++ b/Open-ILS/xul/staff_client/server/admin/admin.css @@ -1,4 +1,9 @@ -body { font-family: Verdana, Tahoma; font-size: 10pt; background-color: white;} +@import "/js/dojo/dojo/resources/dojo.css"; +@import "/js/dojo/dijit/themes/tundra/tundra.css"; +@import "/js/dojo/dijit/tests/css/dijitTests.css"; +@import "/js/dojo/dojox/grid/_grid/Grid.css"; +.container:after {content: ""; display: block; height: 0; clear: both; } +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;} .hide_me { visibility: hidden; display: none } @@ -18,6 +23,7 @@ body { font-family: Verdana, Tahoma; font-size: 10pt; background-color: white;} select { width: 12em; } select:disabled { color: #555555; } input[type="text"]:disabled { color: #555555; } +.tall { height:100%; } button { color:#050; 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 new file mode 100644 index 0000000000..58b627704e --- /dev/null +++ b/Open-ILS/xul/staff_client/server/admin/org_unit_settings.js @@ -0,0 +1,90 @@ +dojo.require("dijit.layout.LayoutContainer"); +dojo.require("dijit.layout.ContentPane"); +dojo.require('dijit.form.FilteringSelect'); +dojo.require("dojox.grid.Grid"); +dojo.require("fieldmapper.Fieldmapper"); +dojo.require("fieldmapper.dojoData"); +dojo.require("fieldmapper.OrgUtils"); +dojo.require('dojo.cookie'); +dojo.require('openils.CGI'); +dojo.require('openils.User'); +dojo.require('openils.Event'); + +var authtoken; +var contextOrg; +var user; +var contextSelector; + +function osInit(data) { + authtoken = dojo.cookie('ses') || new openils.CGI().param('ses'); + user = new openils.User({authtoken:authtoken}).user; + contextOrg = user.ws_ou(); + contextSelector = dojo.byId('os-context-selector'); + + var names = []; + for(var key in osSettings) + names.push(key); + + fieldmapper.standardRequest( + [ 'open-ils.actor', + 'open-ils.actor.ou_setting.ancestor_default.batch'], + { async: true, + params: [contextOrg, names], + oncomplete: function(r) { + var data = r.recv().content(); + if(e = openils.Event.parse(data)) + return alert(e); + osLoadGrid(data); + } + } + ); + buildMergedOrgSel(contextSelector, user.ws_ou(), 0); + // open-ils.actor.user.get_work_ous.ids +} +dojo.addOnLoad(osInit); + +function osChangeContect() { + contextOrg = getSelectorVal(contextSelector); +} + +function osLoadGrid(data) { + var gridData = {items:[]} + for(var key in data) { + if(data[key]) { + osSettings[key].context = data[key].org; + osSettings[key].value = data[key].value; + } + gridData.items.push({name:key}); + } + gridData.identifier = 'name'; + var store = new dojo.data.ItemFileReadStore({data:gridData}); + var model = new dojox.grid.data.DojoData( + null, store, {rowsPerPage: 100, clientSort: true, query:{name:'*'}}); + + osGrid.setModel(model); + osGrid.setStructure(osGridLayout); + osGrid.update(); +} + +function osGetGridData(rowIdx) { + var data = this.grid.model.getRow(rowIdx); + if(!data) return ''; + var value = osSettings[data.name][this.field]; + if(value == null) return ''; + switch(this.field) { + case 'context': + return fieldmapper.aou.findOrgUnit(value).shortname(); + default: + return value; + } +} + +function osGetEditLink(rowIdx) { + var data = this.grid.model.getRow(rowIdx); + if(!data) return ''; + return this.value.replace(/SETTING/, data.name); +} + +function osLaunchEditor(name) { +} + diff --git a/Open-ILS/xul/staff_client/server/admin/org_unit_settings.xml b/Open-ILS/xul/staff_client/server/admin/org_unit_settings.xml new file mode 100644 index 0000000000..be2b891921 --- /dev/null +++ b/Open-ILS/xul/staff_client/server/admin/org_unit_settings.xml @@ -0,0 +1,88 @@ + + + + + + + Org Unit Settings + + + + + + +
+
+

Org Unit Settings


+ Context Location + +
+
+ +
+
+
+ + + -- 2.43.2