integral 1.1.0 → 1.2.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 (430) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/logo.png +0 -0
  3. data/app/assets/javascripts/ckeditor/my_config.js.erb +26 -18
  4. data/app/assets/javascripts/ckeditor/plugins/autoembed/lang/lv.js +8 -0
  5. data/app/assets/javascripts/ckeditor/plugins/autoembed/plugin.js +1 -1
  6. data/app/assets/javascripts/ckeditor/plugins/autogrow/plugin.js +14 -14
  7. data/app/assets/javascripts/ckeditor/plugins/autogrow/samples/autogrow.html +8 -8
  8. data/app/assets/javascripts/ckeditor/plugins/codemirror/css/codemirror.min.css +1 -1
  9. data/app/assets/javascripts/ckeditor/plugins/codemirror/icons/autoformat.png +0 -0
  10. data/app/assets/javascripts/ckeditor/plugins/codemirror/icons/searchcode.png +0 -0
  11. data/app/assets/javascripts/ckeditor/plugins/codemirror/icons/uncommentselectedrange.png +0 -0
  12. data/app/assets/javascripts/ckeditor/plugins/codemirror/images/autocomplete.png +0 -0
  13. data/app/assets/javascripts/ckeditor/plugins/codemirror/images/autoformat.png +0 -0
  14. data/app/assets/javascripts/ckeditor/plugins/codemirror/images/commentselectedrange.png +0 -0
  15. data/app/assets/javascripts/ckeditor/plugins/codemirror/images/searchcode.png +0 -0
  16. data/app/assets/javascripts/ckeditor/plugins/codemirror/images/uncommentselectedrange.png +0 -0
  17. data/app/assets/javascripts/ckeditor/plugins/codemirror/js/beautify.min.js +2 -2
  18. data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.addons.min.js +2 -2
  19. data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.addons.search.min.js +1 -1
  20. data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.min.js +1 -6
  21. data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.mode.bbcodemixed.min.js +1 -1
  22. data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.mode.handlebars.min.js +1 -0
  23. data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.mode.htmlmixed.min.js +2 -2
  24. data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.mode.javascript.min.js +1 -1
  25. data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.mode.php.min.js +3 -3
  26. data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.mode.twig.min.js +1 -1
  27. data/app/assets/javascripts/ckeditor/plugins/codemirror/lang/bg.js +7 -7
  28. data/app/assets/javascripts/ckeditor/plugins/codemirror/plugin.js +231 -217
  29. data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/darcula.css +46 -0
  30. data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/gruvbox-dark.css +34 -0
  31. data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/idea.css +42 -0
  32. data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/lesser-dark.css +1 -1
  33. data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/lucario.css +37 -0
  34. data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/monokai.css +5 -0
  35. data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/oceanic-next.css +44 -0
  36. data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/shadowfox.css +52 -0
  37. data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/ssms.css +16 -0
  38. data/app/assets/javascripts/ckeditor/plugins/embedbase/lang/ar.js +15 -0
  39. data/app/assets/javascripts/ckeditor/plugins/embedbase/lang/lv.js +15 -0
  40. data/app/assets/javascripts/ckeditor/plugins/embedbase/plugin.js +1 -1
  41. data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/copywidget.png +0 -0
  42. data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/editwidget.png +0 -0
  43. data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/hidpi/copywidget.png +0 -0
  44. data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/hidpi/editwidget.png +0 -0
  45. data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/hidpi/removewidget.png +0 -0
  46. data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/hidpi/widget.png +0 -0
  47. data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/removewidget.png +0 -0
  48. data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/widget.png +0 -0
  49. data/app/assets/javascripts/ckeditor/plugins/foundation-callout/plugin.js +86 -0
  50. data/app/assets/javascripts/ckeditor/plugins/image2/dev/assets/image1.jpg +0 -0
  51. data/app/assets/javascripts/ckeditor/plugins/image2/dev/assets/image2.jpg +0 -0
  52. data/app/assets/javascripts/ckeditor/plugins/image2/dev/contents.css +35 -0
  53. data/app/assets/javascripts/ckeditor/plugins/image2/dev/image2.html +339 -0
  54. data/app/assets/javascripts/ckeditor/plugins/image2/dialogs/image2.js +553 -0
  55. data/app/assets/javascripts/ckeditor/plugins/image2/icons/hidpi/image.png +0 -0
  56. data/app/assets/javascripts/ckeditor/plugins/image2/icons/image.png +0 -0
  57. data/app/assets/javascripts/ckeditor/plugins/image2/lang/af.js +21 -0
  58. data/app/assets/javascripts/ckeditor/plugins/image2/lang/ar.js +21 -0
  59. data/app/assets/javascripts/ckeditor/plugins/image2/lang/az.js +21 -0
  60. data/app/assets/javascripts/ckeditor/plugins/image2/lang/bg.js +21 -0
  61. data/app/assets/javascripts/ckeditor/plugins/image2/lang/bn.js +21 -0
  62. data/app/assets/javascripts/ckeditor/plugins/image2/lang/bs.js +21 -0
  63. data/app/assets/javascripts/ckeditor/plugins/image2/lang/ca.js +21 -0
  64. data/app/assets/javascripts/ckeditor/plugins/image2/lang/cs.js +21 -0
  65. data/app/assets/javascripts/ckeditor/plugins/image2/lang/cy.js +21 -0
  66. data/app/assets/javascripts/ckeditor/plugins/image2/lang/da.js +21 -0
  67. data/app/assets/javascripts/ckeditor/plugins/image2/lang/de-ch.js +21 -0
  68. data/app/assets/javascripts/ckeditor/plugins/image2/lang/de.js +21 -0
  69. data/app/assets/javascripts/ckeditor/plugins/image2/lang/el.js +21 -0
  70. data/app/assets/javascripts/ckeditor/plugins/image2/lang/en-au.js +21 -0
  71. data/app/assets/javascripts/ckeditor/plugins/image2/lang/en-ca.js +21 -0
  72. data/app/assets/javascripts/ckeditor/plugins/image2/lang/en-gb.js +21 -0
  73. data/app/assets/javascripts/ckeditor/plugins/image2/lang/en.js +21 -0
  74. data/app/assets/javascripts/ckeditor/plugins/image2/lang/eo.js +21 -0
  75. data/app/assets/javascripts/ckeditor/plugins/image2/lang/es-mx.js +21 -0
  76. data/app/assets/javascripts/ckeditor/plugins/image2/lang/es.js +21 -0
  77. data/app/assets/javascripts/ckeditor/plugins/image2/lang/et.js +21 -0
  78. data/app/assets/javascripts/ckeditor/plugins/image2/lang/eu.js +21 -0
  79. data/app/assets/javascripts/ckeditor/plugins/image2/lang/fa.js +21 -0
  80. data/app/assets/javascripts/ckeditor/plugins/image2/lang/fi.js +21 -0
  81. data/app/assets/javascripts/ckeditor/plugins/image2/lang/fo.js +21 -0
  82. data/app/assets/javascripts/ckeditor/plugins/image2/lang/fr-ca.js +21 -0
  83. data/app/assets/javascripts/ckeditor/plugins/image2/lang/fr.js +21 -0
  84. data/app/assets/javascripts/ckeditor/plugins/image2/lang/gl.js +21 -0
  85. data/app/assets/javascripts/ckeditor/plugins/image2/lang/gu.js +21 -0
  86. data/app/assets/javascripts/ckeditor/plugins/image2/lang/he.js +21 -0
  87. data/app/assets/javascripts/ckeditor/plugins/image2/lang/hi.js +21 -0
  88. data/app/assets/javascripts/ckeditor/plugins/image2/lang/hr.js +21 -0
  89. data/app/assets/javascripts/ckeditor/plugins/image2/lang/hu.js +21 -0
  90. data/app/assets/javascripts/ckeditor/plugins/image2/lang/id.js +21 -0
  91. data/app/assets/javascripts/ckeditor/plugins/image2/lang/is.js +21 -0
  92. data/app/assets/javascripts/ckeditor/plugins/image2/lang/it.js +21 -0
  93. data/app/assets/javascripts/ckeditor/plugins/image2/lang/ja.js +21 -0
  94. data/app/assets/javascripts/ckeditor/plugins/image2/lang/ka.js +21 -0
  95. data/app/assets/javascripts/ckeditor/plugins/image2/lang/km.js +21 -0
  96. data/app/assets/javascripts/ckeditor/plugins/image2/lang/ko.js +21 -0
  97. data/app/assets/javascripts/ckeditor/plugins/image2/lang/ku.js +21 -0
  98. data/app/assets/javascripts/ckeditor/plugins/image2/lang/lt.js +21 -0
  99. data/app/assets/javascripts/ckeditor/plugins/image2/lang/lv.js +21 -0
  100. data/app/assets/javascripts/ckeditor/plugins/image2/lang/mk.js +21 -0
  101. data/app/assets/javascripts/ckeditor/plugins/image2/lang/mn.js +21 -0
  102. data/app/assets/javascripts/ckeditor/plugins/image2/lang/ms.js +21 -0
  103. data/app/assets/javascripts/ckeditor/plugins/image2/lang/nb.js +21 -0
  104. data/app/assets/javascripts/ckeditor/plugins/image2/lang/nl.js +21 -0
  105. data/app/assets/javascripts/ckeditor/plugins/image2/lang/no.js +21 -0
  106. data/app/assets/javascripts/ckeditor/plugins/image2/lang/oc.js +21 -0
  107. data/app/assets/javascripts/ckeditor/plugins/image2/lang/pl.js +21 -0
  108. data/app/assets/javascripts/ckeditor/plugins/image2/lang/pt-br.js +21 -0
  109. data/app/assets/javascripts/ckeditor/plugins/image2/lang/pt.js +21 -0
  110. data/app/assets/javascripts/ckeditor/plugins/image2/lang/ro.js +21 -0
  111. data/app/assets/javascripts/ckeditor/plugins/image2/lang/ru.js +21 -0
  112. data/app/assets/javascripts/ckeditor/plugins/image2/lang/si.js +21 -0
  113. data/app/assets/javascripts/ckeditor/plugins/image2/lang/sk.js +21 -0
  114. data/app/assets/javascripts/ckeditor/plugins/image2/lang/sl.js +21 -0
  115. data/app/assets/javascripts/ckeditor/plugins/image2/lang/sq.js +21 -0
  116. data/app/assets/javascripts/ckeditor/plugins/image2/lang/sr-latn.js +21 -0
  117. data/app/assets/javascripts/ckeditor/plugins/image2/lang/sr.js +21 -0
  118. data/app/assets/javascripts/ckeditor/plugins/image2/lang/sv.js +21 -0
  119. data/app/assets/javascripts/ckeditor/plugins/image2/lang/th.js +21 -0
  120. data/app/assets/javascripts/ckeditor/plugins/image2/lang/tr.js +21 -0
  121. data/app/assets/javascripts/ckeditor/plugins/image2/lang/tt.js +21 -0
  122. data/app/assets/javascripts/ckeditor/plugins/image2/lang/ug.js +21 -0
  123. data/app/assets/javascripts/ckeditor/plugins/image2/lang/uk.js +21 -0
  124. data/app/assets/javascripts/ckeditor/plugins/image2/lang/vi.js +21 -0
  125. data/app/assets/javascripts/ckeditor/plugins/image2/lang/zh-cn.js +21 -0
  126. data/app/assets/javascripts/ckeditor/plugins/image2/lang/zh.js +21 -0
  127. data/app/assets/javascripts/ckeditor/plugins/image2/plugin.js +1720 -0
  128. data/app/assets/javascripts/ckeditor/plugins/image2/samples/assets/image1.jpg +0 -0
  129. data/app/assets/javascripts/ckeditor/plugins/image2/samples/assets/image2.jpg +0 -0
  130. data/app/assets/javascripts/ckeditor/plugins/image2/samples/image2.html +68 -0
  131. data/app/assets/javascripts/ckeditor/plugins/integral-card/icons/copywidget.png +0 -0
  132. data/app/assets/javascripts/ckeditor/plugins/integral-card/icons/editwidget.png +0 -0
  133. data/app/assets/javascripts/ckeditor/plugins/integral-card/icons/hidpi/copywidget.png +0 -0
  134. data/app/assets/javascripts/ckeditor/plugins/integral-card/icons/hidpi/editwidget.png +0 -0
  135. data/app/assets/javascripts/ckeditor/plugins/integral-card/icons/hidpi/removewidget.png +0 -0
  136. data/app/assets/javascripts/ckeditor/plugins/integral-card/icons/hidpi/widget.png +0 -0
  137. data/app/assets/javascripts/ckeditor/plugins/integral-card/icons/removewidget.png +0 -0
  138. data/app/assets/javascripts/ckeditor/plugins/integral-card/icons/widget.png +0 -0
  139. data/app/assets/javascripts/ckeditor/plugins/integral-card/plugin.js +86 -0
  140. data/app/assets/javascripts/ckeditor/plugins/integralrecentposts/dialogs/integralrecentposts.js +40 -0
  141. data/app/assets/javascripts/ckeditor/plugins/integralrecentposts/plugin.js +32 -0
  142. data/app/assets/javascripts/ckeditor/plugins/lineutils/dev/dnd.html +4 -4
  143. data/app/assets/javascripts/ckeditor/plugins/lineutils/dev/magicfinger.html +4 -4
  144. data/app/assets/javascripts/ckeditor/plugins/lineutils/plugin.js +7 -7
  145. data/app/assets/javascripts/ckeditor/plugins/linkballoon/README.md +5 -0
  146. data/app/assets/javascripts/ckeditor/plugins/linkballoon/assets/demo.png +0 -0
  147. data/app/assets/javascripts/ckeditor/plugins/linkballoon/plugin.js +25 -0
  148. data/app/assets/javascripts/ckeditor/plugins/notification/lang/az.js +7 -0
  149. data/app/assets/javascripts/ckeditor/plugins/notification/lang/bg.js +7 -0
  150. data/app/assets/javascripts/ckeditor/plugins/notification/lang/ca.js +7 -0
  151. data/app/assets/javascripts/ckeditor/plugins/notification/lang/cs.js +2 -2
  152. data/app/assets/javascripts/ckeditor/plugins/notification/lang/da.js +2 -2
  153. data/app/assets/javascripts/ckeditor/plugins/notification/lang/de-ch.js +2 -2
  154. data/app/assets/javascripts/ckeditor/plugins/notification/lang/de.js +2 -2
  155. data/app/assets/javascripts/ckeditor/plugins/notification/lang/en-au.js +7 -0
  156. data/app/assets/javascripts/ckeditor/plugins/notification/lang/en.js +2 -2
  157. data/app/assets/javascripts/ckeditor/plugins/notification/lang/eo.js +2 -2
  158. data/app/assets/javascripts/ckeditor/plugins/notification/lang/es-mx.js +7 -0
  159. data/app/assets/javascripts/ckeditor/plugins/notification/lang/es.js +7 -0
  160. data/app/assets/javascripts/ckeditor/plugins/notification/lang/et.js +7 -0
  161. data/app/assets/javascripts/ckeditor/plugins/notification/lang/eu.js +2 -2
  162. data/app/assets/javascripts/ckeditor/plugins/notification/lang/fa.js +7 -0
  163. data/app/assets/javascripts/ckeditor/plugins/notification/lang/fr.js +3 -3
  164. data/app/assets/javascripts/ckeditor/plugins/notification/lang/gl.js +2 -2
  165. data/app/assets/javascripts/ckeditor/plugins/notification/lang/hr.js +7 -0
  166. data/app/assets/javascripts/ckeditor/plugins/notification/lang/hu.js +7 -0
  167. data/app/assets/javascripts/ckeditor/plugins/notification/lang/id.js +2 -2
  168. data/app/assets/javascripts/ckeditor/plugins/notification/lang/it.js +2 -2
  169. data/app/assets/javascripts/ckeditor/plugins/notification/lang/ja.js +7 -0
  170. data/app/assets/javascripts/ckeditor/plugins/notification/lang/km.js +2 -2
  171. data/app/assets/javascripts/ckeditor/plugins/notification/lang/ko.js +2 -2
  172. data/app/assets/javascripts/ckeditor/plugins/notification/lang/ku.js +2 -2
  173. data/app/assets/javascripts/ckeditor/plugins/notification/lang/lv.js +7 -0
  174. data/app/assets/javascripts/ckeditor/plugins/notification/lang/nb.js +2 -2
  175. data/app/assets/javascripts/ckeditor/plugins/notification/lang/nl.js +2 -2
  176. data/app/assets/javascripts/ckeditor/plugins/notification/lang/oc.js +7 -0
  177. data/app/assets/javascripts/ckeditor/plugins/notification/lang/pl.js +2 -2
  178. data/app/assets/javascripts/ckeditor/plugins/notification/lang/pt-br.js +2 -2
  179. data/app/assets/javascripts/ckeditor/plugins/notification/lang/pt.js +2 -2
  180. data/app/assets/javascripts/ckeditor/plugins/notification/lang/ro.js +7 -0
  181. data/app/assets/javascripts/ckeditor/plugins/notification/lang/ru.js +2 -2
  182. data/app/assets/javascripts/ckeditor/plugins/notification/lang/sk.js +7 -0
  183. data/app/assets/javascripts/ckeditor/plugins/notification/lang/sq.js +7 -0
  184. data/app/assets/javascripts/ckeditor/plugins/notification/lang/sv.js +2 -2
  185. data/app/assets/javascripts/ckeditor/plugins/notification/lang/tr.js +2 -2
  186. data/app/assets/javascripts/ckeditor/plugins/notification/lang/ug.js +2 -2
  187. data/app/assets/javascripts/ckeditor/plugins/notification/lang/uk.js +2 -2
  188. data/app/assets/javascripts/ckeditor/plugins/notification/lang/zh-cn.js +3 -3
  189. data/app/assets/javascripts/ckeditor/plugins/notification/lang/zh.js +2 -2
  190. data/app/assets/javascripts/ckeditor/plugins/notification/plugin.js +794 -784
  191. data/app/assets/javascripts/ckeditor/plugins/numericinput/LICENSE.md +363 -0
  192. data/app/assets/javascripts/ckeditor/plugins/numericinput/README.md +16 -0
  193. data/app/assets/javascripts/ckeditor/plugins/numericinput/plugin.js +354 -0
  194. data/app/assets/javascripts/ckeditor/plugins/openlink/README.md +50 -0
  195. data/app/assets/javascripts/ckeditor/plugins/openlink/icons/hidpi/openLink.png +0 -0
  196. data/app/assets/javascripts/ckeditor/plugins/openlink/icons/openLink.png +0 -0
  197. data/app/assets/javascripts/ckeditor/plugins/openlink/lang/bg.js +7 -0
  198. data/app/assets/javascripts/ckeditor/plugins/openlink/lang/de.js +7 -0
  199. data/app/assets/javascripts/ckeditor/plugins/openlink/lang/en.js +7 -0
  200. data/app/assets/javascripts/ckeditor/plugins/openlink/lang/pl.js +7 -0
  201. data/app/assets/javascripts/ckeditor/plugins/openlink/lang/ru.js +7 -0
  202. data/app/assets/javascripts/ckeditor/plugins/openlink/lang/uk.js +7 -0
  203. data/app/assets/javascripts/ckeditor/plugins/openlink/plugin.js +178 -0
  204. data/app/assets/javascripts/ckeditor/plugins/placeholder/dev/placeholder.html +5 -5
  205. data/app/assets/javascripts/ckeditor/plugins/placeholder/dialogs/placeholder.js +2 -2
  206. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/af.js +2 -2
  207. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ar.js +2 -2
  208. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/az.js +2 -2
  209. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/bg.js +5 -5
  210. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ca.js +2 -2
  211. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/cs.js +2 -2
  212. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/cy.js +2 -2
  213. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/da.js +2 -2
  214. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/de-ch.js +2 -2
  215. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/de.js +2 -2
  216. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/el.js +2 -2
  217. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/en-au.js +12 -0
  218. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/en-gb.js +2 -2
  219. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/en.js +2 -2
  220. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/eo.js +2 -2
  221. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/es-mx.js +2 -2
  222. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/es.js +2 -2
  223. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/et.js +2 -2
  224. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/eu.js +2 -2
  225. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/fa.js +2 -2
  226. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/fi.js +2 -2
  227. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/fr-ca.js +2 -2
  228. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/fr.js +2 -2
  229. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/gl.js +2 -2
  230. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/he.js +2 -2
  231. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/hr.js +2 -2
  232. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/hu.js +2 -2
  233. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/id.js +2 -2
  234. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/it.js +2 -2
  235. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ja.js +2 -2
  236. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/km.js +2 -2
  237. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ko.js +2 -2
  238. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ku.js +2 -2
  239. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/lv.js +5 -5
  240. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/nb.js +2 -2
  241. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/nl.js +2 -2
  242. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/no.js +2 -2
  243. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/oc.js +2 -2
  244. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/pl.js +2 -2
  245. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/pt-br.js +2 -2
  246. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/pt.js +2 -2
  247. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ro.js +12 -0
  248. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ru.js +2 -2
  249. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/si.js +2 -2
  250. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/sk.js +2 -2
  251. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/sl.js +2 -2
  252. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/sq.js +2 -2
  253. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/sv.js +2 -2
  254. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/th.js +2 -2
  255. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/tr.js +2 -2
  256. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/tt.js +2 -2
  257. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ug.js +2 -2
  258. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/uk.js +2 -2
  259. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/vi.js +2 -2
  260. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/zh-cn.js +2 -2
  261. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/zh.js +2 -2
  262. data/app/assets/javascripts/ckeditor/plugins/placeholder/plugin.js +3 -3
  263. data/app/assets/javascripts/ckeditor/plugins/placeholder/samples/placeholder.html +6 -6
  264. data/app/assets/javascripts/ckeditor/plugins/widget/dev/assets/simplebox/dialogs/simplebox.js +4 -4
  265. data/app/assets/javascripts/ckeditor/plugins/widget/dev/assets/simplebox/plugin.js +3 -3
  266. data/app/assets/javascripts/ckeditor/plugins/widget/dev/console.js +2 -2
  267. data/app/assets/javascripts/ckeditor/plugins/widget/dev/nestedwidgets.html +2 -2
  268. data/app/assets/javascripts/ckeditor/plugins/widget/dev/widgetstyles.html +2 -2
  269. data/app/assets/javascripts/ckeditor/plugins/widget/lang/af.js +2 -2
  270. data/app/assets/javascripts/ckeditor/plugins/widget/lang/ar.js +2 -2
  271. data/app/assets/javascripts/ckeditor/plugins/widget/lang/az.js +2 -2
  272. data/app/assets/javascripts/ckeditor/plugins/widget/lang/bg.js +3 -3
  273. data/app/assets/javascripts/ckeditor/plugins/widget/lang/ca.js +2 -2
  274. data/app/assets/javascripts/ckeditor/plugins/widget/lang/cs.js +2 -2
  275. data/app/assets/javascripts/ckeditor/plugins/widget/lang/cy.js +2 -2
  276. data/app/assets/javascripts/ckeditor/plugins/widget/lang/da.js +2 -2
  277. data/app/assets/javascripts/ckeditor/plugins/widget/lang/de-ch.js +2 -2
  278. data/app/assets/javascripts/ckeditor/plugins/widget/lang/de.js +2 -2
  279. data/app/assets/javascripts/ckeditor/plugins/widget/lang/el.js +2 -2
  280. data/app/assets/javascripts/ckeditor/plugins/widget/lang/en-au.js +8 -0
  281. data/app/assets/javascripts/ckeditor/plugins/widget/lang/en-gb.js +2 -2
  282. data/app/assets/javascripts/ckeditor/plugins/widget/lang/en.js +2 -2
  283. data/app/assets/javascripts/ckeditor/plugins/widget/lang/eo.js +2 -2
  284. data/app/assets/javascripts/ckeditor/plugins/widget/lang/es-mx.js +2 -2
  285. data/app/assets/javascripts/ckeditor/plugins/widget/lang/es.js +2 -2
  286. data/app/assets/javascripts/ckeditor/plugins/widget/lang/et.js +8 -0
  287. data/app/assets/javascripts/ckeditor/plugins/widget/lang/eu.js +2 -2
  288. data/app/assets/javascripts/ckeditor/plugins/widget/lang/fa.js +3 -3
  289. data/app/assets/javascripts/ckeditor/plugins/widget/lang/fi.js +2 -2
  290. data/app/assets/javascripts/ckeditor/plugins/widget/lang/fr.js +2 -2
  291. data/app/assets/javascripts/ckeditor/plugins/widget/lang/gl.js +2 -2
  292. data/app/assets/javascripts/ckeditor/plugins/widget/lang/he.js +2 -2
  293. data/app/assets/javascripts/ckeditor/plugins/widget/lang/hr.js +2 -2
  294. data/app/assets/javascripts/ckeditor/plugins/widget/lang/hu.js +2 -2
  295. data/app/assets/javascripts/ckeditor/plugins/widget/lang/id.js +2 -2
  296. data/app/assets/javascripts/ckeditor/plugins/widget/lang/it.js +2 -2
  297. data/app/assets/javascripts/ckeditor/plugins/widget/lang/ja.js +2 -2
  298. data/app/assets/javascripts/ckeditor/plugins/widget/lang/km.js +2 -2
  299. data/app/assets/javascripts/ckeditor/plugins/widget/lang/ko.js +2 -2
  300. data/app/assets/javascripts/ckeditor/plugins/widget/lang/ku.js +2 -2
  301. data/app/assets/javascripts/ckeditor/plugins/widget/lang/lv.js +3 -3
  302. data/app/assets/javascripts/ckeditor/plugins/widget/lang/nb.js +2 -2
  303. data/app/assets/javascripts/ckeditor/plugins/widget/lang/nl.js +2 -2
  304. data/app/assets/javascripts/ckeditor/plugins/widget/lang/no.js +2 -2
  305. data/app/assets/javascripts/ckeditor/plugins/widget/lang/oc.js +2 -2
  306. data/app/assets/javascripts/ckeditor/plugins/widget/lang/pl.js +2 -2
  307. data/app/assets/javascripts/ckeditor/plugins/widget/lang/pt-br.js +2 -2
  308. data/app/assets/javascripts/ckeditor/plugins/widget/lang/pt.js +2 -2
  309. data/app/assets/javascripts/ckeditor/plugins/widget/lang/ro.js +8 -0
  310. data/app/assets/javascripts/ckeditor/plugins/widget/lang/ru.js +2 -2
  311. data/app/assets/javascripts/ckeditor/plugins/widget/lang/sk.js +2 -2
  312. data/app/assets/javascripts/ckeditor/plugins/widget/lang/sl.js +2 -2
  313. data/app/assets/javascripts/ckeditor/plugins/widget/lang/sq.js +3 -3
  314. data/app/assets/javascripts/ckeditor/plugins/widget/lang/sv.js +2 -2
  315. data/app/assets/javascripts/ckeditor/plugins/widget/lang/tr.js +2 -2
  316. data/app/assets/javascripts/ckeditor/plugins/widget/lang/tt.js +2 -2
  317. data/app/assets/javascripts/ckeditor/plugins/widget/lang/ug.js +2 -2
  318. data/app/assets/javascripts/ckeditor/plugins/widget/lang/uk.js +2 -2
  319. data/app/assets/javascripts/ckeditor/plugins/widget/lang/vi.js +2 -2
  320. data/app/assets/javascripts/ckeditor/plugins/widget/lang/zh-cn.js +2 -2
  321. data/app/assets/javascripts/ckeditor/plugins/widget/lang/zh.js +2 -2
  322. data/app/assets/javascripts/ckeditor/plugins/widget/plugin.js +235 -64
  323. data/app/assets/javascripts/ckeditor/plugins/widgetselection/plugin.js +6 -11
  324. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/ar.js +1 -0
  325. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/bg.js +17 -0
  326. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/ca.js +1 -0
  327. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/cs.js +15 -0
  328. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/da.js +1 -0
  329. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/de.js +1 -0
  330. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/el.js +1 -0
  331. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/en.js +5 -1
  332. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/es.js +1 -0
  333. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/eu.js +17 -0
  334. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/fa.js +13 -0
  335. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/fi.js +1 -0
  336. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/fr.js +1 -0
  337. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/he.js +1 -0
  338. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/hr.js +1 -0
  339. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/hu.js +14 -0
  340. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/it.js +4 -3
  341. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/ja.js +5 -5
  342. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/ko.js +16 -0
  343. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/nl.js +3 -2
  344. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/no.js +1 -0
  345. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/pl.js +4 -3
  346. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/pt-br.js +1 -0
  347. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/pt.js +1 -0
  348. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/ro.js +15 -0
  349. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/ru.js +2 -1
  350. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/sk.js +15 -0
  351. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/sv.js +5 -3
  352. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/tr.js +1 -0
  353. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/uk.js +17 -0
  354. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/zh-cn.js +1 -0
  355. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/zh.js +14 -0
  356. data/app/assets/javascripts/ckeditor/plugins/wordcount/plugin.js +485 -302
  357. data/app/assets/javascripts/ckeditor/plugins/wordcount/samples/maxParagraphs.html +26 -0
  358. data/app/assets/javascripts/integral/backend.js +10 -14
  359. data/app/assets/javascripts/integral/frontend.js +0 -2
  360. data/app/assets/javascripts/integral/support/date_picker.coffee +54 -59
  361. data/app/assets/javascripts/integral/support/grid.coffee +11 -4
  362. data/app/assets/javascripts/integral/support/remote_form.coffee +13 -9
  363. data/app/assets/stylesheets/integral/frontend.sass +0 -1
  364. data/app/controllers/integral/application_controller.rb +3 -2
  365. data/app/controllers/integral/backend/activities_controller.rb +1 -1
  366. data/app/controllers/integral/backend/base_controller.rb +160 -24
  367. data/app/controllers/integral/backend/images_controller.rb +16 -49
  368. data/app/controllers/integral/backend/lists_controller.rb +15 -85
  369. data/app/controllers/integral/backend/pages_controller.rb +13 -116
  370. data/app/controllers/integral/backend/posts_controller.rb +21 -108
  371. data/app/controllers/integral/backend/settings_controller.rb +5 -10
  372. data/app/controllers/integral/backend/static_pages_controller.rb +4 -0
  373. data/app/controllers/integral/backend/users_controller.rb +23 -66
  374. data/app/controllers/integral/pages_controller.rb +2 -2
  375. data/app/controllers/integral/posts_controller.rb +2 -6
  376. data/app/decorators/integral/image_decorator.rb +1 -1
  377. data/app/decorators/integral/list_decorator.rb +1 -1
  378. data/app/decorators/integral/page_decorator.rb +1 -1
  379. data/app/decorators/integral/paginating_decorator.rb +6 -0
  380. data/app/decorators/integral/post_decorator.rb +34 -1
  381. data/app/decorators/integral/user_decorator.rb +1 -1
  382. data/app/decorators/integral/version_decorator.rb +1 -1
  383. data/app/helpers/integral/application_helper.rb +7 -0
  384. data/app/helpers/integral/blog_helper.rb +29 -0
  385. data/app/helpers/integral/social_helper.rb +0 -23
  386. data/app/models/integral/list.rb +1 -2
  387. data/app/models/integral/page.rb +1 -1
  388. data/app/models/integral/post.rb +1 -1
  389. data/app/models/integral/user.rb +6 -0
  390. data/app/policies/integral/base_policy.rb +1 -1
  391. data/app/views/devise/sessions/new.haml +2 -2
  392. data/app/views/integral/backend/images/_form.haml +8 -8
  393. data/app/views/integral/backend/images/edit.haml +10 -2
  394. data/app/views/integral/backend/lists/_child_fields.haml +1 -1
  395. data/app/views/integral/backend/lists/_form.haml +1 -1
  396. data/app/views/integral/backend/lists/_item_container.haml +2 -2
  397. data/app/views/integral/backend/lists/_item_modal.haml +1 -1
  398. data/app/views/integral/backend/lists/_list_item_fields.haml +4 -3
  399. data/app/views/integral/backend/lists/edit.haml +15 -1
  400. data/app/views/integral/backend/pages/_form.haml +3 -3
  401. data/app/views/integral/backend/pages/activities.haml +2 -2
  402. data/app/views/integral/backend/pages/activity.haml +1 -1
  403. data/app/views/integral/backend/pages/edit.haml +20 -0
  404. data/app/views/integral/backend/posts/_form.haml +9 -5
  405. data/app/views/integral/backend/posts/activities.haml +2 -2
  406. data/app/views/integral/backend/posts/activity.haml +1 -1
  407. data/app/views/integral/backend/posts/edit.haml +8 -3
  408. data/app/views/integral/backend/settings/sections/_social.haml +1 -3
  409. data/app/views/integral/backend/users/_form.haml +4 -4
  410. data/app/views/integral/backend/users/edit.haml +1 -1
  411. data/app/views/integral/backend/users/show.haml +7 -7
  412. data/app/views/integral/posts/index.haml +2 -1
  413. data/app/views/integral/posts/templates/default.haml +1 -2
  414. data/app/views/integral/shared/_share_modal.haml +0 -3
  415. data/app/views/integral/shared/_social_list_items.haml +6 -12
  416. data/config/locales/en.yml +23 -12
  417. data/lib/generators/templates/app.yml +0 -1
  418. data/lib/integral/engine.rb +1 -0
  419. data/lib/integral/router.rb +3 -1
  420. data/lib/integral/version.rb +1 -1
  421. data/public/integral/ckeditor_demo_content.html +0 -13
  422. metadata +186 -12
  423. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/jp.js +0 -13
  424. data/app/assets/javascripts/integral/support/date_picker/picker.date.js +0 -1435
  425. data/app/assets/javascripts/integral/support/date_picker/picker.js +0 -1132
  426. data/app/assets/stylesheets/integral/support/date-picker.scss +0 -16
  427. data/app/assets/stylesheets/integral/support/date_picker/_default.date.scss +0 -452
  428. data/app/assets/stylesheets/integral/support/date_picker/_default.scss +0 -201
  429. data/app/assets/stylesheets/integral/support/date_picker/materialize_clockpicker.sass +0 -220
  430. data/app/views/integral/backend/pages/edit.html.haml +0 -15
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>CKEditor</title>
6
+ <script src="../../../ckeditor.js"></script>
7
+ </head>
8
+ <body>
9
+ <textarea name="editor1"></textarea>
10
+ <script>
11
+ var config = {
12
+ extraPlugins: 'wordcount',
13
+ wordcount: {
14
+ maxParagraphs: 5,
15
+ showParagraphs: true,
16
+ showWordCount: false,
17
+ showRemaining: true
18
+ },
19
+ language: 'en'
20
+ }
21
+ </script>
22
+ <script>
23
+ CKEDITOR.replace( 'editor1' , config);
24
+ </script>
25
+ </body>
26
+ </html>
@@ -92,24 +92,20 @@ function ready() {
92
92
  var dialogName = ev.data.name;
93
93
  var dialogDefinition = ev.data.definition;
94
94
 
95
- // TODO: Add Info callout
96
- if ( dialogName == 'image' ) {
95
+ if ( dialogName == 'image2' ) {
97
96
  var infoTab = dialogDefinition.getContents('info');
98
- var advancedTab = dialogDefinition.getContents('advanced');
99
97
 
100
- // Remove unhelpful inputs
101
- infoTab.remove('txtHeight');
102
- infoTab.remove('ratioLock');
103
- infoTab.remove('txtBorder');
104
- infoTab.remove('txtHSpace');
105
- infoTab.remove('txtVSpace');
106
- //infoTab.remove('htmlPreview');
107
- advancedTab.remove('linkId');
108
- advancedTab.remove('cmbLangDir');
109
- advancedTab.remove('txtLangCode');
110
- advancedTab.remove('txtGenLongDescr');
98
+ // Remove unused inputs
99
+ infoTab.remove('height');
100
+ infoTab.remove('lock');
101
+
102
+ // Do not validate width input
103
+ infoTab.get('width').validate = function() {
104
+ return true;
105
+ }
111
106
  }
112
107
 
108
+ // Remove unused inputs for link
113
109
  if ( dialogName == 'link' ) {
114
110
  var advancedTab = dialogDefinition.getContents('advanced');
115
111
  var targetTab = dialogDefinition.getContents('target');
@@ -9,8 +9,6 @@
9
9
  //= require toastr
10
10
  //= require rails.validations
11
11
  //= require rails.validations.simple_form
12
- //= require integral/support/date_picker/picker
13
- //= require integral/support/date_picker/picker.date
14
12
  //= require integral/support/date_picker
15
13
  //= require integral/support/click_to_copy
16
14
  //= require integral/support/google_analytics
@@ -1,38 +1,44 @@
1
- # Represents Date Picker (PickADate)
1
+ # Represents Date Picker - requires jQuery UI Datepicker - https://jqueryui.com/datepicker/
2
2
  class this.DatePicker
3
+ @getCurrentDate: (element, dateFormat='yy-mm-dd') ->
4
+ date = null
5
+ try
6
+ date = $.datepicker.parseDate( dateFormat, element.value )
7
+ catch error
8
+ date
9
+
3
10
  @initDateRanges: ->
4
11
  $('[data-date-picker-end-element]').each (index, dpStartElement) ->
5
12
  $dpStartElement = $(dpStartElement)
6
- dpStart = $dpStartElement.pickadate('picker')
7
- $dpEndElement = $('#' + $dpStartElement.data().datePickerEndElement)
8
- dpEnd = $dpEndElement.pickadate('picker')
9
-
10
- # Check if there’s a “from” or “to” date to start with.
11
- if dpStart.get('value')
12
- minimumDate = new Date(dpStart.get('select').obj.valueOf() + 86400000)
13
- dpEnd.set('min', minimumDate)
14
- if dpEnd.get('value')
15
- maximumDate = new Date(dpEnd.get('select').obj.valueOf() - 86400000)
16
- dpStart.set('max', maximumDate)
17
-
18
- # When something is selected, update the “from” and “to” limits.
19
- dpStart.on 'set', (event) =>
20
- if event.select
21
- minimumDate = new Date(dpStart.get('select').obj.valueOf() + 86400000)
22
- dpEnd.set('min', minimumDate)
13
+ endSelector = "[id='" + $dpStartElement.data().datePickerEndElement + "']"
14
+ $dpEndElement = $(endSelector)
23
15
 
24
- dpEnd.on 'set', (event) =>
25
- if event.select
26
- maximumDate = new Date(dpEnd.get('select').obj.valueOf() - 86400000)
27
- dpStart.set('max', maximumDate)
28
- else if 'clear' of event
29
- dpStart.set('max', false)
16
+ # Passing these options is doesn't seem to be working?
17
+ dpStart = $dpStartElement.datepicker(
18
+ firstDay: 1
19
+ showAnim: ""
20
+ )
21
+ dpEnd = $dpEndElement.datepicker(
22
+ firstDay: 1
23
+ showAnim: ""
24
+ )
25
+ dpStart.datepicker("option", "firstDay", 1)
26
+ dpEnd.datepicker("option", "firstDay", 1)
27
+ dpStart.datepicker("option", "showAnim", '')
28
+ dpEnd.datepicker("option", "showAnim", '')
29
+ dpStart.on "change", (ev) =>
30
+ dateMinimum = DatePicker.getCurrentDate(ev.currentTarget)
31
+ dateMinimum.setDate(dateMinimum.getDate() + 1)
32
+ dpEnd.datepicker("option", "minDate", dateMinimum)
33
+ dpEnd.on "change", (ev) =>
34
+ dateMaximum = DatePicker.getCurrentDate(ev.currentTarget)
35
+ dateMaximum.setDate(dateMaximum.getDate() - 1)
36
+ dpStart.datepicker("option", "maxDate", dateMaximum)
30
37
 
31
38
  constructor: (selector, opts={}) ->
32
39
  @selector = selector
33
40
  @opts = opts
34
41
 
35
- @_setLanguage()
36
42
  @_initializeDatePicker()
37
43
 
38
44
  _initializeDatePicker: ->
@@ -43,41 +49,30 @@ class this.DatePicker
43
49
  maxRaw = dp[0].max
44
50
  minDate = new Date minRaw if minRaw
45
51
  maxDate = new Date maxRaw if maxRaw
52
+ disabledDates = dp.data('disabled-dates')
53
+ showButtonPanel = if dp.data('date-picker-button-panel') == true then true else false
54
+ closeText = if dp.data('date-picker-close-text') then dp.data('date-picker-close-text') else 'Close'
46
55
 
47
- dp.pickadate
48
- min: minDate
49
- max: maxDate
50
- disable: @getDisabledDates(dp)
51
- container: @getContainer(dp)
52
- closeOnSelect: true
53
- format: "yyyy-mm-dd"
54
- onOpen: @opts.onOpen
55
- onClose: @opts.onClose
56
-
57
- getContainer: (dp) ->
58
- dp.data('date-picker-container')
59
-
60
- getDisabledDates: (dp) ->
61
- data = dp.data('disabled-dates')
62
- return [] if not data
63
-
64
- dates = []
65
- for date in data.split(',')
66
- dates.push new Date(date)
56
+ dp.datepicker
57
+ dateFormat: "yy-mm-dd"
58
+ minDate: minDate
59
+ maxDate: maxDate
60
+ beforeShow: @opts.onOpen
61
+ onClose: (dateText, inst) =>
62
+ if dp.data('date-picker-clear') == true && inst.dpDiv.find('button.clicked').length > 0
63
+ inst.input.val('')
64
+ inst.input.change()
65
+ else
66
+ @opts.onClose() if @opts.close
67
+ showButtonPanel: showButtonPanel
68
+ closeText: closeText
69
+ # Return false to disable a specific date
70
+ beforeShowDay: (currentDate) =>
71
+ return [true] if not disabledDates
67
72
 
68
- dates
73
+ for dateStr in disabledDates.split(',')
74
+ parsedDate = new Date(dateStr)
69
75
 
70
- # TODO: Change this to I18n
71
- _setLanguage: ->
72
- $.extend($.fn.pickadate.defaults, {
73
- monthsFull: [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ],
74
- monthsShort: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ],
75
- weekdaysFull: [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ],
76
- weekdaysShort: [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ],
77
- weekdaysLetter: [ 'S', 'M', 'T', 'W', 'T', 'F', 'S' ],
78
- today: 'Today',
79
- clear: 'Clear',
80
- close: 'Close',
81
- firstDay: 1,
82
- })
76
+ return [false] if (parsedDate.getFullYear() == currentDate.getFullYear() and parsedDate.getDate() == currentDate.getDate() and parsedDate.getMonth() == currentDate.getMonth())
83
77
 
78
+ [true]
@@ -26,6 +26,13 @@ class this.Grid
26
26
  @container.on 'change', 'input[type=checkbox][data-filter]', (ev) =>
27
27
  @_toggleFilterValue(ev.target.dataset.filter, ev.target.dataset.value)
28
28
 
29
+ @container.on 'change', 'select[data-filter], input[type=text][data-filter]', (ev) =>
30
+ filterName = ev.target.dataset.filter
31
+ filter = @form.find("input[name='#{filterName}']")
32
+ filter.val(ev.target.value)
33
+
34
+ @_redrawGrid()
35
+
29
36
  @form.on 'change', 'select[data-filter]', (ev) =>
30
37
  @_redrawGrid()
31
38
 
@@ -52,13 +59,13 @@ class this.Grid
52
59
  @container.html(data.content)
53
60
 
54
61
  @gridCount.text(data.count)
62
+
63
+ @form.on "ajax:complete", (event, data, status, xhr) =>
55
64
  @container.removeClass('loading')
56
65
  @container.find('[data-grid-container]').removeClass('loading')
57
66
 
58
- # @form.on "ajax:complete", (event, data, status, xhr) =>
59
- # console.log 'Complete!'
60
- # @form.on "ajax:error", (event, data, status, xhr) =>
61
- # console.log 'Error!'
67
+ @form.on "ajax:error", (event, data, status, xhr) =>
68
+ toastr['error']('Unfortunately an error took place. Please try again later.')
62
69
 
63
70
  _updateSort: (order, desc)->
64
71
  @orderField.val(order)
@@ -6,26 +6,26 @@ class this.RemoteForm
6
6
  constructor: (forms, opts={}) ->
7
7
  # 'forms' refers to one or more jquery objects whose target is a 'form' tag
8
8
  @forms = forms
9
- # @opts = @_mergeDefaultOpts(opts)
9
+ @opts = @_mergeDefaultOpts(opts)
10
10
  @_setupEvents()
11
11
 
12
12
  # Create listeners and handlers for form events
13
13
  _setupEvents: =>
14
14
  # Handle form start
15
- @forms.on "ajax:beforeSend", (event, data, status, xhr) =>
16
- @_handleBeforeSend(event, data)
15
+ @forms.on "ajax:beforeSend", (xhr, opts) =>
16
+ @opts.handleBeforeSend(xhr, opts)
17
17
 
18
18
  # Handle form success
19
19
  @forms.on "ajax:success", (event, data, status, xhr) =>
20
- @_handleSuccess(event, data)
20
+ @opts.handleSuccess(event, data)
21
21
 
22
22
  # Handle form error
23
23
  @forms.on "ajax:error", (event, data, status, xhr) =>
24
- @_handleError(event, data)
24
+ @opts.handleError(event, data)
25
25
 
26
26
  # Handle form complete
27
27
  @forms.on "ajax:complete", (event, data, status, xhr) =>
28
- @_handleComplete(event, data)
28
+ @opts.handleComplete(event, data)
29
29
 
30
30
  # What happens before AJAX request is sent
31
31
  _handleBeforeSend: (event, data) =>
@@ -81,7 +81,11 @@ class this.RemoteForm
81
81
  window.dataLayer.push
82
82
  'event' : event
83
83
 
84
+ _mergeDefaultOpts: (opts) =>
85
+ default_opts =
86
+ handleBeforeSend: @_handleBeforeSend
87
+ handleSuccess: @_handleSuccess
88
+ handleError: @_handleError
89
+ handleComplete: @_handleComplete
84
90
 
85
- # _mergeDefaultOpts: (opts) =>
86
- # # Some fancy reverse merge goes here
87
- # options =
91
+ $.extend({}, default_opts, opts)
@@ -11,7 +11,6 @@ $nprogress-height: 5px
11
11
  @import 'nprogress-turbolinks5'
12
12
 
13
13
  @import 'integral/support/mixins'
14
- @import 'integral/support/date-picker'
15
14
  @import 'integral/support/scroll-to-top'
16
15
  @import 'integral/support/media-query-indicator'
17
16
  @import 'integral/support/gallery'
@@ -11,14 +11,15 @@ module Integral
11
11
  # Search Engine Optimization
12
12
  # before_render :load_meta_tags
13
13
 
14
- private
15
14
 
16
15
  # Override added as workaround for before_render Rails 5 incompatibility
17
- def render(*args, &blk)
16
+ def render(*args, &block)
18
17
  before_render
19
18
  super
20
19
  end
21
20
 
21
+ private
22
+
22
23
  # Actions that should be carried out before rendering
23
24
  def before_render
24
25
  load_meta_tags
@@ -3,7 +3,7 @@ module Integral
3
3
  # Activity management
4
4
  class ActivitiesController < BaseController
5
5
  before_action :authorize_with_klass
6
- before_action -> { set_grid(Integral::Grids::ActivitiesGrid) }
6
+ before_action -> { set_grid }
7
7
 
8
8
  # POST /grid
9
9
  # AJAX grid for activities
@@ -13,28 +13,107 @@ module Integral
13
13
  end
14
14
  end
15
15
 
16
- # Prevent CSRF attacks by raising an exception.
17
- protect_from_forgery with: :exception
16
+ protect_from_forgery with: :exception # Prevent CSRF attacks by raising an exception.
18
17
 
19
- layout :layout_by_resource
18
+ layout :layout_by_resource # Set layout
20
19
 
21
20
  before_action :authenticate_user! # User Auth
22
21
  before_action :set_locale # User custom locale
23
22
  before_action :set_breadcrumbs # Breadcrumbs
24
-
25
- # Track user activity via paper_trail
26
- before_action :set_paper_trail_whodunnit
23
+ before_action :set_paper_trail_whodunnit # Track user activity via paper_trail
27
24
 
28
25
  # User authorization
29
26
  include Pundit
30
27
  rescue_from Pundit::NotAuthorizedError, with: :user_not_authorized
31
28
 
32
- private
29
+ # GET /
30
+ # Lists all resources
31
+ def index
32
+ respond_to do |format|
33
+ format.html do
34
+ set_grid
35
+ end
36
+
37
+ format.json do
38
+ if params[:gridview].present?
39
+ set_grid
40
+ render json: { content: render_to_string(partial: "integral/backend/#{controller_name}/grid", locals: { grid: @grid }) }
41
+ else
42
+ respond_to_record_selector
43
+ end
44
+ end
45
+ end
46
+ end
47
+
48
+ # GET /new
49
+ # Resource creation screen
50
+ def new
51
+ add_breadcrumb I18n.t('integral.navigation.new'), "new_backend_#{controller_name.singularize}_path".to_sym
52
+ @resource = resource_klass.new
53
+ end
54
+
55
+ # POST /
56
+ # Resource creation
57
+ def create
58
+ add_breadcrumb I18n.t('integral.navigation.create'), "new_backend_#{controller_name.singularize}_path".to_sym
59
+ @resource = resource_klass.new(resource_params)
33
60
 
34
- def respond_with_activities(breadcrumb_url)
61
+ yield if block_given?
62
+
63
+ if @resource.save
64
+ respond_successfully(notification_message('creation_success'), send("edit_backend_#{controller_name.singularize}_path", @resource.id))
65
+ else
66
+ respond_failure(notification_message('creation_failure'), :new)
67
+ end
68
+ end
69
+
70
+ # GET /:id/edit
71
+ # Resource edit screen
72
+ def edit
73
+ add_breadcrumb I18n.t('integral.navigation.edit'), "edit_backend_#{controller_name.singularize}_path".to_sym
74
+ end
75
+
76
+ # PUT /:id
77
+ # Updating a resource
78
+ def update
79
+ if @resource.update(resource_params)
80
+ respond_successfully(notification_message('edit_success'), send("edit_backend_#{controller_name.singularize}_path", @resource.id))
81
+ else
82
+ respond_failure(notification_message('edit_failure'), :edit)
83
+ end
84
+ end
85
+
86
+ # DELETE /:id
87
+ def destroy
88
+ if @resource.destroy
89
+ respond_successfully(notification_message('delete_success'), send("backend_#{controller_name}_path"))
90
+ else
91
+ error_message = @resource.errors.full_messages.to_sentence
92
+ flash[:error] = "#{notification_message('delete_failure')} - #{error_message}"
93
+
94
+ redirect_to send("backend_#{controller_name}_path")
95
+ end
96
+ end
97
+
98
+ # POST /:id/duplicate
99
+ # Duplicate a resource
100
+ def duplicate
101
+ cloned_resource = @resource.dup
102
+
103
+ yield cloned_resource if block_given?
104
+
105
+ if cloned_resource.save
106
+ respond_successfully(notification_message('clone_success'), send("edit_backend_#{controller_name.singularize}_path", cloned_resource.id))
107
+ else
108
+ respond_failure(notification_message('clone_failure'), :edit)
109
+ end
110
+ end
111
+
112
+ # GET /:id/activities
113
+ def activities
35
114
  authorize Version
36
115
 
37
- add_breadcrumb I18n.t('integral.navigation.edit'), breadcrumb_url
116
+ add_breadcrumb I18n.t('integral.navigation.edit'), "edit_backend_#{controller_name.singularize}_path".to_sym
38
117
  add_breadcrumb I18n.t('integral.navigation.activity')
39
118
 
40
119
  @grid = Integral::Grids::ActivitiesGrid.new(activity_grid_options.except('page')) do |scope|
@@ -47,6 +126,18 @@ module Integral
47
126
  end
48
127
  end
49
128
 
129
+ # GET /:id/activities/:id
130
+ def activity
131
+ authorize Version
132
+
133
+ add_breadcrumb I18n.t('integral.navigation.activity'), "activities_backend_#{controller_name.singularize}_url".to_sym
134
+ add_breadcrumb I18n.t('integral.actions.view')
135
+
136
+ @activity = resource_version_klass.find(params[:activity_id]).decorate
137
+ end
138
+
139
+ private
140
+
50
141
  # Redirect user to integral dashboard after successful login
51
142
  def after_sign_in_path_for(_resource)
52
143
  integral.backend_dashboard_path
@@ -77,31 +168,28 @@ module Integral
77
168
  I18n.locale = current_user.locale if current_user.present?
78
169
  end
79
170
 
80
- def respond_to_record_selector(klass)
81
- records = klass.search(params[:search]).order('updated_at DESC').paginate(page: params[:page])
171
+ def respond_to_record_selector
172
+ records = resource_klass.search(params[:search]).order('updated_at DESC').paginate(page: params[:page])
82
173
  render json: { content: render_to_string(partial: 'integral/backend/shared/record_selector/collection', locals: { collection: records }) }
83
174
  end
84
175
 
85
- # def respond_to_record_selector_item(record)
86
- # render json: {
87
- # html: render_to_string('integral/backend/shared/record_selector/record',
88
- # layout: false,
89
- # locals: { :list_item => record.to_list_item }) }
90
- # end
91
-
92
176
  def respond_successfully(flash_message, redirect_path)
93
177
  flash[:notice] = flash_message
94
178
  redirect_to redirect_path
95
179
  end
96
180
 
97
- def respond_failure(message, record, template)
181
+ def respond_failure(message, template, record = nil)
182
+ record = @resource if record.nil?
183
+
98
184
  error_message = record.errors.full_messages.to_sentence
99
185
  flash.now[:error] = "#{message} - #{error_message}"
100
186
  render template, status: :unprocessable_entity
101
187
  end
102
188
 
103
- # Abstract method. Override if providing breadcrumbs
104
- def set_breadcrumbs; end
189
+ def set_breadcrumbs
190
+ add_breadcrumb I18n.t('integral.navigation.dashboard'), :backend_dashboard_path
191
+ add_breadcrumb I18n.t("integral.navigation.#{controller_name}"), "backend_#{controller_name}_path".to_sym
192
+ end
105
193
 
106
194
  def stale_record_recovery_action
107
195
  flash.now[:error] = 'Overwrite prevented. Another user has changed this record ' \
@@ -109,15 +197,63 @@ module Integral
109
197
  render :edit, status: :conflict
110
198
  end
111
199
 
112
- def notification_message(object_namespace, type_namespace)
200
+ def notification_message(type_namespace, object_namespace = nil)
201
+ object_namespace = controller_name if object_namespace.nil?
202
+
113
203
  I18n.t("integral.backend.#{object_namespace}.notification.#{type_namespace}")
114
204
  end
115
205
 
116
- def set_grid(grid_klass)
117
- @grid = grid_klass.new(grid_options.except('page')) do |scope|
206
+ def set_grid
207
+ @grid = resource_grid_klass.new(grid_options.except('page')) do |scope|
118
208
  scope.page(grid_options['page']).per_page(25)
119
209
  end
120
210
  end
211
+
212
+ def resource_klass
213
+ controller_name.classify.constantize
214
+ end
215
+
216
+ def resource_grid_klass
217
+ "Integral::Grids::#{controller_name.classify.pluralize}Grid".constantize
218
+ end
219
+
220
+ def resource_version_klass
221
+ "#{resource_klass}Version".constantize
222
+ end
223
+
224
+ def set_resource
225
+ @resource = resource_klass.find(params[:id])
226
+ end
227
+
228
+ def grid_options
229
+ default_grid_options = { 'order' => 'updated_at',
230
+ 'page' => 1,
231
+ 'descending' => true }
232
+ grid_params = params[:grid].present? ? params[:grid].permit(*white_listed_grid_params) : {}
233
+ grid_params.delete_if { |_k, v| v.empty? }
234
+ default_grid_options.merge(grid_params)
235
+ end
236
+ helper_method :grid_options
237
+
238
+ def activity_grid_options
239
+ default_grid_options = { 'order' => 'date',
240
+ 'page' => 1,
241
+ 'descending' => true,
242
+ 'item_id' => @resource.id,
243
+ 'object' => resource_klass.to_s }
244
+ grid_params = params[:grid].present? ? params[:grid].permit(*white_listed_grid_params) : {}
245
+ grid_params.delete_if { |_k, v| v.empty? }
246
+ default_grid_options.merge(grid_params)
247
+ end
248
+ helper_method :activity_grid_options
249
+
250
+ def white_listed_grid_params
251
+ raise NotImplementedError, 'Specify the accepted grid parameters'
252
+ end
253
+
254
+ def authorize_with_klass
255
+ authorize resource_klass
256
+ end
121
257
  end
122
258
  end
123
259
  end