integral 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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