refinerycms-pages 2.0.2 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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