alchemy_cms 3.2.0.beta → 3.2.0.rc1

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 (146) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +661 -863
  3. data/README.md +5 -63
  4. data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +11 -10
  5. data/app/assets/javascripts/alchemy/alchemy.initializer.js.coffee +6 -0
  6. data/app/assets/stylesheets/alchemy/_extends.scss +0 -6
  7. data/app/assets/stylesheets/alchemy/_mixins.scss +6 -0
  8. data/app/assets/stylesheets/alchemy/buttons.scss +1 -1
  9. data/app/assets/stylesheets/alchemy/elements.scss +1 -1
  10. data/app/assets/stylesheets/alchemy/menubar.scss +1 -1
  11. data/app/assets/stylesheets/alchemy/selects.scss +5 -1
  12. data/app/assets/stylesheets/alchemy/upload.scss +1 -1
  13. data/app/controllers/alchemy/admin/pages_controller.rb +1 -1
  14. data/app/controllers/alchemy/base_controller.rb +4 -57
  15. data/app/controllers/alchemy/messages_controller.rb +2 -2
  16. data/app/controllers/alchemy/pages_controller.rb +22 -31
  17. data/app/controllers/alchemy/pictures_controller.rb +2 -2
  18. data/app/helpers/alchemy/admin/base_helper.rb +7 -0
  19. data/app/helpers/alchemy/admin/elements_helper.rb +31 -15
  20. data/app/helpers/alchemy/admin/pages_helper.rb +17 -0
  21. data/app/helpers/alchemy/base_helper.rb +0 -28
  22. data/app/helpers/alchemy/pages_helper.rb +18 -12
  23. data/app/helpers/alchemy/url_helper.rb +2 -2
  24. data/app/models/alchemy/cell.rb +1 -1
  25. data/app/models/alchemy/content/factory.rb +12 -6
  26. data/app/models/alchemy/element.rb +3 -3
  27. data/app/models/alchemy/element/definitions.rb +1 -1
  28. data/app/models/alchemy/element_to_page.rb +7 -0
  29. data/app/models/alchemy/language.rb +1 -1
  30. data/app/models/alchemy/page.rb +8 -1
  31. data/app/models/alchemy/page/page_cells.rb +2 -2
  32. data/app/models/alchemy/page/page_elements.rb +23 -5
  33. data/app/models/alchemy/page/page_natures.rb +3 -3
  34. data/app/models/alchemy/page/page_scopes.rb +1 -1
  35. data/app/models/alchemy/picture.rb +1 -1
  36. data/app/views/alchemy/admin/pages/_create_language_form.html.erb +1 -1
  37. data/app/views/alchemy/admin/pages/_form.html.erb +1 -1
  38. data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +1 -1
  39. data/app/views/alchemy/breadcrumb/_page.html.erb +3 -2
  40. data/app/views/alchemy/breadcrumb/_separator.html.erb +1 -0
  41. data/app/views/alchemy/breadcrumb/_wrapper.html.erb +13 -0
  42. data/app/views/alchemy/language_links/_language.html.erb +1 -1
  43. data/app/views/alchemy/navigation/_link.html.erb +1 -1
  44. data/app/views/alchemy/pages/show.rss.builder +5 -7
  45. data/app/views/layouts/alchemy/admin.html.erb +5 -0
  46. data/config/routes.rb +13 -10
  47. data/lib/alchemy/configuration_methods.rb +29 -0
  48. data/lib/alchemy/controller_actions.rb +12 -4
  49. data/lib/alchemy/engine.rb +3 -0
  50. data/lib/alchemy/errors.rb +1 -1
  51. data/lib/alchemy/essence.rb +14 -12
  52. data/lib/alchemy/on_page_layout.rb +58 -0
  53. data/lib/alchemy/page_layout.rb +1 -1
  54. data/lib/alchemy/permissions.rb +21 -16
  55. data/lib/alchemy/routing_constraints.rb +49 -0
  56. data/lib/alchemy/seeder.rb +4 -2
  57. data/lib/alchemy/ssl_protection.rb +30 -0
  58. data/lib/alchemy/test_support/essence_shared_examples.rb +118 -25
  59. data/lib/alchemy/test_support/factories.rb +5 -8
  60. data/lib/alchemy/test_support/integration_helpers.rb +16 -10
  61. data/lib/alchemy/upgrader/three_point_two.rb +34 -4
  62. data/lib/alchemy/version.rb +1 -1
  63. data/lib/rails/generators/alchemy/{scaffold → install}/files/_article_editor.html.erb +0 -0
  64. data/lib/rails/generators/alchemy/{scaffold → install}/files/_article_view.html.erb +0 -0
  65. data/lib/rails/generators/alchemy/{scaffold → install}/files/_standard.html.erb +0 -0
  66. data/lib/rails/generators/alchemy/{scaffold → install}/files/alchemy.de.yml +0 -0
  67. data/lib/rails/generators/alchemy/{scaffold → install}/files/alchemy.elements.css.scss +0 -0
  68. data/lib/rails/generators/alchemy/{scaffold → install}/files/alchemy.en.yml +0 -0
  69. data/lib/rails/generators/alchemy/{scaffold → install}/files/alchemy.es.yml +0 -0
  70. data/lib/rails/generators/alchemy/{scaffold → install}/files/application.html.erb +0 -0
  71. data/lib/rails/generators/alchemy/install/install_generator.rb +69 -0
  72. data/lib/rails/generators/alchemy/{scaffold/files/elements.yml → install/templates/elements.yml.tt} +2 -0
  73. data/lib/rails/generators/alchemy/{scaffold → install}/templates/page_layouts.yml.tt +2 -0
  74. data/lib/rails/generators/alchemy/views/views_generator.rb +41 -0
  75. data/lib/rails/templates/alchemy.rb +2 -2
  76. data/lib/tasks/alchemy/db.rake +0 -5
  77. data/lib/tasks/alchemy/install.rake +10 -5
  78. data/lib/tasks/alchemy/tidy.rake +2 -0
  79. data/spec/controllers/admin/attachments_controller_spec.rb +1 -1
  80. data/spec/controllers/admin/clipboard_controller_spec.rb +1 -1
  81. data/spec/controllers/admin/contents_controller_spec.rb +1 -1
  82. data/spec/controllers/admin/dashboard_controller_spec.rb +2 -2
  83. data/spec/controllers/admin/elements_controller_spec.rb +1 -1
  84. data/spec/controllers/admin/essence_files_controller_spec.rb +1 -1
  85. data/spec/controllers/admin/essence_pictures_controller_spec.rb +1 -1
  86. data/spec/controllers/admin/languages_controller_spec.rb +1 -1
  87. data/spec/controllers/admin/layoutpages_controller_spec.rb +1 -1
  88. data/spec/controllers/admin/pages_controller_spec.rb +4 -4
  89. data/spec/controllers/admin/pictures_controller_spec.rb +1 -1
  90. data/spec/controllers/admin/resources_controller_spec.rb +1 -1
  91. data/spec/controllers/admin/trash_controller_spec.rb +1 -1
  92. data/spec/controllers/alchemy/admin/tags_controller_spec.rb +1 -1
  93. data/spec/controllers/attachments_controller_spec.rb +1 -1
  94. data/spec/controllers/base_controller_spec.rb +22 -0
  95. data/spec/controllers/elements_controller_spec.rb +1 -1
  96. data/spec/controllers/pages_controller_spec.rb +15 -16
  97. data/spec/controllers/pictures_controller_spec.rb +212 -162
  98. data/spec/dummy/app/controllers/login_controller.rb +5 -0
  99. data/spec/dummy/app/models/dummy_model.rb +3 -0
  100. data/spec/dummy/config/alchemy/cells.yml +4 -1
  101. data/spec/dummy/config/alchemy/elements.yml +8 -0
  102. data/spec/dummy/config/alchemy/page_layouts.yml +5 -1
  103. data/spec/dummy/config/routes.rb +1 -2
  104. data/spec/dummy/db/migrate/20150412103152_create_dummy_model.rb +7 -0
  105. data/spec/dummy/db/schema.rb +30 -26
  106. data/spec/features/admin/dashboard_spec.rb +11 -9
  107. data/spec/features/admin/language_tree_feature_spec.rb +5 -6
  108. data/spec/features/admin/legacy_page_url_management_spec.rb +1 -1
  109. data/spec/features/admin/link_overlay_spec.rb +1 -1
  110. data/spec/features/admin/locale_select_feature_spec.rb +1 -1
  111. data/spec/features/admin/modules_integration_spec.rb +1 -1
  112. data/spec/features/admin/navigation_feature_spec.rb +1 -1
  113. data/spec/features/admin/page_creation_feature_spec.rb +1 -1
  114. data/spec/features/admin/page_editing_feature_spec.rb +3 -3
  115. data/spec/features/admin/picture_library_integration_spec.rb +1 -1
  116. data/spec/features/admin/resources_integration_spec.rb +1 -1
  117. data/spec/features/admin/site_select_feature_spec.rb +32 -0
  118. data/spec/features/admin/tinymce_feature_spec.rb +1 -3
  119. data/spec/features/page_feature_spec.rb +36 -27
  120. data/spec/features/security_spec.rb +1 -1
  121. data/spec/features/translation_integration_spec.rb +3 -3
  122. data/spec/helpers/admin/elements_helper_spec.rb +103 -26
  123. data/spec/helpers/admin/pages_helper_spec.rb +32 -1
  124. data/spec/helpers/base_helper_spec.rb +0 -45
  125. data/spec/helpers/pages_helper_spec.rb +18 -17
  126. data/spec/helpers/url_helper_spec.rb +8 -5
  127. data/spec/libraries/controller_actions_spec.rb +2 -2
  128. data/spec/libraries/on_page_layout_spec.rb +112 -0
  129. data/spec/libraries/page_layout_spec.rb +5 -1
  130. data/spec/libraries/permissions_spec.rb +13 -15
  131. data/spec/models/cell_spec.rb +4 -0
  132. data/spec/models/content_spec.rb +6 -0
  133. data/spec/models/dummy_model_spec.rb +11 -0
  134. data/spec/models/element_spec.rb +6 -1
  135. data/spec/models/element_to_page_spec.rb +14 -0
  136. data/spec/models/page_spec.rb +111 -19
  137. data/spec/routing/routing_spec.rb +120 -101
  138. data/spec/spec_helper.rb +3 -3
  139. metadata +36 -21
  140. data/app/views/alchemy/breadcrumb/_spacer.html.erb +0 -1
  141. data/lib/alchemy/capistrano.rb +0 -230
  142. data/lib/alchemy/test_support/auth_helpers.rb +0 -35
  143. data/lib/rails/generators/alchemy/deploy_script/deploy_script_generator.rb +0 -90
  144. data/lib/rails/generators/alchemy/deploy_script/templates/deploy.rb.tt +0 -113
  145. data/lib/rails/generators/alchemy/scaffold/scaffold_generator.rb +0 -63
  146. data/spec/dummy/app/controllers/errors_controller.rb +0 -5
