refinerycms-pages 2.0.2 → 2.0.3

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.
@@ -1,4 +1,4 @@
1
- module ::Refinery
1
+ module Refinery
2
2
  module Admin
3
3
  class PagePartsController < ::Refinery::AdminController
4
4
 
@@ -1,6 +1,6 @@
1
1
  require 'net/http'
2
2
 
3
- module ::Refinery
3
+ module Refinery
4
4
  module Admin
5
5
  class PagesDialogsController < ::Refinery::Admin::DialogsController
6
6
 
@@ -0,0 +1,6 @@
1
+ module Refinery
2
+ module Admin
3
+ module PagePartsHelper
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module Refinery
2
+ module Admin
3
+ module PagesDialogsHelper
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module Refinery
2
+ module Admin
3
+ module PagesHelper
4
+ end
5
+ end
6
+ end
@@ -1,4 +1,4 @@
1
- module ::Refinery
1
+ module Refinery
2
2
  module Pages
3
3
  module ContentPagesHelper
4
4
  # Build the html for a Refinery CMS page object by creating a ContentPagePresenter. This is a
@@ -1,4 +1,4 @@
1
- module ::Refinery
1
+ module Refinery
2
2
  module PagesHelper
3
3
  end
4
4
  end
@@ -1,4 +1,6 @@
1
1
  # Encoding: utf-8
2
+ require 'acts_as_indexed'
3
+ require 'friendly_id'
2
4
 
3
5
  module Refinery
4
6
  class Page < Refinery::Core::BaseModel
@@ -9,6 +11,11 @@ module Refinery
9
11
 
10
12
  translates :title, :menu_title, :custom_slug, :slug, :include => :seo_meta
11
13
 
14
+ class Translation
15
+ is_seo_meta
16
+ attr_accessible :browser_title, :meta_description, :meta_keywords, :locale
17
+ end
18
+
12
19
  attr_accessible :title
13
20
 
14
21
  # Delegate SEO Attributes to globalize3 translation
@@ -1,7 +1,9 @@
1
- class PagePresenter < ::Refinery::BasePresenter
1
+ module Refinery
2
+ class PagePresenter < BasePresenter
2
3
 
3
- def menu_title_type
4
- @model.menu_title_type
5
- end
4
+ def menu_title_type
5
+ @model.menu_title_type
6
+ end
6
7
 
8
+ end
7
9
  end
@@ -24,7 +24,7 @@
24
24
  <% if Refinery::Pages.use_layout_templates %>
25
25
  <div class='field'>
26
26
  <span class='label_with_help'>
27
- <%= label_tag :layout_template, t('.layout_template') %>
27
+ <%= f.label :layout_template, t('.layout_template') %>
28
28
  <%= refinery_help_tag t('.layout_template_help') %>
29
29
  </span>
30
30
  <%= f.select(:layout_template, @valid_layout_templates) %>
@@ -33,7 +33,7 @@
33
33
  <% if Refinery::Pages.use_view_templates %>
34
34
  <div class='field'>
35
35
  <span class='label_with_help'>
36
- <%= label_tag :view_template, t('.view_template') %>
36
+ <%= f.label :view_template, t('.view_template') %>
37
37
  <%= refinery_help_tag t('.view_template_help') %>
38
38
  </span>
39
39
  <%= f.select(:view_template, @valid_view_templates.map{|t| [t.titleize, t]}) %>
@@ -42,7 +42,7 @@
42
42
 
43
43
  <div class='field'>
44
44
  <span class='label_with_help'>
45
- <%= label_tag :menu_title, t('.menu_title') %>
45
+ <%= f.label :menu_title, t('.menu_title') %>
46
46
  <%= refinery_help_tag t('.menu_title_help') %>
47
47
  </span>
48
48
  <%= f.text_field :menu_title, :style=> 'width:400px;' %>
@@ -48,8 +48,10 @@ module Refinery
48
48
  end
49
49
  end
50
50
 
51
- require 'awesome_nested_set'
52
- require 'globalize3'
51
+ ActiveSupport.on_load(:active_record) do
52
+ require 'awesome_nested_set'
53
+ require 'globalize3'
54
+ end
53
55
  require 'friendly_id'
54
56
  require 'seo_meta'
55
57
  require 'babosa'
@@ -19,6 +19,10 @@ module Refinery
19
19
  end
20
20
 
21
21
  def add_default_post_page_sections
22
+ add_section_if_missing(:id => :body)
23
+ add_section_if_missing(:id => :side_body)
24
+
25
+ # Deprecated in 2.1
22
26
  add_section_if_missing(:id => :body_content_left)
23
27
  add_section_if_missing(:id => :body_content_right)
24
28
  end
@@ -16,9 +16,14 @@ module Refinery
16
16
  end
17
17
 
18
18
  def hide_sections(*ids_to_hide)
19
+ ids_to_hide.flatten!
19
20
  @sections.select {|section| ids_to_hide.include?(section.id)}.each(&:hide) if ids_to_hide.any?
20
21
  end
21
22
 
23
+ def hidden_sections
24
+ @sections.select {|section| section.hidden? }
25
+ end
26
+
22
27
  def fetch_template_overrides
23
28
  @sections.each do |section|
24
29
  section.override_html = yield section.id if section.id.present?
@@ -42,7 +47,21 @@ module Refinery
42
47
  private
43
48
 
44
49
  def sections_html(can_use_fallback)
45
- @sections.map {|section| section.wrapped_html(can_use_fallback)}.compact.join("\n").html_safe
50
+ @sections.map do |section|
51
+ # Remove in 2.1
52
+ check_deprecated_sections(section)
53
+ section.wrapped_html(can_use_fallback)
54
+ end.compact.join("\n").html_safe
55
+ end
56
+
57
+ def check_deprecated_sections(section)
58
+ if section.has_content?
59
+ if section.id == :body_content_left
60
+ Refinery.deprecate "content_for :body_content_left", :when => '2.1.0', :replacement => "content_for :body"
61
+ elsif section.id == :body_content_right
62
+ Refinery.deprecate "content_for :body_content_right", :when => '2.1.0', :replacement => "content_for :side_body"
63
+ end
64
+ end
46
65
  end
47
66
 
48
67
  def add_section_if_missing(options)
@@ -8,11 +8,6 @@ module Refinery
8
8
 
