locomotivecms 3.0.0.pre.alpha.3 → 3.0.0.pre.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (361) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +15 -8
  3. data/app/api/locomotive/api.rb +1 -0
  4. data/app/api/locomotive/api/entities/content_entry_entity.rb +1 -0
  5. data/app/api/locomotive/api/entities/content_type_entity.rb +2 -1
  6. data/app/api/locomotive/api/entities/site_entity.rb +4 -0
  7. data/app/api/locomotive/api/entities/theme_asset_entity.rb +3 -3
  8. data/app/api/locomotive/api/forms/base_form.rb +0 -6
  9. data/app/api/locomotive/api/forms/content_type_field_form.rb +6 -10
  10. data/app/api/locomotive/api/forms/content_type_form.rb +26 -4
  11. data/app/api/locomotive/api/middlewares/params_decoder_middleware.rb +91 -0
  12. data/app/api/locomotive/api/resources/content_type_resource.rb +7 -2
  13. data/app/api/locomotive/api/resources/current_site_resource.rb +10 -2
  14. data/app/assets/images/locomotive/favicon.png +0 -0
  15. data/app/assets/javascripts/locomotive/not_logged_in.js.coffee +11 -1
  16. data/app/assets/javascripts/locomotive/views/application_view.js.coffee +0 -76
  17. data/app/assets/javascripts/locomotive/views/content_assets/edit_image_view.js.coffee +3 -1
  18. data/app/assets/javascripts/locomotive/views/dashboard/show_view.js.coffee +33 -1
  19. data/app/assets/javascripts/locomotive/views/developers_documentation/show_view.js.coffee +9 -0
  20. data/app/assets/javascripts/locomotive/views/editable_elements/edit_view.js.coffee +3 -1
  21. data/app/assets/javascripts/locomotive/views/editable_elements/index_view.js.coffee +11 -11
  22. data/app/assets/javascripts/locomotive/views/inputs/text_view.js.coffee +16 -0
  23. data/app/assets/javascripts/locomotive/views/pages/_form_view.js.coffee +0 -158
  24. data/app/assets/javascripts/locomotive/views/pages/edit_view.js.coffee +0 -41
  25. data/app/assets/javascripts/locomotive/views/public_submission_accounts/edit_view.js.coffee +7 -0
  26. data/app/assets/javascripts/locomotive/views/shared/form_view.js.coffee +11 -3
  27. data/app/assets/javascripts/locomotive/views/shared/list_view.js.coffee +4 -2
  28. data/app/assets/javascripts/locomotive/views/translations/index_view.js.coffee +5 -0
  29. data/app/assets/stylesheets/locomotive/application.scss +4 -0
  30. data/app/assets/stylesheets/locomotive/base/_fonts.scss +5 -5
  31. data/app/assets/stylesheets/locomotive/base/form/_base.scss +9 -1
  32. data/app/assets/stylesheets/locomotive/components/_activity_feed.scss +66 -0
  33. data/app/assets/stylesheets/locomotive/components/_content_assets.scss +27 -8
  34. data/app/assets/stylesheets/locomotive/components/_developers.scss +34 -0
  35. data/app/assets/stylesheets/locomotive/components/_error.scss +37 -0
  36. data/app/assets/stylesheets/locomotive/components/_list.scss +6 -0
  37. data/app/assets/stylesheets/locomotive/components/_main.scss +4 -0
  38. data/app/assets/stylesheets/locomotive/components/_misc.scss +1 -0
  39. data/app/assets/stylesheets/locomotive/components/_translations.scss +13 -0
  40. data/app/assets/stylesheets/locomotive/components/header/_base.scss +7 -2
  41. data/app/assets/stylesheets/locomotive/components/misc/_modal.scss +13 -0
  42. data/app/assets/stylesheets/locomotive/components/misc/_notify.scss +2 -2
  43. data/app/assets/stylesheets/locomotive/components/not_logged_in/_sign_in_and_up.scss +11 -1
  44. data/app/assets/stylesheets/locomotive/components/sidebar/_pages_tree.scss +2 -2
  45. data/app/assets/stylesheets/locomotive/error.scss +12 -0
  46. data/app/assets/stylesheets/locomotive/globals/_bootstrap.scss +1 -1
  47. data/app/assets/stylesheets/locomotive/globals/_mixins.scss +8 -4
  48. data/app/assets/stylesheets/locomotive/globals/_variables.scss +2 -0
  49. data/app/assets/stylesheets/locomotive/not_logged_in.scss +4 -0
  50. data/app/controllers/locomotive/accounts_controller.rb +6 -1
  51. data/app/controllers/locomotive/base_controller.rb +1 -1
  52. data/app/controllers/locomotive/concerns/exception_controller.rb +2 -1
  53. data/app/controllers/locomotive/concerns/site_dispatcher_controller.rb +2 -1
  54. data/app/controllers/locomotive/content_assets_controller.rb +2 -2
  55. data/app/controllers/locomotive/content_entries_controller.rb +2 -2
  56. data/app/controllers/locomotive/current_site_controller.rb +5 -1
  57. data/app/controllers/locomotive/custom_fields/select_options_controller.rb +1 -1
  58. data/app/controllers/locomotive/dashboard_controller.rb +2 -0
  59. data/app/controllers/locomotive/developers_documentation_controller.rb +11 -0
  60. data/app/controllers/locomotive/editable_elements_controller.rb +11 -10
  61. data/app/controllers/locomotive/errors_controller.rb +15 -0
  62. data/app/controllers/locomotive/pages_controller.rb +3 -3
  63. data/app/controllers/locomotive/public_submission_accounts_controller.rb +42 -0
  64. data/app/controllers/locomotive/translations_controller.rb +9 -23
  65. data/app/helpers/locomotive/base_helper.rb +25 -23
  66. data/app/helpers/locomotive/content_assets_helper.rb +8 -0
  67. data/app/helpers/locomotive/content_entries_helper.rb +13 -19
  68. data/app/helpers/locomotive/content_types_helper.rb +9 -12
  69. data/app/helpers/locomotive/custom_fields_helper.rb +1 -0
  70. data/app/helpers/locomotive/dashboard_helper.rb +91 -0
  71. data/app/helpers/locomotive/developers_documentation_helper.rb +32 -0
  72. data/app/helpers/locomotive/editable_elements_helper.rb +25 -14
  73. data/app/helpers/locomotive/errors_helper.rb +21 -0
  74. data/app/helpers/locomotive/my_account_helper.rb +10 -8
  75. data/app/helpers/locomotive/pages_helper.rb +1 -1
  76. data/app/helpers/locomotive/public_submission_accounts_helper.rb +11 -0
  77. data/app/helpers/locomotive/shared/accounts_helper.rb +2 -2
  78. data/app/helpers/locomotive/sites_helper.rb +15 -11
  79. data/app/helpers/locomotive/translations_helper.rb +21 -13
  80. data/app/inputs/locomotive/api_key_input.rb +2 -0
  81. data/app/inputs/locomotive/array_input.rb +8 -3
  82. data/app/inputs/locomotive/code_input.rb +1 -47
  83. data/app/inputs/locomotive/document_picker_input.rb +1 -0
  84. data/app/inputs/locomotive/rte_input.rb +2 -0
  85. data/app/inputs/locomotive/toggle_input.rb +2 -0
  86. data/app/models/locomotive/activity.rb +32 -0
  87. data/app/models/locomotive/concerns/content_entry/localized.rb +12 -1
  88. data/app/models/locomotive/concerns/content_type/entry_template.rb +52 -0
  89. data/app/models/locomotive/concerns/page/editable_elements.rb +0 -111
  90. data/app/models/locomotive/concerns/page/layout.rb +21 -6
  91. data/app/models/locomotive/concerns/site/access_points.rb +24 -3
  92. data/app/models/locomotive/concerns/site/locales.rb +7 -27
  93. data/app/models/locomotive/content_asset.rb +0 -4
  94. data/app/models/locomotive/content_entry.rb +10 -8
  95. data/app/models/locomotive/content_type.rb +12 -1
  96. data/app/models/locomotive/editable_element.rb +11 -106
  97. data/app/models/locomotive/editable_file.rb +6 -53
  98. data/app/models/locomotive/editable_model.rb +13 -0
  99. data/app/models/locomotive/editable_text.rb +0 -51
  100. data/app/models/locomotive/page.rb +31 -17
  101. data/app/models/locomotive/site.rb +12 -13
  102. data/app/models/locomotive/theme_asset.rb +0 -4
  103. data/app/models/locomotive/translation.rb +50 -35
  104. data/app/policies/locomotive/content_type_policy.rb +4 -0
  105. data/app/policies/locomotive/site_policy.rb +4 -0
  106. data/app/services/locomotive/concerns/activity_service.rb +27 -0
  107. data/app/services/locomotive/content_asset_service.rb +16 -2
  108. data/app/services/locomotive/content_entry_service.rb +77 -8
  109. data/app/services/locomotive/content_type_service.rb +6 -2
  110. data/app/services/locomotive/editable_element_service.rb +11 -4
  111. data/app/services/locomotive/membership_service.rb +20 -4
  112. data/app/services/locomotive/page_parsing_service.rb +94 -23
  113. data/app/services/locomotive/page_service.rb +61 -3
  114. data/app/services/locomotive/site_service.rb +43 -1
  115. data/app/services/locomotive/translation_service.rb +51 -0
  116. data/app/uploaders/locomotive/picture_uploader.rb +5 -1
  117. data/app/views/locomotive/accounts/{new.html.haml → new.html.slim} +0 -0
  118. data/app/views/locomotive/content_assets/{_dropzone.html.haml → _dropzone.html.slim} +4 -3
  119. data/app/views/locomotive/content_assets/{_list.html.haml → _list.html.slim} +11 -9
  120. data/app/views/locomotive/content_assets/{_nav.html.haml → _nav.html.slim} +5 -5
  121. data/app/views/locomotive/content_assets/{_search_form.html.haml → _search_form.html.slim} +1 -1
  122. data/app/views/locomotive/content_assets/edit_in_drawer.html.slim +27 -0
  123. data/app/views/locomotive/content_assets/{index.html.haml → index.html.slim} +4 -4
  124. data/app/views/locomotive/content_assets/{index_in_drawer.html.haml → index_in_drawer.html.slim} +1 -1
  125. data/app/views/locomotive/content_entries/{_entry.html.haml → _entry.html.slim} +3 -3
  126. data/app/views/locomotive/content_entries/{_list.html.haml → _list.html.slim} +9 -8
  127. data/app/views/locomotive/content_entries/{edit.html.haml → edit.html.slim} +5 -0
  128. data/app/views/locomotive/content_entries/form/{_actions.html.haml → _actions.html.slim} +0 -0
  129. data/app/views/locomotive/content_entries/form/{_advanced.html.haml → _advanced.html.slim} +0 -0
  130. data/app/views/locomotive/content_entries/form/{_main.html.haml → _main.html.slim} +0 -0
  131. data/app/views/locomotive/content_entries/form/{_panes.html.haml → _panes.html.slim} +0 -0
  132. data/app/views/locomotive/content_entries/form/{_seo.html.haml → _seo.html.slim} +0 -0
  133. data/app/views/locomotive/content_entries/form/_tabs.html.slim +13 -0
  134. data/app/views/locomotive/content_entries/{index.html.haml → index.html.slim} +22 -9
  135. data/app/views/locomotive/content_entries/{new.html.haml → new.html.slim} +0 -0
  136. data/app/views/locomotive/current_site/{_domain.html.haml → _domain.html.slim} +3 -3
  137. data/app/views/locomotive/current_site/{_locale.html.haml → _locale.html.slim} +4 -4
  138. data/app/views/locomotive/current_site/{_membership.html.haml → _membership.html.slim} +7 -6
  139. data/app/views/locomotive/current_site/{edit.html.haml → edit.html.slim} +1 -1
  140. data/app/views/locomotive/current_site/form/{_access_points.html.haml → _access_points.html.slim} +1 -0
  141. data/app/views/locomotive/current_site/form/{_advanced.html.haml → _advanced.html.slim} +0 -0
  142. data/app/views/locomotive/current_site/form/{_main.html.haml → _main.html.slim} +0 -0
  143. data/app/views/locomotive/current_site/form/{_panes.html.haml → _panes.html.slim} +0 -0
  144. data/app/views/locomotive/current_site/form/{_seo.html.haml → _seo.html.slim} +0 -0
  145. data/app/views/locomotive/current_site/form/_tabs.html.slim +14 -0
  146. data/app/views/locomotive/custom_fields/select_options/{_option.html.haml → _option.html.slim} +7 -7
  147. data/app/views/locomotive/custom_fields/select_options/{edit.html.haml → edit.html.slim} +0 -0
  148. data/app/views/locomotive/dashboard/show.html.slim +28 -0
  149. data/app/views/locomotive/developers_documentation/_api.html.slim +44 -0
  150. data/app/views/locomotive/developers_documentation/_wagon.html.slim +42 -0
  151. data/app/views/locomotive/developers_documentation/show.html.slim +11 -0
  152. data/app/views/locomotive/devise_mailer/reset_password_instructions.html.slim +12 -0
  153. data/app/views/locomotive/editable_elements/_edit.html.slim +52 -0
  154. data/app/views/locomotive/editable_elements/{_form.html.haml → _form.html.slim} +12 -3
  155. data/app/views/locomotive/editable_elements/index.html.slim +8 -0
  156. data/app/views/locomotive/editable_elements/{index_without_preview.html.haml → index_without_preview.html.slim} +5 -4
  157. data/app/views/locomotive/errors/404.html.slim +2 -0
  158. data/app/views/locomotive/errors/500.html.slim +2 -0
  159. data/app/views/locomotive/errors/no_site.html.slim +7 -0
  160. data/app/views/locomotive/layouts/application.html.slim +42 -0
  161. data/app/views/locomotive/layouts/error.html.slim +24 -0
  162. data/app/views/locomotive/layouts/{live_editing.html.haml → live_editing.html.slim} +10 -10
  163. data/app/views/locomotive/layouts/not_logged_in.html.slim +26 -0
  164. data/app/views/locomotive/layouts/{without_site.html.haml → without_site.html.slim} +9 -6
  165. data/app/views/locomotive/memberships/{edit.html.haml → edit.html.slim} +0 -0
  166. data/app/views/locomotive/memberships/{new.html.haml → new.html.slim} +0 -0
  167. data/app/views/locomotive/my_account/{edit.html.haml → edit.html.slim} +1 -1
  168. data/app/views/locomotive/my_account/form/{_actions.html.haml → _actions.html.slim} +0 -0
  169. data/app/views/locomotive/my_account/form/{_api.html.haml → _api.html.slim} +0 -1
  170. data/app/views/locomotive/my_account/form/{_credentials.html.haml → _credentials.html.slim} +0 -0
  171. data/app/views/locomotive/my_account/form/{_main.html.haml → _main.html.slim} +0 -0
  172. data/app/views/locomotive/my_account/form/{_panes.html.haml → _panes.html.slim} +1 -1
  173. data/app/views/locomotive/my_account/form/_tabs.html.slim +7 -0
  174. data/app/views/locomotive/notifications/{new_content_entry.html.haml → new_content_entry.html.slim} +11 -11
  175. data/app/views/locomotive/pages/{edit.html.haml → edit.html.slim} +0 -0
  176. data/app/views/locomotive/pages/form/{_actions.html.haml → _actions.html.slim} +0 -0
  177. data/app/views/locomotive/pages/form/{_main.html.haml → _main.html.slim} +0 -0
  178. data/app/views/locomotive/pages/form/{_panes.html.haml → _panes.html.slim} +0 -0
  179. data/app/views/locomotive/pages/form/{_seo.html.haml → _seo.html.slim} +0 -0
  180. data/app/views/locomotive/pages/form/{_tabs.html.haml → _tabs.html.slim} +1 -1
  181. data/app/views/locomotive/pages/{new.html.haml → new.html.slim} +0 -0
  182. data/app/views/locomotive/pages/show.html.slim +2 -0
  183. data/app/views/locomotive/passwords/{edit.html.haml → edit.html.slim} +6 -6
  184. data/app/views/locomotive/passwords/{new.html.haml → new.html.slim} +6 -6
  185. data/app/views/locomotive/public_submission_accounts/_account.html.slim +19 -0
  186. data/app/views/locomotive/public_submission_accounts/edit.html.slim +16 -0
  187. data/app/views/locomotive/registrations/{new.html.haml → new.html.slim} +2 -4
  188. data/app/views/locomotive/sessions/{new.html.haml → new.html.slim} +2 -4
  189. data/app/views/locomotive/shared/_footer.html.slim +2 -0
  190. data/app/views/locomotive/shared/{_form_actions.html.haml → _form_actions.html.slim} +4 -4
  191. data/app/views/locomotive/shared/_head.html.slim +39 -0
  192. data/app/views/locomotive/shared/{_header.html.haml → _header.html.slim} +10 -10
  193. data/app/views/locomotive/shared/_locale_picker_link.html.slim +11 -0
  194. data/app/views/locomotive/shared/{_main_app_head.html.haml → _main_app_head.html.slim} +0 -0
  195. data/app/views/locomotive/shared/{_main_app_head_before_backbone.html.haml → _main_app_head_before_backbone.html.slim} +0 -0
  196. data/app/views/locomotive/shared/{_main_app_header.html.haml → _main_app_header.html.slim} +0 -0
  197. data/app/views/locomotive/shared/{_sidebar.html.haml → _sidebar.html.slim} +6 -0
  198. data/app/views/locomotive/shared/{_sidebar_without_site.html.haml → _sidebar_without_site.html.slim} +0 -0
  199. data/app/views/locomotive/shared/actions/{_contents.html.haml → _contents.html.slim} +1 -1
  200. data/app/views/locomotive/shared/header/{_account.html.haml → _account.html.slim} +1 -1
  201. data/app/views/locomotive/shared/header/_account_menu.html.slim +5 -0
  202. data/app/views/locomotive/shared/header/_brand.html.slim +5 -0
  203. data/app/views/locomotive/shared/header/{_site.html.haml → _site.html.slim} +2 -2
  204. data/app/views/locomotive/shared/rte/{_image_popover.html.haml → _image_popover.html.slim} +5 -5
  205. data/app/views/locomotive/shared/rte/{_link_popover.html.haml → _link_popover.html.slim} +5 -5
  206. data/app/views/locomotive/shared/rte/_toolbar.html.slim +62 -0
  207. data/app/views/locomotive/shared/sidebar/_content_types.html.slim +16 -0
  208. data/app/views/locomotive/shared/sidebar/_link.html.slim +10 -0
  209. data/app/views/locomotive/shared/sidebar/{_my_account.html.haml → _my_account.html.slim} +2 -2
  210. data/app/views/locomotive/shared/sidebar/_page.html.slim +33 -0
  211. data/app/views/locomotive/shared/sidebar/_pages.html.slim +11 -0
  212. data/app/views/locomotive/sites/{_site.html.haml → _site.html.slim} +3 -3
  213. data/app/views/locomotive/sites/{index.html.haml → index.html.slim} +3 -3
  214. data/app/views/locomotive/sites/{new.html.haml → new.html.slim} +0 -0
  215. data/app/views/locomotive/translations/_form.html.slim +9 -0
  216. data/app/views/locomotive/translations/edit.html.slim +7 -0
  217. data/app/views/locomotive/translations/index.html.slim +41 -0
  218. data/config/initializers/slim.rb +1 -0
  219. data/config/initializers/time_format.rb +15 -0
  220. data/config/locales/admin_ui.en.yml +65 -49
  221. data/config/locales/default.en.yml +3 -0
  222. data/config/locales/default.fr.yml +4 -1
  223. data/config/locales/simple_form.en.yml +14 -8
  224. data/config/routes.rb +6 -0
  225. data/features/support/env.rb +1 -1
  226. data/lib/generators/locomotive/install/install_generator.rb +48 -0
  227. data/lib/generators/locomotive/install/templates/heroku.rb +29 -0
  228. data/lib/generators/locomotive/install/templates/locomotive.rb +5 -2
  229. data/lib/generators/locomotive/install/templates/mongoid.yml +1 -1
  230. data/lib/generators/locomotive/install/templates/mongoid_heroku.yml +78 -0
  231. data/lib/locomotive.rb +0 -1
  232. data/lib/locomotive/configuration.rb +2 -6
  233. data/lib/locomotive/dependencies.rb +1 -2
  234. data/lib/locomotive/dragonfly.rb +4 -5
  235. data/lib/locomotive/engine.rb +10 -13
  236. data/lib/locomotive/middlewares.rb +0 -1
  237. data/lib/locomotive/middlewares/custom_public_exceptions.rb +19 -0
  238. data/lib/locomotive/middlewares/site.rb +49 -16
  239. data/lib/locomotive/simple_form.rb +67 -26
  240. data/lib/locomotive/steam/middlewares/missing_translations.rb +48 -0
  241. data/lib/locomotive/steam/middlewares/page_editing.rb +48 -0
  242. data/lib/locomotive/steam/services/api_entry_submission_service.rb +38 -0
  243. data/lib/locomotive/steam_adaptor.rb +25 -6
  244. data/lib/locomotive/version.rb +1 -1
  245. data/lib/tasks/locomotive.rake +27 -47
  246. data/spec/dummy/app/views/foo/index.html.slim +1 -0
  247. data/spec/dummy/app/views/locomotive/shared/{_main_app_head.html.haml → _main_app_head.html.slim} +0 -0
  248. data/spec/dummy/config.ru +4 -0
  249. data/spec/dummy/config/application.rb +4 -0
  250. data/spec/dummy/config/environments/profile.rb +48 -0
  251. data/spec/dummy/config/mongoid.yml +6 -6
  252. data/spec/lib/locomotive/steam/services/api_entry_submission_service_spec.rb +39 -0
  253. data/spec/models/locomotive/concerns/content_type/entry_template_spec.rb +55 -0
  254. data/spec/models/locomotive/concerns/page/layout_spec.rb +2 -2
  255. data/spec/models/locomotive/concerns/site/access_points_spec.rb +87 -2
  256. data/spec/models/locomotive/concerns/site/locales_spec.rb +2 -3
  257. data/spec/models/locomotive/content_entry_spec.rb +22 -37
  258. data/spec/models/locomotive/page_spec.rb +11 -0
  259. data/spec/models/locomotive/site_spec.rb +0 -36
  260. data/spec/requests/site_spec.rb +28 -0
  261. data/spec/support/capybara.rb +27 -0
  262. data/spec/support/factories.rb +9 -0
  263. data/spec/support/features/session_helpers.rb +21 -0
  264. data/spec/support/locomotive.rb +0 -4
  265. data/spec/support/matchers.rb +0 -25
  266. data/vendor/assets/javascripts/locomotive/highlight.pack.js +1 -0
  267. data/vendor/assets/stylesheets/locomotive/highlightjs/default.css +155 -0
  268. data/vendor/assets/stylesheets/locomotive/highlightjs/github.css +123 -0
  269. metadata +179 -195
  270. data/app/assets/images/locomotive/background/body.png +0 -0
  271. data/app/assets/images/locomotive/form/error-arrow.png +0 -0
  272. data/app/assets/images/locomotive/form/input-sep.png +0 -0
  273. data/app/assets/images/locomotive/icons/start.png +0 -0
  274. data/app/assets/images/locomotive/list/empty.png +0 -0
  275. data/app/assets/images/locomotive/list/item-left.png +0 -0
  276. data/app/assets/images/locomotive/nocoffee.png +0 -0
  277. data/app/assets/images/locomotive/plugins/sites_picker_top_arrow.png +0 -0
  278. data/app/assets/images/locomotive/rails.png +0 -0
  279. data/app/assets/javascripts/locomotive/views/pages/index_view.js.coffee +0 -11
  280. data/app/cells/locomotive/content_locale_picker/show.html.haml +0 -7
  281. data/app/cells/locomotive/content_locale_picker_cell.rb +0 -21
  282. data/app/helpers/locomotive/installation_helper.rb +0 -9
  283. data/app/inputs/locomotive/locale_input.rb +0 -41
  284. data/app/inputs/locomotive/small_code_input.rb +0 -23
  285. data/app/models/locomotive/concerns/content_entry/notifications.rb +0 -33
  286. data/app/models/locomotive/concerns/content_type/item_template.rb +0 -49
  287. data/app/models/locomotive/concerns/page/parse.rb +0 -133
  288. data/app/presenters/locomotive/account_presenter.rb +0 -20
  289. data/app/presenters/locomotive/base_presenter.rb +0 -144
  290. data/app/presenters/locomotive/content_asset_presenter.rb +0 -51
  291. data/app/presenters/locomotive/content_entry_presenter.rb +0 -177
  292. data/app/presenters/locomotive/content_field_presenter.rb +0 -76
  293. data/app/presenters/locomotive/content_type_presenter.rb +0 -82
  294. data/app/presenters/locomotive/editable_control_presenter.rb +0 -19
  295. data/app/presenters/locomotive/editable_element_presenter.rb +0 -46
  296. data/app/presenters/locomotive/editable_file_presenter.rb +0 -36
  297. data/app/presenters/locomotive/editable_text_presenter.rb +0 -40
  298. data/app/presenters/locomotive/membership_presenter.rb +0 -35
  299. data/app/presenters/locomotive/page_presenter.rb +0 -81
  300. data/app/presenters/locomotive/site_presenter.rb +0 -40
  301. data/app/presenters/locomotive/snippet_presenter.rb +0 -22
  302. data/app/presenters/locomotive/theme_asset_presenter.rb +0 -61
  303. data/app/presenters/locomotive/translation_presenter.rb +0 -9
  304. data/app/views/locomotive/content_assets/edit_in_drawer.html.haml +0 -26
  305. data/app/views/locomotive/content_entries/form/_tabs.html.haml +0 -9
  306. data/app/views/locomotive/current_site/form/_tabs.html.haml +0 -14
  307. data/app/views/locomotive/dashboard/show.html.haml +0 -0
  308. data/app/views/locomotive/devise_mailer/reset_password_instructions.html.haml +0 -12
  309. data/app/views/locomotive/editable_elements/_edit.html.haml +0 -49
  310. data/app/views/locomotive/editable_elements/_edit_with_content_entry.html.haml +0 -21
  311. data/app/views/locomotive/editable_elements/index.html.haml +0 -8
  312. data/app/views/locomotive/errors/404.html.haml +0 -7
  313. data/app/views/locomotive/errors/500.html.haml +0 -7
  314. data/app/views/locomotive/errors/no_page.html.haml +0 -1
  315. data/app/views/locomotive/errors/no_site.html.haml +0 -1
  316. data/app/views/locomotive/layouts/application.html.haml +0 -42
  317. data/app/views/locomotive/layouts/error.html.haml +0 -1
  318. data/app/views/locomotive/layouts/not_logged_in.html.haml +0 -18
  319. data/app/views/locomotive/my_account/form/_tabs.html.haml +0 -7
  320. data/app/views/locomotive/pages/_editable_elements.html.haml +0 -64
  321. data/app/views/locomotive/pages/index.html.haml +0 -22
  322. data/app/views/locomotive/pages/show.html.haml +0 -2
  323. data/app/views/locomotive/shared/_footer.html.haml +0 -2
  324. data/app/views/locomotive/shared/_head.html.haml +0 -40
  325. data/app/views/locomotive/shared/_locale_picker_link.html.haml +0 -6
  326. data/app/views/locomotive/shared/header/_account_menu.html.haml +0 -5
  327. data/app/views/locomotive/shared/header/_brand.html.haml +0 -4
  328. data/app/views/locomotive/shared/rte/_toolbar.html.haml +0 -62
  329. data/app/views/locomotive/shared/sidebar/_content_types.html.haml +0 -15
  330. data/app/views/locomotive/shared/sidebar/_link.html.haml +0 -10
  331. data/app/views/locomotive/shared/sidebar/_page.html.haml +0 -33
  332. data/app/views/locomotive/shared/sidebar/_pages.html.haml +0 -11
  333. data/app/views/locomotive/translations/_form.html.haml +0 -12
  334. data/app/views/locomotive/translations/edit.html.haml +0 -15
  335. data/app/views/locomotive/translations/index.html.haml +0 -30
  336. data/app/views/locomotive/translations/new.html.haml +0 -12
  337. data/config/initializers/haml.rb +0 -2
  338. data/config/initializers/locomotive_loaded_first.rb +0 -19
  339. data/config/locales/formtastic.bg.yml +0 -113
  340. data/config/locales/formtastic.cs.yml +0 -125
  341. data/config/locales/formtastic.de.yml +0 -106
  342. data/config/locales/formtastic.es.yml +0 -84
  343. data/config/locales/formtastic.et.yml +0 -103
  344. data/config/locales/formtastic.fr.yml +0 -109
  345. data/config/locales/formtastic.it.yml +0 -99
  346. data/config/locales/formtastic.ja.yml +0 -103
  347. data/config/locales/formtastic.nb.yml +0 -103
  348. data/config/locales/formtastic.nl.yml +0 -85
  349. data/config/locales/formtastic.pl.yml +0 -105
  350. data/config/locales/formtastic.pt-BR.yml +0 -70
  351. data/config/locales/formtastic.pt.yml +0 -70
  352. data/config/locales/formtastic.ru.yml +0 -106
  353. data/config/locales/formtastic.sk.yml +0 -125
  354. data/config/locales/formtastic.sr.yml +0 -112
  355. data/config/locales/formtastic.zh-CN.yml +0 -112
  356. data/lib/locomotive/haml.rb +0 -1
  357. data/lib/locomotive/middlewares/page_editing.rb +0 -41
  358. data/spec/dummy/app/views/foo/index.html.haml +0 -1
  359. data/spec/dummy/config/initializers/haml.rb +0 -2
  360. data/spec/support/asset_host_stubs.rb +0 -17
  361. data/spec/support/controller.rb +0 -32
