refinerycms-pages 1.0.9 → 1.0.10

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/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: