refinerycms-pages 2.0.5 → 2.0.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|