dm_cms 4.2.1.5

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 (298) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +22 -0
  3. data/README.md +31 -0
  4. data/Rakefile +34 -0
  5. data/app/assets/javascripts/dm_cms/admin.js +58 -0
  6. data/app/assets/javascripts/dm_cms/application.js +16 -0
  7. data/app/assets/stylesheets/dm_cms/admin.css +3 -0
  8. data/app/assets/stylesheets/dm_cms/application.css +13 -0
  9. data/app/controllers/dm_cms/admin/admin_controller.rb +14 -0
  10. data/app/controllers/dm_cms/admin/cms_blogs_controller.rb +89 -0
  11. data/app/controllers/dm_cms/admin/cms_contentitems_controller.rb +96 -0
  12. data/app/controllers/dm_cms/admin/cms_pages_controller.rb +100 -0
  13. data/app/controllers/dm_cms/admin/cms_posts_controller.rb +67 -0
  14. data/app/controllers/dm_cms/admin/cms_snippets_controller.rb +73 -0
  15. data/app/controllers/dm_cms/admin/dashboard_controller.rb +12 -0
  16. data/app/controllers/dm_cms/admin/media_files_controller.rb +80 -0
  17. data/app/controllers/dm_cms/application_controller.rb +9 -0
  18. data/app/controllers/dm_cms/blogs_controller.rb +50 -0
  19. data/app/controllers/dm_cms/comments_controller.rb +3 -0
  20. data/app/controllers/dm_cms/contact_form_controller.rb +27 -0
  21. data/app/controllers/dm_cms/pages_controller.rb +67 -0
  22. data/app/controllers/dm_cms/posts_controller.rb +69 -0
  23. data/app/datatables/blog_user_datatable.rb +79 -0
  24. data/app/helpers/dm_cms/analytics_helper.rb +27 -0
  25. data/app/helpers/dm_cms/application_helper.rb +4 -0
  26. data/app/helpers/dm_cms/cms_contentitems_helper.rb +8 -0
  27. data/app/helpers/dm_cms/cms_pages_helper.rb +30 -0
  28. data/app/helpers/dm_cms/pages_helper.rb +204 -0
  29. data/app/helpers/dm_cms/posts_helper.rb +26 -0
  30. data/app/helpers/dm_cms/render_helper.rb +50 -0
  31. data/app/inputs/media_input.rb +17 -0
  32. data/app/liquid/tags/markdown.rb +30 -0
  33. data/app/mailers/post_notify_mailer.rb +36 -0
  34. data/app/models/cms_blog.rb +89 -0
  35. data/app/models/cms_contentitem.rb +76 -0
  36. data/app/models/cms_page.rb +227 -0
  37. data/app/models/cms_post.rb +76 -0
  38. data/app/models/cms_snippet.rb +42 -0
  39. data/app/models/contact_form.rb +28 -0
  40. data/app/models/dm_cms/concerns/ability.rb +54 -0
  41. data/app/models/dm_cms/permitted_params.rb +34 -0
  42. data/app/models/media_file.rb +102 -0
  43. data/app/presenters/cms_blog_presenter.rb +15 -0
  44. data/app/presenters/cms_page_presenter.rb +23 -0
  45. data/app/presenters/cms_post_presenter.rb +11 -0
  46. data/app/presenters/cms_snippet_presenter.rb +10 -0
  47. data/app/uploaders/media_uploader.rb +169 -0
  48. data/app/views/customized/analytics/_google_analytics.html.erb +11 -0
  49. data/app/views/dm_cms/admin/cms_blogs/_form.html.erb +34 -0
  50. data/app/views/dm_cms/admin/cms_blogs/edit.html.erb +2 -0
  51. data/app/views/dm_cms/admin/cms_blogs/index.html.erb +44 -0
  52. data/app/views/dm_cms/admin/cms_blogs/new.html.erb +2 -0
  53. data/app/views/dm_cms/admin/cms_blogs/show.html.erb +167 -0
  54. data/app/views/dm_cms/admin/cms_contentitems/_form.html.erb +43 -0
  55. data/app/views/dm_cms/admin/cms_contentitems/_form_dialog.html.erb +17 -0
  56. data/app/views/dm_cms/admin/cms_contentitems/edit.html.erb +1 -0
  57. data/app/views/dm_cms/admin/cms_contentitems/markdown.html.erb +21 -0
  58. data/app/views/dm_cms/admin/cms_contentitems/new_content.html.erb +1 -0
  59. data/app/views/dm_cms/admin/cms_pages/_content_toolbar.html.erb +11 -0
  60. data/app/views/dm_cms/admin/cms_pages/_form.html.erb +50 -0
  61. data/app/views/dm_cms/admin/cms_pages/_tree.html.erb +20 -0
  62. data/app/views/dm_cms/admin/cms_pages/_tree_sidebar.html.erb +8 -0
  63. data/app/views/dm_cms/admin/cms_pages/edit.html.erb +2 -0
  64. data/app/views/dm_cms/admin/cms_pages/index.html.erb +32 -0
  65. data/app/views/dm_cms/admin/cms_pages/new_page.html.erb +2 -0
  66. data/app/views/dm_cms/admin/cms_pages/show.html.erb +54 -0
  67. data/app/views/dm_cms/admin/cms_posts/_form.html.erb +59 -0
  68. data/app/views/dm_cms/admin/cms_posts/edit.html.erb +2 -0
  69. data/app/views/dm_cms/admin/cms_posts/new.html.erb +1 -0
  70. data/app/views/dm_cms/admin/cms_snippets/_form.html.erb +28 -0
  71. data/app/views/dm_cms/admin/cms_snippets/edit.html.erb +1 -0
  72. data/app/views/dm_cms/admin/cms_snippets/index.html.erb +29 -0
  73. data/app/views/dm_cms/admin/cms_snippets/new.html.erb +1 -0
  74. data/app/views/dm_cms/admin/dashboard/_widget_blog_comments.html.erb +37 -0
  75. data/app/views/dm_cms/admin/dashboard/widget_blog_comments.js.erb +1 -0
  76. data/app/views/dm_cms/admin/media_files/_form.html.erb +102 -0
  77. data/app/views/dm_cms/admin/media_files/edit.html.erb +3 -0
  78. data/app/views/dm_cms/admin/media_files/index.html.erb +98 -0
  79. data/app/views/dm_cms/admin/media_files/new.html.erb +3 -0
  80. data/app/views/dm_cms/admin/shared/_liquid_tags_ref.html.erb +35 -0
  81. data/app/views/dm_cms/blogs/show.html.erb +0 -0
  82. data/app/views/dm_cms/blogs/toggle_follow.js.coffee +5 -0
  83. data/app/views/dm_cms/contact_form/create.html.erb +2 -0
  84. data/app/views/dm_cms/contact_form/create.js.erb +2 -0
  85. data/app/views/dm_cms/pages/_content_fragment.html.erb +13 -0
  86. data/app/views/dm_cms/pages/_snippet_fragment.html.erb +12 -0
  87. data/app/views/dm_cms/pages/coming_soon.html.erb +2 -0
  88. data/app/views/dm_cms/pages/show.html.erb +0 -0
  89. data/app/views/dm_cms/posts/show.html.erb +0 -0
  90. data/app/views/dm_cms/shared/_comment.html.erb +22 -0
  91. data/app/views/dm_cms/shared/_comment_form.html.erb +16 -0
  92. data/app/views/dm_cms/shared/_comment_list.html.erb +11 -0
  93. data/app/views/dm_cms/shared/_social_buttons.html.erb +6 -0
  94. data/app/views/layouts/email_templates/dm_cms_email_layout.html.erb +320 -0
  95. data/app/views/layouts/email_templates/dm_cms_email_layout.text.erb +1 -0
  96. data/app/views/layouts/email_templates/dm_cms_post_notify.html.erb +13 -0
  97. data/app/views/layouts/email_templates/dm_cms_post_notify.text.erb +9 -0
  98. data/app/views/liquid_tags/_contact_form.html.erb +17 -0
  99. data/config/initializers/liquid_init.rb +2 -0
  100. data/config/locales/cms.cs.yml +42 -0
  101. data/config/locales/cms.de.yml +42 -0
  102. data/config/locales/cms.en.yml +42 -0
  103. data/config/locales/cms.fi.yml +42 -0
  104. data/config/locales/cms.ja.yml +42 -0
  105. data/config/routes.rb +70 -0
  106. data/db/migrate/20121103181909_create_cms.rb +91 -0
  107. data/db/migrate/20130206213720_add_account_to_cms.rb +10 -0
  108. data/db/migrate/20130507123255_create_blog.rb +61 -0
  109. data/db/migrate/20130531212537_add_notification_sent.rb +5 -0
  110. data/db/migrate/20130605184116_add_blog_comment.rb +7 -0
  111. data/db/migrate/20131128201053_add_blog_image.rb +5 -0
  112. data/db/migrate/20140217135228_rename_snippet_slug.rb +13 -0
  113. data/db/migrate/20140303121217_add_requires_subscription_blog.rb +7 -0
  114. data/db/migrate/20140328205246_add_pages_ranked_model.rb +22 -0
  115. data/db/migrate/20140423113417_add_blog_owner.rb +6 -0
  116. data/db/migrate/20140428122156_create_media_files.rb +29 -0
  117. data/db/migrate/20140523134543_add_cmspage_summary.rb +6 -0
  118. data/db/migrate/20140601151631_add_blog_image_email_header.rb +5 -0
  119. data/db/migrate/20141004154725_add_header_image.rb +9 -0
  120. data/db/migrate/20160821150108_index_foreign_keys_in_cms_blogs.rb +6 -0
  121. data/db/migrate/20160821150109_index_foreign_keys_in_cms_media_files.rb +6 -0
  122. data/db/migrate/20160821150110_index_foreign_keys_in_cms_posts.rb +6 -0
  123. data/lib/dm_cms.rb +4 -0
  124. data/lib/dm_cms/engine.rb +16 -0
  125. data/lib/dm_cms/liquid/filters/liquid_filters.rb +11 -0
  126. data/lib/dm_cms/liquid/tags/contact_form.rb +35 -0
  127. data/lib/dm_cms/liquid/tags/div.rb +42 -0
  128. data/lib/dm_cms/liquid/tags/image.rb +76 -0
  129. data/lib/dm_cms/liquid/tags/quote.rb +38 -0
  130. data/lib/dm_cms/liquid/tags/snippet.rb +37 -0
  131. data/lib/dm_cms/liquid/tags/url_asset.rb +41 -0
  132. data/lib/dm_cms/liquid/tags/url_media.rb +42 -0
  133. data/lib/dm_cms/liquid/tags/url_protected.rb +31 -0
  134. data/lib/tasks/dm_cms_tasks.rake +4 -0
  135. data/spec/controllers/admin/cms_blogs_controller_spec.rb +173 -0
  136. data/spec/controllers/admin/cms_pages_controller_spec.rb +182 -0
  137. data/spec/controllers/admin/cms_posts_controller_spec.rb +166 -0
  138. data/spec/dummy/README.rdoc +28 -0
  139. data/spec/dummy/Rakefile +6 -0
  140. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  141. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  142. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  143. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  144. data/spec/dummy/app/models/ability.rb +12 -0
  145. data/spec/dummy/app/models/user.rb +6 -0
  146. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  147. data/spec/dummy/bin/bundle +3 -0
  148. data/spec/dummy/bin/rails +4 -0
  149. data/spec/dummy/bin/rake +4 -0
  150. data/spec/dummy/config.ru +4 -0
  151. data/spec/dummy/config/application.rb +26 -0
  152. data/spec/dummy/config/boot.rb +5 -0
  153. data/spec/dummy/config/database.yml +25 -0
  154. data/spec/dummy/config/environment.rb +5 -0
  155. data/spec/dummy/config/environments/development.rb +37 -0
  156. data/spec/dummy/config/environments/production.rb +82 -0
  157. data/spec/dummy/config/environments/test.rb +39 -0
  158. data/spec/dummy/config/initializers/_themes_for_rails.rb +39 -0
  159. data/spec/dummy/config/initializers/account_initialization.rb +28 -0
  160. data/spec/dummy/config/initializers/assets.rb +8 -0
  161. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  162. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  163. data/spec/dummy/config/initializers/dm_core.rb +6 -0
  164. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  165. data/spec/dummy/config/initializers/inflections.rb +16 -0
  166. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  167. data/spec/dummy/config/initializers/session_store.rb +3 -0
  168. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  169. data/spec/dummy/config/locales/en.yml +23 -0
  170. data/spec/dummy/config/routes.rb +19 -0
  171. data/spec/dummy/config/secrets.yml +22 -0
  172. data/spec/dummy/db/development.sqlite3 +0 -0
  173. data/spec/dummy/db/migrate/20141114170927_add_globalize_countries.dm_core.rb +50 -0
  174. data/spec/dummy/db/migrate/20141114170928_devise_create_users.dm_core.rb +46 -0
  175. data/spec/dummy/db/migrate/20141114170929_add_user_fields.dm_core.rb +14 -0
  176. data/spec/dummy/db/migrate/20141114170930_rolify_create_roles.dm_core.rb +20 -0
  177. data/spec/dummy/db/migrate/20141114170931_add_last_access.dm_core.rb +10 -0
  178. data/spec/dummy/db/migrate/20141114170932_create_versions.dm_core.rb +19 -0
  179. data/spec/dummy/db/migrate/20141114170933_add_object_changes_column_to_versions.dm_core.rb +12 -0
  180. data/spec/dummy/db/migrate/20141114170934_create_dm_core_accounts.dm_core.rb +13 -0
  181. data/spec/dummy/db/migrate/20141114170935_add_account_to_users.dm_core.rb +9 -0
  182. data/spec/dummy/db/migrate/20141114170936_create_preferences.dm_core.rb +13 -0
  183. data/spec/dummy/db/migrate/20141114170937_create_comments.dm_core.rb +22 -0
  184. data/spec/dummy/db/migrate/20141114170938_add_activity.dm_core.rb +21 -0
  185. data/spec/dummy/db/migrate/20141114170939_add_type_to_comments.dm_core.rb +9 -0
  186. data/spec/dummy/db/migrate/20141114170940_add_category.dm_core.rb +28 -0
  187. data/spec/dummy/db/migrate/20141114170941_create_email_table.dm_core.rb +26 -0
  188. data/spec/dummy/db/migrate/20141114170942_add_user_profile.dm_core.rb +46 -0
  189. data/spec/dummy/db/migrate/20141114170943_add_profile_email.dm_core.rb +14 -0
  190. data/spec/dummy/db/migrate/20141114170944_create_payment_history.dm_core.rb +37 -0
  191. data/spec/dummy/db/migrate/20141114170945_change_anchor_field.dm_core.rb +10 -0
  192. data/spec/dummy/db/migrate/20141114170946_create_user_site_profile.dm_core.rb +27 -0
  193. data/spec/dummy/db/migrate/20141114170947_add_avatar.dm_core.rb +12 -0
  194. data/spec/dummy/db/migrate/20141114170948_add_notify_to_payment_history.dm_core.rb +8 -0
  195. data/spec/dummy/db/migrate/20141114170949_acts_as_votable_migration.dm_core.rb +28 -0
  196. data/spec/dummy/db/migrate/20141114170950_add_user_site_profile_uuid.dm_core.rb +19 -0
  197. data/spec/dummy/db/migrate/20141114170951_add_invoice_id.dm_core.rb +7 -0
  198. data/spec/dummy/db/migrate/20141114170952_acts_as_follower_migration.dm_core.rb +18 -0
  199. data/spec/dummy/db/migrate/20141114170953_rename_invoice_id.dm_core.rb +12 -0
  200. data/spec/dummy/db/migrate/20141114170954_add_core_addresses.dm_core.rb +18 -0
  201. data/spec/dummy/db/migrate/20141114170955_papertrail_increase_column.dm_core.rb +9 -0
  202. data/spec/dummy/db/migrate/20141114170956_acts_as_taggable_on_migration.dm_core.rb +32 -0
  203. data/spec/dummy/db/migrate/20141114170957_add_missing_unique_indices.dm_core.rb +23 -0
  204. data/spec/dummy/db/migrate/20141114170958_add_taggings_counter_cache_to_tags.dm_core.rb +16 -0
  205. data/spec/dummy/db/migrate/20141114170959_create_custom_fields.dm_core.rb +40 -0
  206. data/spec/dummy/db/migrate/20141114170960_add_missing_taggable_index.dm_core.rb +11 -0
  207. data/spec/dummy/db/migrate/20141114170961_create_documents.dm_knowledge.rb +19 -0
  208. data/spec/dummy/db/migrate/20141114170962_add_document_notes.dm_knowledge.rb +7 -0
  209. data/spec/dummy/db/migrate/20160128134522_add_favored_locale.dm_core.rb +17 -0
  210. data/spec/dummy/db/migrate/20160128134523_update_papertrail_v4.dm_core.rb +41 -0
  211. data/spec/dummy/db/schema.rb +590 -0
  212. data/spec/dummy/db/seeds.rb +18 -0
  213. data/spec/dummy/public/404.html +67 -0
  214. data/spec/dummy/public/422.html +67 -0
  215. data/spec/dummy/public/500.html +66 -0
  216. data/spec/dummy/public/favicon.ico +0 -0
  217. data/spec/dummy/themes/_mbus/_readme.md +6 -0
  218. data/spec/dummy/themes/_mbus/_theme.yml +21 -0
  219. data/spec/dummy/themes/_mbus/theme_assets/_mbus/javascripts/application.js +9 -0
  220. data/spec/dummy/themes/_mbus/theme_assets/_mbus/javascripts/bootstrap.js +2114 -0
  221. data/spec/dummy/themes/_mbus/theme_assets/_mbus/javascripts/bootstrap.min.js +6 -0
  222. data/spec/dummy/themes/_mbus/theme_assets/_mbus/javascripts/contact_me.js +75 -0
  223. data/spec/dummy/themes/_mbus/theme_assets/_mbus/javascripts/jqBootstrapValidation.js +912 -0
  224. data/spec/dummy/themes/_mbus/theme_assets/_mbus/javascripts/jquery-1.11.0.js +4 -0
  225. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/application.css +14 -0
  226. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/bootstrap.css +6203 -0
  227. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/bootstrap.min.css +5 -0
  228. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/css/font-awesome.css +1566 -0
  229. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/css/font-awesome.min.css +4 -0
  230. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/fonts/FontAwesome.otf +0 -0
  231. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/fonts/fontawesome-webfont.eot +0 -0
  232. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/fonts/fontawesome-webfont.svg +504 -0
  233. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/fonts/fontawesome-webfont.ttf +0 -0
  234. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/fonts/fontawesome-webfont.woff +0 -0
  235. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/less/bordered-pulled.less +16 -0
  236. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/less/core.less +12 -0
  237. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/less/fixed-width.less +6 -0
  238. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/less/font-awesome.less +17 -0
  239. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/less/icons.less +506 -0
  240. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/less/larger.less +13 -0
  241. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/less/list.less +19 -0
  242. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/less/mixins.less +20 -0
  243. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/less/path.less +14 -0
  244. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/less/rotated-flipped.less +9 -0
  245. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/less/spinning.less +32 -0
  246. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/less/stacked.less +20 -0
  247. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/less/variables.less +515 -0
  248. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/scss/_bordered-pulled.scss +16 -0
  249. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/scss/_core.scss +12 -0
  250. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/scss/_fixed-width.scss +6 -0
  251. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/scss/_icons.scss +506 -0
  252. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/scss/_larger.scss +13 -0
  253. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/scss/_list.scss +19 -0
  254. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/scss/_mixins.scss +20 -0
  255. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/scss/_path.scss +14 -0
  256. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/scss/_rotated-flipped.scss +9 -0
  257. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/scss/_spinning.scss +32 -0
  258. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/scss/_stacked.scss +20 -0
  259. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/scss/_variables.scss +515 -0
  260. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/font-awesome-4.1.0/scss/font-awesome.scss +17 -0
  261. data/spec/dummy/themes/_mbus/theme_assets/_mbus/stylesheets/modern-business.css +93 -0
  262. data/spec/dummy/themes/_mbus/theme_support/config/load_theme.rb +0 -0
  263. data/spec/dummy/themes/_mbus/theme_support/locales/site.cs.yml +57 -0
  264. data/spec/dummy/themes/_mbus/theme_support/locales/site.de.yml +57 -0
  265. data/spec/dummy/themes/_mbus/theme_support/locales/site.en.yml +57 -0
  266. data/spec/dummy/themes/_mbus/theme_support/locales/site.fi.yml +58 -0
  267. data/spec/dummy/themes/_mbus/theme_support/locales/site.ja.yml +57 -0
  268. data/spec/dummy/themes/_mbus/theme_support/views/layouts/cms_templates/_blog_right_sidebar.html.erb +91 -0
  269. data/spec/dummy/themes/_mbus/theme_support/views/layouts/cms_templates/_comment.html.erb +21 -0
  270. data/spec/dummy/themes/_mbus/theme_support/views/layouts/cms_templates/_comment_form.html.erb +16 -0
  271. data/spec/dummy/themes/_mbus/theme_support/views/layouts/cms_templates/_comment_list.html.erb +7 -0
  272. data/spec/dummy/themes/_mbus/theme_support/views/layouts/cms_templates/_comment_section.html.erb +17 -0
  273. data/spec/dummy/themes/_mbus/theme_support/views/layouts/cms_templates/_page_footer.html.erb +11 -0
  274. data/spec/dummy/themes/_mbus/theme_support/views/layouts/cms_templates/_page_header.html.erb +39 -0
  275. data/spec/dummy/themes/_mbus/theme_support/views/layouts/cms_templates/_page_top.html.erb +24 -0
  276. data/spec/dummy/themes/_mbus/theme_support/views/layouts/cms_templates/_post_summary_item.html.erb +11 -0
  277. data/spec/dummy/themes/_mbus/theme_support/views/layouts/cms_templates/_social_buttons_initialization.html.erb +10 -0
  278. data/spec/dummy/themes/_mbus/theme_support/views/layouts/cms_templates/blog.html.erb +47 -0
  279. data/spec/dummy/themes/_mbus/theme_support/views/layouts/cms_templates/blog_post.html.erb +55 -0
  280. data/spec/dummy/themes/_mbus/theme_support/views/layouts/cms_templates/content_full_width.html.erb +28 -0
  281. data/spec/dummy/themes/_mbus/theme_support/views/layouts/cms_templates/content_with_left_nav.html.erb +44 -0
  282. data/spec/dummy/themes/_mbus/theme_support/views/layouts/cms_templates/index.html.erb +19 -0
  283. data/spec/dummy/themes/local/_theme.yml +8 -0
  284. data/spec/factories/accounts.rb +17 -0
  285. data/spec/factories/blogs.rb +19 -0
  286. data/spec/factories/posts.rb +23 -0
  287. data/spec/factories/user_profiles.rb +10 -0
  288. data/spec/factories/users.rb +19 -0
  289. data/spec/features/admin/blog_admin_spec.rb +16 -0
  290. data/spec/models/cms_blog_spec.rb +37 -0
  291. data/spec/models/cms_page_spec.rb +9 -0
  292. data/spec/models/cms_post_spec.rb +44 -0
  293. data/spec/rails_helper.rb +70 -0
  294. data/spec/spec_helper.rb +85 -0
  295. data/spec/support/accounts.rb +17 -0
  296. data/spec/support/devise.rb +44 -0
  297. data/spec/support/fix_locale.rb +57 -0
  298. metadata +545 -0