9
9
  config.autoload_paths += %W( #{config.root}/lib )
10
10
 
11
- config.to_prepare do |app|
12
- Refinery::Page.translation_class.send(:is_seo_meta)
13
- Refinery::Page.translation_class.send(:attr_accessible, :browser_title, :meta_description, :meta_keywords, :locale)
14
- end
15
-
16
11
  before_inclusion do
17
12
  ::ApplicationController.send :helper, Refinery::Pages::ContentPagesHelper
18
13
  Refinery::AdminController.send :helper, Refinery::Pages::ContentPagesHelper
@@ -38,8 +33,8 @@ module Refinery
38
33
  append_marketable_routes if Refinery::Pages.marketable_urls
39
34
  end
40
35
 
41
- initializer "add marketable route parts to reserved words", :after => :set_routes_reloader_hook do |app|
42
- add_route_parts_as_reserved_words(app) if Refinery::Pages.marketable_urls
36
+ initializer "add marketable route parts to reserved words", :after => :set_routes_reloader_hook do
37
+ add_route_parts_as_reserved_words if Refinery::Pages.marketable_urls
43
38
  end
44
39
 
45
40
  config.after_initialize do
@@ -56,12 +51,14 @@ module Refinery
56
51
  end
57
52
 
58
53
  # Add any parts of routes as reserved words.
59
- def add_route_parts_as_reserved_words(app)
60
- route_paths = app.routes.named_routes.routes.map { |name, route| route.path.spec }
61
- route_paths.reject! {|path| path.to_s =~ %r{^/(rails|refinery)}}
62
- Refinery::Page.friendly_id_config.reserved_words |= route_paths.map { |path|
63
- path.to_s.gsub(%r{^/}, '').to_s.split('(').first.to_s.split(':').first.to_s.split('/')
64
- }.flatten.reject { |w| w =~ %r{_|\.} }.uniq
54
+ def add_route_parts_as_reserved_words
55
+ ActiveSupport.on_load(:active_record) do
56
+ route_paths = Rails.application.routes.named_routes.routes.map { |name, route| route.path.spec }
57
+ route_paths.reject! {|path| path.to_s =~ %r{^/(rails|refinery)}}
58
+ Refinery::Page.friendly_id_config.reserved_words |= route_paths.map { |path|
59
+ path.to_s.gsub(%r{^/}, '').to_s.split('(').first.to_s.split(':').first.to_s.split('/')
60
+ }.flatten.reject { |w| w =~ %r{_|\.} }.uniq
61
+ end
65
62
  end
66
63
  end
67
64
  end
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
22
22
  s.test_files = `git ls-files -- spec/*`.split("\n")
23
23
 
24
24
  s.add_dependency 'awesome_nested_set', '~> 2.1.0'
25
- s.add_dependency 'seo_meta', '~> 1.2.0'
25
+ s.add_dependency 'seo_meta', '~> 1.3.0'
26
26
  s.add_dependency 'refinerycms-core', version
27
27
  s.add_dependency 'babosa', '!= 0.3.6'
28
28
  end
@@ -24,18 +24,18 @@ module Refinery
24
24
 
25
25
  it "adds body content left and right after page parts" do
26
26
  content = ContentPagePresenter.new(page_with_one_part, title)
27
- content.get_section(2).id.should == :body_content_left
28
- content.get_section(3).id.should == :body_content_right
27
+ content.get_section(2).id.should == :body
28
+ content.get_section(3).id.should == :side_body
29
29
  end
30
30
 
31
31
  it "doesnt add page parts if page is nil" do
32
32
  content = ContentPagePresenter.new(nil, title)
33
- content.get_section(1).id.should == :body_content_left
33
+ content.get_section(1).id.should == :body
34
34
  end
35
35
 
36
36
  it "doesnt add title if it is blank" do
37
37
  content = ContentPagePresenter.new(nil, '')
38
- content.get_section(0).id.should == :body_content_left
38
+ content.get_section(0).id.should == :body
39
39
  end
40
40
  end
41
41
  end
@@ -34,9 +34,23 @@ module Refinery
34
34
  end
35
35
 
36
36
  it "hides a section specified by id" do
37
- section2.should_receive(:hide)
38
- @content.hide_sections('bar')
37
+ section2.should_receive :hide
38
+ @content.hide_sections 'bar'
39
39
  end
40
+
41
+ # Regression for https://github.com/resolve/refinerycms/issues/1516
42
+ it "accepts an array" do
43
+ section2.should_receive :hide
44
+ @content.hide_sections ['bar']
45
+ end
46
+
47
+ it "hides nothing if nil" do
48
+ section1.stub(:hidden?).and_return false
49
+ section2.stub(:hidden?).and_return false
50
+ @content.hide_sections nil
51
+ @content.hidden_sections.count.should == 0
52
+ end
53
+
40
54
  end
41
55
 
42
56
  describe "when fetching template overrides" do
@@ -136,6 +136,18 @@ module Refinery
136
136
 
137
137
  Refinery::Page.count.should == 1
138
138
  end
139
+
140
+ it "includes menu title field" do
141
+ visit refinery.new_admin_page_path
142
+
143
+ fill_in "Title", :with => "My first page"
144
+ fill_in "Menu title", :with => "The first page"
145
+
146
+ click_button "Save"
147
+
148
+ page.should have_content("'My first page' was successfully added.")
149
+ page.body.should =~ %r{/pages/the-first-page}
150
+ end
139
151
  end
140
152
 
141
153
  describe "edit/update" do
metadata CHANGED
@@ -1,103 +1,98 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: refinerycms-pages
3
- version: !ruby/object:Gem::Version
4
- hash: 11
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.3
5
5
  prerelease:
6
- segments:
7
- - 2
8
- - 0
9
- - 2
10
- version: 2.0.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Philip Arndt
14
- - "U\xC4\xA3is Ozols"
9
+ - Uģis Ozols
15
10
  - David Jones
16
11
  - Steven Heidel
17
12
  autorequire:
18
13
  bindir: bin
19
14
  cert_chain: []
20
-
21
- date: 2011-10-12 00:00:00 Z
22
- dependencies:
23
- - !ruby/object:Gem::Dependency
24
- prerelease: false
25
- requirement: &id001 !ruby/object:Gem::Requirement
15
+ date: 2011-10-12 00:00:00.000000000 Z
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
+ name: awesome_nested_set
19
+ requirement: !ruby/object:Gem::Requirement
26
20
  none: false
27
- requirements:
21
+ requirements:
28
22
  - - ~>
29
- - !ruby/object:Gem::Version
30
- hash: 11
31
- segments:
32
- - 2
33
- - 1
34
- - 0
23
+ - !ruby/object:Gem::Version
35
24
  version: 2.1.0
36
- version_requirements: *id001
37
- name: awesome_nested_set
38
25
  type: :runtime
39
- - !ruby/object:Gem::Dependency
40
26
  prerelease: false
41
- requirement: &id002 !ruby/object:Gem::Requirement
27
+ version_requirements: !ruby/object:Gem::Requirement
42
28
  none: false
43
- requirements:
29
+ requirements:
44
30
  - - ~>
45
- - !ruby/object:Gem::Version
46
- hash: 31
47
- segments:
48
- - 1
49
- - 2
50
- - 0
51
- version: 1.2.0
52
- version_requirements: *id002
31
+ - !ruby/object:Gem::Version
32
+ version: 2.1.0
33
+ - !ruby/object:Gem::Dependency
53
34
  name: seo_meta
35
+ requirement: !ruby/object:Gem::Requirement
36
+ none: false
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 1.3.0
54
41
  type: :runtime
55
- - !ruby/object:Gem::Dependency
56
42
  prerelease: false
57
- requirement: &id003 !ruby/object:Gem::Requirement
43
+ version_requirements: !ruby/object:Gem::Requirement
58
44
  none: false
59
- requirements:
60
- - - "="
61
- - !ruby/object:Gem::Version
62
- hash: 11
63
- segments:
64
- - 2
65
- - 0
66
- - 2
67
- version: 2.0.2
68
- version_requirements: *id003
45
+ requirements:
46
+ - - ~>
47
+ - !ruby/object:Gem::Version
48
+ version: 1.3.0
49
+ - !ruby/object:Gem::Dependency
69
50
  name: refinerycms-core
51
+ requirement: !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - '='
55
+ - !ruby/object:Gem::Version
56
+ version: 2.0.3
70
57
  type: :runtime
71
- - !ruby/object:Gem::Dependency
72
58
  prerelease: false
73
- requirement: &id004 !ruby/object:Gem::Requirement
59
+ version_requirements: !ruby/object:Gem::Requirement
74
60
  none: false
75
- requirements:
76
- - - "!="
77
- - !ruby/object:Gem::Version
78
- hash: 31
79
- segments:
80
- - 0
81
- - 3
82
- - 6
83
- version: 0.3.6
84
- version_requirements: *id004
61
+ requirements:
62
+ - - '='
63
+ - !ruby/object:Gem::Version
64
+ version: 2.0.3
65
+ - !ruby/object:Gem::Dependency
85
66
  name: babosa
67
+ requirement: !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ! '!='
71
+ - !ruby/object:Gem::Version
72
+ version: 0.3.6
86
73
  type: :runtime
87
- description: The default content extension of Refinery CMS. This extension handles the administration and display of user-editable pages.
74
+ prerelease: false
75
+ version_requirements: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ! '!='
79
+ - !ruby/object:Gem::Version
80
+ version: 0.3.6
81
+ description: The default content extension of Refinery CMS. This extension handles
82
+ the administration and display of user-editable pages.
88
83
  email: info@refinerycms.com
89
84
  executables: []
90
-
91
85
  extensions: []
92
-
93
86
  extra_rdoc_files: []
94
-
95
- files:
87
+ files:
96
88
  - app/controllers/refinery/admin/page_parts_controller.rb
97
89
  - app/controllers/refinery/admin/pages_controller.rb
98
90
  - app/controllers/refinery/admin/pages_dialogs_controller.rb
99
91
  - app/controllers/refinery/page_sweeper.rb
100
92
  - app/controllers/refinery/pages_controller.rb
93
+ - app/helpers/refinery/admin/page_parts_helper.rb
94
+ - app/helpers/refinery/admin/pages_dialogs_helper.rb
95
+ - app/helpers/refinery/admin/pages_helper.rb
101
96
  - app/helpers/refinery/pages/content_pages_helper.rb
102
97
  - app/helpers/refinery/pages_helper.rb
103
98
  - app/models/refinery/page.rb
@@ -185,39 +180,37 @@ files:
185
180
  - spec/requests/refinery/admin/pages_spec.rb
186
181
  - spec/requests/refinery/pages_spec.rb
187
182
  homepage: http://refinerycms.com
188
- licenses:
183
+ licenses:
189
184
  - MIT
190
185
  post_install_message:
191
186
  rdoc_options: []
192
-
193
- require_paths:
187
+ require_paths:
194
188
  - lib
195
- required_ruby_version: !ruby/object:Gem::Requirement
189
+ required_ruby_version: !ruby/object:Gem::Requirement
196
190
  none: false
197
- requirements:
198
- - - ">="
199
- - !ruby/object:Gem::Version
200
- hash: 3
201
- segments:
191
+ requirements:
192
+ - - ! '>='
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ segments:
202
196
  - 0
203
- version: "0"
204
- required_rubygems_version: !ruby/object:Gem::Requirement
197
+ hash: 515173493532561148
198
+ required_rubygems_version: !ruby/object:Gem::Requirement
205
199
  none: false
206
- requirements:
207
- - - ">="
208
- - !ruby/object:Gem::Version
209
- hash: 3
210
- segments:
200
+ requirements:
201
+ - - ! '>='
202
+ - !ruby/object:Gem::Version
203
+ version: '0'
204
+ segments:
211
205
  - 0
212
- version: "0"
206
+ hash: 515173493532561148
213
207
  requirements: []
214
-
215
208
  rubyforge_project: refinerycms
216
- rubygems_version: 1.8.17
209
+ rubygems_version: 1.8.19
217
210
  signing_key:
218
211
  specification_version: 3
219
212
  summary: Pages extension for Refinery CMS
220
- test_files:
213
+ test_files:
221
214
  - spec/factories/pages.rb
222
215
  - spec/helpers/refinery/pages/content_pages_helper_spec.rb
223
216
  - spec/lib/generators/refinery/pages/pages_generator_spec.rb