alchemy_cms 2.4.beta2 → 2.4.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. data/.gitignore +2 -1
  2. data/.travis.yml +3 -1
  3. data/.yardopts +1 -1
  4. data/Gemfile +2 -1
  5. data/alchemy_cms.gemspec +18 -17
  6. data/app/assets/images/alchemy/ajax_loader.gif +0 -0
  7. data/app/assets/images/alchemy/alchemy-logo.png +0 -0
  8. data/app/assets/images/alchemy/icons.png +0 -0
  9. data/app/assets/images/alchemy/image_loader.gif +0 -0
  10. data/app/assets/images/alchemy/placeholder.png +0 -0
  11. data/app/assets/images/alchemy/shading.png +0 -0
  12. data/app/assets/images/alchemy/swfupload/browse_button.png +0 -0
  13. data/app/assets/images/alchemy/tabs.gif +0 -0
  14. data/app/assets/images/alchemy/ui-icons_666666_256x240.png +0 -0
  15. data/app/assets/images/sassy-ie-overlay.png +0 -0
  16. data/app/assets/javascripts/alchemy/alchemy.base.js +1 -3
  17. data/app/assets/javascripts/alchemy/alchemy.browser.js.coffee +28 -0
  18. data/app/assets/javascripts/alchemy/alchemy.jquery_loader.js +2 -2
  19. data/app/assets/javascripts/alchemy/alchemy.js +2 -0
  20. data/app/assets/javascripts/alchemy/alchemy.link_overlay.js.coffee +79 -47
  21. data/app/assets/javascripts/alchemy/alchemy.menubar.js +12 -4
  22. data/app/assets/javascripts/alchemy/alchemy.onload.js.coffee +1 -1
  23. data/app/assets/javascripts/alchemy/alchemy.preview.js.coffee +103 -0
  24. data/app/assets/javascripts/alchemy/alchemy.swf_upload.js +1 -1
  25. data/app/assets/javascripts/alchemy/alchemy.uploader.js +4 -6
  26. data/app/assets/javascripts/alchemy/preview.js +1 -0
  27. data/app/assets/stylesheets/alchemy/admin.css.scss +25 -0
  28. data/app/assets/stylesheets/alchemy/{archive.css.scss → archive.scss} +0 -2
  29. data/app/assets/stylesheets/alchemy/{base.css.scss → base.scss} +1 -57
  30. data/app/assets/stylesheets/alchemy/{custom.css → custom.scss} +0 -0
  31. data/app/assets/stylesheets/alchemy/{dashboard.css.scss → dashboard.scss} +0 -2
  32. data/app/assets/stylesheets/alchemy/defaults.scss +5 -0
  33. data/app/assets/stylesheets/alchemy/{elements.css.scss → elements.scss} +24 -37
  34. data/app/assets/stylesheets/alchemy/{errors.css.scss → errors.scss} +0 -2
  35. data/app/assets/stylesheets/alchemy/{flash.css.scss → flash.scss} +0 -2
  36. data/app/assets/stylesheets/alchemy/{form_elements.css.scss → form_elements.scss} +39 -12
  37. data/app/assets/stylesheets/alchemy/{frame.css.scss → frame.scss} +0 -2
  38. data/app/assets/stylesheets/alchemy/{icons.css.scss → icons.scss} +20 -2
  39. data/app/assets/stylesheets/alchemy/{jquery-ui.alchemy.css.scss → jquery-ui.scss} +6 -3
  40. data/app/assets/stylesheets/alchemy/{login.css.scss → login.scss} +3 -3
  41. data/app/assets/stylesheets/alchemy/menubar.css.scss +0 -1
  42. data/app/assets/stylesheets/alchemy/{_defaults.scss → mixins.scss} +2 -39
  43. data/app/assets/stylesheets/alchemy/{modules.css.scss → modules.scss} +4 -2
  44. data/app/assets/stylesheets/alchemy/notices.scss +51 -0
  45. data/app/assets/stylesheets/alchemy/{pagination.css.scss → pagination.scss} +0 -2
  46. data/app/assets/stylesheets/alchemy/{print.css → print.css.scss} +3 -3
  47. data/app/assets/stylesheets/alchemy/search.scss +63 -0
  48. data/app/assets/stylesheets/alchemy/{sitemap.css.scss → sitemap.scss} +1 -2
  49. data/app/assets/stylesheets/alchemy/{tables.css.scss → tables.scss} +16 -3
  50. data/app/assets/stylesheets/alchemy/tinymce_content.css.scss +3 -0
  51. data/app/assets/stylesheets/alchemy/tinymce_dialog.css.scss +3 -0
  52. data/app/assets/stylesheets/alchemy/{upload.css.scss → upload.scss} +0 -2
  53. data/app/assets/stylesheets/alchemy/variables.scss +33 -0
  54. data/app/controllers/alchemy/admin/elements_controller.rb +1 -2
  55. data/app/controllers/alchemy/admin/tags_controller.rb +64 -0
  56. data/app/controllers/alchemy/base_controller.rb +8 -23
  57. data/app/controllers/alchemy/pages_controller.rb +5 -18
  58. data/app/helpers/alchemy/admin/base_helper.rb +1 -1
  59. data/app/helpers/alchemy/admin/elements_helper.rb +1 -0
  60. data/app/helpers/alchemy/elements_block_helper.rb +162 -0
  61. data/app/helpers/alchemy/elements_helper.rb +41 -3
  62. data/app/helpers/alchemy/pages_helper.rb +2 -1
  63. data/app/models/alchemy/attachment.rb +2 -1
  64. data/app/models/alchemy/element.rb +13 -10
  65. data/app/models/alchemy/essence_link.rb +11 -0
  66. data/app/models/alchemy/essence_picture.rb +15 -4
  67. data/app/models/alchemy/page.rb +23 -25
  68. data/app/models/alchemy/picture.rb +2 -2
  69. data/app/models/alchemy/tag.rb +16 -0
  70. data/app/models/alchemy/user.rb +3 -1
  71. data/app/views/alchemy/admin/attachments/_attachment.html.erb +12 -12
  72. data/app/views/alchemy/admin/attachments/edit.html.erb +10 -4
  73. data/app/views/alchemy/admin/elements/_element.html.erb +10 -13
  74. data/app/views/alchemy/admin/elements/_element_foot.html.erb +1 -1
  75. data/app/views/alchemy/admin/essence_files/edit.html.erb +12 -76
  76. data/app/views/alchemy/admin/essence_pictures/crop.html.erb +9 -4
  77. data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +1 -1
  78. data/app/views/alchemy/admin/layoutpages/index.html.erb +1 -1
  79. data/app/views/alchemy/admin/pages/_external_link.html.erb +9 -4
  80. data/app/views/alchemy/admin/pages/configure.html.erb +22 -12
  81. data/app/views/alchemy/admin/pages/edit.html.erb +40 -40
  82. data/app/views/alchemy/admin/partials/_autocomplete_tag_list.html.erb +9 -0
  83. data/app/views/alchemy/admin/pictures/edit.html.erb +1 -1
  84. data/app/views/alchemy/admin/pictures/edit_multiple.html.erb +11 -2
  85. data/app/views/alchemy/admin/tags/_radio_tag.html.erb +6 -0
  86. data/app/views/alchemy/admin/tags/_tag.html.erb +29 -0
  87. data/app/views/alchemy/admin/tags/edit.html.erb +41 -0
  88. data/app/views/alchemy/admin/tags/index.html.erb +46 -0
  89. data/app/views/alchemy/admin/tags/new.html.erb +16 -0
  90. data/app/views/alchemy/admin/users/_table.html.erb +18 -10
  91. data/app/views/alchemy/admin/users/_user.html.erb +2 -1
  92. data/app/views/alchemy/admin/users/index.html.erb +2 -1
  93. data/app/views/alchemy/elements/_article_view.html.erb +1 -1
  94. data/app/views/alchemy/essences/_essence_link_editor.html.erb +23 -0
  95. data/app/views/alchemy/essences/_essence_link_view.html.erb +0 -0
  96. data/app/views/alchemy/essences/_essence_picture_tools.html.erb +1 -1
  97. data/app/views/alchemy/essences/_essence_text_editor.html.erb +1 -9
  98. data/app/views/alchemy/essences/_linkable_essence_tools.html.erb +19 -0
  99. data/app/views/layouts/alchemy/admin.html.erb +1 -1
  100. data/config/alchemy/elements.yml +2 -0
  101. data/config/alchemy/modules.yml +12 -0
  102. data/config/alchemy/page_layouts.yml +2 -0
  103. data/config/authorization_rules.rb +2 -0
  104. data/config/locales/alchemy.de.yml +36 -5
  105. data/config/locales/alchemy.en.yml +3 -0
  106. data/config/routes.rb +6 -4
  107. data/db/migrate/20121026100815_alchemy_two_point_three.rb +0 -36
  108. data/db/migrate/20121113115120_create_alchemy_essence_links.rb +13 -0
  109. data/db/migrate/20121115100736_add_cached_tag_list_to_elements_pages_and_users.rb +7 -0
  110. data/db/migrate/20121116140636_add_cached_tag_list_to_alchemy_attachments.rb +5 -0
  111. data/db/migrate/20121116141016_change_alchemy_pictures_tag_list_column.rb +9 -0
  112. data/lib/alchemy/engine.rb +1 -1
  113. data/lib/alchemy/resource.rb +1 -1
  114. data/lib/alchemy/resources_helper.rb +1 -1
  115. data/lib/alchemy/upgrader.rb +17 -0
  116. data/lib/alchemy/version.rb +1 -1
  117. data/lib/alchemy_cms.rb +1 -0
  118. data/lib/rails/generators/alchemy/base.rb +41 -0
  119. data/lib/rails/generators/alchemy/deploy_script/templates/deploy.rb.tt +10 -3
  120. data/lib/rails/generators/alchemy/elements/elements_generator.rb +6 -14
  121. data/lib/rails/generators/alchemy/elements/templates/editor.html.erb +8 -6
  122. data/lib/rails/generators/alchemy/elements/templates/editor.html.haml +13 -0
  123. data/lib/rails/generators/alchemy/elements/templates/editor.html.slim +13 -0
  124. data/lib/rails/generators/alchemy/elements/templates/view.html.erb +4 -4
  125. data/lib/rails/generators/alchemy/elements/templates/view.html.haml +15 -0
  126. data/lib/rails/generators/alchemy/elements/templates/view.html.slim +15 -0
  127. data/lib/rails/generators/alchemy/essence/essence_generator.rb +1 -1
  128. data/lib/rails/generators/alchemy/essence/templates/editor.html.erb +2 -3
  129. data/lib/rails/generators/alchemy/page_layouts/page_layouts_generator.rb +4 -13
  130. data/lib/rails/generators/alchemy/page_layouts/templates/layout.html.haml +1 -0
  131. data/lib/rails/generators/alchemy/page_layouts/templates/layout.html.slim +1 -0
  132. data/spec/controllers/pages_controller_spec.rb +41 -34
  133. data/spec/dummy/app/views/layouts/application.html.erb +51 -0
  134. data/spec/dummy/db/migrate/20121026100815_alchemy_two_point_three.rb +0 -36
  135. data/spec/dummy/db/migrate/20121113115120_create_alchemy_essence_links.rb +13 -0
  136. data/spec/dummy/db/migrate/20121115100736_add_cached_tag_list_to_elements_pages_and_users.rb +7 -0
  137. data/spec/dummy/db/migrate/20121116140636_add_cached_tag_list_to_alchemy_attachments.rb +5 -0
  138. data/spec/dummy/db/migrate/20121116141016_change_alchemy_pictures_tag_list_column.rb +9 -0
  139. data/spec/dummy/db/schema.rb +24 -45
  140. data/spec/helpers/elements_block_helper_spec.rb +135 -0
  141. data/spec/helpers/elements_helper_spec.rb +43 -5
  142. data/spec/integration/pages_controller_spec.rb +22 -18
  143. data/spec/integration/translation_integration_spec.rb +0 -15
  144. data/spec/models/element_spec.rb +44 -36
  145. data/spec/models/essence_picture_spec.rb +22 -6
  146. data/spec/models/page_spec.rb +28 -0
  147. data/spec/spec_helper.rb +8 -3
  148. data/spec/support/ci/install_phantomjs +6 -0
  149. metadata +82 -40
  150. data/app/assets/images/alchemy/gui/navi-tab.png +0 -0
  151. data/app/assets/images/alchemy/gui/shading_90.png +0 -0
  152. data/app/assets/images/alchemy/jquery-sb/select_arrow.gif +0 -0
  153. data/app/assets/images/alchemy/jquery-sb/select_arrow_bg.gif +0 -0
  154. data/app/assets/images/alchemy/jquery-sb/select_arrow_bg_hover.gif +0 -0
  155. data/app/assets/javascripts/alchemy/alchemy.preview.js +0 -98
  156. data/app/assets/stylesheets/alchemy/alchemy.css +0 -21
  157. data/app/controllers/alchemy/admin/essence_audios_controller.rb +0 -12
  158. data/app/controllers/alchemy/admin/essence_flashes_controller.rb +0 -12
  159. data/app/controllers/alchemy/admin/essence_videos_controller.rb +0 -12
  160. data/app/models/alchemy/essence_audio.rb +0 -14
  161. data/app/models/alchemy/essence_flash.rb +0 -12
  162. data/app/models/alchemy/essence_video.rb +0 -20
  163. data/app/views/alchemy/essences/_essence_audio_editor.html.erb +0 -1
  164. data/app/views/alchemy/essences/_essence_audio_view.html.erb +0 -33
  165. data/app/views/alchemy/essences/_essence_flash_editor.html.erb +0 -1
  166. data/app/views/alchemy/essences/_essence_flash_view.html.erb +0 -26
  167. data/app/views/alchemy/essences/_essence_video_editor.html.erb +0 -1
  168. 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
- it "should redirect to url with nested language code if no language params are given" do
117
- visit "/alchemy/#{public_page_1.urlname}"
118
- page.current_path.should == "/alchemy/#{public_page_1.language_code}/#{public_page_1.urlname}"
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 "should redirect to public child" do
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 "if requested page is unpublished" do
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
- it "with nested language code, if requested page is unpublished and url has no language code" do
135
- visit '/alchemy/not-public'
136
- page.current_path.should == "/alchemy/#{default_language.code}/public-child"
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
- it "should redirect to pages url with default language, if requested url is index url" do
142
- visit '/alchemy/'
143
- page.current_path.should == "/alchemy/#{default_language.code}/home"
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
- it "should redirect to pages url with default language, if requested url is only the language code" do
147
- visit "/alchemy/#{default_language.code}"
148
- page.current_path.should == "/alchemy/#{default_language.code}/home"
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
@@ -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
- before(:each) do
204
- @element = FactoryGirl.create(:element, :page_id => 1, :cell_id => 1)
205
- @element.trash
206
- end
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(@element, trashed_element_2)
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
- before(:each) do
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 "should return content by passing a essence type" do
271
- @element.all_contents_by_type('Alchemy::EssenceText').should == @contents
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 "should return content by passing a essence type" do
279
- @element.all_contents_by_type('EssenceText').should == @contents
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
- describe Alchemy::EssencePicture do
3
+ module Alchemy
4
+ describe EssencePicture do
4
5
 
