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,1095 +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.limit_start = null;
14
- scheduler.config.limit_end = null;
15
- scheduler.config.limit_view = false;
16
- scheduler.config.check_limits = true;
17
- scheduler.config.mark_now = true;
18
- scheduler.config.display_marked_timespans = true;
19
-
20
- scheduler._temp_limit_scope = function(){
21
- var before = null;
22
- var dhx_time_block = "dhx_time_block";
23
- var default_timespan_type = "default";
24
- var fix_options = function(options, days, zones) {
25
- if (days instanceof Date && zones instanceof Date) {
26
- options.start_date = days;
27
- options.end_date = zones;
28
- } else {
29
- options.days = days;
30
- options.zones = zones;
31
- }
32
- return options;
33
- };
34
- var get_resulting_options = function(days, zones, sections) {
35
- var options = (typeof days == "object") ? days : { days: days };
36
- options.type = dhx_time_block;
37
- options.css = "";
38
- if (zones) {
39
- if (sections)
40
- options.sections = sections;
41
- options = fix_options(options, days, zones);
42
- }
43
- return options;
44
- };
45
- scheduler.blockTime = function(days, zones, sections){
46
- var options = get_resulting_options(days, zones, sections);
47
- return scheduler.addMarkedTimespan(options);
48
- };
49
- scheduler.unblockTime = function(days, zones, sections) {
50
- zones = zones || "fullday";
51
- var options = get_resulting_options(days, zones, sections);
52
- return scheduler.deleteMarkedTimespan(options);
53
- };
54
- scheduler.attachEvent("onBeforeViewChange",function(om,od,nm,nd){
55
-
56
- function isBlocked(date, mode){
57
- var limit_start = scheduler.config.limit_start,
58
- limit_end = scheduler.config.limit_end,
59
- date_end = scheduler.date.add(date,1,mode);
60
-
61
- return (date.valueOf() > limit_end.valueOf() || date_end <= limit_start.valueOf());
62
- }
63
-
64
- if (scheduler.config.limit_view){
65
- nd = nd||od; nm = nm||om;
66
- if (isBlocked(nd, nm) && !(od.valueOf() == nd.valueOf())){
67
- setTimeout(function(){
68
- var resetDate = !isBlocked(od, nm) ? od : scheduler.config.limit_start;
69
-
70
- scheduler.setCurrentView(!isBlocked(resetDate, nm) ? resetDate : null, nm);
71
- },1);
72
- return false;
73
- }
74
- }
75
- return true;
76
- });
77
- scheduler.checkInMarkedTimespan = function(ev, timespan_type, on_overlap){
78
- timespan_type = timespan_type || default_timespan_type;
79
-
80
- var res = true;
81
- var temp_start_date = new Date(ev.start_date.valueOf());
82
- var temp_end_date = scheduler.date.add(temp_start_date, 1, "day");
83
- var timespans = scheduler._marked_timespans;
84
- for (; temp_start_date < ev.end_date; temp_start_date = scheduler.date.date_part(temp_end_date), temp_end_date = scheduler.date.add(temp_start_date, 1, "day") ) {
85
- var day_value = +scheduler.date.date_part( new Date(temp_start_date) ); // the first part of event not necessarily contains only date part
86
- var day_index = temp_start_date.getDay();
87
-
88
- var zones = getZones(ev, timespans, day_index, day_value, timespan_type);
89
- if (zones){
90
- for (var i = 0; i < zones.length; i+=2) {
91
-
92
- // they may change for new event if it passes limit zone
93
- var sm = scheduler._get_zone_minutes(temp_start_date);
94
- var em = ( ev.end_date>temp_end_date || ev.end_date.getDate() != temp_start_date.getDate() ) ? 1440 : scheduler._get_zone_minutes(ev.end_date);
95
-
96
- var sz = zones[i];
97
- var ez = zones[i+1];
98
- if (sz<em && ez>sm) {
99
- if(typeof on_overlap == "function"){
100
- //handler allows to cancel overlapping
101
- //actually needed only to keep default behavior of limits
102
- res = on_overlap(ev, sm, em, sz, ez);//event object, event start/end minutes in 'zones' format, zone start/end minutes
103
- }else{
104
- res = false;
105
- }
106
- if(!res)
107
- break;
108
- }
109
- }
110
- }
111
- }
112
- return !res;
113
- };
114
- var blocker = scheduler.checkLimitViolation = function(event){
115
- if(!event)
116
- return true;
117
- if (!scheduler.config.check_limits)
118
- return true;
119
- var s = scheduler;
120
- var c = s.config;
121
- var evs = [];
122
- if (event.rec_type) {
123
- var dates = scheduler.getRecDates(event);
124
- for(var i=0; i < dates.length; i++){
125
- var ev = scheduler._copy_event(event);
126
- scheduler._lame_copy(ev, dates[i]);
127
- evs.push(ev);
128
- }
129
-
130
- } else {
131
- evs = [event];
132
- }
133
-
134
- var complete_res = true;
135
- for (var p=0; p<evs.length; p++) {
136
- var res = true;
137
- var ev = evs[p];
138
- // Event could have old _timed property (e.g. we are creating event with DND on timeline view and crossed day)
139
- ev._timed = scheduler.isOneDayEvent(ev);
140
-
141
- res = (c.limit_start && c.limit_end) ? (ev.start_date.valueOf() >= c.limit_start.valueOf() && ev.end_date.valueOf() <= c.limit_end.valueOf()) : true;
142
- if (res){
143
- res = !scheduler.checkInMarkedTimespan(ev, dhx_time_block, function(ev, sm, em, sz, ez){
144
- //try crop event to allow placing
145
- var allow = true;
146
- if (sm<=ez && sm >=sz){
147
- if (ez == 24*60 || em<ez){
148
- allow = false;
149
- }
150
- if(ev._timed && s._drag_id && s._drag_mode == "new-size"){
151
- ev.start_date.setHours(0);
152
- ev.start_date.setMinutes(ez);
153
- }
154
- else {
155
- allow = false;
156
- }
157
- }
158
- if ((em>=sz && em<ez) || (sm < sz && em > ez)){
159
- if(ev._timed && s._drag_id && s._drag_mode == "new-size"){
160
- ev.end_date.setHours(0);
161
- ev.end_date.setMinutes(sz);
162
- }
163
- else {
164
- allow = false;
165
- }
166
- }
167
- return allow;
168
- });
169
- }
170
- if (!res) {
171
- res = (s.checkEvent("onLimitViolation")) ? s.callEvent("onLimitViolation",[ev.id, ev]) : res;
172
- }
173
- complete_res = complete_res && res;
174
- }
175
- if(!complete_res){
176
- s._drag_id = null;
177
- s._drag_mode = null;
178
- }
179
- return complete_res;
180
-
181
-
182
- };
183
- scheduler._get_blocked_zones = function(timespans, property, day_index, day_value, timespan_type){
184
- var zones =[];
185
- if (timespans && timespans[property]) {
186
- var timeline_zones = timespans[property];
187
- var blocked_timeline_zones = this._get_relevant_blocked_zones(day_index, day_value, timeline_zones, timespan_type);
188
- for (var i=0; i<blocked_timeline_zones.length; i++) {
189
- zones = this._add_timespan_zones(zones, blocked_timeline_zones[i].zones);
190
- }
191
- }
192
- return zones;
193
- };
194
- scheduler._get_relevant_blocked_zones = function(day_index, day_value, zones, timespan_type) {
195
- var relevant_zones = (zones[day_value] && zones[day_value][timespan_type]) ? zones[day_value][timespan_type] :
196
- (zones[day_index] && zones[day_index][timespan_type]) ? zones[day_index][timespan_type] : [];
197
- return relevant_zones;
198
- };
199
- function getZones(ev, timespans, day_index, day_value, timespan_type){
200
- var s = scheduler;
201
- //containers for 'unit' and 'timeline' views, and related 'section_id' properties
202
- var zones = [];
203
- var containers = {
204
- '_props':'map_to',
205
- 'matrix':'y_property'};
206
- //check blocked sections in all units and timelines
207
- for(var container in containers){
208
- var property = containers[container];
209
- if(s[container]){
210
- for(var view in s[container]){
211
- var view_config = s[container][view];
212
- var linker = view_config[property];
213
- if(!ev[linker]) continue;
214
- zones = s._add_timespan_zones(zones,
215
- scheduler._get_blocked_zones(timespans[view], ev[linker], day_index, day_value, timespan_type));
216
- }
217
- }
218
- }
219
- // now need to add day blocks
220
- zones = s._add_timespan_zones(zones, scheduler._get_blocked_zones(timespans, 'global', day_index, day_value, timespan_type));
221
- return zones;
222
- }
223
-
224
- scheduler.attachEvent("onMouseDown", function(classname) {
225
- return !(classname == dhx_time_block);
226
- });
227
- scheduler.attachEvent("onBeforeDrag",function(id){
228
- if (!id) return true;
229
- return blocker(scheduler.getEvent(id));
230
- });
231
- scheduler.attachEvent("onClick", function (event_id, native_event_object){
232
- return blocker(scheduler.getEvent(event_id));
233
- });
234
- scheduler.attachEvent("onBeforeLightbox",function(id){
235
-
236
- var ev = scheduler.getEvent(id);
237
- before = [ev.start_date, ev.end_date];
238
- return blocker(ev);
239
- });
240
- scheduler.attachEvent("onEventSave", function(id, data, is_new_event) {
241
-
242
- //lightbox may not have 'time' section
243
- if(!(data.start_date && data.end_date)){
244
- var ev = scheduler.getEvent(id);
245
- data.start_date = new Date(ev.start_date);
246
- data.end_date = new Date(ev.end_date);
247
- }
248
-
249
- if(data.rec_type){
250
- //_roll_back_dates modifies start_date of recurring event, need to check limits after modification
251
- // use a copy to keep original event unchanged
252
- var data_copy = scheduler._lame_clone(data);
253
- scheduler._roll_back_dates(data_copy);
254
- return blocker(data_copy);
255
- }
256
- return blocker(data);
257
- });
258
- scheduler.attachEvent("onEventAdded",function(id){
259
- if (!id) return true;
260
- var ev = scheduler.getEvent(id);
261
- if (!blocker(ev) && scheduler.config.limit_start && scheduler.config.limit_end) {
262
- //if newly created event is outside of limited time - crop it, leaving only allowed time
263
- if (ev.start_date < scheduler.config.limit_start) {
264
- ev.start_date = new Date(scheduler.config.limit_start);
265
- }
266
- if (ev.start_date.valueOf() >= scheduler.config.limit_end.valueOf()) {
267
- ev.start_date = this.date.add(scheduler.config.limit_end, -1, "day");
268
- }
269
- if (ev.end_date < scheduler.config.limit_start) {
270
- ev.end_date = new Date(scheduler.config.limit_start);
271
- }
272
- if (ev.end_date.valueOf() >= scheduler.config.limit_end.valueOf()) {
273
- ev.end_date = this.date.add(scheduler.config.limit_end, -1, "day");
274
- }
275
- if (ev.start_date.valueOf() >= ev.end_date.valueOf()) {
276
- ev.end_date = this.date.add(ev.start_date, (this.config.event_duration||this.config.time_step), "minute");
277
- }
278
- ev._timed=this.isOneDayEvent(ev);
279
- }
280
- return true;
281
- });
282
- scheduler.attachEvent("onEventChanged",function(id){
283
- if (!id) return true;
284
- var ev = scheduler.getEvent(id);
285
- if (!blocker(ev)){
286
- if (!before) return false;
287
- ev.start_date = before[0];
288
- ev.end_date = before[1];
289
- ev._timed=this.isOneDayEvent(ev);
290
- }
291
- return true;
292
- });
293
- scheduler.attachEvent("onBeforeEventChanged",function(ev, native_object, is_new){
294
- return blocker(ev);
295
- });
296
- scheduler.attachEvent("onBeforeEventCreated", function(ev) { // native event
297
- var start_date = scheduler.getActionData(ev).date;
298
- var event = {
299
- _timed: true,
300
- start_date: start_date,
301
- end_date: scheduler.date.add(start_date, scheduler.config.time_step, "minute")
302
- };
303
- return blocker(event);
304
- });
305
-
306
- scheduler.attachEvent("onViewChange", function(){
307
- scheduler._mark_now();
308
- });
309
-
310
- scheduler.attachEvent("onAfterSchedulerResize", function(){
311
- window.setTimeout(function(){ scheduler._mark_now(); }, 1);
312
- return true;
313
- });
314
-
315
- scheduler.attachEvent("onTemplatesReady", function() {
316
- scheduler._mark_now_timer = window.setInterval(function() {
317
- if(!scheduler._is_initialized())
318
- return;
319
- scheduler._mark_now();
320
- }, 60000);
321
- });
322
- scheduler._mark_now = function(hide) {
323
- // day, week, units views
324
- var dhx_now_time = 'dhx_now_time';
325
- if (!this._els[dhx_now_time]) {
326
- this._els[dhx_now_time] = [];
327
- }
328
- var now = scheduler._currentDate();
329
- var cfg = this.config;
330
- scheduler._remove_mark_now(); // delete previous marks if they exist
331
- if (!hide && cfg.mark_now && now < this._max_date && now > this._min_date && now.getHours() >= cfg.first_hour && now.getHours()<cfg.last_hour) {
332
- var day_index = this.locate_holder_day(now);
333
- this._els[dhx_now_time] = scheduler._append_mark_now(day_index, now);
334
- }
335
- };
336
- scheduler._append_mark_now = function(day_index, now) {
337
- var dhx_now_time = 'dhx_now_time';
338
- var zone_start= scheduler._get_zone_minutes(now);
339
- var options = {
340
- zones: [zone_start, zone_start+1],
341
- css: dhx_now_time,
342
- type: dhx_now_time
343
- };
344
- if (!this._table_view) {
345
- if (this._props && this._props[this._mode]) { // units view
346
- var start_index,
347
- end_index;
348
-
349
- var view = this._props[this._mode];
350
- var units_l = view.size || view.options.length;
351
- if (view.days > 1) {
352
- if(view.size && view.options.length){
353
- day_index = ((view.position+ day_index) / view.options.length) * view.size;
354
- }
355
- start_index = day_index;
356
- end_index = day_index + units_l;
357
- }
358
- else {
359
- start_index = 0;
360
- end_index = start_index + units_l;
361
- }
362
-
363
- var r_divs = [];
364
-
365
- for (var i = start_index; i < end_index; i++) {
366
- var t_day = i; // as each unit is actually considered +1 day
367
- options.days = t_day;
368
- var t_div = scheduler._render_marked_timespan(options, null, t_day)[0];
369
- r_divs.push(t_div);
370
- }
371
- return r_divs;
372
- } else { // day/week views
373
- options.days = day_index;
374
- return scheduler._render_marked_timespan(options, null, day_index);
375
- }
376
- } else {
377
- if (this._mode == "month") {
378
- options.days = +scheduler.date.date_part(now);
379
- return scheduler._render_marked_timespan(options, null, null);
380
- }
381
- }
382
- };
383
- scheduler._remove_mark_now = function() {
384
- var dhx_now_time = 'dhx_now_time';
385
- var els = this._els[dhx_now_time];
386
- for (var i=0; i<els.length; i++) {
387
- var div = els[i];
388
- var parent = div.parentNode;
389
- if (parent) {
390
- parent.removeChild(div);
391
- }
392
- }
393
- this._els[dhx_now_time] = [];
394
- };
395
-
396
- /*
397
- scheduler._marked_timespans = {
398
- "global": {
399
- "0": {
400
- "default": [
401
- { // sunday
402
- zones: [0, 100, 500, 600],
403
- css: "yellow_box",
404
- type: "default",
405
- view: "global",
406
- day: 0
407
- }
408
- ]
409
- }
410
- "112121312": {
411
- "my_special_type": [
412
- {
413
- zones: [600, 900],
414
- type: "block",
415
- css: "some_class",
416
- view: "global",
417
- day: 112121312
418
- },
419
- {}
420
- ]
421
- }
422
- },
423
- "units": {
424
- "5_id": {
425
- "3": {
426
- "special_type": [ {}, {}, {} ],
427
- "another_type": [ {} ]
428
- }
429
- },
430
- "6_id": {
431
- "11212127": {
432
- ...
433
- }
434
- }
435
- }
436
- }
437
- */
438
- scheduler._marked_timespans = { global: {} };
439
-
440
- scheduler._get_zone_minutes = function(date) {
441
- return date.getHours()*60 + date.getMinutes();
442
- };
443
- scheduler._prepare_timespan_options = function(config) { // receives 1 option, returns array of options
444
- var r_configs = []; // resulting configs
445
- var temp_configs = [];
446
-
447
- if (config.days == "fullweek")
448
- config.days = [0,1,2,3,4,5,6];
449
-
450
- if (config.days instanceof Array) {
451
- var t_days = config.days.slice();
452
- for (var i=0; i<t_days.length; i++) {
453
- var cloned_config = scheduler._lame_clone(config);
454
- cloned_config.days = t_days[i];
455
- r_configs.push.apply(r_configs, scheduler._prepare_timespan_options(cloned_config));
456
- }
457
- return r_configs;
458
- }
459
-
460
- if ( !config ||
461
- !((config.start_date && config.end_date && config.end_date > config.start_date) || (config.days !== undefined && config.zones)) && !config.type )
462
- return r_configs; // incorrect config was provided
463
-
464
- var min = 0;
465
- var max = 24*60;
466
- if (config.zones == "fullday")
467
- config.zones = [min, max];
468
- if (config.zones && config.invert_zones) {
469
- config.zones = scheduler.invertZones(config.zones);
470
- }
471
-
472
- config.id = scheduler.uid();
473
- config.css = config.css||"";
474
- config.type = config.type||default_timespan_type;
475
-
476
- var sections = config.sections;
477
- if (sections) {
478
- for (var view_key in sections) {
479
- if (sections.hasOwnProperty(view_key)) {
480
- var ids = sections[view_key];
481
- if (!(ids instanceof Array))
482
- ids = [ids];
483
- for (var i=0; i<ids.length; i++) {
484
- var t_config = scheduler._lame_copy({}, config);
485
- t_config.sections = {};
486
- t_config.sections[view_key] = ids[i];
487
- temp_configs.push(t_config);
488
- }
489
- }
490
- }
491
- } else {
492
- temp_configs.push(config);
493
- }
494
-
495
- for (var k=0; k<temp_configs.length; k++) {
496
- var c_config = temp_configs[k]; // config to be checked
497
-
498
- var start_date = c_config.start_date;
499
- var end_date = c_config.end_date;
500
-
501
- if (start_date && end_date) {
502
- var t_sd = scheduler.date.date_part(new Date(start_date)); // e.g. 05 october
503
- var t_ed= scheduler.date.add(t_sd, 1, "day"); // 06 october, will both be incremented in the loop
504
-
505
- while (t_sd < end_date) {
506
- var t_config = scheduler._lame_copy({}, c_config);
507
- delete t_config.start_date;
508
- delete t_config.end_date;
509
- t_config.days = t_sd.valueOf();
510
- var zone_start = (start_date > t_sd) ? scheduler._get_zone_minutes(start_date) : min;
511
- var zone_end = ( end_date > t_ed || end_date.getDate() != t_sd.getDate() ) ? max : scheduler._get_zone_minutes(end_date);
512
- t_config.zones = [zone_start, zone_end];
513
- r_configs.push(t_config);
514
-
515
- t_sd = t_ed;
516
- t_ed = scheduler.date.add(t_ed, 1, "day");
517
- }
518
- } else {
519
- if (c_config.days instanceof Date)
520
- c_config.days = (scheduler.date.date_part(c_config.days)).valueOf();
521
- c_config.zones = config.zones.slice();
522
- r_configs.push(c_config);
523
- }
524
- }
525
- return r_configs;
526
- };
527
- scheduler._get_dates_by_index = function(index, start, end) {
528
- var dates = [];
529
- start = scheduler.date.date_part(new Date(start||scheduler._min_date));
530
- end = new Date(end||scheduler._max_date);
531
- var start_day = start.getDay();
532
- var delta = (index-start_day >= 0) ? (index-start_day) : (7-start.getDay()+index);
533
- var t_date = scheduler.date.add(start, delta, "day");
534
- for (; t_date < end; t_date = scheduler.date.add(t_date, 1, "week")) {
535
- dates.push(t_date);
536
- }
537
- return dates;
538
- };
539
- scheduler._get_css_classes_by_config = function(config) {
540
- var css_classes = [];
541
- if (config.type == dhx_time_block) {
542
- css_classes.push(dhx_time_block);
543
- if (config.css)
544
- css_classes.push(dhx_time_block+"_reset");
545
- }
546
- css_classes.push("dhx_marked_timespan", config.css);
547
- return css_classes.join(" ");
548
- };
549
- scheduler._get_block_by_config = function(config) {
550
- var block = document.createElement("div");
551
- if (config.html) {
552
- if (typeof config.html == "string")
553
- block.innerHTML = config.html;
554
- else
555
- block.appendChild(config.html);
556
- }
557
- return block;
558
- };
559
- scheduler._render_marked_timespan = function(options, area, day) {
560
- var blocks = []; // resulting block which will be rendered and returned
561
- var c = scheduler.config;
562
- var min_date = this._min_date;
563
- var max_date = this._max_date;
564
- var day_value = false; // if timespan for specific date should be displayed
565
-
566
- if (!c.display_marked_timespans)
567
- return blocks;
568
-
569
- // in case of markTimespan
570
- if (!day && day !== 0) {
571
- if (options.days < 7)
572
- day = options.days;
573
- else {
574
- var date_to_display = new Date(options.days);
575
- day_value = +date_to_display;
576
-
577
- // in case of markTimespan date could be not in the viewing range, need to return
578
- if ( !(+max_date > +date_to_display && +min_date <= +date_to_display) )
579
- return blocks;
580
-
581
- day = date_to_display.getDay();
582
- }
583
-
584
- // convert day default index (Sun - 0, Sat - 6) to index of hourscales (depends on week_start and config.start_on_monday)
585
- var min_day = min_date.getDay();
586
- if (min_day > day) {
587
- day = 7 - (min_day-day);
588
- } else {
589
- day = day - min_day;
590
- }
591
- }
592
- var zones = options.zones;
593
- var css_classes = scheduler._get_css_classes_by_config(options);
594
-
595
- if (scheduler._table_view && scheduler._mode == "month") {
596
- var areas = [];
597
- var days = [];
598
-
599
-
600
- if (!area) {
601
- days = (day_value) ? [day_value] : scheduler._get_dates_by_index(day);
602
- for (var i=0; i < days.length; i++) {
603
- areas.push( this._scales[days[i]] );
604
- }
605
- } else {
606
- areas.push(area);
607
- days.push(day);
608
- }
609
-
610
- for (var i=0; i < areas.length; i++) {
611
- area = areas[i];
612
- day = days[i];
613
-
614
- var sweek = Math.floor((this._correct_shift(day,1)-min_date.valueOf())/(60*60*1000*24*this._cols.length)),
615
- sday = this.locate_holder_day(day, false) % this._cols.length;
616
-
617
- if(this._ignores[sday]) continue;
618
-
619
- var columnNumber = this.config.rtl ? this._colsS.col_length - 1 - sday : sday;
620
-
621
- var block_proto = scheduler._get_block_by_config(options),
622
- height = Math.max(area.offsetHeight - 1, 0), // 1 for bottom border
623
- width = Math.max(area.offsetWidth - 1, 0), // 1 for left border
624
- left = this._colsS[columnNumber],
625
- top = this._colsS.heights[sweek]+(this._colsS.height?(this.xy.month_scale_height+2):2)-1;
626
- block_proto.className = css_classes;
627
- block_proto.style.top = top + "px";
628
- block_proto.style.lineHeight = block_proto.style.height = height + "px";
629
-
630
- for (var k=0; k < zones.length; k+=2) {
631
- var start = zones[i];
632
- var end = zones[i+1];
633
- if (end <= start)
634
- return [];
635
-
636
- var block = block_proto.cloneNode(true);
637
-
638
- block.style.left = (left + Math.round( (start)/(24*60) * width)) + "px";
639
- block.style.width = Math.round( (end-start)/(24*60) * width) + "px";
640
-
641
- area.appendChild(block);
642
- blocks.push(block);
643
- }
644
- }
645
- } else {
646
- var index = day;
647
-
648
- if(this._ignores[this.locate_holder_day(day, false)]) return blocks;
649
-
650
- if (this._props && this._props[this._mode] && options.sections && options.sections[this._mode]) {
651
- var view = this._props[this._mode];
652
- index = view.order[options.sections[this._mode]];
653
-
654
- var inner_index = view.order[options.sections[this._mode]];
655
- if(!(view.days > 1)){
656
- index = inner_index;
657
- if (view.size && (index > view.position+view.size)) {
658
- index = 0;
659
- }
660
- }else{
661
- var units_l = view.size || view.options.length;
662
- index = index*units_l + inner_index;
663
- }
664
- }
665
- area = area ? area : scheduler.locate_holder(index);
666
-
667
- for (var i = 0; i < zones.length; i+=2){
668
- var start = Math.max(zones[i], c.first_hour*60);
669
- var end = Math.min(zones[i+1], c.last_hour*60);
670
- if (end <= start) {
671
- if (i+2 < zones.length)
672
- continue;
673
- else
674
- return [];
675
- }
676
-
677
- var block = scheduler._get_block_by_config(options);
678
- block.className = css_classes;
679
-
680
- // +1 for working with section which really takes up whole height (as % would be == 0)
681
- var all_hours_height = this.config.hour_size_px*24 + 1;
682
- var hour_ms = 60*60*1000;
683
- block.style.top = (Math.round((start*60*1000-this.config.first_hour*hour_ms)*this.config.hour_size_px/hour_ms) % all_hours_height) + "px";
684
- block.style.lineHeight = block.style.height = Math.max((Math.round(((end-start)*60*1000)*this.config.hour_size_px/hour_ms)) % all_hours_height, 1)+"px";
685
-
686
- area.appendChild(block);
687
- blocks.push(block);
688
- }
689
- }
690
- return blocks;
691
- };
692
-
693
- scheduler._mark_timespans = function(){
694
- var data = this._els["dhx_cal_data"][0];
695
- var divs = [];
696
- if (scheduler._table_view && scheduler._mode == "month"){
697
- for (var day in this._scales) {
698
- var date = new Date(+day);
699
- divs.push.apply(divs, scheduler._on_scale_add_marker(this._scales[day],date));
700
- }
701
- }else {
702
- //manually trigger rendering of configs for each column
703
- var date = new Date(scheduler._min_date);
704
- for (var i = 0, len = data.childNodes.length; i < len; i++) {
705
- var area = data.childNodes[i];
706
- if (area.firstChild && scheduler._getClassName(area.firstChild).indexOf("dhx_scale_hour") > -1) {
707
- continue;
708
- }
709
-
710
- divs.push.apply(divs, scheduler._on_scale_add_marker(area, date));
711
- date = scheduler.date.add(date, 1, "day");
712
- }
713
- }
714
- return divs;
715
- };
716
-
717
- // just marks timespan, will be cleaned after refresh
718
- scheduler.markTimespan = function(configuration) {
719
-
720
- var rebuild_els = false;
721
- if(!this._els["dhx_cal_data"]){
722
- scheduler.get_elements();
723
- rebuild_els = true;
724
- }
725
-
726
-
727
- // backup regular marked timespans
728
- var timespans_ids = scheduler._marked_timespans_ids,
729
- timespan_types = scheduler._marked_timespans_types,
730
- timespans = scheduler._marked_timespans;
731
-
732
- scheduler.deleteMarkedTimespan();
733
-
734
- //add block to configs
735
- scheduler.addMarkedTimespan(configuration);
736
-
737
- var divs = scheduler._mark_timespans();
738
-
739
- if(rebuild_els)
740
- scheduler._els = [];
741
-
742
- // restore timespan config
743
- scheduler._marked_timespans_ids = timespans_ids;
744
- scheduler._marked_timespans_types = timespan_types;
745
- scheduler._marked_timespans = timespans;
746
-
747
- return divs;
748
- };
749
- scheduler.unmarkTimespan = function(divs) {
750
- if (!divs)
751
- return;
752
- for (var i=0; i<divs.length; i++) {
753
- var div = divs[i];
754
- // parent may no longer be present if we switched views, navigated
755
- if (div.parentNode) {
756
- div.parentNode.removeChild(div);
757
- }
758
- }
759
- };
760
-
761
-
762
- scheduler._addMarkerTimespanConfig = function(config){
763
- var global = "global";
764
- var timespans = scheduler._marked_timespans;
765
- var id = config.id;
766
-
767
- var ids = scheduler._marked_timespans_ids;
768
- if (!ids[id])
769
- ids[id] = [];
770
-
771
-
772
- var day = config.days;
773
-
774
- var sections = config.sections;
775
- var type = config.type; // default or specified
776
- config.id = id;
777
-
778
- if (sections) {
779
- for (var view_key in sections) {
780
- if (sections.hasOwnProperty(view_key)) {
781
- if (!timespans[view_key])
782
- timespans[view_key] = {};
783
- var unit_id = sections[view_key];
784
- var timespans_view = timespans[view_key];
785
- if (!timespans_view[unit_id])
786
- timespans_view[unit_id] = {};
787
- if (!timespans_view[unit_id][day])
788
- timespans_view[unit_id][day] = {};
789
- if (!timespans_view[unit_id][day][type]){
790
- timespans_view[unit_id][day][type] = [];
791
- if(!scheduler._marked_timespans_types)
792
- scheduler._marked_timespans_types = {};
793
- if(!scheduler._marked_timespans_types[type])
794
- scheduler._marked_timespans_types[type] = true;
795
- }
796
- var day_configs = timespans_view[unit_id][day][type];
797
- config._array = day_configs;
798
- day_configs.push(config);
799
- ids[id].push(config);
800
- }
801
- }
802
- } else {
803
- if (!timespans[global][day])
804
- timespans[global][day] = {};
805
- if (!timespans[global][day][type])
806
- timespans[global][day][type] = [];
807
-
808
- if(!scheduler._marked_timespans_types)
809
- scheduler._marked_timespans_types = {};
810
- if(!scheduler._marked_timespans_types[type])
811
- scheduler._marked_timespans_types[type] = true;
812
-
813
- var day_configs = timespans[global][day][type];
814
- config._array = day_configs;
815
- day_configs.push(config);
816
- ids[id].push(config);
817
- }
818
-
819
- };
820
-
821
- scheduler._marked_timespans_ids = {};
822
- // adds marked timespan to collections, persistent
823
- scheduler.addMarkedTimespan = function(configuration) {
824
- var configs = scheduler._prepare_timespan_options(configuration);
825
- if (!configs.length)
826
- return; // options are incorrect, nothing to mark
827
-
828
- var id = configs[0].id;
829
- for (var i=0; i<configs.length; i++) {
830
- scheduler._addMarkerTimespanConfig(configs[i]);
831
- }
832
- return id;
833
- };
834
- // not used for now
835
- scheduler._add_timespan_zones = function(current_zones, zones) {
836
- var resulting_zones = current_zones.slice();
837
- zones = zones.slice();
838
-
839
- if (!resulting_zones.length)
840
- return zones;
841
-
842
- for (var i=0; i<resulting_zones.length; i+=2) {
843
- var c_zone_start = resulting_zones[i];
844
- var c_zone_end = resulting_zones[i+1];
845
- var isLast = (i+2 == resulting_zones.length);
846
-
847
- for (var k=0; k<zones.length; k+=2) {
848
- var zone_start = zones[k];
849
- var zone_end = zones[k+1];
850
- if ((zone_end > c_zone_end && zone_start <= c_zone_end) || (zone_start < c_zone_start && zone_end >= c_zone_start)) {
851
- resulting_zones[i] = Math.min(c_zone_start, zone_start);
852
- resulting_zones[i+1] = Math.max(c_zone_end, zone_end);
853
- i -= 2;
854
- } else {
855
- if (!isLast) // do nothing, maybe next current zone will match or will be last
856
- continue;
857
-
858
- var offset = (c_zone_start > zone_start)?0:2;
859
- resulting_zones.splice(i+offset, 0, zone_start, zone_end); // last current zone, need to add another
860
- }
861
- zones.splice(k--,2); // zone was merged or added, need to exclude it
862
- break;
863
- }
864
- }
865
- return resulting_zones;
866
- };
867
- scheduler._subtract_timespan_zones = function(current_zones, zones) {
868
- var resulting_zones = current_zones.slice();
869
- for (var i=0; i<resulting_zones.length; i+=2 ) {
870
- var c_zone_start = resulting_zones[i];// current_zone_start
871
- var c_zone_end = resulting_zones[i+1];
872
- for (var k=0; k<zones.length; k+=2) {
873
- var zone_start = zones[k];
874
- var zone_end = zones[k+1];
875
- if (zone_end > c_zone_start && zone_start < c_zone_end) {
876
- var is_modified = false;
877
- if (c_zone_start >= zone_start && c_zone_end <= zone_end) {
878
- resulting_zones.splice(i, 2);
879
- }
880
- if (c_zone_start < zone_start) {
881
- resulting_zones.splice(i, 2, c_zone_start, zone_start);
882
- is_modified = true;
883
- }
884
- if (c_zone_end > zone_end) {
885
- resulting_zones.splice( (is_modified)?(i+2):i, (is_modified)?0:2, zone_end, c_zone_end);
886
- }
887
- i -= 2;
888
- break;
889
- } else {
890
- continue;
891
- }
892
- }
893
- }
894
- return resulting_zones;
895
- };
896
- scheduler.invertZones = function(zones) {
897
- return scheduler._subtract_timespan_zones([0, 1440], zones.slice());
898
- };
899
- scheduler._delete_marked_timespan_by_id = function(id) {
900
- var configs = scheduler._marked_timespans_ids[id];
901
- if (configs) {
902
- for (var i=0; i<configs.length; i++) {
903
- var config = configs[i];
904
- var parent_array = config._array;
905
- for (var k=0; k<parent_array.length; k++) {
906
- if (parent_array[k] == config) {
907
- parent_array.splice(k, 1);
908
- break;
909
- }
910
- }
911
- }
912
- }
913
- };
914
- scheduler._delete_marked_timespan_by_config = function(config) {
915
- var timespans = scheduler._marked_timespans;
916
- var sections = config.sections;
917
- var day = config.days;
918
- var type = config.type||default_timespan_type;
919
- var viewspans;
920
- if (sections) {
921
- for (var view_key in sections) {
922
- if (sections.hasOwnProperty(view_key) && timespans[view_key]) {
923
- var unit_id = sections[view_key];
924
- if (timespans[view_key][unit_id]){
925
- viewspans = timespans[view_key][unit_id];
926
- }
927
- }
928
- }
929
- } else {
930
- viewspans = timespans.global;
931
- }
932
-
933
- if(viewspans) {
934
- if (day !== undefined) {
935
- if (viewspans[day] && viewspans[day][type]) {
936
- scheduler._addMarkerTimespanConfig(config); // register config in order to be able to delete recurring timespan from a specific day
937
- scheduler._delete_marked_timespans_list(viewspans[day][type], config);
938
- }
939
- }
940
- else {
941
- for (var d in viewspans) {
942
- if (viewspans[d][type]) {
943
- var dayConfig = scheduler._lame_clone(config);
944
- config.days = d;
945
- scheduler._addMarkerTimespanConfig(dayConfig); // register config in order to be able to delete recurring timespan from a specific day
946
- scheduler._delete_marked_timespans_list(viewspans[d][type], config);
947
- }
948
- }
949
- }
950
- }
951
- };
952
- scheduler._delete_marked_timespans_list = function(day_timespans, config){
953
- for (var i=0; i<day_timespans.length; i++) {
954
- var d_t = day_timespans[i];
955
- var zones = scheduler._subtract_timespan_zones(d_t.zones, config.zones);
956
- if (zones.length)
957
- d_t.zones = zones;
958
- else {
959
- day_timespans.splice(i,1);
960
- i--;
961
- // need to update ids collection
962
- var related_zones = scheduler._marked_timespans_ids[d_t.id];
963
- for (var k=0; k<related_zones.length; k++) {
964
- if (related_zones[k] == d_t) {
965
- related_zones.splice(k, 1);
966
- break;
967
- }
968
- }
969
- }
970
- }
971
- };
972
- scheduler.deleteMarkedTimespan = function(configuration) {
973
- // delete everything
974
- if (!arguments.length) {
975
- scheduler._marked_timespans = { global: {} };
976
- scheduler._marked_timespans_ids = {};
977
- scheduler._marked_timespans_types = {};
978
- }
979
-
980
- if (typeof configuration != "object") { // id was passed
981
- scheduler._delete_marked_timespan_by_id(configuration);
982
- } else { // normal configuration was passed
983
-
984
- if(!(configuration.start_date && configuration.end_date)){
985
- if(configuration.days === undefined && !configuration.type)
986
- configuration.days = "fullweek";
987
- if(!configuration.zones)
988
- configuration.zones = "fullday";
989
- }
990
-
991
- var types = [];
992
- if(!configuration.type){
993
- //if type not specified - delete timespans of all types
994
- for(var type in scheduler._marked_timespans_types){
995
- types.push(type);
996
- }
997
- }else{
998
- types.push(configuration.type);
999
- }
1000
-
1001
-
1002
- var configs = scheduler._prepare_timespan_options(configuration);
1003
-
1004
- for (var i=0; i<configs.length; i++) {
1005
-
1006
- var config = configs[i];
1007
- for( var t=0; t < types.length; t++){
1008
- var typedConfig = scheduler._lame_clone(config);
1009
- typedConfig.type = types[t];
1010
- scheduler._delete_marked_timespan_by_config(typedConfig);
1011
- }
1012
- }
1013
-
1014
- }
1015
- };
1016
- scheduler._get_types_to_render = function(common, specific) {
1017
- var types_to_render = (common) ? scheduler._lame_copy({},common) : {};
1018
- for (var type in specific||{} ) {
1019
- if (specific.hasOwnProperty(type)) {
1020
- types_to_render[type] = specific[type];
1021
- }
1022
- }
1023
- return types_to_render;
1024
- };
1025
- scheduler._get_configs_to_render = function(types) {
1026
- var configs = [];
1027
- for (var type in types) {
1028
- if (types.hasOwnProperty(type)) {
1029
- configs.push.apply(configs, types[type]);
1030
- }
1031
- }
1032
- return configs;
1033
- };
1034
-
1035
- scheduler._on_scale_add_marker = function(area, day){
1036
- if (scheduler._table_view && scheduler._mode != "month")
1037
- return;
1038
-
1039
- var day_index = day.getDay();
1040
- var day_value = day.valueOf();
1041
- var mode = this._mode;
1042
- var timespans = scheduler._marked_timespans;
1043
- var r_configs = [];
1044
- var divs = [];
1045
- if (this._props && this._props[mode]) { // we are in the units view and need to draw it's sections as well
1046
- var view = this._props[mode]; // units view object
1047
- var units = view.options;
1048
- var index = scheduler._get_unit_index(view, day);
1049
- var unit = units[index]; // key, label
1050
-
1051
- if(!(view.days > 1)){
1052
- day = scheduler.date.date_part(new Date(this._date)); // for units view actually only 1 day is displayed yet the day variable will change, need to use this._date for all calls
1053
- }else{
1054
- var dx = 24*60*60*1000;
1055
- var day_ind = Math.round((day - scheduler._min_date)/dx);
1056
- var unitsPerDay = view.size || units.length;
1057
- day = scheduler.date.add(scheduler._min_date, Math.floor(day_ind/unitsPerDay), "day"); // to the "same" day for all sections
1058
- day = scheduler.date.date_part(day);
1059
- }
1060
- day_index = day.getDay();
1061
- day_value = day.valueOf();
1062
-
1063
- if (timespans[mode] && timespans[mode][unit.key]) {
1064
- var unit_zones = timespans[mode][unit.key];
1065
- var unit_types = scheduler._get_types_to_render(unit_zones[day_index], unit_zones[day_value]);
1066
- r_configs.push.apply(r_configs, scheduler._get_configs_to_render(unit_types));
1067
- }
1068
- }
1069
-
1070
- var global_data = timespans["global"];
1071
- var day_types = global_data[day_value]||global_data[day_index];
1072
- r_configs.push.apply(r_configs, scheduler._get_configs_to_render(day_types));
1073
-
1074
- for (var i=0; i<r_configs.length; i++) {
1075
- divs.push.apply(divs, (scheduler._render_marked_timespan(r_configs[i], area, day)));
1076
- }
1077
- return divs;
1078
- };
1079
- scheduler.attachEvent("onScaleAdd", function(){
1080
- scheduler._on_scale_add_marker.apply(scheduler, arguments);
1081
- });
1082
-
1083
- scheduler.dblclick_dhx_marked_timespan = function(e,src){
1084
- scheduler.callEvent("onScaleDblClick",[scheduler.getActionData(e).date,src,e]);
1085
-
1086
- if (scheduler.config.dblclick_create){
1087
- scheduler.addEventNow(scheduler.getActionData(e).date,null,e);
1088
- }
1089
- };
1090
-
1091
- };
1092
- scheduler._temp_limit_scope();
1093
-
1094
-
1095
- });