updated the hours of operation interface to use dijit
authorrisard <risard@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Thu, 17 Jun 2010 18:07:54 +0000 (18:07 +0000)
committerrisard <risard@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Thu, 17 Jun 2010 18:07:54 +0000 (18:07 +0000)
git-svn-id: svn://svn.open-ils.org/ILS-Contrib/conifer/branches/rel_1_6_0@894 6d9bc8c9-1ec2-4278-b937-99fde70a366f

xul/server/admin/hours.xhtml
xul/server/admin/index.xhtml

index 1380bbc..7f1ff98 100644 (file)
-<?xml version='1.0' encoding="UTF-8"?>
-
-<!DOCTYPE html PUBLIC 
-       "-//W3C//DTD XHTML 1.0 Transitional//EN" 
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [
-       <!--#include virtual="/opac/locale/${locale}/lang.dtd"-->
-]>
-
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xi="http://www.w3.org/2001/XInclude">
-
-<head>
-<title>Hours of Operation</title>
-
-<link type='text/css' rel='stylesheet' href='admin.css'/>
-
-<!-- Include required scripts for basic OpenSRF-over-HTTP -->
-<script type='text/javascript' src='/opac/common/js/opensrf.js'></script>     
-<script type='text/javascript' src='/opac/common/js/opensrf_xhr.js'></script> 
-<script type='text/javascript' src='/opac/common/js/JSON_v1.js'></script>     
-<script type='text/javascript' src='/opac/common/js/md5.js'></script>         
-<script language='javascript' src='adminlib.js'> </script>
-
-<script type='text/javascript' src='/js/dojo/dojo/dojo.js' djConfig='parseOnLoad: true, isDebug:false'></script>
-
-<script type='text/javascript'>
-
-dojo.require('dojo.cookie');
-dojo.require('openils.User');
-dojo.require('openils.PermaCrud');
-
-var myToken;
-var myOuid;
-
-function initPage(){
-
-    myToken = dojo.cookie('ses');    //need to catch if this goes wrong
-    var user = new openils.User({authtoken:myToken});
-    var pcrud =  new openils.PermaCrud({"authtoken":myToken});
-    var myOu = pcrud.retrieve("aou", user.user.ws_ou());
-    myOuid =  user.user.ws_ou();
-
-    document.getElementById("title_tag").innerHTML = "<h2>Hours of operation for: " + myOu.shortname() + "</h2>";    
-
-    setHours("display"); 
-}
-
-function setHours(action){
-
-    var pcrud =  new openils.PermaCrud({"authtoken":myToken});
-    var myHours = pcrud.retrieve("aouhoo", myOuid);
-    var form_count = document.formHours.elements.length;
-    var elem;
-    var i = 0;
-
-    while (elem = document.formHours.elements[i++]){
-        if (action == 'update'){
-            myHours[elem.id](elem.value);   //need to add some validation code here when i have a minute       
-        }else{
-            elem.value = myHours[elem.id]();   //if update then sync
-        }
-    }
-
-    if (action == 'update'){
-        pcrud.update(myHours);
-        document.getElementById("status_tag").innerHTML = "<b>Update Sucessful</b>"; //should check sucess first, don't know how though
-    }
-
-}
-
-
-
-</script>
-
-
-</head>
-<body onload='initPage()'>
-<div id='title_tag'></div>
-<div id='status_tag'></div>
-<div id='divHours' name='divHours'>
-    <form name='formHours' id='formHours'>
-    <table border='0'>
-        <tr>       
-            <td></td>
-            <td>From:</td>
-            <td></td>
-            <td>To:</td>
-       </tr>
-       <tr>
-            <td>Sunday</td>
-            <td><input type='text' id='dow_0_open' name='dow_0_open' size='8' maxlength='8'></input></td>
-            <td></td>
-            <td><input type='text' id='dow_0_close' name='dow_0_close' size='8' maxlength='8'></input></td>
-       </tr>
-       <tr>
-            <td>Monday</td>
-            <td><input type='text' id='dow_1_open' name='dow_1_open' size='8' maxlength='8'></input></td>
-            <td></td>
-            <td><input type='text' id='dow_1_close' name='dow_1_close' size='8' maxlength='8'></input></td>
-        </tr>
-        <tr> 
-            <td>Tuesday</td>
-            <td><input type='text' id='dow_2_open' name='dow_2_open' size='8' maxlength='8'></input></td>
-            <td></td>
-            <td><input type='text' id='dow_2_close' name='dow_2_close' size='8' maxlength='8'></input></td> 
-        </tr>
-        <tr>
-            <td>Wednesday</td>
-            <td><input type='text' id='dow_3_open' name='dow_3_open' size='8' maxlength='8'></input></td>
-            <td></td>
-            <td><input type='text' id='dow_3_close' name='dow_3_close' size='8' maxlength='8'></input></td>
-        </tr>
-        <tr>
-            <td>Thursday</td>
-            <td><input type='text' id='dow_4_open' name='dow_4_open' size='8' maxlength='8'></input></td>
-            <td></td>
-            <td><input type='text' id='dow_4_close' name='dow_4_close' size='8' maxlength='8'></input></td>
-        </tr>
-        <tr> 
-            <td>Friday</td>
-            <td><input type='text' id='dow_5_open' name='dow_5_open' size='8' maxlength='8'></input></td>
-            <td></td>
-            <td><input type='text' id='dow_5_close' name='dow_5_close' size='8' maxlength='8'></input></td>
-        </tr>
-        <tr>
-            <td>Saturday</td>
-            <td><input type='text' id='dow_6_open' name='dow_6_open' size='8' maxlength='8'></input></td>
-            <td></td>
-            <td><input type='text' id='dow_6_close' name='dow_6_close' size='8' maxlength='8'></input></td>
-        </tr>
-        <tr>
-            <td></td>
-        </tr>
-    </table>
-    </form> 
-<input type='button' name='submit' id='submit' value='submit' onclick='setHours("update")'></input>
-</div>
-
-
-
-
-
-
-</body>
-</html>
+<?xml version='1.0' encoding="UTF-8"?>\r
+\r
+<!DOCTYPE html PUBLIC \r
+       "-//W3C//DTD XHTML 1.0 Transitional//EN" \r
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [\r
+       <!--#include virtual="/opac/locale/${locale}/lang.dtd"-->\r
+]>\r
+\r
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xi="http://www.w3.org/2001/XInclude">\r
+\r
+<head>\r
+<title>Hours of Operation</title>\r
+\r
+<!-- STYLES - note this contains a reference to tundra.css which is the basis of the dijit widgets -->\r
+<link type='text/css' rel='stylesheet' href='admin.css'/>\r
+\r
+<!-- Include required scripts for basic OpenSRF-over-HTTP -->\r
+<script type='text/javascript' src='/opac/common/js/opensrf.js'></script>     \r
+<script type='text/javascript' src='/opac/common/js/opensrf_xhr.js'></script> \r
+<script type='text/javascript' src='/opac/common/js/JSON_v1.js'></script>     \r
+<script type='text/javascript' src='/opac/common/js/md5.js'></script>  \r
+\r
+<!-- Includes required to try and retrieve the org unit name -->       \r
+<!-- script type='text/javascript' src='/opac/common/js/org_utils.js'></script --> \r
+<!-- script type='text/javascript' src='/opac/common/js/<!--#echo var="locale"-->/OrgTree.js'></script --> \r
+<!-- script language='javascript' src='adminlib.js'> </script -->\r
+\r
+<!-- Dojo / digit libs -->\r
+<script type='text/javascript' src='/js/dojo/dojo/dojo.js' djConfig='parseOnLoad: true, isDebug:false'></script>\r
+<script type="text/javascript" src="js/dojotoolkit/dojo/dojo.js" djConfig="parseOnLoad:true, isDebug:true"></script>\r
+\r
+<!-- DEBUG -->\r
+<script type='text/javascript' src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>\r
+\r
+\r
+<script type='text/javascript'>\r
+\r
+dojo.require('dojo.cookie');\r
+dojo.require('openils.User');\r
+dojo.require('openils.PermaCrud');\r
+dojo.require('dijit.form.Button');\r
+dojo.require('dijit.form.Form');\r
+dojo.require("dijit.form.TimeTextBox");\r
+\r
+var myToken;\r
+var myOuid;\r
+\r
+function initPage(){\r
+\r
+    myToken = dojo.cookie('ses');    //need to catch if this goes wrong\r
+    var user = new openils.User({authtoken:myToken});\r
+    myOuid =  user.user.ws_ou();\r
+\r
+    var f = new dijit.form.Form({id:"formHours"}, "formHours");\r
+    var oConstraints = {timePattern: "HH:mm:ss", clickableIncrement: "T00:15:00", visibleIncrement: "T00:15:00", visibleRange: "T01:00:00"};\r
+\r
+\r
+    var oDow_0_open = new dijit.form.TimeTextBox({id:"dow_0_open", constraints: oConstraints}, "dow_0_open");\r
+\r
+    var oDow_0_close = new dijit.form.TimeTextBox({id:"dow_0_close", constraints: oConstraints}, "dow_0_close");\r
+\r
+    var oDow_1_open = new dijit.form.TimeTextBox({id:"dow_1_open", constraints: oConstraints}, "dow_1_open");\r
+    var oDow_1_close = new dijit.form.TimeTextBox({id:"dow_1_close", constraints: oConstraints}, "dow_1_close");\r
+\r
+    var oDow_2_open = new dijit.form.TimeTextBox({id:"dow_2_open", constraints: oConstraints}, "dow_2_open");\r
+    var oDow_2_close = new dijit.form.TimeTextBox({id:"dow_2_close", constraints: oConstraints}, "dow_2_close");\r
+\r
+    var oDow_3_open = new dijit.form.TimeTextBox({id:"dow_3_open", constraints: oConstraints}, "dow_3_open");\r
+    var oDow_3_close = new dijit.form.TimeTextBox({id:"dow_3_close", constraints: oConstraints}, "dow_3_close");\r
+\r
+    var oDow_4_open = new dijit.form.TimeTextBox({id:"dow_4_open", constraints: oConstraints}, "dow_4_open");\r
+    var oDow_4_close = new dijit.form.TimeTextBox({id:"dow_4_close", constraints: oConstraints}, "dow_4_close");\r
+\r
+    var oDow_5_open = new dijit.form.TimeTextBox({id:"dow_5_open", constraints: oConstraints}, "dow_5_open");\r
+    var oDow_5_close = new dijit.form.TimeTextBox({id:"dow_5_close", constraints: oConstraints}, "dow_5_close");\r
+\r
+    var oDow_6_open = new dijit.form.TimeTextBox({id:"dow_6_open", constraints: oConstraints}, "dow_6_open");\r
+    var oDow_6_close = new dijit.form.TimeTextBox({id:"dow_6_close", constraints: oConstraints}, "dow_6_close");\r
+    \r
+    var oButton = new dijit.form.Button({id:"submit", \r
+                                        label:"submit",\r
+                                        onClick:function(){\r
+                                            setHours("update");\r
+                                        }},\r
+                                        "submit");\r
+\r
+    document.getElementById("title_tag").innerHTML = "<h2>Hours of operation for: " + myOuid + "</h2>";    \r
+\r
+    setHours("display"); \r
+}\r
+\r
\r
+function setHours(action){\r
+\r
+    var pcrud =  new openils.PermaCrud({"authtoken":myToken});\r
+    var myHours = pcrud.retrieve("aouhoo", myOuid);\r
+\r
+    if (myHours == null){\r
+        var default_hours = new aouhoo();\r
+        default_hours.id(myOuid);\r
+        pcrud.create(default_hours);\r
+        myHours = pcrud.retrieve("aouhoo", myOuid);\r
+}\r
+\r
+\r
+    if (myHours.id() != myOuid) {\r
+        document.getElementById("status_tag").innerHTML = "<b>You are trying to edit the hours of a branch you don't work at.</b>";\r
+        return;\r
+    }\r
+\r
+    switch(action){\r
+        case 'display':\r
+            dojo.query("input[id^='dow']").forEach(\r
+                function (item) {\r
+                    item.value = myHours[item.id](); \r
+                }\r
+            );\r
+        break;\r
+\r
+        case 'update':\r
+            dojo.query("input[id^='dow']").forEach(\r
+                function (item) {\r
+                    myHours[item.id](item.value);\r
+                }\r
+            ); \r
+\r
+            pcrud.update(myHours);\r
+            document.getElementById("status_tag").innerHTML = "<b>Update Sucessful</b>"; //should check sucess first, don't know how though\r
+        break;\r
+    }\r
+    \r
+\r
+}\r
+\r
+\r
+dojo.addOnLoad(initPage);\r
+\r
+\r
+</script>\r
+\r
+\r
+</head>\r
+<body class='tundra'>\r
+<div id='title_tag'></div>\r
+<div id='status_tag'></div>\r
+<div id='divHours' name='divHours'>\r
+    <form name='formHours' id='formHours'>\r
+    <table border='0'>\r
+        <tr>       \r
+            <td></td>\r
+            <td>From:</td>\r
+            <td></td>\r
+            <td>To:</td>\r
+       </tr>\r
+       <tr>\r
+            <td>Sunday</td>\r
+            <td><input id='dow_0_open'></input></td>\r
+            <td></td>\r
+            <td><input id='dow_0_close'></input></td>\r
+       </tr>\r
+       <tr>\r
+            <td>Monday</td>\r
+            <td><input id='dow_1_open'></input></td>\r
+            <td></td>\r
+            <td><input id='dow_1_close'></input></td>\r
+        </tr>\r
+        <tr> \r
+            <td>Tuesday</td>\r
+            <td><input id='dow_2_open'></input></td>\r
+            <td></td>\r
+            <td><input id='dow_2_close'></input></td> \r
+        </tr>\r
+        <tr>\r
+            <td>Wednesday</td>\r
+            <td><input id='dow_3_open'></input></td>\r
+            <td></td>\r
+            <td><input id='dow_3_close'></input></td>\r
+        </tr>\r
+        <tr>\r
+            <td>Thursday</td>\r
+            <td><input id='dow_4_open'></input></td>\r
+            <td></td>\r
+            <td><input id='dow_4_close'></input></td>\r
+        </tr>\r
+        <tr> \r
+            <td>Friday</td>\r
+            <td><input id='dow_5_open'></input></td>\r
+            <td></td>\r
+            <td><input id='dow_5_close'></input></td>\r
+        </tr>\r
+        <tr>\r
+            <td>Saturday</td>\r
+            <td><input id='dow_6_open'></input></td>\r
+            <td></td>\r
+            <td><input id='dow_6_close'></input></td>\r
+        </tr>\r
+        <tr>\r
+            <td></td>\r
+            <td><button id='submit' name='abutton'></button></td>\r
+        </tr>\r
+    </table>\r
+    </form> \r
+</div>\r
+\r
+\r
+\r
+</body>\r
+</html>\r
index e12326e..a90b084 100644 (file)
                                                                <a href='javascript:_l("closed_dates.xhtml");'>&staff.server.admin.index.closed_dates;</a>
                                                        </div>
                                                        <div style='padding: 8px;'>
-                                                               <a href='javascript:_l("hours.xhtml");'>Hours of Operation</a> <span style="color: red">&staff.server.admin.index.testing;</span>
-
-                                                       </div>
-                                                       <div style='padding: 8px;'>
                                                                <a href='javascript:_l("copy_locations.xhtml");'>&staff.server.admin.index.copy_locations;</a>
                                                        </div>
+                                                       <div style='padding: 8px;'>
+                                                               <a href='javascript:_l("hours.xhtml");'>Hours</a>
+                                                       </div>
                                                        <div style='padding: 8px;'>
                                                                <a href='javascript:_l("org_unit_settings.xhtml");'>&staff.server.admin.index.library_settings;</a>
                                                        </div>