alchemy_cms 2.1.7 → 2.1.8

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.
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>