5
- it "should not store negative values for crop_from" do
6
- essence = Alchemy::EssencePicture.new(:crop_from => '-1x100')
7
- essence.save!
8
- essence.crop_from.should == "0x100"
9
- end
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
@@ -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 }
@@ -0,0 +1,6 @@
1
+ #!/bin/bash
2
+
3
+ version=phantomjs-1.7.0-linux-i686
4
+ wget http://phantomjs.googlecode.com/files/$version.tar.bz2
5
+ tar xjf $version.tar.bz2
6
+ mv $version phantomjs
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.beta2
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-08 00:00:00.000000000 Z
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/_defaults.scss
452
- - app/assets/stylesheets/alchemy/alchemy.css
453
- - app/assets/stylesheets/alchemy/archive.css.scss
454
- - app/assets/stylesheets/alchemy/base.css.scss
455
- - app/assets/stylesheets/alchemy/custom.css
456
- - app/assets/stylesheets/alchemy/dashboard.css.scss
457
- - app/assets/stylesheets/alchemy/elements.css.scss
458
- - app/assets/stylesheets/alchemy/errors.css.scss
459
- - app/assets/stylesheets/alchemy/flash.css.scss
460
- - app/assets/stylesheets/alchemy/form_elements.css.scss
461
- - app/assets/stylesheets/alchemy/frame.css.scss
462
- - app/assets/stylesheets/alchemy/icons.css.scss
463
- - app/assets/stylesheets/alchemy/jquery-ui.alchemy.css.scss
464
- - app/assets/stylesheets/alchemy/login.css.scss
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/modules.css.scss
467
- - app/assets/stylesheets/alchemy/pagination.css.scss
468
- - app/assets/stylesheets/alchemy/print.css
469
- - app/assets/stylesheets/alchemy/sitemap.css.scss
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.css.scss
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.css.scss
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/_essence_video_editor.html.erb
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: