alchemy_cms 2.4.1 → 2.5.0.b2
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.
- data/.travis.yml +1 -1
- data/README.md +18 -17
- data/alchemy_cms.gemspec +5 -10
- data/app/assets/images/alchemy/icons.png +0 -0
- data/app/assets/stylesheets/alchemy/archive.scss +27 -0
- data/app/assets/stylesheets/alchemy/base.scss +0 -51
- data/app/assets/stylesheets/alchemy/elements.scss +37 -2
- data/app/assets/stylesheets/alchemy/icons.scss +4 -0
- data/app/assets/stylesheets/alchemy/modules.scss +4 -0
- data/app/assets/stylesheets/alchemy/sitemap.scss +1 -1
- data/app/assets/stylesheets/alchemy/tables.scss +1 -1
- data/app/assets/stylesheets/alchemy/variables.scss +1 -0
- data/app/controllers/alchemy/admin/pages_controller.rb +1 -0
- data/app/controllers/alchemy/admin/pictures_controller.rb +22 -8
- data/app/controllers/alchemy/admin/resources_controller.rb +1 -1
- data/app/controllers/alchemy/admin/sites_controller.rb +6 -0
- data/app/controllers/alchemy/base_controller.rb +8 -0
- data/app/controllers/alchemy/elements_controller.rb +33 -3
- data/app/controllers/alchemy/messages_controller.rb +47 -40
- data/app/controllers/alchemy/pages_controller.rb +8 -31
- data/app/controllers/alchemy/pictures_controller.rb +64 -30
- data/app/helpers/alchemy/admin/base_helper.rb +7 -0
- data/app/helpers/alchemy/admin/pages_helper.rb +12 -0
- data/app/helpers/alchemy/elements_helper.rb +2 -0
- data/app/helpers/alchemy/pages_helper.rb +30 -10
- data/app/helpers/alchemy/url_helper.rb +1 -0
- data/app/models/alchemy/content.rb +1 -2
- data/app/models/alchemy/element.rb +47 -2
- data/app/models/alchemy/language.rb +27 -14
- data/app/models/alchemy/page.rb +1 -1
- data/app/models/alchemy/picture.rb +46 -41
- data/app/models/alchemy/site.rb +44 -0
- data/app/views/alchemy/admin/elements/_element_head.html.erb +1 -0
- data/app/views/alchemy/admin/languages/index.html.erb +23 -0
- data/app/views/alchemy/admin/pages/edit.html.erb +27 -1
- data/app/views/alchemy/admin/pages/fold.js.erb +1 -0
- data/app/views/alchemy/admin/partials/_upload_form.html.erb +2 -0
- data/app/views/alchemy/admin/pictures/_picture.html.erb +24 -2
- data/app/views/alchemy/admin/pictures/_tag_list.html.erb +5 -4
- data/app/views/alchemy/admin/pictures/create.js.erb +1 -9
- data/app/views/alchemy/admin/pictures/info.html.erb +42 -0
- data/app/views/alchemy/admin/resources/_form.html.erb +0 -2
- data/app/views/alchemy/admin/resources/_resource.html.erb +2 -1
- data/app/views/alchemy/admin/resources/index.html.erb +2 -1
- data/app/views/alchemy/elements/show.html.erb +1 -6
- data/app/views/alchemy/elements/show.js.erb +4 -10
- data/app/views/alchemy/essences/_essence_link_view.html.erb +1 -0
- data/app/views/alchemy/search/_form.html.erb +9 -6
- data/app/views/alchemy/search/_result.html.erb +1 -1
- data/bin/alchemy +13 -120
- data/config/alchemy/config.yml +7 -11
- data/config/alchemy/modules.yml +24 -12
- data/config/authorization_rules.rb +6 -2
- data/config/initializers/dragonfly.rb +20 -0
- data/config/locales/alchemy.de.yml +57 -28
- data/config/locales/alchemy.en.yml +18 -4
- data/config/routes.rb +4 -2
- data/db/migrate/20121121162313_switch_from_fleximage_to_dragonfly.rb +21 -0
- data/db/migrate/20121205155004_create_alchemy_sites.rb +14 -0
- data/db/migrate/20121211163003_add_public_to_alchemy_sites.rb +6 -0
- data/lib/alchemy/capistrano.rb +7 -2
- data/lib/alchemy/ferret_search.rb +84 -0
- data/lib/alchemy/picture_attributes.rb +29 -0
- data/lib/alchemy/seeder.rb +10 -16
- data/lib/alchemy/upgrader.rb +59 -8
- data/lib/alchemy/version.rb +1 -1
- data/lib/alchemy_cms.rb +7 -4
- data/lib/rails/generators/alchemy/deploy_script/templates/deploy.rb.tt +3 -0
- data/lib/rails/generators/alchemy/elements/elements_generator.rb +5 -1
- data/lib/rails/generators/alchemy/page_layouts/page_layouts_generator.rb +1 -0
- data/lib/rails/generators/alchemy/scaffold/files/{pages.html.erb → application.html.erb} +0 -0
- data/lib/rails/generators/alchemy/scaffold/scaffold_generator.rb +11 -20
- data/lib/rails/templates/alchemy.rb +1 -7
- data/lib/tasks/{database.rake → alchemy/db.rake} +1 -1
- data/lib/tasks/{install.rake → alchemy/install.rake} +9 -14
- data/lib/tasks/{upgrade.rake → alchemy/upgrade.rake} +1 -1
- data/spec/controllers/elements_controller_spec.rb +24 -9
- data/spec/controllers/pictures_controller_spec.rb +11 -8
- data/{app → spec/dummy/app}/views/alchemy/elements/_article_editor.html.erb +0 -0
- data/{app → spec/dummy/app}/views/alchemy/elements/_article_view.html.erb +0 -0
- data/{app → spec/dummy/app}/views/alchemy/elements/_headline_view.html.erb +0 -0
- data/{app → spec/dummy/app}/views/alchemy/elements/_news_view.html.erb +0 -0
- data/{app → spec/dummy/app}/views/alchemy/elements/_searchresult_view.html.erb +0 -0
- data/{app → spec/dummy/app}/views/alchemy/page_layouts/_standard.html.erb +0 -0
- data/spec/dummy/config/alchemy/elements.yml +86 -0
- data/spec/dummy/config/alchemy/page_layouts.yml +26 -0
- data/spec/dummy/config/application.rb +1 -1
- data/spec/dummy/db/migrate/20121121162313_switch_from_fleximage_to_dragonfly.rb +21 -0
- data/spec/dummy/db/migrate/20121205155004_create_alchemy_sites.rb +14 -0
- data/spec/dummy/db/migrate/20121211163003_add_public_to_alchemy_sites.rb +6 -0
- data/spec/dummy/db/schema.rb +21 -6
- data/spec/factories.rb +6 -2
- data/spec/integration/translation_integration_spec.rb +4 -18
- data/spec/models/element_spec.rb +4 -4
- data/spec/models/picture_spec.rb +37 -20
- data/spec/models/site_spec.rb +69 -0
- data/spec/routing_spec.rb +115 -115
- data/spec/spec_helper.rb +1 -3
- data/spec/support/alchemy/specs_helpers.rb +4 -4
- data/vendor/assets/javascripts/jquery_plugins/jquery.html5uploader.js +1 -1
- metadata +72 -96
- data/app/assets/stylesheets/alchemy/standard_set.css +0 -440
- data/app/views/alchemy/elements/_bild_editor.html.erb +0 -1
- data/app/views/alchemy/elements/_bild_text_editor.html.erb +0 -7
- data/app/views/alchemy/elements/_bild_text_view.html.erb +0 -9
- data/app/views/alchemy/elements/_bild_view.html.erb +0 -9
- data/app/views/alchemy/elements/_claim_editor.html.erb +0 -1
- data/app/views/alchemy/elements/_claim_view.html.erb +0 -1
- data/app/views/alchemy/elements/_contactform_editor.html.erb +0 -4
- data/app/views/alchemy/elements/_contactform_view.html.erb +0 -78
- data/app/views/alchemy/elements/_download_editor.html.erb +0 -4
- data/app/views/alchemy/elements/_download_view.html.erb +0 -7
- data/app/views/alchemy/elements/_footnote_editor.html.erb +0 -1
- data/app/views/alchemy/elements/_footnote_view.html.erb +0 -5
- data/app/views/alchemy/elements/_header_editor.html.erb +0 -1
- data/app/views/alchemy/elements/_header_view.html.erb +0 -1
- data/app/views/alchemy/elements/_headline_editor.html.erb +0 -1
- data/app/views/alchemy/elements/_image_mosaic_editor.html.erb +0 -3
- data/app/views/alchemy/elements/_image_mosaic_view.html.erb +0 -14
- data/app/views/alchemy/elements/_intro_editor.html.erb +0 -1
- data/app/views/alchemy/elements/_intro_image_text_editor.html.erb +0 -3
- data/app/views/alchemy/elements/_intro_image_text_view.html.erb +0 -16
- data/app/views/alchemy/elements/_intro_view.html.erb +0 -3
- data/app/views/alchemy/elements/_news_editor.html.erb +0 -3
- data/app/views/alchemy/elements/_searchresult_editor.html.erb +0 -4
- data/app/views/alchemy/elements/_sitemap_editor.html.erb +0 -3
- data/app/views/alchemy/elements/_sitemap_view.html.erb +0 -38
- data/app/views/alchemy/elements/_sitename_editor.html.erb +0 -1
- data/app/views/alchemy/elements/_sitename_view.html.erb +0 -1
- data/app/views/alchemy/elements/_subheadline_editor.html.erb +0 -1
- data/app/views/alchemy/elements/_subheadline_view.html.erb +0 -5
- data/app/views/alchemy/elements/_text_editor.html.erb +0 -1
- data/app/views/alchemy/elements/_text_view.html.erb +0 -3
- data/app/views/alchemy/page_layouts/_contact.html.erb +0 -14
- data/app/views/alchemy/page_layouts/_external.html.erb +0 -0
- data/app/views/alchemy/page_layouts/_intro.html.erb +0 -14
- data/app/views/alchemy/page_layouts/_layout_footer.html.erb +0 -14
- data/app/views/alchemy/page_layouts/_layout_header.html.erb +0 -14
- data/app/views/alchemy/page_layouts/_news.html.erb +0 -14
- data/app/views/alchemy/page_layouts/_newsletter_layout.html.erb +0 -1
- data/app/views/alchemy/page_layouts/_search.html.erb +0 -14
- data/app/views/alchemy/pictures/show.gif.flexi +0 -19
- data/app/views/alchemy/pictures/show.jpg.flexi +0 -19
- data/app/views/alchemy/pictures/show.png.flexi +0 -19
- data/app/views/alchemy/pictures/thumbnail.png.flexi +0 -13
- data/app/views/alchemy/pictures/zoom.jpg.flexi +0 -3
- data/app/views/alchemy/pictures/zoom.png.flexi +0 -3
- data/app/views/layouts/alchemy/pages.html.erb +0 -51
- data/config/alchemy/elements.yml +0 -274
- data/config/alchemy/page_layouts.yml +0 -75
- data/config/asset_packages.yml +0 -30
- data/config/initializers/localeapp.rb +0 -9
- data/lib/rails/generators/alchemy/plugin/files/translation.pot +0 -3
- data/lib/rails/generators/alchemy/plugin/files/translation_de.po +0 -3
- data/lib/rails/generators/alchemy/plugin/files/translation_en.po +0 -3
- data/lib/rails/generators/alchemy/plugin/plugin_generator.rb +0 -37
- data/lib/rails/generators/alchemy/plugin/templates/authorization_rules.rb +0 -34
- data/lib/rails/generators/alchemy/plugin/templates/config.yml +0 -30
- data/lib/rails/generators/alchemy/plugin/templates/init.rb +0 -1
- data/lib/rails/generators/alchemy/plugin/templates/plugin.rb +0 -0
- data/lib/rails/generators/alchemy/plugin/templates/routes.rb +0 -10
- data/lib/tasks/fleximage.rake +0 -154
- data/spec/dummy/app/views/layouts/.gitkeep +0 -0
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
require 'alchemy/version'
|
|
2
1
|
# This rails template installs Alchemy and all depending gems.
|
|
3
|
-
|
|
4
|
-
# Installing Alchemy Gem
|
|
2
|
+
require 'alchemy/version'
|
|
5
3
|
|
|
6
4
|
gem 'alchemy_cms', "~> #{Alchemy::VERSION}"
|
|
7
|
-
gem 'ruby-debug', :group => :development, :platform => :ruby_18
|
|
8
|
-
gem 'debugger', :group => :development, :platform => :ruby_19
|
|
9
5
|
|
|
10
6
|
if yes?("\nDo you want to use Capistrano for deployment? (y/N)")
|
|
11
7
|
gem 'capistrano', :group => :development
|
|
12
8
|
end
|
|
13
|
-
|
|
14
|
-
run 'bundle install'
|
|
@@ -6,7 +6,7 @@ namespace :alchemy do
|
|
|
6
6
|
Alchemy::Seeder.seed!
|
|
7
7
|
end
|
|
8
8
|
|
|
9
|
-
desc "Dumps the database into 'db/dumps'"
|
|
9
|
+
desc "Dumps the database into 'db/dumps'. NOTE: This only works with MySQL yet."
|
|
10
10
|
task :dump => :environment do
|
|
11
11
|
db_conf = Rails.configuration.database_configuration.fetch(Rails.env)
|
|
12
12
|
raise "Alchemy only supports MySQL database dumping at the moment." unless db_conf['adapter'] =~ /mysql/
|
|
@@ -19,6 +19,7 @@ namespace :alchemy do
|
|
|
19
19
|
|
|
20
20
|
desc "Installs Alchemy CMS into your app."
|
|
21
21
|
task :install do
|
|
22
|
+
Rake::Task["db:create"].invoke
|
|
22
23
|
Rake::Task["alchemy:install:migrations"].invoke
|
|
23
24
|
Rake::Task["alchemy:mount"].invoke
|
|
24
25
|
system("rails g alchemy:scaffold")
|
|
@@ -28,7 +29,7 @@ namespace :alchemy do
|
|
|
28
29
|
|
|
29
30
|
\\o/ Successfully installed Alchemy CMS \\o/
|
|
30
31
|
|
|
31
|
-
Now
|
|
32
|
+
Now cd into your app folder and
|
|
32
33
|
|
|
33
34
|
1. Start your Rails server:
|
|
34
35
|
|
|
@@ -36,10 +37,16 @@ Now:
|
|
|
36
37
|
|
|
37
38
|
2. Open your browser and enter the following URL:
|
|
38
39
|
|
|
39
|
-
http://localhost:3000/#{@mountpoint
|
|
40
|
+
http://localhost:3000/#{@mountpoint}
|
|
40
41
|
|
|
41
42
|
3. Follow the instructions to complete the installation!
|
|
42
43
|
|
|
44
|
+
== First time Alchemy user?
|
|
45
|
+
|
|
46
|
+
Then we recommend to install the Alchemy demo kit.
|
|
47
|
+
|
|
48
|
+
Just add `gem "alchemy-demo_kit"` to your apps Gemfile and run `bundle install`.
|
|
49
|
+
|
|
43
50
|
Thank you for using Alchemy CMS!
|
|
44
51
|
|
|
45
52
|
http://alchemy-cms.com/
|
|
@@ -52,16 +59,4 @@ EOF
|
|
|
52
59
|
Alchemy::RoutesInjector.new.inject
|
|
53
60
|
end
|
|
54
61
|
|
|
55
|
-
namespace :standard_set do
|
|
56
|
-
|
|
57
|
-
desc "Install Alchemy CMS's standard set."
|
|
58
|
-
task :install do
|
|
59
|
-
system("rails g alchemy:scaffold --with-standard-set")
|
|
60
|
-
puts "\n-> Please do not forget to add Alchemy's standard set to precompiable assets. <-\n"
|
|
61
|
-
puts "\nPut this line in your 'config/environments/production.rb' file:\n"
|
|
62
|
-
puts " config.assets.precompile += %w( alchemy/standard_set.css )"
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
end
|
|
66
|
-
|
|
67
62
|
end
|
|
@@ -3,29 +3,44 @@ require 'spec_helper'
|
|
|
3
3
|
module Alchemy
|
|
4
4
|
describe ElementsController do
|
|
5
5
|
|
|
6
|
-
let(:page)
|
|
7
|
-
let(:element)
|
|
6
|
+
let(:page) { FactoryGirl.create(:public_page) }
|
|
7
|
+
let(:element) { FactoryGirl.create(:element, :page => page, :name => 'download') }
|
|
8
|
+
let(:restricted_page) { FactoryGirl.create(:public_page, :restricted => true) }
|
|
9
|
+
let(:restricted_element) { FactoryGirl.create(:element, :page => restricted_page, :name => 'download') }
|
|
8
10
|
|
|
9
11
|
describe '#show' do
|
|
10
12
|
|
|
11
|
-
it "should
|
|
13
|
+
it "should render available elements" do
|
|
12
14
|
get :show, :id => element.id
|
|
13
|
-
response.status.should ==
|
|
14
|
-
response.should redirect_to(login_path)
|
|
15
|
+
response.status.should == 200
|
|
15
16
|
end
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
it "should raise ActiveRecord::RecordNotFound error for trashed elements" do
|
|
19
|
+
element.trash
|
|
20
|
+
expect { get(:show, :id => element.id) }.to raise_error(ActiveRecord::RecordNotFound)
|
|
21
|
+
end
|
|
18
22
|
|
|
23
|
+
it "should raise ActiveRecord::RecordNotFound error for unpublished elements" do
|
|
24
|
+
element.update_attributes(:public => false)
|
|
25
|
+
expect { get(:show, :id => element.id) }.to raise_error(ActiveRecord::RecordNotFound)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
context "for guest user" do
|
|
29
|
+
it "should raise ActiveRecord::RecordNotFound error for elements of restricted pages" do
|
|
30
|
+
expect { get(:show, :id => restricted_element.id) }.to raise_error(ActiveRecord::RecordNotFound)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
context "for registered user" do
|
|
19
35
|
before do
|
|
20
36
|
activate_authlogic
|
|
21
37
|
UserSession.create(FactoryGirl.create(:registered_user))
|
|
22
38
|
end
|
|
23
39
|
|
|
24
|
-
it "should render restricted
|
|
25
|
-
get :show, :id =>
|
|
40
|
+
it "should render elements of restricted pages" do
|
|
41
|
+
get :show, :id => restricted_element.id
|
|
26
42
|
response.status.should == 200
|
|
27
43
|
end
|
|
28
|
-
|
|
29
44
|
end
|
|
30
45
|
|
|
31
46
|
end
|
|
@@ -22,7 +22,6 @@ module Alchemy
|
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
context "Requesting a picture that is assigned on restricted and non-restricted pages" do
|
|
25
|
-
|
|
26
25
|
before do
|
|
27
26
|
essence = element.contents.where(:name => 'image').first.essence
|
|
28
27
|
essence.picture_id = picture.id
|
|
@@ -39,11 +38,9 @@ module Alchemy
|
|
|
39
38
|
response.status.should == 200
|
|
40
39
|
end
|
|
41
40
|
end
|
|
42
|
-
|
|
43
41
|
end
|
|
44
42
|
|
|
45
43
|
context "Requesting a picture that is assigned with restricted pages only" do
|
|
46
|
-
|
|
47
44
|
before do
|
|
48
45
|
essence = restricted_element.contents.where(:name => 'image').first.essence
|
|
49
46
|
essence.picture_id = picture.id
|
|
@@ -51,17 +48,14 @@ module Alchemy
|
|
|
51
48
|
end
|
|
52
49
|
|
|
53
50
|
context "as guest user" do
|
|
54
|
-
|
|
55
51
|
it "should not render the picture, but redirect to login path" do
|
|
56
52
|
get :show, :id => picture.id, :sh => picture.security_token
|
|
57
53
|
response.status.should == 302
|
|
58
54
|
response.should redirect_to(login_path)
|
|
59
55
|
end
|
|
60
|
-
|
|
61
56
|
end
|
|
62
57
|
|
|
63
58
|
context "as registered user" do
|
|
64
|
-
|
|
65
59
|
before do
|
|
66
60
|
activate_authlogic
|
|
67
61
|
UserSession.create(FactoryGirl.create(:registered_user))
|
|
@@ -71,10 +65,19 @@ module Alchemy
|
|
|
71
65
|
get :show, :id => picture.id, :format => :png, :sh => picture.security_token
|
|
72
66
|
response.status.should == 200
|
|
73
67
|
end
|
|
74
|
-
|
|
75
68
|
end
|
|
69
|
+
end
|
|
76
70
|
|
|
77
|
-
|
|
71
|
+
context "Requesting a picture with crop and size parameters" do
|
|
72
|
+
it "should render a cropped image" do
|
|
73
|
+
options = {
|
|
74
|
+
:crop => 'crop',
|
|
75
|
+
:size => '10x10',
|
|
76
|
+
:format => 'png'
|
|
77
|
+
}
|
|
78
|
+
get :show, options.merge(:id => picture.id, :sh => picture.security_token(options))
|
|
79
|
+
response.body[0x10..0x18].unpack('NN').should == [10,10]
|
|
80
|
+
end
|
|
78
81
|
end
|
|
79
82
|
|
|
80
83
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
- name: header
|
|
2
|
+
unique: true
|
|
3
|
+
contents:
|
|
4
|
+
- name: image
|
|
5
|
+
type: EssencePicture
|
|
6
|
+
|
|
7
|
+
- name: headline
|
|
8
|
+
contents:
|
|
9
|
+
- name: headline
|
|
10
|
+
type: EssenceText
|
|
11
|
+
|
|
12
|
+
- name: article
|
|
13
|
+
taggable: true
|
|
14
|
+
contents:
|
|
15
|
+
- name: intro
|
|
16
|
+
type: EssenceText
|
|
17
|
+
- name: headline
|
|
18
|
+
type: EssenceText
|
|
19
|
+
settings:
|
|
20
|
+
deletable: true
|
|
21
|
+
- name: image
|
|
22
|
+
type: EssencePicture
|
|
23
|
+
- name: text
|
|
24
|
+
type: EssenceRichtext
|
|
25
|
+
settings:
|
|
26
|
+
deletable: true
|
|
27
|
+
available_contents:
|
|
28
|
+
- name: text
|
|
29
|
+
type: EssenceRichtext
|
|
30
|
+
- name: headline
|
|
31
|
+
type: EssenceText
|
|
32
|
+
|
|
33
|
+
- name: text
|
|
34
|
+
contents:
|
|
35
|
+
- name: text
|
|
36
|
+
type: EssenceRichtext
|
|
37
|
+
|
|
38
|
+
- name: news
|
|
39
|
+
contents:
|
|
40
|
+
- name: date
|
|
41
|
+
type: EssenceDate
|
|
42
|
+
- name: news_headline
|
|
43
|
+
type: EssenceText
|
|
44
|
+
rss_title: true
|
|
45
|
+
- name: body
|
|
46
|
+
type: EssenceRichtext
|
|
47
|
+
rss_description: true
|
|
48
|
+
|
|
49
|
+
- name: download
|
|
50
|
+
contents:
|
|
51
|
+
- name: file
|
|
52
|
+
type: EssenceFile
|
|
53
|
+
settings:
|
|
54
|
+
deletable: true
|
|
55
|
+
available_contents:
|
|
56
|
+
- name: file
|
|
57
|
+
type: EssenceFile
|
|
58
|
+
|
|
59
|
+
- name: bild
|
|
60
|
+
contents:
|
|
61
|
+
- name: image
|
|
62
|
+
type: EssencePicture
|
|
63
|
+
|
|
64
|
+
- name: contactform
|
|
65
|
+
unique: true
|
|
66
|
+
contents:
|
|
67
|
+
- name: mail_from
|
|
68
|
+
type: EssenceText
|
|
69
|
+
validate:
|
|
70
|
+
- presence
|
|
71
|
+
- name: mail_to
|
|
72
|
+
type: EssenceText
|
|
73
|
+
validate:
|
|
74
|
+
- presence
|
|
75
|
+
- name: subject
|
|
76
|
+
type: EssenceText
|
|
77
|
+
take_me_for_preview: true
|
|
78
|
+
validate:
|
|
79
|
+
- presence
|
|
80
|
+
- name: success_page
|
|
81
|
+
type: EssenceSelect
|
|
82
|
+
validate:
|
|
83
|
+
- presence
|
|
84
|
+
|
|
85
|
+
- name: searchresult
|
|
86
|
+
unique: true
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
- name: intro
|
|
2
|
+
unique: true
|
|
3
|
+
|
|
4
|
+
- name: standard
|
|
5
|
+
elements: [article, header]
|
|
6
|
+
autogenerate: [header, article]
|
|
7
|
+
|
|
8
|
+
- name: news
|
|
9
|
+
feed: true
|
|
10
|
+
unique: true
|
|
11
|
+
insert_elements_at: top
|
|
12
|
+
elements: [headline, news]
|
|
13
|
+
autogenerate: [news]
|
|
14
|
+
feed_elements: [news]
|
|
15
|
+
|
|
16
|
+
- name: contact
|
|
17
|
+
unique: true
|
|
18
|
+
cache: false
|
|
19
|
+
elements: [headline, text, contactform]
|
|
20
|
+
autogenerate: [headline, text, contactform]
|
|
21
|
+
|
|
22
|
+
- name: search
|
|
23
|
+
unique: true
|
|
24
|
+
elements: [headline, text, searchresult]
|
|
25
|
+
autogenerate: [searchresult]
|
|
26
|
+
searchresults: true
|
|
@@ -37,7 +37,7 @@ module Dummy
|
|
|
37
37
|
|
|
38
38
|
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
|
39
39
|
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
|
40
|
-
config.i18n.default_locale = :
|
|
40
|
+
# config.i18n.default_locale = :de
|
|
41
41
|
|
|
42
42
|
# Configure the default encoding used in templates for Ruby 1.9.
|
|
43
43
|
config.encoding = "utf-8"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
class SwitchFromFleximageToDragonfly < ActiveRecord::Migration
|
|
2
|
+
def up
|
|
3
|
+
change_table :alchemy_pictures do |t|
|
|
4
|
+
t.string :image_file_uid
|
|
5
|
+
t.integer :image_file_size
|
|
6
|
+
t.rename :image_width, :image_file_width
|
|
7
|
+
t.rename :image_height, :image_file_height
|
|
8
|
+
t.rename :image_filename, :image_file_name
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def down
|
|
13
|
+
change_table :alchemy_pictures do |t|
|
|
14
|
+
t.remove :image_file_uid
|
|
15
|
+
t.remove :image_file_size
|
|
16
|
+
t.rename :image_file_width, :image_width
|
|
17
|
+
t.rename :image_file_height, :image_height
|
|
18
|
+
t.rename :image_file_name, :image_filename
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
class CreateAlchemySites < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
create_table "alchemy_sites" do |t|
|
|
4
|
+
t.string :host
|
|
5
|
+
t.string :name
|
|
6
|
+
t.timestamps
|
|
7
|
+
end
|
|
8
|
+
add_index :alchemy_sites, :host, uniq: true
|
|
9
|
+
|
|
10
|
+
# add Language#site_id
|
|
11
|
+
add_column :alchemy_languages, :site_id, :integer
|
|
12
|
+
add_index :alchemy_languages, :site_id
|
|
13
|
+
end
|
|
14
|
+
end
|
data/spec/dummy/db/schema.rb
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
#
|
|
12
12
|
# It's strongly recommended to check this file into your version control system.
|
|
13
13
|
|
|
14
|
-
ActiveRecord::Schema.define(:version =>
|
|
14
|
+
ActiveRecord::Schema.define(:version => 20121211163003) do
|
|
15
15
|
|
|
16
16
|
create_table "alchemy_attachments", :force => true do |t|
|
|
17
17
|
t.string "name"
|
|
@@ -187,10 +187,12 @@ ActiveRecord::Schema.define(:version => 20121116141016) do
|
|
|
187
187
|
t.integer "updater_id"
|
|
188
188
|
t.boolean "default", :default => false
|
|
189
189
|
t.string "country_code", :default => "", :null => false
|
|
190
|
+
t.integer "site_id"
|
|
190
191
|
end
|
|
191
192
|
|
|
192
193
|
add_index "alchemy_languages", ["language_code", "country_code"], :name => "index_alchemy_languages_on_language_code_and_country_code"
|
|
193
194
|
add_index "alchemy_languages", ["language_code"], :name => "index_alchemy_languages_on_language_code"
|
|
195
|
+
add_index "alchemy_languages", ["site_id"], :name => "index_alchemy_languages_on_site_id"
|
|
194
196
|
|
|
195
197
|
create_table "alchemy_pages", :force => true do |t|
|
|
196
198
|
t.string "name"
|
|
@@ -228,17 +230,30 @@ ActiveRecord::Schema.define(:version => 20121116141016) do
|
|
|
228
230
|
|
|
229
231
|
create_table "alchemy_pictures", :force => true do |t|
|
|
230
232
|
t.string "name"
|
|
231
|
-
t.string "
|
|
232
|
-
t.integer "
|
|
233
|
-
t.integer "
|
|
234
|
-
t.datetime "created_at",
|
|
235
|
-
t.datetime "updated_at",
|
|
233
|
+
t.string "image_file_name"
|
|
234
|
+
t.integer "image_file_width"
|
|
235
|
+
t.integer "image_file_height"
|
|
236
|
+
t.datetime "created_at", :null => false
|
|
237
|
+
t.datetime "updated_at", :null => false
|
|
236
238
|
t.integer "creator_id"
|
|
237
239
|
t.integer "updater_id"
|
|
238
240
|
t.string "upload_hash"
|
|
239
241
|
t.text "cached_tag_list"
|
|
242
|
+
t.string "image_file_uid"
|
|
243
|
+
t.integer "image_file_size"
|
|
244
|
+
end
|
|
245
|
+
|
|
246
|
+
create_table "alchemy_sites", :force => true do |t|
|
|
247
|
+
t.string "host"
|
|
248
|
+
t.string "name"
|
|
249
|
+
t.datetime "created_at", :null => false
|
|
250
|
+
t.datetime "updated_at", :null => false
|
|
251
|
+
t.boolean "public", :default => false
|
|
240
252
|
end
|
|
241
253
|
|
|
254
|
+
add_index "alchemy_sites", ["host", "public"], :name => "alchemy_sites_public_hosts_idx"
|
|
255
|
+
add_index "alchemy_sites", ["host"], :name => "index_alchemy_sites_on_host"
|
|
256
|
+
|
|
242
257
|
create_table "alchemy_users", :force => true do |t|
|
|
243
258
|
t.string "firstname"
|
|
244
259
|
t.string "lastname"
|
data/spec/factories.rb
CHANGED
|
@@ -5,7 +5,6 @@ FactoryGirl.define do
|
|
|
5
5
|
login "jdoe"
|
|
6
6
|
password 's3cr3t'
|
|
7
7
|
password_confirmation 's3cr3t'
|
|
8
|
-
language 'en'
|
|
9
8
|
|
|
10
9
|
factory :admin_user do
|
|
11
10
|
role "admin"
|
|
@@ -32,6 +31,7 @@ FactoryGirl.define do
|
|
|
32
31
|
frontpage_name 'Intro'
|
|
33
32
|
page_layout 'intro'
|
|
34
33
|
public true
|
|
34
|
+
site { Alchemy::Site.first }
|
|
35
35
|
|
|
36
36
|
factory :klingonian do
|
|
37
37
|
name 'Klingonian'
|
|
@@ -94,7 +94,7 @@ FactoryGirl.define do
|
|
|
94
94
|
factory :picture, :class => 'Alchemy::Picture' do
|
|
95
95
|
image_file File.new(File.expand_path('../support/image.png', __FILE__))
|
|
96
96
|
name 'image'
|
|
97
|
-
|
|
97
|
+
image_file_name 'image.png'
|
|
98
98
|
upload_hash Time.now.hash
|
|
99
99
|
end
|
|
100
100
|
|
|
@@ -108,4 +108,8 @@ FactoryGirl.define do
|
|
|
108
108
|
entrance_fee 12.3
|
|
109
109
|
end
|
|
110
110
|
|
|
111
|
+
factory :site, class: 'Alchemy::Site' do
|
|
112
|
+
name 'A Site'
|
|
113
|
+
host 'domain.com'
|
|
114
|
+
end
|
|
111
115
|
end
|