alchemy_cms 2.0.pre2 → 2.0.pre3

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 (195) hide show
  1. data/.gitignore +5 -1
  2. data/Gemfile +3 -0
  3. data/Rakefile +16 -14
  4. data/{alchemy.gemspec → alchemy_cms.gemspec} +1 -1
  5. data/app/models/message.rb +1 -1
  6. data/app/views/elements/_searchresult_view.html.erb +1 -1
  7. data/config/initializers/fast_gettext.rb +1 -1
  8. data/config/routes.rb +3 -0
  9. data/lib/alchemy/version.rb +1 -1
  10. data/lib/{alchemy.rb → alchemy_cms.rb} +0 -0
  11. data/lib/rails/generators/alchemy/scaffold/scaffold_generator.rb +2 -2
  12. data/lib/rails/templates/alchemy.rb +1 -1
  13. data/spec/alchemy_spec.rb +7 -0
  14. data/spec/config_spec.rb +7 -0
  15. data/spec/dummy/Rakefile +7 -0
  16. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  17. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  18. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  19. data/spec/dummy/config.ru +4 -0
  20. data/spec/dummy/config/alchemy/config.yml +199 -0
  21. data/spec/dummy/config/alchemy/elements.yml +91 -0
  22. data/spec/dummy/config/alchemy/page_layouts.yml +29 -0
  23. data/spec/dummy/config/application.rb +45 -0
  24. data/spec/dummy/config/boot.rb +10 -0
  25. data/spec/dummy/config/database.yml +22 -0
  26. data/spec/dummy/config/environment.rb +5 -0
  27. data/spec/dummy/config/environments/development.rb +26 -0
  28. data/spec/dummy/config/environments/production.rb +49 -0
  29. data/spec/dummy/config/environments/test.rb +35 -0
  30. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  31. data/spec/dummy/config/initializers/inflections.rb +10 -0
  32. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  33. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  34. data/spec/dummy/config/initializers/session_store.rb +8 -0
  35. data/spec/dummy/config/locales/en.yml +5 -0
  36. data/spec/dummy/config/routes.rb +58 -0
  37. data/spec/dummy/db/schema.rb +267 -0
  38. data/spec/dummy/log/production.log +0 -0
  39. data/spec/dummy/log/server.log +0 -0
  40. data/spec/dummy/public/404.html +26 -0
  41. data/spec/dummy/public/422.html +26 -0
  42. data/spec/dummy/public/500.html +26 -0
  43. data/spec/dummy/public/favicon.ico +0 -0
  44. data/spec/dummy/public/images/alchemy/ajax_loader.gif +0 -0
  45. data/spec/dummy/public/images/alchemy/alchemy-logo.png +0 -0
  46. data/spec/dummy/public/images/alchemy/flags.png +0 -0
  47. data/spec/dummy/public/images/alchemy/gui/navi-tab.png +0 -0
  48. data/spec/dummy/public/images/alchemy/gui/shading.png +0 -0
  49. data/spec/dummy/public/images/alchemy/gui/shading_90.png +0 -0
  50. data/spec/dummy/public/images/alchemy/gui/toggle.png +0 -0
  51. data/spec/dummy/public/images/alchemy/icons.png +0 -0
  52. data/spec/dummy/public/images/alchemy/jquery-sb/select_arrow.gif +0 -0
  53. data/spec/dummy/public/images/alchemy/jquery-sb/select_arrow_bg.gif +0 -0
  54. data/spec/dummy/public/images/alchemy/jquery-sb/select_arrow_bg_hover.gif +0 -0
  55. data/spec/dummy/public/images/alchemy/jquery-ui/ui-icons_666666_256x240.png +0 -0
  56. data/spec/dummy/public/images/alchemy/placeholder.png +0 -0
  57. data/spec/dummy/public/images/alchemy/swfupload/browse_button.png +0 -0
  58. data/spec/dummy/public/javascripts/alchemy/alchemy.element_editor_selector.js +88 -0
  59. data/spec/dummy/public/javascripts/alchemy/alchemy.growler.js +44 -0
  60. data/spec/dummy/public/javascripts/alchemy/alchemy.image_cropper.js +56 -0
  61. data/spec/dummy/public/javascripts/alchemy/alchemy.js +892 -0
  62. data/spec/dummy/public/javascripts/alchemy/alchemy.link_overlay.js +221 -0
  63. data/spec/dummy/public/javascripts/alchemy/alchemy.page_sorter.js +42 -0
  64. data/spec/dummy/public/javascripts/alchemy/alchemy.preview.js +145 -0
  65. data/spec/dummy/public/javascripts/alchemy/jquery-ui.js +428 -0
  66. data/spec/dummy/public/javascripts/alchemy/jquery.Jcrop.min.js +246 -0
  67. data/spec/dummy/public/javascripts/alchemy/jquery.dialogextend.min.js +8 -0
  68. data/spec/dummy/public/javascripts/alchemy/jquery.in-place-edit.js +171 -0
  69. data/spec/dummy/public/javascripts/alchemy/jquery.js +18 -0
  70. data/spec/dummy/public/javascripts/alchemy/jquery.rails.js +315 -0
  71. data/spec/dummy/public/javascripts/alchemy/jquery.sb.min.js +14 -0
  72. data/spec/dummy/public/javascripts/alchemy/jquery.scrollTo-1.4.2-min.js +11 -0
  73. data/spec/dummy/public/javascripts/alchemy/jquery.ui.nestedSortable.js +291 -0
  74. data/spec/dummy/public/javascripts/alchemy/jquery.ui.tabspaging.js +281 -0
  75. data/spec/dummy/public/javascripts/alchemy/swfupload/fileprogress.js +203 -0
  76. data/spec/dummy/public/javascripts/alchemy/swfupload/handlers.js +171 -0
  77. data/spec/dummy/public/javascripts/alchemy/swfupload/queue.js +98 -0
  78. data/spec/dummy/public/javascripts/alchemy/swfupload/swfupload.js +980 -0
  79. data/spec/dummy/public/javascripts/alchemy/swfupload/swfupload.swf +0 -0
  80. data/spec/dummy/public/javascripts/alchemy/tiny_mce/jquery.tinymce.js +1 -0
  81. data/spec/dummy/public/javascripts/alchemy/tiny_mce/langs/de.js +1 -0
  82. data/spec/dummy/public/javascripts/alchemy/tiny_mce/langs/en.js +223 -0
  83. data/spec/dummy/public/javascripts/alchemy/tiny_mce/license.txt +504 -0
  84. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/alchemy_link/editor_plugin.js +43 -0
  85. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/alchemy_link/langs/de.js +4 -0
  86. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/alchemy_link/langs/en.js +4 -0
  87. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/fullscreen/editor_plugin.js +1 -0
  88. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/fullscreen/fullscreen.htm +109 -0
  89. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/inlinepopups/editor_plugin.js +1 -0
  90. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css +402 -0
  91. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/inlinepopups/template.htm +387 -0
  92. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/lists/editor_plugin.js +1 -0
  93. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/editor_plugin.js +1 -0
  94. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/js/pastetext.js +36 -0
  95. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/js/pasteword.js +51 -0
  96. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/langs/de_dlg.js +1 -0
  97. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/langs/en_dlg.js +5 -0
  98. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/pastetext.htm +27 -0
  99. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/pasteword.htm +21 -0
  100. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/cell.htm +180 -0
  101. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/css/cell.css +17 -0
  102. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/css/row.css +25 -0
  103. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/css/table.css +13 -0
  104. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/editor_plugin.js +1 -0
  105. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/js/cell.js +319 -0
  106. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/js/merge_cells.js +27 -0
  107. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/js/row.js +237 -0
  108. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/js/table.js +450 -0
  109. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/langs/de_dlg.js +1 -0
  110. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/langs/en_dlg.js +75 -0
  111. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/merge_cells.htm +32 -0
  112. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/row.htm +158 -0
  113. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/table.htm +188 -0
  114. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/about.htm +52 -0
  115. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/anchor.htm +26 -0
  116. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/charmap.htm +51 -0
  117. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/color_picker.htm +74 -0
  118. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/editor_template.js +1 -0
  119. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/image.htm +80 -0
  120. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
  121. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/flash.gif +0 -0
  122. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/icons.gif +0 -0
  123. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/iframe.gif +0 -0
  124. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/pagebreak.gif +0 -0
  125. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/quicktime.gif +0 -0
  126. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/realmedia.gif +0 -0
  127. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/shockwave.gif +0 -0
  128. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/trans.gif +0 -0
  129. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/video.gif +0 -0
  130. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/windowsmedia.gif +0 -0
  131. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/about.js +73 -0
  132. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/anchor.js +42 -0
  133. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/charmap.js +355 -0
  134. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/color_picker.js +329 -0
  135. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/image.js +247 -0
  136. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/link.js +153 -0
  137. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/source_editor.js +56 -0
  138. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/langs/de.js +1 -0
  139. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/langs/de_dlg.js +1 -0
  140. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/langs/en.js +68 -0
  141. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/langs/en_dlg.js +54 -0
  142. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/link.htm +57 -0
  143. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/shortcuts.htm +47 -0
  144. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/content.css +47 -0
  145. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/dialog.css +117 -0
  146. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
  147. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
  148. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
  149. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
  150. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
  151. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
  152. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/ui.css +214 -0
  153. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/highcontrast/content.css +23 -0
  154. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/highcontrast/dialog.css +105 -0
  155. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/highcontrast/ui.css +102 -0
  156. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/content.css +46 -0
  157. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/dialog.css +117 -0
  158. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
  159. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
  160. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
  161. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/ui.css +217 -0
  162. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +8 -0
  163. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -0
  164. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/source_editor.htm +25 -0
  165. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/simple/langs/de.js +1 -0
  166. data/spec/dummy/public/javascripts/alchemy/tiny_mce/tiny_mce.js +1 -0
  167. data/spec/dummy/public/javascripts/alchemy/tiny_mce/tiny_mce_popup.js +5 -0
  168. data/spec/dummy/public/javascripts/alchemy/tiny_mce/utils/editable_selects.js +70 -0
  169. data/spec/dummy/public/javascripts/alchemy/tiny_mce/utils/form_utils.js +210 -0
  170. data/spec/dummy/public/javascripts/alchemy/tiny_mce/utils/mctabs.js +162 -0
  171. data/spec/dummy/public/javascripts/alchemy/tiny_mce/utils/validate.js +252 -0
  172. data/spec/dummy/public/javascripts/application.js +2 -0
  173. data/spec/dummy/public/javascripts/controls.js +965 -0
  174. data/spec/dummy/public/javascripts/dragdrop.js +974 -0
  175. data/spec/dummy/public/javascripts/effects.js +1123 -0
  176. data/spec/dummy/public/javascripts/prototype.js +6001 -0
  177. data/spec/dummy/public/javascripts/rails.js +191 -0
  178. data/spec/dummy/public/stylesheets/.gitkeep +0 -0
  179. data/spec/dummy/public/stylesheets/alchemy/Jcrop.gif +0 -0
  180. data/spec/dummy/public/stylesheets/alchemy/alchemy.css +3629 -0
  181. data/spec/dummy/public/stylesheets/alchemy/alchemy_tinymce_content.css +94 -0
  182. data/spec/dummy/public/stylesheets/alchemy/alchemy_tinymce_dialog.css +415 -0
  183. data/spec/dummy/public/stylesheets/alchemy/default/img/tabs.gif +0 -0
  184. data/spec/dummy/public/stylesheets/alchemy/elements.css +900 -0
  185. data/spec/dummy/public/stylesheets/alchemy/flags.css +1 -0
  186. data/spec/dummy/public/stylesheets/alchemy/ie6.css +18 -0
  187. data/spec/dummy/public/stylesheets/alchemy/jquery-ui-1.8.7.alchemy.css +2023 -0
  188. data/spec/dummy/public/stylesheets/alchemy/jquery.Jcrop.css +35 -0
  189. data/spec/dummy/public/stylesheets/alchemy/jquery.sb.css +244 -0
  190. data/spec/dummy/public/stylesheets/alchemy/standard_set.css +374 -0
  191. data/spec/dummy/script/rails +6 -0
  192. data/spec/integration/navigation_spec.rb +9 -0
  193. data/spec/integration/security_spec.rb +25 -0
  194. data/spec/spec_helper.rb +40 -0
  195. metadata +371 -8
data/.gitignore CHANGED
@@ -4,4 +4,8 @@
4
4
  doc/
5
5
  rdoc/
6
6
  Gemfile.lock
7
- pkg
7
+ pkg
8
+ /spec/dummy/log/development.log
9
+ /spec/dummy/log/test.log
10
+ /spec/dummy/db/test.sqlite3
11
+ /spec/dummy/db/development.sqlite3
data/Gemfile CHANGED
@@ -5,4 +5,7 @@ gemspec
5
5
 
6
6
  group :development do
7
7
  gem 'gettext', '~>2.0', :git => 'git://github.com/cameel/gettext.git', :require => false
8
+ gem "capybara", ">= 0.4.0"
9
+ gem "rspec-rails", ">= 2.0.0.beta"
10
+ gem "sqlite3"
8
11
  end
data/Rakefile CHANGED
@@ -1,30 +1,32 @@
1
1
  # encoding: UTF-8
2
+ require 'rubygems'
3
+ begin
4
+ require 'bundler'
5
+ rescue LoadError
6
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
7
+ end
8
+
2
9
  require 'rake'
3
- require 'rake/testtask'
4
- require 'rake/rdoctask'
10
+ require 'rdoc/task'
11
+
12
+ require 'rspec/core'
13
+ require 'rspec/core/rake_task'
5
14
 