data/spec/spec_helper.rb CHANGED
@@ -19,7 +19,6 @@ require 'database_cleaner'
19
19
  require 'rspec-activemodel-mocks'
20
20
 
21
21
  require 'alchemy/seeder'
22
- require 'alchemy/test_support/auth_helpers'
23
22
  require 'alchemy/test_support/controller_requests'
24
23
  require 'alchemy/test_support/essence_shared_examples'
25
24
  require 'alchemy/test_support/integration_helpers'
@@ -52,9 +51,10 @@ RSpec.configure do |config|
52
51
  config.run_all_when_everything_filtered = true
53
52
  config.filter_run :focus
54
53
  config.include Alchemy::Engine.routes.url_helpers
55
- config.include Alchemy::TestSupport::AuthHelpers
56
54
  config.include Alchemy::TestSupport::ControllerRequests, type: :controller
57
- config.include Alchemy::TestSupport::IntegrationHelpers, type: :feature
55
+ [:controller, :feature].each do |type|
56
+ config.include Alchemy::TestSupport::IntegrationHelpers, type: type
57
+ end
58
58
  config.include FactoryGirl::Syntax::Methods
59
59
 
60
60
  config.use_transactional_fixtures = false
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alchemy_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0.beta
4
+ version: 3.2.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas von Deyen
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2015-04-02 00:00:00.000000000 Z
15
+ date: 2015-06-15 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: actionpack-page_caching
@@ -623,6 +623,7 @@ files:
623
623
  - app/models/alchemy/element.rb
