integral 1.0.1 → 1.5.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 (637) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +11 -49
  3. data/Rakefile +1 -1
  4. data/app/assets/images/integral/defaults/no_image_available.jpg +0 -0
  5. data/app/assets/images/logo.png +0 -0
  6. data/app/assets/javascripts/ckeditor/my_config.js.erb +26 -18
  7. data/app/assets/javascripts/ckeditor/plugins/autoembed/lang/lv.js +8 -0
  8. data/app/assets/javascripts/ckeditor/plugins/autoembed/plugin.js +1 -1
  9. data/app/assets/javascripts/ckeditor/plugins/autogrow/plugin.js +14 -14
  10. data/app/assets/javascripts/ckeditor/plugins/autogrow/samples/autogrow.html +8 -8
  11. data/app/assets/javascripts/ckeditor/plugins/codemirror/css/codemirror.min.css +1 -1
  12. data/app/assets/javascripts/ckeditor/plugins/codemirror/icons/autoformat.png +0 -0
  13. data/app/assets/javascripts/ckeditor/plugins/codemirror/icons/searchcode.png +0 -0
  14. data/app/assets/javascripts/ckeditor/plugins/codemirror/icons/uncommentselectedrange.png +0 -0
  15. data/app/assets/javascripts/ckeditor/plugins/codemirror/images/autocomplete.png +0 -0
  16. data/app/assets/javascripts/ckeditor/plugins/codemirror/images/autoformat.png +0 -0
  17. data/app/assets/javascripts/ckeditor/plugins/codemirror/images/commentselectedrange.png +0 -0
  18. data/app/assets/javascripts/ckeditor/plugins/codemirror/images/searchcode.png +0 -0
  19. data/app/assets/javascripts/ckeditor/plugins/codemirror/images/uncommentselectedrange.png +0 -0
  20. data/app/assets/javascripts/ckeditor/plugins/codemirror/js/beautify.min.js +2 -2
  21. data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.addons.min.js +2 -2
  22. data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.addons.search.min.js +1 -1
  23. data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.min.js +1 -6
  24. data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.mode.bbcodemixed.min.js +1 -1
  25. data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.mode.handlebars.min.js +1 -0
  26. data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.mode.htmlmixed.min.js +2 -2
  27. data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.mode.javascript.min.js +1 -1
  28. data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.mode.php.min.js +3 -3
  29. data/app/assets/javascripts/ckeditor/plugins/codemirror/js/codemirror.mode.twig.min.js +1 -1
  30. data/app/assets/javascripts/ckeditor/plugins/codemirror/lang/bg.js +7 -7
  31. data/app/assets/javascripts/ckeditor/plugins/codemirror/plugin.js +231 -217
  32. data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/darcula.css +46 -0
  33. data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/gruvbox-dark.css +34 -0
  34. data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/idea.css +42 -0
  35. data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/lesser-dark.css +1 -1
  36. data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/lucario.css +37 -0
  37. data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/monokai.css +5 -0
  38. data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/oceanic-next.css +44 -0
  39. data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/shadowfox.css +52 -0
  40. data/app/assets/javascripts/ckeditor/plugins/codemirror/theme/ssms.css +16 -0
  41. data/app/assets/javascripts/ckeditor/plugins/embedbase/lang/ar.js +15 -0
  42. data/app/assets/javascripts/ckeditor/plugins/embedbase/lang/lv.js +15 -0
  43. data/app/assets/javascripts/ckeditor/plugins/embedbase/plugin.js +1 -1
  44. data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/copywidget.png +0 -0
  45. data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/editwidget.png +0 -0
  46. data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/hidpi/copywidget.png +0 -0
  47. data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/hidpi/editwidget.png +0 -0
  48. data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/hidpi/removewidget.png +0 -0
  49. data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/hidpi/widget.png +0 -0
  50. data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/removewidget.png +0 -0
  51. data/app/assets/javascripts/ckeditor/plugins/foundation-callout/icons/widget.png +0 -0
  52. data/app/assets/javascripts/ckeditor/plugins/foundation-callout/plugin.js +86 -0
  53. data/app/assets/javascripts/ckeditor/plugins/image2/dev/assets/image1.jpg +0 -0
  54. data/app/assets/javascripts/ckeditor/plugins/image2/dev/assets/image2.jpg +0 -0
  55. data/app/assets/javascripts/ckeditor/plugins/image2/dev/contents.css +35 -0
  56. data/app/assets/javascripts/ckeditor/plugins/image2/dev/image2.html +339 -0
  57. data/app/assets/javascripts/ckeditor/plugins/image2/dialogs/image2.js +553 -0
  58. data/app/assets/javascripts/ckeditor/plugins/image2/icons/hidpi/image.png +0 -0
  59. data/app/assets/javascripts/ckeditor/plugins/image2/icons/image.png +0 -0
  60. data/app/assets/javascripts/ckeditor/plugins/image2/lang/af.js +21 -0
  61. data/app/assets/javascripts/ckeditor/plugins/image2/lang/ar.js +21 -0
  62. data/app/assets/javascripts/ckeditor/plugins/image2/lang/az.js +21 -0
  63. data/app/assets/javascripts/ckeditor/plugins/image2/lang/bg.js +21 -0
  64. data/app/assets/javascripts/ckeditor/plugins/image2/lang/bn.js +21 -0
  65. data/app/assets/javascripts/ckeditor/plugins/image2/lang/bs.js +21 -0
  66. data/app/assets/javascripts/ckeditor/plugins/image2/lang/ca.js +21 -0
  67. data/app/assets/javascripts/ckeditor/plugins/image2/lang/cs.js +21 -0
  68. data/app/assets/javascripts/ckeditor/plugins/image2/lang/cy.js +21 -0
  69. data/app/assets/javascripts/ckeditor/plugins/image2/lang/da.js +21 -0
  70. data/app/assets/javascripts/ckeditor/plugins/image2/lang/de-ch.js +21 -0
  71. data/app/assets/javascripts/ckeditor/plugins/image2/lang/de.js +21 -0
  72. data/app/assets/javascripts/ckeditor/plugins/image2/lang/el.js +21 -0
  73. data/app/assets/javascripts/ckeditor/plugins/image2/lang/en-au.js +21 -0
  74. data/app/assets/javascripts/ckeditor/plugins/image2/lang/en-ca.js +21 -0
  75. data/app/assets/javascripts/ckeditor/plugins/image2/lang/en-gb.js +21 -0
  76. data/app/assets/javascripts/ckeditor/plugins/image2/lang/en.js +21 -0
  77. data/app/assets/javascripts/ckeditor/plugins/image2/lang/eo.js +21 -0
  78. data/app/assets/javascripts/ckeditor/plugins/image2/lang/es-mx.js +21 -0
  79. data/app/assets/javascripts/ckeditor/plugins/image2/lang/es.js +21 -0
  80. data/app/assets/javascripts/ckeditor/plugins/image2/lang/et.js +21 -0
  81. data/app/assets/javascripts/ckeditor/plugins/image2/lang/eu.js +21 -0
  82. data/app/assets/javascripts/ckeditor/plugins/image2/lang/fa.js +21 -0
  83. data/app/assets/javascripts/ckeditor/plugins/image2/lang/fi.js +21 -0
  84. data/app/assets/javascripts/ckeditor/plugins/image2/lang/fo.js +21 -0
  85. data/app/assets/javascripts/ckeditor/plugins/image2/lang/fr-ca.js +21 -0
  86. data/app/assets/javascripts/ckeditor/plugins/image2/lang/fr.js +21 -0
  87. data/app/assets/javascripts/ckeditor/plugins/image2/lang/gl.js +21 -0
  88. data/app/assets/javascripts/ckeditor/plugins/image2/lang/gu.js +21 -0
  89. data/app/assets/javascripts/ckeditor/plugins/image2/lang/he.js +21 -0
  90. data/app/assets/javascripts/ckeditor/plugins/image2/lang/hi.js +21 -0
  91. data/app/assets/javascripts/ckeditor/plugins/image2/lang/hr.js +21 -0
  92. data/app/assets/javascripts/ckeditor/plugins/image2/lang/hu.js +21 -0
  93. data/app/assets/javascripts/ckeditor/plugins/image2/lang/id.js +21 -0
  94. data/app/assets/javascripts/ckeditor/plugins/image2/lang/is.js +21 -0
  95. data/app/assets/javascripts/ckeditor/plugins/image2/lang/it.js +21 -0
  96. data/app/assets/javascripts/ckeditor/plugins/image2/lang/ja.js +21 -0
  97. data/app/assets/javascripts/ckeditor/plugins/image2/lang/ka.js +21 -0
  98. data/app/assets/javascripts/ckeditor/plugins/image2/lang/km.js +21 -0
  99. data/app/assets/javascripts/ckeditor/plugins/image2/lang/ko.js +21 -0
  100. data/app/assets/javascripts/ckeditor/plugins/image2/lang/ku.js +21 -0
  101. data/app/assets/javascripts/ckeditor/plugins/image2/lang/lt.js +21 -0
  102. data/app/assets/javascripts/ckeditor/plugins/image2/lang/lv.js +21 -0
  103. data/app/assets/javascripts/ckeditor/plugins/image2/lang/mk.js +21 -0
  104. data/app/assets/javascripts/ckeditor/plugins/image2/lang/mn.js +21 -0
  105. data/app/assets/javascripts/ckeditor/plugins/image2/lang/ms.js +21 -0
  106. data/app/assets/javascripts/ckeditor/plugins/image2/lang/nb.js +21 -0
  107. data/app/assets/javascripts/ckeditor/plugins/image2/lang/nl.js +21 -0
  108. data/app/assets/javascripts/ckeditor/plugins/image2/lang/no.js +21 -0
  109. data/app/assets/javascripts/ckeditor/plugins/image2/lang/oc.js +21 -0
  110. data/app/assets/javascripts/ckeditor/plugins/image2/lang/pl.js +21 -0
  111. data/app/assets/javascripts/ckeditor/plugins/image2/lang/pt-br.js +21 -0
  112. data/app/assets/javascripts/ckeditor/plugins/image2/lang/pt.js +21 -0
  113. data/app/assets/javascripts/ckeditor/plugins/image2/lang/ro.js +21 -0
  114. data/app/assets/javascripts/ckeditor/plugins/image2/lang/ru.js +21 -0
  115. data/app/assets/javascripts/ckeditor/plugins/image2/lang/si.js +21 -0
  116. data/app/assets/javascripts/ckeditor/plugins/image2/lang/sk.js +21 -0
  117. data/app/assets/javascripts/ckeditor/plugins/image2/lang/sl.js +21 -0
  118. data/app/assets/javascripts/ckeditor/plugins/image2/lang/sq.js +21 -0
  119. data/app/assets/javascripts/ckeditor/plugins/image2/lang/sr-latn.js +21 -0
  120. data/app/assets/javascripts/ckeditor/plugins/image2/lang/sr.js +21 -0
  121. data/app/assets/javascripts/ckeditor/plugins/image2/lang/sv.js +21 -0
  122. data/app/assets/javascripts/ckeditor/plugins/image2/lang/th.js +21 -0
  123. data/app/assets/javascripts/ckeditor/plugins/image2/lang/tr.js +21 -0
  124. data/app/assets/javascripts/ckeditor/plugins/image2/lang/tt.js +21 -0
  125. data/app/assets/javascripts/ckeditor/plugins/image2/lang/ug.js +21 -0
  126. data/app/assets/javascripts/ckeditor/plugins/image2/lang/uk.js +21 -0
  127. data/app/assets/javascripts/ckeditor/plugins/image2/lang/vi.js +21 -0
  128. data/app/assets/javascripts/ckeditor/plugins/image2/lang/zh-cn.js +21 -0
  129. data/app/assets/javascripts/ckeditor/plugins/image2/lang/zh.js +21 -0
  130. data/app/assets/javascripts/ckeditor/plugins/image2/plugin.js +1720 -0
  131. data/app/assets/javascripts/ckeditor/plugins/image2/samples/assets/image1.jpg +0 -0
  132. data/app/assets/javascripts/ckeditor/plugins/image2/samples/assets/image2.jpg +0 -0
  133. data/app/assets/javascripts/ckeditor/plugins/image2/samples/image2.html +68 -0
  134. data/app/assets/javascripts/ckeditor/plugins/lineutils/dev/dnd.html +4 -4
  135. data/app/assets/javascripts/ckeditor/plugins/lineutils/dev/magicfinger.html +4 -4
  136. data/app/assets/javascripts/ckeditor/plugins/lineutils/plugin.js +7 -7
  137. data/app/assets/javascripts/ckeditor/plugins/linkballoon/README.md +5 -0
  138. data/app/assets/javascripts/ckeditor/plugins/linkballoon/assets/demo.png +0 -0
  139. data/app/assets/javascripts/ckeditor/plugins/linkballoon/plugin.js +25 -0
  140. data/app/assets/javascripts/ckeditor/plugins/notification/lang/az.js +7 -0
  141. data/app/assets/javascripts/ckeditor/plugins/notification/lang/bg.js +7 -0
  142. data/app/assets/javascripts/ckeditor/plugins/notification/lang/ca.js +7 -0
  143. data/app/assets/javascripts/ckeditor/plugins/notification/lang/cs.js +2 -2
  144. data/app/assets/javascripts/ckeditor/plugins/notification/lang/da.js +2 -2
  145. data/app/assets/javascripts/ckeditor/plugins/notification/lang/de-ch.js +2 -2
  146. data/app/assets/javascripts/ckeditor/plugins/notification/lang/de.js +2 -2
  147. data/app/assets/javascripts/ckeditor/plugins/notification/lang/en-au.js +7 -0
  148. data/app/assets/javascripts/ckeditor/plugins/notification/lang/en.js +2 -2
  149. data/app/assets/javascripts/ckeditor/plugins/notification/lang/eo.js +2 -2
  150. data/app/assets/javascripts/ckeditor/plugins/notification/lang/es-mx.js +7 -0
  151. data/app/assets/javascripts/ckeditor/plugins/notification/lang/es.js +7 -0
  152. data/app/assets/javascripts/ckeditor/plugins/notification/lang/et.js +7 -0
  153. data/app/assets/javascripts/ckeditor/plugins/notification/lang/eu.js +2 -2
  154. data/app/assets/javascripts/ckeditor/plugins/notification/lang/fa.js +7 -0
  155. data/app/assets/javascripts/ckeditor/plugins/notification/lang/fr.js +3 -3
  156. data/app/assets/javascripts/ckeditor/plugins/notification/lang/gl.js +2 -2
  157. data/app/assets/javascripts/ckeditor/plugins/notification/lang/hr.js +7 -0
  158. data/app/assets/javascripts/ckeditor/plugins/notification/lang/hu.js +7 -0
  159. data/app/assets/javascripts/ckeditor/plugins/notification/lang/id.js +2 -2
  160. data/app/assets/javascripts/ckeditor/plugins/notification/lang/it.js +2 -2
  161. data/app/assets/javascripts/ckeditor/plugins/notification/lang/ja.js +7 -0
  162. data/app/assets/javascripts/ckeditor/plugins/notification/lang/km.js +2 -2
  163. data/app/assets/javascripts/ckeditor/plugins/notification/lang/ko.js +2 -2
  164. data/app/assets/javascripts/ckeditor/plugins/notification/lang/ku.js +2 -2
  165. data/app/assets/javascripts/ckeditor/plugins/notification/lang/lv.js +7 -0
  166. data/app/assets/javascripts/ckeditor/plugins/notification/lang/nb.js +2 -2
  167. data/app/assets/javascripts/ckeditor/plugins/notification/lang/nl.js +2 -2
  168. data/app/assets/javascripts/ckeditor/plugins/notification/lang/oc.js +7 -0
  169. data/app/assets/javascripts/ckeditor/plugins/notification/lang/pl.js +2 -2
  170. data/app/assets/javascripts/ckeditor/plugins/notification/lang/pt-br.js +2 -2
  171. data/app/assets/javascripts/ckeditor/plugins/notification/lang/pt.js +2 -2
  172. data/app/assets/javascripts/ckeditor/plugins/notification/lang/ro.js +7 -0
  173. data/app/assets/javascripts/ckeditor/plugins/notification/lang/ru.js +2 -2
  174. data/app/assets/javascripts/ckeditor/plugins/notification/lang/sk.js +7 -0
  175. data/app/assets/javascripts/ckeditor/plugins/notification/lang/sq.js +7 -0
  176. data/app/assets/javascripts/ckeditor/plugins/notification/lang/sv.js +2 -2
  177. data/app/assets/javascripts/ckeditor/plugins/notification/lang/tr.js +2 -2
  178. data/app/assets/javascripts/ckeditor/plugins/notification/lang/ug.js +2 -2
  179. data/app/assets/javascripts/ckeditor/plugins/notification/lang/uk.js +2 -2
  180. data/app/assets/javascripts/ckeditor/plugins/notification/lang/zh-cn.js +3 -3
  181. data/app/assets/javascripts/ckeditor/plugins/notification/lang/zh.js +2 -2
  182. data/app/assets/javascripts/ckeditor/plugins/notification/plugin.js +794 -784
  183. data/app/assets/javascripts/ckeditor/plugins/openlink/README.md +50 -0
  184. data/app/assets/javascripts/ckeditor/plugins/openlink/icons/hidpi/openLink.png +0 -0
  185. data/app/assets/javascripts/ckeditor/plugins/openlink/icons/openLink.png +0 -0
  186. data/app/assets/javascripts/ckeditor/plugins/openlink/lang/bg.js +7 -0
  187. data/app/assets/javascripts/ckeditor/plugins/openlink/lang/de.js +7 -0
  188. data/app/assets/javascripts/ckeditor/plugins/openlink/lang/en.js +7 -0
  189. data/app/assets/javascripts/ckeditor/plugins/openlink/lang/pl.js +7 -0
  190. data/app/assets/javascripts/ckeditor/plugins/openlink/lang/ru.js +7 -0
  191. data/app/assets/javascripts/ckeditor/plugins/openlink/lang/uk.js +7 -0
  192. data/app/assets/javascripts/ckeditor/plugins/openlink/plugin.js +178 -0
  193. data/app/assets/javascripts/ckeditor/plugins/placeholder/dev/placeholder.html +5 -5
  194. data/app/assets/javascripts/ckeditor/plugins/placeholder/dialogs/placeholder.js +2 -2
  195. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/af.js +2 -2
  196. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ar.js +2 -2
  197. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/az.js +2 -2
  198. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/bg.js +5 -5
  199. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ca.js +2 -2
  200. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/cs.js +2 -2
  201. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/cy.js +2 -2
  202. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/da.js +2 -2
  203. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/de-ch.js +2 -2
  204. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/de.js +2 -2
  205. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/el.js +2 -2
  206. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/en-au.js +12 -0
  207. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/en-gb.js +2 -2
  208. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/en.js +2 -2
  209. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/eo.js +2 -2
  210. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/es-mx.js +2 -2
  211. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/es.js +2 -2
  212. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/et.js +2 -2
  213. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/eu.js +2 -2
  214. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/fa.js +2 -2
  215. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/fi.js +2 -2
  216. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/fr-ca.js +2 -2
  217. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/fr.js +2 -2
  218. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/gl.js +2 -2
  219. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/he.js +2 -2
  220. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/hr.js +2 -2
  221. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/hu.js +2 -2
  222. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/id.js +2 -2
  223. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/it.js +2 -2
  224. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ja.js +2 -2
  225. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/km.js +2 -2
  226. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ko.js +2 -2
  227. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ku.js +2 -2
  228. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/lv.js +5 -5
  229. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/nb.js +2 -2
  230. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/nl.js +2 -2
  231. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/no.js +2 -2
  232. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/oc.js +2 -2
  233. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/pl.js +2 -2
  234. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/pt-br.js +2 -2
  235. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/pt.js +2 -2
  236. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ro.js +12 -0
  237. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ru.js +2 -2
  238. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/si.js +2 -2
  239. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/sk.js +2 -2
  240. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/sl.js +2 -2
  241. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/sq.js +2 -2
  242. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/sv.js +2 -2
  243. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/th.js +2 -2
  244. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/tr.js +2 -2
  245. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/tt.js +2 -2
  246. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/ug.js +2 -2
  247. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/uk.js +2 -2
  248. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/vi.js +2 -2
  249. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/zh-cn.js +2 -2
  250. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/zh.js +2 -2
  251. data/app/assets/javascripts/ckeditor/plugins/placeholder/plugin.js +3 -3
  252. data/app/assets/javascripts/ckeditor/plugins/placeholder/samples/placeholder.html +6 -6
  253. data/app/assets/javascripts/ckeditor/plugins/widget/dev/assets/simplebox/dialogs/simplebox.js +4 -4
  254. data/app/assets/javascripts/ckeditor/plugins/widget/dev/assets/simplebox/plugin.js +3 -3
  255. data/app/assets/javascripts/ckeditor/plugins/widget/dev/console.js +2 -2
  256. data/app/assets/javascripts/ckeditor/plugins/widget/dev/nestedwidgets.html +2 -2
  257. data/app/assets/javascripts/ckeditor/plugins/widget/dev/widgetstyles.html +2 -2
  258. data/app/assets/javascripts/ckeditor/plugins/widget/lang/af.js +2 -2
  259. data/app/assets/javascripts/ckeditor/plugins/widget/lang/ar.js +2 -2
  260. data/app/assets/javascripts/ckeditor/plugins/widget/lang/az.js +2 -2
  261. data/app/assets/javascripts/ckeditor/plugins/widget/lang/bg.js +3 -3
  262. data/app/assets/javascripts/ckeditor/plugins/widget/lang/ca.js +2 -2
  263. data/app/assets/javascripts/ckeditor/plugins/widget/lang/cs.js +2 -2
  264. data/app/assets/javascripts/ckeditor/plugins/widget/lang/cy.js +2 -2
  265. data/app/assets/javascripts/ckeditor/plugins/widget/lang/da.js +2 -2
  266. data/app/assets/javascripts/ckeditor/plugins/widget/lang/de-ch.js +2 -2
  267. data/app/assets/javascripts/ckeditor/plugins/widget/lang/de.js +2 -2
  268. data/app/assets/javascripts/ckeditor/plugins/widget/lang/el.js +2 -2
  269. data/app/assets/javascripts/ckeditor/plugins/widget/lang/en-au.js +8 -0
  270. data/app/assets/javascripts/ckeditor/plugins/widget/lang/en-gb.js +2 -2
  271. data/app/assets/javascripts/ckeditor/plugins/widget/lang/en.js +2 -2
  272. data/app/assets/javascripts/ckeditor/plugins/widget/lang/eo.js +2 -2
  273. data/app/assets/javascripts/ckeditor/plugins/widget/lang/es-mx.js +2 -2
  274. data/app/assets/javascripts/ckeditor/plugins/widget/lang/es.js +2 -2
  275. data/app/assets/javascripts/ckeditor/plugins/widget/lang/et.js +8 -0
  276. data/app/assets/javascripts/ckeditor/plugins/widget/lang/eu.js +2 -2
  277. data/app/assets/javascripts/ckeditor/plugins/widget/lang/fa.js +3 -3
  278. data/app/assets/javascripts/ckeditor/plugins/widget/lang/fi.js +2 -2
  279. data/app/assets/javascripts/ckeditor/plugins/widget/lang/fr.js +2 -2
  280. data/app/assets/javascripts/ckeditor/plugins/widget/lang/gl.js +2 -2
  281. data/app/assets/javascripts/ckeditor/plugins/widget/lang/he.js +2 -2
  282. data/app/assets/javascripts/ckeditor/plugins/widget/lang/hr.js +2 -2
  283. data/app/assets/javascripts/ckeditor/plugins/widget/lang/hu.js +2 -2
  284. data/app/assets/javascripts/ckeditor/plugins/widget/lang/id.js +2 -2
  285. data/app/assets/javascripts/ckeditor/plugins/widget/lang/it.js +2 -2
  286. data/app/assets/javascripts/ckeditor/plugins/widget/lang/ja.js +2 -2
  287. data/app/assets/javascripts/ckeditor/plugins/widget/lang/km.js +2 -2
  288. data/app/assets/javascripts/ckeditor/plugins/widget/lang/ko.js +2 -2
  289. data/app/assets/javascripts/ckeditor/plugins/widget/lang/ku.js +2 -2
  290. data/app/assets/javascripts/ckeditor/plugins/widget/lang/lv.js +3 -3
  291. data/app/assets/javascripts/ckeditor/plugins/widget/lang/nb.js +2 -2
  292. data/app/assets/javascripts/ckeditor/plugins/widget/lang/nl.js +2 -2
  293. data/app/assets/javascripts/ckeditor/plugins/widget/lang/no.js +2 -2
  294. data/app/assets/javascripts/ckeditor/plugins/widget/lang/oc.js +2 -2
  295. data/app/assets/javascripts/ckeditor/plugins/widget/lang/pl.js +2 -2
  296. data/app/assets/javascripts/ckeditor/plugins/widget/lang/pt-br.js +2 -2
  297. data/app/assets/javascripts/ckeditor/plugins/widget/lang/pt.js +2 -2
  298. data/app/assets/javascripts/ckeditor/plugins/widget/lang/ro.js +8 -0
  299. data/app/assets/javascripts/ckeditor/plugins/widget/lang/ru.js +2 -2
  300. data/app/assets/javascripts/ckeditor/plugins/widget/lang/sk.js +2 -2
  301. data/app/assets/javascripts/ckeditor/plugins/widget/lang/sl.js +2 -2
  302. data/app/assets/javascripts/ckeditor/plugins/widget/lang/sq.js +3 -3
  303. data/app/assets/javascripts/ckeditor/plugins/widget/lang/sv.js +2 -2
  304. data/app/assets/javascripts/ckeditor/plugins/widget/lang/tr.js +2 -2
  305. data/app/assets/javascripts/ckeditor/plugins/widget/lang/tt.js +2 -2
  306. data/app/assets/javascripts/ckeditor/plugins/widget/lang/ug.js +2 -2
  307. data/app/assets/javascripts/ckeditor/plugins/widget/lang/uk.js +2 -2
  308. data/app/assets/javascripts/ckeditor/plugins/widget/lang/vi.js +2 -2
  309. data/app/assets/javascripts/ckeditor/plugins/widget/lang/zh-cn.js +2 -2
  310. data/app/assets/javascripts/ckeditor/plugins/widget/lang/zh.js +2 -2
  311. data/app/assets/javascripts/ckeditor/plugins/widget/plugin.js +235 -64
  312. data/app/assets/javascripts/ckeditor/plugins/widgetselection/plugin.js +6 -11
  313. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/ar.js +1 -0
  314. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/bg.js +17 -0
  315. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/ca.js +1 -0
  316. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/cs.js +15 -0
  317. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/da.js +1 -0
  318. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/de.js +1 -0
  319. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/el.js +1 -0
  320. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/en.js +5 -1
  321. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/es.js +1 -0
  322. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/eu.js +17 -0
  323. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/fa.js +13 -0
  324. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/fi.js +1 -0
  325. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/fr.js +1 -0
  326. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/he.js +1 -0
  327. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/hr.js +1 -0
  328. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/hu.js +14 -0
  329. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/it.js +4 -3
  330. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/ja.js +5 -5
  331. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/ko.js +16 -0
  332. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/nl.js +3 -2
  333. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/no.js +1 -0
  334. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/pl.js +4 -3
  335. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/pt-br.js +1 -0
  336. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/pt.js +1 -0
  337. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/ro.js +15 -0
  338. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/ru.js +2 -1
  339. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/sk.js +15 -0
  340. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/sv.js +5 -3
  341. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/tr.js +1 -0
  342. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/uk.js +17 -0
  343. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/zh-cn.js +1 -0
  344. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/zh.js +14 -0
  345. data/app/assets/javascripts/ckeditor/plugins/wordcount/plugin.js +485 -302
  346. data/app/assets/javascripts/ckeditor/plugins/wordcount/samples/maxParagraphs.html +26 -0
  347. data/app/assets/javascripts/integral/backend.js +197 -26
  348. data/app/assets/javascripts/integral/frontend.js +37 -2
  349. data/app/assets/javascripts/integral/support/character_counter.js +14 -8
  350. data/app/assets/javascripts/integral/support/confirm_modal.coffee +2 -2
  351. data/app/assets/javascripts/integral/support/date_picker.coffee +54 -59
  352. data/app/assets/javascripts/integral/support/gallery.coffee +85 -43
  353. data/app/assets/javascripts/integral/support/grid.coffee +11 -4
  354. data/app/assets/javascripts/integral/support/lib/lazysizes.js +755 -0
  355. data/app/assets/javascripts/integral/support/lib/materialize-tags.js +49 -44
  356. data/app/assets/javascripts/integral/support/list.coffee +1 -0
  357. data/app/assets/javascripts/integral/support/ls.instagram.js +57 -0
  358. data/app/assets/javascripts/integral/support/ls.twitter.js +66 -0
  359. data/app/assets/javascripts/integral/support/record_selector.coffee +3 -1
  360. data/app/assets/javascripts/integral/support/remote_form.coffee +18 -11
  361. data/app/assets/javascripts/integral/support/slug_generator.coffee +1 -0
  362. data/app/assets/stylesheets/integral/backend.sass +36 -24
  363. data/app/assets/stylesheets/integral/backend/_foundation_settings.scss +5 -6
  364. data/app/assets/stylesheets/integral/backend/dashboard-layout.scss +31 -64
  365. data/app/assets/stylesheets/integral/backend/devise.sass +2 -3
  366. data/app/assets/stylesheets/integral/backend/materialize-tags.sass +2 -1
  367. data/app/assets/stylesheets/integral/backend/modules/dropdown_pane_notifications.scss +150 -0
  368. data/app/assets/stylesheets/integral/backend/modules/dropdown_pane_profile.scss +59 -0
  369. data/app/assets/stylesheets/integral/backend/modules/timeline.scss +214 -0
  370. data/app/assets/stylesheets/integral/backend/shared.sass +121 -13
  371. data/app/assets/stylesheets/integral/frontend.scss +45 -0
  372. data/app/assets/stylesheets/integral/frontend/_foundation_settings.scss +2 -2
  373. data/app/assets/stylesheets/integral/frontend/blog.sass +155 -142
  374. data/app/assets/stylesheets/integral/frontend/layout.sass +13 -3
  375. data/app/assets/stylesheets/integral/frontend/modules/article-footer.scss +55 -0
  376. data/app/assets/stylesheets/integral/frontend/modules/article.scss +34 -0
  377. data/app/assets/stylesheets/integral/frontend/modules/horizontal-post.scss +44 -0
  378. data/app/assets/stylesheets/integral/frontend/modules/inline-articles.scss +23 -0
  379. data/app/assets/stylesheets/integral/frontend/modules/latest-post.scss +37 -0
  380. data/app/assets/stylesheets/integral/frontend/modules/list-widget.scss +50 -0
  381. data/app/assets/stylesheets/integral/frontend/modules/piped-list.scss +33 -0
  382. data/app/assets/stylesheets/integral/frontend/modules/post-tags.scss +19 -0
  383. data/app/assets/stylesheets/integral/frontend/modules/scroll-container.scss +9 -0
  384. data/app/assets/stylesheets/integral/frontend/modules/sidebar-articles.scss +42 -0
  385. data/app/assets/stylesheets/integral/frontend/modules/sidebar-tags.scss +6 -0
  386. data/app/assets/stylesheets/integral/frontend/modules/sidebar-widget.scss +47 -0
  387. data/app/assets/stylesheets/integral/frontend/modules/vertical-post.scss +31 -0
  388. data/app/assets/stylesheets/integral/frontend/share_modal.sass +0 -5
  389. data/app/assets/stylesheets/integral/support/gallery.sass +18 -2
  390. data/app/assets/stylesheets/integral/support/media-query-indicator.sass +9 -3
  391. data/app/controllers/integral/application_controller.rb +10 -3
  392. data/app/controllers/integral/backend/activities_controller.rb +31 -26
  393. data/app/controllers/integral/backend/base_controller.rb +265 -26
  394. data/app/controllers/integral/backend/categories_controller.rb +49 -0
  395. data/app/controllers/integral/backend/images_controller.rb +39 -56
  396. data/app/controllers/integral/backend/lists_controller.rb +16 -104
  397. data/app/controllers/integral/backend/notification_subscriptions_controller.rb +23 -0
  398. data/app/controllers/integral/backend/pages_controller.rb +15 -117
  399. data/app/controllers/integral/backend/posts_controller.rb +22 -108
  400. data/app/controllers/integral/backend/settings_controller.rb +7 -8
  401. data/app/controllers/integral/backend/static_pages_controller.rb +14 -0
  402. data/app/controllers/integral/backend/users_controller.rb +61 -79
  403. data/app/controllers/integral/blog_controller.rb +12 -0
  404. data/app/controllers/integral/categories_controller.rb +45 -0
  405. data/app/controllers/integral/pages_controller.rb +7 -3
  406. data/app/controllers/integral/posts_controller.rb +7 -9
  407. data/app/controllers/integral/tags_controller.rb +5 -2
  408. data/app/decorators/integral/base_decorator.rb +16 -0
  409. data/app/decorators/integral/category_decorator.rb +30 -0
  410. data/app/decorators/integral/image_decorator.rb +3 -3
  411. data/app/decorators/integral/list_decorator.rb +1 -13
  412. data/app/decorators/integral/notification/notification_decorator.rb +74 -0
  413. data/app/decorators/integral/page_decorator.rb +1 -13
  414. data/app/decorators/integral/paginating_decorator.rb +6 -0
  415. data/app/decorators/integral/post_decorator.rb +44 -4
  416. data/app/decorators/integral/user_decorator.rb +1 -13
  417. data/app/decorators/integral/version_decorator.rb +58 -15
  418. data/app/helpers/integral/application_helper.rb +7 -0
  419. data/app/helpers/integral/backend/base_helper.rb +139 -13
  420. data/app/helpers/integral/blog_helper.rb +46 -0
  421. data/app/helpers/integral/social_helper.rb +0 -23
  422. data/app/jobs/integral/application_job.rb +1 -0
  423. data/app/jobs/integral/newsletter_signup_job.rb +0 -2
  424. data/app/jobs/integral/webhook/delivery_job.rb +37 -0
  425. data/app/mailers/integral/contact_mailer.rb +4 -1
  426. data/app/mailers/integral/devise_mailer.rb +6 -0
  427. data/app/models/concerns/integral/lazy_contentable.rb +54 -0
  428. data/app/models/concerns/integral/notification/subscribable.rb +67 -0
  429. data/app/models/concerns/integral/webhook/delivery.rb +30 -0
  430. data/app/models/concerns/integral/webhook/observable.rb +23 -0
  431. data/app/models/integral/application_record.rb +9 -0
  432. data/app/models/integral/category.rb +29 -0
  433. data/app/models/integral/category_version.rb +8 -0
  434. data/app/models/integral/image.rb +40 -3
  435. data/app/models/integral/list.rb +11 -4
  436. data/app/models/integral/list_item.rb +15 -16
  437. data/app/models/integral/list_item_connection.rb +6 -0
  438. data/app/models/integral/notification/notification.rb +28 -0
  439. data/app/models/integral/notification/subscription.rb +14 -0
  440. data/app/models/integral/page.rb +32 -10
  441. data/app/models/integral/post.rb +39 -14
  442. data/app/models/integral/user.rb +51 -2
  443. data/app/models/integral/version.rb +2 -2
  444. data/app/models/integral/webhook/endpoint.rb +40 -0
  445. data/app/models/integral/webhook/event.rb +20 -0
  446. data/app/policies/integral/base_policy.rb +7 -11
  447. data/app/policies/integral/category_policy.rb +9 -0
  448. data/app/policies/integral/page_policy.rb +1 -0
  449. data/app/policies/integral/version_policy.rb +0 -8
  450. data/app/serializers/integral/post_serializer.rb +24 -0
  451. data/app/uploaders/integral/avatar_uploader.rb +1 -1
  452. data/app/views/devise/invitations/edit.haml +1 -4
  453. data/app/views/devise/mailer/invitation_instructions.inky-haml +20 -0
  454. data/app/views/devise/sessions/new.haml +2 -2
  455. data/app/views/integral/backend/activities/_activity.haml +21 -0
  456. data/app/views/integral/backend/activities/grid/_dropdown_actions.haml +1 -0
  457. data/app/views/integral/backend/activities/grid/_row_content.haml +13 -0
  458. data/app/views/integral/backend/activities/index.haml +7 -13
  459. data/app/views/integral/backend/activities/shared/_grid.haml +35 -19
  460. data/app/views/integral/backend/activities/shared/index.haml +15 -0
  461. data/app/views/integral/backend/activities/shared/{_log.haml → show.haml} +7 -7
  462. data/app/views/integral/backend/activities/show.haml +1 -1
  463. data/app/views/integral/backend/categories/_modal.haml +24 -0
  464. data/app/views/integral/backend/images/_form.haml +16 -28
  465. data/app/views/integral/backend/images/edit.haml +2 -2
  466. data/app/views/integral/backend/images/grid/_dropdown_actions.haml +5 -0
  467. data/app/views/integral/backend/images/grid/_row_content.haml +5 -0
  468. data/app/views/integral/backend/images/index.haml +11 -17
  469. data/app/views/integral/backend/images/list.haml +11 -0
  470. data/app/views/integral/backend/images/show.haml +26 -0
  471. data/app/views/integral/backend/lists/_form.haml +7 -20
  472. data/app/views/integral/backend/lists/_item_container.haml +1 -1
  473. data/app/views/integral/backend/lists/_item_modal.haml +3 -3
  474. data/app/views/integral/backend/lists/_list_item_fields.haml +3 -2
  475. data/app/views/integral/backend/lists/_manager.haml +11 -13
  476. data/app/views/integral/backend/lists/edit.haml +22 -1
  477. data/app/views/integral/backend/lists/grid/_dropdown_actions.haml +9 -0
  478. data/app/views/integral/backend/lists/grid/_row_content.haml +3 -0
  479. data/app/views/integral/backend/lists/index.haml +11 -17
  480. data/app/views/integral/backend/lists/list.haml +11 -0
  481. data/app/views/integral/backend/lists/show.haml +27 -23
  482. data/app/views/integral/backend/notifications/_notification.haml +21 -0
  483. data/app/views/integral/backend/pages/_form.haml +20 -47
  484. data/app/views/integral/backend/pages/edit.haml +18 -0
  485. data/app/views/integral/backend/pages/grid/_dropdown_actions.haml +11 -0
  486. data/app/views/integral/backend/pages/grid/_row_content.haml +5 -0
  487. data/app/views/integral/backend/pages/index.haml +11 -21
  488. data/app/views/integral/backend/pages/list.haml +15 -0
  489. data/app/views/integral/backend/pages/show.haml +32 -0
  490. data/app/views/integral/backend/posts/_form.haml +19 -51
  491. data/app/views/integral/backend/posts/edit.haml +5 -10
  492. data/app/views/integral/backend/posts/grid/_dropdown_actions.haml +10 -0
  493. data/app/views/integral/backend/posts/grid/_row_content.haml +6 -0
  494. data/app/views/integral/backend/posts/index.haml +13 -19
  495. data/app/views/integral/backend/posts/list.haml +13 -0
  496. data/app/views/integral/backend/posts/new.haml +0 -1
  497. data/app/views/integral/backend/posts/show.haml +31 -0
  498. data/app/views/integral/backend/settings/sections/_social.haml +1 -3
  499. data/app/views/integral/backend/shared/_activity_modal.haml +13 -0
  500. data/app/views/integral/backend/shared/_breadcrumbs.haml +7 -4
  501. data/app/views/integral/backend/shared/_image_preview.haml +10 -3
  502. data/app/views/integral/backend/shared/_image_selector.haml +1 -1
  503. data/app/views/integral/backend/shared/_notification_subscription_toggle.haml +22 -0
  504. data/app/views/integral/backend/shared/action_bar/_index.haml +9 -0
  505. data/app/views/integral/backend/shared/action_bar/_show.haml +3 -0
  506. data/app/views/integral/backend/shared/cards/_at_a_glance.haml +3 -3
  507. data/app/views/integral/backend/shared/cards/_categories.haml +33 -0
  508. data/app/views/integral/backend/{static_pages/_card.haml → shared/cards/_object.haml} +1 -1
  509. data/app/views/integral/backend/shared/cards/_recent_activity.haml +20 -0
  510. data/app/views/integral/backend/shared/cards/_recent_resources.haml +17 -0
  511. data/app/views/integral/backend/shared/cards/_recent_user_activity.haml +1 -0
  512. data/app/views/integral/backend/shared/cards/_top_post_authors.haml +18 -0
  513. data/app/views/integral/backend/shared/cards/_welcome.haml +24 -25
  514. data/app/views/integral/backend/shared/{_empty_grid.haml → grid/_empty.haml} +0 -0
  515. data/app/views/integral/backend/shared/grid/_form.haml +9 -0
  516. data/app/views/integral/backend/shared/grid/_grid.haml +21 -0
  517. data/app/views/integral/backend/shared/{_pagination.haml → grid/_pagination.haml} +0 -0
  518. data/app/views/integral/backend/shared/grid/_row_layout.haml +8 -0
  519. data/app/views/integral/backend/shared/record_selector/_collection.haml +1 -0
  520. data/app/views/integral/backend/shared/record_selector/_modal.haml +9 -10
  521. data/app/views/integral/backend/shared/record_selector/_record.haml +6 -4
  522. data/app/views/integral/backend/static_pages/dashboard.haml +17 -15
  523. data/app/views/integral/backend/users/_form.haml +35 -47
  524. data/app/views/integral/backend/users/edit.haml +1 -1
  525. data/app/views/integral/backend/users/grid/_dropdown_actions.haml +17 -0
  526. data/app/views/integral/backend/users/grid/_row_content.haml +8 -0
  527. data/app/views/integral/backend/users/index.haml +11 -17
  528. data/app/views/integral/backend/users/list.haml +12 -0
  529. data/app/views/integral/backend/users/show.haml +22 -19
  530. data/app/views/integral/categories/show.haml +5 -0
  531. data/app/views/integral/pages/_demo.haml +2 -2
  532. data/app/views/integral/posts/_article_footer.haml +17 -0
  533. data/app/views/integral/posts/_card.haml +11 -0
  534. data/app/views/integral/posts/_latest_post.haml +8 -0
  535. data/app/views/integral/posts/_most_read_section.haml +8 -0
  536. data/app/views/integral/posts/_post.haml +11 -0
  537. data/app/views/integral/posts/_similar_posts.haml +5 -0
  538. data/app/views/integral/posts/index.haml +7 -5
  539. data/app/views/integral/posts/templates/default.haml +35 -35
  540. data/app/views/integral/shared/_share_modal.haml +0 -3
  541. data/app/views/integral/shared/_social_list_items.haml +6 -12
  542. data/app/views/integral/shared/_subscribe_modal.haml +14 -0
  543. data/app/views/integral/shared/blog/_categories.haml +15 -0
  544. data/app/views/integral/shared/blog/_layout.haml +9 -0
  545. data/app/views/integral/shared/blog/_sidebar.haml +10 -0
  546. data/app/views/integral/shared/gallery/_placeholder.haml +2 -2
  547. data/app/views/integral/shared/gallery/_slide.haml +2 -2
  548. data/app/views/integral/shared/gallery/gallery.haml +5 -2
  549. data/app/views/integral/shared/sidebar/_item.haml +8 -0
  550. data/app/views/integral/shared/sidebar/_newsletter_signup.haml +7 -0
  551. data/app/views/integral/shared/sidebar/_popular_posts.haml +7 -0
  552. data/app/views/integral/shared/sidebar/_popular_tags.haml +7 -0
  553. data/app/views/integral/shared/sidebar/_recent_posts.haml +7 -0
  554. data/app/views/integral/tags/index.haml +2 -2
  555. data/app/views/integral/tags/show.haml +3 -6
  556. data/app/views/layouts/integral/backend.html.haml +27 -5
  557. data/app/views/layouts/integral/backend/_create_dropdown.haml +1 -30
  558. data/app/views/layouts/integral/backend/_main_menu_items.haml +1 -91
  559. data/app/views/layouts/integral/frontend.html.haml +3 -3
  560. data/config/initializers/devise.rb +1 -1
  561. data/config/locales/en.yml +131 -56
  562. data/config/routes.rb +2 -0
  563. data/db/migrate/20190414172018_create_webhook_endpoints.rb +10 -0
  564. data/db/migrate/20190929191412_add_integral_post_categories.rb +13 -0
  565. data/db/migrate/20191203090008_add_image_to_integral_categories.rb +6 -0
  566. data/db/migrate/20200401210442_create_category_versions.rb +20 -0
  567. data/db/migrate/20200407022636_create_integral_notifications.rb +25 -0
  568. data/db/migrate/20200421223602_add_status_to_integral_users.rb +5 -0
  569. data/db/seeds.rb +16 -10
  570. data/lib/generators/integral/assets_generator.rb +54 -0
  571. data/lib/generators/integral/install_generator.rb +37 -3
  572. data/lib/generators/integral/views_generator.rb +66 -0
  573. data/lib/generators/templates/app.yml +0 -1
  574. data/lib/generators/templates/integral.rb +5 -0
  575. data/lib/generators/templates/routes.rb +7 -0
  576. data/lib/generators/templates/seeds.rb +2 -0
  577. data/lib/integral.rb +4 -30
  578. data/lib/integral/acts_as_integral.rb +115 -0
  579. data/lib/integral/acts_as_listable.rb +3 -3
  580. data/lib/integral/chart_renderer/base.rb +2 -0
  581. data/lib/integral/content_renderer.rb +3 -3
  582. data/lib/integral/engine.rb +12 -2
  583. data/lib/integral/grids/activities_grid.rb +15 -2
  584. data/lib/integral/grids/lists_grid.rb +1 -0
  585. data/lib/integral/grids/posts_grid.rb +5 -1
  586. data/lib/integral/grids/users_grid.rb +5 -0
  587. data/lib/integral/list_item_renderer.rb +4 -2
  588. data/lib/integral/list_renderer.rb +6 -1
  589. data/lib/integral/middleware/page_router.rb +15 -6
  590. data/lib/integral/router.rb +41 -7
  591. data/lib/integral/version.rb +1 -1
  592. data/lib/integral/widgets/recent_posts.rb +1 -1
  593. data/lib/integral/widgets/swiper_list.rb +3 -2
  594. data/public/images/integral/demo/continous-integration.png +0 -0
  595. data/public/images/integral/demo/foundation-frontend-framework.jpg +0 -0
  596. data/public/images/integral/demo/heroku.png +0 -0
  597. data/public/images/integral/demo/integral-cms-without-hassle.jpg +0 -0
  598. data/public/images/integral/demo/integral-features-activity-tracking.jpg +0 -0
  599. data/public/images/integral/demo/integral-features-contact-form.png +0 -0
  600. data/public/images/integral/demo/integral-features-design.jpg +0 -0
  601. data/public/images/integral/demo/integral-features-dynamic-pages.jpg +0 -0
  602. data/public/images/integral/demo/integral-features-image-management.jpg +0 -0
  603. data/public/images/integral/demo/integral-features-integrated-blog.jpg +0 -0
  604. data/public/images/integral/demo/integral-features-list-management.jpg +0 -0
  605. data/public/images/integral/demo/integral-features-seo-ready.jpg +0 -0
  606. data/public/images/integral/demo/integral-features-user-management.jpg +0 -0
  607. data/public/images/integral/demo/integral-presentation.png +0 -0
  608. data/public/integral/ckeditor_demo_content.html +0 -13
  609. data/spec/factories.rb +30 -8
  610. metadata +322 -127
  611. data/app/assets/javascripts/ckeditor/plugins/wordcount/lang/jp.js +0 -13
  612. data/app/assets/javascripts/integral/support/date_picker/picker.date.js +0 -1435
  613. data/app/assets/javascripts/integral/support/date_picker/picker.js +0 -1132
  614. data/app/assets/stylesheets/integral/frontend.sass +0 -26
  615. data/app/assets/stylesheets/integral/support/date-picker.scss +0 -16
  616. data/app/assets/stylesheets/integral/support/date_picker/_default.date.scss +0 -452
  617. data/app/assets/stylesheets/integral/support/date_picker/_default.scss +0 -201
  618. data/app/assets/stylesheets/integral/support/date_picker/materialize_clockpicker.sass +0 -220
  619. data/app/assets/stylesheets/integral/wysiwyg.sass +0 -13
  620. data/app/views/devise/mailer/invitation_instructions.html.erb +0 -13
  621. data/app/views/integral/backend/activities/_grid.haml +0 -23
  622. data/app/views/integral/backend/activities/shared/_listing.haml +0 -14
  623. data/app/views/integral/backend/images/_grid.haml +0 -16
  624. data/app/views/integral/backend/lists/_grid.haml +0 -16
  625. data/app/views/integral/backend/pages/_grid.haml +0 -21
  626. data/app/views/integral/backend/pages/activities.haml +0 -2
  627. data/app/views/integral/backend/pages/activity.haml +0 -1
  628. data/app/views/integral/backend/pages/edit.html.haml +0 -15
  629. data/app/views/integral/backend/posts/_grid.haml +0 -25
  630. data/app/views/integral/backend/posts/activities.haml +0 -3
  631. data/app/views/integral/backend/posts/activity.haml +0 -1
  632. data/app/views/integral/backend/shared/_grid.haml +0 -18
  633. data/app/views/integral/backend/users/_grid.haml +0 -19
  634. data/app/views/integral/posts/_item.haml +0 -16
  635. data/app/views/integral/shared/_blog_layout.haml +0 -15
  636. data/app/views/integral/shared/_blog_sidebar.haml +0 -49
  637. data/lib/integral/slack_bot.rb +0 -45
@@ -1,5 +1,5 @@
1
1
  - if type == 'Integral::Link'
2
- .responsive-embed.widescreen
3
- %iframe{ src: url, frameborder: '0', allow: 'autoplay; encrypted-media', allowfullscreen: true }
2
+ -# Assumes url is a YouTube embed URL i.e -> https://www.youtube.com/embed/mNzvpFcJXU
3
+ %iframe{ src: "#{url}?enablejsapi=1", frameborder: '0', allow: 'autoplay; encrypted-media', allowfullscreen: true }
4
4
  - else
5
5
  = image_tag image
@@ -1,6 +1,9 @@
1
1
  - if @list.list_items.present?
2
- = render_gallery(@list, { html_classes: 'main-swiper'})
3
- = render_thumb_gallery(@list, { html_classes: 'thumb-swiper'})
2
+ - if @list.list_items.count > 1
3
+ = render_gallery(@list, { html_classes: 'main-swiper'})
4
+ = render_thumb_gallery(@list, { html_classes: 'thumb-swiper'})
5
+ - else
6
+ = Integral::PartialListItemRenderer.new(@list.list_items.first, partial_path: 'integral/shared/gallery/slide').render_item
4
7
  - else
5
8
  %p.text-center
6
9
  Sorry, no media available.
@@ -0,0 +1,8 @@
1
+ .grid-x.list-item
2
+ .cell.small-3.image
3
+ = link_to url do
4
+ = image_tag image, alt: title, class: 'thumbnail' unless image.empty? #TODO: Should thumbnail be here?
5
+ .cell.small-9.data
6
+ = link_to title, url
7
+ %ul.list-unstyled.piped-list
8
+ %li= subtitle
@@ -0,0 +1,7 @@
1
+ .sidebar-widget.newsletter-signup
2
+ = icon('envelope-open')
3
+ %h4= t('integral.blog.widgets.newsletter_signup.title')
4
+ %p= t('integral.blog.widgets.newsletter_signup.subtitle')
5
+ = simple_form_for Integral::NewsletterSignup.new, url: newsletter_signup_url, validate: true, remote: true, html: { class: 'remote-form', data: { 'remote-form-success-message' => t('integral.blog.widgets.newsletter_signup.success') }} do |f|
6
+ = f.input :email, placeholder: t('integral.blog.widgets.newsletter_signup.placeholder'), label: false
7
+ = f.button :submit, t('integral.blog.widgets.newsletter_signup.submit'), class: 'button'
@@ -0,0 +1,7 @@
1
+ - cache [@popular_posts.map(&:id), @popular_posts.maximum(:updated_at)] do
2
+ .sidebar-widget
3
+ %h2.sidebar-widget-title= t('integral.blog.widgets.popular_posts')
4
+ .sidebar-articles
5
+ -# TODO: Use collection rendering - possibly create a post sidebar item partial?
6
+ - @popular_posts.decorate.each do |post|
7
+ = render 'integral/shared/sidebar/item', url: integral.post_url(post), image: post.image(:small), title: post.title, subtitle: t('integral.blog.posted_ago', time: time_ago_in_words(post.published_at))
@@ -0,0 +1,7 @@
1
+ .sidebar-widget
2
+ %h2.sidebar-widget-title= t('integral.blog.widgets.popular_tags')
3
+ .sidebar-tags
4
+ %ul.post-tags
5
+ - @blog_tags.each do |tag|
6
+ %li= link_to tag.name, tag_url(tag.name)
7
+ = link_to 'View All', integral.tags_url, class: 'sidebar-widget-link'
@@ -0,0 +1,7 @@
1
+ - cache [@recent_posts.map(&:id), @recent_posts.maximum(:updated_at)] do
2
+ .sidebar-widget
3
+ %h2.sidebar-widget-title= t('integral.blog.widgets.recent_posts')
4
+ .sidebar-articles
5
+ -# TODO: Use collection rendering - possibly create a post sidebar item partial?
6
+ - @recent_posts.decorate.each do |post|
7
+ = render 'integral/shared/sidebar/item', url: integral.post_url(post), image: post.image(:small), title: post.title, subtitle: t('integral.blog.posted_ago', time: time_ago_in_words(post.published_at))
@@ -1,5 +1,5 @@
1
- = render layout: 'integral/shared/blog_layout', locals: { title: t('.title'), subtitle: t('.subtitle'), image: image_url('integral/posts-hero-banner.jpg')} do
2
- %ul.tag-list
1
+ = render layout: 'integral/shared/blog/layout', locals: { title: t('.title') } do
2
+ %ul.post-tags.text-center
3
3
  - @tags.each do |tag|
4
4
  %li
5
5
  = link_to tag_url(tag.name) do
@@ -1,6 +1,3 @@
1
- = render layout: 'integral/shared/blog_layout', locals: { title: "##{@tag.name}", subtitle: t('.subtitle'), image: image_url('integral/posts-hero-banner.jpg')} do
2
- %ul.post-list
3
- - @tagged_posts.decorate.each do |post|
4
- %li= render partial: 'integral/posts/item', locals: { post: post }
5
- = will_paginate @tagged_posts, renderer: FoundationPagination::Rails
6
-
1
+ = render layout: 'integral/shared/blog/layout', locals: { title: "##{@tag.name}" } do
2
+ = render partial: @tagged_posts.decorate, cached: true
3
+ .center= will_paginate @tagged_posts, renderer: FoundationPagination::Rails
@@ -38,9 +38,28 @@
38
38
  = link_to main_app.root_path, class: 'button clear' do
39
39
  = icon('eye')
40
40
  = t('integral.actions.view_main_site')
41
+ %li
42
+ %button.button-notifications-dropdown{ type: 'button', data: { toggle: 'notifications-dropdown'}}
43
+ - if current_user.notifications.unread.any?
44
+ = icon('circle')
45
+ = icon('bell-o')
46
+ - else
47
+ = icon('bell-o')
48
+ #notifications-dropdown.dropdown-pane.dropdown-pane--notifications{ data: { notifications: true, load_more_url: current_user.multiple_page_notifications? ? notifications_backend_user_url(current_user, page: 2) : '', dropdown: true, hover: 'true', 'hover-pane' => 'true', 'v-offset' => '35', 'hover-delay' => 50 }}
49
+ .section.text-center
50
+ %span.title
51
+ = current_user.notifications.unread.count
52
+ Unread
53
+ %span.subtitle User Notifications
54
+ .section
55
+ %ul.menu.vertical.notification-list
56
+ = render recent_user_notifications.decorate, cached: true
57
+ - if current_user.multiple_page_notifications?
58
+ %p.notification-list-loader.js-loader--notifications
59
+ = icon('spinner', class: 'fa-pulse fa-fw')
41
60
  %li