6
15
  import File.join(File.dirname(__FILE__), 'lib/tasks/gettext.rake')
7
16
 
8
- desc 'Default: run unit tests.'
9
- task :default => :test
17
+ RSpec::Core::RakeTask.new(:spec)
10
18
 
11
- desc 'Test the alchemy plugin.'
12
- Rake::TestTask.new(:test) do |t|
13
- t.libs << 'lib'
14
- t.pattern = 'test/**/*_test.rb'
15
- t.verbose = true
16
- end
19
+ task :default => :spec
20
+
21
+ Bundler::GemHelper.install_tasks
17
22
 
18
23
  desc 'Generate documentation for the alchemy plugin.'
19
24
  Rake::RDocTask.new(:rdoc) do |rdoc|
20
25
  rdoc.rdoc_dir = 'rdoc'
21
- rdoc.title = 'Alchemy'
26
+ rdoc.title = 'Alchemy CMS'
22
27
  rdoc.options << '--line-numbers' << '--inline-source'
23
28
  rdoc.rdoc_files.include('README.md')
24
29
  rdoc.rdoc_files.include('config/alchemy/*.yml')
25
30
  rdoc.rdoc_files.include('lib/**/*.rb')
26
31
  rdoc.rdoc_files.include('app/**/*.rb')
27
32
  end
28
-
29
- require 'bundler'
30
- Bundler::GemHelper.install_tasks
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
15
15
  s.license = 'GPL-3'
16
16
 
17
17
  s.files = `git ls-files`.split("\n")
18
- #s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
19
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
20
  s.require_paths = ["lib"]
21
21
 
@@ -37,7 +37,7 @@ class Message
37
37
  attr_accessor :contact_form_id, :ip
38
38
 
39
39
  Alchemy::Config.get(:mailer)[:fields].each do |field|
40
- attr_accessor field.keys.first.to_sym
40
+ attr_accessor field.to_sym
41
41
  end
42
42
 
43
43
  validate_fields = Alchemy::Config.get(:mailer)[:validate_fields]
@@ -1,6 +1,6 @@
1
1
  <div class="searchresult" id="<%= element_dom_id(element) %>" <%= element_preview_code(element) -%>>
2
2
 
3
- <%= form_tag show_page_with_language_path(:urlname => "suche", :lang => session[:language_id]), :method => :get do %>
3
+ <%= form_tag show_page_with_language_path(:urlname => "suche", :lang => @page.language_code), :method => :get do %>
4
4
  <%= text_field_tag "query", params[:query], :class => 'field' %>
5
5
  <%= submit_tag _("search"), :name => nil %>
6
6
  <%- end -%>
@@ -1,2 +1,2 @@
1
1
  require 'fast_gettext'
2
- FastGettext.add_text_domain 'alchemy', :path => File.join(File.dirname(__FILE__), '..', '..', 'locale')
2
+ FastGettext.add_text_domain 'alchemy', :path => File.join(File.dirname(__FILE__), '..', '..', 'locale')
@@ -107,6 +107,9 @@ Rails.application.routes.draw do
107
107
  end
108
108
 
109
109
  resources :essence_pictures, :except => [:show, :new, :create] do
110
+ collection do
111
+ put :assign
112
+ end
110
113
  member do
111
114
  get :crop
112
115
  end
@@ -1,5 +1,5 @@
1
1
  module Alchemy
2
2
 
3
- VERSION = "2.0.pre2"
3
+ VERSION = "2.0.pre3"
4
4
 
5
5
  end
File without changes
@@ -4,7 +4,7 @@ module Alchemy
4
4
  module Generators
5
5
  class ScaffoldGenerator < ::Rails::Generators::Base
6
6
  desc "This generator generates the Alchemy scaffold. Pass --with-standard-set to copy Alchemys standard set into your app."
7
- class_option :with_standard_set, :type => :boolean, :desc => "Copy standard set files."
7
+ class_option 'with-standard-set', :type => :boolean, :desc => "Copy standard set files."
8
8
  source_root File.expand_path('templates', File.dirname(__FILE__))
9
9
 
10
10
  def create_config_dir
@@ -17,7 +17,7 @@ module Alchemy
17
17
  end
18
18
 
19
19
  def copy_yamls
20
- if options['--with-standard-set']
20
+ if options['with-standard-set']
21
21
  layouts_path = File.expand_path('../../../../../app/views/layouts', File.dirname(__FILE__))
22
22
  copy_file "#{@config_path}/elements.yml", "#{Rails.root}/config/alchemy/elements.yml"
23
23
  copy_file "#{@config_path}/page_layouts.yml", "#{Rails.root}/config/alchemy/page_layouts.yml"
@@ -3,7 +3,7 @@
3
3
 
4
4
  # Installing Alchemy Gem
5
5
 
6
- gem 'alchemy_cms'
6
+ gem 'alchemy_cms', '>= 2.0.pre2'
7
7
  gem 'ruby-debug', :group => :development
8
8
  gem 'mongrel', :group => :development
