alchemy_cms 2.4.beta2 → 2.4.rc1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -1
- data/.travis.yml +3 -1
- data/.yardopts +1 -1
- data/Gemfile +2 -1
- data/alchemy_cms.gemspec +18 -17
- data/app/assets/images/alchemy/ajax_loader.gif +0 -0
- data/app/assets/images/alchemy/alchemy-logo.png +0 -0
- data/app/assets/images/alchemy/icons.png +0 -0
- data/app/assets/images/alchemy/image_loader.gif +0 -0
- data/app/assets/images/alchemy/placeholder.png +0 -0
- data/app/assets/images/alchemy/shading.png +0 -0
- data/app/assets/images/alchemy/swfupload/browse_button.png +0 -0
- data/app/assets/images/alchemy/tabs.gif +0 -0
- data/app/assets/images/alchemy/ui-icons_666666_256x240.png +0 -0
- data/app/assets/images/sassy-ie-overlay.png +0 -0
- data/app/assets/javascripts/alchemy/alchemy.base.js +1 -3
- data/app/assets/javascripts/alchemy/alchemy.browser.js.coffee +28 -0
- data/app/assets/javascripts/alchemy/alchemy.jquery_loader.js +2 -2
- data/app/assets/javascripts/alchemy/alchemy.js +2 -0
- data/app/assets/javascripts/alchemy/alchemy.link_overlay.js.coffee +79 -47
- data/app/assets/javascripts/alchemy/alchemy.menubar.js +12 -4
- data/app/assets/javascripts/alchemy/alchemy.onload.js.coffee +1 -1
- data/app/assets/javascripts/alchemy/alchemy.preview.js.coffee +103 -0
- data/app/assets/javascripts/alchemy/alchemy.swf_upload.js +1 -1
- data/app/assets/javascripts/alchemy/alchemy.uploader.js +4 -6
- data/app/assets/javascripts/alchemy/preview.js +1 -0
- data/app/assets/stylesheets/alchemy/admin.css.scss +25 -0
- data/app/assets/stylesheets/alchemy/{archive.css.scss → archive.scss} +0 -2
- data/app/assets/stylesheets/alchemy/{base.css.scss → base.scss} +1 -57
- data/app/assets/stylesheets/alchemy/{custom.css → custom.scss} +0 -0
- data/app/assets/stylesheets/alchemy/{dashboard.css.scss → dashboard.scss} +0 -2
- data/app/assets/stylesheets/alchemy/defaults.scss +5 -0
- data/app/assets/stylesheets/alchemy/{elements.css.scss → elements.scss} +24 -37
- data/app/assets/stylesheets/alchemy/{errors.css.scss → errors.scss} +0 -2
- data/app/assets/stylesheets/alchemy/{flash.css.scss → flash.scss} +0 -2
- data/app/assets/stylesheets/alchemy/{form_elements.css.scss → form_elements.scss} +39 -12
- data/app/assets/stylesheets/alchemy/{frame.css.scss → frame.scss} +0 -2
- data/app/assets/stylesheets/alchemy/{icons.css.scss → icons.scss} +20 -2
- data/app/assets/stylesheets/alchemy/{jquery-ui.alchemy.css.scss → jquery-ui.scss} +6 -3
- data/app/assets/stylesheets/alchemy/{login.css.scss → login.scss} +3 -3
- data/app/assets/stylesheets/alchemy/menubar.css.scss +0 -1
- data/app/assets/stylesheets/alchemy/{_defaults.scss → mixins.scss} +2 -39
- data/app/assets/stylesheets/alchemy/{modules.css.scss → modules.scss} +4 -2
- data/app/assets/stylesheets/alchemy/notices.scss +51 -0
- data/app/assets/stylesheets/alchemy/{pagination.css.scss → pagination.scss} +0 -2
- data/app/assets/stylesheets/alchemy/{print.css → print.css.scss} +3 -3
- data/app/assets/stylesheets/alchemy/search.scss +63 -0
- data/app/assets/stylesheets/alchemy/{sitemap.css.scss → sitemap.scss} +1 -2
- data/app/assets/stylesheets/alchemy/{tables.css.scss → tables.scss} +16 -3
- data/app/assets/stylesheets/alchemy/tinymce_content.css.scss +3 -0
- data/app/assets/stylesheets/alchemy/tinymce_dialog.css.scss +3 -0
- data/app/assets/stylesheets/alchemy/{upload.css.scss → upload.scss} +0 -2
- data/app/assets/stylesheets/alchemy/variables.scss +33 -0
- data/app/controllers/alchemy/admin/elements_controller.rb +1 -2
- data/app/controllers/alchemy/admin/tags_controller.rb +64 -0
- data/app/controllers/alchemy/base_controller.rb +8 -23
- data/app/controllers/alchemy/pages_controller.rb +5 -18
- data/app/helpers/alchemy/admin/base_helper.rb +1 -1
- data/app/helpers/alchemy/admin/elements_helper.rb +1 -0
- data/app/helpers/alchemy/elements_block_helper.rb +162 -0
- data/app/helpers/alchemy/elements_helper.rb +41 -3
- data/app/helpers/alchemy/pages_helper.rb +2 -1
- data/app/models/alchemy/attachment.rb +2 -1
- data/app/models/alchemy/element.rb +13 -10
- data/app/models/alchemy/essence_link.rb +11 -0
- data/app/models/alchemy/essence_picture.rb +15 -4
- data/app/models/alchemy/page.rb +23 -25
- data/app/models/alchemy/picture.rb +2 -2
- data/app/models/alchemy/tag.rb +16 -0
- data/app/models/alchemy/user.rb +3 -1
- data/app/views/alchemy/admin/attachments/_attachment.html.erb +12 -12
- data/app/views/alchemy/admin/attachments/edit.html.erb +10 -4
- data/app/views/alchemy/admin/elements/_element.html.erb +10 -13
- data/app/views/alchemy/admin/elements/_element_foot.html.erb +1 -1
- data/app/views/alchemy/admin/essence_files/edit.html.erb +12 -76
- data/app/views/alchemy/admin/essence_pictures/crop.html.erb +9 -4
- data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +1 -1
- data/app/views/alchemy/admin/layoutpages/index.html.erb +1 -1
- data/app/views/alchemy/admin/pages/_external_link.html.erb +9 -4
- data/app/views/alchemy/admin/pages/configure.html.erb +22 -12
- data/app/views/alchemy/admin/pages/edit.html.erb +40 -40
- data/app/views/alchemy/admin/partials/_autocomplete_tag_list.html.erb +9 -0
- data/app/views/alchemy/admin/pictures/edit.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/edit_multiple.html.erb +11 -2
- data/app/views/alchemy/admin/tags/_radio_tag.html.erb +6 -0
- data/app/views/alchemy/admin/tags/_tag.html.erb +29 -0
- data/app/views/alchemy/admin/tags/edit.html.erb +41 -0
- data/app/views/alchemy/admin/tags/index.html.erb +46 -0
- data/app/views/alchemy/admin/tags/new.html.erb +16 -0
- data/app/views/alchemy/admin/users/_table.html.erb +18 -10
- data/app/views/alchemy/admin/users/_user.html.erb +2 -1
- data/app/views/alchemy/admin/users/index.html.erb +2 -1
- data/app/views/alchemy/elements/_article_view.html.erb +1 -1
- data/app/views/alchemy/essences/_essence_link_editor.html.erb +23 -0
- data/app/views/alchemy/essences/_essence_link_view.html.erb +0 -0
- data/app/views/alchemy/essences/_essence_picture_tools.html.erb +1 -1
- data/app/views/alchemy/essences/_essence_text_editor.html.erb +1 -9
- data/app/views/alchemy/essences/_linkable_essence_tools.html.erb +19 -0
- data/app/views/layouts/alchemy/admin.html.erb +1 -1
- data/config/alchemy/elements.yml +2 -0
- data/config/alchemy/modules.yml +12 -0
- data/config/alchemy/page_layouts.yml +2 -0
- data/config/authorization_rules.rb +2 -0
- data/config/locales/alchemy.de.yml +36 -5
- data/config/locales/alchemy.en.yml +3 -0
- data/config/routes.rb +6 -4
- data/db/migrate/20121026100815_alchemy_two_point_three.rb +0 -36
- data/db/migrate/20121113115120_create_alchemy_essence_links.rb +13 -0
- data/db/migrate/20121115100736_add_cached_tag_list_to_elements_pages_and_users.rb +7 -0
- data/db/migrate/20121116140636_add_cached_tag_list_to_alchemy_attachments.rb +5 -0
- data/db/migrate/20121116141016_change_alchemy_pictures_tag_list_column.rb +9 -0
- data/lib/alchemy/engine.rb +1 -1
- data/lib/alchemy/resource.rb +1 -1
- data/lib/alchemy/resources_helper.rb +1 -1
- data/lib/alchemy/upgrader.rb +17 -0
- data/lib/alchemy/version.rb +1 -1
- data/lib/alchemy_cms.rb +1 -0
- data/lib/rails/generators/alchemy/base.rb +41 -0
- data/lib/rails/generators/alchemy/deploy_script/templates/deploy.rb.tt +10 -3
- data/lib/rails/generators/alchemy/elements/elements_generator.rb +6 -14
- data/lib/rails/generators/alchemy/elements/templates/editor.html.erb +8 -6
- data/lib/rails/generators/alchemy/elements/templates/editor.html.haml +13 -0
- data/lib/rails/generators/alchemy/elements/templates/editor.html.slim +13 -0
- data/lib/rails/generators/alchemy/elements/templates/view.html.erb +4 -4
- data/lib/rails/generators/alchemy/elements/templates/view.html.haml +15 -0
- data/lib/rails/generators/alchemy/elements/templates/view.html.slim +15 -0
- data/lib/rails/generators/alchemy/essence/essence_generator.rb +1 -1
- data/lib/rails/generators/alchemy/essence/templates/editor.html.erb +2 -3
- data/lib/rails/generators/alchemy/page_layouts/page_layouts_generator.rb +4 -13
- data/lib/rails/generators/alchemy/page_layouts/templates/layout.html.haml +1 -0
- data/lib/rails/generators/alchemy/page_layouts/templates/layout.html.slim +1 -0
- data/spec/controllers/pages_controller_spec.rb +41 -34
- data/spec/dummy/app/views/layouts/application.html.erb +51 -0
- data/spec/dummy/db/migrate/20121026100815_alchemy_two_point_three.rb +0 -36
- data/spec/dummy/db/migrate/20121113115120_create_alchemy_essence_links.rb +13 -0
- data/spec/dummy/db/migrate/20121115100736_add_cached_tag_list_to_elements_pages_and_users.rb +7 -0
- data/spec/dummy/db/migrate/20121116140636_add_cached_tag_list_to_alchemy_attachments.rb +5 -0
- data/spec/dummy/db/migrate/20121116141016_change_alchemy_pictures_tag_list_column.rb +9 -0
- data/spec/dummy/db/schema.rb +24 -45
- data/spec/helpers/elements_block_helper_spec.rb +135 -0
- data/spec/helpers/elements_helper_spec.rb +43 -5
- data/spec/integration/pages_controller_spec.rb +22 -18
- data/spec/integration/translation_integration_spec.rb +0 -15
- data/spec/models/element_spec.rb +44 -36
- data/spec/models/essence_picture_spec.rb +22 -6
- data/spec/models/page_spec.rb +28 -0
- data/spec/spec_helper.rb +8 -3
- data/spec/support/ci/install_phantomjs +6 -0
- metadata +82 -40
- data/app/assets/images/alchemy/gui/navi-tab.png +0 -0
- data/app/assets/images/alchemy/gui/shading_90.png +0 -0
- data/app/assets/images/alchemy/jquery-sb/select_arrow.gif +0 -0
- data/app/assets/images/alchemy/jquery-sb/select_arrow_bg.gif +0 -0
- data/app/assets/images/alchemy/jquery-sb/select_arrow_bg_hover.gif +0 -0
- data/app/assets/javascripts/alchemy/alchemy.preview.js +0 -98
- data/app/assets/stylesheets/alchemy/alchemy.css +0 -21
- data/app/controllers/alchemy/admin/essence_audios_controller.rb +0 -12
- data/app/controllers/alchemy/admin/essence_flashes_controller.rb +0 -12
- data/app/controllers/alchemy/admin/essence_videos_controller.rb +0 -12
- data/app/models/alchemy/essence_audio.rb +0 -14
- data/app/models/alchemy/essence_flash.rb +0 -12
- data/app/models/alchemy/essence_video.rb +0 -20
- data/app/views/alchemy/essences/_essence_audio_editor.html.erb +0 -1
- data/app/views/alchemy/essences/_essence_audio_view.html.erb +0 -33
- data/app/views/alchemy/essences/_essence_flash_editor.html.erb +0 -1
- data/app/views/alchemy/essences/_essence_flash_view.html.erb +0 -26
- data/app/views/alchemy/essences/_essence_video_editor.html.erb +0 -1
- data/app/views/alchemy/essences/_essence_video_view.html.erb +0 -35
@@ -113,12 +113,14 @@ module Alchemy
|
|
113
113
|
PagesController.any_instance.stub(:multi_language?).and_return(true)
|
114
114
|
end
|
115
115
|
|
116
|
-
|
117
|
-
|
118
|
-
|
116
|
+
context "if no language params are given" do
|
117
|
+
it "should redirect to url with nested language code" do
|
118
|
+
visit "/alchemy/#{public_page_1.urlname}"
|
119
|
+
page.current_path.should == "/alchemy/#{public_page_1.language_code}/#{public_page_1.urlname}"
|
120
|
+
end
|
119
121
|
end
|
120
122
|
|
121
|
-
context "
|
123
|
+
context "if requested page is unpublished" do
|
122
124
|
|
123
125
|
before do
|
124
126
|
public_page_1.update_attributes(:public => false, :name => 'Not Public', :urlname => '')
|
@@ -126,26 +128,32 @@ module Alchemy
|
|
126
128
|
Config.stub!(:get) { |arg| arg == :url_nesting ? false : Config.parameter(arg) }
|
127
129
|
end
|
128
130
|
|
129
|
-
it "
|
131
|
+
it "should redirect to public child" do
|
130
132
|
visit "/alchemy/#{default_language.code}/not-public"
|
131
133
|
page.current_path.should == "/alchemy/#{default_language.code}/public-child"
|
132
134
|
end
|
133
135
|
|
134
|
-
|
135
|
-
|
136
|
-
|
136
|
+
context "and url has no language code" do
|
137
|
+
it "should redirect to url of public child with language code of default language" do
|
138
|
+
visit '/alchemy/not-public'
|
139
|
+
page.current_path.should == "/alchemy/#{default_language.code}/public-child"
|
140
|
+
end
|
137
141
|
end
|
138
142
|
|
139
143
|
end
|
140
144
|
|
141
|
-
|
142
|
-
|
143
|
-
|
145
|
+
context "if requested url is index url" do
|
146
|
+
it "should redirect to pages url with default language" do
|
147
|
+
visit '/alchemy/'
|
148
|
+
page.current_path.should == "/alchemy/#{default_language.code}/home"
|
149
|
+
end
|
144
150
|
end
|
145
151
|
|
146
|
-
|
147
|
-
|
148
|
-
|
152
|
+
context "if requested url is only the language code" do
|
153
|
+
it "should redirect to pages url with default language" do
|
154
|
+
visit "/alchemy/#{default_language.code}"
|
155
|
+
page.current_path.should == "/alchemy/#{default_language.code}/home"
|
156
|
+
end
|
149
157
|
end
|
150
158
|
|
151
159
|
context "requested url is only the urlname" do
|
@@ -301,10 +309,6 @@ module Alchemy
|
|
301
309
|
within("title") { page.should have_content("404") }
|
302
310
|
end
|
303
311
|
|
304
|
-
it "should render the layout" do
|
305
|
-
page.should have_selector("#language_select")
|
306
|
-
end
|
307
|
-
|
308
312
|
end
|
309
313
|
|
310
314
|
it "should render public/404.html when it exists" do
|
@@ -38,19 +38,4 @@ describe "Translation integration" do
|
|
38
38
|
|
39
39
|
end
|
40
40
|
|
41
|
-
context "with translated header" do
|
42
|
-
|
43
|
-
before do
|
44
|
-
# Hack my hack.... OMG
|
45
|
-
Rails.stub(:env).and_return('foo')
|
46
|
-
Capybara.current_driver = :rack_test_translated_header
|
47
|
-
end
|
48
|
-
|
49
|
-
it "should use the browsers language setting if no other parameter is given" do
|
50
|
-
visit root_path
|
51
|
-
::I18n.locale.should == :de
|
52
|
-
end
|
53
|
-
|
54
|
-
end
|
55
|
-
|
56
41
|
end
|
data/spec/models/element_spec.rb
CHANGED
@@ -199,32 +199,19 @@ module Alchemy
|
|
199
199
|
end
|
200
200
|
|
201
201
|
describe "#trash" do
|
202
|
+
let(:element) { FactoryGirl.create(:element, :page_id => 1, :cell_id => 1) }
|
203
|
+
let(:trashed_element) { element.trash ; element }
|
204
|
+
subject { trashed_element }
|
202
205
|
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
it "should remove the elements position" do
|
209
|
-
@element.position.should == nil
|
210
|
-
end
|
211
|
-
|
212
|
-
it "should set the public state to false" do
|
213
|
-
@element.public?.should == false
|
214
|
-
end
|
215
|
-
|
216
|
-
it "should not remove the page_id" do
|
217
|
-
@element.page_id.should == 1
|
218
|
-
end
|
219
|
-
|
220
|
-
it "should not remove the cell_id" do
|
221
|
-
@element.cell_id.should == 1
|
222
|
-
end
|
206
|
+
it { should_not be_public }
|
207
|
+
its(:position) { should be_nil }
|
208
|
+
specify { expect { element.trash }.to_not change(element, :page_id) }
|
209
|
+
specify { expect { element.trash }.to_not change(element, :cell_id) }
|
223
210
|
|
224
211
|
it "it should be possible to trash more than one element from the same page" do
|
225
212
|
trashed_element_2 = FactoryGirl.create(:element, :page_id => 1)
|
226
213
|
trashed_element_2.trash
|
227
|
-
Element.trashed.should include(
|
214
|
+
Element.trashed.should include(trashed_element, trashed_element_2)
|
228
215
|
end
|
229
216
|
|
230
217
|
end
|
@@ -259,26 +246,19 @@ module Alchemy
|
|
259
246
|
end
|
260
247
|
|
261
248
|
describe "#all_contents_by_type" do
|
262
|
-
|
263
|
-
|
264
|
-
@element = FactoryGirl.create(:element)
|
265
|
-
@contents = @element.contents.select { |c| c.essence_type == 'Alchemy::EssenceText' }
|
266
|
-
end
|
249
|
+
let(:element) { FactoryGirl.create(:element, create_contents_after_create: true) }
|
250
|
+
let(:expected_contents) { element.contents.essence_texts }
|
267
251
|
|
268
252
|
context "with namespaced essence type" do
|
269
|
-
|
270
|
-
it
|
271
|
-
|
272
|
-
end
|
273
|
-
|
253
|
+
subject { element.all_contents_by_type('Alchemy::EssenceText') }
|
254
|
+
it { should_not be_empty }
|
255
|
+
it('should return the correct list of essences') { should == expected_contents }
|
274
256
|
end
|
275
257
|
|
276
258
|
context "without namespaced essence type" do
|
277
|
-
|
278
|
-
it
|
279
|
-
|
280
|
-
end
|
281
|
-
|
259
|
+
subject { element.all_contents_by_type('EssenceText') }
|
260
|
+
it { should_not be_empty }
|
261
|
+
it('should return the correct list of essences') { should == expected_contents }
|
282
262
|
end
|
283
263
|
|
284
264
|
end
|
@@ -400,5 +380,33 @@ module Alchemy
|
|
400
380
|
|
401
381
|
end
|
402
382
|
|
383
|
+
describe '#taggable?' do
|
384
|
+
|
385
|
+
context "description has 'taggable' key with true value" do
|
386
|
+
it "should return true" do
|
387
|
+
element = FactoryGirl.build(:element)
|
388
|
+
element.stub(:description).and_return({'name' => 'article', 'taggable' => true})
|
389
|
+
element.taggable?.should be_true
|
390
|
+
end
|
391
|
+
end
|
392
|
+
|
393
|
+
context "description has 'taggable' key with foo value" do
|
394
|
+
it "should return false" do
|
395
|
+
element = FactoryGirl.build(:element)
|
396
|
+
element.stub(:description).and_return({'name' => 'article', 'taggable' => 'foo'})
|
397
|
+
element.taggable?.should be_false
|
398
|
+
end
|
399
|
+
end
|
400
|
+
|
401
|
+
context "description has no 'taggable' key" do
|
402
|
+
it "should return false" do
|
403
|
+
element = FactoryGirl.build(:element)
|
404
|
+
element.stub(:description).and_return({'name' => 'article'})
|
405
|
+
element.taggable?.should be_false
|
406
|
+
end
|
407
|
+
end
|
408
|
+
|
409
|
+
end
|
410
|
+
|
403
411
|
end
|
404
412
|
end
|
@@ -1,11 +1,27 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
|
3
|
+
module Alchemy
|
4
|
+
describe EssencePicture do
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
it "should not store negative values for crop values" do
|
7
|
+
essence = EssencePicture.new(:crop_from => '-1x100', :crop_size => '-20x30')
|
8
|
+
essence.save!
|
9
|
+
essence.crop_from.should == "0x100"
|
10
|
+
essence.crop_size.should == "0x30"
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should not store float values for crop values" do
|
14
|
+
essence = EssencePicture.new(:crop_from => '0.05x104.5', :crop_size => '99.5x203.4')
|
15
|
+
essence.save!
|
16
|
+
essence.crop_from.should == "0x105"
|
17
|
+
essence.crop_size.should == "100x203"
|
18
|
+
end
|
10
19
|
|
20
|
+
it "should convert newlines in caption into <br/>s" do
|
21
|
+
essence = EssencePicture.new(:caption => "hello\nkitty")
|
22
|
+
essence.save!
|
23
|
+
essence.caption.should == "hello<br/>kitty"
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
11
27
|
end
|
data/spec/models/page_spec.rb
CHANGED
@@ -618,5 +618,33 @@ module Alchemy
|
|
618
618
|
|
619
619
|
end
|
620
620
|
|
621
|
+
describe '#taggable?' do
|
622
|
+
|
623
|
+
context "definition has 'taggable' key with true value" do
|
624
|
+
it "should return true" do
|
625
|
+
page = FactoryGirl.build(:page)
|
626
|
+
page.stub(:definition).and_return({'name' => 'standard', 'taggable' => true})
|
627
|
+
page.taggable?.should be_true
|
628
|
+
end
|
629
|
+
end
|
630
|
+
|
631
|
+
context "definition has 'taggable' key with foo value" do
|
632
|
+
it "should return false" do
|
633
|
+
page = FactoryGirl.build(:page)
|
634
|
+
page.stub(:definition).and_return({'name' => 'standard', 'taggable' => 'foo'})
|
635
|
+
page.taggable?.should be_false
|
636
|
+
end
|
637
|
+
end
|
638
|
+
|
639
|
+
context "definition has no 'taggable' key" do
|
640
|
+
it "should return false" do
|
641
|
+
page = FactoryGirl.build(:page)
|
642
|
+
page.stub(:definition).and_return({'name' => 'standard'})
|
643
|
+
page.taggable?.should be_false
|
644
|
+
end
|
645
|
+
end
|
646
|
+
|
647
|
+
end
|
648
|
+
|
621
649
|
end
|
622
650
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
begin
|
2
|
+
require 'simplecov'
|
3
|
+
SimpleCov.start('rails') do
|
4
|
+
add_filter "/spec/"
|
5
|
+
end
|
6
|
+
rescue LoadError => e
|
7
|
+
end
|
8
|
+
|
1
9
|
begin
|
2
10
|
require 'spork'
|
3
11
|
rescue LoadError => e
|
@@ -31,9 +39,6 @@ def configure
|
|
31
39
|
Capybara.default_driver = :rack_test
|
32
40
|
Capybara.default_selector = :css
|
33
41
|
Capybara.javascript_driver = :poltergeist
|
34
|
-
Capybara.register_driver(:rack_test_translated_header) do |app|
|
35
|
-
Capybara::RackTest::Driver.new(app, :headers => { 'HTTP_ACCEPT_LANGUAGE' => 'de' })
|
36
|
-
end
|
37
42
|
|
38
43
|
# Load support files
|
39
44
|
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
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: 2.4.
|
4
|
+
version: 2.4.rc1
|
5
5
|
prerelease: 4
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2012-11-
|
15
|
+
date: 2012-11-20 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: rails
|
@@ -286,6 +286,22 @@ dependencies:
|
|
286
286
|
- - ~>
|
287
287
|
- !ruby/object:Gem::Version
|
288
288
|
version: 0.1.3
|
289
|
+
- !ruby/object:Gem::Dependency
|
290
|
+
name: rails3-jquery-autocomplete
|
291
|
+
requirement: !ruby/object:Gem::Requirement
|
292
|
+
none: false
|
293
|
+
requirements:
|
294
|
+
- - ~>
|
295
|
+
- !ruby/object:Gem::Version
|
296
|
+
version: 1.0.10
|
297
|
+
type: :runtime
|
298
|
+
prerelease: false
|
299
|
+
version_requirements: !ruby/object:Gem::Requirement
|
300
|
+
none: false
|
301
|
+
requirements:
|
302
|
+
- - ~>
|
303
|
+
- !ruby/object:Gem::Version
|
304
|
+
version: 1.0.10
|
289
305
|
- !ruby/object:Gem::Dependency
|
290
306
|
name: bumpy
|
291
307
|
requirement: !ruby/object:Gem::Requirement
|
@@ -402,14 +418,9 @@ files:
|
|
402
418
|
- alchemy_cms.gemspec
|
403
419
|
- app/assets/images/alchemy/ajax_loader.gif
|
404
420
|
- app/assets/images/alchemy/alchemy-logo.png
|
405
|
-
- app/assets/images/alchemy/gui/navi-tab.png
|
406
|
-
- app/assets/images/alchemy/gui/shading_90.png
|
407
421
|
- app/assets/images/alchemy/gui/toggle.png
|
408
422
|
- app/assets/images/alchemy/icons.png
|
409
423
|
- app/assets/images/alchemy/image_loader.gif
|
410
|
-
- app/assets/images/alchemy/jquery-sb/select_arrow.gif
|
411
|
-
- app/assets/images/alchemy/jquery-sb/select_arrow_bg.gif
|
412
|
-
- app/assets/images/alchemy/jquery-sb/select_arrow_bg_hover.gif
|
413
424
|
- app/assets/images/alchemy/lupe.cur
|
414
425
|
- app/assets/images/alchemy/placeholder.png
|
415
426
|
- app/assets/images/alchemy/shading.png
|
@@ -418,6 +429,7 @@ files:
|
|
418
429
|
- app/assets/images/alchemy/ui-icons_666666_256x240.png
|
419
430
|
- app/assets/images/sassy-ie-overlay.png
|
420
431
|
- app/assets/javascripts/alchemy/alchemy.base.js
|
432
|
+
- app/assets/javascripts/alchemy/alchemy.browser.js.coffee
|
421
433
|
- app/assets/javascripts/alchemy/alchemy.buttons.js.coffee
|
422
434
|
- app/assets/javascripts/alchemy/alchemy.custom.js
|
423
435
|
- app/assets/javascripts/alchemy/alchemy.datepicker.js
|
@@ -437,7 +449,7 @@ files:
|
|
437
449
|
- app/assets/javascripts/alchemy/alchemy.menubar.js
|
438
450
|
- app/assets/javascripts/alchemy/alchemy.onload.js.coffee
|
439
451
|
- app/assets/javascripts/alchemy/alchemy.page_sorter.js
|
440
|
-
- app/assets/javascripts/alchemy/alchemy.preview.js
|
452
|
+
- app/assets/javascripts/alchemy/alchemy.preview.js.coffee
|
441
453
|
- app/assets/javascripts/alchemy/alchemy.preview_window.js
|
442
454
|
- app/assets/javascripts/alchemy/alchemy.routes.js.erb
|
443
455
|
- app/assets/javascripts/alchemy/alchemy.swf_upload.js
|
@@ -448,30 +460,34 @@ files:
|
|
448
460
|
- app/assets/javascripts/tiny_mce/plugins/alchemy_link/editor_plugin.js
|
449
461
|
- app/assets/javascripts/tiny_mce/plugins/alchemy_link/langs/de.js
|
450
462
|
- app/assets/javascripts/tiny_mce/plugins/alchemy_link/langs/en.js
|
451
|
-
- app/assets/stylesheets/alchemy/
|
452
|
-
- app/assets/stylesheets/alchemy/
|
453
|
-
- app/assets/stylesheets/alchemy/
|
454
|
-
- app/assets/stylesheets/alchemy/
|
455
|
-
- app/assets/stylesheets/alchemy/
|
456
|
-
- app/assets/stylesheets/alchemy/
|
457
|
-
- app/assets/stylesheets/alchemy/elements.
|
458
|
-
- app/assets/stylesheets/alchemy/errors.
|
459
|
-
- app/assets/stylesheets/alchemy/flash.
|
460
|
-
- app/assets/stylesheets/alchemy/form_elements.
|
461
|
-
- app/assets/stylesheets/alchemy/frame.
|
462
|
-
- app/assets/stylesheets/alchemy/icons.
|
463
|
-
- app/assets/stylesheets/alchemy/jquery-ui.
|
464
|
-
- app/assets/stylesheets/alchemy/login.
|
463
|
+
- app/assets/stylesheets/alchemy/admin.css.scss
|
464
|
+
- app/assets/stylesheets/alchemy/archive.scss
|
465
|
+
- app/assets/stylesheets/alchemy/base.scss
|
466
|
+
- app/assets/stylesheets/alchemy/custom.scss
|
467
|
+
- app/assets/stylesheets/alchemy/dashboard.scss
|
468
|
+
- app/assets/stylesheets/alchemy/defaults.scss
|
469
|
+
- app/assets/stylesheets/alchemy/elements.scss
|
470
|
+
- app/assets/stylesheets/alchemy/errors.scss
|
471
|
+
- app/assets/stylesheets/alchemy/flash.scss
|
472
|
+
- app/assets/stylesheets/alchemy/form_elements.scss
|
473
|
+
- app/assets/stylesheets/alchemy/frame.scss
|
474
|
+
- app/assets/stylesheets/alchemy/icons.scss
|
475
|
+
- app/assets/stylesheets/alchemy/jquery-ui.scss
|
476
|
+
- app/assets/stylesheets/alchemy/login.scss
|
465
477
|
- app/assets/stylesheets/alchemy/menubar.css.scss
|
466
|
-
- app/assets/stylesheets/alchemy/
|
467
|
-
- app/assets/stylesheets/alchemy/
|
468
|
-
- app/assets/stylesheets/alchemy/
|
469
|
-
- app/assets/stylesheets/alchemy/
|
478
|
+
- app/assets/stylesheets/alchemy/mixins.scss
|
479
|
+
- app/assets/stylesheets/alchemy/modules.scss
|
480
|
+
- app/assets/stylesheets/alchemy/notices.scss
|
481
|
+
- app/assets/stylesheets/alchemy/pagination.scss
|
482
|
+
- app/assets/stylesheets/alchemy/print.css.scss
|
483
|
+
- app/assets/stylesheets/alchemy/search.scss
|
484
|
+
- app/assets/stylesheets/alchemy/sitemap.scss
|
470
485
|
- app/assets/stylesheets/alchemy/standard_set.css
|
471
|
-
- app/assets/stylesheets/alchemy/tables.
|
486
|
+
- app/assets/stylesheets/alchemy/tables.scss
|
472
487
|
- app/assets/stylesheets/alchemy/tinymce_content.css.scss
|
473
488
|
- app/assets/stylesheets/alchemy/tinymce_dialog.css.scss
|
474
|
-
- app/assets/stylesheets/alchemy/upload.
|
489
|
+
- app/assets/stylesheets/alchemy/upload.scss
|
490
|
+
- app/assets/stylesheets/alchemy/variables.scss
|
475
491
|
- app/assets/stylesheets/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css.scss
|
476
492
|
- app/controllers/alchemy/admin/attachments_controller.rb
|
477
493
|
- app/controllers/alchemy/admin/base_controller.rb
|
@@ -479,16 +495,14 @@ files:
|
|
479
495
|
- app/controllers/alchemy/admin/contents_controller.rb
|
480
496
|
- app/controllers/alchemy/admin/dashboard_controller.rb
|
481
497
|
- app/controllers/alchemy/admin/elements_controller.rb
|
482
|
-
- app/controllers/alchemy/admin/essence_audios_controller.rb
|
483
498
|
- app/controllers/alchemy/admin/essence_files_controller.rb
|
484
|
-
- app/controllers/alchemy/admin/essence_flashes_controller.rb
|
485
499
|
- app/controllers/alchemy/admin/essence_pictures_controller.rb
|
486
|
-
- app/controllers/alchemy/admin/essence_videos_controller.rb
|
487
500
|
- app/controllers/alchemy/admin/languages_controller.rb
|
488
501
|
- app/controllers/alchemy/admin/layoutpages_controller.rb
|
489
502
|
- app/controllers/alchemy/admin/pages_controller.rb
|
490
503
|
- app/controllers/alchemy/admin/pictures_controller.rb
|
491
504
|
- app/controllers/alchemy/admin/resources_controller.rb
|
505
|
+
- app/controllers/alchemy/admin/tags_controller.rb
|
492
506
|
- app/controllers/alchemy/admin/trash_controller.rb
|
493
507
|
- app/controllers/alchemy/admin/users_controller.rb
|
494
508
|
- app/controllers/alchemy/attachments_controller.rb
|
@@ -506,6 +520,7 @@ files:
|
|
506
520
|
- app/helpers/alchemy/admin/pages_helper.rb
|
507
521
|
- app/helpers/alchemy/admin/pictures_helper.rb
|
508
522
|
- app/helpers/alchemy/base_helper.rb
|
523
|
+
- app/helpers/alchemy/elements_block_helper.rb
|
509
524
|
- app/helpers/alchemy/elements_helper.rb
|
510
525
|
- app/helpers/alchemy/essences_helper.rb
|
511
526
|
- app/helpers/alchemy/pages_helper.rb
|
@@ -519,23 +534,22 @@ files:
|
|
519
534
|
- app/models/alchemy/clipboard_spec.rb
|
520
535
|
- app/models/alchemy/content.rb
|
521
536
|
- app/models/alchemy/element.rb
|
522
|
-
- app/models/alchemy/essence_audio.rb
|
523
537
|
- app/models/alchemy/essence_boolean.rb
|
524
538
|
- app/models/alchemy/essence_date.rb
|
525
539
|
- app/models/alchemy/essence_file.rb
|
526
|
-
- app/models/alchemy/essence_flash.rb
|
527
540
|
- app/models/alchemy/essence_html.rb
|
541
|
+
- app/models/alchemy/essence_link.rb
|
528
542
|
- app/models/alchemy/essence_picture.rb
|
529
543
|
- app/models/alchemy/essence_richtext.rb
|
530
544
|
- app/models/alchemy/essence_select.rb
|
531
545
|
- app/models/alchemy/essence_text.rb
|
532
|
-
- app/models/alchemy/essence_video.rb
|
533
546
|
- app/models/alchemy/folded_page.rb
|
534
547
|
- app/models/alchemy/language.rb
|
535
548
|
- app/models/alchemy/language/code.rb
|
536
549
|
- app/models/alchemy/message.rb
|
537
550
|
- app/models/alchemy/page.rb
|
538
551
|
- app/models/alchemy/picture.rb
|
552
|
+
- app/models/alchemy/tag.rb
|
539
553
|
- app/models/alchemy/user.rb
|
540
554
|
- app/models/alchemy/user_session.rb
|
541
555
|
- app/sweepers/alchemy/content_sweeper.rb
|
@@ -613,6 +627,7 @@ files:
|
|
613
627
|
- app/views/alchemy/admin/pages/sort.js.erb
|
614
628
|
- app/views/alchemy/admin/pages/unlock.js.erb
|
615
629
|
- app/views/alchemy/admin/pages/update.js.erb
|
630
|
+
- app/views/alchemy/admin/partials/_autocomplete_tag_list.html.erb
|
616
631
|
- app/views/alchemy/admin/partials/_flash.html.erb
|
617
632
|
- app/views/alchemy/admin/partials/_flash_notices.html.erb
|
618
633
|
- app/views/alchemy/admin/partials/_flash_upload.html.erb
|
@@ -647,6 +662,11 @@ files:
|
|
647
662
|
- app/views/alchemy/admin/resources/edit.html.erb
|
648
663
|
- app/views/alchemy/admin/resources/index.html.erb
|
649
664
|
- app/views/alchemy/admin/resources/new.html.erb
|
665
|
+
- app/views/alchemy/admin/tags/_radio_tag.html.erb
|
666
|
+
- app/views/alchemy/admin/tags/_tag.html.erb
|
667
|
+
- app/views/alchemy/admin/tags/edit.html.erb
|
668
|
+
- app/views/alchemy/admin/tags/index.html.erb
|
669
|
+
- app/views/alchemy/admin/tags/new.html.erb
|
650
670
|
- app/views/alchemy/admin/trash/clear.js.coffee
|
651
671
|
- app/views/alchemy/admin/trash/index.html.erb
|
652
672
|
- app/views/alchemy/admin/users/_table.html.erb
|
@@ -702,18 +722,16 @@ files:
|
|
702
722
|
- app/views/alchemy/elements/_view_not_found.html.erb
|
703
723
|
- app/views/alchemy/elements/show.html.erb
|
704
724
|
- app/views/alchemy/elements/show.js.erb
|
705
|
-
- app/views/alchemy/essences/_essence_audio_editor.html.erb
|
706
|
-
- app/views/alchemy/essences/_essence_audio_view.html.erb
|
707
725
|
- app/views/alchemy/essences/_essence_boolean_editor.html.erb
|
708
726
|
- app/views/alchemy/essences/_essence_boolean_view.html.erb
|
709
727
|
- app/views/alchemy/essences/_essence_date_editor.html.erb
|
710
728
|
- app/views/alchemy/essences/_essence_date_view.html.erb
|
711
729
|
- app/views/alchemy/essences/_essence_file_editor.html.erb
|
712
730
|
- app/views/alchemy/essences/_essence_file_view.html.erb
|
713
|
-
- app/views/alchemy/essences/_essence_flash_editor.html.erb
|
714
|
-
- app/views/alchemy/essences/_essence_flash_view.html.erb
|
715
731
|
- app/views/alchemy/essences/_essence_html_editor.html.erb
|
716
732
|
- app/views/alchemy/essences/_essence_html_view.html.erb
|
733
|
+
- app/views/alchemy/essences/_essence_link_editor.html.erb
|
734
|
+
- app/views/alchemy/essences/_essence_link_view.html.erb
|
717
735
|
- app/views/alchemy/essences/_essence_picture_editor.html.erb
|
718
736
|
- app/views/alchemy/essences/_essence_picture_tools.html.erb
|
719
737
|
- app/views/alchemy/essences/_essence_picture_view.html.erb
|
@@ -723,8 +741,7 @@ files:
|
|
723
741
|
- app/views/alchemy/essences/_essence_select_view.html.erb
|
724
742
|
- app/views/alchemy/essences/_essence_text_editor.html.erb
|
725
743
|
- app/views/alchemy/essences/_essence_text_view.html.erb
|
726
|
-
- app/views/alchemy/essences/
|
727
|
-
- app/views/alchemy/essences/_essence_video_view.html.erb
|
744
|
+
- app/views/alchemy/essences/_linkable_essence_tools.html.erb
|
728
745
|
- app/views/alchemy/messages/contact_form_mail.text.erb
|
729
746
|
- app/views/alchemy/messages/new.html.erb
|
730
747
|
- app/views/alchemy/navigation/_image_link.html.erb
|
@@ -780,6 +797,10 @@ files:
|
|
780
797
|
- config/locales/alchemy.en.yml
|
781
798
|
- config/routes.rb
|
782
799
|
- db/migrate/20121026100815_alchemy_two_point_three.rb
|
800
|
+
- db/migrate/20121113115120_create_alchemy_essence_links.rb
|
801
|
+
- db/migrate/20121115100736_add_cached_tag_list_to_elements_pages_and_users.rb
|
802
|
+
- db/migrate/20121116140636_add_cached_tag_list_to_alchemy_attachments.rb
|
803
|
+
- db/migrate/20121116141016_change_alchemy_pictures_tag_list_column.rb
|
783
804
|
- lib/alchemy/auth_engine.rb
|
784
805
|
- lib/alchemy/authentication_helpers.rb
|
785
806
|
- lib/alchemy/capistrano.rb
|
@@ -802,16 +823,23 @@ files:
|
|
802
823
|
- lib/extensions/array.rb
|
803
824
|
- lib/extensions/hash.rb
|
804
825
|
- lib/middleware/flash_session_cookie.rb
|
826
|
+
- lib/rails/generators/alchemy/base.rb
|
805
827
|
- lib/rails/generators/alchemy/deploy_script/deploy_script_generator.rb
|
806
828
|
- lib/rails/generators/alchemy/deploy_script/templates/deploy.rb.tt
|
807
829
|
- lib/rails/generators/alchemy/elements/elements_generator.rb
|
808
830
|
- lib/rails/generators/alchemy/elements/templates/editor.html.erb
|
831
|
+
- lib/rails/generators/alchemy/elements/templates/editor.html.haml
|
832
|
+
- lib/rails/generators/alchemy/elements/templates/editor.html.slim
|
809
833
|
- lib/rails/generators/alchemy/elements/templates/view.html.erb
|
834
|
+
- lib/rails/generators/alchemy/elements/templates/view.html.haml
|
835
|
+
- lib/rails/generators/alchemy/elements/templates/view.html.slim
|
810
836
|
- lib/rails/generators/alchemy/essence/essence_generator.rb
|
811
837
|
- lib/rails/generators/alchemy/essence/templates/editor.html.erb
|
812
838
|
- lib/rails/generators/alchemy/essence/templates/view.html.erb
|
813
839
|
- lib/rails/generators/alchemy/page_layouts/page_layouts_generator.rb
|
814
840
|
- lib/rails/generators/alchemy/page_layouts/templates/layout.html.erb
|
841
|
+
- lib/rails/generators/alchemy/page_layouts/templates/layout.html.haml
|
842
|
+
- lib/rails/generators/alchemy/page_layouts/templates/layout.html.slim
|
815
843
|
- lib/rails/generators/alchemy/plugin/files/translation.pot
|
816
844
|
- lib/rails/generators/alchemy/plugin/files/translation_de.po
|
817
845
|
- lib/rails/generators/alchemy/plugin/files/translation_en.po
|
@@ -856,6 +884,7 @@ files:
|
|
856
884
|
- spec/dummy/app/mailers/.gitkeep
|
857
885
|
- spec/dummy/app/models/event.rb
|
858
886
|
- spec/dummy/app/views/layouts/.gitkeep
|
887
|
+
- spec/dummy/app/views/layouts/application.html.erb
|
859
888
|
- spec/dummy/config.ru
|
860
889
|
- spec/dummy/config/application.rb
|
861
890
|
- spec/dummy/config/authorization_rules.rb
|
@@ -874,6 +903,10 @@ files:
|
|
874
903
|
- spec/dummy/config/routes.rb
|
875
904
|
- spec/dummy/db/migrate/20121026100815_alchemy_two_point_three.rb
|
876
905
|
- spec/dummy/db/migrate/20121026104128_create_events.rb
|
906
|
+
- spec/dummy/db/migrate/20121113115120_create_alchemy_essence_links.rb
|
907
|
+
- spec/dummy/db/migrate/20121115100736_add_cached_tag_list_to_elements_pages_and_users.rb
|
908
|
+
- spec/dummy/db/migrate/20121116140636_add_cached_tag_list_to_alchemy_attachments.rb
|
909
|
+
- spec/dummy/db/migrate/20121116141016_change_alchemy_pictures_tag_list_column.rb
|
877
910
|
- spec/dummy/db/schema.rb
|
878
911
|
- spec/dummy/lib/assets/.gitkeep
|
879
912
|
- spec/dummy/public/404.html
|
@@ -889,6 +922,7 @@ files:
|
|
889
922
|
- spec/helpers/admin/elements_helper_spec.rb
|
890
923
|
- spec/helpers/admin/essences_helper_spec.rb
|
891
924
|
- spec/helpers/base_helper_spec.rb
|
925
|
+
- spec/helpers/elements_block_helper_spec.rb
|
892
926
|
- spec/helpers/elements_helper_spec.rb
|
893
927
|
- spec/helpers/essences_helper_spec.rb
|
894
928
|
- spec/helpers/pages_helper_spec.rb
|
@@ -933,6 +967,7 @@ files:
|
|
933
967
|
- spec/support/alchemy/controller_hacks.rb
|
934
968
|
- spec/support/alchemy/specs_helpers.rb
|
935
969
|
- spec/support/alchemy/test_tweaks.rb
|
970
|
+
- spec/support/ci/install_phantomjs
|
936
971
|
- spec/support/image.png
|
937
972
|
- spec/url_helpers_spec.rb
|
938
973
|
- vendor/assets/images/Jcrop.gif
|
@@ -1090,6 +1125,7 @@ test_files:
|
|
1090
1125
|
- spec/dummy/app/mailers/.gitkeep
|
1091
1126
|
- spec/dummy/app/models/event.rb
|
1092
1127
|
- spec/dummy/app/views/layouts/.gitkeep
|
1128
|
+
- spec/dummy/app/views/layouts/application.html.erb
|
1093
1129
|
- spec/dummy/config.ru
|
1094
1130
|
- spec/dummy/config/application.rb
|
1095
1131
|
- spec/dummy/config/authorization_rules.rb
|
@@ -1108,6 +1144,10 @@ test_files:
|
|
1108
1144
|
- spec/dummy/config/routes.rb
|
1109
1145
|
- spec/dummy/db/migrate/20121026100815_alchemy_two_point_three.rb
|
1110
1146
|
- spec/dummy/db/migrate/20121026104128_create_events.rb
|
1147
|
+
- spec/dummy/db/migrate/20121113115120_create_alchemy_essence_links.rb
|
1148
|
+
- spec/dummy/db/migrate/20121115100736_add_cached_tag_list_to_elements_pages_and_users.rb
|
1149
|
+
- spec/dummy/db/migrate/20121116140636_add_cached_tag_list_to_alchemy_attachments.rb
|
1150
|
+
- spec/dummy/db/migrate/20121116141016_change_alchemy_pictures_tag_list_column.rb
|
1111
1151
|
- spec/dummy/db/schema.rb
|
1112
1152
|
- spec/dummy/lib/assets/.gitkeep
|
1113
1153
|
- spec/dummy/public/404.html
|
@@ -1123,6 +1163,7 @@ test_files:
|
|
1123
1163
|
- spec/helpers/admin/elements_helper_spec.rb
|
1124
1164
|
- spec/helpers/admin/essences_helper_spec.rb
|
1125
1165
|
- spec/helpers/base_helper_spec.rb
|
1166
|
+
- spec/helpers/elements_block_helper_spec.rb
|
1126
1167
|
- spec/helpers/elements_helper_spec.rb
|
1127
1168
|
- spec/helpers/essences_helper_spec.rb
|
1128
1169
|
- spec/helpers/pages_helper_spec.rb
|
@@ -1167,6 +1208,7 @@ test_files:
|
|
1167
1208
|
- spec/support/alchemy/controller_hacks.rb
|
1168
1209
|
- spec/support/alchemy/specs_helpers.rb
|
1169
1210
|
- spec/support/alchemy/test_tweaks.rb
|
1211
|
+
- spec/support/ci/install_phantomjs
|
1170
1212
|
- spec/support/image.png
|
1171
1213
|
- spec/url_helpers_spec.rb
|
1172
1214
|
has_rdoc:
|