refinerycms-pages 1.0.9 → 1.0.10
Sign up to get free protection for your applications and to get access to all the features.
- data/app/models/page.rb +1 -10
- data/app/views/admin/pages_dialogs/_page_link.html.erb +1 -1
- data/app/views/admin/pages_dialogs/link_to.html.erb +1 -1
- data/db/migrate/20110329080451_create_seo_meta.rb +5 -4
- data/db/seeds/pages.rb +0 -9
- data/features/step_definitions/page_steps.rb +11 -0
- data/features/support/paths.rb +4 -2
- data/features/visit_pages.feature +7 -0
- data/lib/gemspec.rb +1 -1
- data/refinerycms-pages.gemspec +5 -4
- metadata +15 -11
data/app/models/page.rb
CHANGED
@@ -22,15 +22,6 @@ class Page < ActiveRecord::Base
|
|
22
22
|
:meta_keywords, :locale
|
23
23
|
|
24
24
|
if ::Page::Translation.table_exists?
|
25
|
-
def translation
|
26
|
-
if @translation.nil? or @translation.try(:locale) != ::Globalize.locale
|
27
|
-
@translation = translations.with_locale(::Globalize.locale).first
|
28
|
-
@translation ||= translations.build(:locale => ::Globalize.locale)
|
29
|
-
end
|
30
|
-
|
31
|
-
@translation
|
32
|
-
end
|
33
|
-
|
34
25
|
# Instruct the Translation model to have meta tags.
|
35
26
|
::Page::Translation.send :is_seo_meta
|
36
27
|
|
@@ -38,7 +29,7 @@ class Page < ActiveRecord::Base
|
|
38
29
|
self.column_names.map(&:to_sym).include?(f)
|
39
30
|
}.map{|a| [a, :"#{a}="]}.flatten
|
40
31
|
delegate *(fields << {:to => :translation})
|
41
|
-
|
32
|
+
before_save {|m| m.translation.save}
|
42
33
|
end
|
43
34
|
end
|
44
35
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% linked = (url_for(page_link.url) == params[:current_link]) if params[:current_link].present? -%>
|
2
2
|
<% link_args = defined?(link_to_arguments) ? link_to_arguments : {} %>
|
3
3
|
<li class='clearfix<%= " child#{child}" if child %><%= " linked" if linked%>' id="<%= dom_id(page_link) -%>">
|
4
|
-
<%= link_to page_link.title_with_meta.html_safe, page_link.url,
|
4
|
+
<%= link_to page_link.title_with_meta.html_safe, compute_public_path(url_for(page_link.url), ''),
|
5
5
|
{ :title => t('.link_to_this_page'),
|
6
6
|
:rel => page_link.title,
|
7
7
|
:class => 'page_link' }.merge(link_args) %>
|
@@ -95,7 +95,7 @@
|
|
95
95
|
<% @resources.each do |resource| -%>
|
96
96
|
<% resource_linked = (resource.url == params[:current_link]) unless params[:current_link].blank? %>
|
97
97
|
<li<%= " class='linked'" if resource_linked %>>
|
98
|
-
<%= link_to "#{resource.title}.#{resource.ext}", resource.url,
|
98
|
+
<%= link_to "#{resource.title}.#{resource.ext}", compute_public_path(resource.url, ''),
|
99
99
|
:title => t('link_to_this_resource', :scope => 'admin.pages_dialogs.link_to.your_resource'),
|
100
100
|
:rel => resource.title,
|
101
101
|
:class => "page_link #{resource.ext}" %>
|
@@ -26,12 +26,13 @@ class CreateSeoMeta < ActiveRecord::Migration
|
|
26
26
|
end
|
27
27
|
|
28
28
|
# Reset column information because otherwise the old columns will still exist.
|
29
|
-
::Page::
|
29
|
+
[::Page, ::Page.translation_class].each do |model|
|
30
|
+
ActiveRecord::Base.connection.schema_cache.clear_table_cache!(model.table_name)
|
31
|
+
model.reset_column_information
|
32
|
+
end
|
30
33
|
|
31
34
|
# Re-attach seo_meta
|
32
|
-
::Page
|
33
|
-
is_seo_meta
|
34
|
-
end
|
35
|
+
::Page.translation_class.send :is_seo_meta
|
35
36
|
|
36
37
|
# Migrate data
|
37
38
|
existing_translations.each do |translation|
|
data/db/seeds/pages.rb
CHANGED
@@ -1,12 +1,3 @@
|
|
1
|
-
::Page.reset_column_information
|
2
|
-
# Check whether all columns are applied yet by seo_meta.
|
3
|
-
unless !defined?(::SeoMeta) || ::SeoMeta.attributes.keys.all? { |k|
|
4
|
-
::Page.translation_class.instance_methods.map(&:to_sym).include?(k)
|
5
|
-
}
|
6
|
-
# Make pages model seo_meta because not all columns are accessible.
|
7
|
-
::Page.translation_class.send :is_seo_meta
|
8
|
-
end
|
9
|
-
|
10
1
|
page_position = -1
|
11
2
|
|
12
3
|
home_page = Page.create(:title => "Home",
|
@@ -36,6 +36,17 @@ Given /^the page titled "?([^\"]*)"? is a child of "?([^\"]*)"?$/ do |title, par
|
|
36
36
|
Page.by_title(title).first.update_attribute(:parent_id, parent_page.id)
|
37
37
|
end
|
38
38
|
|
39
|
+
Given /^the page titled "?([^\"]*)"? is fully translated$/ do |title|
|
40
|
+
page = Page.by_title(title).first
|
41
|
+
Refinery::I18n.frontend_locales.each do |locale|
|
42
|
+
old_locale = Thread.current[:globalize_locale]
|
43
|
+
Thread.current[:globalize_locale] = locale
|
44
|
+
page.title = title
|
45
|
+
page.save
|
46
|
+
Thread.current[:globalize_locale] = old_locale
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
39
50
|
Given /^the page titled "?([^\"]*)"? is not shown in the menu$/ do |title|
|
40
51
|
Page.by_title(title).first.update_attribute(:show_in_menu, false)
|
41
52
|
end
|
data/features/support/paths.rb
CHANGED
@@ -11,13 +11,15 @@ module NavigationHelpers
|
|
11
11
|
new_admin_page_path
|
12
12
|
else
|
13
13
|
begin
|
14
|
-
if page_name =~ /the page titled "?([^\"]*)"?/ and (page = Page.by_title($1).first).present?
|
14
|
+
if page_name =~ /the page titled "?([^\"]*)"? with locale "?([^\"]*)"?/ and (page = Page.by_title($1).first).present?
|
15
|
+
self.url_for(page.url.is_a?(String) ? "/#{$2}#{page.url}" : page.url.merge(:locale => $2))
|
16
|
+
elsif page_name =~ /the page titled "?([^\"]*)"?/ and (page = Page.by_title($1).first).present?
|
15
17
|
self.url_for(page.url)
|
16
18
|
else
|
17
19
|
nil
|
18
20
|
end
|
19
21
|
rescue
|
20
|
-
|
22
|
+
nil
|
21
23
|
end
|
22
24
|
end
|
23
25
|
end
|
@@ -59,3 +59,10 @@ Feature: Visit Pages
|
|
59
59
|
And the page titled "About" is set to skip to first child
|
60
60
|
When I go to the page titled "About"
|
61
61
|
Then I should see "Child Page" within ".selected * > .selected a"
|
62
|
+
|
63
|
+
@pages-visit-i18n
|
64
|
+
Scenario: Translated URI
|
65
|
+
Given I have frontend locales "en, de"
|
66
|
+
And the page titled "Home" is fully translated
|
67
|
+
When I go to the page titled "Home" with locale "de"
|
68
|
+
Then I should see "Home" within ".selected > a"
|
data/lib/gemspec.rb
CHANGED
@@ -30,7 +30,7 @@ Gem::Specification.new do |s|
|
|
30
30
|
s.add_dependency 'refinerycms-core', '= #{::Refinery::Version}'
|
31
31
|
s.add_dependency 'activerecord', '~> 3.0.10'
|
32
32
|
s.add_dependency 'friendly_id_globalize3', '~> 3.2.1'
|
33
|
-
s.add_dependency 'globalize3', '~> 0.
|
33
|
+
s.add_dependency 'globalize3', '~> 0.2.0.beta4'
|
34
34
|
s.add_dependency 'awesome_nested_set', '~> 2.0'
|
35
35
|
s.add_dependency 'seo_meta', '~> 1.1'
|
36
36
|
end
|
data/refinerycms-pages.gemspec
CHANGED
@@ -3,10 +3,10 @@
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = %q{refinerycms-pages}
|
6
|
-
s.version = %q{1.0.
|
6
|
+
s.version = %q{1.0.10}
|
7
7
|
s.summary = %q{Pages engine for Refinery CMS}
|
8
8
|
s.description = %q{The default content engine of Refinery CMS. This engine handles the administration and display of user-editable pages.}
|
9
|
-
s.date = %q{
|
9
|
+
s.date = %q{2012-03-06}
|
10
10
|
s.email = %q{info@refinerycms.com}
|
11
11
|
s.homepage = %q{http://refinerycms.com}
|
12
12
|
s.rubyforge_project = %q{refinerycms}
|
@@ -117,14 +117,15 @@ Gem::Specification.new do |s|
|
|
117
117
|
'license.md',
|
118
118
|
'refinerycms-pages.gemspec',
|
119
119
|
'spec',
|
120
|
+
'spec/lib',
|
120
121
|
'spec/models',
|
121
122
|
'spec/models/page_spec.rb'
|
122
123
|
]
|
123
124
|
|
124
|
-
s.add_dependency 'refinerycms-core', '= 1.0.
|
125
|
+
s.add_dependency 'refinerycms-core', '= 1.0.10'
|
125
126
|
s.add_dependency 'activerecord', '~> 3.0.10'
|
126
127
|
s.add_dependency 'friendly_id_globalize3', '~> 3.2.1'
|
127
|
-
s.add_dependency 'globalize3', '~> 0.
|
128
|
+
s.add_dependency 'globalize3', '~> 0.2.0.beta4'
|
128
129
|
s.add_dependency 'awesome_nested_set', '~> 2.0'
|
129
130
|
s.add_dependency 'seo_meta', '~> 1.1'
|
130
131
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: refinerycms-pages
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 10
|
10
|
+
version: 1.0.10
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Resolve Digital
|
@@ -19,7 +19,7 @@ autorequire:
|
|
19
19
|
bindir: bin
|
20
20
|
cert_chain: []
|
21
21
|
|
22
|
-
date:
|
22
|
+
date: 2012-03-06 00:00:00 Z
|
23
23
|
dependencies:
|
24
24
|
- !ruby/object:Gem::Dependency
|
25
25
|
name: refinerycms-core
|
@@ -29,12 +29,12 @@ dependencies:
|
|
29
29
|
requirements:
|
30
30
|
- - "="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
hash:
|
32
|
+
hash: 3
|
33
33
|
segments:
|
34
34
|
- 1
|
35
35
|
- 0
|
36
|
-
-
|
37
|
-
version: 1.0.
|
36
|
+
- 10
|
37
|
+
version: 1.0.10
|
38
38
|
type: :runtime
|
39
39
|
version_requirements: *id001
|
40
40
|
- !ruby/object:Gem::Dependency
|
@@ -77,11 +77,14 @@ dependencies:
|
|
77
77
|
requirements:
|
78
78
|
- - ~>
|
79
79
|
- !ruby/object:Gem::Version
|
80
|
-
hash:
|
80
|
+
hash: 1316851721
|
81
81
|
segments:
|
82
82
|
- 0
|
83
|
-
-
|
84
|
-
|
83
|
+
- 2
|
84
|
+
- 0
|
85
|
+
- beta
|
86
|
+
- 4
|
87
|
+
version: 0.2.0.beta4
|
85
88
|
type: :runtime
|
86
89
|
version_requirements: *id004
|
87
90
|
- !ruby/object:Gem::Dependency
|
@@ -228,9 +231,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
228
231
|
requirements: []
|
229
232
|
|
230
233
|
rubyforge_project: refinerycms
|
231
|
-
rubygems_version: 1.8.
|
234
|
+
rubygems_version: 1.8.17
|
232
235
|
signing_key:
|
233
236
|
specification_version: 3
|
234
237
|
summary: Pages engine for Refinery CMS
|
235
238
|
test_files: []
|
236
239
|
|
240
|
+
has_rdoc:
|