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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d4e648a311d3ce09779e9d4fed45788a010785e6
4
- data.tar.gz: 27930ac44850b8afc52dc064057092c20433212a
3
+ metadata.gz: 6b4009f2488429e00c7d89ed8d530b3063ce5ebe
4
+ data.tar.gz: 523238ddc19928abc3f801e8d09d096baf5a8701
5
5
  SHA512:
6
- metadata.gz: a199883b73bc3ba82d6e103bd9afbd6a1f87c7d3819dc38b78af40f869d699a353cfb9b5f0bbeceffbe0f6884ec3c07935f321635fc45e3d84e6c0501fa32be6
7
- data.tar.gz: be98674b892846c91b6001dc6fd17e8d85b90b4e2b24737acefee63f9db30b116612b356ab66618a67d4a4f8ba17a6700c2f4fe8283e34744613317281558336
6
+ metadata.gz: 75a9d1de7dab0849ba152f7844ba387dff44dc97ac4bb17da20d3ca7a352085dd46757a9681db1f4e141a39943c11b7a0e8b827976f66ae51bfb5b07173b827a
7
+ data.tar.gz: 40665a5be1905a6405f88d476091a79fe2be2530b78abfebe879bf5102c4c969e9ced4ec74bc8f7adefa33b7ae85a48dd14a327e1b343c2a759c266c7eb8a6d0
data/Gemfile CHANGED
@@ -22,7 +22,7 @@ group :development do
22
22
  # gem 'custom_fields', github: 'locomotivecms/custom_fields', ref: '15cceb66ed'
23
23
 
24
24
  # gem 'locomotivecms_steam', path: '../in_progress/steam', require: false
25
- # gem 'locomotivecms_steam', github: 'locomotivecms/steam', ref: 'c56798fc5d4a332', require: false
25
+ # gem 'locomotivecms_steam', github: 'locomotivecms/steam', ref: '2650a1c', require: false
26
26
 
27
27
  # gem 'locomotive-aloha-rails', path: '../gems/aloha-rails' # for Developers
28
28
  # gem 'locomotive-tinymce-rails', path: '../gems/tinymce-rails' # for Developers
@@ -32,33 +32,40 @@ group :development do
32
32
  # gem 'carrierwave-mongoid', git: 'git://github.com/locomotivecms/carrierwave-mongoid.git'
33
33
 
34
34
  gem 'thor'
35
- gem 'github_api'
36
35
 
37
36
  gem 'quiet_assets'
38
37
 
39
- gem 'ruby-prof'
40
-
41
38
  gem 'better_errors'
42
39
  gem 'binding_of_caller'
40
+ gem 'pry-byebug'
43
41
 
44
42
  # gem 'unicorn-rails' # Using unicorn_rails instead of webrick (default server)
45
43
  # gem 'thin'
46
44
  gem 'puma'
47
45
  end
48
46
 
47
+ group :profile, :development do
48
+ gem 'ruby-prof'
49
+ end
50
+
49
51
  group :test do
50
52
  # gem 'launchy'
51
53
  # gem 'capybara', '~> 2.0.2'
52
54
  # gem 'cucumber-rails', require: false
53
- # gem 'poltergeist'
55
+ gem 'simplecov'
56
+
57
+
58
+ gem 'capybara', '~> 2.4.4'
59
+ gem 'poltergeist'
54
60
 
55
- gem 'shoulda-matchers', '~> 2.7.0'
56
61
  gem 'grape-entity-matchers'
62
+ gem 'shoulda-matchers', '2.7.0'
63
+
57
64
  gem 'factory_girl_rails'
58
65
  gem 'pickle'
59
- gem 'json_spec', '~> 1.1.4'
66
+ gem 'json_spec', '~> 1.1.4'
60
67
  gem 'database_cleaner'
61
- gem 'timecop', '~> 0.7.1'
68
+ gem 'timecop', '~> 0.7.1'
62
69
 
63
70
  # gem 'debugger', git: 'git://github.com/cldwalker/debugger.git'
64
71
  end
@@ -8,6 +8,7 @@ module Locomotive
8
8
  Rack::Builder.new do
9
9
  use Locomotive::API::Middlewares::LocaleMiddleware
10
10
  use Locomotive::API::Middlewares::LoggerMiddleware
11
+ use Locomotive::API::Middlewares::ParamsDecoderMiddleware
11
12
  run Locomotive::API::Dispatch
12
13
  end
13
14
  end
@@ -28,6 +28,7 @@ module Locomotive
28
28
  method_name = :"expose_#{field.type}_field"
29
29
 
30
30
  hash[name] = send(method_name, name) if respond_to?(method_name)
31
+
31
32
  hash
32
33
  end
33
34
  end
@@ -4,7 +4,8 @@ module Locomotive
4
4
 
5
5
  class ContentTypeEntity < BaseEntity
6
6
 
7
- expose :name, :slug, :description, :label_field_name, :order_direction, :public_submission_enabled, :raw_item_template
7
+ expose :name, :slug, :description, :label_field_name, :order_direction,
8
+ :public_submission_enabled, :entry_template, :display_settings
8
9
 
9
10
  expose :fields, using: ContentTypeFieldEntity do |content_type, _|
10
11
  content_type.ordered_entries_custom_fields || []
@@ -19,6 +19,10 @@ module Locomotive
19
19
  site.picture.url
20
20
  end
21
21
 
22
+ expose :picture_thumbnail_url do |site, _|
23
+ Locomotive::Dragonfly.resize_url site.picture.url, '100x100#'
24
+ end
25
+
22
26
  end
23
27
 
24
28
  end
@@ -4,10 +4,10 @@ module Locomotive
4
4
 
5
5
  class ThemeAssetEntity < BaseEntity
6
6
 
7
- expose :content_type, :folder, :checksum
7
+ expose :content_type, :local_path, :folder, :checksum
8
8
 
9
- expose :local_path do |theme_asset, _|
10
- theme_asset.local_path(true)
9
+ expose :filename do |theme_asset, _|
10
+ theme_asset.read_attribute(:source_filename)
11
11
  end
12
12
 
13
13
  expose :url do |theme_asset, _|
@@ -66,12 +66,6 @@ module Locomotive
66
66
  instance_variable_set("@#{name}", value)
67
67
  end
68
68
 
69
- # def attributes
70
- # self.class.attributes.inject({}) do |hash, attribute|
71
- # hash.merge(attribute => send(attribute))
72
- # end
73
- # end
74
-
75
69
  end
76
70
 
77
71
  end
@@ -4,17 +4,17 @@ module Locomotive
4
4
 
5
5
  class ContentTypeFieldForm < BaseForm
6
6
 
7
- attr_accessor :content_type_service, :content_type
7
+ attr_accessor :content_type_service, :existing_field
8
8
 
9
9
  attrs :_id, :name, :type, :label, :hint,
10
10
  :required, :localized, :unique, :position,
11
11
  :text_formatting, :select_options_attributes,
12
12
  :target, :inverse_of, :order_by, :ui_enabled,
13
- :class_name
13
+ :class_name, :_destroy
14
14
 
15
- def initialize(content_type_service, content_type, attributes)
15
+ def initialize(content_type_service, existing_field, attributes)
16
16
  self.content_type_service = content_type_service
17
- self.content_type = content_type
17
+ self.existing_field = existing_field
18
18
  super(attributes)
19
19
  end
20
20
 
@@ -41,12 +41,8 @@ module Locomotive
41
41
  private
42
42
 
43
43
  def attach_id_to_option(name, attributes)
44
- field = content_type.try(:find_entries_custom_field, self.name)
45
-
46
- return if field.nil?
47
-
48
- if option = field.select_options.where(name: name).first
49
- # update the option instead of creating it
44
+ return if existing_field.nil?
45
+ if option = existing_field.select_options.where(name: name).first
50
46
  attributes[:_id] = option._id
51
47
  end
52
48
  end
@@ -10,8 +10,9 @@ module Locomotive
10
10
  :order_by, :order_direction, :group_by,
11
11
  :public_submission_enabled,
12
12
  :public_submission_accounts,
13
- :raw_item_template,
14
- :entries_custom_fields_attributes
13
+ :entry_template,
14
+ :entries_custom_fields_attributes,
15
+ :display_settings
15
16
 
16
17
  # @param [ Site ] the current site, or site to scope to
17
18
  def initialize(site, attributes = {})
@@ -20,8 +21,8 @@ module Locomotive
20
21
  end
21
22
 
22
23
  # If the current content type exists, look up the fields and add their IDs
23
- # to the attributes hash. If not, set the entries_custom_fields_attributes
24
- # as-is
24
+ # to the attributes hash. If not, set the entries_custom_fields_attributes
25
+ # as-is
25
26
  def fields=(fields)
26
27
  self.entries_custom_fields_attributes = fields.map do |attrs|
27
28
  if field = existing_content_type.try(:find_entries_custom_field, attrs[:name])
@@ -38,6 +39,27 @@ module Locomotive
38
39
  end.compact.map(&:id)
39
40
  end
40
41
 