624
624
  - app/models/alchemy/element/definitions.rb
625
625
  - app/models/alchemy/element/presenters.rb
626
+ - app/models/alchemy/element_to_page.rb
626
627
  - app/models/alchemy/essence_boolean.rb
627
628
  - app/models/alchemy/essence_date.rb
628
629
  - app/models/alchemy/essence_file.rb
@@ -814,7 +815,8 @@ files:
814
815
  - app/views/alchemy/base/redirect.js.erb
815
816
  - app/views/alchemy/base/update.js.erb
816
817
  - app/views/alchemy/breadcrumb/_page.html.erb
817
- - app/views/alchemy/breadcrumb/_spacer.html.erb
818
+ - app/views/alchemy/breadcrumb/_separator.html.erb
819
+ - app/views/alchemy/breadcrumb/_wrapper.html.erb
818
820
  - app/views/alchemy/elements/_editor_not_found.html.erb
819
821
  - app/views/alchemy/elements/_view_not_found.html.erb
820
822
  - app/views/alchemy/elements/show.html.erb
@@ -885,8 +887,8 @@ files:
885
887
  - db/migrate/20130918201742_add_published_at_to_alchemy_pages.rb
886
888
  - lib/alchemy/auth_accessors.rb
887
889
  - lib/alchemy/cache_digests/template_tracker.rb
