alchemy_cms 2.0.pre2 → 2.0.pre3

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