42
61
  %button.button.clear.avatar{ type: 'button', data: { toggle: 'profile-dropdown'}}= image_tag(current_user.avatar.url(:thumbnail), class: 'avatar')
43
- #profile-dropdown.dropdown-pane{ data: { dropdown: true, hover: 'true', 'hover-pane'=> 'true', 'v-offset'=> '35', 'hover-delay'=> 50 }}
62
+ #profile-dropdown.dropdown-pane.dropdown-pane--profile{ data: { dropdown: true, hover: 'true', 'hover-pane'=> 'true', 'v-offset'=> '35', 'hover-delay'=> 50 }}
44
63
  .section
45
64
  = image_tag(current_user.avatar.url(:thumbnail), class: 'avatar')
46
65
  %span.name= current_user.name
@@ -51,10 +70,10 @@
51
70
  = link_to backend_account_url do
52
71
  = icon('user')
53
72
  %span= t('integral.navigation.profile')
54
- -# %li
55
- -# = link_to new_backend_post_url do
56
- -# = icon('history')
57
- -# %span= t('integral.navigation.activity')
73
+ %li
74
+ = link_to edit_backend_user_url(current_user.id) do
75
+ = icon('cog')
76
+ %span= t('integral.actions.edit_profile')
58
77
  %hr
59
78
  = link_to t('integral.actions.log_out'), destroy_user_session_path, method: :delete, class: 'button hollow'
