diff options
author | 藍挺瑋 <lantw44@gmail.com> | 2012-12-17 17:48:34 +0800 |
---|---|---|
committer | lantw44 <lantw44@gmail.com> | 2012-12-17 17:48:34 +0800 |
commit | bbca2429098021b5804afc16aea7a1869c8109e2 (patch) | |
tree | 81816712d8debeb7eca707d56a267aeeb62649fd | |
parent | 010dab64e5f9ae4166cec5411aa16b69f76e1541 (diff) | |
download | inccalendar-bbca2429098021b5804afc16aea7a1869c8109e2.tar.gz inccalendar-bbca2429098021b5804afc16aea7a1869c8109e2.tar.zst inccalendar-bbca2429098021b5804afc16aea7a1869c8109e2.zip |
初步完成月曆版本的編輯界面,而資料傳輸部份尚未實作
-rw-r--r-- | jinhtml/month.html | 86 | ||||
-rw-r--r-- | jinhtml/skel.html | 2 | ||||
-rw-r--r-- | js/caledit.js | 117 | ||||
-rw-r--r-- | js/month.js | 9 |
4 files changed, 209 insertions, 5 deletions
diff --git a/jinhtml/month.html b/jinhtml/month.html index 3e1ddbe..401a9a2 100644 --- a/jinhtml/month.html +++ b/jinhtml/month.html @@ -31,6 +31,34 @@ #timeedit_month, #timeedit_year{ width: 50px; } + #caledit_left, #caledit_right{ + float: left; + width: 42%; + margin: 3%; + min-width: 350px; + } + #caledit_select{ + width: 100%; + min-width: 350px; + } + #caledit_static_year, #caledit_static_month, #caledit_static_date, + #caledit_static_hour, #caledit_static_minute + { + display: inline-block; + width: 40px; + } + #caledit_dyn_year, #caledit_dyn_month, #caledit_dyn_date, + #caledit_dyn_hour, #caledit_dyn_minute + { + width: 40px; + } + #caledit_dyn_content{ + width: 100%; + resize: vertical; + } + [name=caledit_write] { + display: none; + } </style> {% endblock %} @@ -41,17 +69,19 @@ switchmonthobj.className += "selected"; switchmonthobj.onclick = ""; status_bar_append("(Ctrl-L)清單模式 (Ctrl-左右)切換月份 (y)修改年 (m)修改月"); + status_bar_append("(0-9)快速選擇日期"); {% endblock %} {% block headjs %} <script src="js/month.js" type="text/javascript"></script> + <script src="js/caledit.js" type="text/javascript"></script> <script type="text/javascript"> shortcut_bind(); </script> {% endblock %} {% block body %} - <div id="timeselect"> + <div name="calbrowse" id="timeselect"> <input type="button" value="<" id="timeselect_prev" onclick="timeselect_prev()"> <span id="timeselect_year" onclick="timeselect_direct()">XXXX</span> <input type="text" maxlength="4" id="timeedit_year"> @@ -64,10 +94,10 @@ <input type="button" value="確定" id="timeedit_apply" onclick="timeedit_apply()"> <input type="button" value="取消" id="timeedit_cancel" onclick="timeedit_cancel()"> </div> - <div style="text-align: center;"> - <input type="text" maxlength="2" id="focusjumper" style="display: none;"> + <div name="calbrowse" style="text-align: center;"> + <input type="text" maxlength="2" id="focusjumper" style="display: none;"> </div> - <div id="monthcal"> + <div name="calbrowse" id="monthcal"> <table id="cal"> <thead> <tr> @@ -84,4 +114,52 @@ </tbody> </table> </div> + <div name="caldetail" id="caleditor" style="display: none;"> + <div style="text-align: center;"> + <input type="button" value="返回月曆" style="background-color: #00FF00; font-size: large;" onclick="caledit_quit()"> + </div> + <div id="caledit_left"> + <select id="caledit_select" size="20"> + </select> + </div> + <div id="caledit_right"> + <form id="cal" name="caleditform" onsubmit=""> + <input id="caledit_switchedit" type="button" value="編輯" onclick="caledit_edit()"> + <span id="caledit_enabled"></span> + <fieldset> + <legend>詳細資料</legend> + 日期: + <span name="caledit_read" id="caledit_static_year"></span> + <input name="caledit_write" id="caledit_dyn_year" type="text" maxlength="4"> + 年 + <span name="caledit_read" id="caledit_static_month"></span> + <input name="caledit_write" id="caledit_dyn_month" type="text" maxlength="2"> + 月 + <span name="caledit_read" id="caledit_static_date"></span> + <input name="caledit_write" id="caledit_dyn_date" type="text" maxlength="2"> + 日 + <br> + 時間: + <span name="caledit_read" id="caledit_static_hour"></span> + <input name="caledit_write" id="caledit_dyn_hour" type="text" maxlength="2"> + 時 + <span name="caledit_read" id="caledit_static_minute"></span> + <input name="caledit_write" id="caledit_dyn_minute" type="text" maxlength="2"> + 分 + <br> + 標題: + <span name="caledit_read" id="caledit_static_title"></span> + <input name="caledit_write" id="caledit_dyn_title" type="text"> + <br> + 內容: + <div name="caledit_read_block" id="caledit_static_content"></div> + <textarea name="caledit_write_block" id="caledit_dyn_content" rows="6"></textarea> + 資料來源: + <span id="caledit_datafrom"></span> + </fieldset> + <input type="submit" value="儲存"> + <input type="button" value="取消"> + </form> + </div> + </div> {% endblock %} diff --git a/jinhtml/skel.html b/jinhtml/skel.html index d664a3f..496767c 100644 --- a/jinhtml/skel.html +++ b/jinhtml/skel.html @@ -38,7 +38,7 @@ <div id="controlright"> <input type="button" value="匯入" id="buttonimport"> <input type="button" value="匯出" id="buttonexport"> - <input type="button" value="登出" onclick="google_logout()" style="background-color: darkgray"> + <input type="button" value="登出" id="googlelogout" onclick="google_logout()" style="background-color: darkgray"> </div> </div> <div id="statusbar"> diff --git a/js/caledit.js b/js/caledit.js new file mode 100644 index 0000000..73b4c4b --- /dev/null +++ b/js/caledit.js @@ -0,0 +1,117 @@ +function caledit(year, month, date){ + var allbrowseobj = document.getElementsByName("calbrowse"); + var alldetailobj = document.getElementsByName("caldetail"); + var i; + $(document).unbind("keydown.main"); + $(document).bind("keydown.caledit", "ctrl+e", caledit_edit); + $(document).bind("keydown.caledit", "ctrl+1", caledit_focus_left); + $(document).bind("keydown.caledit", "ctrl+2", caledit_focus_right); + $(document).bind("keydown.caledit", "alt+q", caledit_quit); + status_bar_save(); + status_bar_set("(Alt-Q)返回 (Ctrl-E)切換編輯 (Ctrl-1)左側 (Ctrl-2)右側 "); + caledit_switchedit_disable(); + for(i=0; i<allbrowseobj.length; i++){ + allbrowseobj[i].style.display = "none"; + } + for(i=0; i<alldetailobj.length; i++){ + alldetailobj[i].style.display = "block"; + } + document.getElementById("switchlist").style.display = "none"; + document.getElementById("googlelogout").style.display = "none"; +} + +function caledit_quit(){ + var allbrowseobj = document.getElementsByName("calbrowse"); + var alldetailobj = document.getElementsByName("caldetail"); + var i; + $(document).unbind("keydown.main"); + $(document).unbind("keydown.caledit"); + for(i=0; i<allbrowseobj.length; i++){ + allbrowseobj[i].style.display = "block"; + } + for(i=0; i<alldetailobj.length; i++){ + alldetailobj[i].style.display = "none"; + } + shortcut_bind(); + status_bar_restore(); + document.getElementById("switchlist").style.display = "inline"; + document.getElementById("googlelogout").style.display = "inline"; +} + +function caledit_edit() +{ + var buttonobj; + buttonobj = document.getElementById("caledit_switchedit"); + document.getElementById("caledit_dyn_year").style.display = "inline"; + switch(buttonobj.value){ + case "編輯": + caledit_switchedit_enable(); + break; + case "唯讀": + caledit_switchedit_disable(); + break; + } +} + +function caledit_switchedit_enable() +{ + var buttonobj; + var msgobj; + var roobj, rwobj, robobj, rwbobj; + var i; + buttonobj = document.getElementById("caledit_switchedit"); + msgobj = document.getElementById("caledit_enabled"); + roobj = document.getElementsByName("caledit_read"); + rwobj = document.getElementsByName("caledit_write"); + robobj = document.getElementsByName("caledit_read_block"); + rwbobj = document.getElementsByName("caledit_write_block"); + buttonobj.value = "唯讀"; + msgobj.innerHTML = "編輯模式"; + for(i=0; i<roobj.length; i++){ + roobj[i].style.display = "none"; + } + for(i=0; i<rwobj.length; i++){ + rwobj[i].style.display = "inline"; + } + for(i=0; i<robobj.length; i++){ + robobj[i].style.display = "none"; + } + for(i=0; i<rwbobj.length; i++){ + rwbobj[i].style.display = "block"; + } +} + +function caledit_switchedit_disable() +{ + var buttonobj; + var msgobj; + var roobj, rwobj, robobj, rwbobj; + buttonobj = document.getElementById("caledit_switchedit"); + msgobj = document.getElementById("caledit_enabled"); + roobj = document.getElementsByName("caledit_read"); + rwobj = document.getElementsByName("caledit_write"); + robobj = document.getElementsByName("caledit_read_block"); + rwbobj = document.getElementsByName("caledit_write_block"); + buttonobj.value = "編輯"; + msgobj.innerHTML = "檢視模式"; + for(i=0; i<roobj.length; i++){ + roobj[i].style.display = "inline-block"; + } + for(i=0; i<rwobj.length; i++){ + rwobj[i].style.display = "none"; + } + for(i=0; i<robobj.length; i++){ + robobj[i].style.display = "block"; + } + for(i=0; i<rwbobj.length; i++){ + rwbobj[i].style.display = "none"; + } +} + +function caledit_focus_left(){ + $("#caledit_select").focus(); +} + +function caledit_focus_right(){ + $("#caledit_switchedit").focus(); +} diff --git a/js/month.js b/js/month.js index 4e0ef21..dc334ee 100644 --- a/js/month.js +++ b/js/month.js @@ -299,6 +299,9 @@ function setmonthcal(){ objcal.setAttribute("name", "date" + todate); objcal.setAttribute("onclick", "setfocusblock(" + todate + ", true)"); + objcal.setAttribute("ondblclick", + "caledit(" + value_year + ", " + value_month + ", " + + todate + ")"); objcaldate.innerHTML = todate; alldata[todate] = new Object(); alldata[todate].row = i; @@ -421,6 +424,11 @@ function setfocusbykbdinput_apply(){ setfocusbykbdinput_terminate(); } +function call_caledit_kbd(evt){ + evt.preventDefault(); + caledit(value_year, value_month, value_date); +} + function shortcut_bind(){ $(document).bind("keydown.main", "m", timeedit_month_kbd); $(document).bind("keydown.main", "y", timeedit_year_kbd); @@ -432,6 +440,7 @@ function shortcut_bind(){ $(document).bind("keydown.main", "down", movefocus_down); $(document).bind("keydown.main", "left", movefocus_left); $(document).bind("keydown.main", "right", movefocus_right); + $(document).bind("keydown.main", "return", call_caledit_kbd); $(document).bind("keydown.main", "0", direct0); $(document).bind("keydown.main", "1", direct1); $(document).bind("keydown.main", "2", direct2); |