From 9ac90ac25698f641cd2bf87fc6410fa8f226ddd5 Mon Sep 17 00:00:00 2001 From: erickson Date: Sun, 30 Jul 2006 19:42:35 +0000 Subject: [PATCH] got the lib settings editor working and added to the admin menu fixed some server code param formatting git-svn-id: svn://svn.open-ils.org/ILS/trunk@5175 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../src/perlmods/OpenILS/Application/Actor.pm | 32 ++++++++++++------- Open-ILS/web/opac/common/js/opac_utils.js | 11 +++---- .../xul/staff_client/server/admin/index.xhtml | 11 ++++--- .../staff_client/server/admin/org_settings.js | 24 +++++++++++--- .../server/admin/org_settings.xhtml | 7 ++++ 5 files changed, 58 insertions(+), 27 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm b/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm index b3394c0550..7098442b95 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Actor.pm @@ -66,10 +66,12 @@ sub set_user_settings { $logger->activity("User " . $staff->id . " updating user $uid settings with: " . Dumper(\@params)); - return $apputils->simplereq( - 'open-ils.storage', - 'open-ils.storage.direct.actor.user_setting.batch.merge', @params ); - + my $ses = $U->start_db_session(); + my $stat = $ses->request( + 'open-ils.storage.direct.actor.user_setting.batch.merge', @params )->gather(1); + $U->commit_db_session($ses); + + return $stat; } @@ -83,20 +85,26 @@ sub set_ou_settings { my( $staff, $evt ) = $apputils->checkses( $user_session ); return $evt if $evt; - $evt = $apputils->check_perms( $staff->id, $ouid, 'UPDATE_ORG_UNIT' ); + $evt = $apputils->check_perms( $staff->id, $ouid, 'UPDATE_ORG_SETTING' ); return $evt if $evt; + my @params; + for my $set (keys %$settings) { - my @params = - map { [{ org_unit => $ouid, name => $_}, {value => $$settings{$_}}] } keys %$settings; + my $json = JSON->perl2JSON($$settings{$set}); + $logger->activity("updating org_unit.setting: $ouid : $set : $json"); - $_->[1]->{value} = JSON->perl2JSON($_->[1]->{value}) for @params; + push( @params, + { org_unit => $ouid, name => $set }, + { value => $json } ); + } - $logger->activity("Updating org unit [$ouid] settings with: " . Dumper(\@params)); + my $ses = $U->start_db_session(); + my $stat = $ses->request( + 'open-ils.storage.direct.actor.org_unit_setting.merge', @params )->gather(1); + $U->commit_db_session($ses); - return $apputils->simplereq( - 'open-ils.storage', - 'open-ils.storage.direct.actor.org_unit_setting.merge', @params ); + return $stat; } diff --git a/Open-ILS/web/opac/common/js/opac_utils.js b/Open-ILS/web/opac/common/js/opac_utils.js index f1fbcfac4b..d378105284 100644 --- a/Open-ILS/web/opac/common/js/opac_utils.js +++ b/Open-ILS/web/opac/common/js/opac_utils.js @@ -815,16 +815,13 @@ function checkILSEvent(obj) { return null; } -/* -function alertILSEvent(code, msg) { - if(!msg) msg = ""; - alert( msg + '\n' + $('ilsevent.' + code).innerHTML ); -} -*/ function alertILSEvent(evt, msg) { if(!msg) msg = ""; - alert(evt.textcode + '\n' + evt.desc ); + if(msg) + alert(msg +'\n' + evt.textcode + '\n' + evt.desc ); + else + alert(evt.textcode + '\n' + evt.desc ); } diff --git a/Open-ILS/xul/staff_client/server/admin/index.xhtml b/Open-ILS/xul/staff_client/server/admin/index.xhtml index 98bf08bca8..70e1c4d35e 100644 --- a/Open-ILS/xul/staff_client/server/admin/index.xhtml +++ b/Open-ILS/xul/staff_client/server/admin/index.xhtml @@ -15,18 +15,21 @@ Local System Administration -
+
Copy Locations Editor
-
+
Non Cataloged Types Editor
-
+
Statistical Categories Editor
-
+ + diff --git a/Open-ILS/xul/staff_client/server/admin/org_settings.js b/Open-ILS/xul/staff_client/server/admin/org_settings.js index bd12425f54..5b792919ee 100644 --- a/Open-ILS/xul/staff_client/server/admin/org_settings.js +++ b/Open-ILS/xul/staff_client/server/admin/org_settings.js @@ -112,9 +112,26 @@ function osUpdate( setting, allOrgs ) { var org = osCurrentOrg(); if(allOrgs) { + if(!confirmId('os_confirm_all')) return; + var sel = $('os_orgs'); + var stop = false; + iterate( sel.options, + function(item) { + if(stop) return; + var o_unit = findOrgUnit(item.value); + var type = findOrgType(o_unit.ou_type()) ; + if( type.can_have_users() ) { + if(!osUpdateOrg(setting, val, o_unit.id())) + stop = true; + } + } + ); + if(!stop) alertId('os_success'); } else { - osUpdateOrg(setting, val, org); + + if(osUpdateOrg(setting, val, org)) + alertId('os_success'); } osDrawRange(); @@ -124,13 +141,12 @@ function osUpdateOrg( setting, value, org ) { var s = {}; s[setting] = value; var req = new Request(ORG_SETTING_UPDATE, SESSION, org, s); + req.request.alertEvent = false; req.send(true); var resp = req.result(); - alert(js2JSON(resp)); - if( checkILSEvent(resp) ) { - alertILSEvent(resp); + alertILSEvent(resp, "Error updating " + findOrgUnit(org).name() ); return false; } diff --git a/Open-ILS/xul/staff_client/server/admin/org_settings.xhtml b/Open-ILS/xul/staff_client/server/admin/org_settings.xhtml index 6ee9427432..f8ca9bef3e 100644 --- a/Open-ILS/xul/staff_client/server/admin/org_settings.xhtml +++ b/Open-ILS/xul/staff_client/server/admin/org_settings.xhtml @@ -76,6 +76,13 @@
+ + Update succeeded. + + + This will update the setting for all of the locations listed in the dropdown menu. + Are you sure you wish to continue? + -- 2.43.2