60
79
 
@@ -91,3 +110,6 @@
91
110
  #content-area
92
111
  = render partial: 'integral/backend/shared/breadcrumbs'
93
112
  = yield
113
+ .record-image
114
+ = render partial: 'integral/backend/shared/image_selector'
115
+ = render partial: 'integral/backend/shared/activity_modal'
@@ -1,30 +1 @@
1
- %ul.menu.vertical
2
- - if policy(Integral::Page).create?
3
- %li
4
- = link_to new_backend_page_url do
5
- = icon('file-text-o')
6
- %span= t('integral.navigation.page')
7
-
8
- - if policy(Integral::Post).create? && Integral.blog_enabled?
9
- %li
10
- = link_to new_backend_post_url do
11
- = icon('rss')
12
- %span= t('integral.navigation.post')
13
-
14
- - if policy(Integral::Image).create?
15
- %li
16
- = link_to new_backend_img_url do
17
- = icon('picture-o')
18
- %span= t('integral.navigation.image')
19
-
20
- - if policy(Integral::List).create?
21
- %li
22
- = link_to new_backend_list_url do
23
- = icon('list')
24
- %span= t('integral.navigation.list')
25
- - if policy(current_user).create?
26
- %li
27
- = link_to new_backend_user_url do
28
- = icon('user')
29
- %span= t('integral.navigation.user')
30
-
1
+ %ul.menu.vertical= render_create_menu
@@ -1,91 +1 @@
1
- %li
2
- = link_to backend_dashboard_url do
3
- = icon('home')
4
- %span= t('integral.navigation.dashboard')
5
-
6
- - if policy(Integral::Page).index?
7
- %li
8
- = link_to backend_pages_url do
9
- = icon('file')
10
- %span= t('integral.navigation.pages')
11
- %ul
12
- %li= t('integral.navigation.pages')
13
- %li
14
- = link_to backend_pages_url do
15
- %span= t('integral.navigation.dashboard')
16
-
17
- - if policy(Integral::Page).create?
18
- %li
19
- = link_to new_backend_page_url do
20
- %span= t('integral.actions.create')
21
-
22
- - if policy(Integral::Post).index? && Integral.blog_enabled?
23
- %li
24
- = link_to backend_posts_url do
25
- = icon('rss')
26
- %span= t('integral.navigation.posts')
27
- %ul
28
- %li= t('integral.navigation.posts')
29
- %li
30
- = link_to backend_posts_url do
31
- %span= t('integral.navigation.dashboard')
32
- - if policy(Integral::Post).create?
33
- %li
34
- = link_to new_backend_post_url do
35
- %span= t('integral.actions.create')
36
-
37
- - if policy(Integral::List).index?
38
- %li
39
- = link_to backend_lists_url do
40
- = icon('list')
41
- %span= t('integral.navigation.lists')
42
- %ul
43
- %li= t('integral.navigation.lists')
44
- %li
45
- = link_to backend_lists_url do
46
- %span= t('integral.navigation.dashboard')
47
- - if policy(Integral::List).create?
48
- %li
49
- = link_to new_backend_list_url do
50
- %span= t('integral.actions.create')
51
-
52
- - if policy(Integral::Image).manager?
53
- %li
54
- = link_to backend_img_index_url do
55
- = icon('picture-o')
56
- %span= t('integral.navigation.images')
57
- %ul
58
- %li= t('integral.navigation.images')
59
- %li
60
- = link_to backend_img_index_url do
61
- %span= t('integral.navigation.dashboard')
62
- - if policy(Integral::Image).create?
63
- %li
64
- = link_to new_backend_img_url do
65
- %span= t('integral.actions.create')
66
-
67
- - if policy(current_user).manager?
68
- %li
69
- = link_to backend_users_url do
70
- = icon('users')
71
- %span=t('integral.navigation.users')
72
- %ul
73
- %li= t('integral.navigation.users')
74
- %li
75
- = link_to backend_users_url do
76
- %span= t('integral.navigation.dashboard')
77
- %li
78
- = link_to new_backend_user_url do
79
- %span= t('integral.actions.create')
80
-
81
- - if policy(Integral::Version).manager?
82
- %li
83
- = link_to backend_activities_url do
84
- = icon('crosshairs')
85
- %span=t('integral.navigation.activities')
86
-
87
- - if current_user.admin?
88
- %li
89
- = link_to backend_settings_url do
90
- = icon('cog')
91
- %span=t('integral.navigation.settings')
1
+ = render_main_menu
@@ -16,19 +16,19 @@
16
16
  = render 'layouts/integral/frontend/admin_bar' if user_signed_in?