@@ -0,0 +1,13 @@
1
+ <br />
2
+
3
+ <p><%= I18n.t 'cms.blog_notify_new_post' %>: '<strong><%= @blog_title %></strong>'</p>
4
+ <a href="<%= @post_link %>"><%= I18n.t 'cms.blog_notify_read_post' %></a>
5
+
6
+ <br /><br />
7
+ <hr />
8
+
9
+ <h1><%= @post_title %></h1>
10
+
11
+ <%= display_post_summary(@post) %>
12
+
13
+ <p><%= link_to I18n.t('cms.read_more'), @post_link %></p>
@@ -0,0 +1,9 @@
1
+ <%= I18n.t 'cms.blog_notify_new_post' %>: '<%= @blog_title %>'
2
+
3
+ <%= I18n.t 'cms.blog_notify_read_post' %>: <%= @post_link %>
4
+
5
+ <%= @post_title %>
6
+
7
+ <%= @post.summary %>
8
+
9
+ [<%= I18n.t('cms.read_more') %>](<%= @post_link %>)
@@ -0,0 +1,17 @@
1
+ <% @contact = ContactForm.new unless @contact %>
2
+
3
+ <div markdown="0" id="contact_form" class='clearfix'>
4
+ <%= simple_form_for(@contact , url: create_contact_form_path, wrapper: simple_form_theme_wrapper, html: { remote: true } ) do |f| %>
5
+ <%= flash_notices %>
6
+
7
+ <%= f.input :name, label: false, placeholder: I18n.t('cms.contact_form.name') %>
8
+ <%= f.input :email, label: false, placeholder: I18n.t('cms.contact_form.email_placeholder') %>
9
+ <%= f.input :reason, label: false, prompt: I18n.t('cms.contact_form.reason'), collection: I18n.t('cms.contact_form.reason_list').values %>
10
+ <%= f.input :subject, label: false, placeholder: I18n.t('cms.contact_form.subject') %>
11
+ <%= f.input :message, as: :text, label: false, placeholder: I18n.t('cms.contact_form.message'), input_html: { style: 'height: 150px;' } %>
12
+
13
+ <%= f.input :nickname, label: false, input_html: { style: 'display: none;' } %>
14
+
15
+ <%= f.submit I18n.t('cms.contact_form.send_button'), class: 'btn btn-primary' %>
16
+ <% end %>
17
+ </div>
@@ -0,0 +1,2 @@
1
+ Dir[File.dirname(__FILE__) + '/../../lib/dm_cms/liquid/filters/*.rb'].each {|file| require file }
2
+ Dir[File.dirname(__FILE__) + '/../../lib/dm_cms/liquid/tags/*.rb'].each {|file| require file }
@@ -0,0 +1,42 @@
1
+ cs:
2
+ cms:
3
+ recent_posts: Nejnovější příspěvky
4
+ all_recent_posts: Všechny nedávné příspěvky
5
+ available_blogs: Dostupné blogy
6
+ blog_header: Blogs
7
+ read_more: 'Čtěte více...'
8
+ blog_summary_date: Datum
9
+ blog_summary_comments: Komentáře
10
+ blog_notify_new_post: K dispozici je nový příspěvek v blogu
11
+ blog_notify_read_post: Přečtěte si celý příspěvek
12
+ reply: Odpovědět
13
+ suspended_user_post: Tento příspěvek byl odstraněn
14
+ comment_body: Text příspěvku
15
+ comment_submit: Odeslat komentář
16
+ add_comment: Přidat komentář
17
+ comments_header: Komentáře
18
+ delete: smazat
19
+ comments_stat: Komentáře
20
+ blog_login_required: Přihlášení je vyžadováno pro přístup k tomuto blogu
21
+ comment_login_required: "Prosím, přihlaste se ke svému účtu, abyste mohl psát komentář. Pokud nemáte uživatelský účet, můžete si jej vytvořit."
22
+ comment_notify:
23
+ disclaimer: "Obdrželi jste tento e-mail, protože je uvedeno byste chtěli být informováni o změnách tohoto blogu / fóru."
24
+ blog_follow_section:
25
+ title: Sledovat blog e-mailem
26
+ description: Sledovat tento blog a dostávat e-mailem upozornění o nových komentářích
27
+ description_private: Tento blog je neveřejný - automaticky budete dostávat e-mailem upozornění o nových komentářích
28
+
29
+ contact_form:
30
+ sent: "Děkujeme, Vaše zpráva byla e-mailem na nás."
31
+ send_button: Poslat zprávu
32
+ name: 'Název'
33
+ email_placeholder: user@domain.com
34
+ reason: 'Důvod pro psaní'
35
+ subject: Předmět
36
+ subject_prefix: Contact Form
37
+ message: Zpráva...
38
+ reason_list:
39
+ reason_1: 'Zpětná vazba'
40
+ reason_2: 'Technický problém'
41
+ reason_3: 'Další'
42
+
@@ -0,0 +1,42 @@
1
+ de:
2
+ cms:
3
+ recent_posts: Aktuelle Beiträge
4
+ all_recent_posts: Zurück zur Übersicht
5
+ available_blogs: Verfügbare Blogs
6
+ blog_header: Blogs
7
+ read_more: 'Weiterlesen...'
8
+ blog_summary_date: Datum
9
+ blog_summary_comments: Kommentare
10
+ blog_notify_new_post: Es gibt einen neuen Beitrag im Blog
11
+ blog_notify_read_post: Lies hier den kompletten Beitrag
12
+ reply: Antworten
13
+ suspended_user_post: Dieser Beitrag wurde bereits entfernt
14
+ comment_body: Inhalt
15
+ comment_submit: Absenden
16
+ add_comment: Dein Kommentar
17
+ comments_header: Kommentare
18
+ delete: löschen
19
+ comments_stat: Kommentare
20
+ blog_login_required: 'Um diesen Blog zu sehen, melde Dich bitte an.'
21
+ comment_login_required: "Bitte melde dich mit deinen Benutzerdaten an, um einen Kommentar zu veröffentlichen. Falls du noch kein Benutzerkonto hast, kannst du unter nachfolgendem Link eines anlegen."
22
+ comment_notify:
23
+ disclaimer: "Du erhältst diese E-Mail, weil Du diese Forums-Diskussion bzw. diesen Blog abonniert hast, um über neue Beiträge informiert zu werden."
24
+ blog_follow_section:
25
+ title: Folge dem Blog
26
+ description: Folge dem Blog und erhalte Email Benachrichtigungen über neue Beiträge
27
+ description_private: "Dies ist ein privater Blog - Du erhältst automatisch eine Email Benachrichtigung, wenn ein neuer Beitrag veröffentlicht wurde."
28
+
29
+ contact_form:
30
+ sent: "Vielen Dank, Ihre Nachricht wurde erfolgreich gesendet."
31
+ send_button: Nachricht senden
32
+ name: 'Name'
33
+ email_placeholder: user@domain.com
34
+ reason: 'Bereich: Bitte auswählen'
35
+ subject: Thema
36
+ subject_prefix: Kontaktformular
37
+ message: Nachricht...
38
+ reason_list:
39
+ reason_1: 'Feedback'
40
+ reason_2: 'Technisches Problem'
41
+ reason_3: 'Andere'
42
+
@@ -0,0 +1,42 @@
1
+ en:
2
+ cms:
3
+ recent_posts: Recent Posts
4
+ all_recent_posts: All Recent Posts
5
+ available_blogs: Available Blogs
6
+ blog_header: Blogs
7
+ read_more: 'Read More...'
8
+ blog_summary_date: Date
9
+ blog_summary_comments: Comments
10
+ blog_notify_new_post: There is a new post in the blog
11
+ blog_notify_read_post: Read full post
12
+ reply: Reply
13
+ suspended_user_post: This post has been removed
14
+ comment_body: Body
15
+ comment_submit: Submit Comment
16
+ add_comment: Add a Comment
17
+ comments_header: Comments
18
+ delete: delete
19
+ comments_stat: Comments
20
+ blog_login_required: Login is required to access this blog
21
+ comment_login_required: "Please log in to your account to post a comment. If you do not have a user account, you can create one."
22
+ comment_notify:
23
+ disclaimer: "You are receiving this email because indicated you wanted to be notified of updates to this blog/forum."
24
+ blog_follow_section:
25
+ title: Follow Blog by Email
26
+ description: Follow this blog and receive email notifications of new posts
27
+ description_private: This is a private blog - you will automatcially receive email notifications of new posts
28
+
29
+ contact_form:
30
+ sent: "Thank you, your message was emailed to us."
31
+ send_button: Send Message
32
+ name: 'Name'
33
+ reason: 'Reason for writing'
34
+ email_placeholder: user@domain.com
35
+ subject: Subject
36
+ subject_prefix: Contact Form
37
+ message: Message...
38
+ reason_list:
39
+ reason_1: 'Feedback'
40
+ reason_2: 'Technical Problem'
41
+ reason_3: 'Other'
42
+
@@ -0,0 +1,42 @@
1
+ fi:
2
+ cms:
3
+ recent_posts: Uusimmat viestit
4
+ all_recent_posts: Kaikki uusimmat viestit
5
+ available_blogs: Saatavilla olevat blogit
6
+ blog_header: Blogit
7
+ read_more: 'Lue lisää...'
8
+ blog_summary_date: Päivä
9
+ blog_summary_comments: Kommentit
10
+ blog_notify_new_post: Blogissa on uusi viesti
11
+ blog_notify_read_post: Lue koko viesti
12
+ reply: Vastaa
13
+ suspended_user_post: Tämä viesti onn poistettu
14
+ comment_body: Body
15
+ comment_submit: Kommentoi
16
+ add_comment: Lisää kommentti
17
+ comments_header: Kommentit
18
+ delete: poista
19
+ comments_stat: Kommentit
20
+ blog_login_required: Thän blogiin pääsyyn vaaditaan sisään kirjautuminen
21
+ comment_login_required: "Ole hyvä ja kirjaudu sisään tilillesi kommentoidaksesi. Jos sinulla ei ole käyttäjätiliä, voit luoda sellaisen."
22
+ comment_notify:
23
+ disclaimer: "Sait tämän sähköpostin, koska ilmoitettu halusitte ilmoitetaan päivityksistä tämän blogin / forum."
24
+ blog_follow_section:
25
+ title: seuraa blogia sähköpostein
26
+ description: seuraa blogia sähköpostein ja vastaanota sähköposti-ilmoitus uusista postauksista
27
+ description_private: tämä on yksityinen blogi - tulet saamaan automaattisesti sähköposti-ilmoituksen uusista postauksista
28
+
29
+ contact_form:
30
+ sent: "Kiitos, kun viestisi on lähetetty sähköpostitse meille."
31
+ send_button: Lähetä viesti
32
+ name: 'Nimi'
33
+ email_placeholder: user@domain.com
34
+ reason: 'Syynä kirjallisesti'
35
+ subject: Aihe
36
+ subject_prefix: Contact Form
37
+ message: Viesti...
38
+ reason_list:
39
+ reason_1: 'Palaute'
40
+ reason_2: 'Tekninen ongelma'
41
+ reason_3: 'Muut'
42
+
@@ -0,0 +1,42 @@
1
+ ja:
2
+ cms:
3
+ recent_posts: 最近の投稿
4
+ all_recent_posts: 全ての最近の投稿メッセージ
5
+ available_blogs: 利用可能なブログ
6
+ blog_header: ブログ
7
+ read_more: '詳しく読む'
8
+ blog_summary_date: 日付
9
+ blog_summary_comments: コメント
10
+ blog_notify_new_post: ブログに新しい投稿メッセージがあります
11
+ blog_notify_read_post: 投稿メッセージ全文を読む
12
+ reply: 返信
13
+ suspended_user_post: この投稿メッセージは削除されました
14
+ comment_body: 本文
15
+ comment_submit: コメントを送信する
16
+ add_comment: コメントを付け加える
17
+ comments_header: コメント
18
+ delete: 削除
19
+ comments_stat: コメント
20
+ blog_login_required: このブログにアクセスするにはログインが必要です
21
+ comment_login_required: "コメントを投稿するためには、ご自分のアカウントにログインして下さい。ご自分のユーザーアカウントをお持ちではない場合は、作成して頂くことが出来ます。"
22
+ comment_notify:
23
+ disclaimer: "示されたこのブログ/フォーラムの最新情報を通知することがしたかったため、このメールを受け取っている。"
24
+ blog_follow_section:
25
+ title: ブログの購読について
26
+ description: このブログの新しい記事の電子メール通知を受け取るには"購読する"をクリック
27
+ description_private: これは購読できる方々が限定されている非公開のブログです。あなたは自動的に新しい記事の電子メール通知を受信します。
28
+
29
+ contact_form:
30
+ sent: "あなたのメッセージは、私たちに電子メールで送信された、ありがとうございます。"
31
+ send_button: メッセージを送る
32
+ name: '名前'
33
+ email_placeholder: user@domain.com
34
+ reason: '執筆の理由'
35
+ subject: テーマ
36
+ subject_prefix: Contact Form
37
+ message: メッセージ...
38
+ reason_list:
39
+ reason_1: 'フィードバック'
40
+ reason_2: '技術的問題'
41
+ reason_3: 'その他'
42
+
data/config/routes.rb ADDED
@@ -0,0 +1,70 @@
1
+ DmCms::Engine.routes.draw do
2
+ scope ":locale" do
3
+
4
+ namespace :admin do
5
+ patch '/cms_pages/expire_cache_total', controller: 'cms_pages', action: :expire_cache_total, as: :expire_cache
6
+ post '/cms_pages/ajax_sort', controller: 'cms_pages', action: :ajax_sort, as: :cms_page_sort
7
+ get '/dashboard/widget_blog_comments(/:comment_day)', controller: 'dashboard', action: :widget_blog_comments, as: :widget_blog_comments
8
+ resources :cms_pages do
9
+ member do
10
+ get :new_page
11
+ post :create_page
12
+ put :duplicate_page
13
+ post :file_tree
14
+ get :file_tree
15
+ end
16
+ end
17
+
18
+ resources :cms_contentitems do
19
+ member do
20
+ get :new_content
21
+ post :create_content
22
+ patch :move_up
23
+ patch :move_down
24
+ get :markdown
25
+ post :markdown
26
+ end
27
+ end
28
+ resources :cms_snippets
29
+ resources :cms_blogs do
30
+ member do
31
+ get 'blog_users', action: :blog_users, as: :blog_users
32
+ match 'blog_add_member', action: :blog_add_member, as: :blog_add_member, via: [:get, :post]
33
+ delete 'blog_delete_member', action: :blog_delete_member, as: :blog_delete_member
34
+ end
35
+ resources :cms_posts do
36
+ member do
37
+ put 'send_notifications_emails', action: :send_notifications_emails, as: :send_notifications_emails
38
+ end
39
+ end
40
+ end
41
+ # resources :cms_posts do
42
+ # member do
43
+ # put 'send_notifications_emails', action: :send_notifications_emails, as: :send_notifications_emails
44
+ # end
45
+ # end
46
+ post '/cms_blogs/sort', controller: 'cms_blogs', action: :sort, as: :cms_blog_sort
47
+ resources :media_files
48
+ end
49
+
50
+ scope 'blog' do
51
+ get '/recent_posts', controller: 'blogs', action: :index, as: :blog_root
52
+ get '/:id', controller: 'blogs', action: :show, as: :blog_show
53
+ get '/:cms_blog_id/:id', controller: 'posts', action: :show, as: :post_show
54
+ resources :cms_blogs do
55
+ post '/cms_posts/ajax_add_comment/:id', controller: 'posts', action: :ajax_add_comment, as: :cms_post_ajax_add_comment
56
+ # get '/cms_posts/ajax_edit_comment/:id', controller: 'posts', action: :ajax_edit_comment, as: :cms_postajax_edit_comment_comment
57
+ resources :cms_posts
58
+ patch 'toggle_follow', controller: 'blogs', action: :toggle_follow
59
+ end
60
+ resources :cms_posts do
61
+ delete 'ajax_delete_comment/:id', controller: 'posts', action: :ajax_delete_comment, as: :ajax_delete_comment_comment
62
+ end
63
+ end
64
+
65
+ post '/contact_form/create', controller: :contact_form, action: :create, as: :create_contact_form
66
+ get '/coming_soon', controller: 'pages', action: :show, slug: 'coming_soon', as: :coming_soon
67
+ get '/*slug(/:xaction(/:xid))', controller: 'pages', action: :show, as: :showpage # use *slug to fix this https://github.com/rails/rails/issues/16058
68
+
69
+ end
70
+ end
@@ -0,0 +1,91 @@
1
+ class CreateCms < ActiveRecord::Migration
2
+ def up
3
+ create_table "cms_contentitem_translations", :force => true do |t|
4
+ t.integer "cms_contentitem_id"
5
+ t.string "locale"
6
+ t.text "content"
7
+ t.datetime "created_at"
8
+ t.datetime "updated_at"
9
+ end
10
+
11
+ add_index "cms_contentitem_translations", ["cms_contentitem_id"], :name => "index_072c3a76f87c96e2f91149eccd2a283dca2b613f"
12
+
13
+ create_table "cms_contentitems", :force => true do |t|
14
+ t.integer "cms_page_id"
15
+ t.string "itemtype", :limit => 30, :default => "textile"
16
+ t.string "container", :limit => 30
17
+ t.integer "position", :default => 0
18
+ t.boolean "enable_cache", :default => true, :null => false
19
+ t.datetime "created_on"
20
+ t.datetime "updated_on"
21
+ t.integer "lock_version", :default => 0
22
+ end
23
+
24
+ add_index "cms_contentitems", ["cms_page_id"], :name => "cms_contentitems_cms_page_id_index"
25
+
26
+ create_table "cms_page_translations", :force => true do |t|
27
+ t.integer "cms_page_id"
28
+ t.string "locale"
29
+ t.string "title"
30
+ t.string "menutitle"
31
+ t.datetime "created_at"
32
+ t.datetime "updated_at"
33
+ end
34
+
35
+ add_index "cms_page_translations", ["cms_page_id"], :name => "index_cms_page_translations_on_cms_page_id"
36
+
37
+ create_table "cms_pages", :force => true do |t|
38
+ t.string "slug", :limit => 50, :default => "", :null => false
39
+ t.string "pagetype", :limit => 20, :default => "content", :null => false
40
+ t.boolean "published", :default => false, :null => false
41
+ t.string "template", :limit => 50, :default => "", :null => false
42
+ t.string "link", :default => "", :null => false
43
+ t.string "menuimage"
44
+ t.boolean "requires_login", :default => false
45
+ t.string "ancestry"
46
+ t.integer 'ancestry_depth', :default => 0
47
+ t.integer 'position'
48
+ t.datetime "updated_on"
49
+ t.datetime "created_on"
50
+ t.integer "lock_version", :default => 0, :null => false
51
+ end
52
+
53
+ add_index "cms_pages", ["slug"], :name => "pagename_key"
54
+ add_index "cms_pages", "ancestry"
55
+ add_index "cms_pages", "ancestry_depth"
56
+ add_index "cms_pages", ["published"], :name => "cms_pages_published_index"
57
+
58
+ create_table "cms_snippet_translations", :force => true do |t|
59
+ t.integer "cms_snippet_id"
60
+ t.string "locale"
61
+ t.text "content"
62
+ t.datetime "created_at"
63
+ t.datetime "updated_at"
64
+ end
65
+
66
+ add_index "cms_snippet_translations", ["cms_snippet_id"], :name => "index_cms_snippet_translations_on_cms_snippet_id"
67
+
68
+ create_table "cms_snippets", :force => true do |t|
69
+ t.string "itemtype", :limit => 30, :default => "textile"
70
+ t.string "container"
71
+ t.string "description"
72
+ t.boolean "enable_cache", :default => true, :null => false
73
+ t.boolean "published", :default => true, :null => false
74
+ t.datetime "created_on"
75
+ t.datetime "updated_on"
76
+ t.integer "lock_version", :default => 0
77
+ end
78
+
79
+ add_index "cms_snippets", ["container"], :name => "index_cms_snippets_on_container"
80
+
81
+ end
82
+
83
+ def down
84
+ drop_table :cms_snippets
85
+ drop_table :cms_snippet_translations
86
+ drop_table :cms_pages
87
+ drop_table :cms_page_translations
88
+ drop_table :cms_contentitems
89
+ drop_table :cms_contentitem_translations
90
+ end
91
+ end
@@ -0,0 +1,10 @@
1
+ class AddAccountToCms < ActiveRecord::Migration
2
+ def change
3
+ add_column :cms_pages, :account_id, :integer
4
+ add_index :cms_pages, :account_id
5
+ add_column :cms_contentitems, :account_id, :integer
6
+ add_index :cms_contentitems, :account_id
7
+ add_column :cms_snippets, :account_id, :integer
8
+ add_index :cms_snippets, :account_id
9
+ end
10
+ end