alchemy_cms 2.0.2 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -6,7 +6,7 @@ Alchemy CMS
6
6
  About
7
7
  -----
8
8
 
9
- Alchemy is a powerfull Content Management System (CMS) with an extremly flexible content storing architecture.
9
+ Alchemy is a powerful Content Management System (CMS) with an extremly flexible content storing architecture.
10
10
 
11
11
  Features
12
12
  --------
@@ -108,7 +108,7 @@ Resources
108
108
  ---------
109
109
 
110
110
  * Homepage: <http://alchemy-cms.com>
111
- * Live-Demo: <http://demo.alchemy-cms.com>
111
+ * Live-Demo: <http://demo.alchemy-cms.com> (user: demo, password: demo)
112
112
  * Wiki: <http://wiki.alchemy-cms.com>
113
113
  * API Documentation: <http://api.alchemy-cms.com>
114
114
  * Issue-Tracker: <http://issues.alchemy-cms.com>
@@ -71,28 +71,12 @@ class Admin::ElementsController < AlchemyController
71
71
  @element.public = !params[:public].nil?
72
72
  @element.save
73
73
  else
74
- render :update do |page|
75
- page.call('Alchemy.growl', _("Validation failed."), :warn)
76
- error_message = "<h2>#{_('Validation failed.')}</h2><p>#{_('Please check contents below.')}</p>"
77
- page << "jQuery('#element_#{@element.id}_errors').html('#{error_message}<ul><li>#{@element.essence_error_messages.join('</li><li>')}</li></ul>')"
78
- page.show("element_#{@element.id}_errors")
79
- selector = @element.contents_with_errors.map { |content| '#' + content_dom_id(content) }.join(', ')
80
- page << "jQuery('div.content_editor').removeClass('validation_failed')"
81
- page << "jQuery('#{selector}').addClass('validation_failed')"
82
- page << "Alchemy.enableButton('#element_#{@element.id} button.button')"
83
- end
74
+ @element_validated = false
75
+ @notice = _('Validation failed.')
76
+ @error_message = "<h2>#{@notice}</h2><p>#{_('Please check contents below.')}</p>".html_safe
84
77
  end
85
78
  rescue Exception => e
86
- exception_logger(e)
87
- if e.class == Ferret::FileNotFoundError
88
- EssenceText.rebuild_index
89
- EssenceRichtext.rebuild_index
90
- render :update do |page|
91
- page << "Alchemy.growl('#{_("Index Error after saving Element. Please try again!")}', 'error')"
92
- end
93
- else
94
- show_error_notice(e)
95
- end
79
+ exception_handler(e)
96
80
  end
97
81
 
98
82
  # Trashes the Element instead of deleting it.
@@ -23,9 +23,9 @@ module ContentsHelper
23
23
  if content.description.blank?
24
24
  warning("Content #{content.name} is missing its description")
25
25
  title = _("Warning: Content '%{contentname}' is missing its description.") % {:contentname => content.name}
26
- content_name = %(<span class="warning icon" title="#{title}"></span>&nbsp;) + content_name
26
+ content_name = %(<span class="warning icon" title="#{title}"></span>&nbsp;) + content_name.html_safe
27
27
  end
28
- content.has_validations? ? "#{content_name}<span class='validation_indicator'>*</span>" : content_name
28
+ content.has_validations? ? "#{content_name}<span class='validation_indicator'>*</span>".html_safe : content_name
29
29
  end
30
30
 
31
31
  # Renders a link to show the new content overlay
@@ -37,7 +37,7 @@ class Page < ActiveRecord::Base
37
37
  scope :all_locked, where(:locked => true)
38
38
  scope :not_locked, where(:locked => false)
39
39
  scope :visible, where(:visible => true)
40
- scope :public, where(:public => true)
40
+ scope :published, where(:public => true)
41
41
  scope :accessable, where(:restricted => false)
42
42
  scope :restricted, where(:restricted => true)
43
43
  scope :public_language_roots, lambda {
@@ -1,4 +1,6 @@
1
1
  (function($) {
2
+ <%- if @element_validated -%>
3
+
2
4
  $('div#element_<%= @element.id -%> div.element_handle span.icon').removeClass('element_<%= @element.public? ? "draft" : "public" -%>').addClass('element_<%= @element.public? ? "public" : "draft" -%>');
3
5
  $('.element_editor[data-element-id="<%= @element.id -%>"] .element_heading .preview_text_element_name').text('<%= @element.display_name -%>');
4
6
  $('.element_editor[data-element-id="<%= @element.id -%>"] .element_heading .preview_text_quote').text('<%= escape_javascript(@element.preview_text) -%>');
@@ -7,4 +9,16 @@
7
9
  Alchemy.setElementSaved('#element_<%= @element.id -%>');
8
10
  Alchemy.growl('<%= _("element_saved") -%>');
9
11
  Alchemy.PreviewWindow.refresh();
12
+
13
+ <%- else -%>
14
+
15
+ Alchemy.growl('<%= escape_javascript(@notice) %>', 'warn');
16
+ $('#element_<%= @element.id %>_errors').html('<%= @error_message %><ul><li><%= @element.essence_error_messages.join("</li><li>") %></li></ul>');
17
+ $("#element_<%= @element.id %>_errors").show();
18
+ $('div.content_editor').removeClass('validation_failed');
19
+ $('<%= @element.contents_with_errors.map { |content| "#" + content_dom_id(content) }.join(", ") %>').addClass('validation_failed');
20
+ Alchemy.enableButton('#element_<%= @element.id %> button.button');
21
+
22
+ <%- end -%>
23
+
10
24
  })(jQuery);
@@ -74,10 +74,10 @@
74
74
  flash9_url : "/javascripts/alchemy/swfupload/swfupload.swf",
75
75
  upload_url: '<%= new_asset_path_with_session_information(model_name) %>',
76
76
  post_params: <%= post_params.html_safe %>,
77
- file_size_limit : "<%= configuration(:uploader)[:file_size_limit] -%> MB",
77
+ file_size_limit : "<%= configuration(:uploader)[:file_size_limit] || 100 -%> MB",
78
78
  file_types : '<%= file_types.map{ |f| "*.#{f}" }.join(";") %>',
79
79
  file_types_description : "<%= file_types_description %>",
80
- file_upload_limit : <%= configuration(:uploader)[:upload_limit] -%>,
80
+ file_upload_limit : <%= configuration(:uploader)[:upload_limit] || 50 -%>,
81
81
  file_queue_limit : 0,
82
82
  custom_settings : {
83
83
  progressTarget : "uploadProgressContainer",
@@ -18,7 +18,7 @@
18
18
  <div class="missing_image">
19
19
  <p>
20
20
  <%= image_tag('alchemy/placeholder.png') %><br>
21
- <%= _('Image missing') %><%= '<span class="validation_indicator">*</span>' if content.has_validations? %>
21
+ <%= _('Image missing') %><%= '<span class="validation_indicator">*</span>'.html_safe if content.has_validations? %>
22
22
  </p>
23
23
  </div>
24
24
  <%- else -%>
@@ -117,12 +117,12 @@ default_language:
117
117
  :user_roles: [registered, author, editor, admin]
118
118
 
119
119
  # === Uploader Settings
120
- # Set an upload limit in megabytes which counts for all uploads together.
121
- # Set a file size limit in megabytes for a per file limit.
120
+ # upload_limit: Integer Set an amount of files upload limit of files which can be uploaded at once. Set 0 for unlimited.
121
+ # file_size_limit: Integer Set a file size limit in megabytes for a per file limit.
122
122
  # Allow filetypes to upload.
123
123
  # Pass * to allow all kind of files.
124
124
  :uploader:
125
- :upload_limit: 500
125
+ :upload_limit: 50
126
126
  :file_size_limit: 100
127
127
  :allowed_filetypes:
128
128
  :pictures: [jpg, jpeg, gif, png, psd, pdf]
@@ -98,7 +98,8 @@
98
98
  # contents:
99
99
  # - name: intro
100
100
  # type: EssenceText
101
- # validate: [presence]
101
+ # validate:
102
+ # - presence
102
103
  #
103
104
  # Now the user has to enter a value inside of the intro EssenceText textfield to save the element.
104
105
  # Currently supported validations are:
@@ -209,13 +210,17 @@
209
210
  contents:
210
211
  - name: mail_from
211
212
  type: EssenceText
212
- validate: [presence]
213
+ validate:
214
+ - presence
213
215
  - name: mail_to
214
216
  type: EssenceText
215
- validate: [presence]
217
+ validate:
218
+ - presence
216
219
  - name: subject
217
220
  type: EssenceText
218
- validate: [presence]
221
+ validate:
222
+ - presence
219
223
  - name: success_page
220
224
  type: EssenceText
221
- validate: [presence]
225
+ validate:
226
+ - presence
@@ -1,5 +1,5 @@
1
1
  module Alchemy
2
2
 
3
- VERSION = "2.0.2"
3
+ VERSION = "2.0.3"
4
4
 
5
5
  end
@@ -113,13 +113,13 @@ describe Page do
113
113
  it "all pages except the rootpage must have a parent_id" do
114
114
  page = Factory.build(:page, :page_layout => "anypage", :parent_id => nil, :language => @language)
115
115
  page.valid?
116
- page.errors.should have_key(:parent_id)
116
+ page.should have(1).error_on(:parent_id)
117
117
  end
118
118
 
119
119
  it "must not be created if the page_layout is set to 'rootpage' and a page already exists with this page_layout and parent_id = nil" do
120
120
  page = Factory.build(:page, :name => "anypage", :page_layout => "rootpage", :parent_id => @language_root.id, :language => @language)
121
121
  page.valid?
122
- page.errors.should have_key(:page_layout)
122
+ page.should have(1).error_on(:page_layout)
123
123
  end
124
124
 
125
125
  it "should get a webfriendly urlname on create" do
@@ -165,7 +165,7 @@ describe Page do
165
165
  it "should return 2 pages that are public" do
166
166
  Factory(:public_page, :name => 'First Public Child', :parent_id => @language_root.id, :language => @language)
167
167
  Factory(:public_page, :name => 'Second Public Child', :parent_id => @language_root.id, :language => @language)
168
- Page.public.should have(2).pages
168
+ Page.published.should have(2).pages
169
169
  end
170
170
  end
171
171
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: alchemy_cms
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 2.0.2
5
+ version: 2.0.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Thomas von Deyen
@@ -12,7 +12,7 @@ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
14
 
15
- date: 2011-11-03 00:00:00 Z
15
+ date: 2011-11-08 00:00:00 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rails