alchemy_cms 3.2.0.beta → 3.2.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
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