From 3f4fe5adc5619696301e4450b95a70004ff47c8b Mon Sep 17 00:00:00 2001 From: erickson Date: Mon, 29 Sep 2008 13:24:03 +0000 Subject: [PATCH] changed file type to xhtml to match other admin files. added support for choosing the context org git-svn-id: svn://svn.open-ils.org/ILS/trunk@10724 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../server/admin/org_unit_settings.js | 64 ++++++++++++++++--- ...t_settings.xml => org_unit_settings.xhtml} | 14 ++-- 2 files changed, 64 insertions(+), 14 deletions(-) rename Open-ILS/xul/staff_client/server/admin/{org_unit_settings.xml => org_unit_settings.xhtml} (85%) 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 58b627704e..10c727bd31 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 @@ -9,18 +9,38 @@ dojo.require('dojo.cookie'); dojo.require('openils.CGI'); dojo.require('openils.User'); dojo.require('openils.Event'); +dojo.require('openils.widget.OrgUnitFilteringSelect'); var authtoken; var contextOrg; var user; -var contextSelector; +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(); - contextSelector = dojo.byId('os-context-selector'); + fieldmapper.standardRequest( + [ 'open-ils.actor', + 'open-ils.actor.user.get_work_ous.ids'], + { async: true, + params: [authtoken], + oncomplete: function(r) { + var list = r.recv().content(); + if(e = openils.Event.parse(list)) + return alert(e); + workOrgs = list; + buildMergedOrgSelector(list); + } + } + ); + + osDraw(); +} +dojo.addOnLoad(osInit); + +function osDraw() { var names = []; for(var key in osSettings) names.push(key); @@ -38,21 +58,47 @@ function osInit(data) { } } ); - buildMergedOrgSel(contextSelector, user.ws_ou(), 0); - // open-ils.actor.user.get_work_ous.ids } -dojo.addOnLoad(osInit); -function osChangeContect() { - contextOrg = getSelectorVal(contextSelector); +function buildMergedOrgSelector(orgList) { + var orgNodeList = []; + for(var i = 0; i < orgList.length; i++) { + // add the work org parents + var parents = []; + var node = fieldmapper.aou.findOrgUnit(orgList[i]); + while(node.parent_ou() != null) { + node = fieldmapper.aou.findOrgUnit(node.parent_ou()); + parents.push(node); + } + orgNodeList = orgNodeList.concat(parents.reverse()); + + // add the work org children + orgNodeList = orgNodeList.concat( + fieldmapper.aou.descendantNodeList(orgList[i])); + } + + var store = new dojo.data.ItemFileReadStore({data:aou.toStoreData(orgNodeList)}); + osContextSelector.store = store; + osContextSelector.startup(); + osContextSelector.setValue(user.ws_ou()); +} + +function osChangeContext() { + if(contextOrg == osContextSelector.getValue()) + return; + contextOrg = osContextSelector.getValue(); + osDraw(); } function osLoadGrid(data) { var gridData = {items:[]} for(var key in data) { + var setting = osSettings[key]; + setting.context = null; + setting.value = null; if(data[key]) { - osSettings[key].context = data[key].org; - osSettings[key].value = data[key].value; + setting.context = data[key].org; + setting.value = data[key].value; } gridData.items.push({name:key}); } 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.xhtml similarity index 85% rename from Open-ILS/xul/staff_client/server/admin/org_unit_settings.xml rename to Open-ILS/xul/staff_client/server/admin/org_unit_settings.xhtml index be2b891921..e2c836783d 100644 --- a/Open-ILS/xul/staff_client/server/admin/org_unit_settings.xml +++ b/Open-ILS/xul/staff_client/server/admin/org_unit_settings.xhtml @@ -1,3 +1,4 @@ + - + +]> @@ -64,7 +67,8 @@ XXX load DTD

Org Unit Settings


Context Location -
@@ -73,7 +77,7 @@ XXX load DTD defaultCell: {styles: 'text-align: center;'}, cells : [[ {name: 'Edit', get: osGetEditLink, - value: 'Edit'}, + value: '<a href="javascript:void(0);" onclick="osLaunchEditor(\'SETTING\');">Edit</a>'}, {name: 'Setting', get: osGetGridData, field:'label', width:'auto'}, {name: 'Context', get: osGetGridData, field:'context', width:'auto'}, {name: 'Value', get: osGetGridData, field:'value', width:'auto'}, -- 2.43.2