beginning of org setting editor, some style updates
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 7 Jul 2006 21:19:17 +0000 (21:19 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 7 Jul 2006 21:19:17 +0000 (21:19 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@4940 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/xul/staff_client/server/admin/admin.css
Open-ILS/xul/staff_client/server/admin/closed_dates.xhtml
Open-ILS/xul/staff_client/server/admin/org_settings.js [new file with mode: 0644]
Open-ILS/xul/staff_client/server/admin/org_settings.xhtml [new file with mode: 0644]

index 4163e55..0c112a1 100644 (file)
@@ -12,6 +12,7 @@ body { font-family: Verdana, Tahoma; font-size: 10pt; background-color: white;}
 .insert_row { border: 2px solid #A0B0A0; padding: 50px;}
 .padded { padding-left: 7px; padding-right: 7px; }
 .select_big { width: 15em; }
+.select_bigger { width: 18em; }
 .context_help { font-weight: bold; color: blue; }
 
 select { width: 12em; }
index 06f7c02..33d0ae7 100644 (file)
@@ -49,7 +49,7 @@
                        <div class='title'> Closed Dates Editor </div>
 
                        <br/>
-                       Edit Closed Dates for: <select id='cd_orgs' class='select_big'/>
+                       Edit Closed Dates for: <select id='cd_orgs'  style='width:auto;'/>
                        <br/><br/>
 
                        <table class='data_grid data_grid_center' style='width: 80%; padding: 8px;'>
diff --git a/Open-ILS/xul/staff_client/server/admin/org_settings.js b/Open-ILS/xul/staff_client/server/admin/org_settings.js
new file mode 100644 (file)
index 0000000..cfb0fec
--- /dev/null
@@ -0,0 +1,101 @@
+var ORG_SETTING_UPDATE         = 'open-ils.actor:open-ils.actor.org_unit.settings.update';
+var ORG_SETTING_RETRIEVE       = 'open-ils.actor:open-ils.actor.org_unit.settings.retrieve';
+var ORG_SETTING_DELETE         = 'open-ils.actor:open-ils.actor.org_setting.delete';
+
+var myPerms = [ 'UPDATE_ORG_SETTING' ];
+
+
+var ORG_SETTINGS = {
+       'circ.lost_materials_processing_fee' : null,
+       'cat.default_item_price' : null,
+       'circ.collections_fee' : null
+};
+
+function osEditorInit() {
+       fetchUser();
+       $('user').appendChild(text(USER.usrname()));
+
+       for( var i in ORG_SETTINGS ) ORG_SETTINGS[i] = $(i);
+
+       setTimeout( 
+               function() { 
+                       fetchHighestPermOrgs( SESSION, USER.id(), myPerms );
+                       osBuildOrgs();
+                       osDrawRange();
+               }, 
+               20 
+       );
+}
+
+function osCurrentOrg() {
+       var selector = $('os_orgs');
+       return getSelectorVal(selector);
+}
+
+function osBuildOrgs() {
+       var org = findOrgUnit(PERMS['UPDATE_ORG_SETTING']);
+
+       if( !org || org == -1 ) {
+               org = findOrgUnit(USER.ws_ou());
+               for( var i in ORG_SETTINGS ) 
+                       $(i+'.apply').disabled = true;
+       }
+
+       var type = findOrgType(org.ou_type()) ;
+
+       var selector = $('os_orgs');
+       buildOrgSel(selector, org, type.depth());
+       if(!type.can_have_users()) 
+               selector.options[0].disabled = true;
+
+       selector.onchange = osDrawRange;
+
+       osBaseOrg = org;
+
+       if( ! osBaseOrg.children() ) 
+               for( var i in ORG_SETTINGS ) 
+                       $(i+'.apply_all').disabled = true;
+
+       var gotoOrg = USER.ws_ou();
+       if( ! setSelector( selector, gotoOrg ) ) {
+               gotoOrg = USER.home_ou();
+               setSelector( selector, gotoOrg );
+       }
+
+       return gotoOrg;
+}
+
+
+
+function osDrawRange() {
+       var org = osCurrentOrg();
+       appendClear($('osCurrentOrg'), text(findOrgUnit(org).name()));
+       var req = new Request(ORG_SETTING_RETRIEVE, org);
+       req.callback(osDraw);
+       req.send();
+}
+
+
+function osDraw( r ) {
+       var org = osCurrentOrg();
+       var settings = r.getResultObject();
+
+       for( var i in ORG_SETTINGS ) {
+               var node = ORG_SETTINGS[i];
+               var val = settings[i];
+               node.value = 
+                       (node.getAttribute('ismoney')) ?  
+                               _formatMoney(val) : (val != null) ? val : "";
+       }
+}
+
+function _formatMoney(m) {
+       if(!m || m == 0) return '0.00';
+       m = m + '';
+       if( m.match(/\d+\.\d+/) ) return m;
+       if( !m.match(/\./) ) return m + '.00';
+       if( m.match(/^\.\d+/) ) return '0' + m;
+       return m;
+}
+
+
diff --git a/Open-ILS/xul/staff_client/server/admin/org_settings.xhtml b/Open-ILS/xul/staff_client/server/admin/org_settings.xhtml
new file mode 100644 (file)
index 0000000..210b928
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version='1.0'?>
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xi="http://www.w3.org/2001/XInclude">
+
+       <head>
+               <title>Evergreen: Library Settings Editor</title>
+               <script language='javascript' src='/opac/common/js/utils.js'> </script>
+               <script language='javascript' src='/opac/common/js//config.js'> </script>
+               <script language='javascript' src='/opac/common/js/CGI.js'> </script>
+               <script language='javascript' src='/opac/common/js/Cookie.js'> </script>
+       
+               <script language='javascript' src='/opac/common/js/slimtree.js'> </script>
+               <script language='javascript' src='/opac/common/js/JSON.js'> </script>
+               <script language='javascript' src='/opac/common/js/fmall.js'> </script>
+               <script language='javascript' src='/opac/common/js/fmgen.js'> </script>
+               <script language='javascript' src='/opac/common/js/Cookies.js'> </script>
+               <script language='javascript' src='/opac/common/js/opac_utils.js'> </script>
+               <script language='javascript' src='/opac/common/js/OrgTree.js'> </script>
+               <script language='javascript' src='/opac/common/js/org_utils.js'> </script>
+               <script language='javascript' src='/opac/common/js/init.js'> </script>
+               <script language='javascript' src='/opac/common/js/RemoteRequest.js'> </script>
+               <script language='javascript' src='adminlib.js'> </script>
+               <script language='javascript' src='org_settings.js'> </script>
+
+               <link type='text/css' rel='stylesheet' href='admin.css' />
+       </head>
+
+       <body onload='osEditorInit();'>
+
+               <div class='welcome_box'>
+                       <span>Welcome </span><b><span id='user'/></b>
+               </div>
+
+               <center>
+                       <div class='title'> Library Settings Editor </div>
+
+                       <br/><br/>
+                       Edit Settings for : <select id='os_orgs' style='width:auto;'/>
+                       <br/><br/>
+
+                       <table class='data_grid data_grid_center' width='85%'>
+                               <thead>
+                                       <tr><td colspan='4' style='padding: 8px;'>Library Settings for <b id='osCurrentOrg'/></td></tr>
+                               </thead>
+                               <tbody id='os_tbody'>
+                                       <tr>
+                                               <td>Lost Materials Processing Fee</td>
+                                               <td>&#036;<input ismoney='1' type='text' id='circ.lost_materials_processing_fee' value='0.00'/></td>
+                                               <td><button id='circ.lost_materials_processing_fee.apply'>Apply</button></td>
+                                               <td><button id='circ.lost_materials_processing_fee.apply_all'>Apply to all Locations</button></td>
+                                       </tr>
+                                       <tr>
+                                               <td>Default Item Price</td>
+                                               <td>&#036;<input ismoney='1' type='text' id='cat.default_item_price' value='0.00'/></td>
+                                               <td><button id='cat.default_item_price.apply'>Apply</button></td>
+                                               <td><button id='cat.default_item_price.apply_all'>Apply to all Locations</button></td>
+                                       </tr>
+                                       <tr>
+                                               <td>Collections Fee</td>
+                                               <td>&#036;<input ismoney='1' type='text' id='circ.collections_fee' value='0.00'/></td>
+                                               <td><button id='circ.collections_fee.apply'>Apply</button></td>
+                                               <td><button id='circ.collections_fee.apply_all'>Apply to all Locations</button></td>
+                                       </tr>
+                               </tbody>
+                       </table>
+               </center>
+       </body>
+</html>
+
+
+