42
+ # deprecated
43
+ def raw_item_template=(template)
44
+ set_attribute(:entry_template, template)
45
+ end
46
+
47
+ def order_by=(field)
48
+ field = '_position' if field == 'manually'
49
+ set_attribute(:order_by, field)
50
+ end
51
+
52
+ def display_settings=(settings)
53
+ (settings || {}).each do |k, v|
54
+ if k == 'position'
55
+ settings[k] = v.to_i
56
+ else
57
+ settings[k] = v == 'true'
58
+ end
59
+ end
60
+ set_attribute(:display_settings, settings)
61
+ end
62
+
41
63
  private
42
64
 
43
65
  def existing_content_type
@@ -0,0 +1,91 @@
1
+ # Issue here: https://github.com/ruby-grape/grape/issues/1028
2
+ # Solution: https://github.com/typhoeus/typhoeus/blob/master/lib/rack/typhoeus/middleware/params_decoder/helper.rb
3
+ #
4
+ # MIT License Paul Dix, David Balatero, Hans Hasselberg
5
+ #
6
+ module Locomotive
7
+ module API
8
+ module Middlewares
9
+
10
+ class ParamsDecoderMiddleware
11
+
12
+ def initialize(app)
13
+ @app = app
14
+ end
15
+
16
+ def call(env)
17
+ request = Rack::Request.new(env)
18
+ decode(request.params).each_pair { |k, v| update_params request, k, v }
19
+ @app.call(env)
20
+ end
21
+
22
+ private
23
+
24
+ # Persist params change in environment. Extracted from:
25
+ # https://github.com/rack/rack/blob/master/lib/rack/request.rb#L243
26
+ def update_params(req, k, v)
27
+ found = false
28
+ if req.GET.has_key?(k)
29
+ found = true
30
+ req.GET[k] = v
31
+ end
32
+ if req.POST.has_key?(k)
33
+ found = true
34
+ req.POST[k] = v
35
+ end
36
+ unless found
37
+ req.GET[k] = v
38
+ end
39
+ end
40
+
41
+ def decode!(hash)
42
+ return hash unless hash.is_a?(Hash)
43
+ hash.each_pair do |key,value|
44
+ if value.is_a?(Hash)
45
+ decode!(value)
46
+ hash[key] = convert(value)
47
+ end
48
+ end
49
+ hash
50
+ end
51
+
52
+ def decode(hash)
53
+ decode!(hash.dup)
54
+ end
55
+
56
+ # Checks if Hash is an Array encoded as a Hash.
57
+ # Specifically will check for the Hash to have this
58
+ # form: {'0' => v0, '1' => v1, .., 'n' => vN }
59
+ #
60
+ # @param hash [Hash]
61
+ #
62
+ # @return [Boolean] True if its a encoded Array, else false.
63
+ def encoded?(hash)
64
+ return false if hash.empty?
65
+ if hash.keys.size > 1
66
+ keys = hash.keys.map{|i| i.to_i if i.respond_to?(:to_i)}.sort
67
+ keys == hash.keys.size.times.to_a
68
+ else
69
+ hash.keys.first =~ /0/
70
+ end
71
+ end
72
+
73
+ # If the Hash is an array encoded by typhoeus an array is returned
74
+ # else the self is returned
75
+ #
76
+ # @param hash [Hash] The Hash to convert into an Array.
77
+ #
78
+ # @return [Arraya/Hash]
79
+ def convert(hash)
80
+ if encoded?(hash)
81
+ hash.sort{ |a, b| a[0].to_i <=> b[0].to_i }.map{ |key, value| value }
82
+ else
83
+ hash
84
+ end
85
+ end
86
+
87
+ end
88
+
89
+ end
90
+ end
91
+ end
@@ -58,7 +58,9 @@ module Locomotive
58
58
  optional :order_direction
59
59
  optional :group_by
60
60
  optional :label_field_name
61
- optional :raw_item_template
61
+ optional :entry_template
62
+ optional :raw_item_template # deprecated
63
+ optional :display_settings
62
64
  optional :public_submission_account_emails
63
65
  optional :public_submission_accounts
64
66
  end
@@ -94,12 +96,15 @@ module Locomotive
94
96
  optional :inverse_of
95
97
  optional :order_by
96
98
  optional :ui_enabled
99
+ optional :_destroy
97
100
  end
98
101
  optional :order_by
99
102
  optional :order_direction
100
103
  optional :group_by
101
104
  optional :label_field_name
102
- optional :raw_item_template
105
+ optional :entry_template
106
+ optional :raw_item_template # deprecated
107
+ optional :display_settings
103
108
  optional :public_submission_account_emails
104
109
  optional :public_submission_accounts
105
110
  end
@@ -11,6 +11,14 @@ module Locomotive
11
11
  authenticate_locomotive_account!
12
12
  end
13
13
 
14
+ helpers do
15
+
16
+ def service
17
+ @service ||= Locomotive::SiteService.new(current_account)
18
+ end
19
+
20
+ end
21
+
14
22
  desc 'Show current_site'