@@ -1,15 +1,15 @@
1
1
  - # Filter assets
2
- %ul.nav.nav-tabs{ role: 'tablist' }
3
- %li{ class: "#{'active' if params[:types].nil? }" }
2
+ ul.nav.nav-tabs role='tablist'
3
+ li class="#{'active' if params[:types].nil? }"
4
4
  = link_to t('.types.all'), content_assets_path(current_site, query: params[:query]), remote: remote
5
5
 
6
6
  - Locomotive::ContentAsset.types_for_content_editing.each do |type|
7
- %li{ class: "#{'active' if params[:types] == type }" }
7
+ li class="#{'active' if params[:types] == type }"
8
8
  = link_to t(".types.#{type}"), content_assets_path(current_site, types: type, query: params[:query]), remote: remote
9
- %li{ class: "#{'active' if params[:types] == 'other' }" }
9
+ li class="#{'active' if params[:types] == 'other' }"
10
10
  = link_to t('.types.others'), content_assets_path(current_site, types: 'other', query: params[:query]), remote: remote
11
11
 
12
- %li.search-bar.search-bar-in-nav.visible-md-block.visible-lg-block
12
+ li.search-bar.search-bar-in-nav.visible-md-block.visible-lg-block
13
13
  = render 'search_form', remote: remote
14
14
 
15
15
  .search-bar.search-bar-in-nav.visible-xs-block.visible-sm-block
@@ -2,4 +2,4 @@
2
2
  = hidden_field_tag :types, params[:types] if params[:types]
3
3
  .form-group
4
4
  = text_field_tag :query, params[:query], placeholder: t('.placeholder'), class: 'form-control'
5
- %i.fa.fa-search.icon
5
+ i.fa.fa-search.icon
@@ -0,0 +1,27 @@
1
+ .edit-assets-container
2
+ .image-container data-height=@content_asset.height data-width=@content_asset.width data-filename=@content_asset.name
3
+
4
+ = image_tag @content_asset.source.url
5
+
6
+ .resize-form style='display: none'
7
+ - resize_form = image_resize_form(@content_asset)
8
+ = locomotive_form_for resize_form, url: '#' do |f|
9
+ = f.inputs do
10
+ = f.input :width
11
+ = f.input :height
12
+
13
+ .text-right
14
+ button.btn.btn-sm.btn-success.apply-resizing-btn autocomplete='off' data-loading-text=f.submit_text(:loading_text)
15
+ = f.submit_text
16
+ |  
17
+ button.btn.btn-sm.btn-default.cancel-resizing-btn autocomplete="off"
18
+ = f.submit_text :cancel
19
+
20
+ .actions
21
+ .btn-group-vertical role="group"
22
+ button.btn.btn-sm.btn-primary.resize-btn title=t('.buttons.resize')
23
+ i.fa.fa-compress
24
+ button.btn.btn-sm.btn-primary.crop-btn title=t('.buttons.crop')
25
+ i.fa.fa-crop
26
+ button.btn.btn-sm.btn-success.apply-btn title=t('.buttons.apply') data-url=content_assets_path(current_site, format: :json)
27
+ i.fa.fa-check
@@ -1,12 +1,12 @@
1
- .content-assets{ data: { refresh_url: content_assets_path(current_site) } }
1
+ .content-assets data-refresh-url=content_assets_path(current_site)
2
2
  .row
3
3
  .col-md-9.col-xs-12.col-sm-12
4
4
  .row.header-row
5
5
  .col-md-8.col-xs-9
6
- %h1!= t('.title')
6
+ h1== t('.title')
7
7
  .col-md-4.col-xs-3.actions
8
8
  .visible-xs-block.visible-sm-block
9
- %p.text-right
9
+ p.text-right
10
10
  = link_to t('.upload'), bulk_create_content_assets_path(current_site, :json), class: 'btn btn-sm btn-primary upload'
11
11
 
12
12
  .nav-container
@@ -14,6 +14,6 @@
14
14
 
15
15
  = render 'list', remote: false, enable_select: false
16
16
 
17
- .col-md-3.dropzone.sidebar-dropzone.hidden-xs.hidden-sm{ data: { url: bulk_create_content_assets_path(current_site, :json) } }
17
+ .col-md-3.dropzone.sidebar-dropzone.hidden-xs.hidden-sm data-url= bulk_create_content_assets_path(current_site, :json)
18
18
  .dropzone-inner
19
19
  = render 'dropzone', remote: false
@@ -1,6 +1,6 @@
1
1
  .content-assets
2
2
 
3
- .dropzone.top-dropzone{ data: { url: bulk_create_content_assets_path(current_site, :json) } }
3
+ .dropzone.top-dropzone data-url=bulk_create_content_assets_path(current_site, :json)
4
4
  .container-fluid
5
5
  .row
6
6
  .col-md-12
@@ -1,4 +1,4 @@
1
- .item.row{ data: { id: item._id } }
1
+ .item.row data-id=item._id
2
2
 
3
3
  - if field.type == 'has_many'
4
4
  = hidden_field_tag "content_entry[#{field.name}_attributes][][_id]", item._id
@@ -11,7 +11,7 @@
11
11
  .inner-row.col-md-12
12
12
 
13
13
  .draggable
14
- %i.fa.fa-bars
14
+ i.fa.fa-bars
15
15
 
16
16
  .text
17
17
  = item._label
@@ -19,4 +19,4 @@
19
19
  .buttons
20
20
  = link_to t(:edit, scope: 'locomotive.shared.form.array_input'), edit_content_entry_path(current_site, slug, item, _location: false), class: 'choose btn btn-primary btn-sm'
21
21
  = link_to '#', class: 'delete' do
22
- %i.fa.fa-trash-o
22
+ i.fa.fa-trash-o
@@ -1,27 +1,28 @@
1
1
  - if empty_collection?(entries)
2
2
 
3
- %br
3
+ br
4
4
 
5
5
  .alert.alert-warning
6
- != t('.no_items', url: new_content_entry_path(current_site, content_type.slug))
6
+ == t('.no_items', url: new_content_entry_path(current_site, content_type.slug))
7
7
 
