dhtmlx-scheduler 5.3.12 → 6.0.0

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