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 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
- after_save proc {|m| m.translation.save}
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::Translation.reset_column_information
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::Translation.module_eval do
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
@@ -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
- nil
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.1'
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
@@ -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.9}
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{2011-11-05}
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.9'
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.1'
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: 5
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 9
10
- version: 1.0.9
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: 2011-11-05 00:00:00 Z
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: 5
32
+ hash: 3
33
33
  segments:
34
34
  - 1
35
35
  - 0
36
- - 9
37
- version: 1.0.9
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: 9
80
+ hash: 1316851721
81
81
  segments:
82
82
  - 0
83
- - 1
84
- version: "0.1"
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.10
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: