refinerycms-pages 2.0.5 → 2.0.6
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/app/controllers/refinery/admin/pages_dialogs_controller.rb +9 -9
- data/app/controllers/refinery/pages_controller.rb +11 -8
- data/app/helpers/refinery/admin/pages_helper.rb +25 -0
- data/app/helpers/refinery/pages_helper.rb +16 -0
- data/app/models/refinery/page.rb +16 -25
- data/app/models/refinery/page_part.rb +1 -2
- data/app/views/refinery/admin/pages/_page.html.erb +8 -2
- data/app/views/refinery/admin/pages_dialogs/_page_link.html.erb +5 -2
- data/config/locales/cs.yml +1 -1
- data/config/locales/en.yml +1 -0
- data/config/locales/fr.yml +7 -0
- data/config/locales/pl.yml +8 -6
- data/lib/refinery/pages/instance_methods.rb +5 -1
- data/spec/helpers/refinery/pages/admin/pages_helper_spec.rb +50 -1
- data/spec/helpers/refinery/pages/pages_helper_spec.rb +30 -0
- data/spec/lib/generators/refinery/pages/pages_generator_spec.rb +1 -1
- data/spec/models/refinery/page_spec.rb +45 -18
- data/spec/requests/refinery/admin/pages_spec.rb +37 -44
- data/spec/requests/refinery/pages_spec.rb +28 -25
- metadata +7 -5
@@ -4,6 +4,8 @@ module Refinery
|
|
4
4
|
module Admin
|
5
5
|
class PagesDialogsController < ::Refinery::Admin::DialogsController
|
6
6
|
|
7
|
+
helper :'refinery/admin/pages'
|
8
|
+
|
7
9
|
def link_to
|
8
10
|
# Get the switch_local variable to determine the locale we're currently editing
|
9
11
|
# Set up Globalize with our current locale
|
@@ -51,6 +53,7 @@ module Refinery
|
|
51
53
|
end
|
52
54
|
|
53
55
|
def test_url
|
56
|
+
result = 'failure'
|
54
57
|
begin
|
55
58
|
timeout(5) do
|
56
59
|
unless params[:url].blank?
|
@@ -59,19 +62,16 @@ module Refinery
|
|
59
62
|
url.host = URI.parse(request.url).host
|
60
63
|
end
|
61
64
|
|
62
|
-
result =
|
63
|
-
|
64
|
-
'success'
|
65
|
-
else
|
66
|
-
'failure'
|
67
|
-
end
|
68
|
-
|
69
|
-
render :json => {:result => result}
|
65
|
+
result = 'success' if [Net::HTTPSuccess, Net::HTTPRedirection].
|
66
|
+
include? Net::HTTP.get_response(url)
|
70
67
|
end
|
71
68
|
end
|
69
|
+
|
72
70
|
rescue
|
73
|
-
|
71
|
+
# the result is already set to failure.
|
74
72
|
end
|
73
|
+
|
74
|
+
render :json => {:result => result}
|
75
75
|
end
|
76
76
|
|
77
77
|
def test_email
|
@@ -1,6 +1,7 @@
|
|
1
1
|
module Refinery
|
2
2
|
class PagesController < ::ApplicationController
|
3
3
|
before_filter :find_page, :set_canonical, :except => [:preview]
|
4
|
+
before_filter :find_page_for_preview, :only => [:preview]
|
4
5
|
|
5
6
|
# Save whole Page after delivery
|
6
7
|
after_filter { |c| c.write_cache? }
|
@@ -39,14 +40,6 @@ module Refinery
|
|
39
40
|
end
|
40
41
|
|
41
42
|
def preview
|
42
|
-
if page(fallback_to_404 = false)
|
43
|
-
# Preview existing pages
|
44
|
-
@page.attributes = params[:page]
|
45
|
-
elsif params[:page]
|
46
|
-
# Preview a non-persisted page
|
47
|
-
@page = Page.new(params[:page])
|
48
|
-
end
|
49
|
-
|
50
43
|
render_with_templates?(:action => :show)
|
51
44
|
end
|
52
45
|
|
@@ -72,6 +65,16 @@ module Refinery
|
|
72
65
|
page.children.order('lft ASC').live.first
|
73
66
|
end
|
74
67
|
|
68
|
+
def find_page_for_preview
|
69
|
+
if page(fallback_to_404 = false)
|
70
|
+
# Preview existing pages
|
71
|
+
@page.attributes = view_context.sanitize_hash params[:page]
|
72
|
+
elsif params[:page]
|
73
|
+
# Preview a non-persisted page
|
74
|
+
@page = Page.new params[:page]
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
75
78
|
def find_page(fallback_to_404 = true)
|
76
79
|
@page ||= case action_name
|
77
80
|
when "home"
|
@@ -22,6 +22,31 @@ module Refinery
|
|
22
22
|
{ :selected => Refinery::Pages.send("#{template_type}_whitelist").first }
|
23
23
|
end
|
24
24
|
end
|
25
|
+
|
26
|
+
# In the admin area we use a slightly different title
|
27
|
+
# to inform the which pages are draft or hidden pages
|
28
|
+
def page_meta_information(page)
|
29
|
+
meta_information = ActiveSupport::SafeBuffer.new
|
30
|
+
meta_information << content_tag(:span, :class => 'label') do
|
31
|
+
::I18n.t('hidden', :scope => 'refinery.admin.pages.page')
|
32
|
+
end unless page.show_in_menu?
|
33
|
+
|
34
|
+
meta_information << content_tag(:span, :class => 'label notice') do
|
35
|
+
::I18n.t('draft', :scope => 'refinery.admin.pages.page')
|
36
|
+
end if page.draft?
|
37
|
+
|
38
|
+
meta_information.html_safe
|
39
|
+
end
|
40
|
+
|
41
|
+
# We show the title from the next available locale
|
42
|
+
# if there is no title for the current locale
|
43
|
+
def page_title_with_translations(page)
|
44
|
+
if page.title.present?
|
45
|
+
page.title
|
46
|
+
else
|
47
|
+
page.translations.detect {|t| t.title.present?}.title
|
48
|
+
end
|
49
|
+
end
|
25
50
|
end
|
26
51
|
end
|
27
52
|
end
|
@@ -1,4 +1,20 @@
|
|
1
1
|
module Refinery
|
2
2
|
module PagesHelper
|
3
|
+
|
4
|
+
def sanitize_hash(input_hash)
|
5
|
+
sanitized_hash = HashWithIndifferentAccess.new
|
6
|
+
input_hash.each do |key, value|
|
7
|
+
# ActionPack's sanitize calls html_safe on sanitized input.
|
8
|
+
sanitized_hash[key] = if value.respond_to? :html_safe
|
9
|
+
sanitize value
|
10
|
+
elsif value.respond_to? :each
|
11
|
+
sanitize_hash value
|
12
|
+
else
|
13
|
+
value
|
14
|
+
end
|
15
|
+
end
|
16
|
+
sanitized_hash
|
17
|
+
end
|
18
|
+
|
3
19
|
end
|
4
20
|
end
|
data/app/models/refinery/page.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
# Encoding: utf-8
|
2
|
+
require 'refinerycms-core'
|
2
3
|
require 'acts_as_indexed'
|
3
4
|
require 'friendly_id'
|
4
5
|
|
5
6
|
module Refinery
|
6
|
-
class Page <
|
7
|
+
class Page < Core::BaseModel
|
7
8
|
extend FriendlyId
|
8
9
|
|
9
10
|
# when collecting the pages path how is each of the pages seperated?
|
@@ -25,9 +26,8 @@ module Refinery
|
|
25
26
|
attr_accessible :id, :deletable, :link_url, :menu_match, :meta_keywords,
|
26
27
|
:skip_to_first_child, :position, :show_in_menu, :draft,
|
27
28
|
:parts_attributes, :browser_title, :meta_description,
|
28
|
-
:parent_id, :menu_title, :
|
29
|
-
:
|
30
|
-
:slug
|
29
|
+
:parent_id, :menu_title, :page_id, :layout_template,
|
30
|
+
:view_template, :custom_slug, :slug
|
31
31
|
|
32
32
|
attr_accessor :locale, :page_title, :page_menu_title # to hold temporarily
|
33
33
|
validates :title, :presence => true
|
@@ -95,7 +95,7 @@ module Refinery
|
|
95
95
|
end
|
96
96
|
end
|
97
97
|
|
98
|
-
# Finds
|
98
|
+
# Finds pages by their title. This method is necessary because pages
|
99
99
|
# are translated which means the title attribute does not exist on the
|
100
100
|
# pages table thus requiring us to find the attribute on the translations table
|
101
101
|
# and then join to the pages table again to return the associated record.
|
@@ -103,9 +103,9 @@ module Refinery
|
|
103
103
|
with_globalize(:title => title)
|
104
104
|
end
|
105
105
|
|
106
|
-
# Finds
|
106
|
+
# Finds pages by their slug. See by_title
|
107
107
|
def by_slug(slug, conditions={})
|
108
|
-
locales = Refinery.i18n_enabled? ? Refinery::I18n.frontend_locales : ::I18n.locale
|
108
|
+
locales = Refinery.i18n_enabled? ? Refinery::I18n.frontend_locales.map(&:to_s) : ::I18n.locale.to_s
|
109
109
|
with_globalize({ :locale => locales, :slug => slug }.merge(conditions))
|
110
110
|
end
|
111
111
|
|
@@ -148,7 +148,7 @@ module Refinery
|
|
148
148
|
|
149
149
|
# Wrap up the logic of finding the pages based on the translations table.
|
150
150
|
def with_globalize(conditions = {})
|
151
|
-
conditions = {:locale => ::Globalize.locale}.merge(conditions)
|
151
|
+
conditions = {:locale => ::Globalize.locale.to_s}.merge(conditions)
|
152
152
|
globalized_conditions = {}
|
153
153
|
conditions.keys.each do |key|
|
154
154
|
if (translated_attribute_names.map(&:to_s) | %w(locale)).include?(key.to_s)
|
@@ -199,7 +199,13 @@ module Refinery
|
|
199
199
|
# Consists of:
|
200
200
|
# * The default locale's translated slug
|
201
201
|
def canonical
|
202
|
-
Globalize.with_locale(
|
202
|
+
Globalize.with_locale(Refinery.i18n_enabled? && Refinery::I18n.default_frontend_locale || ::I18n.locale) { url }
|
203
|
+
end
|
204
|
+
|
205
|
+
# The canonical slug for this particular page.
|
206
|
+
# This is the slug for the default frontend locale.
|
207
|
+
def canonical_slug
|
208
|
+
Globalize.with_locale(Refinery.i18n_enabled? && Refinery::I18n.default_frontend_locale || ::I18n.locale) { slug }
|
203
209
|
end
|
204
210
|
|
205
211
|
# Returns in cascading order: custom_slug or menu_title or title depending on
|
@@ -219,7 +225,7 @@ module Refinery
|
|
219
225
|
# This ensures that they are in the correct 0,1,2,3,4... etc order.
|
220
226
|
def reposition_parts!
|
221
227
|
reload.parts.each_with_index do |part, index|
|
222
|
-
part.
|
228
|
+
part.update_attributes :position => index
|
223
229
|
end
|
224
230
|
end
|
225
231
|
|
@@ -414,21 +420,6 @@ module Refinery
|
|
414
420
|
end
|
415
421
|
end
|
416
422
|
|
417
|
-
# In the admin area we use a slightly different title to inform the which pages are draft or hidden pages
|
418
|
-
# We show the title from the next available locale if there is no title for the current locale
|
419
|
-
def title_with_meta
|
420
|
-
if self.title.present?
|
421
|
-
title = [self.title]
|
422
|
-
else
|
423
|
-
title = [self.translations.detect {|t| t.title.present?}.title]
|
424
|
-
end
|
425
|
-
|
426
|
-
title << "<em>(#{::I18n.t('hidden', :scope => 'refinery.admin.pages.page')})</em>" unless show_in_menu?
|
427
|
-
title << "<em>(#{::I18n.t('draft', :scope => 'refinery.admin.pages.page')})</em>" if draft?
|
428
|
-
|
429
|
-
title.join(' ')
|
430
|
-
end
|
431
|
-
|
432
423
|
# Used to index all the content on this page so it can be easily searched.
|
433
424
|
def all_page_part_content
|
434
425
|
parts.map(&:body).join(" ")
|
@@ -1,8 +1,7 @@
|
|
1
1
|
module Refinery
|
2
2
|
class PagePart < Refinery::Core::BaseModel
|
3
3
|
|
4
|
-
attr_accessible :title, :content, :position, :body, :
|
5
|
-
:updated_at, :refinery_page_id
|
4
|
+
attr_accessible :title, :content, :position, :body, :refinery_page_id
|
6
5
|
belongs_to :page, :foreign_key => :refinery_page_id
|
7
6
|
|
8
7
|
validates :title, :presence => true
|
@@ -7,7 +7,8 @@
|
|
7
7
|
<% end %>
|
8
8
|
|
9
9
|
<span class='title <%= 'toggle' if page.children.present? %>'>
|
10
|
-
<%= page
|
10
|
+
<%= page_title_with_translations page %>
|
11
|
+
<%= page_meta_information page %>
|
11
12
|
</span>
|
12
13
|
<% if Refinery.i18n_enabled? and Refinery::I18n.frontend_locales.many? %>
|
13
14
|
<span class='locales'>
|
@@ -36,7 +37,12 @@
|
|
36
37
|
refinery.admin_page_path(page.uncached_nested_url),
|
37
38
|
:class => "cancel confirm-delete",
|
38
39
|
:title => t('delete', :scope => 'refinery.admin.pages'),
|
39
|
-
:
|
40
|
+
:data => {
|
41
|
+
:confirm => t('message',
|
42
|
+
:scope => 'refinery.admin.delete',
|
43
|
+
:title => page_title_with_translations(page)
|
44
|
+
)
|
45
|
+
},
|
40
46
|
:method => :delete if page.deletable? %>
|
41
47
|
</span>
|
42
48
|
</div>
|
@@ -6,11 +6,14 @@
|
|
6
6
|
page_link_url = "#{[request.protocol, request.host_with_port].join}#{page_link_url}" if Refinery::Pages.absolute_page_links
|
7
7
|
-%>
|
8
8
|
<li class='clearfix<%= " child#{child}" if child %><%= " linked" if linked%>' id="<%= dom_id(page_link) -%>">
|
9
|
-
<%= link_to
|
9
|
+
<%= link_to page_link_url, {
|
10
10
|
:title => t('.link_to_this_page'),
|
11
11
|
:rel => page_link.title,
|
12
12
|
:class => 'page_link'
|
13
|
-
}.merge(link_args) %>
|
13
|
+
}.merge(link_args) do %>
|
14
|
+
<%= page_title_with_translations page_link %>
|
15
|
+
<%= page_meta_information page_link %>
|
16
|
+
<% end %>
|
14
17
|
</li>
|
15
18
|
<%= render :partial => 'page_link',
|
16
19
|
:collection => page_link.children,
|
data/config/locales/cs.yml
CHANGED
@@ -55,7 +55,7 @@ cs:
|
|
55
55
|
save_as_draft: Uložit jako pracovní verzi
|
56
56
|
skip_to_first_child: Přeskočit na první dceřinou stránku
|
57
57
|
skip_to_first_child_label: Přesměruje návštěvníka na první dceřinou stránku.
|
58
|
-
skip_to_first_child_help: Tato stránka se nezobrazí, místo toho bude odkaz na ní přesměrován na její první dceřinou stránku. To se může hodit pro seskupování
|
58
|
+
skip_to_first_child_help: Tato stránka se nezobrazí, místo toho bude odkaz na ní přesměrován na její první dceřinou stránku. To se může hodit pro seskupování stránek.
|
59
59
|
link_url: Přesměrovat tuto stránku na jiný web nebo stránku.
|
60
60
|
link_url_help: Pokud chcete aby po kliknutí na odkaz na tutu stránku byl návštěvník přesměrován na jiný web, vložte adresu (např. http://google.com), jinak nechte prázdné
|
61
61
|
parent_page_help: Můžete umístit tuto stránku v hierarchii pod jinou stránku. Pokud nevyberete nic, bude tato stránka umístěna na první úrovni.
|
data/config/locales/en.yml
CHANGED
@@ -49,6 +49,7 @@ en:
|
|
49
49
|
create_content_section: Add content section
|
50
50
|
delete_content_section: Delete content section
|
51
51
|
reorder_content_section: Reorder content sections
|
52
|
+
reorder_content_section_done: I'm done reordering the content sections
|
52
53
|
form_advanced_options:
|
53
54
|
toggle_advanced_options: Access meta tag settings and menu options
|
54
55
|
page_options: Page Options
|
data/config/locales/fr.yml
CHANGED
@@ -34,10 +34,15 @@ fr:
|
|
34
34
|
pages:
|
35
35
|
delete: Supprimer définitivement cette page
|
36
36
|
edit: Modifier cette page
|
37
|
+
new: Ajouter une nouvelle sous-page
|
38
|
+
expand_collapse: Développer ou réduire les sous-pages
|
37
39
|
page:
|
38
40
|
view_live_html: Voir cette page<br/><em>(Ouvre une nouvelle fenêtre)</em>
|
39
41
|
hidden: caché
|
40
42
|
draft: brouillon
|
43
|
+
form:
|
44
|
+
preview: Prévisualiser
|
45
|
+
preview_changes: Prévisualiser vos changements avant de les appliquer
|
41
46
|
form_new_page_parts:
|
42
47
|
title: Titre
|
43
48
|
form_page_parts:
|
@@ -48,6 +53,7 @@ fr:
|
|
48
53
|
page_options: Page Options
|
49
54
|
parent_page: Page parente
|
50
55
|
advanced_options: Options avancées
|
56
|
+
menu_title: Titre dans le menu
|
51
57
|
custom_title: Titre personnalisé
|
52
58
|
show_in_menu_title: Placer dans le menu
|
53
59
|
show_in_menu_description: Placer cette page dans le menu du site
|
@@ -59,6 +65,7 @@ fr:
|
|
59
65
|
link_url: Cette page redirige le visiteur vers un autre site ou une autre page
|
60
66
|
link_url_help: "Si vous souhaitez que cette page mène à un autre site internet ou à une autre page lorsque l'on clique dessus dans le menu, entrez une URL '(par exemple http://google.com)'. Sinon laissez ce champ vide."
|
61
67
|
parent_page_help: "Vous pouvez placer une page sous une autre page en la sélectionnant dans la liste. Si vous voulez que cette page soit une page parente, laissez ce champ vide."
|
68
|
+
menu_title_help: Si vous voulez que le menu affiche un titre différent que celui qui sera affiché sur la page, entrez-le ici.
|
62
69
|
custom_title_help: "Si vous voulez que la page ait un titre différent de celui qui apparaît dans le menu, sélectionnez 'Text' et entrez-le ici."
|
63
70
|
actions:
|
64
71
|
create_new_page: Créer une nouvelle page
|
data/config/locales/pl.yml
CHANGED
@@ -18,14 +18,14 @@ pl:
|
|
18
18
|
location: Lokacja
|
19
19
|
new_window: Nowe okno
|
20
20
|
new_window_label: Zaznacz tę kratkę aby link otwierał się w nowym oknie.
|
21
|
-
not_sure: Nie wiesz, co wstawić w pole powyżej?
|
21
|
+
not_sure: 'Nie wiesz, co wstawić w pole powyżej?'
|
22
22
|
step1: Znajdź stronę w sieci do której chcesz linkować.
|
23
23
|
step2: Wklej adres z pola adresu Twojej przeglądarki i wklej go do pola powyżej.
|
24
24
|
email_address:
|
25
25
|
tab_name: Adres e-mail
|
26
26
|
subject_line_optional: Opcjonalny temat
|
27
27
|
body_optional: Opcjonalna treść
|
28
|
-
not_sure: Nie wiesz, co wstawić w pola powyżej?
|
28
|
+
not_sure: 'Nie wiesz, co wstawić w pola powyżej?'
|
29
29
|
step1_html: Wpisz lub wklej (np. z książki adresowej) adres e-mail do którego ma prowadzić link w pole '<stron>Adres e-mail</strong> powyżej.
|
30
30
|
step2_html: Użyj pola '<strong>Temat</strong> aby wiadomość miała wstępnie określony temat.
|
31
31
|
step3_html: Użyj pola '<strong>Treść</strong> aby wiadomość miała wstępnie określoną treść.
|
@@ -52,15 +52,17 @@ pl:
|
|
52
52
|
custom_title: Inny tytuł
|
53
53
|
show_in_menu_title: Pokaż w menu
|
54
54
|
show_in_menu_description: Wyświetl tę stronę w menu witryny
|
55
|
-
show_in_menu_help: Odznacz tę kratkę aby usunąć tę stronę z menu witryny. To może być przydatne jeżeli chcesz linkować do tej strony, ale nie chcesz aby była widoczna w menu.
|
55
|
+
show_in_menu_help: 'Odznacz tę kratkę aby usunąć tę stronę z menu witryny. To może być przydatne jeżeli chcesz linkować do tej strony, ale nie chcesz aby była widoczna w menu.'
|
56
56
|
save_as_draft: Zapisz jako szkic
|
57
57
|
skip_to_first_child: Pomiń stronę najwyższego poziomu
|
58
58
|
skip_to_first_child_label: Przekieruj odwiedzających do pierwszej strony potomnej.
|
59
|
-
skip_to_first_child_help: Ta opcja sprawia, że ta strona kieruje do pierwszej strony pod nią. To może być przydatne przy grupowaniu stron razem.
|
59
|
+
skip_to_first_child_help: 'Ta opcja sprawia, że ta strona kieruje do pierwszej strony pod nią. To może być przydatne przy grupowaniu stron razem.'
|
60
60
|
link_url: Przekieruj tę stronę do innej strony lub witryny
|
61
|
-
link_url_help: Jeżeli chcesz, aby ta strona prowadziła do innej strony lub witryny kiedy klikniesz ją w menu, wpisz tu adres URL, na przykład http://google.com.W innym wypadku pozostaw to pole pustym.
|
61
|
+
link_url_help: 'Jeżeli chcesz, aby ta strona prowadziła do innej strony lub witryny kiedy klikniesz ją w menu, wpisz tu adres URL, na przykład http://google.com.W innym wypadku pozostaw to pole pustym.'
|
62
62
|
parent_page_help: Możesz umieścić tę stronę pod inną wybierając stronę nadrzędną z listy. Jeżeli ta strona ma być stroną najwyższego poziomu pozostaw to pole pustym.
|
63
|
-
custom_title_help: Jeżeli chcesz aby ta strona miała inny tytuł niż ten widoczny w menu wybierz 'Tekst' i wpisz go tutaj.
|
63
|
+
custom_title_help: 'Jeżeli chcesz aby ta strona miała inny tytuł niż ten widoczny w menu wybierz 'Tekst' i wpisz go tutaj.'
|
64
|
+
menu_title: Tytuł w menu
|
65
|
+
menu_title_help: 'Jeżeli chcesz aby ta strona miała inny tytuł w menu wybierz 'Tekst' i wpisz go tutaj.'
|
64
66
|
actions:
|
65
67
|
create_new_page: Dodaj nową stronę
|
66
68
|
reorder_pages: Zmień kolejność stron
|
@@ -10,7 +10,11 @@ module Refinery
|
|
10
10
|
def error_404(exception=nil)
|
11
11
|
if (@page = ::Refinery::Page.where(:menu_match => "^/404$").includes(:parts).first).present?
|
12
12
|
# render the application's custom 404 page with layout and meta.
|
13
|
-
|
13
|
+
if self.respond_to? :render_with_templates?
|
14
|
+
render_with_templates? :status => 404
|
15
|
+
else
|
16
|
+
render :template => '/refinery/pages/show', :formats => [:html], :status => 404
|
17
|
+
end
|
14
18
|
return false
|
15
19
|
else
|
16
20
|
super
|
@@ -49,6 +49,55 @@ module Refinery
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
end
|
52
|
+
|
53
|
+
describe "#page_meta_information" do
|
54
|
+
let(:page) { FactoryGirl.build(:page) }
|
55
|
+
|
56
|
+
context "when show_in_menu is false" do
|
57
|
+
it "adds 'hidden' label" do
|
58
|
+
page.show_in_menu = false
|
59
|
+
|
60
|
+
helper.page_meta_information(page).should eq("<span class=\"label\">hidden</span>")
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
context "when draft is true" do
|
65
|
+
it "adds 'draft' label" do
|
66
|
+
page.draft = true
|
67
|
+
|
68
|
+
helper.page_meta_information(page).should eq("<span class=\"label notice\">draft</span>")
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
describe "#page_title_with_translations" do
|
74
|
+
let(:page) { FactoryGirl.build(:page) }
|
75
|
+
|
76
|
+
before do
|
77
|
+
Globalize.with_locale(:en) do
|
78
|
+
page.title = "draft"
|
79
|
+
page.save!
|
80
|
+
end
|
81
|
+
|
82
|
+
Globalize.with_locale(:lv) do
|
83
|
+
page.title = "melnraksts"
|
84
|
+
page.save!
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
context "when title is present" do
|
89
|
+
it "returns it" do
|
90
|
+
helper.page_title_with_translations(page).should eq("draft")
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
context "when title for current locale isn't available" do
|
95
|
+
it "returns existing title from translations" do
|
96
|
+
Refinery::Page::Translation.where(:locale => :en).first.delete
|
97
|
+
helper.page_title_with_translations(page).should eq("melnraksts")
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
52
101
|
end
|
53
102
|
end
|
54
|
-
end
|
103
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Refinery
|
4
|
+
describe PagesHelper do
|
5
|
+
describe "#sanitize_hash" do
|
6
|
+
context "when hash value responds to html_safe" do
|
7
|
+
it "returns hash with sanitized values" do
|
8
|
+
hash = { :key => "hack<script>" }
|
9
|
+
helper.sanitize_hash(hash).should eq("key" => "hack")
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
context "when hash value is an array" do
|
14
|
+
it "returns hash with sanitized values" do
|
15
|
+
hash = { :key => { :x => "hack<script>", :y => "malware<script>" } }
|
16
|
+
helper.sanitize_hash(hash).should eq("key"=>{"x"=>"hack", "y"=>"malware"})
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
context "when string value doesn't repsond to html_safe" do
|
21
|
+
it "returns hash with value untouched" do
|
22
|
+
String.any_instance.stub(:respond_to?).and_return(false)
|
23
|
+
|
24
|
+
hash = { :key => "hack<script>" }
|
25
|
+
helper.sanitize_hash(hash).should eq("key"=>"hack<script>")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -104,7 +104,7 @@ module Refinery
|
|
104
104
|
end
|
105
105
|
end
|
106
106
|
|
107
|
-
|
107
|
+
context 'canonicals' do
|
108
108
|
before do
|
109
109
|
::Refinery::I18n.stub(:default_frontend_locale).and_return(:en)
|
110
110
|
::Refinery::I18n.stub(:frontend_locales).and_return([Refinery::I18n.default_frontend_locale, :ru])
|
@@ -115,26 +115,53 @@ module Refinery
|
|
115
115
|
let(:page_title) { 'team' }
|
116
116
|
let(:child_title) { 'about' }
|
117
117
|
let(:ru_page_title) { 'Новости' }
|
118
|
-
|
119
|
-
|
120
|
-
|
118
|
+
|
119
|
+
describe '#canonical' do
|
120
|
+
let!(:default_canonical) {
|
121
|
+
Globalize.with_locale(::Refinery::I18n.default_frontend_locale) {
|
122
|
+
page.canonical
|
123
|
+
}
|
121
124
|
}
|
122
|
-
}
|
123
125
|
|
124
|
-
|
125
|
-
|
126
|
-
|
126
|
+
specify 'page returns itself' do
|
127
|
+
page.canonical.should == page.url
|
128
|
+
end
|
127
129
|
|
128
|
-
|
129
|
-
|
130
|
+
specify 'default canonical matches page#canonical' do
|
131
|
+
default_canonical.should == page.canonical
|
132
|
+
end
|
133
|
+
|
134
|
+
specify 'translated page returns master page' do
|
135
|
+
Globalize.with_locale(:ru) do
|
136
|
+
page.title = ru_page_title
|
137
|
+
page.save
|
138
|
+
|
139
|
+
page.canonical.should == default_canonical
|
140
|
+
end
|
141
|
+
end
|
130
142
|
end
|
131
143
|
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
144
|
+
describe '#canonical_slug' do
|
145
|
+
let!(:default_canonical_slug) {
|
146
|
+
Globalize.with_locale(::Refinery::I18n.default_frontend_locale) {
|
147
|
+
page.canonical_slug
|
148
|
+
}
|
149
|
+
}
|
150
|
+
specify 'page returns its own slug' do
|
151
|
+
page.canonical_slug.should == page.slug
|
152
|
+
end
|
153
|
+
|
154
|
+
specify 'default canonical_slug matches page#canonical' do
|
155
|
+
default_canonical_slug.should == page.canonical_slug
|
156
|
+
end
|
157
|
+
|
158
|
+
specify "translated page returns master page's slug'" do
|
159
|
+
Globalize.with_locale(:ru) do
|
160
|
+
page.title = ru_page_title
|
161
|
+
page.save
|
136
162
|
|
137
|
-
|
163
|
+
page.canonical_slug.should == default_canonical_slug
|
164
|
+
end
|
138
165
|
end
|
139
166
|
end
|
140
167
|
end
|
@@ -221,8 +248,8 @@ module Refinery
|
|
221
248
|
it 'reposition correctly' do
|
222
249
|
page.save
|
223
250
|
|
224
|
-
page.parts.first.
|
225
|
-
page.parts.last.
|
251
|
+
page.parts.first.update_attributes :position => 6
|
252
|
+
page.parts.last.update_attributes :position => 4
|
226
253
|
|
227
254
|
page.parts.first.position.should == 6
|
228
255
|
page.parts.last.position.should == 4
|
@@ -452,7 +479,7 @@ module Refinery
|
|
452
479
|
let(:child_title) { 'about' }
|
453
480
|
let(:created_root_about) { subject.class.create!(:title => child_title, :deletable => true) }
|
454
481
|
|
455
|
-
before
|
482
|
+
before do
|
456
483
|
# Ensure pages are created.
|
457
484
|
created_child
|
458
485
|
created_root_about
|
@@ -42,7 +42,7 @@ module Refinery
|
|
42
42
|
end
|
43
43
|
|
44
44
|
context "when some pages exist" do
|
45
|
-
before
|
45
|
+
before { 2.times { |i| Page.create :title => "Page #{i}" } }
|
46
46
|
|
47
47
|
it "shows reorder pages link" do
|
48
48
|
visit refinery.admin_pages_path
|
@@ -55,18 +55,14 @@ module Refinery
|
|
55
55
|
end
|
56
56
|
|
57
57
|
context "when sub pages exist" do
|
58
|
-
let(:company) {
|
59
|
-
let(:team) {
|
60
|
-
let(:locations) {
|
61
|
-
let(:location) {
|
58
|
+
let!(:company) { Page.create :title => 'Our Company' }
|
59
|
+
let!(:team) { company.children.create :title => 'Our Team' }
|
60
|
+
let!(:locations) { company.children.create :title => 'Our Locations' }
|
61
|
+
let!(:location) { locations.children.create :title => 'New York' }
|
62
62
|
|
63
63
|
context "with auto expand option turned off" do
|
64
64
|
before do
|
65
|
-
Refinery::Pages.auto_expand_admin_tree
|
66
|
-
|
67
|
-
# Pre load pages
|
68
|
-
location
|
69
|
-
team
|
65
|
+
Refinery::Pages.stub(:auto_expand_admin_tree).and_return(false)
|
70
66
|
|
71
67
|
visit refinery.admin_pages_path
|
72
68
|
end
|
@@ -81,14 +77,14 @@ module Refinery
|
|
81
77
|
page.should_not have_content(locations.title)
|
82
78
|
end
|
83
79
|
|
84
|
-
it "expands children", :js
|
85
|
-
find(".toggle").click
|
80
|
+
it "expands children", :js do
|
81
|
+
find("#page_#{company.id} .toggle").click
|
86
82
|
|
87
83
|
page.should have_content(team.title)
|
88
84
|
page.should have_content(locations.title)
|
89
85
|
end
|
90
86
|
|
91
|
-
it "expands children when nested mutliple levels deep", :js
|
87
|
+
it "expands children when nested mutliple levels deep", :js do
|
92
88
|
find("#page_#{company.id} .toggle").click
|
93
89
|
find("#page_#{locations.id} .toggle").click
|
94
90
|
|
@@ -98,11 +94,7 @@ module Refinery
|
|
98
94
|
|
99
95
|
context "with auto expand option turned on" do
|
100
96
|
before do
|
101
|
-
Refinery::Pages.auto_expand_admin_tree
|
102
|
-
|
103
|
-
# Pre load pages
|
104
|
-
location
|
105
|
-
team
|
97
|
+
Refinery::Pages.stub(:auto_expand_admin_tree).and_return(true)
|
106
98
|
|
107
99
|
visit refinery.admin_pages_path
|
108
100
|
end
|
@@ -151,7 +143,7 @@ module Refinery
|
|
151
143
|
end
|
152
144
|
|
153
145
|
describe "edit/update" do
|
154
|
-
before
|
146
|
+
before { Page.create :title => "Update me" }
|
155
147
|
|
156
148
|
it "updates page" do
|
157
149
|
visit refinery.admin_pages_path
|
@@ -169,9 +161,9 @@ module Refinery
|
|
169
161
|
|
170
162
|
describe 'Previewing' do
|
171
163
|
context "an existing page" do
|
172
|
-
before
|
164
|
+
before { Page.create :title => 'Preview me' }
|
173
165
|
|
174
|
-
it 'will show the preview changes in a new window', :js
|
166
|
+
it 'will show the preview changes in a new window', :js do
|
175
167
|
visit refinery.admin_pages_path
|
176
168
|
|
177
169
|
find('a[tooltip^=Edit]').click
|
@@ -181,7 +173,7 @@ module Refinery
|
|
181
173
|
new_window_should_have_content("Some changes I'm unsure what they will look like")
|
182
174
|
end
|
183
175
|
|
184
|
-
it 'will not save the preview changes', :js
|
176
|
+
it 'will not save the preview changes', :js do
|
185
177
|
visit refinery.admin_pages_path
|
186
178
|
|
187
179
|
find('a[tooltip^=Edit]').click
|
@@ -196,7 +188,7 @@ module Refinery
|
|
196
188
|
end
|
197
189
|
|
198
190
|
context 'a brand new page' do
|
199
|
-
it "will not save when just previewing", :js
|
191
|
+
it "will not save when just previewing", :js do
|
200
192
|
visit refinery.admin_pages_path
|
201
193
|
|
202
194
|
click_link "Add new page"
|
@@ -210,10 +202,10 @@ module Refinery
|
|
210
202
|
end
|
211
203
|
|
212
204
|
context 'a nested page' do
|
213
|
-
let!(:parent_page) {
|
214
|
-
let!(:nested_page) {
|
205
|
+
let!(:parent_page) { Page.create :title => "Our Parent Page" }
|
206
|
+
let!(:nested_page) { parent_page.children.create :title => 'Preview Me' }
|
215
207
|
|
216
|
-
it "works like an un-nested page", :js
|
208
|
+
it "works like an un-nested page", :js do
|
217
209
|
visit refinery.admin_pages_path
|
218
210
|
|
219
211
|
within "#page_#{nested_page.id}" do
|
@@ -230,7 +222,7 @@ module Refinery
|
|
230
222
|
|
231
223
|
describe "destroy" do
|
232
224
|
context "when page can be deleted" do
|
233
|
-
before
|
225
|
+
before { Page.create :title => "Delete me" }
|
234
226
|
|
235
227
|
it "will show delete button" do
|
236
228
|
visit refinery.admin_pages_path
|
@@ -244,7 +236,7 @@ module Refinery
|
|
244
236
|
end
|
245
237
|
|
246
238
|
context "when page can't be deleted" do
|
247
|
-
before
|
239
|
+
before { Page.create :title => "Indestructible", :deletable => false }
|
248
240
|
|
249
241
|
it "wont show delete button" do
|
250
242
|
visit refinery.admin_pages_path
|
@@ -256,7 +248,7 @@ module Refinery
|
|
256
248
|
end
|
257
249
|
|
258
250
|
context "duplicate page titles" do
|
259
|
-
before
|
251
|
+
before { Page.create :title => "I was here first" }
|
260
252
|
|
261
253
|
it "will append nr to url path" do
|
262
254
|
visit refinery.new_admin_page_path
|
@@ -269,7 +261,7 @@ module Refinery
|
|
269
261
|
end
|
270
262
|
|
271
263
|
context "with translations" do
|
272
|
-
before
|
264
|
+
before do
|
273
265
|
Refinery::I18n.stub(:frontend_locales).and_return([:en, :ru])
|
274
266
|
|
275
267
|
# Create a home page in both locales (needed to test menus)
|
@@ -339,7 +331,7 @@ module Refinery
|
|
339
331
|
Refinery::I18n.stub(:frontend_locales).and_return([:en, :ru])
|
340
332
|
|
341
333
|
_page = Globalize.with_locale(:en) {
|
342
|
-
|
334
|
+
Page.create :title => en_page_title
|
343
335
|
}
|
344
336
|
Globalize.with_locale(:ru) do
|
345
337
|
_page.title = ru_page_title
|
@@ -418,14 +410,14 @@ module Refinery
|
|
418
410
|
describe "add a page with title only for secondary locale" do
|
419
411
|
let(:ru_page) {
|
420
412
|
Globalize.with_locale(:ru) {
|
421
|
-
|
413
|
+
Page.create :title => ru_page_title
|
422
414
|
}
|
423
415
|
}
|
424
416
|
let(:ru_page_id) { ru_page.id }
|
425
417
|
let(:ru_page_title) { 'Новости' }
|
426
418
|
let(:ru_page_slug) { 'новости' }
|
427
419
|
|
428
|
-
before
|
420
|
+
before do
|
429
421
|
ru_page
|
430
422
|
visit refinery.admin_pages_path
|
431
423
|
end
|
@@ -487,7 +479,7 @@ module Refinery
|
|
487
479
|
end
|
488
480
|
end
|
489
481
|
|
490
|
-
describe "new page part", :js
|
482
|
+
describe "new page part", :js do
|
491
483
|
before do
|
492
484
|
Refinery::Pages.stub(:new_page_parts).and_return(true)
|
493
485
|
end
|
@@ -510,15 +502,16 @@ module Refinery
|
|
510
502
|
describe 'advanced options' do
|
511
503
|
describe 'view and layout templates' do
|
512
504
|
context 'when parent page has templates set' do
|
513
|
-
before
|
505
|
+
before do
|
514
506
|
Refinery::Pages.stub(:use_layout_templates).and_return(true)
|
515
507
|
Refinery::Pages.stub(:use_view_templates).and_return(true)
|
516
508
|
Refinery::Pages.stub(:layout_template_whitelist).and_return(['abc', 'refinery'])
|
517
509
|
Refinery::Pages.stub(:view_template_whitelist).and_return(['abc', 'refinery'])
|
518
510
|
Refinery::Pages.stub(:valid_templates).and_return(['abc', 'refinery'])
|
519
|
-
parent_page =
|
520
|
-
|
521
|
-
|
511
|
+
parent_page = Page.create :title => 'Parent Page',
|
512
|
+
:view_template => 'refinery',
|
513
|
+
:layout_template => 'refinery'
|
514
|
+
parent_page.children.create :title => 'Child Page'
|
522
515
|
end
|
523
516
|
|
524
517
|
specify 'sub page should inherit them' do
|
@@ -558,9 +551,9 @@ module Refinery
|
|
558
551
|
end
|
559
552
|
|
560
553
|
describe "add page to second locale" do
|
561
|
-
before
|
554
|
+
before do
|
562
555
|
Refinery::I18n.stub(:frontend_locales).and_return([:en, :lv])
|
563
|
-
|
556
|
+
Page.create :title => 'First Page'
|
564
557
|
end
|
565
558
|
|
566
559
|
it "succeeds" do
|
@@ -580,7 +573,7 @@ module Refinery
|
|
580
573
|
end
|
581
574
|
|
582
575
|
describe "delete page from main locale" do
|
583
|
-
before
|
576
|
+
before { Page.create :title => 'Default Page' }
|
584
577
|
|
585
578
|
it "doesn't succeed" do
|
586
579
|
visit refinery.admin_pages_path
|
@@ -615,7 +608,7 @@ module Refinery
|
|
615
608
|
|
616
609
|
describe "adding page link" do
|
617
610
|
describe "with relative urls" do
|
618
|
-
before
|
611
|
+
before { Refinery::Pages.absolute_page_links = false }
|
619
612
|
|
620
613
|
it "shows Russian pages if we're editing the Russian locale" do
|
621
614
|
visit 'refinery/pages_dialogs/link_to?wymeditor=true&switch_locale=ru'
|
@@ -633,7 +626,7 @@ module Refinery
|
|
633
626
|
end
|
634
627
|
|
635
628
|
describe "with absolute urls" do
|
636
|
-
before
|
629
|
+
before { Refinery::Pages.absolute_page_links = true }
|
637
630
|
|
638
631
|
it "shows Russian pages if we're editing the Russian locale" do
|
639
632
|
visit 'refinery/pages_dialogs/link_to?wymeditor=true&switch_locale=ru'
|
@@ -652,7 +645,7 @@ module Refinery
|
|
652
645
|
|
653
646
|
# see https://github.com/resolve/refinerycms/pull/1583
|
654
647
|
context "when switching locales" do
|
655
|
-
specify "dialog has correct links", :js
|
648
|
+
specify "dialog has correct links", :js do
|
656
649
|
visit refinery.edit_admin_page_path(about_page)
|
657
650
|
|
658
651
|
click_link "Add Link"
|
@@ -3,10 +3,10 @@ require 'spec_helper'
|
|
3
3
|
|
4
4
|
module Refinery
|
5
5
|
describe 'page frontend' do
|
6
|
-
let(:home_page) {
|
7
|
-
let(:about_page) {
|
8
|
-
let(:draft_page) {
|
9
|
-
before
|
6
|
+
let(:home_page) { Page.create :title => 'Home', :link_url => '/' }
|
7
|
+
let(:about_page) { Page.create :title => 'About' }
|
8
|
+
let(:draft_page) { Page.create :title => 'Draft', :draft => true }
|
9
|
+
before do
|
10
10
|
# So that we can use Refinery.
|
11
11
|
Refinery::PagesController.any_instance.stub(:refinery_user_required?).and_return(false)
|
12
12
|
|
@@ -65,7 +65,7 @@ module Refinery
|
|
65
65
|
end
|
66
66
|
|
67
67
|
describe 'title set (without menu title or browser title)' do
|
68
|
-
before
|
68
|
+
before { visit '/about' }
|
69
69
|
|
70
70
|
it "shows title at the top of the page" do
|
71
71
|
find("#body_content_title").text.should == about_page.title
|
@@ -81,9 +81,9 @@ module Refinery
|
|
81
81
|
end
|
82
82
|
|
83
83
|
describe 'when menu_title is' do
|
84
|
-
let(:page_mt) {
|
84
|
+
let(:page_mt) { Page.create :title => 'Company News' }
|
85
85
|
|
86
|
-
before
|
86
|
+
before do
|
87
87
|
Refinery::Page.stub(:fast_menu).and_return([page_mt])
|
88
88
|
end
|
89
89
|
|
@@ -125,8 +125,10 @@ module Refinery
|
|
125
125
|
end
|
126
126
|
|
127
127
|
describe 'when browser_title is set' do
|
128
|
-
let(:page_bt) {
|
129
|
-
|
128
|
+
let(:page_bt) {
|
129
|
+
Page.create :title => 'About Us', :browser_title => 'About Our Company'
|
130
|
+
}
|
131
|
+
before do
|
130
132
|
Refinery::Page.stub(:fast_menu).and_return([page_bt])
|
131
133
|
end
|
132
134
|
it 'should have the browser_title in the title tag' do
|
@@ -144,8 +146,8 @@ module Refinery
|
|
144
146
|
end
|
145
147
|
|
146
148
|
describe 'custom_slug' do
|
147
|
-
let(:page_cs) {
|
148
|
-
before
|
149
|
+
let(:page_cs) { Page.create :title => 'About Us' }
|
150
|
+
before do
|
149
151
|
Refinery::Page.stub(:fast_menu).and_return([page_cs])
|
150
152
|
end
|
151
153
|
|
@@ -206,11 +208,9 @@ module Refinery
|
|
206
208
|
end
|
207
209
|
|
208
210
|
describe "submenu page" do
|
209
|
-
let(:submenu_page) {
|
210
|
-
FactoryGirl.create(:page, :title => 'Sample Submenu', :parent_id => about_page.id)
|
211
|
-
}
|
211
|
+
let(:submenu_page) { about_page.children.create :title => 'Sample Submenu' }
|
212
212
|
|
213
|
-
before
|
213
|
+
before do
|
214
214
|
Refinery::Page.stub(:fast_menu).and_return([home_page, submenu_page, about_page.reload].sort_by(&:lft))
|
215
215
|
end
|
216
216
|
|
@@ -225,8 +225,8 @@ module Refinery
|
|
225
225
|
end
|
226
226
|
|
227
227
|
describe "special characters title" do
|
228
|
-
let(:special_page) {
|
229
|
-
before
|
228
|
+
let(:special_page) { Page.create :title => 'ä ö ü spéciål chåråctÉrs' }
|
229
|
+
before do
|
230
230
|
Refinery::Page.stub(:fast_menu).and_return([home_page, about_page, special_page])
|
231
231
|
end
|
232
232
|
|
@@ -242,11 +242,14 @@ module Refinery
|
|
242
242
|
end
|
243
243
|
|
244
244
|
describe "special characters title as submenu page" do
|
245
|
-
let(:special_page) {
|
246
|
-
|
245
|
+
let(:special_page) {
|
246
|
+
about_page.children.create :title => 'ä ö ü spéciål chåråctÉrs'
|
247
|
+
}
|
247
248
|
|
248
|
-
before
|
249
|
-
Refinery::Page.stub(:fast_menu).and_return(
|
249
|
+
before do
|
250
|
+
Refinery::Page.stub(:fast_menu).and_return(
|
251
|
+
[home_page, special_page, about_page.reload].sort_by &:lft
|
252
|
+
)
|
250
253
|
end
|
251
254
|
|
252
255
|
it "succeeds" do
|
@@ -261,9 +264,9 @@ module Refinery
|
|
261
264
|
end
|
262
265
|
|
263
266
|
describe "hidden page" do
|
264
|
-
let(:hidden_page) {
|
267
|
+
let(:hidden_page) { Page.create :title => "Hidden", :show_in_menu => false }
|
265
268
|
|
266
|
-
before
|
269
|
+
before do
|
267
270
|
Refinery::Page.stub(:fast_menu).and_return([home_page, about_page])
|
268
271
|
end
|
269
272
|
|
@@ -280,8 +283,8 @@ module Refinery
|
|
280
283
|
end
|
281
284
|
|
282
285
|
describe "skip to first child" do
|
283
|
-
let(:child_page) {
|
284
|
-
before
|
286
|
+
let(:child_page) { about_page.children.create :title => "Child Page" }
|
287
|
+
before do
|
285
288
|
child_page
|
286
289
|
about = about_page.reload
|
287
290
|
about.skip_to_first_child = true
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: refinerycms-pages
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
requirements:
|
55
55
|
- - '='
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
version: 2.0.
|
57
|
+
version: 2.0.6
|
58
58
|
type: :runtime
|
59
59
|
prerelease: false
|
60
60
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -62,7 +62,7 @@ dependencies:
|
|
62
62
|
requirements:
|
63
63
|
- - '='
|
64
64
|
- !ruby/object:Gem::Version
|
65
|
-
version: 2.0.
|
65
|
+
version: 2.0.6
|
66
66
|
- !ruby/object:Gem::Dependency
|
67
67
|
name: babosa
|
68
68
|
requirement: !ruby/object:Gem::Requirement
|
@@ -172,6 +172,7 @@ files:
|
|
172
172
|
- spec/factories/pages.rb
|
173
173
|
- spec/helpers/refinery/pages/admin/pages_helper_spec.rb
|
174
174
|
- spec/helpers/refinery/pages/content_pages_helper_spec.rb
|
175
|
+
- spec/helpers/refinery/pages/pages_helper_spec.rb
|
175
176
|
- spec/lib/generators/refinery/pages/pages_generator_spec.rb
|
176
177
|
- spec/lib/pages/content_page_presenter_spec.rb
|
177
178
|
- spec/lib/pages/content_presenter_spec.rb
|
@@ -197,7 +198,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
197
198
|
version: '0'
|
198
199
|
segments:
|
199
200
|
- 0
|
200
|
-
hash: -
|
201
|
+
hash: -2478798985618301281
|
201
202
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
202
203
|
none: false
|
203
204
|
requirements:
|
@@ -206,7 +207,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
206
207
|
version: '0'
|
207
208
|
segments:
|
208
209
|
- 0
|
209
|
-
hash: -
|
210
|
+
hash: -2478798985618301281
|
210
211
|
requirements: []
|
211
212
|
rubyforge_project: refinerycms
|
212
213
|
rubygems_version: 1.8.22
|
@@ -218,6 +219,7 @@ test_files:
|
|
218
219
|
- spec/factories/pages.rb
|
219
220
|
- spec/helpers/refinery/pages/admin/pages_helper_spec.rb
|
220
221
|
- spec/helpers/refinery/pages/content_pages_helper_spec.rb
|
222
|
+
- spec/helpers/refinery/pages/pages_helper_spec.rb
|
221
223
|
- spec/lib/generators/refinery/pages/pages_generator_spec.rb
|
222
224
|
- spec/lib/pages/content_page_presenter_spec.rb
|
223
225
|
- spec/lib/pages/content_presenter_spec.rb
|