9
9
 
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe Alchemy do
4
+ it "should be valid" do
5
+ Alchemy.should be_a(Module)
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe Alchemy::Config do
4
+ it "should have an array of fields for mailer" do
5
+ Alchemy::Config.get(:mailer)[:fields].should be_a(Array)
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require File.expand_path('../config/application', __FILE__)
5
+ require 'rake'
6
+
7
+ Dummy::Application.load_tasks
@@ -0,0 +1,3 @@
1
+ class ApplicationController < ActionController::Base
2
+ protect_from_forgery
3
+ end
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Dummy</title>
5
+ <%= stylesheet_link_tag :all %>
6
+ <%= javascript_include_tag :defaults %>
7
+ <%= csrf_meta_tag %>
8
+ </head>
9
+ <body>
10
+
11
+ <%= yield %>
12
+
13
+ </body>
14
+ </html>
@@ -0,0 +1,4 @@
1
+ # This file is used by Rack-based servers to start the application.
2
+
3
+ require ::File.expand_path('../config/environment', __FILE__)
4
+ run Dummy::Application
@@ -0,0 +1,199 @@
1
+ # = Configuration
2
+ #
3
+ # == This is the global Alchemy configuration file
4
+ # Please override your apps settings in your config/alchemy/config.yml file.
5
+ # You can use a handy rake task to generate it.
6
+ #
7
+ # rake alchemy:app_structure:create:config
8
+
9
+ # The amount of time of inactivity in minutes after which the user is kicked out of his current session.
10
+ # Only active in production environment!!!
11
+ :auto_logout_time: 30
12
+
13
+ # === Redirect options
14
+ # redirect_index: You can set to redirect (an 301 permanent, for all you SEO geeks ^_^) to first child page (typically the homepage) the index/intro page if it's not visible.
15
+ # So you don't get an 404 error if the language root page is not visible.
16
+ # redirect_to_public_child: Alchemy redirects to the first public child page found, if a page is not visible.
17
+ :redirect_index: true
18
+ :redirect_to_public_child: true
19
+
20
+ # Enabling the Ferret fulltext search engine.
21
+ # Tip! For best performance and stability install a crontab that reindexes ferrets search index periodly.
22
+ # Example: cd ~/html/alchemy/current && RAILS_ENV=production rake ferret:rebuild_index
23
+ :ferret: false
24
+
25
+ # === Pagecaching
26
+ # Enable/Disable pagecaching globally.
27
+ # Hint: You can enable/disable page caching for single Alchemy::PageLayouts in the page_layout.yml file.
28
+ :cache_pages: true
29
+
30
+ # === Sitemap
31
+ # Alchemy renders a nice HTML (<ul><li> style) and XML (Google conform!) Sitemap for you.
32
+ # Just place a sitemap element for a page layout in your page_layouts.yml file. Alchemy does the rest.
33
+ # ==== Options:
34
+ # show_root: Show language root page in sitemap?
35
+ # show_flag: enables the Checkbox in Page#update overlay. So your customer can set the visibilit of pages in the sitemap.
36
+ :sitemap:
37
+ :show_root: true
38
+ :show_flag: false
39
+
40
+ # === Picture rendering settings
41
+ # Alchemy uses Fleximage and RMagick to render images. Use {:image_size => "XXXxYYY", :crop => BOOLEAN [true]} to resize images.
42
+ # See https://github.com/Squeegy/fleximage for further infos.
43
+ # ==== Options:
44
+ # output_image_jpg_quality: If rendered as JPG this is the quality setting for it.
45
+ # preprocess_image_resize: Large images are downsized after upload to save diskspace.
46
+ # image_store_format: Masterimage storage format. Images are rendered from this master image, so a lossless format (png) is strongly recommended.
47
+ # image_output_format: Globally image output format setting.
48
+ # TIP: You can always override the output format in the options of your Essence. I.e. {:format => :gif}
49
+ :output_image_jpg_quality: 85
50
+ :preprocess_image_resize: 1000x1000
51
+ :image_store_format: png
52
+ :image_output_format: jpg
53
+
54
+ # Set available translations for your customers.
55
+ # Currently available translations are German and English.
56
+ :translations:
57
+ - :language_code: de
58
+ :language: Deutsch
59
+ - :language_code: en
60
+ :language: English
61
+
62
+ default_translation: en
63
+
64
+ # Default language for your homepgae.
65
+ default_language:
66
+ code: en
67
+ name: English
68
+ page_layout: intro
69
+ frontpage_name: Intro
70
+
71
+ # === Mailer Settings:
72
+ #
73
+ # To send Mails via contact forms you can create your form fields here and set which fields are to be validated.
74
+ #
75
+ # ==== Options:
76
+ #
77
+ # fields: An Array from Hashes with fieldname as keys and type as values. Types are ActiveRecord column types (i.e. string, text, boolean, etc.).
78
+ # validate_fields: A Hash with fieldname as key and a Hash (with :message as key and a message_id as value) as value
79
+ #
80
+ # ==== Translating validation messages:
81
+ #
82
+ # The message_id is passed through I18n.t so you can translate it in your language yml file.
83
+ #
84
+ # Example:
85
+ #
86
+ # de:
87
+ # alchemy:
88
+ # contactform:
89
+ # validations:
90
+ # enter_name: 'Bitte geben Sie einen Namen an'
91
+ #
92
+ :mailer:
93
+ :page_layout_name: contact
94
+ :forward_to_page: false
95
+ :mail_success_page: thanks
96
+ :fields: [salutation, firstname, lastname, address, zip, city, phone, email, message]
97
+ :validate_fields:
98
+ :lastname:
99
+ :message: enter_name
100
+ :email:
101
+ :message: enter_mail
102
+
103
+ # === User roles
104
+ # You can add own user roles. To set permissions for this roles please add an authorization_rules.rb file in your config folder.
105
+ # Further documentation for the auth system used please visit:
106
+ # https://github.com/stffn/declarative_authorization/blob/master/README.rdoc
107
+ #
108
+ # ==== Translating Userroles
109
+ # Userroles can be translated inside your the language yml file under:
110
+ # alchemy:
111
+ # user_roles:
112
+ # rolename: Name of the role
113
+ :user_roles: [registered, author, editor, admin]
114
+
115
+ # === Uploader Settings
116
+ # Allow filetypes to upload.
117
+ # Pass * to allow all kind of files.
118
+ :uploader:
119
+ :allowed_filetypes:
120
+ :pictures: [jpg, jpeg, gif, png, psd, pdf]
121
+ :attachments: [*]
122
+
123
+ # === Link Target Options
124
+ # Values for the link target selectbox inside the page link overlay.
125
+ # The value gets attached as a data-link-target attribute to the link.
126
+ #
127
+ # == Example:
128
+ # Open all links set to overlay inside an jQuery UI Dialog Window.
129
+ #
130
+ # jQuery(a[data-link-target="overlay"]).dialog();
131
+ :link_target_options: [blank]
132
+
133
+ # == Alchemy core plugins configuration
134
+
135
+ alchemy_plugins:
136
+
137
+ - name: dashboard
138
+ navigation:
139
+ name: 'home'
140
+ controller: 'admin'
141
+ action: index
142
+ icon: home
143
+ sub_navigation:
144
+ - name: 'home'
145
+ controller: 'admin'
146
+ action: index
147
+
148
+ - name: pages
149
+ navigation:
150
+ name: 'module: pages'
151
+ controller: 'admin/pages'
152
+ action: index
153
+ icon: pages
154
+ sub_navigation:
155
+ - name: 'module: pages'
156
+ controller: 'admin/pages'
157
+ action: index
158
+ - name: 'module: layoutpages'
159
+ controller: 'admin/layoutpages'
160
+ action: index
161
+ nested:
162
+ - controller: 'admin/pages'
163
+ action: edit
164
+
165
+ - name: languages
166
+ navigation:
167
+ name: 'module: languages'
168
+ controller: 'admin/languages'
169
+ action: index
170
+ icon: languages
171
+ sub_navigation:
172
+ - name: 'module: languages'
173
+ controller: 'admin/languages'
174
+ action: index
175
+
176
+ - name: users
177
+ navigation:
178
+ name: 'module: users'
179
+ controller: 'admin/users'
180
+ action: index
181
+ icon: users
182
+ sub_navigation:
183
+ - name: 'module: users'
184
+ controller: 'admin/users'
185
+ action: index
186
+
187
+ - name: archive
188
+ navigation:
189
+ controller: 'admin/pictures'
190
+ action: index
191
+ name: 'module: library'
192
+ icon: library
193
+ sub_navigation:
194
+ - name: 'module: images'
195
+ controller: 'admin/pictures'
196
+ action: index
197
+ - name: 'module: attachments'
198
+ controller: 'admin/attachments'
199
+ action: index
@@ -0,0 +1,91 @@
1
+ # == In this configuration you setup Alchemy´s element layouts.
2
+ #
3
+ # Use rails generate alchemy:scaffold to generate this file for your app.
4
+ #
5
+ # Elements containing all necessary basic tools for displaying and editing content inside Alchemy.
6
+ # They consists of composed contents (different essence-types) as shown in the illustration of an elements-sheme below.
7
+ #
8
+ # == Schema of an element
9
+ #
10
+ # =================================
11
+ # # Content 1 (EssenceText) #
12
+ # # #
13
+ # # Content 2 (EssencePicture) #
14
+ # # #
15
+ # # Content 3 (EssenceRichtext) #
16
+ # =================================
17
+ #
18
+ # == Example of a basic element layout
19
+ #
20
+ # - name: a_unique_name (Used for the partial name in +app/views/elements+ and translated as Element.display_name)
21
+ # unique: Bool //pass true if this element only can be displayed once on page
22
+ # contents:
23
+ # - name: head
24
+ # type: EssenceText
25
+ # - name: text
26
+ # type: EssenceRichtext
27
+ #
28
+ # As already mentioned above, there are different content-types wich can be defined for each content in an element.
29
+ # Defining these types is used to render predefined views in the element.
30
+ #
31
+ # == Content-Types:
32
+ #
33
+ # * EssenceText (Used to store a String (max. 255 Chars.) i.e. a headline, or productname. The editor is renderd as a single-lined input field. The view output will be sanitized and escaped. So it's XSS save.)
34
+ # * EssenceRichtext (Used to store editable richtext. Editor is rendered as a textarea with TinyMCE Editor.)
35
+ # * EssencePicture (Used to store picture ids from pictures assigned through the library. The editor is rendered as a picture-editor collection with a lot of options (i.e. image cropper). The view renders the assigned picture, resizes it, crops it and caches the result.)
36
+ # * EssenceFlash (Used to store attachment ids from attachments assigned through the library. The view renders an embeded object.)
37
+ # * EssenceDate (Used to store a DateTime object. The view output is passed through Rails I18n Library, so it will be fully localized.)
38
+ # * EssenceHtml (Used to store a String (max. 255 Chars.). The view output renders the raw, not sanitized or unescaped String. So be carefull!)
39
+ #
40
+ # After finishing the setup of your element layouts, you need to generate the files for the elements before using them in Alchemy.
41
+ # For creating these files, use the following command in your terminal:
42
+ #
43
+ # rails generate elements
44
+ #
45
+ # All new elements will be created as two different partials in Rails.root/app/views/elements.
46
+ # For each element there is an editor-view wich will be rendered when editing them in Alchemy and another view for the website´s frontend.
47
+ #
48
+ # app/views/elements/_elements_name_editor.html.erb
49
+ # app/views/elements/_elements_name_view.html.erb
50
+ #
51
+ # For most contents in an element you can specify additional options, so they get rendered in a specific way.
52
+ # These options can be defined as symbols, but its too much to list them up here.
53
+ # You can find these options described in the application_helper.rb, most of them at the render_essence method.
54
+ #
55
+ # == Setting a content as preview-text for the element
56
+ #
57
+ # You can set a content-essence as preview-text for its element like this
58
+ # take_me_for_preview: true
59
+ #
60
+ #
61
+ # == Adding contents dynamically in the frontend
62
+ #
63
+ # You are able to add content-essences dynamically to the element from the Alchemy frontend.
64
+ # You just have to make contents available for adding them.
65
+ # This example enables this feature
66
+ #
67
+ # - name: headline
68
+ # unique: false
69
+ # contents:
70
+ # - name: headline
71
+ # type: EssenceText
72
+ # - name: big_text
73
+ # type: EssenceRichtext
74
+ # available_contents:
75
+ # - name: big_text
76
+ # type: EssenceRichtext
77
+ #
78
+ # Now an Alchemy user can add the content 'big_text' from the element as much as desired.
79
+ #
80
+ # === Translate element names
81
+ #
82
+ # Element names are passed through the I18n library. So you can translate them in your config/locales language yml file.
83
+ #
84
+ # Example:
85
+ #
86
+ # de:
87
+ # alchemy:
88
+ # element_names:
89
+ # contact: Kontakt
90
+ # search: Suche
91
+