alchemy_cms 2.1.7 → 2.1.8

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml CHANGED
@@ -7,7 +7,7 @@ rvm:
7
7
  - ree
8
8
  branches:
9
9
  only:
10
- - master
10
+ - 2.1-stable
11
11
  before_script:
12
12
  #- "mysql -e 'create database alchemy_cms_test;'"
13
13
  - "sh -c 'cd spec/dummy && RAILS_ENV=test bundle exec rake db:schema:load'"
data/README.md CHANGED
@@ -2,7 +2,7 @@ Alchemy CMS
2
2
  ===========
3
3
 
4
4
  [![Build Status](https://secure.travis-ci.org/magiclabs/alchemy_cms.png?branch=master)](http://travis-ci.org/magiclabs/alchemy_cms)
5
- ![Status](http://stillmaintained.com/magiclabs/alchemy_cms.png)
5
+ [![Development Status](http://stillmaintained.com/magiclabs/alchemy_cms.png)](http://stillmaintained.com/magiclabs/alchemy_cms)
6
6
 
7
7
  About
8
8
  -----
@@ -102,7 +102,7 @@ Resources
102
102
 
103
103
  * Homepage: <http://alchemy-cms.com>
104
104
  * Live-Demo: <http://demo.alchemy-cms.com> (user: demo, password: demo)
105
- * Wiki: <http://wiki.alchemy-cms.com>
105
+ * Guidelines: <http://guides.alchemy-cms.com>
106
106
  * API Documentation: <http://api.alchemy-cms.com>
107
107
  * Issue-Tracker: <http://issues.alchemy-cms.com>
108
108
  * Sourcecode: <http://source.alchemy-cms.com>
data/alchemy_cms.gemspec CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
20
  s.require_paths = ["lib"]
21
21
 
22
- s.add_runtime_dependency(%q<rails>, ["~> 3.1.3"])
22
+ s.add_runtime_dependency(%q<rails>, ["~> 3.1.4"])
23
23
  s.add_runtime_dependency(%q<authlogic>)
24
24
  s.add_runtime_dependency(%q<awesome_nested_set>, ["~> 2.0"])
25
25
  s.add_runtime_dependency(%q<declarative_authorization>, ["~> 0.5.4"])
@@ -31,9 +31,8 @@ Gem::Specification.new do |s|
31
31
  s.add_runtime_dependency(%q<dynamic_form>, ["~> 1.1"])
32
32
  s.add_runtime_dependency(%q<jquery-rails>, ["~> 1.0.16"])
33
33
  s.add_runtime_dependency(%q<attachment_magic>, ["~> 0.2.1"])
34
- s.add_runtime_dependency('sass-rails', ['~> 3.1.4'])
35
-
34
+ s.add_runtime_dependency(%q<sass-rails>, ['~> 3.1.4'])
35
+
36
36
  s.add_development_dependency(%q<rspec-rails>, ["~> 2.8"])
37
37
  s.add_development_dependency(%q<sqlite3>)
38
-
39
38
  end
@@ -134,6 +134,10 @@
134
134
  color: $text-color;;
135
135
  }
136
136
 
137
+ #alchemy .ui-widget-content p {
138
+ overflow: hidden;
139
+ }
140
+
137
141
  #alchemy .ui-widget-header {
138
142
  border: 1px none #afafaf;
139
143
  background: $light-blue;
@@ -12,20 +12,27 @@ module Alchemy
12
12
  def create
13
13
  @element = Element.find(params[:content][:element_id])
14
14
  @content = Content.create_from_scratch(@element, params[:content])
15
- @options = params[:options]
15
+ @options = params[:options] || {}
16
+ @html_options = params[:html_options] || {}
16
17
  # If options params come from Flash uploader then we have to parse them as hash.
17
18
  if @options.is_a?(String)
18
19
  @options = Rack::Utils.parse_query(@options)
19
20
  end
20
21
  if @content.essence_type == "Alchemy::EssencePicture"
22
+ @element_dom_id = "#add_content_#{@element.id}"
21
23
  @content.essence.picture_id = params[:picture_id]
22
24
  @content.essence.save
23
25
  @contents_of_this_type = @element.contents.find_all_by_essence_type('Alchemy::EssencePicture')
24
26
  @dragable = @contents_of_this_type.length > 1
25
- @options = @options.merge(
26
- :dragable => @dragable
27
- ) if @options
27
+ @options = @options.merge(:dragable => @dragable)
28
+ else
29
+ @element_dom_id = "#add_content_for_element_#{@element.id}"
28
30
  end
31
+ @locals = {
32
+ :content => @content,
33
+ :options => @options.symbolize_keys,
34
+ :html_options => @html_options.symbolize_keys
35
+ }
29
36
  end
30
37
 
31
38
  def update
@@ -130,7 +130,14 @@ module Alchemy
130
130
  if request.referer == alchemy.login_url
131
131
  render :file => File.join(Rails.root.to_s, 'public', '422.html'), :status => 422, :layout => false
132
132
  elsif request.xhr?
133
- render :partial => 'alchemy/admin/partials/flash', :locals => {:message => t('You are not authorized'), :flash_type => 'warning'}
133
+ respond_to do |format|
134
+ format.js {
135
+ render :js => "Alchemy.growl('#{t('You are not authorized')}', 'warning'); Alchemy.enableButton('button.button, a.button, input.button');"
136
+ }
137
+ format.html {
138
+ render :partial => 'alchemy/admin/partials/flash', :locals => {:message => t('You are not authorized'), :flash_type => 'warning'}
139
+ }
140
+ end
134
141
  else
135
142
  flash[:error] = t('You are not authorized')
136
143
  redirect_to alchemy.admin_dashboard_path
@@ -1,10 +1,10 @@
1
1
  # == Sending Messages:
2
2
  # To send Messages via contact forms you can create your form fields in the config.yml
3
+ #
3
4
  # === Example:
4
5
  # Make an Element with this options inside your @elements.yml file:
5
6
  #
6
- # - name: contact
7
- # display_name: Kontaktformular
7
+ # - name: contactform
8
8
  # contents:
9
9
  # - name: mail_to
10
10
  # type: EssenceText
@@ -15,30 +15,27 @@
15
15
  # - name: success_page
16
16
  # type: EssenceText
17
17
  #
18
- # The fields mail_to, mail_from, subject and success_page are recommended.
19
- # The MessagesController uses them to send your mails. So your customer has full controll of these values inside his contactform @element.
18
+ # The fields +mail_to+, +mail_from+, +subject+ and +success_page+ are recommended.
19
+ # The +Alchemy::MessagesController+ uses them to send your mails. So your customer has full controll of these values inside his contactform element.
20
20
  #
21
- # Then make a page layout for your contact page in the page_layouts.yml file:
21
+ # Then make a page layout for your contact page in the +page_layouts.yml+ file:
22
22
  #
23
23
  # - name: contact
24
- # display_name: Kontakt
25
24
  # unique: true
26
25
  # cache: false
27
- # @elements: [pageheading, heading, contact, bild, absatz, file_download]
28
- # autogenerate: [contact]
26
+ # elements: [pageheading, heading, contactform]
27
+ # autogenerate: [contactform]
29
28
  #
30
29
  # Disabling the page caching is stronlgy recommended!
31
30
  #
32
- # The editor view for your @element should have this layout:
31
+ # The editor view for your element should have this layout:
33
32
  #
34
- # <%= render_essence_editor_by_name(@element, 'mail_from') %>
35
- # <%= render_essence_editor_by_name(@element, 'mail_to') %>
36
- # <%= render_essence_editor_by_name(@element, 'subject') %>
37
- # <p>
38
- # Folgeseite: <%= page_selector(@element, 'success_page') %>
39
- # </p>
33
+ # <%= render_essence_editor_by_name(element, 'mail_from') %>
34
+ # <%= render_essence_editor_by_name(element, 'mail_to') %>
35
+ # <%= render_essence_editor_by_name(element, 'subject') %>
36
+ # <%= page_selector(element, 'success_page', :page_attribute => :urlname) %>
40
37
  #
41
- # Please have a look at the alchemy/config/config.yml file for further Message settings.
38
+ # Please have a look at the +alchemy/config/config.yml+ file for further Message settings.
42
39
 
43
40
  module Alchemy
44
41
  class MessagesController < Alchemy::BaseController
@@ -83,18 +83,21 @@ module Alchemy
83
83
  #
84
84
  # :only [Hash] # Pagelayout names. Only pages with this page_layout will be displayed inside the select.
85
85
  # :page_attribute [Symbol] # The Page attribute which will be stored.
86
+ # :global [Boolean] # Display only global pages. Default is false.
86
87
  #
87
88
  def page_selector(element, content_name, options = {}, select_options = {})
88
89
  default_options = {
89
90
  :page_attribute => :id,
91
+ :global => false,
90
92
  :prompt => t('Choose page')
91
93
  }
92
94
  options = default_options.merge(options)
93
95
  pages = Page.where({
94
96
  :language_id => session[:language_id],
95
- :page_layout => options[:only],
96
- :public => true
97
+ :layoutpage => options[:global] == true,
98
+ :public => options[:global] == false
97
99
  })
100
+ pages = pages.where({:page_layout => options[:only]}) if options[:only].present?
98
101
  content = element.content_by_name(content_name)
99
102
  options.update(
100
103
  :select_values => pages_for_select(pages, content ? content.essence.body : nil, options[:prompt], options[:page_attribute])
@@ -1,24 +1,6 @@
1
1
  # This is a tableless model only used for validating Contactform Fields.
2
- # You can specify the fields for your contactform in the config/alchemy/config.yml file in the :mailer options
2
+ # You can specify the fields for your contactform in the +config/alchemy/config.yml+ file in the +:mailer+ options
3
3
  #
4
- # === Options:
5
- #
6
- # - form_layout_name: A Alchemy::PageLayout name (String). Used to render the contactform on a page with this layout.
7
- #
8
- # === Validating fields:
9
- #
10
- # Pass the field name as symbol and a message_id (will be translated) to :validate_fields:
11
- #
12
- # === Translating the validation messages:
13
- #
14
- # Validationmessages will be send to +Alchemy::I18n.t+ method with the scope +"alchemy.contactform.validations.#{field[1][:message].to_s}"+.
15
- # So a +name+ field with the validation message_id +blank_name+ will be available for translation in your locale files like:
16
- #
17
- # de:
18
- # contactform:
19
- # validations:
20
- # blank_name: 'Bitte geben Sie Ihren Namen an'
21
- #
22
4
  # === Example Contactform Configuration:
23
5
  #
24
6
  # :mailer:
@@ -2,6 +2,8 @@ module Alchemy
2
2
  class UserSession < Authlogic::Session::Base
3
3
  logout_on_timeout(::Rails.env != 'development')
4
4
 
5
+ generalize_credentials_error_messages true
6
+
5
7
  before_destroy :unlock_pages
6
8
 
7
9
  def unlock_pages
@@ -1,138 +1,47 @@
1
1
  (function($) {
2
+ <% if params[:was_missing] -%>
2
3
 
3
- <%- if @content.essence_type == "Alchemy::EssencePicture" -%>
4
-
5
- <%- locals = {
6
- :content => @content,
7
- :options => @options.nil? ? {} : @options.symbolize_keys
8
- } -%>
9
-
10
- <% if params[:was_missing] -%>
11
-
12
- $("#element_<%= @element.id -%>_content_missing").replaceWith('<%= escape_javascript(
13
- render(
14
- :partial => "alchemy/essences/essence_picture_editor",
15
- :locals => locals
16
- )
17
- ) -%>');
4
+ $("#element_<%= @element.id -%>_content_missing").replaceWith('<%= escape_javascript(
5
+ render(
6
+ :partial => "alchemy/essences/#{@content.essence_partial_name}_editor",
7
+ :locals => @locals
8
+ )
9
+ ) -%>');
18
10
 
19
- <% else -%>
11
+ <% else -%>
20
12
 
21
- $('#add_content_<%= @element.id -%>').before('<%= escape_javascript(
22
- render(
23
- :partial => "alchemy/essences/essence_picture_editor",
24
- :locals => locals
25
- )
26
- ) -%>');
27
- Alchemy.SortableContents('#element_<%= @element.id -%>_contents', '<%= form_authenticity_token -%>');
28
-
29
- <%- if @contents_of_this_type.length > 1 -%>
30
- $('#element_<%= @element.id -%>_contents .essence_picture_editor').addClass('dragable_picture');
31
- <%- end -%>
32
-
33
- <%- if !max_image_count.blank? && (@contents_of_this_type.length >= max_image_count) -%>
34
- $("#add_content_<%= @element.id -%>").remove();
35
- <%- end -%>
36
-
37
- Alchemy.reloadPreview();
38
- Alchemy.closeCurrentWindow();
39
-
40
- <% end -%>
13
+ $("<%= @element_dom_id -%>").before('<%= escape_javascript(
14
+ render(
15
+ :partial => "alchemy/essences/#{@content.essence_partial_name}_editor",
16
+ :locals => @locals
17
+ )
18
+ ) -%>');
41
19
 
42
- <%- elsif @content.essence_type == "Alchemy::EssenceText" -%>
20
+ <% end -%>
43
21
 
44
- <%- locals = {
45
- :content => @content,
46
- :options => {:as => 'text_field'}.merge(@options.nil? ? {} : @options.symbolize_keys)
47
- } -%>
22
+ <% case @content.essence_type -%>
23
+ <% when "Alchemy::EssencePicture" -%>
48
24
 
49
- <%- if params[:was_missing] -%>
25
+ <% if @contents_of_this_type.length > 1 -%>
26
+ $('#element_<%= @element.id -%>_contents .essence_picture_editor').addClass('dragable_picture');
27
+ <% end -%>
28
+ <% if !max_image_count.blank? && (@contents_of_this_type.length >= max_image_count) -%>
29
+ $("#add_content_<%= @element.id -%>").remove();
30
+ <% end -%>
31
+ Alchemy.SortableContents('#element_<%= @element.id -%>_contents', '<%= form_authenticity_token -%>');
50
32
 
51
- $("#element_<%= @element.id -%>_content_missing").replaceWith('<%= escape_javascript(
52
- render(
53
- :partial => "alchemy/essences/essence_text_editor",
54
- :locals => locals
55
- )
56
- ) -%>');
33
+ <% when "Alchemy::EssenceDate" -%>
57
34
 
58
- <%- else -%>
35
+ Alchemy.Datepicker('#element_<%= @element.id -%> input.date');
59
36
 
60
- $("#add_content_for_element_<%= @element.id -%>").before('<%= escape_javascript(
61
- render(
62
- :partial => "alchemy/essences/essence_text_editor",
63
- :locals => locals
64
- )
65
- ) -%>');
66
- Alchemy.reloadPreview();
67
- Alchemy.closeCurrentWindow();
68
-
69
- <%- end -%>
37
+ <% when "Alchemy::EssenceRichtext" -%>
70
38
 
71
- Alchemy.SelectBox("#element_<%= @element.id %> select");
39
+ Alchemy.Tinymce.addEditor('contents_content_<%= @content.id -%>_body');
72
40
 
73
- <%- elsif @content.essence_type == "Alchemy::EssenceRichtext" -%>
41
+ <% end -%>
74
42
 
75
- <%- locals = {
76
- :content => @content,
77
- :options => (@options.nil? ? {} : @options.symbolize_keys)
78
- } -%>
79
-
80
- <%- if params[:was_missing] -%>
81
-
82
- $("#element_<%= @element.id -%>_content_missing").replaceWith('<%= escape_javascript(
83
- render(
84
- :partial => "alchemy/essences/essence_richtext_editor",
85
- :locals => locals
86
- )
87
- ) -%>');
88
-
89
- <%- else -%>
90
-
91
- $("#add_content_for_element_<%= @element.id -%>").before('<%= escape_javascript(
92
- render(
93
- :partial => "alchemy/essences/essence_richtext_editor",
94
- :locals => locals
95
- )
96
- ) -%>');
97
- Alchemy.closeCurrentWindow();
98
-
99
- <%- end -%>
100
-
101
- Alchemy.Tinymce.addEditor('contents_content_<%= @content.id -%>_body');
102
-
103
- <%- else -%>
104
-
105
- <%- locals = {
106
- :content => @content,
107
- :options => @options.nil? ? {} : @options.symbolize_keys
108
- } -%>
109
-
110
- <%- if params[:was_missing] -%>
111
-
112
- $("#element_<%= @element.id -%>_content_missing").replaceWith('<%= escape_javascript(
113
- render(
114
- :partial => "alchemy/essences/#{@content.essence_partial_name}_editor",
115
- :locals => locals
116
- )
117
- ) -%>');
118
-
119
- <%- else -%>
120
-
121
- $("#add_content_for_element_<%= @element.id -%>").before('<%= escape_javascript(
122
- render(
123
- :partial => "alchemy/essences/#{@content.essence_partial_name}_editor",
124
- :locals => locals
125
- )
126
- ) -%>');
127
- Alchemy.closeCurrentWindow();
128
-
129
- <%- end -%>
130
-
131
- <% if @content.essence_type == "Alchemy::EssenceDate" -%>
132
- Alchemy.Datepicker('#element_<%= @element.id -%> input.date');
133
- <% end -%>
134
-
135
- <%- end -%>
136
-
137
- Alchemy.growl('<%= t("Successfully added content", :content => @content.name) -%>');
138
- })(jQuery);
43
+ Alchemy.reloadPreview();
44
+ Alchemy.closeCurrentWindow();
45
+ Alchemy.SelectBox("#element_<%= @element.id %> select.alchemy_selectbox");
46
+ Alchemy.growl('<%= t("Successfully added content", :content => @content.name) -%>');
47
+ })(jQuery);
@@ -4,7 +4,7 @@
4
4
  <table>
5
5
  <tr>
6
6
  <td>
7
- <%= f.select 'name', @contents.map { |a| [t("content_names.#{a['name']}"), a['name']] }, :class => 'alchemy_selectbox' %>
7
+ <%= f.select 'name', @contents.map { |a| [t("content_names.#{a['name']}"), a['name']] }, {}, {:class => 'alchemy_selectbox'} %>
8
8
  <%= hidden_field_tag('options', @options) %>
9
9
  </td>
10
10
  <td class="submit">
@@ -8,7 +8,7 @@
8
8
  <%= f.label :page_layout %>
9
9
  </td>
10
10
  <td class="select">
11
- <%= f.select('page_layout', @page_layouts, :class => 'alchemy_selectbox') %>
11
+ <%= f.select('page_layout', @page_layouts, {}, { :class => 'alchemy_selectbox' }) %>
12
12
  </td>
13
13
  </tr>
14
14
  <tr>
@@ -1,3 +1,5 @@
1
+ <% content_for(:title) { @page.name } -%>
2
+
1
3
  <%- content_for(:subnav_additions) do -%>
2
4
  <label><%= t('Active Pages') %> &raquo;</label>
3
5
  <%- @locked_pages.each do |page| -%>
@@ -21,7 +21,7 @@
21
21
  </tr>
22
22
  <tr>
23
23
  <td class="label"><%= f.label 'language' %></td>
24
- <td class="select"><%= f.select 'language', translations_for_select, :class => 'alchemy_selectbox' %></td>
24
+ <td class="select"><%= f.select 'language', translations_for_select, {}, {:class => 'alchemy_selectbox'} %></td>
25
25
  </tr>
26
26
  <tr>
27
27
  <td class="label mandatory"><%= f.label 'password' %></td>
@@ -34,7 +34,7 @@
34
34
  <%- unless action_name == 'signup' -%>
35
35
  <tr>
36
36
  <td class="label"><%= f.label 'role' %></td>
37
- <td class="select"><%= f.select :role, options_for_select(@user_roles, @user.role), :class => 'alchemy_selectbox' %></td>
37
+ <td class="select"><%= f.select :role, options_for_select(@user_roles, @user.role), {}, {:class => 'alchemy_selectbox'} %></td>
38
38
  </tr>
39
39
  <%- else -%>
40
40
  <%= f.hidden_field :role %>
@@ -1,2 +1,2 @@
1
1
  Alchemy.growl('<%= escape_javascript(@notice) %>', 'error');
2
- Alchemy.enableButton('<%= "button.button, a.button, input.button" %>');
2
+ Alchemy.enableButton('button.button, a.button, input.button');
@@ -1,7 +1,6 @@
1
1
  <%= form_for(@message ||= Alchemy::Message.new, :html => {:id => "contact", "data-alchemy-element" => (@preview_mode ? element.id : nil)}) do |f| %>
2
2
  <%= f.error_messages %>
3
3
  <%= f.hidden_field "contact_form_id", :value => element.id %>
4
- <%= hidden_field_tag "mail_to", params[:mail_to] %>
5
4
  <table class="contactform">
6
5
  <tr>
7
6
  <td class="label">
@@ -29,10 +28,10 @@
29
28
  </tr>
30
29
  <tr>
31
30
  <td class="label">
32
- <%= f.label :lastname, (t('contactform.labels.lastname') + '<small>*</small>').html_safe %>
31
+ <%= f.label :lastname, t('contactform.labels.lastname') + '*' %>
33
32
  </td>
34
33
  <td class="field">
35
- <%= f.text_field(:lastname, :class => "field") %>
34
+ <%= f.text_field(:lastname, :class => "field", :required => true) %>
36
35
  </td>
37
36
  </tr>
38
37
  <tr>
@@ -62,10 +61,10 @@
62
61
  </tr>
63
62
  <tr>
64
63
  <td class="label">
65
- <%= f.label :email, (t('contactform.labels.email') + '<small>*</small>').html_safe %>
64
+ <%= f.label :email, t('contactform.labels.email') + '*' %>
66
65
  </td>
67
66
  <td class="field">
68
- <%= f.text_field :email, :class => 'field' %>
67
+ <%= f.email_field :email, :class => 'field', :required => true %>
69
68
  </td>
70
69
  </tr>
71
70
  </table>
@@ -1,6 +1,6 @@
1
1
  <%- unless content.essence.picture.nil? -%>
2
2
  <%- img_tag = image_tag(
3
- alchemy.show_picture_path(
3
+ alchemy.show_picture_url(
4
4
  :id => content.essence.picture.id,
5
5
  :name => content.essence.picture.urlname,
6
6
  :size => options[:image_size],
@@ -1,10 +1,12 @@
1
1
  <%= @message.message %>
2
2
 
3
3
  --
4
+ <%= Alchemy::I18n.t(:salutation, :scope => 'contactform.labels') %>: <%= Alchemy::I18n.t(@message.salutation, :scope => 'contactform.labels') %>
5
+ <%= Alchemy::I18n.t(:firstname, :scope => 'contactform.labels') %>: <%= @message.firstname %>
6
+ <%= Alchemy::I18n.t(:lastname, :scope => 'contactform.labels') %>: <%= @message.lastname %>
4
7
 
5
- <%= @message.salutation %>
6
- <%= @message.firstname %> <%= @message.lastname %>
7
- <%= @message.address %>
8
- <%= @message.zip %> <%= @message.city %>
9
- <%= @message.phone %>
10
- <%= @message.email %>
8
+ <%= Alchemy::I18n.t(:address, :scope => 'contactform.labels') %>: <%= @message.address %>
9
+ <%= Alchemy::I18n.t(:zip, :scope => 'contactform.labels') %>: <%= @message.zip %> <%= @message.city %>
10
+
11
+ <%= Alchemy::I18n.t(:phone, :scope => 'contactform.labels') %>: <%= @message.phone %>
12
+ <%= Alchemy::I18n.t(:email, :scope => 'contactform.labels') %>: <%= @message.email %>
@@ -74,10 +74,15 @@ default_language:
74
74
  #
75
75
  # To send Mails via contact forms you can create your form fields here and set which fields are to be validated.
76
76
  #
77
+ # === Validating fields:
78
+ #
79
+ # Pass the field name as symbol and a message_id (will be translated) to :validate_fields:
80
+ #
77
81
  # ==== Options:
78
82
  #
79
- # fields: An Array from Hashes with fieldname as keys and type as values. Types are ActiveRecord column types (i.e. string, text, boolean, etc.).
80
- # validate_fields: A Hash with fieldname as key and a Hash (with :message as key and a message_id as value) as value
83
+ # page_layout_name: [String] # A +Alchemy::PageLayout+ name. Used to render the contactform on a page with this layout.
84
+ # fields: [Array] # An Array of fieldnames
85
+ # validate_fields: [Hash] # A Hash with fieldname as key and a Hash (with :message as key and a message_id as value) as value
81
86
  #
82
87
  # ==== Translating validation messages:
83
88
  #
@@ -102,7 +107,7 @@ default_language:
102
107
  :lastname:
103
108
  :message: enter_name
104
109
  :email:
105
- :message: enter_mail
110
+ :message: enter_email
106
111
 
107
112
  # === User roles
108
113
  # You can add own user roles. To set permissions for this roles please add an authorization_rules.rb file in your config folder.
@@ -223,6 +223,7 @@
223
223
  - presence
224
224
  - name: subject
225
225
  type: EssenceText
226
+ take_me_for_preview: true
226
227
  validate:
227
228
  - presence
228
229
  - name: success_page
@@ -101,24 +101,24 @@ de:
101
101
  contactform:
102
102
  labels:
103
103
  salutation: 'Anrede'
104
- choose: Wählen Sie
104
+ choose: 'Wählen Sie'
105
105
  mr: 'Herr'
106
106
  mrs: 'Frau'
107
107
  firstname: 'Vorname'
108
- lastname: 'Nachname'
109
- address: 'Straße/Nr'
110
- zip: 'PLZ/Ort'
108
+ lastname: 'Name'
109
+ address: 'Straße / Nr.'
110
+ zip: 'PLZ / Ort'
111
111
  phone: 'Telefon'
112
- email: 'Email'
112
+ email: 'E-Mail'
113
113
  message: 'Nachricht'
114
- send: 'Nachricht absenden!'
115
- mandatory_fields: 'Pflichtfelder. Bitte füllen Sie diese Felder aus. Vielen Dank!'
114
+ send: 'absenden'
115
+ mandatory_fields: '*Pflichtfelder. Bitte füllen Sie diese Felder aus.'
116
116
  # Translations for the contactform validations.
117
117
  # Validations are set in the config/alchemy/config.yml mailer section.
118
118
  validations:
119
119
  enter_name: 'Bitte geben Sie Ihren Namen an'
120
- enter_mail: 'Bitte geben Sie Ihre Email an'
121
- wrong_email_format: 'Die Email Adresse scheint nicht richtig zu sein.'
120
+ enter_email: Bitte geben Sie Ihre E-Mail-Adresse an
121
+ wrong_email_format: 'Die E-Mail-Adresse scheint nicht richtig zu sein.'
122
122
  # The flash message shown after succesfully sending the message.
123
123
  messages:
124
124
  success: 'Ihre Nachricht wurde erfolgreich übermittelt.'
@@ -807,6 +807,7 @@ de:
807
807
  error_messages:
808
808
  login_blank: "^Es wurde kein Benutzername angeben."
809
809
  login_not_found: "^Dieser Benutzername existiert nicht."
810
+ general_credentials_error: "Die Kombination aus Benutzername und Passwort ist nicht gültig."
810
811
  consecutive_failed_logins_limit_exceeded: "Zu viele Fehlversuche! Dieser Account ist aus Sicherheitsgründen gesperrt worden. Bitte wenden Sie sich an den Administrator."
811
812
  email_invalid: "Die Email-Adresse entspricht nicht dem Format einer Email-Adresse."
812
813
  password_blank: "^Bitte ein Passwort angegeben."
@@ -827,3 +828,4 @@ de:
827
828
  email: Email
828
829
  password: Passwort
829
830
  remember_me: "eingeloggt bleiben"
831
+
@@ -94,14 +94,14 @@ en:
94
94
  phone: 'Telephone'
95
95
  email: 'Email'
96
96
  message: 'Message'
97
- send: 'Send Message'
98
- mandatory_fields: 'Mandatory fields.'
97
+ send: 'Send'
98
+ mandatory_fields: '*Mandatory fields.'
99
99
  # Translations for the contactform validations.
100
100
  # Validations are set in the config/alchemy/config.yml mailer section.
101
101
  validations:
102
102
  enter_name: 'Please enter your name'
103
- enter_mail: 'Please enter your email'
104
- wrong_email_format: 'Email has wrong format.'
103
+ enter_email: 'Please enter your email'
104
+ wrong_email_format: 'Email has wrong format'
105
105
  # The flash message shown after succesfully sending the message.
106
106
  messages:
107
107
  success: 'Your message was delivered succesfully.'
@@ -599,6 +599,7 @@ en:
599
599
  error_messages:
600
600
  login_blank: 'can not be blank'
601
601
  login_not_found: 'could not be found'
602
+ general_credentials_error: "User does not exist or invalid password!"
602
603
  consecutive_failed_logins_limit_exceeded: 'Consecutive failed logins limit exceeded, account is disabled.'
603
604
  email_invalid: 'should look like an email address.'
604
605
  password_blank: 'can not be blank'
@@ -618,3 +619,4 @@ en:
618
619
  email: Email
619
620
  password: Password
620
621
  remember_me: 'remember me'
622
+
@@ -1,5 +1,5 @@
1
1
  module Alchemy
2
2
 
3
- VERSION = "2.1.7"
3
+ VERSION = "2.1.8"
4
4
 
5
5
  end
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.1.7
4
+ version: 2.1.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,22 +11,22 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-03-13 00:00:00.000000000 Z
14
+ date: 2012-04-06 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
18
- requirement: &70105640005620 !ruby/object:Gem::Requirement
18
+ requirement: &70221202607480 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ~>
22
22
  - !ruby/object:Gem::Version
23
- version: 3.1.3
23
+ version: 3.1.4
24
24
  type: :runtime
25
25
  prerelease: false
26
- version_requirements: *70105640005620
26
+ version_requirements: *70221202607480
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: authlogic
29
- requirement: &70105640003460 !ruby/object:Gem::Requirement
29
+ requirement: &70221202628920 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
32
  - - ! '>='
@@ -34,10 +34,10 @@ dependencies:
34
34
  version: '0'
35
35
  type: :runtime
36
36
  prerelease: false
37
- version_requirements: *70105640003460
37
+ version_requirements: *70221202628920
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: awesome_nested_set
40
- requirement: &70105640017680 !ruby/object:Gem::Requirement
40
+ requirement: &70221202627520 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ~>
@@ -45,10 +45,10 @@ dependencies:
45
45
  version: '2.0'
46
46
  type: :runtime
47
47
  prerelease: false
48
- version_requirements: *70105640017680
48
+ version_requirements: *70221202627520
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: declarative_authorization
51
- requirement: &70105640015660 !ruby/object:Gem::Requirement
51
+ requirement: &70221202626220 !ruby/object:Gem::Requirement
52
52
  none: false
53
53
  requirements:
54
54
  - - ~>
@@ -56,10 +56,10 @@ dependencies:
56
56
  version: 0.5.4
57
57
  type: :runtime
58
58
  prerelease: false
59
- version_requirements: *70105640015660
59
+ version_requirements: *70221202626220
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: tvdeyen-fleximage
62
- requirement: &70105640014080 !ruby/object:Gem::Requirement
62
+ requirement: &70221202648140 !ruby/object:Gem::Requirement
63
63
  none: false
64
64
  requirements:
65
65
  - - ~>
@@ -67,10 +67,10 @@ dependencies:
67
67
  version: 1.0.9
68
68
  type: :runtime
69
69
  prerelease: false
70
- version_requirements: *70105640014080
70
+ version_requirements: *70221202648140
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: kaminari
73
- requirement: &70105640011700 !ruby/object:Gem::Requirement
73
+ requirement: &70221202645940 !ruby/object:Gem::Requirement
74
74
  none: false
75
75
  requirements:
76
76
  - - ~>
@@ -78,10 +78,10 @@ dependencies:
78
78
  version: 0.13.0
79
79
  type: :runtime
80
80
  prerelease: false
81
- version_requirements: *70105640011700
81
+ version_requirements: *70221202645940
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: acts_as_ferret
84
- requirement: &70105640025480 !ruby/object:Gem::Requirement
84
+ requirement: &70221202643060 !ruby/object:Gem::Requirement
85
85
  none: false
86
86
  requirements:
87
87
  - - ~>
@@ -89,10 +89,10 @@ dependencies:
89
89
  version: '0.5'
90
90
  type: :runtime
91
91
  prerelease: false
92
- version_requirements: *70105640025480
92
+ version_requirements: *70221202643060
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: acts_as_list
95
- requirement: &70105640040680 !ruby/object:Gem::Requirement
95
+ requirement: &70221202656920 !ruby/object:Gem::Requirement
96
96
  none: false
97
97
  requirements:
98
98
  - - ~>
@@ -100,10 +100,10 @@ dependencies:
100
100
  version: '0.1'
101
101
  type: :runtime
102
102
  prerelease: false
103
- version_requirements: *70105640040680
103
+ version_requirements: *70221202656920
104
104
  - !ruby/object:Gem::Dependency
105
105
  name: magiclabs-userstamp
106
- requirement: &70105640038140 !ruby/object:Gem::Requirement
106
+ requirement: &70221202654560 !ruby/object:Gem::Requirement
107
107
  none: false
108
108
  requirements:
109
109
  - - ~>
@@ -111,10 +111,10 @@ dependencies:
111
111
  version: 2.0.2
112
112
  type: :runtime
113
113
  prerelease: false
114
- version_requirements: *70105640038140
114
+ version_requirements: *70221202654560
115
115
  - !ruby/object:Gem::Dependency
116
116
  name: dynamic_form
117
- requirement: &70105640115700 !ruby/object:Gem::Requirement
117
+ requirement: &70221202652900 !ruby/object:Gem::Requirement
118
118
  none: false
119
119
  requirements:
120
120
  - - ~>
@@ -122,10 +122,10 @@ dependencies:
122
122
  version: '1.1'
123
123
  type: :runtime
124
124
  prerelease: false
125
- version_requirements: *70105640115700
125
+ version_requirements: *70221202652900
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: jquery-rails
128
- requirement: &70105640113820 !ruby/object:Gem::Requirement
128
+ requirement: &70221202651320 !ruby/object:Gem::Requirement
129
129
  none: false
130
130
  requirements:
131
131
  - - ~>
@@ -133,10 +133,10 @@ dependencies:
133
133
  version: 1.0.16
134
134
  type: :runtime
135
135
  prerelease: false
136
- version_requirements: *70105640113820
136
+ version_requirements: *70221202651320
137
137
  - !ruby/object:Gem::Dependency
138
138
  name: attachment_magic
139
- requirement: &70105640112380 !ruby/object:Gem::Requirement
139
+ requirement: &70221202665420 !ruby/object:Gem::Requirement
140
140
  none: false
141
141
  requirements:
142
142
  - - ~>
@@ -144,10 +144,10 @@ dependencies:
144
144
  version: 0.2.1
145
145
  type: :runtime
146
146
  prerelease: false
147
- version_requirements: *70105640112380
147
+ version_requirements: *70221202665420
148
148
  - !ruby/object:Gem::Dependency
149
149
  name: sass-rails
150
- requirement: &70105640109380 !ruby/object:Gem::Requirement
150
+ requirement: &70221202664100 !ruby/object:Gem::Requirement
151
151
  none: false
152
152
  requirements:
153
153
  - - ~>
@@ -155,10 +155,10 @@ dependencies:
155
155
  version: 3.1.4
156
156
  type: :runtime
157
157
  prerelease: false
158
- version_requirements: *70105640109380
158
+ version_requirements: *70221202664100
159
159
  - !ruby/object:Gem::Dependency
160
160
  name: rspec-rails
161
- requirement: &70105640108100 !ruby/object:Gem::Requirement
161
+ requirement: &70221202662900 !ruby/object:Gem::Requirement
162
162
  none: false
163
163
  requirements:
164
164
  - - ~>
@@ -166,10 +166,10 @@ dependencies:
166
166
  version: '2.8'
167
167
  type: :development
168
168
  prerelease: false
169
- version_requirements: *70105640108100
169
+ version_requirements: *70221202662900
170
170
  - !ruby/object:Gem::Dependency
171
171
  name: sqlite3
172
- requirement: &70105640139100 !ruby/object:Gem::Requirement
172
+ requirement: &70221202659560 !ruby/object:Gem::Requirement
173
173
  none: false
174
174
  requirements:
175
175
  - - ! '>='
@@ -177,7 +177,7 @@ dependencies:
177
177
  version: '0'
178
178
  type: :development
179
179
  prerelease: false
180
- version_requirements: *70105640139100
180
+ version_requirements: *70221202659560
181
181
  description: Alchemy is a Rails 3 CMS with a flexible content storing architecture.
182
182
  email:
183
183
  - alchemy@magiclabs.de
@@ -499,7 +499,6 @@ files:
499
499
  - app/views/alchemy/essences/_essence_text_view.html.erb
500
500
  - app/views/alchemy/essences/_essence_video_editor.html.erb
501
501
  - app/views/alchemy/essences/_essence_video_view.html.erb
502
- - app/views/alchemy/messages/contact_form_mail.html.erb
503
502
  - app/views/alchemy/messages/contact_form_mail.text.erb
504
503
  - app/views/alchemy/messages/new.html.erb
505
504
  - app/views/alchemy/navigation/_image_link.html.erb
@@ -529,8 +528,6 @@ files:
529
528
  - app/views/alchemy/user_sessions/login.html.erb
530
529
  - app/views/alchemy/user_sessions/logout.html.erb
531
530
  - app/views/alchemy/user_sessions/signup.html.erb
532
- - app/views/elements/_download_editor.html.erb
533
- - app/views/elements/_download_view.html.erb
534
531
  - app/views/kaminari/_gap.html.erb
535
532
  - app/views/kaminari/_next_page.html.erb
536
533
  - app/views/kaminari/_page.html.erb
@@ -819,7 +816,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
819
816
  version: '0'
820
817
  segments:
821
818
  - 0
822
- hash: 3662840626315164799
819
+ hash: 33058783529269066
823
820
  required_rubygems_version: !ruby/object:Gem::Requirement
824
821
  none: false
825
822
  requirements:
@@ -828,7 +825,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
828
825
  version: '0'
829
826
  segments:
830
827
  - 0
831
- hash: 3662840626315164799
828
+ hash: 33058783529269066
832
829
  requirements:
833
830
  - ImageMagick (libmagick), v6.6 or greater.
834
831
  rubyforge_project:
@@ -1,14 +0,0 @@
1
- <pre>
2
- <%= @message.message %>
3
- </pre>
4
-
5
- <p>
6
- <%= @message.salutation %><br>
7
- <%= @message.firstname %>&nbsp;<%= @message.lastname %><br>
8
- <br>
9
- <%= @message.address %><br>
10
- <%= @message.zip %>&nbsp;<%= @message.city %><br>
11
- <br>
12
- <%= @message.phone %><br>
13
- <%= @message.email %>
14
- </p>
@@ -1 +0,0 @@
1
- <%= render_essence_editor_by_name(element, 'file') %>
@@ -1,3 +0,0 @@
1
- <div class="download" <%= element_preview_code(element) -%>>
2
- <%= render_essence_view_by_name(element, 'file') %>
3
- </div>