8
8
  - else
9
9
 
10
- #entries-list{ class: "row big-list #{'grouped' if content_type.groupable?} #{'sortable' if content_type.order_manually?}", :'data-sort-url' => sort_content_entries_path(current_site, content_type.slug, :json) }
10
+ #entries-list class="row big-list #{'grouped' if content_type.groupable?} #{'sortable' if content_type.order_manually?}" data-sort-url=sort_content_entries_path(current_site, content_type.slug, :json)
11
11
  - entries.each do |entry|
12
- .item{ class: 'col-md-12', data: { id: entry._id } }
12
+ .item.col-md-12 data-id=entry._id
13
13
  - if content_type.order_manually?
14
14
  .draggable
15
- %i.fa.fa-bars.draggable
15
+ i.fa.fa-bars.draggable
16
16
 
17
17
  .text
18
- %strong= link_to entry_label(content_type, entry), edit_content_entry_path(current_site, content_type.slug, entry)
18
+ .item-label
19
+ = entry_label(content_type, entry)
19
20
  .stamp
20
- != content_entry_stamp(entry)
21
+ == document_stamp(entry)
21
22
 
22
23
  .actions
23
24
  = link_to content_entry_path(current_site, content_type.slug, entry), title: t('locomotive.buttons.delete'), class: 'remove', data: { confirm: t('locomotive.messages.confirm') }, method: :delete do
