dhtmlx-scheduler 5.3.13 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (508) hide show
  1. package/README.md +5 -10
  2. package/bower.json +2 -2
  3. package/codebase/dhtmlxscheduler.css +10 -11
  4. package/codebase/dhtmlxscheduler.d.ts +163 -11
  5. package/codebase/dhtmlxscheduler.js +36 -354
  6. package/codebase/dhtmlxscheduler.js.map +1 -1
  7. package/codebase/dhtmlxscheduler_contrast_black.css +10 -11
  8. package/codebase/dhtmlxscheduler_contrast_white.css +10 -11
  9. package/codebase/dhtmlxscheduler_flat.css +10 -11
  10. package/codebase/dhtmlxscheduler_material.css +10 -11
  11. package/codebase/dhtmlxscheduler_material_nofont.css +10 -0
  12. package/codebase/dhtmlxscheduler_terrace.css +10 -11
  13. package/codebase/sources/{skins/dhtmlxscheduler.css → dhtmlxscheduler.css} +135 -78
  14. package/codebase/sources/dhtmlxscheduler.js +29562 -9170
  15. package/codebase/sources/less/dhtmlxscheduler_material.less +2 -0
  16. package/codebase/sources/less/dhtmlxscheduler_material_nofont.less +3 -0
  17. package/codebase/sources/less/package.json +2 -2
  18. package/codebase/sources/less/skins/basic/ext.less +45 -0
  19. package/codebase/{imgs → sources/less/skins/basic/imgs}/but_repeat.gif +0 -0
  20. package/codebase/{imgs → sources/less/skins/basic/imgs}/buttons.png +0 -0
  21. package/codebase/{imgs → sources/less/skins/basic/imgs}/calendar.gif +0 -0
  22. package/codebase/{imgs → sources/less/skins/basic/imgs}/clock_big.gif +0 -0
  23. package/codebase/{imgs → sources/less/skins/basic/imgs}/clock_small.gif +0 -0
  24. package/codebase/{imgs → sources/less/skins/basic/imgs}/collapse_expand_icon.gif +0 -0
  25. package/codebase/{imgs → sources/less/skins/basic/imgs}/controls.gif +0 -0
  26. package/codebase/{imgs → sources/less/skins/basic/imgs}/databg.png +0 -0
  27. package/codebase/{imgs → sources/less/skins/basic/imgs}/databg_now.png +0 -0
  28. package/codebase/{imgs → sources/less/skins/basic/imgs}/export_ical.png +0 -0
  29. package/codebase/{imgs → sources/less/skins/basic/imgs}/export_pdf.png +0 -0
  30. package/codebase/{imgs → sources/less/skins/basic/imgs}/icon.png +0 -0
  31. package/codebase/{imgs → sources/less/skins/basic/imgs}/images.png +0 -0
  32. package/codebase/{imgs → sources/less/skins/basic/imgs}/loading.gif +0 -0
  33. package/codebase/{imgs → sources/less/skins/basic/imgs}/resize_dots.png +0 -0
  34. package/codebase/sources/less/skins/basic/lightbox.less +12 -0
  35. package/codebase/sources/less/skins/basic/message_default.less +43 -27
  36. package/codebase/sources/less/skins/basic/skin.less +2 -2
  37. package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/arrow_left.png +0 -0
  38. package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/arrow_right.png +0 -0
  39. package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/but_repeat.gif +0 -0
  40. package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/calendar.gif +0 -0
  41. package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/clock_big.gif +0 -0
  42. package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/clock_small.gif +0 -0
  43. package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/close_icon.png +0 -0
  44. package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/collapse_expand_icon.gif +0 -0
  45. package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/controls.png +0 -0
  46. package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/databg.png +0 -0
  47. package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/databg_now.png +0 -0
  48. package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/export_ical.png +0 -0
  49. package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/export_pdf.png +0 -0
  50. package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/resize_dots.png +0 -0
  51. package/codebase/{imgs_contrast_black → sources/less/skins/contrast_black/imgs_contrast_black}/resizing.png +0 -0
  52. package/codebase/sources/less/skins/contrast_black/skin.less +5 -5
  53. package/codebase/sources/less/skins/contrast_white/dhx_skin_contrast_white.less +3 -3
  54. package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/arrow_left.png +0 -0
  55. package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/arrow_right.png +0 -0
  56. package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/but_repeat.gif +0 -0
  57. package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/calendar.gif +0 -0
  58. package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/clock_big.gif +0 -0
  59. package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/clock_small.gif +0 -0
  60. package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/close_icon.png +0 -0
  61. package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/collapse_expand_icon.gif +0 -0
  62. package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/controls.png +0 -0
  63. package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/databg.png +0 -0
  64. package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/export_ical.png +0 -0
  65. package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/export_pdf.png +0 -0
  66. package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/quick_info_edit.png +0 -0
  67. package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/resize_dots.png +0 -0
  68. package/codebase/{imgs_contrast_white → sources/less/skins/contrast_white/imgs_contrast_white}/resizing.png +0 -0
  69. package/codebase/{imgs_flat → sources/less/skins/flat/imgs_flat}/agenda_bg.gif +0 -0
  70. package/codebase/{imgs_flat → sources/less/skins/flat/imgs_flat}/arrow_left.png +0 -0
  71. package/codebase/{imgs_flat → sources/less/skins/flat/imgs_flat}/arrow_right.png +0 -0
  72. package/codebase/{imgs_dhx_terrace → sources/less/skins/flat/imgs_flat}/but_repeat.gif +0 -0
  73. package/codebase/{imgs_dhx_terrace → sources/less/skins/flat/imgs_flat}/calendar.gif +0 -0
  74. package/codebase/{imgs_flat → sources/less/skins/flat/imgs_flat}/clock.png +0 -0
  75. package/codebase/{imgs_dhx_terrace → sources/less/skins/flat/imgs_flat}/clock_big.gif +0 -0
  76. package/codebase/{imgs_dhx_terrace → sources/less/skins/flat/imgs_flat}/clock_small.gif +0 -0
  77. package/codebase/{imgs_dhx_material → sources/less/skins/flat/imgs_flat}/close_icon.png +0 -0
  78. package/codebase/{imgs_dhx_terrace → sources/less/skins/flat/imgs_flat}/collapse_expand_icon.gif +0 -0
  79. package/codebase/{imgs_dhx_material → sources/less/skins/flat/imgs_flat}/controls.png +0 -0
  80. package/codebase/{imgs_dhx_terrace → sources/less/skins/flat/imgs_flat}/databg.png +0 -0
  81. package/codebase/{imgs_dhx_terrace → sources/less/skins/flat/imgs_flat}/databg_now.png +0 -0
  82. package/codebase/{imgs_dhx_material → sources/less/skins/flat/imgs_flat}/export_ical.png +0 -0
  83. package/codebase/{imgs_dhx_material → sources/less/skins/flat/imgs_flat}/export_pdf.png +0 -0
  84. package/codebase/{imgs_dhx_terrace → sources/less/skins/flat/imgs_flat}/resize_dots.png +0 -0
  85. package/codebase/{imgs_flat → sources/less/skins/flat/imgs_flat}/resizing.png +0 -0
  86. package/codebase/sources/less/skins/flat/skin.less +5 -5
  87. package/codebase/sources/less/skins/material/add_styles.less +17 -16
  88. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/Shape.svg +0 -0
  89. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/agenda-calendar-hov.svg +0 -0
  90. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/agenda-calendar.svg +0 -0
  91. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/agenda_bg.png +0 -0
  92. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/arrow_left.svg +0 -0
  93. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/arrow_left_hov.svg +0 -0
  94. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/arrow_right.svg +0 -0
  95. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/arrow_right_hov.svg +0 -0
  96. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/but_repeat.png +0 -0
  97. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/calendar.svg +0 -0
  98. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/clock_big.png +0 -0
  99. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/clock_small.png +0 -0
  100. package/codebase/{imgs_dhx_terrace → sources/less/skins/material/imgs_dhx_material}/close_icon.png +0 -0
  101. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/collapse_expand_icon.png +0 -0
  102. package/codebase/{imgs_dhx_terrace → sources/less/skins/material/imgs_dhx_material}/controls.png +0 -0
  103. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/databg.png +0 -0
  104. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/drag-horizontal.svg +0 -0
  105. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/drag-vertical.svg +0 -0
  106. package/codebase/{imgs_dhx_terrace → sources/less/skins/material/imgs_dhx_material}/export_ical.png +0 -0
  107. package/codebase/{imgs_dhx_terrace → sources/less/skins/material/imgs_dhx_material}/export_pdf.png +0 -0
  108. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/icon.png +0 -0
  109. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/menu-down.svg +0 -0
  110. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/resizing.png +0 -0
  111. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/time.svg +0 -0
  112. package/codebase/{imgs_dhx_material → sources/less/skins/material/imgs_dhx_material}/tree_arrow.svg +0 -0
  113. package/codebase/sources/less/skins/material/skin.less +3 -5
  114. package/codebase/{imgs_dhx_terrace → sources/less/skins/terrace/imgs_dhx_terrace}/arrow_left.png +0 -0
  115. package/codebase/{imgs_dhx_terrace → sources/less/skins/terrace/imgs_dhx_terrace}/arrow_right.png +0 -0
  116. package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/but_repeat.gif +0 -0
  117. package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/calendar.gif +0 -0
  118. package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/clock_big.gif +0 -0
  119. package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/clock_small.gif +0 -0
  120. package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/close_icon.png +0 -0
  121. package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/collapse_expand_icon.gif +0 -0
  122. package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/controls.png +0 -0
  123. package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/databg.png +0 -0
  124. package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/databg_now.png +0 -0
  125. package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/export_ical.png +0 -0
  126. package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/export_pdf.png +0 -0
  127. package/codebase/{imgs_flat → sources/less/skins/terrace/imgs_dhx_terrace}/resize_dots.png +0 -0
  128. package/codebase/{imgs_dhx_terrace → sources/less/skins/terrace/imgs_dhx_terrace}/resizing.png +0 -0
  129. package/codebase/sources/less/skins/terrace/skin.less +2 -2
  130. package/codebase/sources/skins/dhtmlxscheduler_contrast_black.css +136 -79
  131. package/codebase/sources/skins/dhtmlxscheduler_contrast_white.css +148 -91
  132. package/codebase/sources/skins/dhtmlxscheduler_flat.css +131 -74
  133. package/codebase/sources/skins/dhtmlxscheduler_material.css +172 -114
  134. package/codebase/sources/skins/dhtmlxscheduler_material_nofont.css +4359 -0
  135. package/codebase/sources/skins/dhtmlxscheduler_terrace.css +135 -78
  136. package/package.json +1 -1
  137. package/whatsnew.md +43 -0
  138. package/codebase/dhtmlxscheduler_contrast_black.js.map +0 -1
  139. package/codebase/dhtmlxscheduler_contrast_white.js.map +0 -1
  140. package/codebase/dhtmlxscheduler_flat.js.map +0 -1
  141. package/codebase/dhtmlxscheduler_material.js.map +0 -1
  142. package/codebase/dhtmlxscheduler_terrace.js.map +0 -1
  143. package/codebase/ext/dhtmlxscheduler_active_links.js +0 -13
  144. package/codebase/ext/dhtmlxscheduler_agenda_view.js +0 -18
  145. package/codebase/ext/dhtmlxscheduler_all_timed.js +0 -17
  146. package/codebase/ext/dhtmlxscheduler_collision.js +0 -15
  147. package/codebase/ext/dhtmlxscheduler_container_autoresize.js +0 -23
  148. package/codebase/ext/dhtmlxscheduler_cookie.js +0 -14
  149. package/codebase/ext/dhtmlxscheduler_csp.js +0 -16
  150. package/codebase/ext/dhtmlxscheduler_editors.js +0 -18
  151. package/codebase/ext/dhtmlxscheduler_expand.js +0 -15
  152. package/codebase/ext/dhtmlxscheduler_html_templates.js +0 -12
  153. package/codebase/ext/dhtmlxscheduler_key_nav.js +0 -111
  154. package/codebase/ext/dhtmlxscheduler_layer.js +0 -33
  155. package/codebase/ext/dhtmlxscheduler_limit.js +0 -44
  156. package/codebase/ext/dhtmlxscheduler_map_view.js +0 -35
  157. package/codebase/ext/dhtmlxscheduler_minical.js +0 -35
  158. package/codebase/ext/dhtmlxscheduler_monthheight.js +0 -13
  159. package/codebase/ext/dhtmlxscheduler_multiselect.js +0 -15
  160. package/codebase/ext/dhtmlxscheduler_multisource.js +0 -12
  161. package/codebase/ext/dhtmlxscheduler_mvc.js +0 -15
  162. package/codebase/ext/dhtmlxscheduler_outerdrag.js +0 -14
  163. package/codebase/ext/dhtmlxscheduler_pdf.js +0 -28
  164. package/codebase/ext/dhtmlxscheduler_quick_info.js +0 -23
  165. package/codebase/ext/dhtmlxscheduler_readonly.js +0 -18
  166. package/codebase/ext/dhtmlxscheduler_recurring.js +0 -51
  167. package/codebase/ext/dhtmlxscheduler_serialize.js +0 -16
  168. package/codebase/ext/dhtmlxscheduler_tooltip.js +0 -19
  169. package/codebase/ext/dhtmlxscheduler_url.js +0 -14
  170. package/codebase/ext/dhtmlxscheduler_wp.js +0 -12
  171. package/codebase/ext/dhtmlxscheduler_year_view.js +0 -30
  172. package/codebase/locale/locale_ar.js +0 -14
  173. package/codebase/locale/locale_be.js +0 -16
  174. package/codebase/locale/locale_ca.js +0 -14
  175. package/codebase/locale/locale_cn.js +0 -15
  176. package/codebase/locale/locale_cs.js +0 -16
  177. package/codebase/locale/locale_da.js +0 -16
  178. package/codebase/locale/locale_de.js +0 -16
  179. package/codebase/locale/locale_el.js +0 -16
  180. package/codebase/locale/locale_en.js +0 -16
  181. package/codebase/locale/locale_es.js +0 -16
  182. package/codebase/locale/locale_fi.js +0 -17
  183. package/codebase/locale/locale_fr.js +0 -16
  184. package/codebase/locale/locale_he.js +0 -16
  185. package/codebase/locale/locale_hu.js +0 -14
  186. package/codebase/locale/locale_id.js +0 -14
  187. package/codebase/locale/locale_it.js +0 -16
  188. package/codebase/locale/locale_jp.js +0 -14
  189. package/codebase/locale/locale_nb.js +0 -16
  190. package/codebase/locale/locale_nl.js +0 -16
  191. package/codebase/locale/locale_no.js +0 -14
  192. package/codebase/locale/locale_pl.js +0 -16
  193. package/codebase/locale/locale_pt.js +0 -16
  194. package/codebase/locale/locale_ro.js +0 -16
  195. package/codebase/locale/locale_ru.js +0 -16
  196. package/codebase/locale/locale_si.js +0 -14
  197. package/codebase/locale/locale_sk.js +0 -16
  198. package/codebase/locale/locale_sv.js +0 -16
  199. package/codebase/locale/locale_tr.js +0 -14
  200. package/codebase/locale/locale_ua.js +0 -16
  201. package/codebase/locale/recurring/locale_recurring_be.js +0 -14
  202. package/codebase/locale/recurring/locale_recurring_cn.js +0 -14
  203. package/codebase/locale/recurring/locale_recurring_cs.js +0 -14
  204. package/codebase/locale/recurring/locale_recurring_da.js +0 -14
  205. package/codebase/locale/recurring/locale_recurring_de.js +0 -14
  206. package/codebase/locale/recurring/locale_recurring_el.js +0 -14
  207. package/codebase/locale/recurring/locale_recurring_en.js +0 -14
  208. package/codebase/locale/recurring/locale_recurring_es.js +0 -14
  209. package/codebase/locale/recurring/locale_recurring_fi.js +0 -14
  210. package/codebase/locale/recurring/locale_recurring_fr.js +0 -14
  211. package/codebase/locale/recurring/locale_recurring_he.js +0 -14
  212. package/codebase/locale/recurring/locale_recurring_it.js +0 -14
  213. package/codebase/locale/recurring/locale_recurring_nb.js +0 -14
  214. package/codebase/locale/recurring/locale_recurring_nl.js +0 -14
  215. package/codebase/locale/recurring/locale_recurring_pl.js +0 -14
  216. package/codebase/locale/recurring/locale_recurring_pt.js +0 -14
  217. package/codebase/locale/recurring/locale_recurring_ro.js +0 -14
  218. package/codebase/locale/recurring/locale_recurring_ru.js +0 -14
  219. package/codebase/locale/recurring/locale_recurring_sk.js +0 -14
  220. package/codebase/locale/recurring/locale_recurring_sv.js +0 -14
  221. package/codebase/locale/recurring/locale_recurring_ua.js +0 -14
  222. package/codebase/locale/recurring/repeat_template_be.html +0 -57
  223. package/codebase/locale/recurring/repeat_template_cn.html +0 -57
  224. package/codebase/locale/recurring/repeat_template_de.html +0 -60
  225. package/codebase/locale/recurring/repeat_template_el.html +0 -57
  226. package/codebase/locale/recurring/repeat_template_en.html +0 -57
  227. package/codebase/locale/recurring/repeat_template_es.html +0 -57
  228. package/codebase/locale/recurring/repeat_template_fr.html +0 -57
  229. package/codebase/locale/recurring/repeat_template_he.html +0 -61
  230. package/codebase/locale/recurring/repeat_template_it.html +0 -57
  231. package/codebase/locale/recurring/repeat_template_nl.html +0 -65
  232. package/codebase/locale/recurring/repeat_template_ro.html +0 -57
  233. package/codebase/locale/recurring/repeat_template_ru.html +0 -57
  234. package/codebase/locale/recurring/repeat_template_sk.html +0 -57
  235. package/codebase/sources/dhtmlxscheduler.js.map +0 -1
  236. package/codebase/sources/ext/dhtmlxscheduler_active_links.js +0 -50
  237. package/codebase/sources/ext/dhtmlxscheduler_active_links.js.map +0 -1
  238. package/codebase/sources/ext/dhtmlxscheduler_agenda_view.js +0 -150
  239. package/codebase/sources/ext/dhtmlxscheduler_agenda_view.js.map +0 -1
  240. package/codebase/sources/ext/dhtmlxscheduler_all_timed.js +0 -193
  241. package/codebase/sources/ext/dhtmlxscheduler_all_timed.js.map +0 -1
  242. package/codebase/sources/ext/dhtmlxscheduler_collision.js +0 -140
  243. package/codebase/sources/ext/dhtmlxscheduler_collision.js.map +0 -1
  244. package/codebase/sources/ext/dhtmlxscheduler_container_autoresize.js +0 -338
  245. package/codebase/sources/ext/dhtmlxscheduler_container_autoresize.js.map +0 -1
  246. package/codebase/sources/ext/dhtmlxscheduler_cookie.js +0 -96
  247. package/codebase/sources/ext/dhtmlxscheduler_cookie.js.map +0 -1
  248. package/codebase/sources/ext/dhtmlxscheduler_csp.js +0 -106
  249. package/codebase/sources/ext/dhtmlxscheduler_csp.js.map +0 -1
  250. package/codebase/sources/ext/dhtmlxscheduler_editors.js +0 -183
  251. package/codebase/sources/ext/dhtmlxscheduler_editors.js.map +0 -1
  252. package/codebase/sources/ext/dhtmlxscheduler_expand.js +0 -87
  253. package/codebase/sources/ext/dhtmlxscheduler_expand.js.map +0 -1
  254. package/codebase/sources/ext/dhtmlxscheduler_html_templates.js +0 -29
  255. package/codebase/sources/ext/dhtmlxscheduler_html_templates.js.map +0 -1
  256. package/codebase/sources/ext/dhtmlxscheduler_key_nav.js +0 -3099
  257. package/codebase/sources/ext/dhtmlxscheduler_key_nav.js.map +0 -1
  258. package/codebase/sources/ext/dhtmlxscheduler_layer.js +0 -424
  259. package/codebase/sources/ext/dhtmlxscheduler_layer.js.map +0 -1
  260. package/codebase/sources/ext/dhtmlxscheduler_limit.js +0 -1095
  261. package/codebase/sources/ext/dhtmlxscheduler_limit.js.map +0 -1
  262. package/codebase/sources/ext/dhtmlxscheduler_map_view.js +0 -514
  263. package/codebase/sources/ext/dhtmlxscheduler_map_view.js.map +0 -1
  264. package/codebase/sources/ext/dhtmlxscheduler_minical.js +0 -570
  265. package/codebase/sources/ext/dhtmlxscheduler_minical.js.map +0 -1
  266. package/codebase/sources/ext/dhtmlxscheduler_monthheight.js +0 -41
  267. package/codebase/sources/ext/dhtmlxscheduler_monthheight.js.map +0 -1
  268. package/codebase/sources/ext/dhtmlxscheduler_multiselect.js +0 -112
  269. package/codebase/sources/ext/dhtmlxscheduler_multiselect.js.map +0 -1
  270. package/codebase/sources/ext/dhtmlxscheduler_multisource.js +0 -36
  271. package/codebase/sources/ext/dhtmlxscheduler_multisource.js.map +0 -1
  272. package/codebase/sources/ext/dhtmlxscheduler_mvc.js +0 -154
  273. package/codebase/sources/ext/dhtmlxscheduler_mvc.js.map +0 -1
  274. package/codebase/sources/ext/dhtmlxscheduler_outerdrag.js +0 -86
  275. package/codebase/sources/ext/dhtmlxscheduler_outerdrag.js.map +0 -1
  276. package/codebase/sources/ext/dhtmlxscheduler_pdf.js +0 -405
  277. package/codebase/sources/ext/dhtmlxscheduler_pdf.js.map +0 -1
  278. package/codebase/sources/ext/dhtmlxscheduler_quick_info.js +0 -288
  279. package/codebase/sources/ext/dhtmlxscheduler_quick_info.js.map +0 -1
  280. package/codebase/sources/ext/dhtmlxscheduler_readonly.js +0 -200
  281. package/codebase/sources/ext/dhtmlxscheduler_readonly.js.map +0 -1
  282. package/codebase/sources/ext/dhtmlxscheduler_recurring.js +0 -1269
  283. package/codebase/sources/ext/dhtmlxscheduler_recurring.js.map +0 -1
  284. package/codebase/sources/ext/dhtmlxscheduler_serialize.js +0 -116
  285. package/codebase/sources/ext/dhtmlxscheduler_serialize.js.map +0 -1
  286. package/codebase/sources/ext/dhtmlxscheduler_tooltip.js +0 -229
  287. package/codebase/sources/ext/dhtmlxscheduler_tooltip.js.map +0 -1
  288. package/codebase/sources/ext/dhtmlxscheduler_url.js +0 -91
  289. package/codebase/sources/ext/dhtmlxscheduler_url.js.map +0 -1
  290. package/codebase/sources/ext/dhtmlxscheduler_wp.js +0 -27
  291. package/codebase/sources/ext/dhtmlxscheduler_wp.js.map +0 -1
  292. package/codebase/sources/ext/dhtmlxscheduler_year_view.js +0 -442
  293. package/codebase/sources/ext/dhtmlxscheduler_year_view.js.map +0 -1
  294. package/codebase/sources/less/imgs/but_repeat.gif +0 -0
  295. package/codebase/sources/less/imgs/buttons.png +0 -0
  296. package/codebase/sources/less/imgs/calendar.gif +0 -0
  297. package/codebase/sources/less/imgs/clock_big.gif +0 -0
  298. package/codebase/sources/less/imgs/clock_small.gif +0 -0
  299. package/codebase/sources/less/imgs/collapse_expand_icon.gif +0 -0
  300. package/codebase/sources/less/imgs/controls.gif +0 -0
  301. package/codebase/sources/less/imgs/databg.png +0 -0
  302. package/codebase/sources/less/imgs/databg_now.png +0 -0
  303. package/codebase/sources/less/imgs/export_ical.png +0 -0
  304. package/codebase/sources/less/imgs/export_pdf.png +0 -0
  305. package/codebase/sources/less/imgs/icon.png +0 -0
  306. package/codebase/sources/less/imgs/images.png +0 -0
  307. package/codebase/sources/less/imgs/loading.gif +0 -0
  308. package/codebase/sources/less/imgs/resize_dots.png +0 -0
  309. package/codebase/sources/less/imgs_contrast_black/arrow_left.png +0 -0
  310. package/codebase/sources/less/imgs_contrast_black/arrow_right.png +0 -0
  311. package/codebase/sources/less/imgs_contrast_black/but_repeat.gif +0 -0
  312. package/codebase/sources/less/imgs_contrast_black/calendar.gif +0 -0
  313. package/codebase/sources/less/imgs_contrast_black/clock_big.gif +0 -0
  314. package/codebase/sources/less/imgs_contrast_black/clock_small.gif +0 -0
  315. package/codebase/sources/less/imgs_contrast_black/close_icon.png +0 -0
  316. package/codebase/sources/less/imgs_contrast_black/collapse_expand_icon.gif +0 -0
  317. package/codebase/sources/less/imgs_contrast_black/controls.png +0 -0
  318. package/codebase/sources/less/imgs_contrast_black/databg.png +0 -0
  319. package/codebase/sources/less/imgs_contrast_black/databg_now.png +0 -0
  320. package/codebase/sources/less/imgs_contrast_black/export_ical.png +0 -0
  321. package/codebase/sources/less/imgs_contrast_black/export_pdf.png +0 -0
  322. package/codebase/sources/less/imgs_contrast_black/resize_dots.png +0 -0
  323. package/codebase/sources/less/imgs_contrast_black/resizing.png +0 -0
  324. package/codebase/sources/less/imgs_contrast_white/arrow_left.png +0 -0
  325. package/codebase/sources/less/imgs_contrast_white/arrow_right.png +0 -0
  326. package/codebase/sources/less/imgs_contrast_white/but_repeat.gif +0 -0
  327. package/codebase/sources/less/imgs_contrast_white/calendar.gif +0 -0
  328. package/codebase/sources/less/imgs_contrast_white/clock_big.gif +0 -0
  329. package/codebase/sources/less/imgs_contrast_white/clock_small.gif +0 -0
  330. package/codebase/sources/less/imgs_contrast_white/close_icon.png +0 -0
  331. package/codebase/sources/less/imgs_contrast_white/collapse_expand_icon.gif +0 -0
  332. package/codebase/sources/less/imgs_contrast_white/controls.png +0 -0
  333. package/codebase/sources/less/imgs_contrast_white/databg.png +0 -0
  334. package/codebase/sources/less/imgs_contrast_white/export_ical.png +0 -0
  335. package/codebase/sources/less/imgs_contrast_white/export_pdf.png +0 -0
  336. package/codebase/sources/less/imgs_contrast_white/quick_info_edit.png +0 -0
  337. package/codebase/sources/less/imgs_contrast_white/resize_dots.png +0 -0
  338. package/codebase/sources/less/imgs_contrast_white/resizing.png +0 -0
  339. package/codebase/sources/less/imgs_dhx_material/Shape.svg +0 -3
  340. package/codebase/sources/less/imgs_dhx_material/agenda-calendar-hov.svg +0 -4
  341. package/codebase/sources/less/imgs_dhx_material/agenda-calendar.svg +0 -4
  342. package/codebase/sources/less/imgs_dhx_material/agenda_bg.png +0 -0
  343. package/codebase/sources/less/imgs_dhx_material/arrow_left.svg +0 -3
  344. package/codebase/sources/less/imgs_dhx_material/arrow_left_hov.svg +0 -3
  345. package/codebase/sources/less/imgs_dhx_material/arrow_right.svg +0 -3
  346. package/codebase/sources/less/imgs_dhx_material/arrow_right_hov.svg +0 -3
  347. package/codebase/sources/less/imgs_dhx_material/but_repeat.png +0 -0
  348. package/codebase/sources/less/imgs_dhx_material/calendar.svg +0 -4
  349. package/codebase/sources/less/imgs_dhx_material/clock_big.png +0 -0
  350. package/codebase/sources/less/imgs_dhx_material/clock_small.png +0 -0
  351. package/codebase/sources/less/imgs_dhx_material/close_icon.png +0 -0
  352. package/codebase/sources/less/imgs_dhx_material/collapse_expand_icon.png +0 -0
  353. package/codebase/sources/less/imgs_dhx_material/controls.png +0 -0
  354. package/codebase/sources/less/imgs_dhx_material/databg.png +0 -0
  355. package/codebase/sources/less/imgs_dhx_material/drag-horizontal.svg +0 -5
  356. package/codebase/sources/less/imgs_dhx_material/drag-vertical.svg +0 -14
  357. package/codebase/sources/less/imgs_dhx_material/export_ical.png +0 -0
  358. package/codebase/sources/less/imgs_dhx_material/export_pdf.png +0 -0
  359. package/codebase/sources/less/imgs_dhx_material/icon.png +0 -0
  360. package/codebase/sources/less/imgs_dhx_material/menu-down.svg +0 -1
  361. package/codebase/sources/less/imgs_dhx_material/resizing.png +0 -0
  362. package/codebase/sources/less/imgs_dhx_material/time.svg +0 -24
  363. package/codebase/sources/less/imgs_dhx_material/tree_arrow.svg +0 -3
  364. package/codebase/sources/less/imgs_dhx_terrace/arrow_left.png +0 -0
  365. package/codebase/sources/less/imgs_dhx_terrace/arrow_right.png +0 -0
  366. package/codebase/sources/less/imgs_dhx_terrace/but_repeat.gif +0 -0
  367. package/codebase/sources/less/imgs_dhx_terrace/calendar.gif +0 -0
  368. package/codebase/sources/less/imgs_dhx_terrace/clock_big.gif +0 -0
  369. package/codebase/sources/less/imgs_dhx_terrace/clock_small.gif +0 -0
  370. package/codebase/sources/less/imgs_dhx_terrace/close_icon.png +0 -0
  371. package/codebase/sources/less/imgs_dhx_terrace/collapse_expand_icon.gif +0 -0
  372. package/codebase/sources/less/imgs_dhx_terrace/controls.png +0 -0
  373. package/codebase/sources/less/imgs_dhx_terrace/databg.png +0 -0
  374. package/codebase/sources/less/imgs_dhx_terrace/databg_now.png +0 -0
  375. package/codebase/sources/less/imgs_dhx_terrace/export_ical.png +0 -0
  376. package/codebase/sources/less/imgs_dhx_terrace/export_pdf.png +0 -0
  377. package/codebase/sources/less/imgs_dhx_terrace/resize_dots.png +0 -0
  378. package/codebase/sources/less/imgs_dhx_terrace/resizing.png +0 -0
  379. package/codebase/sources/less/imgs_flat/agenda_bg.gif +0 -0
  380. package/codebase/sources/less/imgs_flat/arrow_left.png +0 -0
  381. package/codebase/sources/less/imgs_flat/arrow_right.png +0 -0
  382. package/codebase/sources/less/imgs_flat/but_repeat.gif +0 -0
  383. package/codebase/sources/less/imgs_flat/calendar.gif +0 -0
  384. package/codebase/sources/less/imgs_flat/clock.png +0 -0
  385. package/codebase/sources/less/imgs_flat/clock_big.gif +0 -0
  386. package/codebase/sources/less/imgs_flat/clock_small.gif +0 -0
  387. package/codebase/sources/less/imgs_flat/close_icon.png +0 -0
  388. package/codebase/sources/less/imgs_flat/collapse_expand_icon.gif +0 -0
  389. package/codebase/sources/less/imgs_flat/controls.png +0 -0
  390. package/codebase/sources/less/imgs_flat/databg.png +0 -0
  391. package/codebase/sources/less/imgs_flat/databg_now.png +0 -0
  392. package/codebase/sources/less/imgs_flat/export_ical.png +0 -0
  393. package/codebase/sources/less/imgs_flat/export_pdf.png +0 -0
  394. package/codebase/sources/less/imgs_flat/resize_dots.png +0 -0
  395. package/codebase/sources/less/imgs_flat/resizing.png +0 -0
  396. package/codebase/sources/locale/locale_ar.js +0 -65
  397. package/codebase/sources/locale/locale_ar.js.map +0 -1
  398. package/codebase/sources/locale/locale_be.js +0 -104
  399. package/codebase/sources/locale/locale_be.js.map +0 -1
  400. package/codebase/sources/locale/locale_ca.js +0 -76
  401. package/codebase/sources/locale/locale_ca.js.map +0 -1
  402. package/codebase/sources/locale/locale_cn.js +0 -109
  403. package/codebase/sources/locale/locale_cn.js.map +0 -1
  404. package/codebase/sources/locale/locale_cs.js +0 -103
  405. package/codebase/sources/locale/locale_cs.js.map +0 -1
  406. package/codebase/sources/locale/locale_da.js +0 -102
  407. package/codebase/sources/locale/locale_da.js.map +0 -1
  408. package/codebase/sources/locale/locale_de.js +0 -102
  409. package/codebase/sources/locale/locale_de.js.map +0 -1
  410. package/codebase/sources/locale/locale_el.js +0 -103
  411. package/codebase/sources/locale/locale_el.js.map +0 -1
  412. package/codebase/sources/locale/locale_en.js +0 -103
  413. package/codebase/sources/locale/locale_en.js.map +0 -1
  414. package/codebase/sources/locale/locale_es.js +0 -104
  415. package/codebase/sources/locale/locale_es.js.map +0 -1
  416. package/codebase/sources/locale/locale_fi.js +0 -103
  417. package/codebase/sources/locale/locale_fi.js.map +0 -1
  418. package/codebase/sources/locale/locale_fr.js +0 -101
  419. package/codebase/sources/locale/locale_fr.js.map +0 -1
  420. package/codebase/sources/locale/locale_he.js +0 -103
  421. package/codebase/sources/locale/locale_he.js.map +0 -1
  422. package/codebase/sources/locale/locale_hu.js +0 -70
  423. package/codebase/sources/locale/locale_hu.js.map +0 -1
  424. package/codebase/sources/locale/locale_id.js +0 -11
  425. package/codebase/sources/locale/locale_id.js.map +0 -1
  426. package/codebase/sources/locale/locale_it.js +0 -101
  427. package/codebase/sources/locale/locale_it.js.map +0 -1
  428. package/codebase/sources/locale/locale_jp.js +0 -78
  429. package/codebase/sources/locale/locale_jp.js.map +0 -1
  430. package/codebase/sources/locale/locale_nb.js +0 -101
  431. package/codebase/sources/locale/locale_nb.js.map +0 -1
  432. package/codebase/sources/locale/locale_nl.js +0 -103
  433. package/codebase/sources/locale/locale_nl.js.map +0 -1
  434. package/codebase/sources/locale/locale_no.js +0 -76
  435. package/codebase/sources/locale/locale_no.js.map +0 -1
  436. package/codebase/sources/locale/locale_pl.js +0 -103
  437. package/codebase/sources/locale/locale_pl.js.map +0 -1
  438. package/codebase/sources/locale/locale_pt.js +0 -113
  439. package/codebase/sources/locale/locale_pt.js.map +0 -1
  440. package/codebase/sources/locale/locale_ro.js +0 -107
  441. package/codebase/sources/locale/locale_ro.js.map +0 -1
  442. package/codebase/sources/locale/locale_ru.js +0 -101
  443. package/codebase/sources/locale/locale_ru.js.map +0 -1
  444. package/codebase/sources/locale/locale_si.js +0 -76
  445. package/codebase/sources/locale/locale_si.js.map +0 -1
  446. package/codebase/sources/locale/locale_sk.js +0 -103
  447. package/codebase/sources/locale/locale_sk.js.map +0 -1
  448. package/codebase/sources/locale/locale_sv.js +0 -102
  449. package/codebase/sources/locale/locale_sv.js.map +0 -1
  450. package/codebase/sources/locale/locale_tr.js +0 -74
  451. package/codebase/sources/locale/locale_tr.js.map +0 -1
  452. package/codebase/sources/locale/locale_ua.js +0 -102
  453. package/codebase/sources/locale/locale_ua.js.map +0 -1
  454. package/codebase/sources/locale/recurring/locale_recurring_be.js +0 -13
  455. package/codebase/sources/locale/recurring/locale_recurring_be.js.map +0 -1
  456. package/codebase/sources/locale/recurring/locale_recurring_cn.js +0 -13
  457. package/codebase/sources/locale/recurring/locale_recurring_cn.js.map +0 -1
  458. package/codebase/sources/locale/recurring/locale_recurring_cs.js +0 -12
  459. package/codebase/sources/locale/recurring/locale_recurring_cs.js.map +0 -1
  460. package/codebase/sources/locale/recurring/locale_recurring_da.js +0 -13
  461. package/codebase/sources/locale/recurring/locale_recurring_da.js.map +0 -1
  462. package/codebase/sources/locale/recurring/locale_recurring_de.js +0 -13
  463. package/codebase/sources/locale/recurring/locale_recurring_de.js.map +0 -1
  464. package/codebase/sources/locale/recurring/locale_recurring_el.js +0 -13
  465. package/codebase/sources/locale/recurring/locale_recurring_el.js.map +0 -1
  466. package/codebase/sources/locale/recurring/locale_recurring_en.js +0 -11
  467. package/codebase/sources/locale/recurring/locale_recurring_en.js.map +0 -1
  468. package/codebase/sources/locale/recurring/locale_recurring_es.js +0 -13
  469. package/codebase/sources/locale/recurring/locale_recurring_es.js.map +0 -1
  470. package/codebase/sources/locale/recurring/locale_recurring_fi.js +0 -13
  471. package/codebase/sources/locale/recurring/locale_recurring_fi.js.map +0 -1
  472. package/codebase/sources/locale/recurring/locale_recurring_fr.js +0 -13
  473. package/codebase/sources/locale/recurring/locale_recurring_fr.js.map +0 -1
  474. package/codebase/sources/locale/recurring/locale_recurring_he.js +0 -13
  475. package/codebase/sources/locale/recurring/locale_recurring_he.js.map +0 -1
  476. package/codebase/sources/locale/recurring/locale_recurring_it.js +0 -13
  477. package/codebase/sources/locale/recurring/locale_recurring_it.js.map +0 -1
  478. package/codebase/sources/locale/recurring/locale_recurring_nb.js +0 -11
  479. package/codebase/sources/locale/recurring/locale_recurring_nb.js.map +0 -1
  480. package/codebase/sources/locale/recurring/locale_recurring_nl.js +0 -13
  481. package/codebase/sources/locale/recurring/locale_recurring_nl.js.map +0 -1
  482. package/codebase/sources/locale/recurring/locale_recurring_pl.js +0 -13
  483. package/codebase/sources/locale/recurring/locale_recurring_pl.js.map +0 -1
  484. package/codebase/sources/locale/recurring/locale_recurring_pt.js +0 -11
  485. package/codebase/sources/locale/recurring/locale_recurring_pt.js.map +0 -1
  486. package/codebase/sources/locale/recurring/locale_recurring_ro.js +0 -17
  487. package/codebase/sources/locale/recurring/locale_recurring_ro.js.map +0 -1
  488. package/codebase/sources/locale/recurring/locale_recurring_ru.js +0 -13
  489. package/codebase/sources/locale/recurring/locale_recurring_ru.js.map +0 -1
  490. package/codebase/sources/locale/recurring/locale_recurring_sk.js +0 -12
  491. package/codebase/sources/locale/recurring/locale_recurring_sk.js.map +0 -1
  492. package/codebase/sources/locale/recurring/locale_recurring_sv.js +0 -11
  493. package/codebase/sources/locale/recurring/locale_recurring_sv.js.map +0 -1
  494. package/codebase/sources/locale/recurring/locale_recurring_ua.js +0 -13
  495. package/codebase/sources/locale/recurring/locale_recurring_ua.js.map +0 -1
  496. package/codebase/sources/locale/recurring/repeat_template_be.html +0 -57
  497. package/codebase/sources/locale/recurring/repeat_template_cn.html +0 -57
  498. package/codebase/sources/locale/recurring/repeat_template_de.html +0 -60
  499. package/codebase/sources/locale/recurring/repeat_template_el.html +0 -57
  500. package/codebase/sources/locale/recurring/repeat_template_en.html +0 -57
  501. package/codebase/sources/locale/recurring/repeat_template_es.html +0 -57
  502. package/codebase/sources/locale/recurring/repeat_template_fr.html +0 -57
  503. package/codebase/sources/locale/recurring/repeat_template_he.html +0 -61
  504. package/codebase/sources/locale/recurring/repeat_template_it.html +0 -57
  505. package/codebase/sources/locale/recurring/repeat_template_nl.html +0 -65
  506. package/codebase/sources/locale/recurring/repeat_template_ro.html +0 -57
  507. package/codebase/sources/locale/recurring/repeat_template_ru.html +0 -57
  508. package/codebase/sources/locale/recurring/repeat_template_sk.html +0 -57
@@ -1,1269 +0,0 @@
1
- /*
2
-
3
- @license
4
- dhtmlxScheduler v.5.3.13 Standard
5
-
6
- To use dhtmlxScheduler in non-GPL projects (and get Pro version of the product), please obtain Commercial/Enterprise or Ultimate license on our site https://dhtmlx.com/docs/products/dhtmlxScheduler/#licensing or contact us at sales@dhtmlx.com
7
-
8
- (c) XB Software Ltd.
9
-
10
- */
11
- Scheduler.plugin(function(scheduler){
12
-
13
- scheduler.config.occurrence_timestamp_in_utc = false;
14
- scheduler.config.recurring_workdays = [1,2,3,4,5];
15
- scheduler.form_blocks["recurring"] = {
16
- _get_node : function(node){
17
- if (typeof node == "string")
18
- node = document.getElementById(node);
19
- if (node.style.display == 'none')
20
- node.style.display = "";
21
- return node;
22
- },
23
- _outer_html: function(node){
24
- return node.outerHTML || getOuterHTML(node);
25
-
26
- //probably not needed, FF v10- only
27
- function getOuterHTML(n){
28
- var div = document.createElement('div'), h;
29
- div.appendChild( n.cloneNode(true) );
30
- h = div.innerHTML;
31
- div = null;
32
- return h;
33
- }
34
- },
35
- render:function(sns) {
36
- if(sns.form){
37
- var rec = scheduler.form_blocks["recurring"];
38
- var form = rec._get_node(sns.form);
39
- var html = rec._outer_html(form);
40
- form.style.display = 'none';
41
- return html;
42
- }
43
- var loc = scheduler.locale.labels;
44
- return '<div class="dhx_form_repeat"> '+
45
- '<form> '+
46
- '<div class="dhx_repeat_left"> '+
47
- '<label><input class="dhx_repeat_radio" type="radio" name="repeat" value="day" />'+loc.repeat_radio_day+'</label><br /> '+
48
- '<label><input class="dhx_repeat_radio" type="radio" name="repeat" value="week"/>'+loc.repeat_radio_week+'</label><br /> '+
49
- '<label><input class="dhx_repeat_radio" type="radio" name="repeat" value="month" checked />'+loc.repeat_radio_month+'</label><br /> '+
50
- '<label><input class="dhx_repeat_radio" type="radio" name="repeat" value="year" />'+loc.repeat_radio_year+'</label> '+
51
- '</div> '+
52
- '<div class="dhx_repeat_divider">'+
53
- '</div> '+
54
- '<div class="dhx_repeat_center"> '+
55
- '<div style="display:none;" id="dhx_repeat_day"> '+
56
- '<label><input class="dhx_repeat_radio" type="radio" name="day_type" value="d"/>'+loc.repeat_radio_day_type+'</label>'+
57
- '<label><input class="dhx_repeat_text" type="text" name="day_count" value="1" />'+loc.repeat_text_day_count+'</label><br /> '+
58
- '<label><input class="dhx_repeat_radio" type="radio" name="day_type" checked value="w"/>'+loc.repeat_radio_day_type2+'</label> '+
59
- '</div> '+
60
- '<div style="display:none;" id="dhx_repeat_week">'+
61
- '<label>'+loc.repeat_week+'<input class="dhx_repeat_text" type="text" name="week_count" value="1" /></label>'+
62
- '<span>'+loc.repeat_text_week_count+'</span><br /> '+
63
- '<table class="dhx_repeat_days"> '+
64
- '<tr> '+
65
- '<td> <label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="1" />'+loc.day_for_recurring[1]+'</label><br /> '+
66
- '<label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="4" />'+loc.day_for_recurring[4]+'</label> </td> '+
67
- '<td> <label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="2" />'+loc.day_for_recurring[2]+'</label><br /> '+
68
- '<label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="5" />'+loc.day_for_recurring[5]+'</label> </td> '+
69
- '<td> <label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="3" />'+loc.day_for_recurring[3]+'</label><br /> '+
70
- '<label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="6" />'+loc.day_for_recurring[6]+'</label> </td> '+
71
- '<td> <label><input class="dhx_repeat_checkbox" type="checkbox" name="week_day" value="0" />'+loc.day_for_recurring[0]+'</label><br /><br /> </td> '+
72
- '</tr> '+
73
- '</table> '+
74
- '</div> '+
75
- '<div id="dhx_repeat_month"> '+
76
- '<label class = "dhx_repeat_month_label"><input class="dhx_repeat_radio" type="radio" name="month_type" value="d"/>'+loc.repeat_radio_month_type+'</label>'+
77
- '<label><input class="dhx_repeat_text" type="text" name="month_day" value="1" />'+loc.repeat_text_month_day+'</label>'+
78
- '<label><input class="dhx_repeat_text" type="text" name="month_count" value="1" />'+loc.repeat_text_month_count+'</label><br /> '+
79
- '<label class = "dhx_repeat_month_label"><input class="dhx_repeat_radio" type="radio" name="month_type" checked value="w"/>'+loc.repeat_radio_month_start+'</label>'+
80
- '<input class="dhx_repeat_text" type="text" name="month_week2" value="1" />'+
81
- '<label>'+
82
- '<select name="month_day2">'+
83
- ' <option value="1" selected >'+scheduler.locale.date.day_full[1]+
84
- '<option value="2">'+scheduler.locale.date.day_full[2]+
85
- '<option value="3">'+scheduler.locale.date.day_full[3]+
86
- '<option value="4">'+scheduler.locale.date.day_full[4]+
87
- '<option value="5">'+scheduler.locale.date.day_full[5]+
88
- '<option value="6">'+scheduler.locale.date.day_full[6]+
89
- '<option value="0">'+scheduler.locale.date.day_full[0]+
90
- '</select>'+
91
- loc.repeat_text_month_count2_before+
92
- '</label>'+
93
- '<label><input class="dhx_repeat_text" type="text" name="month_count2" value="1" />'+loc.repeat_text_month_count2_after+'</label><br /> '+
94
- '</div> '+
95
- '<div style="display:none;" id="dhx_repeat_year"> '+
96
- '<label class = "dhx_repeat_year_label"><input class="dhx_repeat_radio" type="radio" name="year_type" value="d"/>'+loc.repeat_radio_day_type+'</label>'+
97
- '<label><input class="dhx_repeat_text" type="text" name="year_day" value="1" />'+loc.repeat_text_year_day+'</label>'+
98
- '<label>'+
99
- '<select name="year_month">'+
100
- '<option value="0" selected >'+loc.month_for_recurring[0]+
101
- '<option value="1">'+loc.month_for_recurring[1]+
102
- '<option value="2">'+loc.month_for_recurring[2]+
103
- '<option value="3">'+loc.month_for_recurring[3]+
104
- '<option value="4">'+loc.month_for_recurring[4]+
105
- '<option value="5">'+loc.month_for_recurring[5]+
106
- '<option value="6">'+loc.month_for_recurring[6]+
107
- '<option value="7">'+loc.month_for_recurring[7]+
108
- '<option value="8">'+loc.month_for_recurring[8]+
109
- '<option value="9">'+loc.month_for_recurring[9]+
110
- '<option value="10">'+loc.month_for_recurring[10]+
111
- '<option value="11">'+loc.month_for_recurring[11]+
112
- '</select>'+
113
- loc.select_year_month+
114
- '</label><br /> '+
115
- '<label class = "dhx_repeat_year_label"><input class="dhx_repeat_radio" type="radio" name="year_type" checked value="w"/>'+loc.repeat_year_label+'</label>'+
116
- '<input class="dhx_repeat_text" type="text" name="year_week2" value="1" />'+
117
- '<select name="year_day2">'+
118
- '<option value="1" selected >'+scheduler.locale.date.day_full[1]+
119
- '<option value="2">'+scheduler.locale.date.day_full[2]+
120
- '<option value="3">'+scheduler.locale.date.day_full[3]+
121
- '<option value="4">'+scheduler.locale.date.day_full[4]+
122
- '<option value="5">'+scheduler.locale.date.day_full[5]+
123
- '<option value="6">'+scheduler.locale.date.day_full[6]+
124
- '<option value="7">'+scheduler.locale.date.day_full[0]+
125
- '</select>'+
126
- loc.select_year_day2+
127
- '<select name="year_month2">'+
128
- '<option value="0" selected >'+loc.month_for_recurring[0]+
129
- '<option value="1">'+loc.month_for_recurring[1]+
130
- '<option value="2">'+loc.month_for_recurring[2]+
131
- '<option value="3">'+loc.month_for_recurring[3]+
132
- '<option value="4">'+loc.month_for_recurring[4]+
133
- '<option value="5">'+loc.month_for_recurring[5]+
134
- '<option value="6">'+loc.month_for_recurring[6]+
135
- '<option value="7">'+loc.month_for_recurring[7]+
136
- '<option value="8">'+loc.month_for_recurring[8]+
137
- '<option value="9">'+loc.month_for_recurring[9]+
138
- '<option value="10">'+loc.month_for_recurring[10]+
139
- '<option value="11">'+loc.month_for_recurring[11]+
140
- '</select><br /> '+
141
- '</div> '+
142
- '</div> '+
143
- '<div class="dhx_repeat_divider">'+
144
- '</div> '+
145
- '<div class="dhx_repeat_right"> '+
146
- '<label><input class="dhx_repeat_radio" type="radio" name="end" checked/>'+loc.repeat_radio_end+'</label><br /> '+
147
- '<label><input class="dhx_repeat_radio" type="radio" name="end" />'+loc.repeat_radio_end2+'</label>'+
148
- '<input class="dhx_repeat_text" type="text" name="occurences_count" value="1" />'+loc.repeat_text_occurences_count+'<br /> '+
149
- '<label><input class="dhx_repeat_radio" type="radio" name="end" />'+loc.repeat_radio_end3+'</label>'+
150
- '<input class="dhx_repeat_date" type="text" name="date_of_end" value="'+scheduler.config.repeat_date_of_end+'" /><br /> '+
151
- '</div> '+
152
- '</form> '+
153
- '</div> '+
154
- '<div style="clear:both"> '+
155
- '</div>';
156
- },
157
- _ds: {},
158
- _get_form_node: function(els, name, value){
159
- var col = els[name];
160
- if(!col) return null;
161
- if(col.nodeName) return col;
162
-
163
- if(col.length){
164
- for(var i=0; i < col.length; i++){
165
- if(col[i].value == value)
166
- return col[i];
167
- }
168
- }
169
- },
170
- _get_node_value: function(els, name, multiselect){
171
- var col = els[name];
172
- if(!col) return "";
173
- if(col.length){
174
- if(multiselect){
175
- var res = [];
176
- for (var i = 0; i < col.length; i++)
177
- if (col[i].checked) res.push(col[i].value);
178
-
179
- return res;
180
- }else{
181
- for (var i = 0; i < col.length; i++)
182
- if (col[i].checked) return col[i].value;
183
- }
184
- }
185
-
186
- if(col.value)
187
- return !multiselect ? col.value : [col.value];
188
- },
189
-
190
- _get_node_numeric_value: function(els, name){
191
- var value = scheduler.form_blocks["recurring"]._get_node_value(els, name);
192
- return ((value * 1) || 0);
193
- },
194
-
195
- _set_node_value: function(els, name, value){
196
- var col = els[name];
197
- if(!col) return;
198
-
199
- if(col.name == name){
200
- col.value = value;
201
- }else if(col.length){
202
- var hash_value = typeof value == "object";
203
- for (var i = 0; i < col.length; i++)
204
- if (hash_value || col[i].value == value){
205
- col[i].checked = hash_value ? !!value[col[i].value] : !!value;
206
- }
207
- }
208
- },
209
-
210
- _init_set_value:function(node, value, ev) {
211
- var block = scheduler.form_blocks["recurring"];
212
- var get_value = block._get_node_value;
213
- var set_value = block._set_node_value;
214
- scheduler.form_blocks["recurring"]._ds = {start:ev.start_date, end:ev._end_date};
215
-
216
- var str_date_format = scheduler.date.str_to_date(scheduler.config.repeat_date);
217
- var str_date = function(str_date) {
218
- var date = str_date_format(str_date);
219
- if (scheduler.config.include_end_by)
220
- date = scheduler.date.add(date, 1, 'day');
221
- return date;
222
- };
223
-
224
- var date_str = scheduler.date.date_to_str(scheduler.config.repeat_date);
225
-
226
- var top = node.getElementsByTagName("FORM")[0];
227
- var els = {};
228
-
229
- function register_els(inps) {
230
- for (var i = 0; i < inps.length; i++) {
231
- var inp = inps[i];
232
-
233
- if(inp.name){
234
- if(!els[inp.name]){
235
- els[inp.name] = inp;
236
- }else if(els[inp.name].nodeType){
237
- var node = els[inp.name];
238
- els[inp.name] = [node, inp];
239
-
240
- }else{
241
- els[inp.name].push(inp);
242
- }
243
-
244
- }
245
- }
246
- }
247
-
248
- register_els(top.getElementsByTagName("INPUT"));
249
- register_els(top.getElementsByTagName("SELECT"));
250
-
251
- if (!scheduler.config.repeat_date_of_end) {
252
- var formatter = scheduler.date.date_to_str(scheduler.config.repeat_date);
253
- scheduler.config.repeat_date_of_end = formatter(scheduler.date.add(scheduler._currentDate(), 30, "day"));
254
- }
255
- set_value(els, "date_of_end", scheduler.config.repeat_date_of_end);
256
-
257
- var $ = function(a) {
258
- return document.getElementById(a) || { style:{} };//return fake object if node not found
259
- };
260
-
261
- function change_current_view() {
262
- $("dhx_repeat_day").style.display = "none";
263
- $("dhx_repeat_week").style.display = "none";
264
- $("dhx_repeat_month").style.display = "none";
265
- $("dhx_repeat_year").style.display = "none";
266
- $("dhx_repeat_" + this.value).style.display = "block";
267
- scheduler.setLightboxSize();
268
- }
269
-
270
- function get_repeat_code(dates) {
271
- var code = [get_value(els, "repeat")];
272
- get_rcode[code[0]](code, dates);
273
-
274
- while (code.length < 5) code.push("");
275
- var repeat = "";
276
-
277
- var end = get_end_rule(els);
278
-
279
- if (end == "no") {
280
- dates.end = new Date(9999, 1, 1);
281
- repeat = "no";
282
- }
283
- else if (end == "date_of_end") {
284
- dates.end = str_date(get_value(els, "date_of_end"));
285
- }
286
- else {
287
- scheduler.transpose_type(code.join("_"));
288
- repeat = Math.max(1, get_value(els, "occurences_count"));
289
-
290
- var transp = 0;
291
-
292
- //var transp = ((code[0] == "week" && code[4] && code[4].toString().indexOf(scheduler.config.start_on_monday ? 1 : 0) == -1) ? 1 : 0);
293
-
294
- // which is equal to following code, seems to produce extra instance, not clear why needed
295
-
296
- /*if(code[0] == "week"){
297
- var days = code[4] || "";
298
- if(scheduler.config.start_on_monday){
299
- if(days.indexOf(1) == -1)
300
- transp = 1;
301
- }else{
302
- if(days.indexOf(0) == -1)
303
- transp = 1;
304
- }
305
- }*/
306
-
307
- // dates.end = scheduler.date.add(new Date(dates.start), repeat + transp, code.join("_"));
308
-
309
- dates.end = scheduler.date["add_" + code.join("_")](new Date(dates.start), repeat + transp, {start_date: dates.start}) || dates.start;
310
- }
311
-
312
- return code.join("_") + "#" + repeat;
313
- }
314
- function get_end_rule(els){
315
- var end = els["end"];
316
- if(end.length){
317
- for(var i =0; i < end.length; i++){
318
- if(end[i].checked){
319
- if(end[i].value && end[i].value != "on"){//seems to be default value:var input = document.createElement("input"); input.type = "radio"; input.value
320
- return end[i].value;
321
- }else{
322
- if(!i){
323
- return "no";
324
- }else if(i == 2){
325
- return "date_of_end";
326
- }else{
327
- return "occurences_count";
328
- }
329
- }
330
- }
331
- }
332
- }else{
333
- if(end.value)
334
- return end.value;
335
- }
336
- return "no";
337
- }
338
- function set_end_rule(els, value){
339
- var end = els["end"];
340
-
341
- if(end.length){
342
- var has_values = !!end[0].value && end[0].value != "on";
343
- if(has_values){
344
- for(var i =0; i < end.length; i++){
345
- if(end[i].value == value)
346
- end[i].checked = true;
347
- }
348
- }else{
349
- var ind = 0;
350
- switch(value){
351
- case "no":
352
- ind = 0;
353
- break;
354
- case "date_of_end":
355
- ind = 2;
356
- break;
357
- default:
358
- ind = 1;
359
- break;
360
- }
361
- end[ind].checked = true;
362
- }
363
- }else{
364
- end.value = value;
365
- }
366
- }
367
-
368
-
369
- scheduler.form_blocks["recurring"]._get_repeat_code = get_repeat_code;
370
- var get_rcode = {
371
- month:function(code, dates) {
372
- var get_value = scheduler.form_blocks["recurring"]._get_node_value;
373
- var get_numeric_value = scheduler.form_blocks["recurring"]._get_node_numeric_value;
374
-
375
- if (get_value(els, "month_type") == "d") {
376
- code.push(Math.max(1, get_numeric_value(els, "month_count")));
377
- dates.start.setDate(get_value(els, "month_day"));
378
- } else {
379
- code.push(Math.max(1, get_numeric_value(els, "month_count2")));
380
- code.push( get_value(els, "month_day2"));
381
- code.push(Math.max(1, get_numeric_value(els, "month_week2")));
382
- if (!scheduler.config.repeat_precise){
383
- dates.start.setDate(1);
384
- }
385
- }
386
- dates._start = true;
387
- },
388
- week:function(code, dates) {
389
- var get_value = scheduler.form_blocks["recurring"]._get_node_value;
390
- var get_numeric_value = scheduler.form_blocks["recurring"]._get_node_numeric_value;
391
-
392
- code.push(Math.max(1, get_numeric_value(els, "week_count")));
393
- code.push("");
394
- code.push("");
395
- var t = [];
396
-
397
- var col = get_value(els, "week_day", true);
398
- //var col = els["week_day"];
399
- var day = dates.start.getDay();
400
- var start_exists = false;
401
-
402
- for (var i = 0; i < col.length; i++){
403
- t.push(col[i]);
404
- start_exists = start_exists || col[i] == day;
405
- }
406
- if (!t.length){
407
- t.push(day);
408
- start_exists = true;
409
- }
410
- t.sort();
411
-
412
-
413
- if (!scheduler.config.repeat_precise){
414
- dates.start = scheduler.date.week_start(dates.start);
415
- dates._start = true;
416
- } else if (!start_exists){
417
- scheduler.transpose_day_week(dates.start, t, 1, 7);
418
- dates._start = true;
419
- }
420
-
421
- code.push(t.join(","));
422
- },
423
- day:function(code) {
424
- var get_value = scheduler.form_blocks["recurring"]._get_node_value;
425
- var get_numeric_value = scheduler.form_blocks["recurring"]._get_node_numeric_value;
426
-
427
- if (get_value(els, "day_type") == "d") {
428
- code.push(Math.max(1, get_numeric_value(els, "day_count")));
429
- }
430
- else {
431
- code.push("week");
432
- code.push(1);
433
- code.push("");
434
- code.push("");
435
- code.push(scheduler.config.recurring_workdays.join(","));
436
- code.splice(0, 1);
437
- }
438
- },
439
- year:function(code, dates) {
440
- var get_value = scheduler.form_blocks["recurring"]._get_node_value;
441
-
442
- if (get_value(els, "year_type") == "d") {
443
- code.push("1");
444
- dates.start.setMonth(0);
445
- dates.start.setDate(get_value(els, "year_day"));
446
- dates.start.setMonth(get_value(els, "year_month"));
447
-
448
- } else {
449
- code.push("1");
450
- code.push(get_value(els, "year_day2"));
451
- code.push(get_value(els, "year_week2"));
452
- dates.start.setDate(1);
453
- dates.start.setMonth(get_value(els, "year_month2"));
454
- }
455
- dates._start = true;
456
- }
457
- };
458
- var set_rcode = {
459
- week:function(code, dates) {
460
- var set_value = scheduler.form_blocks["recurring"]._set_node_value;
461
- set_value(els, "week_count", code[1]);
462
-
463
- var t = code[4].split(",");
464
- var d = {};
465
- for (var i = 0; i < t.length; i++) d[t[i]] = true;
466
-
467
- set_value(els, "week_day", d);
468
-
469
- //for (var i = 0; i < col.length; i++)
470
- // col[i].checked = (!!d[col[i].value]);
471
- },
472
- month:function(code, dates) {
473
- var set_value = scheduler.form_blocks["recurring"]._set_node_value;
474
-
475
- if (code[2] === "") {
476
- set_value(els, "month_type", "d");
477
- set_value(els, "month_count", code[1]);
478
- set_value(els, "month_day", dates.start.getDate());
479
- } else {
480
- set_value(els, "month_type", "w");
481
- set_value(els, "month_count2", code[1]);
482
- set_value(els, "month_week2", code[3]);
483
- set_value(els, "month_day2", code[2]);
484
- }
485
- },
486
- day:function(code, dates) {
487
- var set_value = scheduler.form_blocks["recurring"]._set_node_value;
488
- set_value(els, "day_type", "d");
489
- set_value(els, "day_count", code[1]);
490
- },
491
- year:function(code, dates) {
492
- var set_value = scheduler.form_blocks["recurring"]._set_node_value;
493
-
494
- if (code[2] === "") {
495
- set_value(els, "year_type", "d");
496
- set_value(els, "year_day", dates.start.getDate());
497
- set_value(els, "year_month", dates.start.getMonth());
498
-
499
- } else {
500
- set_value(els, "year_type", "w");
501
- set_value(els, "year_week2", code[3]);
502
- set_value(els, "year_day2", code[2]);
503
- set_value(els, "year_month2", dates.start.getMonth());
504
- }
505
- }
506
- };
507
-
508
- function set_repeat_code(code, dates) {
509
- var set_value = scheduler.form_blocks["recurring"]._set_node_value;
510
- var data = code.split("#");
511
- code = data[0].split("_");
512
- set_rcode[code[0]](code, dates);
513
-
514
-
515
- switch (data[1]) {
516
- case "no":
517
- set_end_rule(els, "no");
518
- break;
519
- case "":
520
- set_end_rule(els, "date_of_end");
521
-
522
- var end_date = dates.end;
523
- if (scheduler.config.include_end_by){
524
- end_date = scheduler.date.add(end_date, -1, 'day');
525
- }
526
- set_value(els, "date_of_end", date_str(end_date));
527
-
528
- break;
529
- default:
530
- set_end_rule(els, "occurences_count");
531
- set_value(els, "occurences_count", data[1]);
532
-
533
- break;
534
- }
535
-
536
- set_value(els, "repeat", code[0]);
537
- //e.checked = true;
538
-
539
- var node = scheduler.form_blocks["recurring"]._get_form_node(els, "repeat", code[0]);
540
- if(node.nodeName == "SELECT" && node.onchange){
541
- node.onchange();
542
- }else if(node.onclick){
543
- node.onclick();
544
- }
545
- }
546
- function activate(els, mode){
547
-
548
- }
549
- scheduler.form_blocks["recurring"]._set_repeat_code = set_repeat_code;
550
-
551
- for (var i = 0; i < top.elements.length; i++) {
552
- var el = top.elements[i];
553
- switch (el.name) {
554
- case "repeat":
555
- if(el.nodeName == "SELECT"){
556
- el.onchange = change_current_view;
557
- }else{
558
- el.onclick = change_current_view;
559
- }
560
-
561
-
562
- break;
563
- }
564
- }
565
- scheduler._lightbox._rec_init_done = true;
566
- },
567
- set_value:function(node, value, ev) {
568
- var rf = scheduler.form_blocks["recurring"];
569
- if (!scheduler._lightbox._rec_init_done)
570
- rf._init_set_value(node, value, ev);
571
- node.open = !ev.rec_type;
572
-
573
- node.blocked = this._is_modified_occurence(ev);
574
-
575
- var ds = rf._ds;
576
- ds.start = ev.start_date;
577
- ds.end = ev._end_date;
578
-
579
- rf._toggle_block();
580
-
581
- if (value)
582
- rf._set_repeat_code(value, ds);
583
- },
584
- get_value:function(node, ev) {
585
- if (node.open) {
586
- var ds = scheduler.form_blocks["recurring"]._ds;
587
- var actual_dates = {};
588
- this.formSection('time').getValue(actual_dates);
589
- ds.start = actual_dates.start_date;
590
- ev.rec_type = scheduler.form_blocks["recurring"]._get_repeat_code(ds);
591
- if (ds._start) {
592
- ev.start_date = new Date(ds.start);
593
- ev._start_date = new Date(ds.start);
594
- ds._start = false;
595
- } else
596
- ev._start_date = null;
597
-
598
- ev._end_date = ds.end;
599
- ev.rec_pattern = ev.rec_type.split("#")[0];
600
- } else {
601
- ev.rec_type = ev.rec_pattern = "";
602
- ev._end_date = ev.end_date;
603
- }
604
- return ev.rec_type;
605
- },
606
- _get_button: function(){
607
- var node = scheduler.formSection("recurring").header;
608
- return node.firstChild.firstChild;
609
- },
610
- _get_form: function(){
611
- return scheduler.formSection("recurring").node;
612
- },
613
- open:function(){
614
- var block = scheduler.form_blocks.recurring;
615
-
616
- var cont = block._get_form();
617
- if(!cont.open)
618
- block._toggle_block();
619
- },
620
- close: function(){
621
- var block = scheduler.form_blocks.recurring;
622
-
623
- var cont = block._get_form();
624
-
625
- if(cont.open)
626
- block._toggle_block();
627
- },
628
- _toggle_block: function(){
629
- var block = scheduler.form_blocks.recurring;
630
-
631
- var cont = block._get_form(),
632
- el = block._get_button();
633
- if (!cont.open && !cont.blocked) {
634
- cont.style.height = "auto";//reset to default value
635
- if(el){
636
- el.style.backgroundPosition = "-5px 0px";
637
- el.nextSibling.innerHTML = scheduler.locale.labels.button_recurring_open;
638
- }
639
- } else {
640
- cont.style.height = "0px";
641
- if(el){
642
- el.style.backgroundPosition = "-5px 20px";
643
- el.nextSibling.innerHTML = scheduler.locale.labels.button_recurring;
644
- }
645
- }
646
- cont.open = !cont.open;
647
-
648
- scheduler.setLightboxSize();
649
- },
650
- focus:function(node) {
651
- },
652
- button_click:function(index, el, section, cont) {
653
- var block = scheduler.form_blocks.recurring;
654
- var cont = block._get_form();
655
- if (!cont.blocked)
656
- scheduler.form_blocks.recurring._toggle_block();
657
- }
658
- };
659
-
660
-
661
- //problem may occur if we will have two repeating events in the same moment of time
662
- scheduler._rec_markers = {};
663
- scheduler._rec_markers_pull = {};
664
- scheduler._add_rec_marker = function(ev, time) {
665
- ev._pid_time = time;
666
- this._rec_markers[ev.id] = ev;
667
- if (!this._rec_markers_pull[ev.event_pid]) this._rec_markers_pull[ev.event_pid] = {};
668
- this._rec_markers_pull[ev.event_pid][time] = ev;
669
- };
670
- scheduler._get_rec_marker = function(time, id) {
671
- var ch = this._rec_markers_pull[id];
672
- if (ch) return ch[time];
673
- return null;
674
- };
675
- scheduler._get_rec_markers = function(id) {
676
- return (this._rec_markers_pull[id] || []);
677
- };
678
-
679
- function clearMilliseconds(date){
680
- // return date;
681
- return new Date(
682
- date.getFullYear(),
683
- date.getMonth(),
684
- date.getDate(),
685
- date.getHours(),
686
- date.getMinutes(),
687
- date.getSeconds(),
688
- 0
689
- );
690
- }
691
-
692
- scheduler._rec_temp = [];
693
- (function() {
694
- var old_add_event = scheduler.addEvent;
695
- scheduler.addEvent = function(start_date, end_date, text, id, extra_data) {
696
- var ev_id = old_add_event.apply(this, arguments);
697
-
698
- if (ev_id && scheduler.getEvent(ev_id)) {
699
- var ev = scheduler.getEvent(ev_id);
700
-
701
- if(ev.start_date){
702
- ev.start_date = clearMilliseconds(ev.start_date);
703
- }
704
- if(ev.end_date){
705
- ev.end_date = clearMilliseconds(ev.end_date);
706
- }
707
- if (this._is_modified_occurence(ev))
708
- scheduler._add_rec_marker(ev, ev.event_length * 1000);
709
- if (ev.rec_type)
710
- ev.rec_pattern = ev.rec_type.split("#")[0];
711
- }
712
- return ev_id;
713
- };
714
- })();
715
-
716
- scheduler.attachEvent("onEventIdChange", function(id, new_id) {
717
- if (this._ignore_call) return;
718
- this._ignore_call = true;
719
-
720
- if(scheduler._rec_markers[id]){
721
- //important for for correct work of scheduler.getEvents(from, to) and collision detection
722
- scheduler._rec_markers[new_id] = scheduler._rec_markers[id];
723
- delete scheduler._rec_markers[id];
724
- }
725
-
726
- if(scheduler._rec_markers_pull[id]){
727
- scheduler._rec_markers_pull[new_id] = scheduler._rec_markers_pull[id];
728
- delete scheduler._rec_markers_pull[id];
729
- }
730
-
731
- for (var i = 0; i < this._rec_temp.length; i++) {
732
- var tev = this._rec_temp[i];
733
- if (tev.event_pid == id) {
734
- tev.event_pid = new_id;
735
- this.changeEventId(tev.id, new_id + "#" + tev.id.split("#")[1]);
736
- }
737
- }
738
-
739
- for(var i in this._rec_markers){
740
- var tev = this._rec_markers[i];
741
- if(tev.event_pid == id){
742
- tev.event_pid = new_id;
743
- tev._pid_changed = true;
744
- }
745
- }
746
-
747
- var el = scheduler._rec_markers[new_id];
748
- if(el && el._pid_changed) {
749
- delete el._pid_changed;
750
- setTimeout(function() {
751
- scheduler.callEvent("onEventChanged", [new_id, scheduler.getEvent(new_id)]);
752
- }, 1);
753
- }
754
-
755
- delete this._ignore_call;
756
- });
757
- scheduler.attachEvent("onConfirmedBeforeEventDelete", function(id) {
758
- var ev = this.getEvent(id);
759
- if (this._is_virtual_event(id) || (this._is_modified_occurence(ev) && ev.rec_type && ev.rec_type != 'none')) {
760
- id = id.split("#");
761
- var nid = this.uid();
762
- var tid = (id[1]) ? id[1] : Math.round(ev._pid_time / 1000);
763
-
764
- var nev = this._copy_event(ev);
765
- nev.id = nid;
766
- nev.event_pid = ev.event_pid || id[0];
767
- var timestamp = tid;
768
- nev.event_length = timestamp;
769
- nev.rec_type = nev.rec_pattern = "none";
770
- this.addEvent(nev);
771
-
772
- this._add_rec_marker(nev, timestamp * 1000);
773
- } else {
774
- if (ev.rec_type && this._lightbox_id)
775
- this._roll_back_dates(ev);
776
- var sub = this._get_rec_markers(id);
777
- for (var i in sub) {
778
- if (sub.hasOwnProperty(i)) {
779
- id = sub[i].id;
780
- if (this.getEvent(id))
781
- this.deleteEvent(id, true);
782
- }
783
- }
784
- }
785
- return true;
786
- });
787
- scheduler.attachEvent("onEventDeleted", function(id, ev){
788
- if(!this._is_virtual_event(id) && this._is_modified_occurence(ev)){
789
- if(!scheduler._events[id]){
790
- ev.rec_type = ev.rec_pattern = "none";
791
- this.setEvent(id, ev);
792
- }
793
- }
794
- });
795
- scheduler.attachEvent("onEventChanged", function(id, event) {
796
- if (this._loading) return true;
797
-
798
- var ev = this.getEvent(id);
799
-
800
- if (this._is_virtual_event(id)) {
801
- var id = id.split("#");
802
- var nid = this.uid();
803
- this._not_render = true;
804
-
805
- var nev = this._copy_event(event);
806
- nev.id = nid;
807
- nev.event_pid = id[0];
808
- var timestamp = id[1];
809
- nev.event_length = timestamp;
810
- nev.rec_type = nev.rec_pattern = "";
811
-
812
- this._add_rec_marker(nev, timestamp * 1000);
813
- this.addEvent(nev);
814
-
815
- this._not_render = false;
816
-
817
- } else {
818
- if(ev.start_date){
819
- ev.start_date = clearMilliseconds(ev.start_date);
820
- }
821
- if(ev.end_date){
822
- ev.end_date = clearMilliseconds(ev.end_date);
823
- }
824
-
825
- if (ev.rec_type && this._lightbox_id){
826
- this._roll_back_dates(ev);
827
- }
828
- var sub = this._get_rec_markers(id);
829
- for (var i in sub) {
830
- if (sub.hasOwnProperty(i)) {
831
- delete this._rec_markers[sub[i].id];
832
- this.deleteEvent(sub[i].id, true);
833
- }
834
- }
835
- delete this._rec_markers_pull[id];
836
-
837
- // it's possible that after editing event is no longer exists, in such case we need to remove _select_id flag
838
- var isEventFound = false;
839
- for (var k = 0; k < this._rendered.length; k++) {
840
- if (this._rendered[k].getAttribute('event_id') == id)
841
- isEventFound = true;
842
- }
843
- if (!isEventFound)
844
- this._select_id = null;
845
- }
846
- return true;
847
- });
848
- scheduler.attachEvent("onEventAdded", function(id) {
849
- if (!this._loading) {
850
- var ev = this.getEvent(id);
851
- if (ev.rec_type && !ev.event_length){
852
- this._roll_back_dates(ev);
853
- }
854
- }
855
- return true;
856
- });
857
- scheduler.attachEvent("onEventSave", function(id, data, is_new_event) {
858
- var ev = this.getEvent(id);
859
- if (!ev.rec_type && data.rec_type && !this._is_virtual_event(id))
860
- this._select_id = null;
861
- return true;
862
- });
863
- scheduler.attachEvent("onEventCreated", function(id) {
864
- var ev = this.getEvent(id);
865
- if (!ev.rec_type)
866
- ev.rec_type = ev.rec_pattern = ev.event_length = ev.event_pid = "";
867
- return true;
868
- });
869
- scheduler.attachEvent("onEventCancel", function(id) {
870
- var ev = this.getEvent(id);
871
- if (ev.rec_type) {
872
- this._roll_back_dates(ev);
873
- // a bit expensive, but we need to be sure that event re-rendered, because view can be corrupted by resize , during edit process
874
- this.render_view_data();
875
- }
876
- });
877
- scheduler._roll_back_dates = function(ev) {
878
- if(ev.start_date){
879
- ev.start_date = clearMilliseconds(ev.start_date);
880
- }
881
- if(ev.end_date){
882
- ev.end_date = clearMilliseconds(ev.end_date);
883
- }
884
- ev.event_length = Math.round((ev.end_date.valueOf() - ev.start_date.valueOf()) / 1000);
885
- ev.end_date = ev._end_date;
886
- if (ev._start_date) {
887
- ev.start_date.setMonth(0);
888
- ev.start_date.setDate(ev._start_date.getDate());
889
- ev.start_date.setMonth(ev._start_date.getMonth());
890
- ev.start_date.setFullYear(ev._start_date.getFullYear());
891
-
892
- }
893
- };
894
-
895
- scheduler._is_virtual_event = function(id){
896
- return id.toString().indexOf("#") != -1;
897
- };
898
- scheduler._is_modified_occurence = function(ev){
899
- return (ev.event_pid && ev.event_pid != "0");
900
- };
901
-
902
- scheduler._validId = function(id) {
903
- return !this._is_virtual_event(id);
904
- };
905
-
906
- scheduler.showLightbox_rec = scheduler.showLightbox;
907
- scheduler.showLightbox = function(id) {
908
- var locale = this.locale;
909
- var c = scheduler.config.lightbox_recurring;
910
- var ev = this.getEvent(id);
911
- var pid = ev.event_pid;
912
- var isVirtual = this._is_virtual_event(id);
913
- if (isVirtual)
914
- pid = id.split("#")[0];
915
-
916
- // show series
917
- var showSeries = function(id) {
918
- var event = scheduler.getEvent(id);
919
- event._end_date = event.end_date;
920
- event.end_date = new Date(event.start_date.valueOf() + event.event_length * 1000);
921
- return scheduler.showLightbox_rec(id); // editing series
922
- };
923
-
924
- if ( (pid || pid*1 === 0) && ev.rec_type) {
925
- // direct API call on series id
926
- return showSeries(id);
927
- }
928
- if ( !pid || pid === '0' || ( (!locale.labels.confirm_recurring || c == 'instance') || (c == 'series' && !isVirtual)) ) {
929
- // editing instance or non recurring event
930
- return this.showLightbox_rec(id);
931
- }
932
- if (c == 'ask') {
933
- var that = this;
934
- dhtmlx.modalbox({
935
- text: locale.labels.confirm_recurring,
936
- title: locale.labels.title_confirm_recurring,
937
- width: "500px",
938
- position: "middle",
939
- buttons:[locale.labels.button_edit_series, locale.labels.button_edit_occurrence, locale.labels.icon_cancel],
940
- callback: function(index) {
941
- switch(+index) {
942
- case 0:
943
- return showSeries(pid);
944
- case 1:
945
- return that.showLightbox_rec(id);
946
- case 2:
947
- return;
948
- }
949
- }
950
- });
951
- } else {
952
- showSeries(pid);
953
- }
954
- };
955
-
956
-
957
- scheduler.get_visible_events_rec = scheduler.get_visible_events;
958
- scheduler.get_visible_events = function(only_timed) {
959
- for (var i = 0; i < this._rec_temp.length; i++)
960
- delete this._events[this._rec_temp[i].id];
961
- this._rec_temp = [];
962
-
963
- var stack = this.get_visible_events_rec(only_timed);
964
- var out = [];
965
- for (var i = 0; i < stack.length; i++) {
966
- if (stack[i].rec_type) {
967
- //deleted element of serie
968
- if (stack[i].rec_pattern != "none")
969
- this.repeat_date(stack[i], out);
970
- }
971
- else out.push(stack[i]);
972
- }
973
- return out;
974
- };
975
-
976
-
977
- (function() {
978
- var old = scheduler.isOneDayEvent;
979
- scheduler.isOneDayEvent = function(ev) {
980
- if (ev.rec_type) return true;
981
- return old.call(this, ev);
982
- };
983
- var old_update_event = scheduler.updateEvent;
984
- scheduler.updateEvent = function(id) {
985
- var ev = scheduler.getEvent(id);
986
- if(ev && ev.rec_type){
987
- //rec_type can be changed without the lightbox,
988
- // make sure rec_pattern updated as well
989
- ev.rec_pattern = (ev.rec_type || "").split("#")[0];
990
- }
991
- if (ev && ev.rec_type && !this._is_virtual_event(id)) {
992
- scheduler.update_view();
993
- } else {
994
- old_update_event.call(this, id);
995
- }
996
- };
997
- })();
998
-
999
- scheduler.transponse_size = {
1000
- day:1, week:7, month:1, year:12
1001
- };
1002
- scheduler.date.day_week = function(sd, day, week) {
1003
- sd.setDate(1);
1004
- var originalMonth = scheduler.date.month_start(new Date(sd));
1005
- week = (week - 1) * 7;
1006
- var cday = sd.getDay();
1007
- var nday = day * 1 + week - cday + 1;
1008
- sd.setDate(nday <= week ? (nday + 7) : nday);
1009
- var newMonth = scheduler.date.month_start(new Date(sd));
1010
- if(originalMonth.valueOf() !== newMonth.valueOf()){
1011
- return false;
1012
- }
1013
- return true;
1014
- };
1015
- scheduler.transpose_day_week = function(sd, list, cor, size, cor2) {
1016
- var cday = (sd.getDay() || (scheduler.config.start_on_monday ? 7 : 0)) - cor;
1017
- for (var i = 0; i < list.length; i++) {
1018
- if (list[i] > cday)
1019
- return sd.setDate(sd.getDate() + list[i] * 1 - cday - (size ? cor : cor2));
1020
- }
1021
- this.transpose_day_week(sd, list, cor + size, null, cor);
1022
- };
1023
- scheduler.transpose_type = function(type) {
1024
- var transposeRecurring = "transpose_" + type;
1025
- if (!this.date[transposeRecurring]) {
1026
- var recurringParts = type.split("_");
1027
- var dayDurationMs = 60 * 60 * 24 * 1000;
1028
- var addRecurring = "add_" + type;
1029
- var recurringStepDays = this.transponse_size[recurringParts[0]] * recurringParts[1];
1030
-
1031
- if (recurringParts[0] == "day" || recurringParts[0] == "week") {
1032
- var weekDays = null;
1033
- if (recurringParts[4]) {
1034
- weekDays = recurringParts[4].split(",");
1035
- if (scheduler.config.start_on_monday) {
1036
- for (var i = 0; i < weekDays.length; i++)
1037
- weekDays[i] = (weekDays[i] * 1) || 7;
1038
- weekDays.sort();
1039
- }
1040
- }
1041
-
1042
- this.date[transposeRecurring] = function(nd, td) {
1043
- var delta = Math.floor((td.valueOf() - nd.valueOf()) / (dayDurationMs * recurringStepDays));
1044
- if (delta > 0)
1045
- nd.setDate(nd.getDate() + delta * recurringStepDays);
1046
- if (weekDays)
1047
- scheduler.transpose_day_week(nd, weekDays, 1, recurringStepDays);
1048
-
1049
- return nd;
1050
- };
1051
- this.date[addRecurring] = function(sd, inc) {
1052
- var nd = new Date(sd.valueOf());
1053
- if (weekDays) {
1054
- for (var count = 0; count < inc; count++)
1055
- scheduler.transpose_day_week(nd, weekDays, 0, recurringStepDays);
1056
- } else
1057
- nd.setDate(nd.getDate() + inc * recurringStepDays);
1058
-
1059
- return nd;
1060
- };
1061
- }
1062
- else if (recurringParts[0] == "month" || recurringParts[0] == "year") {
1063
- this.date[transposeRecurring] = function(nd, td, seriesInstance) {
1064
- var delta = Math.ceil(((td.getFullYear() * 12 + td.getMonth() * 1 + 1) - (nd.getFullYear() * 12 + nd.getMonth() * 1 + 1)) / (recurringStepDays) - 1);
1065
-
1066
- if (delta >= 0){
1067
- nd.setDate(1);
1068
- nd.setMonth(nd.getMonth() + delta * recurringStepDays);
1069
- }
1070
-
1071
- return scheduler.date[addRecurring](nd, 0, seriesInstance);
1072
- //if (str[3]){
1073
- // scheduler.date.day_week(nd, str[2], str[3]);
1074
- //}
1075
- };
1076
- this.date[addRecurring] = function(sd, inc, seriesInstance, currentCount) {
1077
- if(!currentCount){
1078
- currentCount = 1;
1079
- }else{
1080
- currentCount++;
1081
- }
1082
- var maxCount = 12;
1083
- if(currentCount > maxCount){
1084
- return null;
1085
- }
1086
-
1087
- var nd = new Date(sd.valueOf());
1088
- nd.setDate(1);
1089
-
1090
-
1091
- nd.setMonth(nd.getMonth() + inc * recurringStepDays);
1092
- var origMonth = nd.getMonth();
1093
- var origYear = nd.getFullYear();
1094
- nd.setDate(seriesInstance.start_date.getDate());
1095
- if (recurringParts[3]){
1096
- scheduler.date.day_week(nd, recurringParts[2], recurringParts[3]);
1097
- }
1098
-
1099
- var correctOverflowInstances = scheduler.config.recurring_overflow_instances;
1100
- if(nd.getMonth() != origMonth && correctOverflowInstances != "none"){
1101
- // no such day in a month
1102
- if(correctOverflowInstances === "lastDay"){
1103
- // return either last day of the month
1104
- nd = new Date(origYear, origMonth + 1, 0, nd.getHours(), nd.getMinutes(), nd.getSeconds(), nd.getMilliseconds());
1105
- }else{
1106
- // or go to the next instance
1107
- nd = scheduler.date[addRecurring](new Date(origYear, origMonth + 1, 0), inc||1, seriesInstance, currentCount);
1108
- // if next instance is not possible (e.g. 'repeat on 40th day of the month') null will be returned
1109
- }
1110
- }
1111
- return nd;
1112
- };
1113
- }
1114
- }
1115
- };
1116
- scheduler.repeat_date = function(ev, stack, non_render, from, to, maxCount) {
1117
-
1118
- from = from || this._min_date;
1119
- to = to || this._max_date;
1120
- var max = maxCount || -1;
1121
- var td = new Date(ev.start_date.valueOf());
1122
-
1123
- var startHour = td.getHours();
1124
-
1125
- var visibleCount = 0;
1126
-
1127
- if (!ev.rec_pattern && ev.rec_type)
1128
- ev.rec_pattern = ev.rec_type.split("#")[0];
1129
-
1130
- this.transpose_type(ev.rec_pattern);
1131
- td = scheduler.date["transpose_" + ev.rec_pattern](td, from, ev);
1132
- while ( td && (
1133
- td < ev.start_date ||
1134
- scheduler._fix_daylight_saving_date(td,from,ev,td,new Date(td.valueOf() + ev.event_length * 1000)).valueOf() <= from.valueOf() ||
1135
- td.valueOf() + ev.event_length * 1000 <= from.valueOf())){
1136
- td = this.date["add_" + ev.rec_pattern](td, 1, ev);
1137
-
1138
- }
1139
- while (td && (td < to && td < ev.end_date && (max < 0 || visibleCount < max))) {
1140
- td.setHours(startHour);
1141
-
1142
- var timestamp = (scheduler.config.occurrence_timestamp_in_utc) ? Date.UTC(td.getFullYear(), td.getMonth(), td.getDate(), td.getHours(), td.getMinutes(), td.getSeconds()) : td.valueOf();
1143
- var ch = this._get_rec_marker(timestamp, ev.id);
1144
- if (!ch) { // unmodified element of series
1145
- var ted = new Date(td.valueOf() + ev.event_length * 1000);
1146
- var copy = this._copy_event(ev);
1147
- //copy._timed = ev._timed;
1148
- copy.text = ev.text;
1149
- copy.start_date = td;
1150
- copy.event_pid = ev.id;
1151
- copy.id = ev.id + "#" + Math.round(timestamp / 1000);
1152
- copy.end_date = ted;
1153
-
1154
- copy.end_date = scheduler._fix_daylight_saving_date(copy.start_date, copy.end_date, ev, td, copy.end_date);
1155
-
1156
- copy._timed = this.isOneDayEvent(copy);
1157
-
1158
- if (!copy._timed && !this._table_view && !this.config.multi_day) return;
1159
- stack.push(copy);
1160
-
1161
- if (!non_render) {
1162
- this._events[copy.id] = copy;
1163
- this._rec_temp.push(copy);
1164
- }
1165
-
1166
- visibleCount++;
1167
-
1168
- } else
1169
- if (non_render){
1170
- if(ch.rec_type != "none"){
1171
- visibleCount++;
1172
- }
1173
- stack.push(ch);
1174
- }
1175
-
1176
- td = this.date["add_" + ev.rec_pattern](td, 1, ev);
1177
- // if(!scheduler.date["validate_add_" + ev.rec_pattern](td, 1, ev.rec_pattern)){
1178
- /// alert("detect add")
1179
- // }
1180
- }
1181
- };
1182
- scheduler._fix_daylight_saving_date = function(start_date, end_date, ev, counter, default_date) {
1183
- var shift = start_date.getTimezoneOffset() - end_date.getTimezoneOffset();
1184
- if (shift) {
1185
- if (shift > 0) {
1186
- // e.g. 24h -> 23h
1187
- return new Date(counter.valueOf() + ev.event_length * 1000 - shift * 60 * 1000);
1188
- }
1189
- else {
1190
- // e.g. 24h -> 25h
1191
- return new Date(end_date.valueOf() - shift * 60 * 1000);
1192
- }
1193
- }
1194
- return new Date(default_date.valueOf());
1195
- };
1196
- scheduler.getRecDates = function(id, max) {
1197
- var ev = typeof id == "object" ? id : scheduler.getEvent(id);
1198
- var recurrings = [];
1199
- max = max || 100;
1200
-
1201
- if (!ev.rec_type) {
1202
- return [
1203
- { start_date: ev.start_date, end_date: ev.end_date }
1204
- ];
1205
- }
1206
- if (ev.rec_type == "none") {
1207
- return [];
1208
- }
1209
-
1210
- scheduler.repeat_date(ev, recurrings, true, ev.start_date, ev.end_date, max);
1211
-
1212
- var result = [];
1213
- for(var i = 0; i < recurrings.length; i++){
1214
- if(recurrings[i].rec_type != "none"){
1215
- result.push({start_date: recurrings[i].start_date, end_date: recurrings[i].end_date});
1216
- }
1217
- }
1218
-
1219
- return result;
1220
- };
1221
- scheduler.getEvents = function(from, to) {
1222
- var result = [];
1223
- for (var a in this._events) {
1224
- var ev = this._events[a];
1225
- if (ev && ev.start_date < to && ev.end_date > from) {
1226
- if (ev.rec_pattern) {
1227
- if (ev.rec_pattern == "none") continue;
1228
- var sev = [];
1229
- this.repeat_date(ev, sev, true, from, to);
1230
- for (var i = 0; i < sev.length; i++) {
1231
- // if event is in rec_markers then it will be checked by himself, here need to skip it
1232
- if (!sev[i].rec_pattern && sev[i].start_date < to && sev[i].end_date > from && !this._rec_markers[sev[i].id]) {
1233
- result.push(sev[i]);
1234
- }
1235
- }
1236
- } else if (!this._is_virtual_event(ev.id)) { // if it's virtual event we can skip it
1237
- result.push(ev);
1238
- }
1239
- }
1240
- }
1241
- return result;
1242
- };
1243
-
1244
- scheduler.config.repeat_date = "%m.%d.%Y";
1245
- scheduler.config.lightbox.sections = [
1246
- {name:"description", map_to:"text", type:"textarea" , focus:true},
1247
- {name:"recurring", type:"recurring", map_to:"rec_type", button:"recurring"},
1248
- {name:"time", height:72, type:"time", map_to:"auto"}
1249
- ];
1250
-
1251
-
1252
- //drop secondary attributes
1253
- scheduler._copy_dummy = function(ev) {
1254
- var start_date = new Date(this.start_date);
1255
- var end_date = new Date(this.end_date);
1256
- this.start_date = start_date;
1257
- this.end_date = end_date;
1258
- this.event_length = this.event_pid = this.rec_pattern = this.rec_type = null;
1259
- };
1260
-
1261
- scheduler.config.include_end_by = false;
1262
- scheduler.config.lightbox_recurring = 'ask'; // series, instance
1263
-
1264
- scheduler.attachEvent("onClearAll", function(){
1265
- scheduler._rec_markers = {}; //clear recurring events data
1266
- scheduler._rec_markers_pull = {};
1267
- scheduler._rec_temp = [];
1268
- });
1269
- });