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
@@ -2,52 +2,33 @@ module Integral
2
2
  module Backend
3
3
  # Images controller
4
4
  class ImagesController < BaseController
5
- before_action :set_image, only: %i[edit update destroy show]
6
5
  before_action :authorize_with_klass
7
-
8
- # GET /
9
- # Lists all images
10
- def index
11
- respond_to do |format|
12
- format.html do
13
- set_grid(Integral::Grids::ImagesGrid)
14
- end
15
-
16
- format.json do
17
- if params[:gridview].present?
18
- set_grid(Integral::Grids::ImagesGrid)
19
- render json: { content: render_to_string(partial: 'integral/backend/images/grid', locals: { grid: @grid }) }
20
- else
21
- respond_to_record_selector(Integral::Image)
22
- end
23
- end
24
- end
25
- end
6
+ before_action :set_resource, only: %i[edit update destroy show activities activity]
26
7
 
27
8
  # GET /new
28
9
  # Image creation form
29
10
  def new
30
11
  add_breadcrumb I18n.t('integral.navigation.new'), :new_backend_img_path
31
- @image = Image.new
12
+ @resource = Image.new
32
13
  end
33
14
 
34
15
  # POST /
35
16
  # Image creation
36
17
  def create
37
- @image = Image.new(image_params)
18
+ @resource = Image.new(resource_params)
38
19
 
39
20
  if remote_request?
40
- if @image.save
21
+ if @resource.save
41
22
  flash.now[:notice] = notification_message('creation_success')
42
- render json: @image.to_list_item, status: :created
23
+ render json: @resource.to_list_item, status: :created
43
24
  else
44
25
  flash.now[:error] = notification_message('creation_failure')
45
26
  head :unprocessable_entity
46
27
  end
47
- elsif @image.save
48
- respond_successfully(notification_message('creation_success'), edit_backend_img_path(@image))
28
+ elsif @resource.save
29
+ respond_successfully(notification_message('creation_success'), edit_backend_img_path(@resource))
49
30
  else
50
- respond_failure(notification_message('creation_failure'), @image, :new)
31
+ respond_failure(notification_message('creation_failure'), :new)
51
32
  end
52
33
  end
53
34
 
@@ -60,16 +41,16 @@ module Integral
60
41
  # PUT /:id
61
42
  # Updating an image
62
43
  def update
63
- if @image.update(image_params)
44
+ if @resource.update(resource_params)
64
45
  respond_successfully(notification_message('edit_success'), backend_img_index_path)
65
46
  else
66
- respond_failure(notification_message('edit_failure'), @image, :edit)
47
+ respond_failure(notification_message('edit_failure'), :edit)
67
48
  end
68
49
  end
69
50
 
70
51
  # DELETE /:id
71
52
  def destroy
72
- if @image.destroy
53
+ if @resource.destroy
73
54
  respond_successfully(notification_message('delete_success'), backend_img_index_path)
74
55
  else
75
56
  flash[:error] = notification_message('delete_failure')
@@ -79,29 +60,15 @@ module Integral
79
60
 
80
61
  private
81
62
 
82
- def grid_options
83
- default_grid_options = { 'order' => 'updated_at',
84
- 'page' => 1,
85
- 'descending' => true }
86
- grid_params = params[:grid].present? ? params[:grid].permit(:descending, :order, :page, :title) : {}
87
- grid_params.delete_if { |_k, v| v.empty? }
88
- default_grid_options.merge(grid_params)
63
+ def resource_klass
64
+ Integral::Image
89
65
  end
90
- helper_method :grid_options
91
66
 
92
67
  def remote_request?
93
68
  params[:image][:remote].present?
94
69
  end
95
70
 
96
- def authorize_with_klass
97
- authorize Image
98
- end
99
-
100
- def set_image
101
- @image = Image.find(params[:id])
102
- end
103
-
104
- def image_params
71
+ def resource_params
105
72
  params.require(:image).permit(:title, :description, :file, :lock_version)
106
73
  end
107
74
 
@@ -110,8 +77,8 @@ module Integral
110
77
  add_breadcrumb I18n.t('integral.navigation.images'), :backend_img_index_path
111
78
  end
112
79
 
113
- def notification_message(namespace_type)
114
- super('images', namespace_type)
80
+ def white_listed_grid_params
81
+ %i[descending order page user action object title]
115
82
  end
116
83
  end
117
84
  end
@@ -2,9 +2,9 @@ module Integral
2
2
  module Backend
3
3
  # List controller
4
4
  class ListsController < BaseController
5
- before_action :set_list, only: %i[edit update destroy clone]
5
+ before_action :set_resource, only: %i[edit update destroy duplicate]
6
6
  before_action :authorize_with_klass
7
- before_action -> { set_grid(Integral::Grids::ListsGrid) }, only: [:index]
7
+ before_action -> { set_grid }, only: [:index]
8
8
 
9
9
  # GET /
10
10
  # Lists all lists
@@ -17,91 +17,30 @@ module Integral
17
17
  end
18
18
  end
19
19
 
20
- # GET /new
21
- # List creation form
22
- def new
23
- add_breadcrumb I18n.t('integral.breadcrumbs.new'), :new_backend_list_path
24
- @list = List.new
25
- end
26
-
27
- # POST /
28
- # List creation
29
- def create
30
- @list = List.new(list_params)
31
-
32
- if @list.save
33
- respond_successfully(notification_message('creation_success'), edit_backend_list_path(@list))
34
- else
35
- respond_failure(notification_message('creation_failure'), @list, :new)
36
- end
37
- end
38
-
39
- # GET /:id/edit
40
- # List edit form
41
- def edit
42
- @list = List.find(params[:id])
43
-
44
- add_breadcrumb I18n.t('integral.breadcrumbs.edit'), :edit_backend_list_path
45
- end
46
-
47
- # GET /:id/clone
48
- # Clone a list
49
- def clone
50
- title = params[:title].present? ? params[:title] : "#{@list.title} Copy"
51
- title = "#{title} #{SecureRandom.hex[1..5]}" if Integral::List.find_by_title(title).present?
52
-
53
- cloned_list = @list.dup(title)
54
-
55
- if cloned_list.save
56
- respond_successfully(notification_message('creation_success'), backend_list_path(cloned_list))
57
- else
58
- respond_failure(notification_message('creation_failure'), @list, :edit)
59
- end
60
- end
61
-
62
- # PUT /:id
63
- # Updating an list
64
- def update
65
- if @list.update(list_params)
66
- respond_successfully(notification_message('edit_success'), edit_backend_list_path(@list))
67
- else
68
- respond_failure(notification_message('edit_failure'), @list, :edit)
69
- end
70
- end
71
-
72
- # DELETE /:id
73
- def destroy
74
- if @list.destroy
75
- respond_successfully(notification_message('delete_success'), backend_lists_path)
76
- else
77
- error_message = @list.errors.full_messages.to_sentence
78
- flash[:error] = "#{notification_message('delete_failure')} - #{error_message}"
79
- redirect_to backend_lists_path
20
+ # POST /:id/duplicate
21
+ # Duplicate a resource
22
+ def duplicate
23
+ super do |cloned_resource|
24
+ cloned_resource.title = "Copy #{@resource.title}"
80
25
  end
81
26
  end
82
27
 
83
28
  private
84
29
 
85
- def grid_options
86
- default_grid_options = { 'order' => 'updated_at',
87
- 'page' => 1,
88
- 'descending' => true }
89
- grid_params = params[:grid].present? ? params[:grid].permit(:descending, :order, :page, :title) : {}
90
- grid_params.delete_if { |_k, v| v.empty? }
91
- default_grid_options.merge(grid_params)
30
+ def white_listed_grid_params
31
+ %i[descending order page user action object title]
92
32
  end
93
- helper_method :grid_options
94
33
 
95
- def authorize_with_klass
96
- authorize List
34
+ def resource_klass
35
+ Integral::List
97
36
  end