24
- %i.fa.fa-trash-o
25
+ i.fa.fa-trash-o
25
26
 
26
27
 
27
28
  - if entries.respond_to?(:current_page)
@@ -2,6 +2,11 @@
2
2
 
3
3
  = help @content_type.description
4
4
 
5
+ - content_for :actions do
6
+ - if @content_type.localized?
7
+ = locale_picker_link
8
+ |  
9
+
5
10
  = locomotive_form_for @content_entry, as: :content_entry, url: content_entry_path(current_site, @content_type.slug, @content_entry), html: { multipart: true } do |f|
6
11
 
7
12
  = hidden_field_tag :active_tab, ''
@@ -0,0 +1,13 @@
1
+ ul.nav.nav-tabs role='tablist'
2
+ = form_nav_tab :main, true do
3
+ = link_to t('simple_form.titles.locomotive.content'), '#main', role: 'tab', data: { toggle: 'tab' }
4
+
5
+ - if display_content_entry_tab?(@content_type, :seo)
6
+
7
+ = form_nav_tab :seo do
8
+ = link_to t('simple_form.titles.locomotive.seo'), '#seo', role: 'tab', data: { toggle: 'tab' }
9
+
10
+ - if display_content_entry_tab?(@content_type, :advanced)
11
+
12
+ = form_nav_tab :advanced do
13
+ = link_to t('simple_form.titles.locomotive.advanced'), '#advanced', role: 'tab', data: { toggle: 'tab' }
@@ -1,7 +1,20 @@
1
1
  - title t('.title', type: @content_type.name.capitalize)
2
2
 
3
3
  - content_for :actions do
4
- = link_to t('.new'), new_content_entry_path(current_site, @content_type.slug), class: 'btn btn-primary btn-sm'
4
+ - if @content_type.localized?
5
+ = locale_picker_link
6
+
7
+ - if can_edit_public_submission_accounts?(@content_type)
8
+ = link_to edit_public_submission_accounts_path(current_site, @content_type.slug), class: 'btn btn-primary btn-sm' do
9
+ i.fa.fa-pencil
10
+ |  
11
+ = t('.edit_notification_settings')
12
+
13
+ = link_to new_content_entry_path(current_site, @content_type.slug), class: 'btn btn-primary btn-sm' do
14
+ i.fa.fa-plus
15
+ |  
16
+ = t('.new')
17
+
5
18
 
6
19
  - if @content_type.filter_fields.present?
7
20
  .row
@@ -14,30 +27,30 @@
14
27
  = hidden_field_tag :group, params[:group]
15
28
  = hidden_field_tag :where, params[:where]
16
29
  = text_field_tag :q, params[:q], placeholder: t('.search_placeholder'), class: 'form-control'
17
- %i.fa.fa-search.icon
30
+ i.fa.fa-search.icon
18
31
 
19
32
  - else
20
33
  = help @content_type.description
21
34
 
22
35
  - if @content_type.groupable?
23
36
  .nav-container
24
- %ul.nav.nav-tabs{ role: 'tablist' }
25
- %li{ class: "#{'active' if params[:group].nil? }" }
37
+ ul.nav.nav-tabs role='tablist'
38
+ li class="#{'active' if params[:group].nil?}"
26
39
  = link_to t('.group_by.all'), content_entries_path(current_site, @content_type.slug, query: params[:query])
27
40
 
28
41
  - each_content_entry_group(@content_type) do |group|
29
- %li{ class: "#{'active' if params[:group] == group[:name] }" }
42
+ li class="#{'active' if params[:group] == group[:name]}"
30
43
  = link_to group[:name], group[:url]
31
44
 
32
45
  = render 'list', content_type: @content_type, entries: @content_entries
33
46
 
34
-
35
47
  - unless empty_collection?(@content_entries)
36
48
  .row
37
49
  .col-md-12
38
- %br
39
- %p.text-right
50
+ br
51
+ p.text-right
40
52
  = link_to export_content_entries_path(current_site, @content_type.slug, :csv), class: 'btn btn-primary btn-sm' do
41
- %i.fa.fa-download
53
+ i.fa.fa-download
54
+ |  
42
55
  = t('.download')
43
56
 
@@ -1,15 +1,15 @@
1
- .item.row{ data: { id: domain } }
1
+ .item.row data-id=domain
2
2
 
3
3
  = hidden_field_tag 'site[domains][]', domain
4
4
 
5
5
  .inner-row.col-md-12
6
6
 
7
7
  .draggable
8
- %i.fa.fa-bars
8
+ i.fa.fa-bars
9
9
 
10
10
  .text
11
11
  = domain
12
12
 
13
13
  .buttons
14
14
  = link_to '#', class: 'delete' do
15
- %i.fa.fa-trash-o
15
+ i.fa.fa-trash-o
@@ -1,18 +1,18 @@
1
- .item.row{ data: { id: locale } }
1
+ .item.row data-id=locale
2
2
 
3
3
  = hidden_field_tag 'site[locales][]', locale
4
4
 
5
5
  .inner-row.col-md-12
6
6
 
7
7
  .draggable
8
- %i.fa.fa-bars
8
+ i.fa.fa-bars
9
9
 
10
10
  .text
11
11
  = image_tag "locomotive/icons/flags/#{locale}.png", alt: locale, size: '24x24'
12
-
12
+ |  
13
13
  = I18n.t("locomotive.locales.#{locale}")
14
14
 
15
15
  .buttons
16
16
  - if current_site.default_locale != locale
17
17
  = link_to '#', class: 'delete' do
18
- %i.fa.fa-trash-o
18
+ i.fa.fa-trash-o
@@ -6,16 +6,17 @@
6
6
  = image_tag account_avatar_url(membership.account), class: 'media-object img-circle'
7
7
 
8
8
  .text
9
- %strong= membership.account.name
10
- %small
11
- %span.label.label-default
9
+ strong= membership.account.name
10
+ |  
11
+ small
12
+ span.label.label-default
12
13
  = t(membership.role, scope: 'locomotive.memberships.roles')
13
- %br
14
- %small
14
+ br
15
+ small
15
16
  = membership.account.email
16
17
 
17
18
  .buttons
18
19
  - if membership.account != current_locomotive_account && policy(membership).edit?
