dhtmlx-scheduler 5.3.14 → 6.0.2

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