17
17
 
18
18
  -# Off Canvas - Mobile Menu
19
- #offCanvas.off-canvas.position-left{ 'data-off-canvas' => true }
19
+ #offCanvas.off-canvas.position-right{ 'data-off-canvas' => true }
20
20
  = link_to site_title, root_url, class: 'site-title'
21
21
  = render_list(main_menu_list, { html_classes: 'menu vertical'})
22
22
 
23
23
  -# Off Canvas - Main Content
24
24
  .off-canvas-content{ 'data-off-canvas-content' => true }
25
- %header
25
+ %header.body-header
26
26
  = render partial: 'layouts/integral/frontend/header'
27
27
 
28
28
  %main
29
29
  = yield
30
30
 
31
- %footer
31
+ %footer.body-footer
32
32
  = render partial: 'layouts/integral/frontend/footer'
33
33
 
34
34
  = render partial: 'integral/shared/share_modal'
@@ -13,7 +13,7 @@ Devise.setup do |config|
13
13
  config.mailer_sender = Proc.new { "#{Integral::Settings.website_title} <#{Integral::Settings.contact_email}>" }
14
14
 
15
15
  # Configure the class responsible to send e-mails.
16
- # config.mailer = 'Devise::Mailer'
16
+ config.mailer = 'Integral::DeviseMailer'
17
17
 