15
23
  get do
16
24
  authorize current_site, :show?
@@ -31,14 +39,14 @@ module Locomotive
31
39
  optional :locales, type: Array
32
40
  optional :domains, type: Array
33
41
  optional :timezone
42
+ optional :picture
34
43
  end
35
44
  end
36
45
  put do
37
46
  authorize current_site, :update?
38
47
 
39
48
  current_site_form = Forms::SiteForm.new(permitted_params[:site])
40
- current_site.assign_attributes(current_site_form.serializable_hash)
41
- current_site.save
49
+ service.update(current_site, current_site_form.serializable_hash)
42
50
 
43
51
  present current_site, with: entity_klass
44
52
  end
@@ -1 +1,11 @@
1
- #= require jquery
1
+ #= require jquery
2
+ #= require_self
3
+ #= require underscore
4
+ #= require locomotive/bootstrap-notify
5
+ #= require ./utils/notify
6
+
7
+ window.Locomotive = {}
8
+
9
+ $ ->
10
+ _.each window.flash_messages, (couple) ->
11
+ Locomotive.notify couple[1], couple[0]
@@ -42,79 +42,3 @@ class Locomotive.Views.ApplicationView extends Backbone.View
42
42
  height = max_height - @header_view.height()
43
43
 
44
44
  @$('> .wrapper').height(height)
45
-
46
- # center_ui_dialog: ->
47
- # $(window).resize ->
48
- # $('.ui-dialog-content:visible').dialog('option', 'position', 'center')
49
-
50
- # add_submenu_behaviours: ->
51
- # $('#submenu ul li.hoverable').each ->
52
- # timer = null
53
- # link = $(@)
54
- # (popup = link.find('.popup')).removeClass('popup').addClass('submenu-popup'
55
- # ).bind('show', ->
56
- # link.find('a').addClass('hover') & popup.css(
57
- # top: link.offset().top + link.height() - 2
58
- # left: link.offset().left - parseInt(popup.css('padding-left'))
59
- # ).show()
60
- # ).bind('hide', ->
61
- # link.find('a').removeClass('hover') & $(@).hide()
62
- # ).bind('mouseleave', -> popup.trigger('hide')
63
- # ).bind 'mouseenter', -> clearTimeout(timer)
64
-
65
- # $(document.body).append(popup)
66
-
67
- # link.hover(
68
- # -> popup.trigger('show')
69
- # -> timer = window.setTimeout (-> popup.trigger('hide')), 30
70
- # )
71
-
72
- # css = $('#submenu > ul').attr('class')
73
- # $("#submenu > ul > li.#{css}").addClass('on') if css != ''
74
-
75
- # enable_sites_picker: ->
76
- # link = @$('#sites-picker-link')
77
- # picker = @$('#sites-picker')
78
-
79
- # return if picker.size() == 0
80
-
81
- # left = link.position().left + link.parent().position().left - (picker.width() - link.width())
82
- # picker.css('left', left)
83
-
84
- # link.bind 'click', (event) ->
85
- # event.stopPropagation() & event.preventDefault()
86
- # picker.toggle()
87
-
88
- # enable_content_locale_picker: ->
89
- # link = @$('#content-locale-picker-link')
90
- # picker = @$('#content-locale-picker')
91
-
92
- # return if picker.size() == 0
93
-
94
- # link.bind 'click', (event) ->
95
- # event.stopPropagation() & event.preventDefault()
96
- # picker.toggle()
97
-
98
- # picker.find('li').bind 'click', (event) ->
99
- # locale = $(@).data('locale')
100
- # window.addParameterToURL 'content_locale', locale
101
-
102
- # set_locale_for_tinymce_widgets: ->
103
- # # tinyMCE likes only lowercase locales
104
- # tinymce_locale = window.locale.toLowerCase()
105
-
106
- # # pt-BR does not exist, pt does though
107
- # tinymce_locale = 'pt' if tinymce_locale == 'pt-br'
108
-
109
- # # set the default tinyMCE language
110
- # window.Locomotive.tinyMCE.defaultSettings.language = tinymce_locale
111
- # window.Locomotive.tinyMCE.minimalSettings.language = tinymce_locale
112
- # window.Locomotive.tinyMCE.popupSettings.language = tinymce_locale
113
-
114
- unique_dialog_zindex: ->
115
- # returns the number of jQuery UI modals created in order to set a valid zIndex for each of them.
116
- # Each modal window should have a different zIndex, otherwise there will be conflicts between them.
117
- window.Locomotive.jQueryModals ||= 0
118
-
119
- # 998 + window.Locomotive.jQueryModals++
120
- 300000 + window.Locomotive.jQueryModals++