888
- - lib/alchemy/capistrano.rb
889
890
  - lib/alchemy/config.rb
891
+ - lib/alchemy/configuration_methods.rb
890
892
  - lib/alchemy/controller_actions.rb
891
893
  - lib/alchemy/engine.rb
892
894
  - lib/alchemy/errors.rb
@@ -902,15 +904,17 @@ files:
902
904
  - lib/alchemy/modules.rb
903
905
  - lib/alchemy/mount_point.rb
904
906
  - lib/alchemy/name_conversions.rb
907
+ - lib/alchemy/on_page_layout.rb
905
908
  - lib/alchemy/page_layout.rb
906
909
  - lib/alchemy/permissions.rb
907
910
  - lib/alchemy/picture_attributes.rb
908
911
  - lib/alchemy/resource.rb
909
912
  - lib/alchemy/resources_helper.rb
913
+ - lib/alchemy/routing_constraints.rb
910
914
  - lib/alchemy/seeder.rb
911
915
  - lib/alchemy/shell.rb
916
+ - lib/alchemy/ssl_protection.rb
912
917
  - lib/alchemy/tasks/helpers.rb
913
- - lib/alchemy/test_support/auth_helpers.rb
914
918
  - lib/alchemy/test_support/controller_requests.rb
915
919
  - lib/alchemy/test_support/essence_shared_examples.rb
916
920
  - lib/alchemy/test_support/factories.rb
@@ -925,8 +929,6 @@ files:
925
929
  - lib/alchemy/version.rb
926
930
  - lib/alchemy_cms.rb
927
931
  - lib/rails/generators/alchemy/base.rb
928
- - lib/rails/generators/alchemy/deploy_script/deploy_script_generator.rb
929
- - lib/rails/generators/alchemy/deploy_script/templates/deploy.rb.tt
930
932
  - lib/rails/generators/alchemy/elements/elements_generator.rb
931
933
  - lib/rails/generators/alchemy/elements/templates/editor.html.erb
932
934
  - lib/rails/generators/alchemy/elements/templates/editor.html.haml
@@ -937,6 +939,17 @@ files:
937
939
  - lib/rails/generators/alchemy/essence/essence_generator.rb
938
940
  - lib/rails/generators/alchemy/essence/templates/editor.html.erb
939
941
  - lib/rails/generators/alchemy/essence/templates/view.html.erb
942
+ - lib/rails/generators/alchemy/install/files/_article_editor.html.erb
943
+ - lib/rails/generators/alchemy/install/files/_article_view.html.erb
944
+ - lib/rails/generators/alchemy/install/files/_standard.html.erb
945
+ - lib/rails/generators/alchemy/install/files/alchemy.de.yml
946
+ - lib/rails/generators/alchemy/install/files/alchemy.elements.css.scss
947
+ - lib/rails/generators/alchemy/install/files/alchemy.en.yml
948
+ - lib/rails/generators/alchemy/install/files/alchemy.es.yml
949
+ - lib/rails/generators/alchemy/install/files/application.html.erb
950
+ - lib/rails/generators/alchemy/install/install_generator.rb
951
+ - lib/rails/generators/alchemy/install/templates/elements.yml.tt
952
+ - lib/rails/generators/alchemy/install/templates/page_layouts.yml.tt
940
953
  - lib/rails/generators/alchemy/module/module_generator.rb
941
954
  - lib/rails/generators/alchemy/module/templates/ability.rb.tt
942
955
  - lib/rails/generators/alchemy/module/templates/controller.rb.tt
@@ -945,21 +958,11 @@ files:
945
958
  - lib/rails/generators/alchemy/page_layouts/templates/layout.html.erb
946
959
  - lib/rails/generators/alchemy/page_layouts/templates/layout.html.haml
947
960
  - lib/rails/generators/alchemy/page_layouts/templates/layout.html.slim
