alchemy_cms 2.1.8.1 → 2.1.9
Sign up to get free protection for your applications and to get access to all the features.
- data/app/assets/stylesheets/alchemy/base.css.scss +1 -1
- data/app/assets/stylesheets/alchemy/sitemap.css.scss +3 -0
- data/app/controllers/alchemy/admin/elements_controller.rb +1 -1
- data/app/controllers/alchemy/admin/pages_controller.rb +2 -2
- data/app/models/alchemy/element.rb +1 -1
- data/app/models/alchemy/message.rb +7 -10
- data/app/models/alchemy/page.rb +7 -7
- data/app/views/alchemy/admin/pages/_page.html.erb +1 -1
- data/config/alchemy/config.yml +9 -13
- data/config/locales/alchemy.de.yml +29 -15
- data/config/locales/alchemy.en.yml +27 -10
- data/lib/alchemy/version.rb +1 -1
- data/spec/factories.rb +1 -1
- data/spec/helpers/elements_helper_spec.rb +4 -4
- data/spec/models/language_spec.rb +2 -2
- data/spec/models/page_spec.rb +2 -2
- data/spec/spec_helper.rb +1 -2
- metadata +34 -34
@@ -59,7 +59,7 @@ module Alchemy
|
|
59
59
|
else
|
60
60
|
page = Page.create(params[:page], :as => current_user.role.to_sym)
|
61
61
|
end
|
62
|
-
render_errors_or_redirect(page, parent.layoutpage? ? admin_layoutpages_path : admin_pages_path, t("Page created", :name => page.name), '
|
62
|
+
render_errors_or_redirect(page, parent.layoutpage? ? admin_layoutpages_path : admin_pages_path, t("Page created", :name => page.name), '#alchemyOverlay button.button')
|
63
63
|
end
|
64
64
|
|
65
65
|
# Edit the content of the page and all its elements and contents.
|
@@ -91,7 +91,7 @@ module Alchemy
|
|
91
91
|
@notice = t("Page saved", :name => @page.name)
|
92
92
|
@while_page_edit = request.referer.include?('edit')
|
93
93
|
else
|
94
|
-
render_remote_errors(@page,
|
94
|
+
render_remote_errors(@page, '#alchemyOverlay button.button')
|
95
95
|
end
|
96
96
|
end
|
97
97
|
|
@@ -11,7 +11,7 @@ module Alchemy
|
|
11
11
|
has_and_belongs_to_many :to_be_sweeped_pages, :class_name => 'Alchemy::Page', :uniq => true, :join_table => 'alchemy_elements_alchemy_pages'
|
12
12
|
|
13
13
|
validates_uniqueness_of :position, :scope => [:page_id, :cell_id]
|
14
|
-
validates_presence_of :name, :on => :create
|
14
|
+
validates_presence_of :name, :on => :create
|
15
15
|
|
16
16
|
attr_accessor :create_contents_after_create
|
17
17
|
|
@@ -1,16 +1,13 @@
|
|
1
|
-
# This is a tableless model only used for validating
|
2
|
-
#
|
1
|
+
# This is a tableless model only used for validating contactform fields.
|
2
|
+
#
|
3
|
+
# You can specify the fields for your contactform in the +config/alchemy/config.yml+ file in the +:mailer+ options.
|
3
4
|
#
|
4
5
|
# === Example Contactform Configuration:
|
5
6
|
#
|
6
7
|
# :mailer:
|
7
8
|
# :form_layout_name: contact
|
8
9
|
# :fields: [subject, name, email, message, info]
|
9
|
-
# :validate_fields:
|
10
|
-
# :name:
|
11
|
-
# :message: blank_name
|
12
|
-
# :email:
|
13
|
-
# :message: blank_email
|
10
|
+
# :validate_fields: [name, email]
|
14
11
|
|
15
12
|
module Alchemy
|
16
13
|
class Message
|
@@ -31,9 +28,9 @@ module Alchemy
|
|
31
28
|
end
|
32
29
|
|
33
30
|
@@config[:validate_fields].each do |field|
|
34
|
-
validates_presence_of field
|
35
|
-
if field
|
36
|
-
validates_format_of field
|
31
|
+
validates_presence_of field
|
32
|
+
if field.to_s == "email"
|
33
|
+
validates_format_of field, :with => ::Authlogic::Regex.email, :if => :email_is_filled
|
37
34
|
end
|
38
35
|
end
|
39
36
|
|
data/app/models/alchemy/page.rb
CHANGED
@@ -13,18 +13,18 @@ module Alchemy
|
|
13
13
|
has_and_belongs_to_many :to_be_sweeped_elements, :class_name => 'Alchemy::Element', :uniq => true, :join_table => 'alchemy_elements_alchemy_pages'
|
14
14
|
belongs_to :language
|
15
15
|
|
16
|
-
validates_presence_of :name
|
17
|
-
validates_presence_of :page_layout, :
|
18
|
-
validates_presence_of :parent_id, :
|
19
|
-
validates_length_of :urlname, :minimum => 3, :
|
20
|
-
validates_uniqueness_of :urlname, :
|
21
|
-
validates :urlname, :exclusion => { :in => RESERVED_URLNAMES
|
16
|
+
validates_presence_of :name
|
17
|
+
validates_presence_of :page_layout, :unless => :systempage?
|
18
|
+
validates_presence_of :parent_id, :if => proc { Page.count > 1 }
|
19
|
+
validates_length_of :urlname, :minimum => 3, :if => :urlname_entered?
|
20
|
+
validates_uniqueness_of :urlname, :scope => [:language_id, :layoutpage], :if => :urlname_entered?
|
21
|
+
validates :urlname, :exclusion => { :in => RESERVED_URLNAMES }
|
22
22
|
|
23
23
|
attr_accessor :do_not_autogenerate
|
24
24
|
attr_accessor :do_not_sweep
|
25
25
|
attr_accessor :do_not_validate_language
|
26
26
|
|
27
|
-
|
27
|
+
before_validation :set_url_name, :unless => proc { |page| page.systempage? || page.redirects_to_external? }
|
28
28
|
before_save :set_title, :unless => proc { |page| page.systempage? || page.redirects_to_external? || !page.title.blank? }
|
29
29
|
before_save :set_language_code, :unless => :systempage?
|
30
30
|
before_save :set_restrictions_to_child_pages, :if => proc { |page| !page.systempage? && page.restricted_changed? }
|
@@ -90,7 +90,7 @@
|
|
90
90
|
<div class="sitemap_sitename">
|
91
91
|
<%- if page.redirects_to_external? -%>
|
92
92
|
<span class="sitemap_pagename_link <%= cycle('even', 'odd') %> inactive"><%= page.name %></span>
|
93
|
-
<span class="redirect_url">
|
93
|
+
<span class="redirect_url" title="<%= h page.urlname %>">
|
94
94
|
» <%= t('Redirects to') %>:
|
95
95
|
<%= h page.urlname %>
|
96
96
|
</span>
|
data/config/alchemy/config.yml
CHANGED
@@ -81,20 +81,20 @@ default_language:
|
|
81
81
|
# ==== Options:
|
82
82
|
#
|
83
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: [
|
84
|
+
# fields: [Array] # An Array of fieldnames.
|
85
|
+
# validate_fields: [Array] # An Array of fieldnames to be validated on presence.
|
86
86
|
#
|
87
87
|
# ==== Translating validation messages:
|
88
88
|
#
|
89
|
-
# The
|
89
|
+
# The validation messages are passed through ::I18n.t so you can translate it in your language yml file.
|
90
90
|
#
|
91
|
-
# Example:
|
91
|
+
# ==== Example:
|
92
92
|
#
|
93
93
|
# de:
|
94
|
-
#
|
95
|
-
#
|
96
|
-
#
|
97
|
-
#
|
94
|
+
# activemodel:
|
95
|
+
# attributes:
|
96
|
+
# alchemy/message:
|
97
|
+
# firstname: Vorname
|
98
98
|
#
|
99
99
|
:mailer:
|
100
100
|
:page_layout_name: contact
|
@@ -103,11 +103,7 @@ default_language:
|
|
103
103
|
:mail_from: your.mail@your-domain.com
|
104
104
|
:mail_to: your.mail@your-domain.com
|
105
105
|
:fields: [salutation, firstname, lastname, address, zip, city, phone, email, message]
|
106
|
-
:validate_fields:
|
107
|
-
:lastname:
|
108
|
-
:message: enter_name
|
109
|
-
:email:
|
110
|
-
:message: enter_email
|
106
|
+
:validate_fields: [lastname, email]
|
111
107
|
|
112
108
|
# === User roles
|
113
109
|
# You can add own user roles. To set permissions for this roles please add an authorization_rules.rb file in your config folder.
|
@@ -113,12 +113,6 @@ de:
|
|
113
113
|
message: 'Nachricht'
|
114
114
|
send: 'absenden'
|
115
115
|
mandatory_fields: '*Pflichtfelder. Bitte füllen Sie diese Felder aus.'
|
116
|
-
# Translations for the contactform validations.
|
117
|
-
# Validations are set in the config/alchemy/config.yml mailer section.
|
118
|
-
validations:
|
119
|
-
enter_name: 'Bitte geben Sie Ihren Namen an'
|
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
116
|
# The flash message shown after succesfully sending the message.
|
123
117
|
messages:
|
124
118
|
success: 'Ihre Nachricht wurde erfolgreich übermittelt.'
|
@@ -232,7 +226,7 @@ de:
|
|
232
226
|
"No EssenceType given": ""
|
233
227
|
"No image found. Did you saved the element?": "Es wurde kein Bild gefunden. Haben Sie das Element auch gespeichert?"
|
234
228
|
"No items in your clipboard": "Ihre Zwischenablage ist leer"
|
235
|
-
"None": ""
|
229
|
+
"None": "keine"
|
236
230
|
"Open Link in": "Link öffnen in"
|
237
231
|
"Page deleted": "%{name} wurde gelöscht"
|
238
232
|
"Page saved": "%{name} wurde gespeichert"
|
@@ -253,13 +247,11 @@ de:
|
|
253
247
|
"Picture cache flushed": "Bildercache wurde geleert"
|
254
248
|
"Please Signup": "Um Ihre Homepage bearbeiten zu können, müssen Sie als erstes einen Admin Benutzer einrichten."
|
255
249
|
"Please choose": "Bitte wählen"
|
256
|
-
"Please choose a page layout.": "Bitte wählen Sie einen Seitentyp."
|
257
|
-
choose_element: "Bitte wählen Sie ein Element."
|
258
250
|
"Please log in": "Bitte melden Sie sich an."
|
259
251
|
use_alternative_uploader_instead: "Benutzen Sie bitte diesen alternativen Uploader."
|
260
252
|
"Publish page": "veröffentlichen"
|
261
253
|
"Read the License": "Lizenz lesen"
|
262
|
-
"Redirects to": ""
|
254
|
+
"Redirects to": "Leitet weiter auf"
|
263
255
|
"Remove item from clipboard": "Inhalt aus der Zwischenablage entfernen"
|
264
256
|
"Remove this content": "Diesen Inhalt entfernen"
|
265
257
|
"Reset Imagemask": "Bildmaske zurücksetzen"
|
@@ -273,7 +265,6 @@ de:
|
|
273
265
|
"Show trash": "Papierkorb anzeigen"
|
274
266
|
"Size": "Größe"
|
275
267
|
"Sort pages": "Seiten sortieren"
|
276
|
-
"Status": ""
|
277
268
|
"Successfully added content": "%{content} wurde hinzugefügt"
|
278
269
|
"Successfully deleted content": "%{content} wurde gelöscht"
|
279
270
|
"Successfully saved content position": "Die Position wurde gespeichert."
|
@@ -285,8 +276,6 @@ de:
|
|
285
276
|
"Title": "Titel"
|
286
277
|
"To manage your website open a browser and go to": "Um die Inhalte Ihrer Webseite zu bearbeiten klicken Sie bitte auf folgenden Link"
|
287
278
|
"Trash": "Papierkorb"
|
288
|
-
"URL": ""
|
289
|
-
"URL-Name already token": "Der URL-Name ist bereits vergeben."
|
290
279
|
"User created": "%{name} wurde erstellt"
|
291
280
|
"User deleted": "%{name} wurde gelöscht"
|
292
281
|
"User updated": "%{name} wurde aktualisiert"
|
@@ -481,7 +470,6 @@ de:
|
|
481
470
|
picture_gallery_editor: 'Bilder'
|
482
471
|
place_link: "Text verlinken"
|
483
472
|
player_version: "Flashplayer Version"
|
484
|
-
"please enter a name": "Bitte geben Sie einen Namen ein."
|
485
473
|
"please enter subject and mail address": "Bitte geben Sie den Betreff und eine Empfängeradresse an."
|
486
474
|
please_confirm: "Bitte bestätigen"
|
487
475
|
please_wait: "Bitte warten"
|
@@ -520,7 +508,6 @@ de:
|
|
520
508
|
upload_file: "Datei(en) hochladen"
|
521
509
|
upload_image: "Bild(er) hochladen"
|
522
510
|
url_name: "URL-Name"
|
523
|
-
urlname_to_short: "Der URL-Name der Seite ist zu kurz (min. 3 Zeichen)"
|
524
511
|
username: "Benutzername"
|
525
512
|
visible: "sichtbar"
|
526
513
|
want_to_create_new_language: "Wollen Sie einen neuen leeren Sprachbaum erstellen?"
|
@@ -655,6 +642,19 @@ de:
|
|
655
642
|
words_connector: ", "
|
656
643
|
two_words_connector: " und "
|
657
644
|
last_word_connector: " und "
|
645
|
+
|
646
|
+
activemodel:
|
647
|
+
attributes:
|
648
|
+
alchemy/message:
|
649
|
+
salutation: Anrede
|
650
|
+
firstname: Vorname
|
651
|
+
lastname: Nachname
|
652
|
+
address: Adresse
|
653
|
+
zip: PLZ
|
654
|
+
city: Ort
|
655
|
+
phone: Telefon
|
656
|
+
email: E-Mail
|
657
|
+
message: Nachricht
|
658
658
|
|
659
659
|
# Translations for active record database models and error messages.
|
660
660
|
activerecord:
|
@@ -795,11 +795,25 @@ de:
|
|
795
795
|
attributes:
|
796
796
|
essence:
|
797
797
|
validation_failed: 'Validierung fehlgeschlagen.'
|
798
|
+
alchemy/element:
|
799
|
+
attributes:
|
800
|
+
name:
|
801
|
+
blank: "^Bitte wählen Sie ein Element."
|
798
802
|
alchemy/language:
|
799
803
|
attributes:
|
800
804
|
language_code:
|
801
805
|
invalid: 'ist nicht korrekt. Bitte exakt zwei Kleinbuchstaben verwenden.'
|
802
806
|
taken: 'ist für dieses Länderkürzel bereits vergeben.'
|
807
|
+
alchemy/page:
|
808
|
+
attributes:
|
809
|
+
name:
|
810
|
+
blank: "^Bitte geben Sie einen Namen ein."
|
811
|
+
page_layout:
|
812
|
+
blank: "^Bitte wählen Sie einen Seitentyp."
|
813
|
+
urlname:
|
814
|
+
too_short: "^Der URL-Name der Seite ist zu kurz (min. 3 Zeichen)"
|
815
|
+
taken: "^Der URL-Name ist bereits vergeben."
|
816
|
+
exclusion: "^Der URL-Name der Seite kann nicht benutzt werden."
|
803
817
|
|
804
818
|
# Translations for the authentication system used in alchemy.
|
805
819
|
authlogic:
|
@@ -96,12 +96,6 @@ en:
|
|
96
96
|
message: 'Message'
|
97
97
|
send: 'Send'
|
98
98
|
mandatory_fields: '*Mandatory fields.'
|
99
|
-
# Translations for the contactform validations.
|
100
|
-
# Validations are set in the config/alchemy/config.yml mailer section.
|
101
|
-
validations:
|
102
|
-
enter_name: 'Please enter your name'
|
103
|
-
enter_email: 'Please enter your email'
|
104
|
-
wrong_email_format: 'Email has wrong format'
|
105
99
|
# The flash message shown after succesfully sending the message.
|
106
100
|
messages:
|
107
101
|
success: 'Your message was delivered succesfully.'
|
@@ -186,7 +180,6 @@ en:
|
|
186
180
|
big_thumbnails: "Big thumbnails"
|
187
181
|
choose_element_as_target: "Please choose an element as target"
|
188
182
|
choose_element_to_link: "Please choose an element"
|
189
|
-
choose_element: "Please choose an element."
|
190
183
|
choose_file_to_link: "Please choose a file to link"
|
191
184
|
click_to_show_all: "Click to show all again."
|
192
185
|
confirm_to_delete_file: "Do you really want to delete this file from the server?"
|
@@ -326,7 +319,6 @@ en:
|
|
326
319
|
"Picture deleted successfully": "Picture %{name} deleted"
|
327
320
|
place_link: "Link text"
|
328
321
|
player_version: "Flashplayer Version"
|
329
|
-
"please enter a name": "Please enter a name."
|
330
322
|
"please enter subject and mail address": "Please enter recipient and subject."
|
331
323
|
please_confirm: "Please confirm"
|
332
324
|
please_wait: "Please wait"
|
@@ -359,7 +351,6 @@ en:
|
|
359
351
|
upload_file: "Upload file(s)"
|
360
352
|
upload_image: "Upload image(s)"
|
361
353
|
url_name: "URL-Name"
|
362
|
-
urlname_to_short: "The pages urlname is too short (minimum of 3 characters)"
|
363
354
|
username: "Username"
|
364
355
|
want_to_create_new_language: "Do you want to create a new empty language tree?"
|
365
356
|
want_to_make_copy_of_existing_language: "Do you want to copy an existing language tree?"
|
@@ -488,6 +479,18 @@ en:
|
|
488
479
|
one: "over 1 year"
|
489
480
|
many: "over %{count} years"
|
490
481
|
|
482
|
+
activemodel:
|
483
|
+
attributes:
|
484
|
+
alchemy/message:
|
485
|
+
salutation: 'Salutation'
|
486
|
+
firstname: 'Firstname'
|
487
|
+
lastname: 'Lastname'
|
488
|
+
address: 'Street / No.'
|
489
|
+
zip: 'Zipcode / City'
|
490
|
+
phone: 'Telephone'
|
491
|
+
email: 'Email'
|
492
|
+
message: 'Message'
|
493
|
+
|
491
494
|
# Translations for active record database models and error messages.
|
492
495
|
activerecord:
|
493
496
|
|
@@ -589,10 +592,24 @@ en:
|
|
589
592
|
attributes:
|
590
593
|
essence:
|
591
594
|
validation_failed: 'Validation failed.'
|
595
|
+
alchemy/element:
|
596
|
+
attributes:
|
597
|
+
name:
|
598
|
+
blank: "^Please choose an element."
|
592
599
|
alchemy/language:
|
593
600
|
attributes:
|
594
601
|
code:
|
595
|
-
invalid: 'Format of languagecode is not valid. Please use exactly two lowercase characters.'
|
602
|
+
invalid: '^Format of languagecode is not valid. Please use exactly two lowercase characters.'
|
603
|
+
alchemy/page:
|
604
|
+
attributes:
|
605
|
+
name:
|
606
|
+
blank: "^Please enter a name."
|
607
|
+
page_layout:
|
608
|
+
blank: "^Please choose a page layout."
|
609
|
+
urlname:
|
610
|
+
too_short: "^The pages urlname is too short (minimum of 3 characters)."
|
611
|
+
taken: "^URL-Name already taken."
|
612
|
+
exclusion: "^URL-Name reserved."
|
596
613
|
|
597
614
|
# Translations for the authentication system used in alchemy.
|
598
615
|
authlogic:
|
data/lib/alchemy/version.rb
CHANGED
data/spec/factories.rb
CHANGED
@@ -41,7 +41,7 @@ FactoryGirl.define do
|
|
41
41
|
|
42
42
|
language { Alchemy::Language.find_by_language_code('kl') || Factory(:language) }
|
43
43
|
name "A Page"
|
44
|
-
parent_id { Factory(:language_root_page).id }
|
44
|
+
parent_id { (Alchemy::Page.find_by_language_root(true) || Factory(:language_root_page)).id }
|
45
45
|
page_layout "standard"
|
46
46
|
|
47
47
|
factory :language_root_page do
|
@@ -54,13 +54,13 @@ describe Alchemy::ElementsHelper do
|
|
54
54
|
|
55
55
|
context "with from_page option" do
|
56
56
|
it "should render all elements from a certain page" do
|
57
|
-
@another_page = Factory(:public_page)
|
57
|
+
@another_page = Factory(:public_page, :name => 'Another Page')
|
58
58
|
@element_on_other_page = Factory(:element, :name => 'headline', :page => @another_page)
|
59
59
|
helper.render_elements(:from_page => @another_page).should match(/id="#{@element_on_other_page.name}_\d*"/)
|
60
60
|
end
|
61
61
|
|
62
62
|
it "should not render any elements in a cell from the given page" do
|
63
|
-
@another_page = Factory(:public_page)
|
63
|
+
@another_page = Factory(:public_page, :name => 'Another Page')
|
64
64
|
@cell = Factory(:cell, :name => "Celltest", :page => @another_page)
|
65
65
|
@element_not_in_cell = Factory(:element, :name => 'headline', :page => @another_page)
|
66
66
|
@element_in_cell = Factory(:element, :name => 'article', :cell => @cell, :page => @another_page)
|
@@ -69,7 +69,7 @@ describe Alchemy::ElementsHelper do
|
|
69
69
|
|
70
70
|
context "and from_cell option" do
|
71
71
|
it "should render all elements from the page's cell" do
|
72
|
-
@another_page = Factory(:public_page)
|
72
|
+
@another_page = Factory(:public_page, :name => 'Another Page')
|
73
73
|
@cell = Factory(:cell, :name => "Celltest", :page => @another_page)
|
74
74
|
@element_not_in_cell = Factory(:element, :name => 'headline', :page => @another_page)
|
75
75
|
@element_in_cell = Factory(:element, :name => 'article', :cell => @cell, :page => @another_page)
|
@@ -119,7 +119,7 @@ describe Alchemy::ElementsHelper do
|
|
119
119
|
context "with offset option" do
|
120
120
|
it "should render all elements beginning with the second." do
|
121
121
|
@page.elements.delete_all
|
122
|
-
@another_page = Factory(:public_page)
|
122
|
+
@another_page = Factory(:public_page, :name => 'Another Page')
|
123
123
|
@another_element_1 = Factory(:element, :page => @page)
|
124
124
|
@another_element_2 = Factory(:element, :page => @page)
|
125
125
|
@another_element_3 = Factory(:element, :page => @page)
|
@@ -76,7 +76,7 @@ describe Alchemy::Language do
|
|
76
76
|
describe "#set_pages_language if language´s code has changed" do
|
77
77
|
it "should update all its pages with the new code" do
|
78
78
|
@page = Factory(:page, :language => @language)
|
79
|
-
@other_page = Factory(:page, :language => @language)
|
79
|
+
@other_page = Factory(:page, :language => @language, :name => 'Another Page')
|
80
80
|
@language.update_attributes(:code => "fo")
|
81
81
|
@language.reload; @page.reload; @other_page.reload
|
82
82
|
[@page.language_code, @other_page.language_code].should == [@language.code, @language.code]
|
@@ -85,7 +85,7 @@ describe Alchemy::Language do
|
|
85
85
|
describe "#unpublish_pages" do
|
86
86
|
it "should set all pages to unpublic if it gets set to unpublic" do
|
87
87
|
@page = Factory(:page, :language => @language)
|
88
|
-
@other_page = Factory(:page, :language => @language)
|
88
|
+
@other_page = Factory(:page, :language => @language, :name => 'Another Page')
|
89
89
|
@language.update_attributes(:public => false)
|
90
90
|
@language.reload; @page.reload; @other_page.reload
|
91
91
|
[@page.public?, @other_page.public?].should == [false, false]
|
data/spec/models/page_spec.rb
CHANGED
@@ -300,7 +300,7 @@ describe Alchemy::Page do
|
|
300
300
|
|
301
301
|
it "should return the pages" do
|
302
302
|
page_1 = Factory(:page, :language => @language)
|
303
|
-
page_2 = Factory(:page, :language => @language)
|
303
|
+
page_2 = Factory(:page, :language => @language, :name => 'Another Page')
|
304
304
|
clipboard = [
|
305
305
|
{:id => page_1.id, :action => "copy"},
|
306
306
|
{:id => page_2.id, :action => "copy"}
|
@@ -326,7 +326,7 @@ describe Alchemy::Page do
|
|
326
326
|
|
327
327
|
it "should return one page" do
|
328
328
|
page_1 = Factory(:page, :language => @language, :page_layout => 'standard')
|
329
|
-
page_2 = Factory(:page, :language => @language, :page_layout => 'contact')
|
329
|
+
page_2 = Factory(:page, :name => 'Another Page', :language => @language, :page_layout => 'contact')
|
330
330
|
clipboard = [
|
331
331
|
{:id => page_1.id, :action => "copy"},
|
332
332
|
{:id => page_2.id, :action => "copy"}
|
data/spec/spec_helper.rb
CHANGED
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.
|
4
|
+
version: 2.1.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,11 +11,11 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2012-04-
|
14
|
+
date: 2012-04-13 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rails
|
18
|
-
requirement: &
|
18
|
+
requirement: &70348038225060 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
21
|
- - ~>
|
@@ -23,10 +23,10 @@ dependencies:
|
|
23
23
|
version: 3.1.4
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
|
-
version_requirements: *
|
26
|
+
version_requirements: *70348038225060
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: authlogic
|
29
|
-
requirement: &
|
29
|
+
requirement: &70348038223480 !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: *
|
37
|
+
version_requirements: *70348038223480
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: awesome_nested_set
|
40
|
-
requirement: &
|
40
|
+
requirement: &70348038222140 !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: *
|
48
|
+
version_requirements: *70348038222140
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
50
|
name: declarative_authorization
|
51
|
-
requirement: &
|
51
|
+
requirement: &70348038221160 !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: *
|
59
|
+
version_requirements: *70348038221160
|
60
60
|
- !ruby/object:Gem::Dependency
|
61
61
|
name: tvdeyen-fleximage
|
62
|
-
requirement: &
|
62
|
+
requirement: &70348038219940 !ruby/object:Gem::Requirement
|
63
63
|
none: false
|
64
64
|
requirements:
|
65
65
|
- - ~>
|
@@ -67,10 +67,10 @@ dependencies:
|
|
67
67
|
version: 1.2.0
|
68
68
|
type: :runtime
|
69
69
|
prerelease: false
|
70
|
-
version_requirements: *
|
70
|
+
version_requirements: *70348038219940
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: kaminari
|
73
|
-
requirement: &
|
73
|
+
requirement: &70348038218800 !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: *
|
81
|
+
version_requirements: *70348038218800
|
82
82
|
- !ruby/object:Gem::Dependency
|
83
83
|
name: acts_as_ferret
|
84
|
-
requirement: &
|
84
|
+
requirement: &70348038231900 !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: *
|
92
|
+
version_requirements: *70348038231900
|
93
93
|
- !ruby/object:Gem::Dependency
|
94
94
|
name: acts_as_list
|
95
|
-
requirement: &
|
95
|
+
requirement: &70348038230440 !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: *
|
103
|
+
version_requirements: *70348038230440
|
104
104
|
- !ruby/object:Gem::Dependency
|
105
105
|
name: magiclabs-userstamp
|
106
|
-
requirement: &
|
106
|
+
requirement: &70348038227800 !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: *
|
114
|
+
version_requirements: *70348038227800
|
115
115
|
- !ruby/object:Gem::Dependency
|
116
116
|
name: dynamic_form
|
117
|
-
requirement: &
|
117
|
+
requirement: &70348038242760 !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: *
|
125
|
+
version_requirements: *70348038242760
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
127
|
name: jquery-rails
|
128
|
-
requirement: &
|
128
|
+
requirement: &70348038241540 !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: *
|
136
|
+
version_requirements: *70348038241540
|
137
137
|
- !ruby/object:Gem::Dependency
|
138
138
|
name: attachment_magic
|
139
|
-
requirement: &
|
139
|
+
requirement: &70348038240380 !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: *
|
147
|
+
version_requirements: *70348038240380
|
148
148
|
- !ruby/object:Gem::Dependency
|
149
149
|
name: sass-rails
|
150
|
-
requirement: &
|
150
|
+
requirement: &70348038239560 !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: *
|
158
|
+
version_requirements: *70348038239560
|
159
159
|
- !ruby/object:Gem::Dependency
|
160
160
|
name: rspec-rails
|
161
|
-
requirement: &
|
161
|
+
requirement: &70348038238780 !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: *
|
169
|
+
version_requirements: *70348038238780
|
170
170
|
- !ruby/object:Gem::Dependency
|
171
171
|
name: sqlite3
|
172
|
-
requirement: &
|
172
|
+
requirement: &70348038238080 !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: *
|
180
|
+
version_requirements: *70348038238080
|
181
181
|
description: Alchemy is a Rails 3 CMS with a flexible content storing architecture.
|
182
182
|
email:
|
183
183
|
- alchemy@magiclabs.de
|
@@ -816,7 +816,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
816
816
|
version: '0'
|
817
817
|
segments:
|
818
818
|
- 0
|
819
|
-
hash: -
|
819
|
+
hash: -2174257304759105634
|
820
820
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
821
821
|
none: false
|
822
822
|
requirements:
|
@@ -825,7 +825,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
825
825
|
version: '0'
|
826
826
|
segments:
|
827
827
|
- 0
|
828
|
-
hash: -
|
828
|
+
hash: -2174257304759105634
|
829
829
|
requirements:
|
830
830
|
- ImageMagick (libmagick), v6.6 or greater.
|
831
831
|
rubyforge_project:
|