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,8 @@
1
+ <li class="tree_item">
2
+ <% if item.divider? %>
3
+ <%= link_to "&mdash; #{item.menutitle} &mdash;".html_safe, :action => :show, :id => item %>
4
+ <% else %>
5
+ <%= link_to (item.title.blank? ? item.slug : item.title), :action => :show, :id => item %>
6
+ <% end %>
7
+ <%= (sub_items.blank? ? '' : content_tag(:ul, nested_tree_sidebar(sub_items), :class => 'arrow-list')) %>
8
+ </li>
@@ -0,0 +1,2 @@
1
+ <% content_for :content_title, present(@current_page).admin_edit_title %>
2
+ <%= render :partial => 'form' %>
@@ -0,0 +1,32 @@
1
+ <% content_for :content_title, icon_label('font-paste', 'Pages') %>
2
+ <% content_for :content_title_extra do %>
3
+ <div class="header-buttons">
4
+ <div class="collapse" id="header-buttons">
5
+ <div class="well">
6
+ <div class="btn-group">
7
+ <%= link_to('Snippets', dm_cms.admin_cms_snippets_path, class: 'btn btn-default btn-xs') %>
8
+ <button class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown"><i class="icon-cog"></i> <span class="caret"></span></button>
9
+ <ul class="dropdown-menu dropdown-menu-right icons-right">
10
+ <li>
11
+ <%= link_to icon_label('icon-redo', 'Clear Page Cache'), admin_expire_cache_path, method: :patch %>
12
+ </li>
13
+ </ul>
14
+ </div>
15
+ </div>
16
+ </div>
17
+ </div>
18
+
19
+ <% end %>
20
+
21
+ <% if !current_account.preferred_site_enabled? %>
22
+ <div class="alert alert-warning">
23
+ Site is currently disabled - all requests will be sent to &#x27;Coming Soon&#x27; page unless logged in
24
+ </div>
25
+ <% end %>
26
+
27
+ <%= panel header: false do %>
28
+ <ul id="tree_sort" data-update_url="<%= dm_cms.admin_cms_page_sort_path %>">
29
+ <%= nested_tree(@tree) %>
30
+ </ul>
31
+ <% end %>
32
+
@@ -0,0 +1,2 @@
1
+ <% content_for :content_title, 'New Child Page for: '.html_safe + present(@current_page).admin_edit_title %>
2
+ <%= render :partial => 'form' %>
@@ -0,0 +1,54 @@
1
+ <% content_for :content_title, present(@current_page).admin_edit_title %>
2
+ <% content_for :secondary_title, "#{@current_page.slug} &mdash; #{@current_page.title}".html_safe %>
3
+ <% content_for :content_title_extra do %>
4
+ <%= page_header_buttons do %>
5
+ <%= link_to icon_label(:new, 'Add Content'), new_content_admin_cms_contentitem_path(@current_page), title: 'Add Content Block', class: 'btn btn-xs btn-default' %>
6
+ <%= link_to icon_label(:view, 'View Page'), url_for("/#{current_account.preferred_default_locale}/#{@current_page.slug}"), title: 'View Page', class: 'btn btn-xs btn-default', target: '_blank' %>
7
+ <% end %>
8
+ <% end %>
9
+
10
+ <div class="row">
11
+ <div class="col-md-8">
12
+ <% @current_page.cms_contentitems.each do |item| %>
13
+ <% toolbar = render partial: 'content_toolbar', locals: { contentitem: item, contentitem_list: @current_page.cms_contentitems } %>
14
+ <%= panel title: "#{item.container}", body: false, toolbar: toolbar do %>
15
+ <pre class="prettyprint" style="border:none;border-bottom: 1px solid #eee;">
16
+ <%= truncate(item.send("content_#{current_account.preferred_default_locale}"), length: 250) %>
17
+ </pre>
18
+ <span class="subtitle text-muted text-center">Format: <%= item.itemtype %></span>
19
+ <% end %>
20
+ <% end %>
21
+ </div>
22
+
23
+ <div class="col-md-4">
24
+ <% toolbar = link_to icons(:edit), edit_admin_cms_page_path(@current_page), title: 'Edit Page Details', class: "btn btn-link btn-icon" %>
25
+ <%= panel title: 'Page Details', toolbar: toolbar do %>
26
+ <dl>
27
+ <dt class="text-info">Slug</dt>
28
+ <dd><%= @current_page.slug %></dd>
29
+ <dt class="text-info"></dt>
30
+ <dt class="text-info">Title</dt>
31
+ <dd><%= @current_page.title %></dd>
32
+ <dt class="text-info">Published?</dt>
33
+ <dd><%= @current_page.is_published? ? 'Yes' : 'No' %></dd>
34
+ <dt class="text-info">Requires Login?</dt>
35
+ <dd><%= @current_page.requires_login? ? 'Yes' : 'No' %></dd>
36
+ <dt class="text-info">Type</dt>
37
+ <dd><%= @current_page.pagetype %></dd>
38
+ <dt class="text-info">Template</dt>
39
+ <dd>
40
+ <%= @current_page.page_template %>
41
+ <%= " #{icons('icon-arrow-up9', color: '#aaa')}".html_safe if @current_page.template.blank? %>
42
+ </dd>
43
+ <dt class="text-info">Link</dt>
44
+ <dd><%= @current_page.link %></dd>
45
+ <dt class="text-info">Menu Title</dt>
46
+ <dd><%= @current_page.menutitle %></dd>
47
+ <dt class="text-info">Menu Image</dt>
48
+ <dd><%= @current_page.menuimage %></dd>
49
+ </dl>
50
+ <% end %>
51
+ <%= link_to 'Clear Facebook Cache', "https://developers.facebook.com/tools/debug/og/object?q=#{ERB::Util.url_encode(dm_cms.showpage_url(@current_page.slug))}",
52
+ target: '_blank', class: 'btn btn-xs btn-default' %>
53
+ </div>
54
+ </div>
@@ -0,0 +1,59 @@
1
+ <% unless @post.new_record? %>
2
+ <% content_for :content_title, @post.title %>
3
+ <% content_for :content_subtitle, @blog.title %>
4
+ <% content_for :content_title_extra do %>
5
+ <%= page_header_buttons do %>
6
+ <%= present(@post).label_published %>
7
+ <%= link_to(icon_label(:view, 'View'), post_show_url(@blog, @post), class: "btn btn-xs btn-default", title: 'View', target: '_blank') %>
8
+ <div class="btn-group">
9
+ <button class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown"><%= icons(:gear) %> <span class="caret"></span></button>
10
+ <ul class="dropdown-menu dropdown-menu-right icons-right">
11
+ <% if @post.notification_sent_on.nil? %>
12
+ <li><%= link_to 'Send Notification Emails', send_notifications_emails_admin_cms_blog_cms_post_path(@blog, @post), method: :put, data: {confirm: 'This will send a post notification email to each user of this blog. Are you sure?'} %></li>
13
+ <% else %>
14
+ <li><%= link_to 'Re-Send Notification Emails', send_notifications_emails_admin_cms_blog_cms_post_path(@blog, @post), method: :put, data: {confirm: "WARNING: An email was already sent on #{format_datetime(@post.notification_sent_on)}. Are you sure you want to send another?"} %></li>
15
+ <% end %>
16
+ <li><%= link_to 'Send Test Email', send_notifications_emails_admin_cms_blog_cms_post_path(@blog, @post, test: true), method: :put, data: {confirm: 'This will send a test post notification email to your email account. Are you sure?'} %></li>
17
+ <li><%= link_to 'Clear Facebook Cache', "https://developers.facebook.com/tools/debug/og/object?q=#{ERB::Util.url_encode(dm_cms.post_show_url(@post.cms_blog.slug, @post.slug))}", target: '_blank' %></li>
18
+ </ul>
19
+ </div>
20
+ <% end %>
21
+ <% end %>
22
+ <% else %>
23
+ <% content_for :content_title, @blog.title %>
24
+ <% end %>
25
+
26
+ <% submit_url = (@post.new_record? ? admin_cms_blog_cms_posts_path(@blog) : admin_cms_blog_cms_post_path(@blog, @post)) %>
27
+ <%= simple_form_for @post, url: submit_url,
28
+ html: { class: 'form-horizontal' }, wrapper: :bs3_horizontal_form, wrapper_mappings: DmAdmin::FormWrapperMappings do |f| %>
29
+
30
+ <%= f.error_notification message: "Please review the problems below" %>
31
+ <% toolbar = capture do %>
32
+ <%= link_to icons(:help), '#', class: 'btn btn-link btn-icon', data: { toggle: 'modal', target: '#tag_reference' } %>
33
+ <%= link_to icons(:cancel), admin_cms_blog_path(@blog), class: 'btn btn-link btn-icon' %>
34
+ <% end %>
35
+ <%= panel toolbar: toolbar do %>
36
+ <%= f.input :published_on, as: :datetime_picker, required: false, wrapper: :bs3_horizontal_nosize,
37
+ label_html: {class: 'col-sm-2'}, input_wrapper_html: {class: 'col-sm-4'},
38
+ hint: 'Leave blank for DRAFT mode' %>
39
+
40
+ <%= locale_tabs do |locale| %>
41
+ <%= f.input "title_#{locale}", label: 'Post Title', required: true %>
42
+ <div class="col-sm-12">
43
+ <%= f.input "summary_#{locale}", label: 'Summary', required: true, wrapper: :bs3_vertical_form, as: :code_editor, input_html: {style: "height: 100px;"} %>
44
+ </div>
45
+ <div class="col-sm-12">
46
+ <%= f.input "content_#{locale}", label: 'Content', required: true, wrapper: :bs3_vertical_form, as: :code_editor, input_html: {style: "height: 500px;"} %>
47
+ </div>
48
+ <% end %>
49
+
50
+ <%= f.input :slug, label: 'Slug', hint: 'Leave blank to have auto-generated based on title.' %>
51
+ <%= f.input :featured_image, label: 'Featured Image', id: 'image_error' %>
52
+ <%= f.input :comments_allowed, as: :boolean, label: 'Allow Comments', hint: 'Turn on if you want commenting for this post.' %>
53
+
54
+ <%= submit_or_cancel cancel_url: admin_cms_blog_path(@blog), delete_url: ([:admin, @blog, @post] unless @post.new_record?), delete_confirm: 'Are you sure you wish to delete this post? All comments will also be deleted!' %>
55
+
56
+ <% end %>
57
+ <% end %>
58
+
59
+ <%= render partial: 'dm_cms/admin/shared/liquid_tags_ref' %>
@@ -0,0 +1,2 @@
1
+ <%= render 'form' %>
2
+
@@ -0,0 +1 @@
1
+ <%= render 'form' %>
@@ -0,0 +1,28 @@
1
+ <% submit_url = (@cms_snippet.new_record? ? admin_cms_snippets_path : admin_cms_snippet_path) %>
2
+ <%= simple_form_for @cms_snippet, url: submit_url,
3
+ html: { class: 'form-horizontal' }, wrapper: :bs3_horizontal_form, wrapper_mappings: DmAdmin::FormWrapperMappings do |f| %>
4
+
5
+ <%= f.error_notification message: "Please review the problems below" %>
6
+ <% toolbar = capture do %>
7
+ <%= link_to icons(:help), '#', class: 'btn btn-link btn-icon', data: { toggle: 'modal', target: '#tag_reference' } %>
8
+ <%= link_to icons(:cancel), admin_cms_snippets_path, class: 'btn btn-link btn-icon' %>
9
+ <% end %>
10
+ <%= panel toolbar: toolbar do %>
11
+ <%= f.input :slug, label: 'Slug', required: true %>
12
+ <%= f.input :description, label: 'Description' %>
13
+ <%= f.input :published, as: :toggle, label: 'Publish It?' %>
14
+ <%= f.input :itemtype, label: 'Item Type', collection: CmsContentitem::CONTENT_TYPES, include_blank: false %>
15
+ <%= f.input :enable_cache, as: :toggle, label: 'Cache Content' %>
16
+
17
+ <%= locale_tabs title: '' do |locale| %>
18
+ <div class="col-sm-12">
19
+ <%= f.input "content_#{locale}", label: 'Content', required: true, wrapper: :bs3_vertical_form, as: :code_editor, input_html: {style: "height: 500px;"} %>
20
+ </div>
21
+ <% end %>
22
+
23
+ <%= submit_or_cancel cancel_url: admin_cms_snippets_path, delete_url: ([:admin, @cms_snippet] unless @cms_snippet.new_record?), delete_confirm: 'Are you sure you wish to delete this snippet?' %>
24
+
25
+ <% end %>
26
+ <% end %>
27
+
28
+ <%= render partial: 'dm_cms/admin/shared/liquid_tags_ref' %>
@@ -0,0 +1 @@
1
+ <%= render :partial => 'form' %>
@@ -0,0 +1,29 @@
1
+ <% toolbar = capture do %>
2
+ <%= link_to icons(:new), new_admin_cms_snippet_path, title: 'New Snippet', class: 'btn btn-link btn-icon' %>
3
+ <% end %>
4
+ <%= panel title: 'List of Snippets', body: false, toolbar: toolbar do %>
5
+ <table class="table table-striped table-bordered">
6
+ <thead>
7
+ <tr>
8
+ <th>Name</th>
9
+ <th>Description</th>
10
+ <th width="50">Type</th>
11
+ <th width="50">Status</th>
12
+ </tr>
13
+ </thead>
14
+ <tbody>
15
+ <% @cms_snippets.each do |cms_snippet| %>
16
+ <% present cms_snippet do |snippet_presenter| %>
17
+ <tr class="item">
18
+ <td>
19
+ <%= link_to cms_snippet.slug, edit_admin_cms_snippet_path(cms_snippet) %>
20
+ </td>
21
+ <td><%= cms_snippet.description %></td>
22
+ <td><%= cms_snippet.itemtype %></td>
23
+ <td><%= snippet_presenter.label_published %></td>
24
+ </tr>
25
+ <% end %>
26
+ <% end %>
27
+ </tbody>
28
+ </table>
29
+ <% end %>
@@ -0,0 +1 @@
1
+ <%= render :partial => 'form' %>
@@ -0,0 +1,37 @@
1
+ <% comment_day = params[:comment_day].to_i %>
2
+ <% comments = Comment.where(commentable_type: CmsPost, created_at: (Date.today - comment_day.day).midnight..(Date.today - (comment_day - 1).day).midnight).order('created_at DESC') %>
3
+ <% title = comment_day == 0 ? 'Today\'s Blog Comments' : comment_day == 1 ? 'Yesterday\'s Blog Comments' : "Blog Comments #{comment_day} days ago" %>
4
+ <% content_for :title_toolbar do %>
5
+ <%= toolbar_btn(comments.size, dm_core.admin_dashboard_path, title: 'Number of comments today', class: 'label label-success pull-right') %>
6
+ <div class="panel-icons-group">
7
+ <%= link_to icons('icon-arrow-left11'), dm_cms.admin_widget_blog_comments_path(comment_day: comment_day + 1), remote: true, class: 'btn btn-link btn-icon' %>
8
+ <% if @comment_day == 0 %>
9
+ <%= link_to icons('icon-arrow-right12'), '#', class: 'btn btn-link btn-icon disabled' %>
10
+ <% else %>
11
+ <%= link_to icons('icon-arrow-right12'), dm_cms.admin_widget_blog_comments_path(comment_day: comment_day - 1), remote: true, class: 'btn btn-link btn-icon' %></li>
12
+ <% end %>
13
+ <%= link_to icons('icon-spinner8'), dm_cms.admin_widget_blog_comments_path(comment_day: comment_day), class: 'btn btn-link btn-icon hovertip', title: 'Refresh', remote: true %>
14
+ </div>
15
+ <% end %>
16
+
17
+ <%= panel title: title, toolbar: content_for(:title_toolbar) do %>
18
+ <% if comments.size == 0 %>
19
+ <p>No comments posted yet</p>
20
+ <% else %>
21
+ <% comments.each do |comment| %>
22
+ <!-- Comment -->
23
+ <div class="media">
24
+ <a class="pull-left" href="#"><div class="media-object"><%= avatar_for comment.user, 50 %></div></a>
25
+ <div class="media-body">
26
+ <%= link_to "<span class='hovertip' data-placement='right' title='#{comment.user.full_name}'>#{present(comment).author}</span>".html_safe, dm_cms.post_show_path(comment.commentable.cms_blog.slug, comment.commentable.slug, anchor: "comment_#{comment.id}"), class: 'media-heading' %>
27
+ <ul class="headline-info">
28
+ <li><%= format_datetime comment.created_at %></li>
29
+ <li><%= link_to comment.commentable.title, dm_cms.post_show_path(comment.commentable.cms_blog.slug, comment.commentable.slug, anchor: "comment_#{comment.id}"), class: 'post_title', target: '_blank' %></li>
30
+ </ul>
31
+ <%= present(comment).formatted_comment %>
32
+ </div>
33
+ </div>
34
+ <!-- /comment -->
35
+ <% end %>
36
+ <% end %>
37
+ <% end %>
@@ -0,0 +1 @@
1
+ $('#widget_blog_comments').empty().append('<%= j render 'widget_blog_comments', comment_day: @comment_day %>')
@@ -0,0 +1,102 @@
1
+ <% #--- errors from failed multiple file uploads are in the object, show the errors
2
+ @msg = ""
3
+ if @media_file.errors.present?
4
+ @media_file.errors.each do |attribute, msg|
5
+ @msg << content_tag(:p, msg)
6
+ end
7
+ end
8
+ %>
9
+ <% unless @media_file.new_record? %>
10
+ <%= panel header: false do %>
11
+ <div class="media">
12
+ <% if @media_file.image? or @media_file.pdf? %>
13
+ <%= link_to image_tag(@media_file.media_url(:sm), width: 200, class: 'media-object', style: "width: 200px;height:auto;"), @media_file.media_url, class: 'pull-left' %>
14
+ <% else %>
15
+ <%= link_to @media_file.media_url, class: 'pull-left', style: "width: 200px;" do %>
16
+ <div class="aspect_wrapper_square">
17
+ <div class="thumbnail_extension_thumb">
18
+ <span><%= @media_file.media.file.extension %></span>
19
+ </div>
20
+ </div>
21
+ <% end %>
22
+ <% end %>
23
+ <div class="media-body">
24
+ <table class='table' style="border-top: none;">
25
+ <tr>
26
+ <th>URL</th>
27
+ <td><%= @media_file.media.url %></td>
28
+ </tr>
29
+ </table>
30
+ <table class='table table-condensed table-bordered'>
31
+ <thead>
32
+ <tr>
33
+ <th>Name</th>
34
+ <th>Version</th>
35
+ <th>File Size</th>
36
+ </tr>
37
+ </thead>
38
+ <tbody>
39
+ <tr>
40
+ <td><strong><%= link_to @media_file.short_location, @media_file.media.url %></strong></td>
41
+ <td><strong>original</strong></td>
42
+ <td><strong><%= number_to_human_size @media_file.media.file.size, precision: 3 %></strong></td>
43
+ </tr>
44
+ <% if @media_file.image? || @media_file.pdf? %>
45
+ <% @media_file.media.versions.each do |key, value| %>
46
+ <% if @media_file.media.version_exists?(key) %>
47
+ <tr>
48
+ <td><%= link_to @media_file.short_location(key), value.url %></td>
49
+ <td><%= key %></td>
50
+ <td><%= number_to_human_size value.file.size, precision: 3 %></td>
51
+ </tr>
52
+ <% end %>
53
+ <% end %>
54
+ <% end %>
55
+ </tbody>
56
+ </table>
57
+ </div>
58
+ </div>
59
+ <% end %>
60
+ <% end %>
61
+ <% toolbar = toolbar_btn(icons(:cancel), {action: :index}, class: "btn btn-link btn-icon") %>
62
+
63
+ <%= simple_form_for @media_file, url: [:admin, @media_file],
64
+ html: { class: 'form-horizontal' }, wrapper: :bs3_horizontal_form, wrapper_mappings: DmAdmin::FormWrapperMappings do |f| %>
65
+
66
+ <%= f.error_notification message: @msg %>
67
+
68
+ <%= panel title: @title, toolbar: toolbar do %>
69
+
70
+ <% if @media_file.new_record? %>
71
+ <% folders = Dir["#{Rails.root}/public/#{account_site_assets_media(false)}/*/"].map { |a| File.basename(a) } %>
72
+ <%= f.input :media, error: false, label: 'Media Location', wrapper: :bs3_horizontal_group, hint: 'You can select or type a folder to save the uploaded file into. Default will be the current year.' do %>
73
+ <%= content_tag :div, class: "input-group-btn" do %>
74
+ <button class="btn btn-default dropdown-toggle" data-toggle="dropdown" >Folder <span class="caret"></span></button>
75
+ <ul class="dropdown-menu dropdown-field" data-field="folder_field">
76
+ <% folders.sort.each do |folder| %>
77
+ <li><a href="#"><%= folder %></a></li>
78
+ <% end %>
79
+ </ul>
80
+ <% end %>
81
+ <%= f.input_field :folder, size: 12, value: (f.object.folder || Time.now.year), id: 'folder_field', class: 'form-control', style: 'width: 30%' %>
82
+ <% end %>
83
+ <%= f.input :media, input_html: {style: 'margin-left: 10px;', multiple: true, name: 'media_list[]'} %>
84
+
85
+ <% else %>
86
+ <%= f.input :media, input_html: {preview_version: :thumb} %>
87
+ <% end %>
88
+
89
+ <%= f.input :generate_retina, label: false, disabled: @media_file.generate_retina?, inline_label: "Generate retina versions", hint: "Make sure you upload a large version of the file." %>
90
+ <%= f.input :tag_list, hidden: true, input_html: {id: "tag_field", data: {tags: MediaFile.tag_list_all}},
91
+ hint: 'Tags for the folder name and the file extension are added automatically' %>
92
+
93
+ <% if false #--- disable this for now %>
94
+ <%= locale_frame :title => '' do |locale| %>
95
+ <%= f.input "title_#{locale}", label: 'Title' %>
96
+ <%= f.input "description_#{locale}", label: 'Description' %>
97
+ <% end %>
98
+ <% end %>
99
+
100
+ <%= submit_or_cancel cancel_url: {action: :index}, delete_url: ([:admin, @media_file] unless @media_file.new_record?), delete_confirm: 'Are you sure you wish to delete this file from the Media Library?' %>
101
+ <% end %>
102
+ <% end %>
@@ -0,0 +1,3 @@
1
+ <% content_for :content_title, "Media: #{@media_file.short_location}" %>
2
+ <% @title = 'Updating Media File' %>
3
+ <%= render 'form' %>
@@ -0,0 +1,98 @@
1
+ <% content_for :content_title, 'Media Library' %>
2
+ <% toolbar = toolbar_btn(icons(:new), new_admin_media_file_path, title: 'New Upload', class: "btn btn-link btn-icon") %>
3
+ <%= panel title: 'Thumbnails', toolbar: toolbar do %>
4
+ <h6>Filter by tag:</h6>
5
+ <div class="tagsinput block">
6
+ <%= link_to content_tag(:span, 'all', class: "tag #{'active' if @tag_filter == 'all'}"), admin_media_files_path(filter: 'all') %>
7
+ <%= link_to content_tag(:span, '/', class: "tag #{'active' if @tag_filter == 'top'}"), admin_media_files_path(filter: 'top') %>
8
+ <% MediaFile.tag_list_all.each do |tag| %>
9
+ <% active_tag = (@tag_filter == tag ? 'active' : '') %>
10
+ <%= link_to content_tag(:span, tag, class: "tag #{active_tag}"), admin_media_files_path(filter: tag) %>
11
+ <% end %>
12
+ </div>
13
+
14
+ <div class="tabbable">
15
+ <ul class="nav nav-tabs">
16
+ <li class="active"><a href="#list_tab" data-toggle="tab">List</a></li>
17
+ <li><a href="#grid_tab" data-toggle="tab">Grid</a></li>
18
+ </ul>
19
+
20
+ <div class="tab-content with-padding">
21
+
22
+ <%#--- List Tab %>
23
+ <div class="tab-pane fade in active" id="list_tab">
24
+ <table class="table table-bordered table-hover">
25
+ <tbody>
26
+ <% @media_files.each do |media_file| %>
27
+ <tr>
28
+ <td style="width: 150px;">
29
+ <% if media_file.image? or media_file.pdf? %>
30
+ <%= link_to image_tag(media_file.media_url(:thumb)), media_file.media_url, class: 'thumbnail lightbox' %>
31
+ <% else %>
32
+ <%= link_to media_file.media_url do %>
33
+ <div class="aspect_wrapper_square">
34
+ <div class="thumbnail_extension_thumb">
35
+ <span><%= media_file.media.file.extension %></span>
36
+ </div>
37
+ </div>
38
+ <% end %>
39
+ <% end %>
40
+ </td>
41
+ <td>
42
+ <div class="media">
43
+ <div class="media-body">
44
+ <%= media_file.media.file.filename %>
45
+ <ul class="headline-info" style="margin-right: 150px;">
46
+ <li><%= format_datetime media_file.created_at %></li>
47
+ </ul>
48
+ <div class="media-footer"><span class="text-info">Publication:</span> footer_text</div>
49
+ </div>
50
+ </div>
51
+ </td>
52
+ </tr>
53
+ <% end %>
54
+ </tbody>
55
+ </table>
56
+ </div>
57
+
58
+ <%#--- Grid Tab %>
59
+ <div class="tab-pane fade" id="grid_tab">
60
+ <% @media_files.each_slice(4) do |media_chunk| %>
61
+ <div class="row">
62
+ <% media_chunk.each do |media_file| %>
63
+ <div class="col-lg-3 col-md-3 col-sm-3">
64
+ <div class="block">
65
+ <div class="thumbnailx thumbnail-boxed">
66
+ <% if media_file.image? or media_file.pdf? %>
67
+ <%= link_to image_tag(media_file.media_url(:thumb), width: '100%'), media_file.media_url, class: 'thumbnail lightbox' %>
68
+ <% else %>
69
+ <%= link_to media_file.media_url do %>
70
+ <div class="aspect_wrapper_square">
71
+ <div class="thumbnail_extension_thumb">
72
+ <span><%= media_file.media.file.extension %></span>
73
+ </div>
74
+ </div>
75
+ <% end %>
76
+ <% end %>
77
+ <div class="caption">
78
+ <h6 style="word-wrap: break-word;text-align:center;margin-top:0px;"><%= media_file.media.file.filename %></h6>
79
+ <%= link_to icons(:edit), edit_admin_media_file_path(media_file), class: "btn btn-link btn-icon" %>
80
+ </div>
81
+ </div>
82
+ </div>
83
+ </div>
84
+ <% end %>
85
+ </div>
86
+ <% end %>
87
+
88
+ </div>
89
+ </div>
90
+
91
+ <div class="row">
92
+ <div class='col-md-12'>
93
+ <%= will_paginate(@media_files, inner_window: 10, next_label: 'Next', previous_label: 'Prev', renderer: WillPaginate::AdminThemeRenderer) %>
94
+ </div>
95
+ </div>
96
+ </div>
97
+ <% end %>
98
+