18
18
  # ==> ORM configuration
19
19
  # Load and configure the ORM. Supports :active_record (default) and
@@ -4,7 +4,7 @@ en:
4
4
  default: "%d %B"
5
5
  time:
6
6
  formats:
7
- default: "%B %d, %Y at %l:%M%P"
7
+ default: "%b %d %Y, %l:%M %P"
8
8
  blog: "%B %d, %Y"
9
9
  twelve_hour: "%I:%M %p"
10
10
 
@@ -15,6 +15,44 @@ en:
15
15
  default: "%A, %d %B %Y"
16
16
  long: "%H:%M %d/%m/%Y"
17
17
 
18
+ datetime:
19
+ distance_in_words:
20
+ short:
21
+ half_a_minute: "30s"
22
+ less_than_x_seconds:
23
+ one: "1s"
24
+ other: "%{count}s"
25
+ x_seconds:
26
+ one: "1s"
27
+ other: "%{count}s"
28
+ less_than_x_minutes:
29
+ one: "~1m"
30
+ other: "~%{count}m"
31
+ x_minutes:
32
+ one: "1m"
33
+ other: "%{count}m"
34
+ about_x_hours:
35
+ one: "~1h"
36
+ other: "~%{count}h "
37
+ x_days:
38
+ one: "1d"
39
+ other: "%{count}d"
40
+ about_x_months:
41
+ one: "~1mn"
42
+ other: "~%{count}mn"
43
+ x_months:
44
+ one: "1mn"
45
+ other: "%{count}mn"
46
+ about_x_years:
47
+ one: "~1y"
48
+ other: "~%{count}y"
49
+ over_x_years:
50
+ one: "1y"
51
+ other: "%{count}y"
52
+ almost_x_years:
53
+ one: "~1y"
54
+ other: "~%{count}y"
55
+
18
56
  errors:
19
57
  generic: Unfortunately there was a problem. Please try again later.
20
58
  unauthorized: You are not authorized to perform this action.
@@ -46,14 +84,27 @@ en:
46
84
  forward_enquiry:
47
85
  subject: Website Enquiry
48
86
  actions:
49
- confirm:
87
+ tense:
88
+ past:
89
+ update: Updated
90
+ create: Created
91
+ publish: Published
92
+ destroy: Deleted
93
+ confirmation:
50
94
  deletion: If you delete this item it will be gone forever. Are you sure you want to proceed?
95
+ clone: Are you sure you want to clone this item?
96
+ block: Are you sure you want to block this user?
97
+ unblock: Are you sure you want to unblock this user?
51
98
  new_page: Add new page
52
99
  new_post: Add new post
53
100
  edit_profile: Edit profile
54
101
  add_image: Add Image
55
102
  add_image_or_video: Add an image or video
56
103
  view_main_site: View main site
104
+ view_on_site: View on site
105
+ publish: Publish
106
+ block: Block
107
+ unblock: Unblock
57
108
  create: Create
58
109
  clone: Clone
59
110
  save: Save
@@ -65,20 +116,30 @@ en:
65
116
  view: View
66
117
  view_record: View Record
67
118
  view_user: View User
119
+ view_history: View history
68
120
  read_more: Read more..
69
121
  reply: Reply
70
122
  log_out: Logout
71
123
  upload: Upload
72
- share: Share this
124
+ share: Share
73
125
  apply: Apply
74
126
  select: Select
75
127
  copy_url: Copy URL
76
128
  copied: Copied
77
129
  search: Search
130
+ subscribe: Subscribe
131
+ confirm: Confirm
132
+ cancel: Cancel
133
+ view_all: View All
134
+ view_more: View More
135
+ open_in_new_tab: Open in new tab
78
136
  prompts:
79
137
  select_image: Select Image..
80
138
  select_type: Select Type..
81
139
  unsaved_changes: Changes that you made may not be saved.
140
+ tooltips:
141
+ unsubscribe: Unsubscribe from notifications.
142
+ subscribe: Subscribe to notifications.
82
143
  placeholders:
83
144
  description: Description
84
145
  title: Title
@@ -86,8 +147,12 @@ en:
86
147
  draft: Draft
87
148
  published: Published
88
149
  archived: Archived
150
+ blocked: Blocked
151
+ pending: Pending
152
+ active: Active
89
153
  records:
90
154
  attributes:
155
+ category: Category
91
156
  locale: Language
92
157
  image: Image
93
158
  featured_image: Featured Image
@@ -101,6 +166,7 @@ en:
101
166
  title: Title
102
167
  tags: Tags
103
168
  gallery: Gallery
169
+ type: Type
104
170
  status:
105
171
  archived: Archived
106
172
  draft: Draft
@@ -125,12 +191,13 @@ en:
125
191
  actions: Actions
126
192
  activity: Activity
127
193
  activity_log: Activity Log
128
- profile: My Profile
194
+ profile: My profile
129
195
  quick_links: Quick Links
130
196
  activities: Activities
131
197
  home: Home
132
198
  posts: Posts
133
199
  post: Post
200
+ tags: Tags
134
201
  pages: Pages
135
202
  page: Page
136
203
  users: Users
@@ -142,8 +209,9 @@ en:
142
209
  new: New
143
210
  edit: Edit
144
211
  log_out: Logout
145
- my_account: Account & Profile
212
+ my_account: Account & profile
146
213
  settings: Settings
214
+ listing: Listing
147
215
 
148
216
  posts:
149
217
  index:
@@ -151,6 +219,8 @@ en:
151
219
  subtitle: All things Integral
152
220
  show:
153
221
  subtitle: An interesting read
222
+ footer:
223
+ blurb: Have questions about this article, want to provide feedback or contact us for any reason? Get in touch with us today. We'd love to hear from you.
154
224
  item:
155
225
  read_more: Read More
156
226
  tags:
@@ -162,7 +232,9 @@ en:
162
232
  subtitle: Related Articles
163
233
  description: "All articles tagged %{tag_name} within our blog"
164
234
  blog:
235
+ posted_ago: "Published %{time} ago"
165
236
  widgets:
237
+ most_read: Most Read Articles
166
238
  related_posts: Related Posts
167
239
  recent_posts: Recent Posts
168
240
  popular_posts: Popular Posts
@@ -176,9 +248,27 @@ en:
176
248
  submit: Sign Up
177
249
  success: Great choice! Stay tuned for some quality content direct to your inbox.
178
250
  backend:
251
+ titles:
252
+ new: "New %{type_singular}"
253
+ create: "Create %{type_singular}"
254
+ edit: "Edit %{type_singular}"
255
+ update: "Update %{type_singular}"
256
+ index: "%{type_plural}"
257
+ list: "%{type_singular} Listing"
258
+ notifications:
259
+ clone_success: "%{type} successfully cloned."
260
+ clone_failure: "%{type} clone failed."
261
+ creation_success: "%{type} successfully created."
262
+ creation_failure: "%{type} creation failed."
263
+ edit_success: "%{type} successfully updated."
264
+ edit_failure: "%{type} update failed."
265
+ delete_success: "%{type} successfully deleted."
266
+ delete_failure: "%{type} deletion failed."
179
267
  graphs:
180
268
  data_unavailable: Data Unavailable
181
269
  cards:
270
+ your_activity: Your Activity
271
+ recent_activity: Recent Activity
182
272
  at_a_glance: At a glance
183
273
  last_week: Last week
184
274
  shared:
@@ -203,11 +293,13 @@ en:
203
293
  title: 'Pages'
204
294
  roles:
205
295
  labels:
206
- user_manager: 'User Manager'
207
- image_manager: 'Image Manager'
208
- page_manager: 'Page Manager'
209
- post_manager: 'Post Manager'
210
- list_manager: 'List Manager'
296
+ user_manager: User Manager
297
+ image_manager: Image Manager
298
+ page_manager: Page Manager
299
+ page_reader: Page Reader
300
+ page_editor: Page Editor
301
+ post_manager: Post Manager
302
+ list_manager: List Manager
211
303
  record_selector:
212
304
  posts:
213
305
  record: Post
@@ -221,6 +313,9 @@ en:
221
313
  activities:
222
314
  index:
223
315
  title: Website Activity
316
+ shared:
317
+ index:
318
+ title: "Activities: %{title}"
224
319
  lists:
225
320
  items:
226
321
  type:
@@ -241,14 +336,6 @@ en:
241
336
  columns:
242
337
  title: 'Title'
243
338
  description: 'Description'
244
- notification:
245
- creation_success: 'List successfully created.'
246
- creation_failure: 'List creation failed.'
247
- edit_success: 'List successfully updated.'
248
- edit_failure: 'Failed to update list.'
249
- delete_success: 'List successfully deleted.'
250
- delete_failure: 'Failed to delete list.'
251
-
252
339
  settings:
253
340
  index:
254
341
  title: Settings
@@ -270,14 +357,14 @@ en:
270
357
  google_tag_manager_id: GTM-xxxx
271
358
  twitter_url: https://twitter.com/rails
272
359
  facebook_url: https://www.facebook.com/groups/railsrocks
273
- google_plus_url: https://plus.google.com/communities/101878695540653445908
360
+ instagram_url: https://www.instagram.com/jerryoftheday
361
+ github_url: https://github.com/yamasolutions/integral
274
362
  linkedin_url: https://www.linkedin.com/in/barackobama/
275
363
  youtube_url: https://www.youtube.com/channel/UCUkM9uMpWatT7gVWShgtKFw
276
- instagram_url: jerryoftheday
277
364
  twitter_handler: rails
278
365
  facebook_app_id: 123456789
279
366
  homepage_id: 1
280
- notification:
367
+ notification:
281
368
  successful_update: Settings successfully updated.
282
369
  posts:
283
370
  grid:
@@ -289,7 +376,6 @@ en:
289
376
  views: 'Views'
290
377
  status: 'Status'
291
378
  index:
292
- title: 'Posts'
293
379
  new_post: 'Create post'
294
380
  published_count: "%{count} published"
295
381
  drafts_count: "%{count} drafted"
@@ -298,20 +384,13 @@ en:
298
384
  title: 'Edit Post'
299
385
  new:
300
386
  title: 'New Post'
301
- activities:
302
- title: "Activities: %{title}"
303
- notification:
304
- creation_success: 'Post successfully created.'
305
- creation_failure: 'Post creation failed.'
306
- edit_success: 'Post successfully updated.'
307
- edit_failure: 'Failed to update post.'
308
- delete_success: 'Post successfully deleted.'
309
- delete_failure: 'Failed to delete post.'
310
387
  pages:
311
388
  templates:
312
389
  default: Default
313
390
  prompts:
314
391
  choose_template: Choose Template
392
+ activities:
393
+ title: Page Activity
315
394
  index:
316
395
  title: 'Page listing'
317
396
  non_available: 'No pages available. Try creating one!'
@@ -324,13 +403,6 @@ en:
324
403
  description: 'Description'
325
404
  path: 'Path'
326
405
  last_updated_at: 'Last updated'
327
- notification:
328
- creation_success: 'Page successfully created.'
329
- creation_failure: 'Page creation failed.'
330
- edit_success: 'Page successfully updated.'
331
- edit_failure: 'Failed to update page.'
332
- delete_success: 'Page successfully deleted.'
333
- delete_failure: 'Failed to delete page.'
334
406
  edit:
335
407
  title: 'Editing page - %{title}'
336
408
  new:
@@ -344,15 +416,8 @@ en:
344
416
  title: 'Image listing'
345
417
  no_images_available: 'No images available. Try uploading some!'
346
418
  new_image: 'New image'
347
- notification:
348
- creation_success: 'Image successfully created.'
349
- creation_failure: 'Image creation failed.'
350
- edit_success: 'Image successfully updated.'
351
- edit_failure: 'Failed to update Image.'
352
- delete_success: 'Image successfully deleted.'
353
- delete_failure: 'Failed to delete image.'
354
419
  edit:
355
- title: 'Editing image - %{name}'
420
+ title: Edit Image
356
421
  users:
357
422
  available_locales:
358
423
  en: English
@@ -360,13 +425,6 @@ en:
360
425
  status:
361
426
  draft: 'Draft'
362
427
  published: 'Published'
363
- notification:
364
- creation_success: 'User has been invited.'
365
- creation_failure: 'User already exists.'
366
- edit_success: 'User successfully updated.'
367
- edit_failure: 'Failed to update user.'
368
- delete_success: 'User successfully deleted.'
369
- delete_failure: 'Failed to delete user.'
370
428
  prompts:
371
429
  select_language: 'Select language..'
372
430
  grid:
@@ -407,7 +465,7 @@ en:
407
465
  description: "Summarise the content. This will be displayed in search results and is an important part of on-page SEO. <a target='_blank' href='https://moz.com/learn/seo/meta-description'>Learn More.</a>"
408
466
  path: Path to the record, this will be appended onto the website domain to create a URL. Example - /company/privacy-policy
409
467
  parent: "You can arrange your pages in hierarchies by selecting a top level page for your other pages. <a target='_blank' href='https://en.wikipedia.org/wiki/Breadcrumb_(navigation)#Websites'>Learn More.</a>"
410
- #tag_list: Use key terms to summarise your content and seperate words with '-', i.e. internet-marketing-tips
468
+ tag_list: Use key terms to summarise your content and seperate words with '-', i.e. internet-marketing-tips
411
469
  template: Layout which will be used to render the page.
412
470
 
413
471
  image:
@@ -416,6 +474,8 @@ en:
416
474
  list:
417
475
  title: This is only used for internal reference.
418
476
  description: This is only used for internal reference.
477
+ user:
478
+ notify_me: Subscribe to be notified whenever there is a change to any resource. Otherwise be notified about followed resources only.
419
479
  inputs:
420
480
  file:
421
481
  button_label: 'File'
@@ -441,15 +501,18 @@ en:
441
501
  html_classes: 'HTML Classes'
442
502
  user:
443
503
  locale: 'Language'
504
+ post:
505
+ user: Author
444
506
  settings:
445
507
  website_title: Website title
446
508
  contact_email: Contact form email address
447
509
  google_tag_manager_id: Google Tag Manager ID
448
510
  twitter_url: Twitter profile URL
449
511
  facebook_url: Facebook profile URL
450
- google_plus_url: Google Plus URL
451
512
  linkedin_url: LinkedIn profile URL
452
- youtube_url: Youtube channel URL
513
+ youtube_url: YouTube channel URL
514
+ instagram_url: Instagram URL
515
+ github_url: GitHub URL
453
516
  facebook_app_id: Facebook app ID
454
517
  homepage_id: Homepage Page ID
455
518
  newsletter_api_key_id: Mailchimp API ID
@@ -462,6 +525,12 @@ en:
462
525
  create: 'Invite %{model}'
463
526
 
464
527
  devise:
528
+ invitations:
529
+ edit:
530
+ title: Set your password
531
+ failure:
532
+ user:
533
+ blocked: User account is no longer active.
465
534
  passwords:
466
535
  edit:
467
536
  title: Change your password
@@ -475,3 +544,9 @@ en:
475
544
  someone_invited_you: "%{name} has invited you to %{url}, you can accept it through the link below."
476
545
  ckeditor:
477
546
  populate_editor: Populate editor with example content.
547
+
548
+ activerecord:
549
+ models:
550
+ integral/post:
551
+ one: Post
552
+ other: Posts