19
20
  = link_to t(:edit, scope: 'locomotive.shared.form.array_input'), edit_membership_path(current_site, membership), class: 'choose btn btn-primary btn-sm'
20
21
  = link_to membership_path(current_site, membership), class: 'delete', data: { confirm: t('locomotive.messages.confirm') }, method: :delete do
21
- %i.fa.fa-trash-o
22
+ i.fa.fa-trash-o
@@ -2,7 +2,7 @@
2
2
 
3
3
  = help t('.help', default: '')
4
4
 
5
- = locomotive_form_for @site, url: current_site_path(current_site), html: { multipart: true } do |f|
5
+ = locomotive_form_for @site, url: current_site_path(current_site), html: { multipart: true }, defaults: { placeholder: false } do |f|
6
6
 
7
7
  = hidden_field_tag :active_tab, ''
8
8
 
@@ -1,6 +1,7 @@
1
1
  - if policy(@site).point?
2
2
  = f.inputs :access_points do
3
3
  = f.input :handle
4
+
4
5
  = f.input :domains, as: :array, placeholder: true, collection: f.object.domains, template: :domain, template_url: new_domain_current_site_path(current_site)
5
6
 
6
7
  = f.actions do
@@ -0,0 +1,14 @@
1
+ ul.nav.nav-tabs role='tablist'
2
+ = form_nav_tab :information, true do
3
+ = link_to t('simple_form.titles.locomotive.site.information'), '#main', role: 'tab', data: { toggle: 'tab' }
4
+
5
+ - if policy(@site).point?
6
+ = form_nav_tab :access_points do
7
+ = link_to t('simple_form.titles.locomotive.site.access_points'), '#access_points', role: 'tab', data: { toggle: 'tab' }
8
+
9
+ = form_nav_tab :seo do
10
+ = link_to t('simple_form.titles.locomotive.site.seo'), '#seo', role: 'tab', data: { toggle: 'tab' }
11
+
12
+ - if policy(@site).update_advanced?
13
+ = form_nav_tab :advanced do
14
+ = link_to t('simple_form.titles.locomotive.site.advanced'), '#advanced', role: 'tab', data: { toggle: 'tab' }
@@ -1,24 +1,24 @@
1
- .item.row{ data: { id: select_option._id } }
1
+ .item.row data-id=select_option._id
2
2
 
3
3
  .inner-row.col-md-12
4
4
 
5
5
  .draggable
6
- %i.fa.fa-bars
6
+ i.fa.fa-bars
7
7
 
8
8
  .text.editable
9
- %span
9
+ span
10
10
  = select_option.name
11
11
 
12
12
  = text_field_tag 'select_options[][name]', select_option.name, class: 'hide'
13
13
 
14
- %a.apply.btn.btn-sm.btn-primary.hide= t('.apply')
15
- %a.cancel.btn.btn-default.btn-sm.hide= t('.cancel')
14
+ a.apply.btn.btn-sm.btn-primary.hide= t('.apply')
15
+ a.cancel.btn.btn-default.btn-sm.hide= t('.cancel')
16
16
 
17
17
  .buttons
18
18
  = link_to t('.edit'), '#', class: 'btn btn-sm btn-primary edit'
19
-  
19
+ |  
20
20
  = link_to '#', class: 'delete foo' do
21
- %i.fa.fa-trash-o
21
+ i.fa.fa-trash-o
22
22
 
23
23
  - if select_option.persisted?
24
24
  = hidden_field_tag 'select_options[][_id]', select_option._id
@@ -0,0 +1,28 @@
1
+ - title t('.title')
2
+
3
+ .row
4
+ .col-md-12
5
+ ul.activity-feed
6
+ - @activities.each do |activity|
7
+ li class=activity.domain
8
+ span.icon.fa-stack.fa-lg
9
+ i.fa.fa-circle.fa-stack-2x
10
+ i.fa.fa-stack-1x.fa-inverse class=activity_to_icon(activity)
11
+
12
+ p
13
+ = account_avatar_and_name(activity.actor, size = '70x70#')
14
+ |  
15
+ | ·
16
+ |  
17
+ span.time= activity.created_at.to_s(:humanized_ago)
18
+ |  
19
+ | ·
20
+ |  
21
+ span.sentence= render_activity_sentence(activity)
22
+
23
+ - if info = render_activity_additional_information(activity)
24
+ .additional-information= info
25
+
26
+ - if @activities.current_page < @activities.total_pages
27
+ p.text-center
28
+ = link_to t('.load_more'), { page: @activities.current_page + 1 }, class: 'btn btn-primary btn-sm', data: { behavior: 'load-more', loading_text: t('.loading_activity_feed') }, remote: true
@@ -0,0 +1,44 @@
1
+ .alert.alert-info
2
+ | <a href="https://github.com/locomotivecms/coal"><strong>Coal</strong></a> is our Ruby API client for Locomotive. You can still use curl to fetch our Restful API. See our <a href="http://doc.locomotivecms.com" />documentation site</a> for more information.
3
+
4
+ h3 Install Coal
5
+
6
+ pre
7
+ code.bash
8
+ | gem install locomotivecms_coal --pre
9
+
10
+ h3 Authentication
11
+
12
+ p Load the gem
13
+
14
+ pre
15
+ code.ruby
16
+ | require 'locomotive/coal'
17
+
18
+ p Authenticate
19
+
20
+ pre
21
+ code.ruby
22
+ | client = Locomotive::Coal::Client.new('#{current_request_url}', { email: '#{current_locomotive_account.email}', api_key: '#{current_locomotive_account.api_key}' })
23
+
24
+ p Set the site context
25
+
26
+ pre
27
+ code.ruby
28
+ | site_client = client.scope_by('#{current_site.handle}')
29
+
30
+ h3 Get the name of the site and update it
31
+
32
+ pre
33
+ code.ruby
34
+ | puts "Old name is \#{site_client.current_site.get.name}"<br/>
35
+ | site_client.current_site.update name: "A better #{current_site.name}"
36
+
37
+ - current_site.content_types.each do |content_type|
38
+ h3 Get entries of the #{content_type.name} model
39
+
40
+ p Example: get the first 10 entries
41
+
42
+ pre
43
+ code.ruby
44
+ | #{content_type.slug} = site_client.contents.#{content_type.slug}.all