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,11 @@
1
+ <script>
2
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
3
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
4
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
5
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
6
+
7
+ ga('create', '<%= tracking_id %>', '<%= domain_name %>');
8
+ ga('set', 'anonymizeIp', true);
9
+ ga('send', 'pageview');
10
+
11
+ </script>
@@ -0,0 +1,34 @@
1
+ <% content_for :content_title, @title %>
2
+
3
+ <% submit_url = (@blog.new_record? ? admin_cms_blogs_path : admin_cms_blog_path) %>
4
+ <%= simple_form_for @blog, url: submit_url,
5
+ html: { class: 'form-horizontal' }, wrapper: :bs3_horizontal_form, wrapper_mappings: DmAdmin::FormWrapperMappings do |f| %>
6
+
7
+ <%= f.error_notification message: "Please review the problems below" %>
8
+ <%= panel header: false do %>
9
+ <%= locale_tabs do |locale| %>
10
+ <%= f.input "title_#{locale}", label: 'Blog Title', id: 'name_error', required: true %>
11
+ <% end %>
12
+ <%= f.input :slug, label: 'Slug', hint: 'Leave blank to have auto-generated based on title.', input_html: {class: 'width_50_percent'} %>
13
+ <%= f.input :published, as: :boolean, label: 'Publish It?' %>
14
+ <%= f.input :is_public, as: :boolean, label: 'Make Blog Public?', hint: 'This will allow anyone to see the blog. Use option below to restrict to registered users' %>
15
+ <%= f.input :requires_login, as: :boolean, label: 'Public Requires Login?', hint: 'If this is a public blog, user must be logged in to see it. (All private blogs automatically require login)' %>
16
+ <% if defined? DmSubscriptions %>
17
+ <%= f.input :requires_subscription, as: :boolean, label: 'Subscription Required?', hint: 'User must have a paid subscription to access' %>
18
+ <% end %>
19
+ <%= f.input :comments_allowed, as: :boolean, label: 'Allow Comments', hint: 'Controls whether commenting is allowed for this blog. If on, then each post can decided whether to allow comments' %>
20
+ <%= f.input :preferred_show_social_buttons, as: :boolean, label: 'Show social buttons', hint: 'This setting will be ignored for private blogs' %>
21
+
22
+ <%= subsection title: 'Header Style' do %>
23
+ <%= f.input :header_image, label: 'Header Image', hint: 'An image for the entire blog', input_html: {class: 'width_50_percent'} %>
24
+ <%= f.input :preferred_header_accent_color, label: 'Accent Color', hint: 'Accent color used in header (if supported by theme). Any valid CSS color', input_html: {class: 'width_50_percent'} %>
25
+ <% end %>
26
+
27
+ <%= subsection title: 'Email Notifications' do %>
28
+ <%= f.input :image_email_header, label: 'Notification Image', hint: 'Image used in the header of notification emails. If blank, uses the blog\'s image', input_html: {class: 'width_50_percent'} %>
29
+ <% end %>
30
+
31
+ <%= submit_or_cancel cancel_url: submit_url, delete_url: ([:admin, @blog] unless @blog.new_record?), delete_confirm: 'Are you sure you wish to delete this blog? All posts/comments will also be deleted!' %>
32
+
33
+ <% end %>
34
+ <% end %>
@@ -0,0 +1,2 @@
1
+ <% @title = @blog.title %>
2
+ <%= render 'form' %>
@@ -0,0 +1,44 @@
1
+ <% content_for :content_title, icon_label('font-bullhorn', 'Blogs') %>
2
+ <% content_for :content_title_extra do %>
3
+ <div class="visible-xs header-element-toggle">
4
+ <a class="btn btn-primary btn-icon" data-toggle="collapse" data-target="#header-buttons"><i class="icon-stats2"></i></a>
5
+ </div>
6
+ <div class="header-buttons">
7
+ <div class="collapse" id="header-buttons">
8
+ <div class="well">
9
+ <%= link_to icon_label(:new, 'New Blog'), new_admin_cms_blog_path, title: 'New Blog', class: 'btn btn-xs btn-default' %>
10
+ </div>
11
+ </div>
12
+ </div>
13
+ <% end %>
14
+
15
+ <%= panel title: 'Current Blogs', body: false do %>
16
+ <table id="drag_sort" class="table table-striped table-bordered table-condensed" data-update_url="<%= dm_cms.admin_cms_blog_sort_path %>">
17
+ <thead>
18
+ <tr>
19
+ <th class="sort_handle"></th>
20
+ <th>Title</th>
21
+ <th>Associated Event</th>
22
+ <th width="50">Type</th>
23
+ <th width="18"><span class='hovertip' title='Followers or members'><%= icons('icon-users') %></span></th>
24
+ <th width="50">Status</th>
25
+ </tr>
26
+ </thead>
27
+ <tbody>
28
+ <% @blogs.each do |blog| %>
29
+ <% present blog do |blog_presenter| %>
30
+ <tr class="item" data-item_id="<%= blog.id %>">
31
+ <td class="sort_handle"></td>
32
+ <td>
33
+ <%= link_to blog.title, admin_cms_blog_path(blog) %>
34
+ </td>
35
+ <td><%= blog.owner.try(:title) %></td>
36
+ <td><%= blog_presenter.visibility %></td>
37
+ <td><%= blog.is_private? ? content_tag(:span, blog.member_count(:all), class: 'hovertip', title: 'Members') : content_tag(:span, blog.followers.count, class: 'hovertip', title: 'Followers') %></td>
38
+ <td><%= blog_presenter.label_published %></td>
39
+ </tr>
40
+ <% end %>
41
+ <% end %>
42
+ </tbody>
43
+ </table>
44
+ <% end %>
@@ -0,0 +1,2 @@
1
+ <% @title = 'New Blog' %>
2
+ <%= render 'form' %>
@@ -0,0 +1,167 @@
1
+ <% content_for :content_title, @blog.title %>
2
+ <% content_for :content_subtitle, 'Permalink: '.html_safe + link_to(blog_show_url(@blog), blog_show_url(@blog), title: 'Permalink for this blog', target: '_blank') %>
3
+ <% content_for :content_title_extra do %>
4
+ <%= page_header_buttons do %>
5
+ <%= present(@blog).label_published %>
6
+ <%= link_to icon_label(:view, 'View'), blog_show_url(@blog), class: "btn btn-xs btn-default", title: 'View', target: '_blank' %>
7
+ <%= link_to(icon_label(:edit, 'Edit'), [:edit, :admin, @blog], class: "btn btn-xs btn-default", title: 'Edit') %>
8
+ <% end %>
9
+ <% end %>
10
+
11
+ <div class="row">
12
+ <div class="col-md-9">
13
+ <% toolbar = toolbar_btn(icons('icon-plus'), new_admin_cms_blog_cms_post_path(@blog), title: 'New Post', class: "btn btn-link btn-icon") %>
14
+ <%= panel title: 'Posts', toolbar: toolbar, body: false do %>
15
+ <table class="table table-striped table-bordered table-block">
16
+ <thead>
17
+ <tr>
18
+ <th>Title</th>
19
+ <th width="18"><span class='hovertip' title='Notification email sent'><%= icons('icon-envelop') %></span></th>
20
+ <th width="50">Status</th>
21
+ </tr>
22
+ </thead>
23
+ <tbody>
24
+ <% @blog.posts.each do |post| %>
25
+ <% present post do |post_presenter| %>
26
+ <tr class="item" data-item_id="<%= post.id %>">
27
+ <td>
28
+ <%= link_to(post.title, edit_admin_cms_blog_cms_post_path(@blog, post)) %>
29
+ </td>
30
+ <td>
31
+ <% if post.notification_sent_on %>
32
+ <span class='hovertip' title='<%= format_date(post.notification_sent_on) %>'><%= icons('icon-envelop') %></span>
33
+ <% end %>
34
+ </td>
35
+ <td><%= post_presenter.label_published %></td>
36
+ </tr>
37
+ <% end %>
38
+ <% end %>
39
+ </tbody>
40
+ </table>
41
+ <% end %>
42
+ </div>
43
+ <div class="col-md-3">
44
+ <% if @blog.is_subscription_only? %>
45
+ <%= subsection title: 'Visibility: <strong>Subscription</strong>'.html_safe do %>
46
+ <p>Only paid subscribers can see the posts, and will receive notification emails.</p>
47
+ <% end %>
48
+ <% elsif @blog.is_private? %>
49
+ <%= subsection title: 'Visibility: <strong>Private</strong>'.html_safe do %>
50
+ <p>Only users who have been given access (manually or through an associated event) can see posts in this blog, and will receive notification emails.</p>
51
+ <% end %>
52
+ <% elsif @blog.is_public? %>
53
+ <%= subsection title: 'Visibility: <strong>Public</strong>'.html_safe do %>
54
+ <p>All posts are available publicly for anyone to see. Logged in users can 'Follow' the blog to receive notification emails.</p>
55
+ <% end %>
56
+ <% elsif @blog.is_protected? %>
57
+ <%= subsection title: 'Visibility: <strong>Protected</strong>'.html_safe do %>
58
+ <p>Only logged in users can see the posts. Logged in users can 'Follow' the blog to receive notification emails.</p>
59
+ <% end %>
60
+ <% end %>
61
+
62
+ <%= subsection title: 'Attributes' do %>
63
+ <table class="table table-condensed table-nolines">
64
+ <tr>
65
+ <% if @blog.is_private? %>
66
+ <td>Members</td>
67
+ <td><%= @blog.member_count(:all) %></td>
68
+ <% else %>
69
+ <td>Followers</td>
70
+ <td><%= @blog.followers.count %></td>
71
+ <% end %>
72
+ </tr>
73
+ <tr>
74
+ <td>Commenting?</td>
75
+ <td><input type="checkbox" <%= 'checked="1"' if @blog.comments_allowed %> disabled="disabled" /></td>
76
+ </tr>
77
+ <tr>
78
+ <td>Social Buttons?</td>
79
+ <td><input type="checkbox" <%= 'checked="1"' if @blog.show_social_buttons? %> disabled="disabled" /></td>
80
+ </tr>
81
+ </table>
82
+ <% end %>
83
+ </div>
84
+ </div>
85
+
86
+ <% if @blog.owner %>
87
+ <div class="row">
88
+ <div class="col-md-12">
89
+ <% toolbar = toolbar_btn(@blog.member_count(:automatic), '#', title: 'Number of users with automatic blog access', class: 'label label-success pull-right') %>
90
+ <%= panel title: 'Users with Automatic Access', toolbar: toolbar do %>
91
+ <div class="body">
92
+ <h5>Automatic Access Granted for Event</h5>
93
+ <p><%= @blog.owner.title %></p>
94
+ </div>
95
+ <% end %>
96
+ </div>
97
+ </div>
98
+ <% end %>
99
+
100
+ <% if @blog.is_private? %>
101
+ <div class="row">
102
+ <div class="col-md-12">
103
+ <% toolbar = toolbar_btn(@blog.member_count(:manual), '#', title: 'Number of users with blog access', class: 'label label-success pull-right') %>
104
+ <%= panel title: 'Users with Manual Access', toolbar: toolbar do %>
105
+ <div class="col-md-6">
106
+ <table class="table table-striped table-bordered">
107
+ <thead>
108
+ <tr>
109
+ <th>Name</th>
110
+ <th>Country</th>
111
+ </tr>
112
+ </thead>
113
+ <tbody>
114
+ <% @blog.member_list(:manual).each do |user| %>
115
+ <tr>
116
+ <td><%= link_to(icons("icon-minus"), dm_cms.blog_delete_member_admin_cms_blog_path(@blog, user_id: user.id), method: :delete, title: 'Remove Access') + "&nbsp;&nbsp;".html_safe + user.full_name %></td>
117
+ <td><%= user.country.english_name %></td>
118
+ </tr>
119
+ <% end %>
120
+ </tbody>
121
+ </table>
122
+ </div>
123
+
124
+ <div class="col-md-6">
125
+ <%= subsection title: 'Add Individual Users' do %>
126
+ <table id="blog_user_table" class="table table-striped table-bordered" data-source="<%= dm_cms.blog_users_admin_cms_blog_url %>">
127
+ <thead>
128
+ <tr>
129
+ <th>Name</th>
130
+ <th>Country</th>
131
+ </tr>
132
+ </thead>
133
+ <tbody>
134
+ </tbody>
135
+ </table>
136
+ <% end %>
137
+ </div>
138
+ <% end %>
139
+ </div>
140
+ </div>
141
+ <% end %>
142
+
143
+ <% unless @blog.is_private? %>
144
+ <div class="row">
145
+ <div class="col-md-6">
146
+ <% toolbar = toolbar_btn(@blog.followers.count, '#', title: 'Number of users following this blog', class: 'label label-success pull-right') %>
147
+ <%= panel title: 'Users Following this Blog', toolbar: toolbar, body: false do %>
148
+ <table class="table table-striped table-bordered">
149
+ <thead>
150
+ <tr>
151
+ <th>Name</th>
152
+ <th>Country</th>
153
+ </tr>
154
+ </thead>
155
+ <tbody>
156
+ <% @blog.followers.each do |follower| %>
157
+ <tr>
158
+ <td><%= follower.user.full_name %></td>
159
+ <td><%= follower.user.try(:country).try(:english_name) %></td>
160
+ </tr>
161
+ <% end %>
162
+ </tbody>
163
+ </table>
164
+ <% end %>
165
+ </div>
166
+ </div>
167
+ <% end %>
@@ -0,0 +1,43 @@
1
+ <% new_record = @cms_contentitem.new_record? %>
2
+ <% submit_url = (new_record ? create_content_admin_cms_contentitem_path(@current_page) : admin_cms_contentitem_path(@cms_contentitem)) %>
3
+ <% title = (new_record ? "New Content" : @cms_contentitem.container.capitalize) %>
4
+
5
+ <%= simple_form_for @cms_contentitem, url: submit_url,
6
+ html: { class: 'form-horizontal' }, wrapper: :bs3_horizontal_form, wrapper_mappings: DmAdmin::FormWrapperMappings do |f| %>
7
+
8
+ <%= f.error_notification message: "Please review the problems below" %>
9
+ <%= f.hidden_field :original_updated_on %>
10
+ <% toolbar = capture do %>
11
+ <%= link_to icons(:help), '#', class: 'btn btn-link btn-icon', data: { toggle: 'modal', target: '#tag_reference' } %>
12
+ <%= link_to icons(:cancel), admin_cms_page_url(@current_page), class: 'btn btn-link btn-icon' %>
13
+ <% end %>
14
+ <%= panel title: title, toolbar: toolbar do %>
15
+ <%= locale_tabs do |locale| %>
16
+ <div class="col-sm-12">
17
+ <%= f.input "content_#{locale}", label: 'Content', wrapper: :bs3_vertical_form, as: :code_editor, mode: @cms_contentitem.itemtype, required: true, input_html: {style: "height: 400px;"} %>
18
+ </div>
19
+ <% end %>
20
+ <div class="row">
21
+ <div class="col-md-4">
22
+ <div class="col-sm-12">
23
+ <%= f.input :itemtype, label: 'Item Type', collection: CmsContentitem::CONTENT_TYPES, include_blank: false, wrapper: :bs3_vertical_form %>
24
+ </div>
25
+ </div>
26
+ <div class="col-md-4">
27
+ <div class="col-sm-12">
28
+ <%= f.input :container, label: 'Content Name', hint: 'This is normally "body" or "sidebar" or something', wrapper: :bs3_vertical_form %>
29
+ </div>
30
+ </div>
31
+ <div class="col-md-4">
32
+ <div class="col-sm-12">
33
+ <%= f.input :enable_cache, as: :boolean, label: 'Cache Content', wrapper: :bs3_vertical_form %>
34
+ </div>
35
+ </div>
36
+ </div>
37
+
38
+ <%= submit_or_cancel cancel_url: admin_cms_page_url(@current_page), delete_url: ([:admin, @cms_contentitem] unless @cms_contentitem.new_record?), delete_confirm: 'Are you sure you wish to delete this item?' %>
39
+ <% end %>
40
+ <% end %>
41
+
42
+ <%= render partial: 'dm_cms/admin/shared/liquid_tags_ref' %>
43
+
@@ -0,0 +1,17 @@
1
+ <% title = "Editing Content" %>
2
+
3
+ <div id="cms_content_dialog" class="dialog " title="<%= title %>">
4
+ <%= form_for @cms_contentitem, :url => {:controller => 'dm_cms/cms_contentitems', :id => @cms_contentitem}, :html => { :method => :put } do |f| %>
5
+ <label>Item Type</label>
6
+ <%= select_content_type %>
7
+ <label>Content Name</label>
8
+ <%= f.text_field :container %>
9
+ <label>Cache Content</label>
10
+ <div class="yes_no"><%= f.check_box :enable_cache %></div>
11
+
12
+ <div class="divider"><span></span></div>
13
+
14
+ <label>Content</label>
15
+ <%= f.text_area :content, :class => 'monospaced' %>
16
+ <% end %>
17
+ </div>
@@ -0,0 +1 @@
1
+ <%= render :partial => 'form' %>
@@ -0,0 +1,21 @@
1
+ <h6 class="subtitle">Enter Markdown / Liquid you wish to process</h6>
2
+ <div class="">
3
+ <%= simple_form_for :sample_text, :url => markdown_admin_cms_contentitem_url do |f| %>
4
+ <%= f.input :markdown, :label => false, :wrapper => :vertical, :as => :editor, input_html: {style: "height: 200px;", value: @text} %>
5
+ <%= submit_or_cancel cancel: false %>
6
+ <% end %>
7
+ </div>
8
+
9
+ <% unless @text.blank? %>
10
+ <div class="semi-block">
11
+ <h6 class="subtitle">Markdown / Liquid Output</h6>
12
+ <div class="well-white body">
13
+ <pre>
14
+ <%= liquidize_markdown(@text, {}).to_str %>
15
+ </pre>
16
+ </div>
17
+ </div>
18
+ <% end %>
19
+
20
+ <%= render :partial => 'dm_cms/admin/shared/liquid_tags_ref' %>
21
+
@@ -0,0 +1 @@
1
+ <%= render :partial => 'form' %>
@@ -0,0 +1,11 @@
1
+ <div class="pull-right">
2
+ <% if contentitem_list.count > 1 %>
3
+ <% unless contentitem == contentitem_list.first %>
4
+ <%= link_to icons('icon-arrow-up10'), move_up_admin_cms_contentitem_path(contentitem), title: "Move content up", class: "btn btn-link btn-icon", method: :patch %>
5
+ <% end %>
6
+ <% unless contentitem == contentitem_list.last %>
7
+ <%= link_to icons('icon-arrow-down10'), move_down_admin_cms_contentitem_path(contentitem), title: "Move content down", class: "btn btn-link btn-icon", method: :patch %>
8
+ <% end %>
9
+ <% end %>
10
+ <%= link_to icons(:edit), [:edit, :admin, contentitem], class: "btn btn-link btn-icon" %>
11
+ </div>
@@ -0,0 +1,50 @@
1
+ <% new_record = @cms_page.new_record? %>
2
+ <% submit_url = (new_record ? create_page_admin_cms_page_path(@current_page) : admin_cms_page_path(@cms_page)) %>
3
+ <% title = (new_record ? "New Child Page " : "Editing Page Details ") %>
4
+
5
+ <%= simple_form_for @cms_page, url: submit_url,
6
+ html: { class: 'form-horizontal' }, wrapper: :bs3_horizontal_form, wrapper_mappings: DmAdmin::FormWrapperMappings do |f| %>
7
+
8
+ <%= f.error_notification message: "Please review the problems below" %>
9
+ <% toolbar = capture do %>
10
+ <%= link_to icons(:cancel), {action: :show, id: @current_page}, class: 'btn btn-link btn-icon' %>
11
+ <% end %>
12
+ <%= panel title: 'Page Details', toolbar: toolbar do %>
13
+ <%= locale_tabs do |locale| %>
14
+ <%= f.input "title_#{locale}", label: 'Page Title', hint: 'The title of the page, shown in the browser title' %>
15
+ <%= f.input "menutitle_#{locale}", label: 'Menu Title', hint: 'Text shown in a menu (which might be shorter than the full title). If blank, page will not show up in any auto-generated menus' %>
16
+ <% end %>
17
+
18
+ <%= f.input :published, label: 'Publish It?' %>
19
+ <%= f.input :slug, label: 'Page Slug', hint: 'Leave blank to have auto-generated based on title.' %>
20
+ <%= f.input :pagetype, label: 'Page Type', collection: CmsPage::PAGETYPE, include_blank: false %>
21
+ <div id="pagetype_link">
22
+ <%= f.input :link %>
23
+ </div>
24
+ <% templates = template_menu_list %>
25
+ <% if templates %>
26
+ <%= f.input :template, label: 'Template to Use', collection: templates, include_blank: false,
27
+ hint: 'Template to use for this page. Child pages can inherit this template' %>
28
+ <% else %>
29
+ <%= f.input :template, label: 'Template to Use', hint: "Leave blank to inherit the parent's template" %>
30
+ <% end %>
31
+ <% if false #--- disable this for now %>
32
+ <%= f.input :menuimage, label: 'Menu Image' %>
33
+ <% end %>
34
+ <%= f.input :requires_login, label: 'Requires Login', hint: 'Page will require user to be logged in to access' %>
35
+ <%= f.input :header_image, label: 'Header Image', hint: 'Image used as a header/banner image, if supported by theme', input_html: {class: 'width_50_percent'} %>
36
+ <%= f.input :preferred_header_accent_color, label: 'Accent Color', hint: 'Accent color used in header (if supported by theme). Any valid CSS color', input_html: {class: 'width_50_percent'} %>
37
+
38
+ <%= subsection title: 'Social Media' do %>
39
+ <%= f.input :preferred_show_social_buttons, as: :boolean, label: 'Show social buttons', hint: 'Show the standard Facebook/Twitter buttons on the page' %>
40
+ <%= f.input :featured_image, label: 'Featured Image', hint: 'Image used if page liked on facebook. Will not display on the page', input_html: {class: 'width_50_percent'} %>
41
+ <%= locale_tabs do |locale| %>
42
+ <%= f.input "summary_#{locale}", label: 'Page Summary', as: :code_editor, input_html: {style: "height: 100px;"},
43
+ hint: 'Text used when a page liked on Facebook. Is not visible on the page'%>
44
+ <% end %>
45
+ <% end %>
46
+ <%= submit_or_cancel cancel_url: {action: :show, id: @current_page}, delete: 'Delete Page', delete_url: admin_cms_page_path(@current_page), delete_confirm: 'Are you sure you wish to delete this page?' %>
47
+
48
+ <% end %>
49
+
50
+ <% end %>
@@ -0,0 +1,20 @@
1
+ <% open_or_closed = sub_items.blank? ? '' : (cookies["page_tree_#{item.id}"] ? 'tree_open' : 'tree_closed') %>
2
+ <li data-item_id="<%= item.id %>" class="<%= 'root' if item.is_root? %> <%= open_or_closed %>" >
3
+ <dl>
4
+ <dt>
5
+ <% if !item.is_root? %>
6
+ <a href="#" class="tree_expand"></a>
7
+ <% end %>
8
+ <% if item.divider? %>
9
+ <%= link_to "&mdash; #{item.menutitle} &mdash;".html_safe, :action => :show, :id => item %>
10
+ <% else %>
11
+ <%= link_to (item.title.blank? ? item.slug : item.title), :action => :show, :id => item %>
12
+ <% end %>
13
+ </dt>
14
+ <dd><%= present(item).label_published %></dd>
15
+ <dd>
16
+ <%= link_to "New Child", new_page_admin_cms_page_path(item) %>
17
+ </dd>
18
+ </dl>
19
+ <%= (sub_items.blank? ? '' : content_tag(:ul, nested_tree(sub_items), :class => 'sub_tree', :style => ((item.is_root? || open_or_closed == 'tree_open') ? '' : 'display:none'))) %>
20
+ </li>