dm_cms 4.2.1.5

Sign up to get free protection for your applications and to get access to all the features.
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,3 @@
1
+ <% content_for :content_title, 'Media Library' %>
2
+ <% @title = 'New Media File' %>
3
+ <%= render 'form' %>
@@ -0,0 +1,35 @@
1
+ <%#--- following should not be in the sidebar, but main content section %>
2
+ <%= modal_dialog title: 'Tag Reference', id: "tag_reference" do %>
3
+ <% tag_group = Liquid::Template.tags.sort.find_all {|x| x[1].respond_to?(:details) && !x[1].details[:description].blank?} %>
4
+ <% tag_group = tag_group.group_by {|x| (x[1].details[:category].blank? ? 'uncategorized' : x[1].details[:category]) }.sort %>
5
+ <div class="row" data-spy="scroll" data-target=".tag_details">
6
+ <div class="col-sm-3">
7
+ <div class="tag_nav" id="tag_accordion">
8
+ <ul class="nav nav-stacked">
9
+ <% tag_group.each do |category, tag_array| %>
10
+ <li>
11
+ <%= link_to category, "\#__#{category}", data: {toggle: 'collapse', parent: '#tag_accordion'} %>
12
+ <ul id="__<%= category %>" class="collapse">
13
+ <% tag_array.each do |tag_item| %>
14
+ <li><%= link_to tag_item[0], "\##{tag_item[0]}"%></li>
15
+ <% end %>
16
+ </ul>
17
+ </li>
18
+ <% end %>
19
+ </ul>
20
+ </div>
21
+ </div>
22
+ <div class="col-sm-9 tag_details">
23
+ <h1 style="border-bottom: 2px solid #ccc;">Tag Reference</h1>
24
+ <% tag_group.each do |category, tag_array| %>
25
+ <h2><%= category %></h2>
26
+ <% tag_array.each do |tag_item| %>
27
+ <%= subsection title: tag_item[0], id: tag_item[0] do %>
28
+ <%= markdown tag_item[1].details[:description], safe: false %>
29
+ <%= "<pre>#{tag_item[1].details[:example]}</pre>".html_safe if tag_item[1].details[:example].present? %>
30
+ <% end %>
31
+ <% end %>
32
+ <% end %>
33
+ </div>
34
+ </div>
35
+ <% end %>
File without changes
@@ -0,0 +1,5 @@
1
+ $("#follow_button").toggleClass('follow_active')
2
+ if $("#follow_button").hasClass('follow_active')
3
+ $('#follow_button').val('<%= I18n.t('fms.follow_stop') %>')
4
+ else
5
+ $('#follow_button').val('<%= I18n.t('fms.follow') %>')
@@ -0,0 +1,2 @@
1
+ <%#--- partial is associated with a liquid tag %>
2
+ <%= render partial: @partial_name %>
@@ -0,0 +1,2 @@
1
+ <%#--- partial is associated with a liquid tag %>
2
+ $("#contact_form").html("<%= escape_javascript(render partial: @partial_name) %>");
@@ -0,0 +1,13 @@
1
+ <%#--- leave formatting alone - prefer final html to be as natural as possible %>
2
+ <%#--- for now, removed wrapping content in a div - caused display problems with some themes %>
3
+ <% if false #is_admin? %>
4
+ <div class="fragment" id="fragment_<%= content_fragment.id %>">
5
+ <%= render_content_item(content_fragment) %>
6
+ </div>
7
+ <% elsif content_fragment.enable_cache %>
8
+ <% cache([Account.current.id, DmCore::Language.locale, content_fragment]) do %>
9
+ <%= render_content_item(content_fragment) %>
10
+ <% end %>
11
+ <% else %>
12
+ <%= render_content_item(content_fragment) %>
13
+ <% end %>
@@ -0,0 +1,12 @@
1
+ <%#--- leave formatting alone - prefer final html to be as natural as possible %>
2
+ <% if is_admin? %>
3
+ <div class="fragment" id="fragment_<%= snippet_fragment.id %>">
4
+ <%= render_content_item(snippet_fragment) %>
5
+ </div>
6
+ <% elsif snippet_fragment.enable_cache %>
7
+ <% cache([Account.current.id, DmCore::Language.locale, snippet_fragment]) do %>
8
+ <%= render_content_item(snippet_fragment) %>
9
+ <% end %>
10
+ <% else %>
11
+ <%= render_content_item(snippet_fragment) %>
12
+ <% end %>
@@ -0,0 +1,2 @@
1
+ <!-- Basically empty, as well as the view. But gets rendered by dm_core when the
2
+ site is disabled -->
File without changes
File without changes
@@ -0,0 +1,22 @@
1
+ <li class="clearfix" id="<%= dom_id(comment) %>">
2
+ <div class="user"><%= avatar_for comment.user, 50 %></div>
3
+ <p class="comment_author"><%= truncate(present(comment).author, :length => 30) %></p>
4
+ <p class="info">
5
+ <%= present(comment).date_posted %>
6
+ <%= ' | '.html_safe + link_to(I18n.t('cms.reply'), '#reply') if comment.commentable.comments_allowed? && user_signed_in? %>
7
+ <% if false #user_signed_in? && can?(:edit, comment) %>
8
+ | <%= link_to I18n.t('fms.admin.edit_post'), [commenting_on, :ajax_edit_comment, comment] %>
9
+ <% end %>
10
+ <%= ' | '.html_safe + link_to(I18n.t('cms.delete'), [commenting_on, :ajax_delete_comment, comment], method: :delete, data: {confirm: 'Are you sure you wish to delete this comment?'}) if is_admin? %>
11
+ </p>
12
+ <div class="clearfix"></div>
13
+ <div class="comment_text">
14
+ <% if comment.user.active? %>
15
+ <%= present(comment).formatted_comment %>
16
+ <% else %>
17
+ <p>(<% I18n.t 'cms.suspended_user_post' %>)</p>
18
+ <% end %>
19
+ </div>
20
+ <div class="comment_footer">
21
+ </div>
22
+ </li>
@@ -0,0 +1,16 @@
1
+ <% if commenting_on.comments_allowed? %>
2
+ <div id="reply" class="comment_reply_form">
3
+ <% if current_user %>
4
+ <% url = (commenting_on.class == CmsPost ? [commenting_on.cms_blog, commenting_on, :ajax_add_comment] : [commenting_on, :ajax_add_comment] )%>
5
+ <%= simple_form_for :comment, url: url, wrapper: :bootstrap2 do |f| %>
6
+ <%= f.input :body, :as => :text, :label => I18n.t('cms.comment_body'),
7
+ :input_html => {:rows => 10} %>
8
+ <%= f.submit I18n.t('cms.comment_submit'), class: 'btn btn-primary' %>
9
+ <% end %>
10
+ <% else %>
11
+ <p><%= I18n.t 'cms.comment_login_required' %></p>
12
+ <%= link_to I18n.t('core.login'), main_app.new_user_session_path, class: 'btn btn-primary', style: 'margin-bottom: 20px' %>
13
+ <%= link_to I18n.t('core.create_account'), main_app.new_user_registration_path, class: 'btn' %>
14
+ <% end %>
15
+ </div>
16
+ <% end %>
@@ -0,0 +1,11 @@
1
+ <%= pagination(comment_list) %>
2
+
3
+ <div class="comments clearfix">
4
+ <ul class="comment_list">
5
+ <% for comment in comment_list do %>
6
+ <%= render partial: 'dm_cms/shared/comment', object: comment, locals: { commenting_on: commenting_on } %>
7
+ <% end %>
8
+ </ul>
9
+ </div>
10
+
11
+ <%= pagination(comment_list) %>
@@ -0,0 +1,6 @@
1
+ <%#--- dynamcially loaded buttons %>
2
+ <% url = request.original_url if !defined?(url) || url.nil? %>
3
+ <div class="page_social_buttons clearfix">
4
+ <div class="fb-like" data-href="<%= url %>" data-layout="button_count" data-action="like" data-show-faces="false" data-share="true"></div>
5
+ <%= link_to('Tweet', '//twitter.com/intent/tweet', class: "twitter-share-button", data: { url: url, lang: I18n.locale }) %>
6
+ </div>
@@ -0,0 +1,320 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
+
6
+ <style type="text/css">
7
+ #outlook a { padding:0; }
8
+ body { width:100% !important; }
9
+ .ReadMsgBody { width:100%; }
10
+ .ExternalClass { width:100%; }
11
+ figure {margin:0; padding:0; display:block;}
12
+ body { -webkit-text-size-adjust:none; }
13
+ body {
14
+ margin:0;
15
+ padding:0;
16
+ font-size: 12px;
17
+ font-family: Arial, sans-serif;
18
+ }
19
+ img {
20
+ border:0;
21
+ height:auto;
22
+ line-height:100%;
23
+ outline:none;
24
+ text-decoration:none;
25
+ }
26
+ table td { border-collapse:collapse; }
27
+ #backgroundTable{
28
+ height:100% !important;
29
+ margin:0;
30
+ padding:0;
31
+ width:100% !important;
32
+ }
33
+ body,#backgroundTable { background-color:#FFFFFF; }
34
+ #templateContainer { border:1px solid #E7E0C4; }
35
+ h1,.h1 {
36
+ color:#800040;
37
+ display:block;
38
+ font-family:Arial;
39
+ font-size: 18px;
40
+ font-weight: normal;
41
+ line-height: 24px;
42
+ text-transform: uppercase;
43
+ margin-top:20px;
44
+ margin-right:0;
45
+ margin-bottom:20px;
46
+ margin-left:0;
47
+ text-align:left;
48
+ padding-bottom: 5px;
49
+ }
50
+ h2,.h2 {
51
+ color:#8c8c8c;
52
+ display:block;
53
+ font-family:Arial;
54
+ font-size:16px;
55
+ font-weight:normal;
56
+ line-height:100%;
57
+ margin-top:0;
58
+ margin-right:0;
59
+ margin-bottom:10px;
60
+ margin-left:0;
61
+ text-align:left;
62
+ text-transform: uppercase;
63
+ }
64
+ h3,.h3 {
65
+ color:#8c8c8c;
66
+ display:block;
67
+ font-family:Arial;
68
+ font-size:16px;
69
+ font-weight:normal;
70
+ line-height:100%;
71
+ margin-top:0;
72
+ margin-right:0;
73
+ margin-bottom:10px;
74
+ margin-left:0;
75
+ text-align:left;
76
+ }
77
+ h4,.h4 {
78
+ color:#8c8c8c;
79
+ display:block;
80
+ font-family:Arial;
81
+ font-size:14px;
82
+ font-weight:bold;
83
+ line-height:100%;
84
+ margin-top:0;
85
+ margin-right:0;
86
+ margin-bottom:10px;
87
+ margin-left:0;
88
+ text-align:left;
89
+ }
90
+ #templatePreheader { background-color:#FFF; }
91
+ .preheaderContent div {
92
+ color:#505050;
93
+ font-family:Arial;
94
+ font-size:10px;
95
+ line-height:100%;
96
+ text-align:left;
97
+ }
98
+ .preheaderContent div a:link,.preheaderContent div a:visited,.preheaderContent div a .yshortcuts {
99
+ color:#336699;
100
+ font-weight:normal;
101
+ text-decoration:underline;
102
+ }
103
+ #templateHeader {
104
+ background-color:#FFFFFF;
105
+ border-bottom:0;
106
+ }
107
+ .headerContent {
108
+ color:#202020;
109
+ font-family:Arial;
110
+ font-size:34px;
111
+ font-weight:bold;
112
+ line-height:100%;
113
+ padding:0;
114
+ text-align:center;
115
+ vertical-align:middle;
116
+ }
117
+ .headerContent a:link,.headerContent a:visited,.headerContent a .yshortcuts {
118
+ color:#336699;
119
+ font-weight:normal;
120
+ text-decoration:underline;
121
+ }
122
+ #headerImage {
123
+ height:auto;
124
+ max-width:650px !important;
125
+ }
126
+ #templateContainer,.bodyContent { background-color:#FFFFFF; }
127
+ .bodyContent div {
128
+ color:#505050;
129
+ font-family:Arial;
130
+ font-size:13px;
131
+ line-height:150%;
132
+ text-align:left;
133
+ }
134
+ .bodyContent div a:link,.bodyContent div a:visited,.bodyContent div a .yshortcuts {
135
+ color:#336699;
136
+ font-weight:normal;
137
+ text-decoration:underline;
138
+ }
139
+ .bodyContent img {
140
+ display:inline;
141
+ height:auto;
142
+ }
143
+ #templateFooter {
144
+ background-color:#F8F8F8;
145
+ border-top: 1px solid #ddd;
146
+ }
147
+ .footerContent div {
148
+ color:#707070;
149
+ font-family:Arial;
150
+ font-size:11px;
151
+ line-height:125%;
152
+ text-align:center;
153
+ }
154
+ .footerContent div a:link,.footerContent div a:visited,.footerContent div a .yshortcuts {
155
+ color:#336699;
156
+ font-weight:normal;
157
+ text-decoration:underline;
158
+ }
159
+ .footerContent img { display:inline; }
160
+ hr, .hr {
161
+ width: 100%;
162
+ clear: both;
163
+ border: none;
164
+ height: 1px;
165
+ background-color: #aaa;
166
+ margin-top: 30px;
167
+ margin-bottom: 30px;
168
+ }
169
+ .bodyContent blockquote p {
170
+ border-left: 3px solid silver;
171
+ padding-bottom: 5px;
172
+ margin-bottom: 10px;
173
+ padding-left: 5px;
174
+ margin-left: 10px;
175
+ margin-right: 0;
176
+ }
177
+ .bodyContent .date {
178
+ text-align: right;
179
+ font-size: 12px;
180
+ }
181
+ .bodyContent img, img.img_right {
182
+ float: right;
183
+ padding: 0px 0px 10px 20px;
184
+ }
185
+ img.img_left {
186
+ float: left;
187
+ padding: 0px 20px 10px 0px;
188
+ }
189
+ img.img_full {
190
+ float: none;
191
+ padding: 0px 0px 0px 0px !important;
192
+ margin: 0px 0px 0px 0px;
193
+ clear: both;
194
+ }
195
+
196
+ #social {
197
+ background-color:#F8F6EF;
198
+ border:0;
199
+ }
200
+ #social div, #social div table {
201
+ text-align:center;
202
+ background-color: #F8F6EF;
203
+ color: #707070;
204
+ font-family: Arial;
205
+ font-size: 13px;
206
+ line-height: 125%;
207
+ }
208
+ #social img { vertical-align:middle; }
209
+ #utility {
210
+ background-color:#F8F6EF;
211
+ border:0;
212
+ }
213
+ #utility div { text-align:center; }
214
+ #monkeyRewards img { max-width:190px; }
215
+ </style>
216
+ </head>
217
+ <body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0">
218
+ <center>
219
+ <table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="backgroundTable">
220
+ <tr>
221
+ <td align="center" valign="top" style="border-collapse: collapse;">
222
+ <!-- // Begin Template Preheader \\ -->
223
+ <table border="0" cellpadding="10" cellspacing="0" width="650" id="templatePreheader">
224
+ <tr>
225
+ <td valign="top" class="preheaderContent">
226
+ <div>
227
+ <!-- ====================== Start Teaser Section ====================== -->
228
+ <!-- ====================== End Teaser Section ====================== -->
229
+ </div>
230
+ </td>
231
+ </tr>
232
+ </table>
233
+ <!-- // End Template Preheader \\ -->
234
+ <table border="0" cellpadding="0" cellspacing="0" width="650" id="templateContainer">
235
+ <tr>
236
+ <td align="center" valign="top" style="border-collapse: collapse;">
237
+ <!-- // Begin Template Header \\ -->
238
+ <table border="0" cellpadding="0" cellspacing="0" width="650" id="templateHeader">
239
+ <tr>
240
+ <td class="headerContent">
241
+
242
+ <!-- // Begin Module: Standard Header Image \\ -->
243
+ <% unless @header_image.blank? %>
244
+ <img src="<%= site_asset_media_url(@header_image) %>" style="max-width:650px;" id="headerImage" />
245
+ <% end %>
246
+ <!-- // End Module: Standard Header Image \\ -->
247
+
248
+ </td>
249
+ </tr>
250
+ </table>
251
+ <!-- // End Template Header \\ -->
252
+ </td>
253
+ </tr>
254
+ <tr>
255
+ <td align="center" valign="top" style="border-collapse: collapse;">
256
+ <!-- // Begin Template Body \\ -->
257
+ <table border="0" cellpadding="0" cellspacing="0" width="650" id="templateBody">
258
+ <tr>
259
+ <td valign="top" style="border-collapse: collapse;">
260
+ <table border="0" cellpadding="0" cellspacing="0" width="650">
261
+ <tr>
262
+ <td valign="top" class="bodyContent">
263
+
264
+ <!-- // Begin Module: Standard Content \\ -->
265
+ <table border="0" cellpadding="20" cellspacing="0" width="100%">
266
+ <tr>
267
+ <td valign="top" style="border-collapse: collapse;">
268
+ <div>
269
+ <!-- ====================== Start Main Content ====================== -->
270
+ <%= yield %>
271
+ <!-- ====================== End Main Content ====================== -->
272
+ </div>
273
+ </td>
274
+ </tr>
275
+ </table>
276
+ <!-- // End Module: Standard Content \\ -->
277
+ </td>
278
+ </tr>
279
+ </table>
280
+ </td>
281
+ </tr>
282
+ </table>
283
+ <!-- // End Template Body \\ -->
284
+ </td>
285
+ </tr>
286
+ <tr>
287
+ <td align="center" valign="top" style="border-collapse: collapse;">
288
+ <!-- // Begin Template Footer \\ -->
289
+ <table border="0" cellpadding="10" cellspacing="0" width="650" id="templateFooter">
290
+ <tr>
291
+ <td valign="top" class="footerContent" style="border-collapse: collapse;">
292
+
293
+ <!-- // Begin Module: Standard Footer \\ -->
294
+ <table border="0" cellpadding="10" cellspacing="0" width="100%">
295
+ <tr>
296
+ <td valign="top" width="650">
297
+ <div>
298
+ <em>Copyright &copy; <%= Time.now.year %> <%= Account.current.company_name %></em>
299
+ &nbsp;&bull;&nbsp;<a href="mailto:<%= Account.current.contact_email %>"><%= Account.current.contact_email %></a>
300
+ &nbsp;&bull;&nbsp;<a href="http://<%= Account.current.domain %>"><%= Account.current.domain %></a>
301
+ </div>
302
+ </td>
303
+ </tr>
304
+ </table>
305
+ <!-- // End Module: Standard Footer \\ -->
306
+
307
+ </td>
308
+ </tr>
309
+ </table>
310
+ <!-- // End Template Footer \\ -->
311
+ </td>
312
+ </tr>
313
+ </table>
314
+ <br>
315
+ </td>
316
+ </tr>
317
+ </table>
318
+ </center>
319
+ </body>
320
+ </html>