index.html 57 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124
  1. <!DOCTYPE html>
  2. <html lang="en" manifest="cache.manifest">
  3. <head>
  4. <title>CalDavZAP</title>
  5. <meta http-equiv="cache-control" content="no-cache" />
  6. <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  7. <meta name="apple-mobile-web-app-capable" content="yes" />
  8. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  9. <!--
  10. CalDavZAP - the open source CalDAV Web Client
  11. Copyright (C) 2011-2015
  12. Jan Mate <jan.mate@inf-it.com>
  13. Andrej Lezo <andrej.lezo@inf-it.com>
  14. Matej Mihalik <matej.mihalik@inf-it.com>
  15. This program is free software: you can redistribute it and/or modify
  16. it under the terms of the GNU Affero General Public License as
  17. published by the Free Software Foundation, either version 3 of the
  18. License, or (at your option) any later version.
  19. This program is distributed in the hope that it will be useful,
  20. but WITHOUT ANY WARRANTY; without even the implied warranty of
  21. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  22. GNU Affero General Public License for more details.
  23. You should have received a copy of the GNU Affero General Public License
  24. along with this program. If not, see <http://www.gnu.org/licenses/>.
  25. -->
  26. <link rel="stylesheet" href="css/jquery-ui.custom.css" type="text/css" />
  27. <link rel="stylesheet" href="css/spectrum.custom.css" type="text/css" />
  28. <link rel="stylesheet" href="css/default.css" type="text/css" />
  29. <link rel="stylesheet" href="css/fullcalendar.css" type="text/css" />
  30. <link rel="stylesheet" href="css/default_integration.css" type="text/css" />
  31. <script src="cache_handler.js" type="text/javascript"></script>
  32. <script src="lib/jquery-2.1.4.min.js" type="text/javascript"></script>
  33. <script src="lib/jquery.browser.js" type="text/javascript"></script>
  34. <script src="lib/jquery.autosize.js" type="text/javascript"></script>
  35. <script src="lib/jquery-ui-1.11.4.custom.js" type="text/javascript"></script>
  36. <script src="lib/jquery.quicksearch.js" type="text/javascript"></script>
  37. <script src="lib/jquery.placeholder-1.1.9.js" type="text/javascript"></script>
  38. <script src="lib/jshash-2.2_sha256.js" type="text/javascript"></script>
  39. <script src="lib/spectrum.js" type="text/javascript"></script>
  40. <script src="lib/fullcalendar.js" type="text/javascript"></script>
  41. <script src="config.js" type="text/javascript"></script>
  42. <script src="common.js" type="text/javascript"></script>
  43. <script src="webdav_protocol.js" type="text/javascript"></script>
  44. <script src="localization.js" type="text/javascript"></script>
  45. <script src="interface.js" type="text/javascript"></script>
  46. <script src="vcalendar_rfc_regex.js" type="text/javascript"></script>
  47. <script src="resource.js" type="text/javascript"></script>
  48. <script src="vcalendar.js" type="text/javascript"></script>
  49. <script src="vtodo.js" type="text/javascript"></script>
  50. <script src="lib/rrule.js" type="text/javascript"></script>
  51. <script src="data_process.js" type="text/javascript"></script>
  52. <script src="main.js" type="text/javascript"></script>
  53. <script src="forms.js" type="text/javascript"></script>
  54. <script src="timezones.js" type="text/javascript"></script>
  55. </head>
  56. <body>
  57. <div id="cacheDialog">
  58. <div id="cacheDialogText">newer version detected!</div>
  59. <div id="cacheDialogButtonWrapper">
  60. <input id="cacheDialogButton" type="button" value="refresh" onclick="window.location.reload()"/>
  61. </div>
  62. </div>
  63. <div id="MainLoader">
  64. <div id="MainLoaderInner" class="loaderInfo">Loading ...</div>
  65. <div class="loader"></div>
  66. </div>
  67. <div id="LoginPage" style="opacity: 1; display:none">
  68. <div class="window">
  69. <div id="Login">
  70. <form onsubmit="event.preventDefault(); login();">
  71. <table>
  72. <tr>
  73. <td data-size="login_logo"><img data-type="system_logo" src="" alt="Logo" /></td>
  74. </tr>
  75. <tr>
  76. <td data-size="login_input"><input data-type="system_username" type="text" name="username" class="fs" placeholder="Login" /></td>
  77. </tr>
  78. <tr>
  79. <td data-size="login_input"><input data-type="system_password" type="password" name="password" class="fs" placeholder="Password" /></td>
  80. </tr>
  81. <tr>
  82. <td data-size="login">
  83. <select data-type="language" onchange="if($(this).val()!=''){globalInterfaceLanguage=$(this).find('option').filter(':selected').attr('data-type');resetSettings();if(isAvaible('CalDavZAP') && !isCalDAVLoaded)localizeCalDAV();if(isAvaible('CardDavMATE') && !isCardDAVLoaded)localizeCardDAV();if(isAvaible('Settings') && !isSettingsLoaded)localizeSettings();if(isAvaible('Projects') && !isProjectsLoaded)localizeProjects();}">
  84. <option data-type=""> </option>
  85. </select>
  86. </td>
  87. </tr>
  88. <tr>
  89. <td><img data-type="system_login" alt="login" title="login" src="images/login.svg" onclick="if(event.shiftKey) ignoreServerSettings=true; $(this).closest('form').find('[type=\'submit\']').click();" /></td>
  90. </tr>
  91. <tr style="display:none">
  92. <td><input type="submit" /></td>
  93. </tr>
  94. </table>
  95. </form>
  96. </div>
  97. <div id="login_message" style="display: none;"></div>
  98. <div id="LoginLoader">
  99. <div class="loader"></div>
  100. </div>
  101. </div>
  102. <div class="footer">This is SOFTWARE!!!</div>
  103. </div>
  104. <div id="AlertDisabler"></div>
  105. <div id="alertBox">
  106. <h1 id="alertsH">Alerts</h1>
  107. <div id="alertBoxContent"></div>
  108. <input id="alertButton" type="button" value="Clear Alerts" onclick="clearAlertEvents();" />
  109. </div>
  110. <div class="integration_d">
  111. <div id="intCaldav" title="calendar" onclick="checkForApplication('CalDavZAP');">
  112. <img class="int_error" src="images/error_badge.svg" alt="error" />
  113. </div>
  114. <div id="intCaldavTodo" title="todo" onclick="checkForApplication('CalDavTODO');">
  115. <img class="int_error" src="images/error_badge.svg" alt="error" />
  116. </div>
  117. <div class="intBlank"></div>
  118. <div id="intRefresh" title="refresh" onclick="reloadResources();"></div>
  119. <div class="intBlank"></div>
  120. <div id="intLogout" title="logout" onclick="logout();"></div>
  121. </div>
  122. <div class="System" id="SystemCalDavZAP">
  123. <div id="CalDavZAPPopup">
  124. <div id="CalDavZAPPopupColor"></div>
  125. <table id="CalDavZAPPopupTable">
  126. <tr>
  127. <td colspan="2" class="header multiline" data-type="name"></td>
  128. </tr>
  129. <tr>
  130. <td class="label" data-type="location_txt">location</td>
  131. <td class="value" data-type="location"></td>
  132. </tr>
  133. <tr>
  134. <td class="label" data-type="from_txt">from</td>
  135. <td class="value" data-type="from"></td>
  136. </tr>
  137. <tr>
  138. <td class="label" data-type="to_txt">to</td>
  139. <td class="value" data-type="to"></td>
  140. </tr>
  141. <tr>
  142. <td class="label" data-type="status_txt">status</td>
  143. <td class="value" data-type="status"></td>
  144. </tr>
  145. <tr>
  146. <td class="label" data-type="avail_txt">availability</td>
  147. <td class="value" data-type="avail"></td>
  148. </tr>
  149. <tr>
  150. <td class="label" data-type="type_txt">privacy</td>
  151. <td class="value" data-type="type"></td>
  152. </tr>
  153. <tr>
  154. <td class="label" data-type="priority_txt">priority</td>
  155. <td class="value" data-type="priority"></td>
  156. </tr>
  157. <tr>
  158. <td class="label" data-type="calendar_txt">calendar</td>
  159. <td class="value" data-type="calendar"></td>
  160. </tr>
  161. <tr>
  162. <td class="label" data-type="url_txt">url</td>
  163. <td class="value" data-type="url"></td>
  164. </tr>
  165. <tr>
  166. <td class="label" data-type="note_txt">note</td>
  167. <td class="value multiline" data-type="note"></td>
  168. </tr>
  169. </table>
  170. </div>
  171. <div id="EventDisabler"></div>
  172. <div class="update_d" style="display: none;">
  173. <div class="update_h"></div>
  174. </div>
  175. <div class="headers" id="resourceCalDAV_h">
  176. <span class="resourceCalDAV_text" data-type="resourcesCalDAV_txt">Resources</span>
  177. <img src="images/add_cal_white.svg" alt="Enable all calendars" title="Enable all calendars" data-type="addAll" class="addRemoveAll addRemoveAllCalDAV" onclick="enableAll()" />
  178. <img src="images/remove_cal_white.svg" alt="Disable all calendars" title="Disable all calendars" data-type="removeAll" class="addRemoveAll addRemoveAllCalDAV" onclick="disableAll()" />
  179. <img id="showUnloadedCalendars" src="images/delegation.svg" alt="Subscribe" title="Subscribe" onclick="showUnloadedCollections('event');" />
  180. <input id="loadUnloadedCalendars" type="button" value="save" onclick="loadAdditionalCollections('event');" style="margin-top:4px;margin-left:6px;" />
  181. <input id="loadUnloadedCalendarsCancel" type="button" value="cancel" onclick="cancelUnloadedCollections('event');" style="margin-top:4px;margin-right:6px;float:right;" />
  182. </div>
  183. <div id="ResourceCalDAVList">
  184. <div id="ResourceCalDAVListTemplate" style="display: none;">
  185. <div class="resourceCalDAV_header"><input type="checkbox"></div>
  186. <div class="resourceCalDAV_item"></div>
  187. </div>
  188. </div>
  189. <div id="timezoneWrapper">
  190. <label data-type="txt_timezonePicker" for="timezonePicker">Timezone:</label>
  191. <div id="timezoneSelectDiv">
  192. <select id="timezonePicker" name="timezonePicker" data-type="timezonesPicker"></select>
  193. </div>
  194. </div>
  195. <div class="headers" id="main_h">
  196. <input id="ResourceCalDAVToggle" type="image" src="images/resources.svg" alt="Show/Hide Resources" />
  197. <div id="main_h_placeholder"></div>
  198. <img id="eventFormShower" src="images/new_item.svg" alt="Add event" />
  199. </div>
  200. <div id="searchForm">
  201. <img alt="Search Form" src="images/search.svg" style="position: inline; margin-top: 4px; margin-left: 8px; vertical-align: top;" />
  202. <div class="searchContainer">
  203. <input type="text" value="" placeholder="Search" data-type="PH_CalDAVsearch" id="searchInput" style="margin-top: 3px; vertical-align: top;" />
  204. </div>
  205. <img alt="Search Reset" id="reserButton" onclick="$('#searchInput').val('');$('#searchInput').keyup();" src="images/reset_b.svg" style="position: absolute; margin-top: 5px; right: 9px; vertical-align: top; cursor: pointer; visibility: hidden;" />
  206. </div>
  207. <div id="CalendarLoader">
  208. <div class="loaderInfo">Calendaring ...</div>
  209. <div class="loader"></div>
  210. </div>
  211. <div id='main'>
  212. <div id='calendar'></div>
  213. </div>
  214. <div id="CAEvent">
  215. <div class="saveLoader">
  216. <div class="saveLoaderInfo"></div>
  217. <div class="loader"></div>
  218. </div>
  219. <div id="repeatConfirmBox">
  220. <h1 data-type="repeat_event">Repeat event confirmation</h1>
  221. <div id="repeatConfirmBoxContent"></div>
  222. <div id="repeatConfirmBoxQuestion"></div>
  223. <input id='editAll' type="button" value="All events" /><br />
  224. <input id='editFuture' type="button" value="All future events" /><br />
  225. <input id='editOnlyOne' type="button" value="This event only"/><br />
  226. <input type="button" data-type="closeRepeat" value="Close" onclick="$('#repeatConfirmBoxContent').html(''); $('#repeatConfirmBox').css('visibility', 'hidden'); $('#EventDisabler').fadeOut(globalEditorFadeAnimation);" />
  227. </div>
  228. <div id="event_details_template">
  229. <div id="eventColor"></div>
  230. <div id="eventDetailsContainer">
  231. <table id="eventDetailsTable">
  232. <tr>
  233. <th colspan="3" class="headerContainer">
  234. <div class="formNav prev" title="show previous event" data-type="event_prev_nav"><img src="images/arrow_prev.svg" alt="previous"/></div>
  235. <textarea class="header" data-type="name" placeholder="Name" name="name" id="name"></textarea>
  236. <div class="formNav next" title="show next event" data-type="event_next_nav"><img src="images/arrow_next.svg" alt="next"/></div>
  237. </th>
  238. </tr>
  239. <tr>
  240. <td class="label"><label data-type="location" for="location">location:</label></td>
  241. <td colspan="2"><input class="long" data-type="PH_location" type="text" placeholder="Location" name="location" id="location" /></td>
  242. </tr>
  243. <tr>
  244. <td class="label"><label data-type="all_day" for="allday">all-day: </label></td>
  245. <td colspan="2"><input class="long" type="checkbox" name="allday" id="allday" /></td>
  246. </tr>
  247. <tr>
  248. <td class="label"><label data-type="from" for="date_from">from: </label></td>
  249. <td>
  250. <input class="date small" type="text" data-type="PH_date_from" placeholder="Date from" id="date_from" name="date_from" />
  251. <div class="invalidWrapper"><img data-type="invalidSmall" style="display: none;" src="images/error_b.svg" alt="invalid" /></div>
  252. </td>
  253. <td id="time_from_cell">
  254. <input class="time small" type="text" data-type="PH_time_from" placeholder="Time from" id="time_from" name="time_from" />
  255. <div class="invalidWrapper"><img data-type="invalidSmall" style="display: none;" src="images/error_b.svg" alt="invalid" /></div>
  256. </td>
  257. </tr>
  258. <tr>
  259. <td class="label"><label data-type="to" for="date_to">to: </label></td>
  260. <td>
  261. <input class="date small" type="text" data-type="PH_date_to" placeholder="Date to" id="date_to" name="date_to" />
  262. <div class="invalidWrapper"><img data-type="invalidSmall" style="display: none;" src="images/error_b.svg" alt="invalid" /></div>
  263. </td>
  264. <td id="time_to_cell">
  265. <input class="time small" type="text" data-type="PH_time_to" placeholder="Time to" id="time_to" name="time_to" />
  266. <div class="invalidWrapper"><img data-type="invalidSmall" style="display: none;" src="images/error_b.svg" alt="invalid" /></div>
  267. </td>
  268. </tr>
  269. <tr class="timezone_row">
  270. <td class="label"><label data-type="txt_timezone" for="timezone">timezone: </label></td>
  271. <td colspan="2" data-size="full">
  272. <select class="long" data-type="timezones" name="timezone" id="timezone"></select>
  273. </td>
  274. </tr>
  275. <tr>
  276. <td class="label"><label data-type="repeat" for="repeat">repeat: </label></td>
  277. <td colspan="2" data-size="full">
  278. <select class="long" name="repeat" id="repeat">
  279. <option data-type="repeat_no-repeat" value="no-repeat">No repeat</option>
  280. <option data-type="repeat_DAILY" value="DAILY">Daily</option>
  281. <option data-type="repeat_BUSINESS" value="BUSINESS">Every business day</option>
  282. <option data-type="repeat_WEEKEND" value="WEEKEND">Every weekend</option>
  283. <option data-type="repeat_WEEKLY" value="WEEKLY">Weekly</option>
  284. <option data-type="repeat_TWO_WEEKLY" value="TWO_WEEKLY">Bi-weekly</option>
  285. <option data-type="repeat_MONTHLY" value="MONTHLY">Monthly</option>
  286. <option data-type="repeat_YEARLY" value="YEARLY">Yearly</option>
  287. <option data-type="repeat_CUSTOM_WEEKLY" value="CUSTOM_WEEKLY">Custom weekly</option>
  288. <option data-type="repeat_CUSTOM_MONTHLY" value="CUSTOM_MONTHLY">Custom monthly</option>
  289. <option data-type="repeat_CUSTOM_YEARLY" value="CUSTOM_YEARLY">Custom yearly</option>
  290. </select>
  291. </td>
  292. </tr>
  293. <tr id="repeat_interval" style="display: none;">
  294. <td class="label repeat"><label data-type="repeat_type" for="repeat_interval_detail">Every </label></td>
  295. <td style="position: relative;">
  296. <input class="small" type="text" data-type="PH_type_Interval" placeholder="Interval" name="end" id="repeat_interval_detail" />
  297. <div class="invalidWrapper"><img data-type="invalidSmall" style="display: none;" src="images/error_b.svg" alt="invalid" /></div>
  298. </td>
  299. <td>
  300. <span class="infoSpan" style="padding-left: 4px;" data-type="txt_interval">days</span>
  301. </td>
  302. </tr>
  303. <tr id="week_custom" style="display: none;">
  304. <td class="label repeat"><label data-type="week_custom_txt">On </label></td>
  305. <td colspan="2">
  306. <table class="customTable customTableWeek">
  307. <tr>
  308. <td data-type="0" data-text="SU" class="firstCol">Su</td>
  309. <td data-type="1" data-text="MO">Mo</td>
  310. <td data-type="2" data-text="TU">Tu</td>
  311. <td data-type="3" data-text="WE">We</td>
  312. <td data-type="4" data-text="TH">Th</td>
  313. <td data-type="5" data-text="FR">Fr</td>
  314. <td data-type="6" data-text="SA" class="lastCol">Sa</td>
  315. </tr>
  316. </table>
  317. </td>
  318. </tr>
  319. <tr id="month_custom1" style="display: none;">
  320. <td class="label"><label data-type="month_custom1_txt"></label></td>
  321. <td data-size="half">
  322. <select id="repeat_month_custom_select" class="small">
  323. <option value="every" data-type="month_custom_every">Every</option>
  324. <option value="first" data-type="month_custom_first">First</option>
  325. <option value="second" data-type="month_custom_second">Second</option>
  326. <option value="third" data-type="month_custom_third">Third</option>
  327. <option value="fourth" data-type="month_custom_fourth">Fourth</option>
  328. <option value="fifth" data-type="month_custom_fifth">Fifth</option>
  329. <option value="last" data-type="month_custom_last">Last</option>
  330. <option value="custom" data-type="month_custom_custom">Custom</option>
  331. </select>
  332. </td>
  333. <td style="position: relative;" data-size="half">
  334. <select id="repeat_month_custom_select2" class="small">
  335. <option value="SU" data-type="0">Sunday</option>
  336. <option value="MO" data-type="1">Monday</option>
  337. <option value="TU" data-type="2">Tuesday</option>
  338. <option value="WE" data-type="3">Wednesday</option>
  339. <option value="TH" data-type="4">Thursday</option>
  340. <option value="FR" data-type="5">Friday</option>
  341. <option value="SA" data-type="6">Saturday</option>
  342. <option value="DAY" data-type="month_custom_month">Day of the month</option>
  343. </select>
  344. </td>
  345. </tr>
  346. <tr id="month_custom2" style="display: none;">
  347. <td class="label repeat"><label data-type="month_custom2_txt">On days</label></td>
  348. <td colspan="2">
  349. <table class="customTable customTableMonth">
  350. <tr>
  351. <td data-type="1" class="firstCol">1</td>
  352. <td data-type="2">2</td>
  353. <td data-type="3">3</td>
  354. <td data-type="4">4</td>
  355. <td data-type="5">5</td>
  356. <td data-type="6">6</td>
  357. <td data-type="7" class="lastCol">7</td>
  358. </tr>
  359. <tr>
  360. <td data-type="8" class="firstCol">8</td>
  361. <td data-type="9">9</td>
  362. <td data-type="10">10</td>
  363. <td data-type="11">11</td>
  364. <td data-type="12">12</td>
  365. <td data-type="13">13</td>
  366. <td data-type="14" class="lastCol">14</td>
  367. </tr>
  368. <tr>
  369. <td data-type="15" class="firstCol">15</td>
  370. <td data-type="16">16</td>
  371. <td data-type="17">17</td>
  372. <td data-type="18">18</td>
  373. <td data-type="19">19</td>
  374. <td data-type="20">20</td>
  375. <td data-type="21" class="lastCol">21</td>
  376. </tr>
  377. <tr>
  378. <td data-type="22" class="firstCol">22</td>
  379. <td data-type="23">23</td>
  380. <td data-type="24">24</td>
  381. <td data-type="25">25</td>
  382. <td data-type="26">26</td>
  383. <td data-type="27">27</td>
  384. <td data-type="28" class="lastCol">28</td>
  385. </tr>
  386. <tr>
  387. <td data-type="29" class="firstCol">29</td>
  388. <td data-type="30">30</td>
  389. <td data-type="31">31</td>
  390. </tr>
  391. </table>
  392. </td>
  393. </tr>
  394. <tr id="year_custom2" style="display: none;">
  395. <td class="label"><label data-type="year_custom2"></label></td>
  396. <td data-size="half">
  397. <select id="repeat_year_custom_select1" class="small">
  398. <option value="every" data-type="year_custom_every">Every</option>
  399. <option value="first" data-type="year_custom_first">First</option>
  400. <option value="second" data-type="year_custom_second">Second</option>
  401. <option value="third" data-type="year_custom_third">Third</option>
  402. <option value="fourth" data-type="year_custom_fourth">Fourth</option>
  403. <option value="fifth" data-type="year_custom_fifth">Fifth</option>
  404. <option value="last" data-type="year_custom_last">Last</option>
  405. <option value="custom" data-type="year_custom_custom">Custom</option>
  406. </select>
  407. </td>
  408. <td style="position: relative;" data-size="half">
  409. <select id="repeat_year_custom_select2" class="small">
  410. <option value="SU" data-type="0">Sunday</option>
  411. <option value="MO" data-type="1">Monday</option>
  412. <option value="TU" data-type="2">Tuesday</option>
  413. <option value="WE" data-type="3">Wednesday</option>
  414. <option value="TH" data-type="4">Thursday</option>
  415. <option value="FR" data-type="5">Friday</option>
  416. <option value="SA" data-type="6">Saturday</option>
  417. <option value="DAY" data-type="year_custom_month">Day of the month</option>
  418. </select>
  419. </td>
  420. </tr>
  421. <tr id="year_custom1" style="display: none;">
  422. <td class="label repeat"><label data-type="year_custom1">Every</label></td>
  423. <td colspan="2">
  424. <table class="customTable customTableMonth">
  425. <tr>
  426. <td data-type="1" class="firstCol">1</td>
  427. <td data-type="2">2</td>
  428. <td data-type="3">3</td>
  429. <td data-type="4">4</td>
  430. <td data-type="5">5</td>
  431. <td data-type="6">6</td>
  432. <td data-type="7" class="lastCol">7</td>
  433. </tr>
  434. <tr>
  435. <td data-type="8" class="firstCol">8</td>
  436. <td data-type="9">9</td>
  437. <td data-type="10">10</td>
  438. <td data-type="11">11</td>
  439. <td data-type="12">12</td>
  440. <td data-type="13">13</td>
  441. <td data-type="14" class="lastCol">14</td>
  442. </tr>
  443. <tr>
  444. <td data-type="15" class="firstCol">15</td>
  445. <td data-type="16">16</td>
  446. <td data-type="17">17</td>
  447. <td data-type="18">18</td>
  448. <td data-type="19">19</td>
  449. <td data-type="20">20</td>
  450. <td data-type="21" class="lastCol">21</td>
  451. </tr>
  452. <tr>
  453. <td data-type="22" class="firstCol">22</td>
  454. <td data-type="23">23</td>
  455. <td data-type="24">24</td>
  456. <td data-type="25">25</td>
  457. <td data-type="26">26</td>
  458. <td data-type="27">27</td>
  459. <td data-type="28" class="lastCol">28</td>
  460. </tr>
  461. <tr>
  462. <td data-type="29" class="firstCol">29</td>
  463. <td data-type="30">30</td>
  464. <td data-type="31">31</td>
  465. </tr>
  466. </table>
  467. </td>
  468. </tr>
  469. <tr id="year_custom3" style="display: none;">
  470. <td class="label repeat"><label data-type="year_custom3">Of</label></td>
  471. <td colspan="2">
  472. <table class="customTable customTableYear">
  473. <tr>
  474. <td data-type="0" data-text="jan" class="firstCol">Jan</td>
  475. <td data-type="1" data-text="feb">Feb</td>
  476. <td data-type="2" data-text="mar">Mar</td>
  477. <td data-type="3" data-text="apr" class="lastCol">Apr</td>
  478. </tr>
  479. <tr>
  480. <td data-type="4" data-text="may" class="firstCol">May</td>
  481. <td data-type="5" data-text="jun">Jun</td>
  482. <td data-type="6" data-text="jul">Jul</td>
  483. <td data-type="7" data-text="aug" class="lastCol">Aug</td>
  484. </tr>
  485. <tr>
  486. <td data-type="8" data-text="sep" class="firstCol">Sep</td>
  487. <td data-type="9" data-text="oct">Oct</td>
  488. <td data-type="10" data-text="nov">Nov</td>
  489. <td data-type="11" data-text="dec" class="lastCol">Dec</td>
  490. </tr>
  491. </table>
  492. </td>
  493. </tr>
  494. <tr id="repeat_details" style="display: none;">
  495. <td class="label repeat"><label data-type="repeat_end" for="repeat_end_details">end: </label></td>
  496. <td data-size="half">
  497. <select class="small" id="repeat_end_details">
  498. <option data-type="repeat_details_on_date" value="on_date">on date</option>
  499. <option data-type="repeat_details_after" value="after">occurrences</option>
  500. <option data-type="repeat_details_never" value="never">never</option>
  501. </select>
  502. </td>
  503. <td style="position: relative;">
  504. <input class="date small" type="text" data-type="PH_until_date" placeholder="Date until" name="end" id="repeat_end_date" />
  505. <input style="display: none;" class="small" type="text" data-type="PH_repeat_count" placeholder="Repeat count" name="end" id="repeat_end_after" />
  506. <div class="invalidWrapper"><img data-type="invalidSmall" style="display: none;" src="images/error_b.svg" alt="invalid" /></div>
  507. </td>
  508. </tr>
  509. <tr>
  510. <td class="label"><label data-type="status" for="status">status: </label></td>
  511. <td colspan="2" data-size="full">
  512. <select class="long" name="status" id="status">
  513. <option data-type="STATUS_NONE" value="NONE">undefined</option>
  514. <option data-type="STATUS_TENTATIVE" value="TENTATIVE">tentative</option>
  515. <option data-type="STATUS_CONFIRMED" value="CONFIRMED">confirmed</option>
  516. <option data-type="STATUS_CANCELLED" value="CANCELLED">canceled</option>
  517. </select>
  518. </td>
  519. </tr>
  520. <tr class="row_avail">
  521. <td class="label"><label data-type="txt_avail" for="avail">availability: </label></td>
  522. <td colspan="2" data-size="full">
  523. <select class="long" data-type="avail" name="avail" id="avail">
  524. <option data-type="BUSY_AVAIL" value="busy">busy</option>
  525. <option data-type="FREE_AVAIL" value="free">free</option>
  526. </select>
  527. </td>
  528. </tr>
  529. <tr class="row_type">
  530. <td class="label"><label data-type="txt_type" for="type">privacy: </label></td>
  531. <td colspan="2" data-size="full">
  532. <select class="long" data-type="type" name="type" id="type">
  533. <option data-type="PUBLIC_TYPE" value="public">public</option>
  534. <option data-type="CONFIDENTIAL_TYPE" value="confidential">confidential</option>
  535. <option data-type="PRIVATE_TYPE" value="private">private</option>
  536. </select>
  537. </td>
  538. </tr>
  539. <tr>
  540. <td class="label"><label data-type="priority" for="priority">priority: </label></td>
  541. <td colspan="2" data-size="full">
  542. <select class="long " name="priority" id="priority">
  543. <option data-type="priority_none" value="0">none</option>
  544. <option data-type="priority_low" value="9">low</option>
  545. <option data-type="priority_medium" value="5">medium</option>
  546. <option data-type="priority_high" value="1">high</option>
  547. </select>
  548. </td>
  549. </tr>
  550. <tr id="calendarLine">
  551. <td class="label"><label data-type="event_calendar" for="event_calendar">calendar: </label></td>
  552. <td colspan="2" data-size="full">
  553. <select class="long R_calendar" name="calendar" id="event_calendar">
  554. <option data-type="choose_calendar" value="choose">Select a calendar</option>
  555. </select>
  556. </td>
  557. </tr>
  558. <tr data-id="1">
  559. <td class="label"><label data-type="alert" for="alert">alert: </label></td>
  560. <td colspan="2" data-size="full">
  561. <select class="long alert" name="alert_type" data-id="1" id="alert">
  562. <option data-type="alert_none" value="none">none</option>
  563. <option data-type="alert_message" value="message">message</option>
  564. </select>
  565. </td>
  566. </tr>
  567. <tr data-id="1" class="alert_details" style="display: none;">
  568. <td class="label"></td>
  569. <td colspan="2" data-size="full">
  570. <select class="long alert_message_details" name="alert_details" data-id="1">
  571. <option data-type="on_date" value="on_date">on date</option>
  572. <option data-type="weeks_before" value="weeks_before">weeks before</option>
  573. <option data-type="days_before" value="days_before">days before</option>
  574. <option data-type="hours_before" value="hours_before">hours before</option>
  575. <option data-type="minutes_before" value="minutes_before">minutes before</option>
  576. <option data-type="seconds_before" value="seconds_before">seconds before</option>
  577. <option data-type="weeks_after" value="weeks_after">weeks after</option>
  578. <option data-type="days_after" value="days_after">days after</option>
  579. <option data-type="hours_after" value="hours_after">hours after</option>
  580. <option data-type="minutes_after" value="minutes_after">minutes after</option>
  581. <option data-type="seconds_after" value="seconds_after">seconds after</option>
  582. </select>
  583. </td>
  584. </tr>
  585. <tr data-id="1" class="alert_message_date" style="display: none;">
  586. <td class="label"></td>
  587. <td>
  588. <input class="small before_after_input" type="text" data-type="PH_before_after_alert" placeholder="Value" data-id="1" style="display: none;" />
  589. <input class="date small message_date_input" type="text" data-type="PH_alarm_date" placeholder="Alarm date" data-id="1" />
  590. <div class="invalidWrapper"><img data-type="invalidSmall" data-id="1" style="display: none;" src="images/error_b.svg" alt="invalid" /></div>
  591. </td>
  592. <td>
  593. <input class="time small message_time_input" type="text" data-type="PH_alarm_time" placeholder="Alarm time" data-id="1" />
  594. <div class="invalidWrapper"><img data-type="invalidSmall" data-id="1" style="display: none;" src="images/error_b.svg" alt="invalid" /></div>
  595. </td>
  596. </tr>
  597. <tr id="url_tr">
  598. <td class="label"><label data-type="txt_url_EVENT" for="url_EVENT">url:</label></td>
  599. <td colspan="2"><input class="long" data-type="url_EVENT" type="text" placeholder="url" name="url_EVENT" id="url_EVENT" /></td>
  600. </tr>
  601. <tr id="note_tr">
  602. <td class="label"><label data-type="note" for="note">note: </label></td>
  603. <td colspan="2">
  604. <textarea class="long" name="note" data-type="PH_note" placeholder="Note" id="note" rows="2" cols="20"></textarea>
  605. </td>
  606. </tr>
  607. <tr>
  608. <td colspan="3">
  609. <input id="show" type="hidden" value=""/>
  610. <input id="uid" type="hidden" value=""/>
  611. <input id="etag" type="hidden" value=""/>
  612. <input id="repeatCount" type="hidden" value=""/>
  613. <input id="repeatEvent" type="hidden" value=""/>
  614. <input id="recurrenceID" type="hidden" value=""/>
  615. <input id="futureStart" type="hidden" value=""/>
  616. <input id="vcalendarHash" type="hidden" value=""/>
  617. <input id="vcalendarUID" type="hidden" value=""/>
  618. <input id="saveButton" type="submit" value="Save" data-type="save" onclick="updateEventFormDimensions(true);$('#CAEvent .saveLoader').show();save();" />
  619. <input id="editButton" type="button" value="Edit" data-type="edit" onclick="startEditModeEvent();" />
  620. <input id="duplicateButton" type="button" value="Duplicate" data-type="duplicate" onclick="duplicateEvent('')" />
  621. <input id="editOptionsButton" type="button" value="edit repeat" data-type="editOptions" />
  622. <input id="resetButton" type="button" value="Reset" data-type="reset" />
  623. <input id="closeButton" type="button" value="Cancel" data-type="cancel" />
  624. <input id="deleteButton" type="button" value="Delete" data-type="delete" onclick="updateEventFormDimensions(true);$('#CAEvent .saveLoader').show();deleteEvent();" />
  625. </td>
  626. </tr>
  627. </table>
  628. </div>
  629. </div>
  630. </div>
  631. </div>
  632. <div class="System" id="SystemCalDavTODO">
  633. <div class="update_d" style="display: none;">
  634. <div class="update_h"></div>
  635. </div>
  636. <div class="headers" id="resourceCalDAVTODO_h">
  637. <span class="resourceCalDAVTODO_text" data-type="resourcesCalDAV_txt">Resources</span>
  638. <img src="images/add_cal_white.svg" alt="Enable all calendars" title="Enable all calendars" data-type="addAll" class="addRemoveAll addRemoveAllCalDAVTODO" onclick="enableAllTodo()" />
  639. <img src="images/remove_cal_white.svg" alt="Disable all calendars" title="Disable all calendars" data-type="removeAll" class="addRemoveAll addRemoveAllCalDAVTODO" onclick="disableAllTodo()" />
  640. <img id="showUnloadedCalendarsTODO" src="images/delegation.svg" alt="Subscribe" title="Subscribe" onclick="showUnloadedCollections('todo');" />
  641. <input id="loadUnloadedCalendarsTODO" type="button" value="save" onclick="loadAdditionalCollections('todo');" style="margin-top:4px;margin-left:6px;" />
  642. <input id="loadUnloadedCalendarsTODOCancel" type="button" value="cancel" onclick="cancelUnloadedCollections('todo');" style="margin-top:4px;margin-right:6px;float:right;" />
  643. </div>
  644. <div id="ResourceCalDAVTODOList">
  645. <div id="ResourceCalDAVTODOListTemplate" style="display: none;">
  646. <div class="resourceCalDAVTODO_header"><input type="checkbox"></div>
  647. <div class="resourceCalDAVTODO_item"></div>
  648. </div>
  649. </div>
  650. <div id="timezoneWrapperTODO">
  651. <label data-type="txt_timezonePicker" for="timezonePickerTODO">Timezone:</label>
  652. <div id="timezoneTodoSelectDiv">
  653. <select id="timezonePickerTODO" name="timezonePickerTODO" data-type="timezonesPicker"></select>
  654. </div>
  655. </div>
  656. <div class="headers" id="main_h_TODO">
  657. <input id="ResourceCalDAVTODOToggle" type="image" src="images/resources.svg" alt="Show/Hide Resources" />
  658. <div id="mainTODO_h_placeholder"></div>
  659. <img id="eventFormShowerTODO" src="images/new_item.svg" alt="Add todo" />
  660. </div>
  661. <div id="searchFormTODO">
  662. <img alt="Search Form" src="images/search.svg" style="position: inline; margin-top: 4px; margin-left: 8px; vertical-align: top;" />
  663. <div class="searchContainer">
  664. <input type="text" value="" placeholder="Search" data-type="PH_CalDAVTODOsearch" id="searchInputTODO" style="margin-top: 3px; vertical-align: top;" />
  665. </div>
  666. <img alt="Search Reset" id="resetButtonTODO" onclick="$('#searchInputTODO').val('');$('#searchInputTODO').keyup();" src="images/reset_b.svg" style="position: absolute; margin-top: 5px; right: 9px; vertical-align: top; cursor: pointer; visibility: hidden;" />
  667. </div>
  668. <div id="TodoDisabler"></div>
  669. <div id="CalendarLoaderTODO">
  670. <div class="loaderInfo">Calendaring ...</div>
  671. <div class="loader"></div>
  672. </div>
  673. <div id='mainTODO'>
  674. <div id='todoList'></div>
  675. </div>
  676. <div class="headers" id="todoForm_h">
  677. <span class="resourceCalDAV_text" data-type="todo_txt">Todo</span>
  678. </div>
  679. <div id="todoLoader">
  680. <div class="saveLoader">
  681. <div class="saveLoaderInfo"></div>
  682. <div class="loader"></div>
  683. </div>
  684. </div>
  685. <div id="todoColor"></div>
  686. <div id="todoForm">
  687. <div id="CATodo">
  688. <div id="repeatConfirmBoxTODO">
  689. <div id="repeatConfirmBoxContentTODO"></div>
  690. <div id="repeatConfirmBoxQuestionTODO"></div>
  691. <input id='editAllTODO' type="button" value="All events" /><br />
  692. <input id='editFutureTODO' type="button" value="All future events" /><br />
  693. <input id='editOnlyOneTODO' type="button" value="This event only"/><br />
  694. </div>
  695. <div id="todo_details_template">
  696. <div id="todoDetailsContainer">
  697. <table id="todoDetailsTable">
  698. <tr>
  699. <th colspan="3" class="headerContainer">
  700. <div class="formNav prev top" title="show previous todo" data-type="todo_prev_nav"><img src="images/arrow_prev.svg" alt="todo prev"/></div>
  701. <div class="formNav prev bottom" title="show previous uncompleted todo" data-type="todo_prev_uncompleted_nav"><img src="images/arrow_prev_red.svg" alt="todo prev incomplete"/></div>
  702. <textarea class="header" data-type="name_TODO" placeholder="Name" name="name" id="nameTODO"></textarea>
  703. <div class="formNav next top" title="show next todo" data-type="todo_next_nav"><img src="images/arrow_next.svg" alt="todo next"/></div>
  704. <div class="formNav next bottom" title="show next uncompleted todo" data-type="todo_next_uncompleted_nav"><img src="images/arrow_next_red.svg" alt="todo next incomplete"/></div>
  705. </th>
  706. </tr>
  707. <tr id="location_row_TODO">
  708. <td class="label"><label data-type="location" for="location_TODO">location:</label></td>
  709. <td colspan="2"><input class="long" data-type="PH_location" type="text" placeholder="Location" name="location_TODO" id="location_TODO" /></td>
  710. </tr>
  711. <tr>
  712. <td class="label"><label data-type="type_TODO" for="todo_type">type: </label></td>
  713. <td colspan="2" data-size="full">
  714. <select class="long" name="todo_type" id="todo_type">
  715. <option data-type="todo_type_none" value="none">Simple</option>
  716. <option data-type="todo_type_start" value="start">With start time</option>
  717. <option data-type="todo_type_due" value="due">With due time</option>
  718. <option data-type="todo_type_both" value="both">With both start and due times</option>
  719. </select>
  720. </td>
  721. </tr>
  722. <tr class="dateTrFromTODO">
  723. <td class="label"><label data-type="date_from_TODO" for="date_fromTODO">fom: </label></td>
  724. <td>
  725. <input class="date small" data-type="PH_date_from_TODO" type="text" placeholder="Date from" id="date_fromTODO" name="date_fromTODO" />
  726. <div class="invalidWrapper"><img data-type="invalidSmall" style="display: none;" src="images/error_b.svg" alt="invalid" /></div>
  727. </td>
  728. <td>
  729. <input class="time small" data-type="PH_time_from_TODO" type="text" placeholder="Time from" id="time_fromTODO" name="time_fromTODO" />
  730. <div class="invalidWrapper"><img data-type="invalidSmall" style="display: none;" src="images/error_b.svg" alt="invalid" /></div>
  731. </td>
  732. </tr>
  733. <tr class="dateTrToTODO">
  734. <td class="label"><label data-type="date_to_TODO" for="date_toTODO">to: </label></td>
  735. <td>
  736. <input class="date small" data-type="PH_date_to_TODO" type="text" placeholder="Date to" id="date_toTODO" name="date_toTODO" />
  737. <div class="invalidWrapper"><img data-type="invalidSmall" style="display: none;" src="images/error_b.svg" alt="invalid" /></div>
  738. </td>
  739. <td>
  740. <input class="time small" data-type="PH_time_to_TODO" type="text" placeholder="Time to" id="time_toTODO" name="time_toTODO" />
  741. <div class="invalidWrapper"><img data-type="invalidSmall" style="display: none;" src="images/error_b.svg" alt="invalid" /></div>
  742. </td>
  743. </tr>
  744. <tr class="timezone_rowTODO">
  745. <td class="label"><label data-type="txt_timezoneTODO" for="timezoneTODO">timezone: </label></td>
  746. <td colspan="2" data-size="full">
  747. <select class="long" data-type="timezonesTODO" name="timezoneTODO" id="timezoneTODO"></select>
  748. </td>
  749. </tr>
  750. <tr id="percent_complete_TODO">
  751. <td class="label"><label data-type="percent_complete_TODO" for="percenteCompleteValue">Complete </label></td>
  752. <td colspan="2">
  753. <div style="float: left; width: 203px; margin-left: 7px; margin-top: 3px; margin-bottom: 3px;'" id="percentageSlider"></div>
  754. <input type="text" class="verySmall" style="margin-left: 13px; float: left;" id="percenteCompleteValue"/>
  755. <div class="invalidWrapper"><img data-type="invalidVerySmall" style="display: none;" src="images/error_b.svg" alt="invalid" /></div>
  756. <label style="margin-left: -14px; float: left;">%</label>
  757. </td>
  758. </tr>
  759. <tr>
  760. <td class="label"><label data-type="status_TODO" for="statusTODO">status: </label></td>
  761. <td colspan="2" data-size="full">
  762. <select class="long" name="statusTODO" id="statusTODO">
  763. <option data-type="STATUS_NEEDS-ACTION_TODO" value="NEEDS-ACTION">needs action</option>
  764. <option data-type="STATUS_IN-PROCESS_TODO" value="IN-PROCESS">in progress</option>
  765. <option data-type="STATUS_COMPLETED_TODO" value="COMPLETED">completed</option>
  766. <option data-type="STATUS_CANCELLED_TODO" value="CANCELLED">cancelled</option>
  767. </select>
  768. </td>
  769. </tr>
  770. <tr class="completedOnTr" style="display: none;">
  771. <td class="label"><label data-type="PH_completedOn" for="completedOnDate">completed on: </label></td>
  772. <td>
  773. <input class="date small" data-type="PH_completedOnDate" type="text" placeholder="Completed on date" id="completedOnDate" name="completedOnDate" />
  774. <div class="invalidWrapper"><img data-type="invalidSmall" style="display: none;" src="images/error_b.svg" alt="invalid" /></div>
  775. </td>
  776. <td>
  777. <input class="time small" data-type="PH_completedOnTime" type="text" placeholder="Completed on time" id="completedOnTime" name="completedOnTime" />
  778. <div class="invalidWrapper"><img data-type="invalidSmall" style="display: none;" src="images/error_b.svg" alt="invalid" /></div>
  779. </td>
  780. </tr>
  781. <tr id="repeat_row_TODO">
  782. <td class="label"><label data-type="repeat" for="repeat">repeat: </label></td>
  783. <td colspan="2" data-size="full">
  784. <select class="long" name="repeat_TODO" id="repeat_TODO">
  785. <option data-type="repeat_no-repeat" value="no-repeat">No repeat</option>
  786. <option data-type="repeat_DAILY" value="DAILY">Daily</option>
  787. <option data-type="repeat_BUSINESS" value="BUSINESS">Every business day</option>
  788. <option data-type="repeat_WEEKEND" value="WEEKEND">Every weekend</option>
  789. <option data-type="repeat_WEEKLY" value="WEEKLY">Weekly</option>
  790. <option data-type="repeat_TWO_WEEKLY" value="TWO_WEEKLY">Bi-weekly</option>
  791. <option data-type="repeat_MONTHLY" value="MONTHLY">Monthly</option>
  792. <option data-type="repeat_YEARLY" value="YEARLY">Yearly</option>
  793. <option data-type="repeat_CUSTOM_WEEKLY" value="CUSTOM_WEEKLY">Custom weekly</option>
  794. <option data-type="repeat_CUSTOM_MONTHLY" value="CUSTOM_MONTHLY">Custom monthly</option>
  795. <option data-type="repeat_CUSTOM_YEARLY" value="CUSTOM_YEARLY">Custom yearly</option>
  796. </select>
  797. </td>
  798. </tr>
  799. <tr id="repeat_interval_TODO" style="display: none;">
  800. <td class="label repeat"><label data-type="repeat_type" for="repeat_interval_detail_TODO">Every </label></td>
  801. <td style="position: relative;">
  802. <input class="small" type="text" data-type="PH_type_Interval" placeholder="Interval" name="end" id="repeat_interval_detail_TODO" />
  803. <div class="invalidWrapper"><img data-type="invalidSmall" style="display: none;" src="images/error_b.svg" alt="invalid" /></div>
  804. </td>
  805. <td>
  806. <span class="infoSpan" style="padding-left: 4px;" data-type="txt_interval">days</span>
  807. </td>
  808. </tr>
  809. <tr id="week_custom_TODO" style="display: none;">
  810. <td class="label repeat"><label data-type="week_custom_txt">On </label></td>
  811. <td colspan="2">
  812. <table class="customTable customTableWeek">
  813. <tr>
  814. <td data-type="0" data-text="SU" class="firstCol">Su</td>
  815. <td data-type="1" data-text="MO">Mo</td>
  816. <td data-type="2" data-text="TU">Tu</td>
  817. <td data-type="3" data-text="WE">We</td>
  818. <td data-type="4" data-text="TH">Th</td>
  819. <td data-type="5" data-text="FR">Fr</td>
  820. <td data-type="6" data-text="SA" class="lastCol">Sa</td>
  821. </tr>
  822. </table>
  823. </td>
  824. </tr>
  825. <tr id="month_custom1_TODO" style="display: none;">
  826. <td class="label"><label data-type="month_custom1_txt"></label></td>
  827. <td data-size="half">
  828. <select id="repeat_month_custom_select_TODO" class="small">
  829. <option value="every" data-type="month_custom_every">Every</option>
  830. <option value="first" data-type="month_custom_first">First</option>
  831. <option value="second" data-type="month_custom_second">Second</option>
  832. <option value="third" data-type="month_custom_third">Third</option>
  833. <option value="fourth" data-type="month_custom_fourth">Fourth</option>
  834. <option value="fifth" data-type="month_custom_fifth">Fifth</option>
  835. <option value="last" data-type="month_custom_last">Last</option>
  836. <option value="custom" data-type="month_custom_custom">Custom</option>
  837. </select>
  838. </td>
  839. <td style="position: relative;" data-size="half">
  840. <select id="repeat_month_custom_select2_TODO" class="small">
  841. <option value="SU" data-type="0">Sunday</option>
  842. <option value="MO" data-type="1">Monday</option>
  843. <option value="TU" data-type="2">Tuesday</option>
  844. <option value="WE" data-type="3">Wednesday</option>
  845. <option value="TH" data-type="4">Thursday</option>
  846. <option value="FR" data-type="5">Friday</option>
  847. <option value="SA" data-type="6">Saturday</option>
  848. <option value="DAY" data-type="month_custom_month">Day of the month</option>
  849. </select>
  850. </td>
  851. </tr>
  852. <tr id="month_custom2_TODO" style="display: none;">
  853. <td class="label repeat"><label data-type="month_custom2_txt">On days</label></td>
  854. <td colspan="2">
  855. <table class="customTable customTableMonth">
  856. <tr>
  857. <td data-type="1" class="firstCol">1</td>
  858. <td data-type="2">2</td>
  859. <td data-type="3">3</td>
  860. <td data-type="4">4</td>
  861. <td data-type="5">5</td>
  862. <td data-type="6">6</td>
  863. <td data-type="7" class="lastCol">7</td>
  864. </tr>
  865. <tr>
  866. <td data-type="8" class="firstCol">8</td>
  867. <td data-type="9">9</td>
  868. <td data-type="10">10</td>
  869. <td data-type="11">11</td>
  870. <td data-type="12">12</td>
  871. <td data-type="13">13</td>
  872. <td data-type="14" class="lastCol">14</td>
  873. </tr>
  874. <tr>
  875. <td data-type="15" class="firstCol">15</td>
  876. <td data-type="16">16</td>
  877. <td data-type="17">17</td>
  878. <td data-type="18">18</td>
  879. <td data-type="19">19</td>
  880. <td data-type="20">20</td>
  881. <td data-type="21" class="lastCol">21</td>
  882. </tr>
  883. <tr>
  884. <td data-type="22" class="firstCol">22</td>
  885. <td data-type="23">23</td>
  886. <td data-type="24">24</td>
  887. <td data-type="25">25</td>
  888. <td data-type="26">26</td>
  889. <td data-type="27">27</td>
  890. <td data-type="28" class="lastCol">28</td>
  891. </tr>
  892. <tr>
  893. <td data-type="29" class="firstCol">29</td>
  894. <td data-type="30">30</td>
  895. <td data-type="31">31</td>
  896. </tr>
  897. </table>
  898. </td>
  899. </tr>
  900. <tr id="year_custom2_TODO" style="display: none;">
  901. <td class="label"><label data-type="year_custom2"></label></td>
  902. <td data-size="half">
  903. <select id="repeat_year_custom_select1_TODO" class="small">
  904. <option value="every" data-type="year_custom_every">Every</option>
  905. <option value="first" data-type="year_custom_first">First</option>
  906. <option value="second" data-type="year_custom_second">Second</option>
  907. <option value="third" data-type="year_custom_third">Third</option>
  908. <option value="fourth" data-type="year_custom_fourth">Fourth</option>
  909. <option value="fifth" data-type="year_custom_fifth">Fifth</option>
  910. <option value="last" data-type="year_custom_last">Last</option>
  911. <option value="custom" data-type="year_custom_custom">Custom</option>
  912. </select>
  913. </td>
  914. <td style="position: relative;" data-size="half">
  915. <select id="repeat_year_custom_select2_TODO" class="small">
  916. <option value="SU" data-type="0">Sunday</option>
  917. <option value="MO" data-type="1">Monday</option>
  918. <option value="TU" data-type="2">Tuesday</option>
  919. <option value="WE" data-type="3">Wednesday</option>
  920. <option value="TH" data-type="4">Thursday</option>
  921. <option value="FR" data-type="5">Friday</option>
  922. <option value="SA" data-type="6">Saturday</option>
  923. <option value="DAY" data-type="year_custom_month">Day of the month</option>
  924. </select>
  925. </td>
  926. </tr>
  927. <tr id="year_custom1_TODO" style="display: none;">
  928. <td class="label repeat"><label data-type="year_custom1">Every</label></td>
  929. <td colspan="2">
  930. <table class="customTable customTableMonth">
  931. <tr>
  932. <td data-type="1" class="firstCol">1</td>
  933. <td data-type="2">2</td>
  934. <td data-type="3">3</td>
  935. <td data-type="4">4</td>
  936. <td data-type="5">5</td>
  937. <td data-type="6">6</td>
  938. <td data-type="7" class="lastCol">7</td>
  939. </tr>
  940. <tr>
  941. <td data-type="8" class="firstCol">8</td>
  942. <td data-type="9">9</td>
  943. <td data-type="10">10</td>
  944. <td data-type="11">11</td>
  945. <td data-type="12">12</td>
  946. <td data-type="13">13</td>
  947. <td data-type="14" class="lastCol">14</td>
  948. </tr>
  949. <tr>
  950. <td data-type="15" class="firstCol">15</td>
  951. <td data-type="16">16</td>
  952. <td data-type="17">17</td>
  953. <td data-type="18">18</td>
  954. <td data-type="19">19</td>
  955. <td data-type="20">20</td>
  956. <td data-type="21" class="lastCol">21</td>
  957. </tr>
  958. <tr>
  959. <td data-type="22" class="firstCol">22</td>
  960. <td data-type="23">23</td>
  961. <td data-type="24">24</td>
  962. <td data-type="25">25</td>
  963. <td data-type="26">26</td>
  964. <td data-type="27">27</td>
  965. <td data-type="28" class="lastCol">28</td>
  966. </tr>
  967. <tr>
  968. <td data-type="29" class="firstCol">29</td>
  969. <td data-type="30">30</td>
  970. <td data-type="31">31</td>
  971. </tr>
  972. </table>
  973. </td>
  974. </tr>
  975. <tr id="year_custom3_TODO" style="display: none;">
  976. <td class="label repeat"><label data-type="year_custom3">Of</label></td>
  977. <td colspan="2">
  978. <table class="customTable customTableYear">
  979. <tr>
  980. <td data-type="0" data-text="jan" class="firstCol">Jan</td>
  981. <td data-type="1" data-text="feb">Feb</td>
  982. <td data-type="2" data-text="mar">Mar</td>
  983. <td data-type="3" data-text="apr" class="lastCol">Apr</td>
  984. </tr>
  985. <tr>
  986. <td data-type="4" data-text="may" class="firstCol">May</td>
  987. <td data-type="5" data-text="jun">Jun</td>
  988. <td data-type="6" data-text="jul">Jul</td>
  989. <td data-type="7" data-text="aug" class="lastCol">Aug</td>
  990. </tr>
  991. <tr>
  992. <td data-type="8" data-text="sep" class="firstCol">Sep</td>
  993. <td data-type="9" data-text="oct">Oct</td>
  994. <td data-type="10" data-text="nov">Nov</td>
  995. <td data-type="11" data-text="dec" class="lastCol">Dec</td>
  996. </tr>
  997. </table>
  998. </td>
  999. </tr>
  1000. <tr id="repeat_details_TODO" style="display: none;">
  1001. <td class="label repeat"><label data-type="repeat_end" for="repeat_end_details_TODO">end: </label></td>
  1002. <td data-size="half">
  1003. <select class="small" id="repeat_end_details_TODO">
  1004. <option data-type="repeat_details_on_date" value="on_date">on date</option>
  1005. <option data-type="repeat_details_after" value="after">occurrences</option>
  1006. <option data-type="repeat_details_never" value="never">never</option>
  1007. </select>
  1008. </td>
  1009. <td style="position: relative;">
  1010. <input class="date small" type="text" data-type="PH_until_date" placeholder="Date until" name="end" id="repeat_end_date_TODO" />
  1011. <input style="display: none;" class="small" type="text" data-type="PH_repeat_count" placeholder="Repeat count" name="end" id="repeat_end_after_TODO" />
  1012. <div class="invalidWrapper"><img data-type="invalidSmall" style="display: none;" src="images/error_b.svg" alt="invalid" /></div>
  1013. </td>
  1014. </tr>
  1015. <tr class="row_typeTODO">
  1016. <td class="label"><label data-type="txt_typeTODO" for="typeTODO">privacy: </label></td>
  1017. <td colspan="2" data-size="full">
  1018. <select class="long" data-type="typeTODO" name="typeTODO" id="typeTODO">
  1019. <option data-type="PUBLIC_TYPE_TODO" value="public">public</option>
  1020. <option data-type="CONFIDENTIAL_TYPE_TODO" value="confidential">confidential</option>
  1021. <option data-type="PRIVATE_TYPE_TODO" value="private">private</option>
  1022. </select>
  1023. </td>
  1024. </tr>
  1025. <tr>
  1026. <td class="label"><label data-type="priority_TODO" for="priority_TODO">priority: </label></td>
  1027. <td colspan="2" data-size="full">
  1028. <select class="long " name="priority_TODO" id="priority_TODO">
  1029. <option data-type="priority_TODO_none" value="0">none</option>
  1030. <option data-type="priority_TODO_low" value="9">low</option>
  1031. <option data-type="priority_TODO_medium" value="5">medium</option>
  1032. <option data-type="priority_TODO_high" value="1">high</option>
  1033. </select>
  1034. </td>
  1035. </tr>
  1036. <tr id="calendarLineTODO">
  1037. <td class="label"><label data-type="calendar_TODO" for="todo_calendar">calendar: </label></td>
  1038. <td colspan="2" data-size="full">
  1039. <select class="long R_calendar" name="calendar" id="todo_calendar">
  1040. <option data-type="choose_calendar_TODO" value="choose">Select a calendar</option>
  1041. </select>
  1042. </td>
  1043. </tr>
  1044. <tr data-id="1">
  1045. <td class="label"><label data-type="alert_TODO" for="alertTODO">alert: </label></td>
  1046. <td colspan="2" data-size="full">
  1047. <select class="long alertTODO" name="alert_typeTODO" data-id="1" id="alertTODO">
  1048. <option data-type="alert_none_TODO" value="none">none</option>
  1049. <option data-type="alert_message_TODO" value="message">message</option>
  1050. </select>
  1051. </td>
  1052. </tr>
  1053. <tr class="alert_detailsTODO" style="display: none;" data-id="1">
  1054. <td class="label"></td>
  1055. <td colspan="2" data-size="full">
  1056. <select class="long alert_message_detailsTODO" name="alert_detailsTODO" data-id="1">
  1057. <option data-type="on_dateTODO" value="on_date">on date</option>
  1058. <option data-type="weeks_beforeTODO" value="weeks_before">weeks before</option>
  1059. <option data-type="days_beforeTODO" value="days_before">days before</option>
  1060. <option data-type="hours_beforeTODO" value="hours_before">hours before</option>
  1061. <option data-type="minutes_beforeTODO" value="minutes_before">minutes before</option>
  1062. <option data-type="seconds_beforeTODO" value="seconds_before">seconds before</option>
  1063. <option data-type="weeks_afterTODO" value="weeks_after">weeks after</option>
  1064. <option data-type="days_afterTODO" value="days_after">days after</option>
  1065. <option data-type="hours_afterTODO" value="hours_after">hours after</option>
  1066. <option data-type="minutes_afterTODO" value="minutes_after">minutes after</option>
  1067. <option data-type="seconds_afterTODO" value="seconds_after">seconds after</option>
  1068. </select>
  1069. </td>
  1070. </tr>
  1071. <tr data-id="1" class="alert_message_dateTODO" style="display: none;">
  1072. <td class="label"></td>
  1073. <td>
  1074. <input data-id="1" class="small before_after_inputTODO" type="text" data-type="PH_before_after_alert_TODO" placeholder="Value" style="display: none;" />
  1075. <input data-id="1" class="date small message_date_inputTODO" type="text" data-type="PH_alarm_date_TODO" placeholder="Alarm Date" name="message_dateTODO" />
  1076. <div class="invalidWrapper"><img data-type="invalidSmall" data-id="1" style="display: none;" src="images/error_b.svg" alt="invalid" /></div>
  1077. </td>
  1078. <td>
  1079. <input data-id="1" class="time small message_time_inputTODO" type="text" data-type="PH_alarm_time_TODO" placeholder="Alarm time" name="message_timeTODO" />
  1080. <div class="invalidWrapper"><img data-type="invalidSmall" style="display: none;" src="images/error_b.svg" alt="invalid" /></div>
  1081. </td>
  1082. </tr>
  1083. <tr id="url_trTODO">
  1084. <td class="label"><label data-type="txt_url_TODO" for="url_TODO">url:</label></td>
  1085. <td colspan="2"><input class="long" data-type="url_TODO" type="text" placeholder="url" name="url_TODO" id="url_TODO" /></td>
  1086. </tr>
  1087. <tr id="note_trTODO">
  1088. <td class="label"><label data-type="note_TODO" for="noteTODO">note: </label></td>
  1089. <td colspan="2">
  1090. <textarea class="long" name="noteTODO" data-type="PH_note_TODO" placeholder="Note" id="noteTODO" rows="2" cols="20"></textarea>
  1091. </td>
  1092. </tr>
  1093. <tr>
  1094. <td colspan="3">
  1095. <input id="todoInEdit" type="hidden" value="false"/>
  1096. <input id="showTODO" type="hidden" value=""/>
  1097. <input id="uidTODO" type="hidden" value=""/>
  1098. <input id="repeatCountTODO" type="hidden" value=""/>
  1099. <input id="repeatTodo" type="hidden" value=""/>
  1100. <input id="recurrenceIDTODO" type="hidden" value=""/>
  1101. <input id="futureStartTODO" type="hidden" value=""/>
  1102. <input id="vcalendarHashTODO" type="hidden" value=""/>
  1103. <input id="vcalendarUIDTODO" type="hidden" value=""/>
  1104. <input id="etagTODO" type="hidden" value=""/>
  1105. <input id="saveTODO" type="submit" value="Save" onclick="$('#todoInEdit').val('false');updateTodoFormDimensions(true);$('#todoLoader').show();saveTodo();" />
  1106. <input id="editTODO" type="button" value="Edit" onclick="startEditModeTodo();"/>
  1107. <input id="duplicateTODO" type="button" value="Duplicate" data-type="duplicate" onclick="duplicateEvent('TODO')" />
  1108. <input id="editOptionsButtonTODO" type="button" value="edit repeat" data-type="editOptionsTODO" />
  1109. <input id="resetTODO" type="button" value="Reset" />
  1110. <input id="closeTODO" type="button" value="Cancel" />
  1111. <input id="deleteTODO" data-type="delete" type="button" value="Delete" onclick="$('#todoInEdit').val('false');updateTodoFormDimensions(true);$('#todoLoader').show();deleteTodo();" />
  1112. </td>
  1113. </tr>
  1114. </table>
  1115. </div>
  1116. </div>
  1117. </div>
  1118. </div>
  1119. </div>
  1120. </body>
  1121. </html>