948
- - lib/rails/generators/alchemy/scaffold/files/_article_editor.html.erb
949
- - lib/rails/generators/alchemy/scaffold/files/_article_view.html.erb
950
- - lib/rails/generators/alchemy/scaffold/files/_standard.html.erb
951
- - lib/rails/generators/alchemy/scaffold/files/alchemy.de.yml
952
- - lib/rails/generators/alchemy/scaffold/files/alchemy.elements.css.scss
953
- - lib/rails/generators/alchemy/scaffold/files/alchemy.en.yml
954
- - lib/rails/generators/alchemy/scaffold/files/alchemy.es.yml
955
- - lib/rails/generators/alchemy/scaffold/files/application.html.erb
956
- - lib/rails/generators/alchemy/scaffold/files/elements.yml
957
- - lib/rails/generators/alchemy/scaffold/scaffold_generator.rb
958
- - lib/rails/generators/alchemy/scaffold/templates/page_layouts.yml.tt
959
961
  - lib/rails/generators/alchemy/site_layouts/site_layouts_generator.rb
960
962
  - lib/rails/generators/alchemy/site_layouts/templates/layout.html.erb
961
963
  - lib/rails/generators/alchemy/site_layouts/templates/layout.html.haml
962
964
  - lib/rails/generators/alchemy/site_layouts/templates/layout.html.slim
965
+ - lib/rails/generators/alchemy/views/views_generator.rb
963
966
  - lib/rails/templates/alchemy.rb
964
967
  - lib/tasks/alchemy/convert.rake
965
968
  - lib/tasks/alchemy/db.rake
@@ -995,10 +998,11 @@ files:
995
998
  - spec/dummy/app/assets/stylesheets/application.css
996
999
  - spec/dummy/app/controllers/admin/events_controller.rb
997
1000
  - spec/dummy/app/controllers/application_controller.rb
998
- - spec/dummy/app/controllers/errors_controller.rb
1001
+ - spec/dummy/app/controllers/login_controller.rb
999
1002
  - spec/dummy/app/helpers/application_helper.rb
1000
1003
  - spec/dummy/app/mailers/.gitkeep
1001
1004
  - spec/dummy/app/models/ability.rb
1005
+ - spec/dummy/app/models/dummy_model.rb
1002
1006
  - spec/dummy/app/models/dummy_user.rb
1003
1007
  - spec/dummy/app/models/event.rb
1004
1008
  - spec/dummy/app/models/location.rb
@@ -1047,6 +1051,7 @@ files:
1047
1051
  - spec/dummy/db/migrate/20150122213512_add_missing_unique_indices.acts_as_taggable_on_engine.rb
1048
1052
  - spec/dummy/db/migrate/20150122213513_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb
1049
1053
  - spec/dummy/db/migrate/20150122213514_add_missing_taggable_index.acts_as_taggable_on_engine.rb
1054
+ - spec/dummy/db/migrate/20150412103152_create_dummy_model.rb
1050
1055
  - spec/dummy/db/schema.rb
1051
1056
  - spec/dummy/db/seeds.rb
1052
1057
  - spec/dummy/lib/assets/.gitkeep
@@ -1065,6 +1070,7 @@ files:
1065
1070
  - spec/features/admin/page_editing_feature_spec.rb
1066
1071
  - spec/features/admin/picture_library_integration_spec.rb
1067
1072
  - spec/features/admin/resources_integration_spec.rb
1073
+ - spec/features/admin/site_select_feature_spec.rb
1068
1074
  - spec/features/admin/tinymce_feature_spec.rb
1069
1075
  - spec/features/navigation_spec.rb
1070
1076
  - spec/features/page_feature_spec.rb
@@ -1107,6 +1113,7 @@ files:
1107
1113
  - spec/libraries/kaminari/scoped_pagination_url_helper_spec.rb
1108
1114
  - spec/libraries/modules_spec.rb
1109
1115
  - spec/libraries/mount_point_spec.rb
1116
+ - spec/libraries/on_page_layout_spec.rb
1110
1117
  - spec/libraries/page_layout_spec.rb
1111
1118
  - spec/libraries/permissions_spec.rb
1112
1119
  - spec/libraries/resource_spec.rb
@@ -1119,7 +1126,9 @@ files:
1119
1126
  - spec/models/attachment_spec.rb
1120
1127
  - spec/models/cell_spec.rb
1121
1128
  - spec/models/content_spec.rb
1129
+ - spec/models/dummy_model_spec.rb
1122
1130
  - spec/models/element_spec.rb
1131
+ - spec/models/element_to_page_spec.rb
1123
1132
  - spec/models/essence_boolean_spec.rb
1124
1133
  - spec/models/essence_date_spec.rb
1125
1134
  - spec/models/essence_file_spec.rb
@@ -1235,7 +1244,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1235
1244
  requirements:
1236
1245
  - ImageMagick (libmagick), v6.6 or greater.
1237
1246
  rubyforge_project:
1238
- rubygems_version: 2.4.3
1247
+ rubygems_version: 2.4.6
1239
1248
  signing_key:
1240
1249
  specification_version: 4
1241
1250
  summary: A powerful, userfriendly and flexible CMS for Rails 4
@@ -1269,10 +1278,11 @@ test_files:
1269
1278
  - spec/dummy/app/assets/stylesheets/application.css
1270
1279
  - spec/dummy/app/controllers/admin/events_controller.rb
1271
1280
  - spec/dummy/app/controllers/application_controller.rb
1272
- - spec/dummy/app/controllers/errors_controller.rb
1281
+ - spec/dummy/app/controllers/login_controller.rb
1273
1282
  - spec/dummy/app/helpers/application_helper.rb
1274
1283
  - spec/dummy/app/mailers/.gitkeep
1275
1284
  - spec/dummy/app/models/ability.rb
1285
+ - spec/dummy/app/models/dummy_model.rb
1276
1286
  - spec/dummy/app/models/dummy_user.rb
1277
1287
  - spec/dummy/app/models/event.rb
1278
1288
  - spec/dummy/app/models/location.rb
@@ -1321,6 +1331,7 @@ test_files:
1321
1331
  - spec/dummy/db/migrate/20150122213512_add_missing_unique_indices.acts_as_taggable_on_engine.rb
1322
1332
  - spec/dummy/db/migrate/20150122213513_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb
1323
1333
  - spec/dummy/db/migrate/20150122213514_add_missing_taggable_index.acts_as_taggable_on_engine.rb
1334
+ - spec/dummy/db/migrate/20150412103152_create_dummy_model.rb
1324
1335
  - spec/dummy/db/schema.rb
1325
1336
  - spec/dummy/db/seeds.rb
1326
1337
  - spec/dummy/lib/assets/.gitkeep
@@ -1339,6 +1350,7 @@ test_files:
1339
1350
  - spec/features/admin/page_editing_feature_spec.rb
1340
1351
  - spec/features/admin/picture_library_integration_spec.rb
1341
1352
  - spec/features/admin/resources_integration_spec.rb
1353
+ - spec/features/admin/site_select_feature_spec.rb
1342
1354
  - spec/features/admin/tinymce_feature_spec.rb
1343
1355
  - spec/features/navigation_spec.rb
1344
1356
  - spec/features/page_feature_spec.rb
@@ -1381,6 +1393,7 @@ test_files:
1381
1393
  - spec/libraries/kaminari/scoped_pagination_url_helper_spec.rb
1382
1394
  - spec/libraries/modules_spec.rb
1383
1395
  - spec/libraries/mount_point_spec.rb
1396
+ - spec/libraries/on_page_layout_spec.rb
1384
1397
  - spec/libraries/page_layout_spec.rb
1385
1398
  - spec/libraries/permissions_spec.rb
1386
1399
  - spec/libraries/resource_spec.rb
@@ -1393,7 +1406,9 @@ test_files:
1393
1406
  - spec/models/attachment_spec.rb
1394
1407
  - spec/models/cell_spec.rb
1395
1408
  - spec/models/content_spec.rb
1409
+ - spec/models/dummy_model_spec.rb
1396
1410
  - spec/models/element_spec.rb
1411
+ - spec/models/element_to_page_spec.rb
1397
1412
  - spec/models/essence_boolean_spec.rb
1398
1413
  - spec/models/essence_date_spec.rb
1399
1414
  - spec/models/essence_file_spec.rb
@@ -1 +0,0 @@
1
- <%= options[:separator].html_safe %>
@@ -1,230 +0,0 @@
1
- # This recipe contains Capistrano recipes for handling the uploads
2
- # and picture cache files while deploying your application.
3
-
4
- require 'fileutils'
5
- require 'alchemy/tasks/helpers'
6
- require 'alchemy/mount_point'
7
-
8
- include Alchemy::Tasks::Helpers
9
-
10
- ::Capistrano::Configuration.instance(:must_exist).load do
11
-
12
- after "deploy:setup", "alchemy:shared_folders:create"
13
- after "deploy:finalize_update", "alchemy:shared_folders:symlink"
14
- before "deploy:start", "alchemy:db:seed"
15
-
16
- namespace :alchemy do
17
-
18
- namespace :shared_folders do
19
-
20
- # This task creates the shared folders for uploads, assets and picture cache while setting up your server.
21
- desc "Creates the uploads and picture cache directory in the shared folder. Called after deploy:setup"
22
- task :create, :roles => :app do
23
- run "mkdir -p #{shared_path}/uploads/pictures"
24
- run "mkdir -p #{shared_path}/uploads/attachments"
25
- run "mkdir -p #{shared_picture_cache_path}"
26
- run "mkdir -p #{shared_path}/cache"
27
- end
28
-
29
- # This task symlinks the uploads, picture and general cache folder to the new release.
30
- desc "Sets the symlinks for uploads and picture cache folder. Called after deploy:finalize_update"
31
- task :symlink, :roles => :app do
32
- run "rm -rf #{release_path}/uploads"
33
- run "ln -nfs #{shared_path}/uploads #{release_path}/"
34
- run "mkdir -p #{public_path_with_mountpoint}"
35
- run "ln -nfs #{shared_picture_cache_path} #{public_path_with_mountpoint('pictures')}"
36
- run "ln -nfs #{shared_path}/cache #{release_path}/tmp/cache"
37
- end
38
-
39
- def shared_picture_cache_path
40
- @shared_picture_cache_path ||= begin
41
- File.join(shared_path, 'cache', Alchemy::MountPoint.get, 'pictures')
42
- end
43
- end
44
-
45
- def public_path_with_mountpoint(suffix = '')
46
- @release_picture_cache_path ||= begin
47
- File.join(release_path, 'public', Alchemy::MountPoint.get, suffix)
48
- end
49
- end
50
-
51
- end
52
-
53
- desc "Upgrades production database to current Alchemy CMS version"
54
- task :upgrade do
55
- run "cd #{current_path} && #{rake} RAILS_ENV=#{fetch(:rails_env, 'production')} alchemy:upgrade"
56
- end
57
-
58
- namespace :database_yml do
59
-
60
- desc "Creates the database.yml file"
61
- task :create do
62
- environment = Capistrano::CLI.ui.ask("\nPlease enter the environment (Default: #{fetch(:rails_env, 'production')})")
63
- environment = fetch(:rails_env, 'production') if environment.empty?
64
- db_adapter = Capistrano::CLI.ui.ask("Please enter database adapter (Options: mysql2, or postgresql. Default mysql2): ")
65
- db_adapter = db_adapter.empty? ? 'mysql2' : db_adapter.gsub(/\Amysql\z/, 'mysql2')
66
- db_name = Capistrano::CLI.ui.ask("Please enter database name: ")
67
- db_username = Capistrano::CLI.ui.ask("Please enter database username: ")
68
- db_password = Capistrano::CLI.password_prompt("Please enter database password: ")
69
- default_db_host = db_adapter == 'mysql2' ? 'localhost' : '127.0.0.1'
70
- db_host = Capistrano::CLI.ui.ask("Please enter database host (Default: #{default_db_host}): ")
71
- db_host = db_host.empty? ? default_db_host : db_host
72
- db_config = ERB.new <<-EOF
73
- #{environment}:
74
- adapter: #{ db_adapter }
75
- encoding: utf8
76
- reconnect: false
77
- pool: 5
78
- database: #{ db_name }
79
- username: #{ db_username }
80
- password: #{ db_password }
81
- host: #{ db_host }
82
- EOF
83
- run "mkdir -p #{shared_path}/config"
84
- put db_config.result, "#{shared_path}/config/database.yml"
85
- end
86
-
87
- desc "[internal] Symlinks the database.yml file from shared folder into config folder"
88
- task :symlink, :except => {:no_release => true} do
89
- run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml"
90
- end
91
-
92
- end
93
-
94
- namespace :db do
95
-
96
- desc "Seeds the database with essential data."
97
- task :seed, :roles => :db do
98
- run "cd #{current_path} && #{rake} RAILS_ENV=#{fetch(:rails_env, 'production')} alchemy:db:seed"
99
- end
100
-
101
- desc "Dumps the database into 'db/dumps' on the server."
102
- task :dump, :roles => :db do
103
- timestamp = Time.now.strftime('%Y-%m-%d-%H-%M')
104
- run "cd #{current_path} && mkdir -p db/dumps && #{rake} RAILS_ENV=#{fetch(:rails_env, 'production')} DUMP_FILENAME=db/dumps/#{timestamp}.sql alchemy:db:dump"
105
- end
106
-
107
- end
108
-
109
- namespace :import do
110
-
111
- desc "Imports all data (Pictures, attachments and the database) into your local development machine."
112
- task :all, :roles => [:app, :db] do
113
- pictures
114
- attachments
115
- database
116
- end
117
-
118
- desc "Imports the server database into your local development machine."
119
- task :database, :roles => [:db], :only => {:primary => true} do
120
- require 'spinner'
121
- server = find_servers_for_task(current_task).first
122
- spinner = Spinner.new
123
- print "\n"
124
- spinner.task("Importing the database. Please wait...") do
125
- system db_import_cmd(server)
126
- end
127
- spinner.spin!
128
- end
129
-
130
- desc "Imports attachments into your local machine using rsync."
131
- task :attachments, :roles => [:app] do
132
- get_files :attachments
133
- end
134
-
135
- desc "Imports pictures into your local machine using rsync."
136
- task :pictures, :roles => [:app] do
137
- get_files :pictures
138
- end
139
-
140
- def get_files(type)
141
- FileUtils.mkdir_p "./uploads"
142
- server = find_servers_for_task(current_task).first
143
- if server
144
- system "rsync --progress -rue 'ssh -p #{fetch(:port, 22)}' #{user}@#{server}:#{shared_path}/uploads/#{type} ./uploads/"
145
- else
146
- raise "No server found"
147
- end
148
- end
149
-
150
- def db_import_cmd(server)
151
- dump_cmd = "cd #{current_path} && #{rake} RAILS_ENV=#{fetch(:rails_env, 'production')} alchemy:db:dump"
152
- sql_stream = "ssh -p #{fetch(:port, 22)} #{user}@#{server} '#{dump_cmd}'"
153
- "#{sql_stream} | #{database_import_command(database_config['adapter'])} 1>/dev/null 2>&1"
154
- end
155
- end
156
-
157
- namespace :export do
158
- desc "Sends all data (Pictures, attachments and the database) to your remote machine."
159
- task :all, :roles => [:app, :db] do
160
- pictures
161
- attachments
162
- database
163
- end
164
-
165
- desc "Imports the server database into your local development machine."
166
- task :database, :roles => [:db], :only => {:primary => true} do
167
- if Capistrano::CLI.ui.agree('WARNING: This task will override your remote database. Do you want me to make a backup? (y/n)')
168
- backup_database
169
- export_database
170
- else
171
- if Capistrano::CLI.ui.agree('Are you sure? (y/n)')
172
- export_database
173
- else
174
- backup_database
175
- export_database
176
- end
177
- end
178
- end
179
-
180
- desc "Sends attachments to your remote machine using rsync."
181
- task :attachments, :roles => [:app] do
182
- send_files :attachments
183
- end
184
-
185
- desc "Sends pictures to your remote machine using rsync."
186
- task :pictures, :roles => [:app] do
187
- send_files :pictures
188
- end
189
-
190
- # Makes a backup of the remote database and stores it in db/ folder
191
- def backup_database
192
- Capistrano::CLI.ui.say('Backing up database')
193
- timestamp = Time.now.strftime('%Y-%m-%d-%H-%M')
194
- run "cd #{current_path} && #{rake} RAILS_ENV=#{fetch(:rails_env, 'production')} alchemy:db:dump DUMP_FILENAME=db/dump-#{timestamp}.sql"
195
- end
196
-
197
- # Sends the database via ssh to the server
198
- def export_database
199
- require 'spinner'
200
- server = find_servers_for_task(current_task).first
201
- spinner = Spinner.new
202
- print "\n"
203
- spinner.task("Exporting the database. Please wait...") do
204
- system db_export_cmd(server)
205
- end
206
- spinner.spin!
207
- end
208
-
209
- # The actual export command that sends the data
210
- def db_export_cmd(server)
211
- import_cmd = "cd #{current_path} && #{rake} RAILS_ENV=#{fetch(:rails_env, 'production')} alchemy:db:import"
212
- ssh_cmd = "ssh -p #{fetch(:port, 22)} #{user}@#{server} '#{import_cmd}'"
213
- "#{database_dump_command(database_config['adapter'])} | #{ssh_cmd}"
214
- end
215
-
216
- # Sends files of given type via rsync to server
217
- def send_files(type)
218
- FileUtils.mkdir_p "./uploads/#{type}"
219
- server = find_servers_for_task(current_task).first
220
- if server
221
- system "rsync --progress -rue 'ssh -p #{fetch(:port, 22)}' uploads/#{type} #{user}@#{server}:#{shared_path}/uploads/"
222
- else
223
- raise "No server found"
224
- end
225
- end
226
- end
227
-
228
- end
229
-
230
- end