Robin's interface for managing library hours
authorDan Scott <dscott@laurentian.ca>
Tue, 1 May 2012 14:50:17 +0000 (10:50 -0400)
committerDan Scott <dscott@laurentian.ca>
Tue, 4 Sep 2012 19:09:42 +0000 (15:09 -0400)
Signed-off-by: Dan Scott <dscott@laurentian.ca>
Open-ILS/xul/staff_client/server/admin/hours.xhtml [new file with mode: 0644]
Open-ILS/xul/staff_client/server/admin/index.xhtml

diff --git a/Open-ILS/xul/staff_client/server/admin/hours.xhtml b/Open-ILS/xul/staff_client/server/admin/hours.xhtml
new file mode 100644 (file)
index 0000000..4891bc6
--- /dev/null
@@ -0,0 +1,208 @@
+<?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 ea4a3f1..35d8dc1 100644 (file)
                             <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>