98
37
 
99
- def set_list
100
- @list = List.find(params[:id])
101
- @list.list_items&.order(:priority)
38
+ def set_resource
39
+ @resource = List.find(params[:id])
40
+ @resource.list_items&.order(:priority)
102
41
  end
103
42
 
104
- def list_params
43
+ def resource_params
105
44
  params.require(:list).permit(
106
45
  :title, :description, :html_id, :html_classes, :lock_version, :children, :list_item_limit,
107
46
  list_items_attributes: [
@@ -118,15 +57,6 @@ module Integral
118
57
  target priority description subtitle html_classes _destroy
119
58
  ]
120
59
  end
121
-
122
- def set_breadcrumbs
123
- add_breadcrumb I18n.t('integral.breadcrumbs.dashboard'), :backend_dashboard_path
124
- add_breadcrumb I18n.t('integral.breadcrumbs.lists'), :backend_lists_path
125
- end
126
-
127
- def notification_message(namespace_type)
128
- super('lists', namespace_type)
129
- end
130
60
  end
131
61
  end
132
62
  end
@@ -2,90 +2,18 @@ module Integral
2
2
  module Backend
3
3
  # Pages controller
4
4
  class PagesController < BaseController
5
- before_action :set_page, only: %i[edit update destroy activities activity]
6
5
  before_action :authorize_with_klass, only: %i[index new create edit update destroy]
7
-
8
- # GET /
9
- # Lists all pages
10
- def index
11
- respond_to do |format|
12
- format.html do
13
- set_grid(Integral::Grids::PagesGrid)
14
- end
15
-
16
- format.json do
17
- if params[:gridview].present?
18
- set_grid(Integral::Grids::PagesGrid)
19
- render json: { content: render_to_string(partial: 'integral/backend/pages/grid', locals: { grid: @grid }) }
20
- else
21
- respond_to_record_selector(Integral::Page)
22
- end
23
- end
24
- end
25
- end
26
-
27
- # GET /new
28
- # Page creation form
29
- def new
30
- add_breadcrumb I18n.t('integral.navigation.new'), :new_backend_page_path
31
- @page = Page.new
32
- end
33
-
34
- # POST /
35
- # Page creation
36
- def create
37
- @page = Page.new(page_params)
38
-
39
- if @page.save
40
- respond_successfully(notification_message('creation_success'), edit_backend_page_path(@page))
41
- else
42
- respond_failure(notification_message('creation_failure'), @page, :new)
43
- end
44
- end
45
-
46
- # GET /:id/edit
47
- # Page edit form
48
- def edit
49
- # add_breadcrumb @page.title, backend_page_url(@page)
50
- add_breadcrumb I18n.t('integral.navigation.edit'), :edit_backend_page_path
51
- end
52
-
53
- # PUT /:id
54
- # Updating an page
55
- def update
56
- if @page.update(page_params)
57
- respond_successfully(notification_message('edit_success'), edit_backend_page_path(@page))
58
- else
59
- respond_failure(notification_message('edit_failure'), @page, :edit)
60
- end
61
- end
62
-
63
- # DELETE /:id
64
- def destroy
65
- if @page.destroy
66
- respond_successfully(notification_message('delete_success'), backend_pages_path)
67
- else
68
- error_message = @page.errors.full_messages.to_sentence
69
- flash[:error] = "#{notification_message('delete_failure')} - #{error_message}"
70
- redirect_to backend_pages_path
6
+ before_action :set_resource, only: %i[edit update destroy show activities activity duplicate]
7
+
8
+ # POST /:id/duplicate
9
+ # Duplicate a resource
10
+ def duplicate
11
+ super do |cloned_resource|
12
+ cloned_resource.title = "Copy #{@resource.title[0...Integral.title_length_maximum - 5]}"
13
+ cloned_resource.path += "-#{SecureRandom.hex[1..5]}"
71
14
  end
72
15
  end
73
16
 
74
- # GET /:id/activities
75
- def activities
76
- respond_with_activities(:edit_backend_page_url)
77
- end
78
-
79
- # GET /:id/activities/:id
80
- def activity
81
- authorize Version
82
-
83
- add_breadcrumb I18n.t('integral.navigation.activity'), :activities_backend_page_url
84
- add_breadcrumb I18n.t('integral.actions.view')
85
-
86
- @activity = PageVersion.find(params[:activity_id]).decorate
87
- end
88
-
89
17
  # @return [BasePolicy] current authorization policy
90
18
  def current_policy
91
19
  return policy(@page) if @page
@@ -95,47 +23,16 @@ module Integral
95
23
 
96
24
  private
97
25
 
98
- def grid_options
99
- default_grid_options = { 'order' => 'updated_at',
100
- 'page' => 1,
101
- 'descending' => true }
102
- grid_params = params[:grid].present? ? params[:grid].permit(:descending, :order, :page, :title, :status) : {}
103
- grid_params.delete_if { |_k, v| v.empty? }
104
- default_grid_options.merge(grid_params)
105
- end
106
- helper_method :grid_options
107
-
108
- def activity_grid_options
109
- default_grid_options = { 'order' => 'date',
110
- 'page' => 1,
111
- 'descending' => true,
112
- 'item_id' => @page&.id,
113
- 'object' => 'Integral::Page' }
114
- grid_params = params[:grid].present? ? params[:grid].permit(:descending, :order, :page, :user, :action, :object) : {}
115
- grid_params.delete_if { |_k, v| v.empty? }
116
- default_grid_options.merge(grid_params)
117
- end
118
- helper_method :activity_grid_options
119
-
120
- def authorize_with_klass
121
- authorize Page
122
- end
123
-
124
- def set_page
125
- @page = Page.find(params[:id])
126
- end
127
-
128
- def page_params
26
+ def resource_params
129
27
  params.require(:page).permit(current_policy.permitted_attributes)
130
28
  end
131
29
 
132
- def set_breadcrumbs
133
- add_breadcrumb I18n.t('integral.navigation.dashboard'), :backend_dashboard_path
134
- add_breadcrumb I18n.t('integral.navigation.pages'), :backend_pages_path
30
+ def white_listed_grid_params
31
+ %i[descending order page user action object title status]
135
32
  end
136
33
 
137
- def notification_message(namespace_type)
138
- super('pages', namespace_type)
34
+ def resource_klass
35
+ Integral::Page
139
36
  end
140
37
  end
141
38
  end
@@ -2,130 +2,43 @@ module Integral
2
2
  module Backend
3
3
  # Post management
4
4
  class PostsController < BaseController
5
- before_action :set_post, only: %i[edit update destroy show activities activity]
6
-
7
- # GET /
8
- # Lists all posts
9
- def index
10
- respond_to do |format|
11
- format.html do
12
- set_grid(Integral::Grids::PostsGrid)
13
- end
14
-
15
- format.json do
16
- if params[:gridview].present?
17
- set_grid(Integral::Grids::PostsGrid)
18
- render json: { content: render_to_string(partial: 'integral/backend/posts/grid', locals: { grid: @grid }) }
19
- else
20
- respond_to_record_selector(Integral::Post)
21
- end
22
- end
5
+ before_action :authorize_with_klass, only: %i[index new create edit update destroy]
6
+ before_action :set_resource, only: %i[edit update destroy show activities activity duplicate]
7
+
8
+ # POST /:id/duplicate
9
+ # Duplicate a resource
10
+ def duplicate
11
+ super do |cloned_resource|
12
+ cloned_resource.title = "Copy #{@resource.title[0...Integral.title_length_maximum - 5]}"
13
+ cloned_resource.view_count = 0
14
+ cloned_resource.tag_list = @resource.tag_list_on(@resource.tag_context)
15
+ cloned_resource.slug = @resource.slug
16
+ cloned_resource.status = :draft
23
17
  end
24
18
  end
25
19
 
26
20
  # GET /new
27
- # Post creation form
21
+ # Post creation screen
28
22
  def new
29
- add_breadcrumb I18n.t('integral.navigation.new'), :new_backend_post_path
30
- @post = Post.new
31
- end
32
-
33
- # POST /
34
- # Post creation
35
- def create
36
- @post = Post.new(post_params)
37
- @post.user = current_user
38
-
39
- if @post.save
40
- respond_successfully(notification_message('creation_success'), edit_backend_post_path(@post.id))
41
- else
42
- respond_failure(notification_message('creation_failure'), @post, :new)
43
- end
44
- end
45
-
46
- # GET /:id/edit
47
- # Post edit form
48
- def edit
49
- add_breadcrumb I18n.t('integral.navigation.edit'), :edit_backend_post_path
50
- end
51
-
52
- # PUT /:id
53
- # Updating a post
54
- def update
55
- if @post.update(post_params)
56
- respond_successfully(notification_message('edit_success'), edit_backend_post_path(@post.id))
57
- else
58
- respond_failure(notification_message('edit_failure'), @post, :edit)
59
- end
60
- end
61
-
62
- # DELETE /:id
63
- def destroy
64
- if @post.destroy
65
- respond_successfully(notification_message('delete_success'), backend_posts_path)
66
- else
67
- flash[:error] = notification_message('delete_failure')
68
- redirect_to backend_posts_path
69
- end
70
- end
71
-
72
- # GET /:id/activities
73
- def activities
74
- respond_with_activities(:edit_backend_post_url)
75
- end
76
-
77
- # GET /:id/activities/:id
78
- def activity
79
- authorize Version
80
-
81
- add_breadcrumb I18n.t('integral.navigation.activity'), :activities_backend_post_url
82
- add_breadcrumb I18n.t('integral.actions.view')
83
-
84
- @activity = PostVersion.find(params[:activity_id]).decorate
23
+ super
24
+ @resource.user = current_user
85
25
  end
86
26
 
87
27
  private
88
28
 
89
- def grid_options
90
- default_grid_options = { 'order' => 'updated_at',
91
- 'page' => 1,
92
- 'descending' => true }
93
- grid_params = params[:grid].present? ? params[:grid].permit(:descending, :order, :page, :title, :user, :status) : {}
94
- grid_params.delete_if { |_k, v| v.empty? }
95
- default_grid_options.merge(grid_params)
96
- end
97
- helper_method :grid_options
98
-
99
- def activity_grid_options
100
- default_grid_options = { 'order' => 'date',
101
- 'page' => 1,
102
- 'descending' => true,
103
- 'item_id' => @post.id,
104
- 'object' => 'Integral::Post' }
105
- grid_params = params[:grid].present? ? params[:grid].permit(:descending, :order, :page, :user, :action, :object) : {}
106
- grid_params.delete_if { |_k, v| v.empty? }
107
- default_grid_options.merge(grid_params)
108
- end
109
- helper_method :activity_grid_options
110
-
111
- def set_post
112
- @post = Post.find(params[:id])
113
- end
114
-
115
- def post_params
116
- permitted_post_params = %i[title slug body description tag_list image_id preview_image_id status lock_version]
29
+ def resource_params
30
+ permitted_post_params = %i[title slug body description tag_list image_id preview_image_id status lock_version user_id]
117
31
 
118
32
  permitted_post_params.concat Integral.additional_post_params
119
33
  params.require(:post).permit(*permitted_post_params)
120
34
  end
121
35
 
122
- def set_breadcrumbs
123
- add_breadcrumb I18n.t('integral.navigation.dashboard'), :backend_dashboard_path
124
- add_breadcrumb I18n.t('integral.navigation.posts'), :backend_posts_path
36
+ def white_listed_grid_params
37
+ %i[descending order page user action object title status]
125
38
  end
126
39
 
127
- def notification_message(namespace_type)
128
- super('posts', namespace_type)
40
+ def resource_klass
41
+ Integral::Post
129
42
  end
130
43
  end
131
44
  end