beef-pages 0.3.10 → 0.3.11

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.10
1
+ 0.3.11
@@ -27,7 +27,7 @@ class Admin::PagesController < Admin::BaseController
27
27
 
28
28
  def new
29
29
 
30
- if params[:page_id].nil?
30
+ if params[:page_id].nil? and not Page.allow_new_roots?
31
31
  flash[:notice] = 'Unspecified parent page.'
32
32
  redirect_to(admin_pages_url)
33
33
  else
@@ -47,13 +47,13 @@ class Admin::PagesController < Admin::BaseController
47
47
  respond_to do |format|
48
48
  if @page.save
49
49
  flash[:notice] = 'Page was successfully created.'
50
- format.html {
50
+ format.html do
51
51
  if @page.parent.nil?
52
52
  redirect_to(admin_pages_url)
53
53
  else
54
54
  redirect_to(admin_page_pages_url(@page.parent))
55
55
  end
56
- }
56
+ end
57
57
  format.xml { render :xml => @page, :status => :created, :location => @page }
58
58
  else
59
59
  format.html { render :action => "show" }
@@ -69,13 +69,13 @@ class Admin::PagesController < Admin::BaseController
69
69
  respond_to do |format|
70
70
  if @page.update_attributes(params[:page])
71
71
  flash[:notice] = 'Page was successfully updated.'
72
- format.html {
72
+ format.html do
73
73
  if @page.parent.nil?
74
74
  redirect_to(admin_pages_url)
75
75
  else
76
76
  redirect_to(admin_page_pages_url(@page.parent))
77
77
  end
78
- }
78
+ end
79
79
  format.xml { head :ok }
80
80
  else
81
81
  format.html { render :action => "show" }
@@ -93,14 +93,14 @@ class Admin::PagesController < Admin::BaseController
93
93
  @page.destroy
94
94
 
95
95
  respond_to do |format|
96
- format.html {
97
- flash[:notice] = 'Page was successfully deleted.'
98
- if params[:page].nil?
99
- redirect_to(admin_pages_url)
100
- else
101
- redirect_to(admin_page_pages_url(@page.parent))
102
- end
103
- }
96
+ format.html do
97
+ flash[:notice] = 'Page was successfully deleted.'
98
+ if params[:page].nil?
99
+ redirect_to(admin_pages_url)
100
+ else
101
+ redirect_to(admin_page_pages_url(@page.parent))
102
+ end
103
+ end
104
104
  format.xml { head :ok }
105
105
  end
106
106
  end
data/app/models/page.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  class Page < ActiveRecord::Base
2
- default_scope :order => 'position ASC'
2
+ default_scope :order => 'position ASC'
3
3
  named_scope :top, :conditions => {:parent_id => nil}, :order => :position
4
4
  # http://ramblings.gibberishcode.net/archives/one-activerecord-model-acting-as-a-list-and-tree
5
-
5
+
6
6
  has_assets
7
7
  acts_as_content_node
8
8
  acts_as_tree
@@ -14,17 +14,17 @@ class Page < ActiveRecord::Base
14
14
 
15
15
  validates_presence_of :title
16
16
  validates_presence_of :body, :tag_list, :description, :if => :publish
17
-
17
+
18
18
  LOCK_LEVEL_DELETE = 1
19
19
  LOCK_LEVEL_PERMALINK = 2
20
20
  LOCK_LEVEL_TEMPLATE = 3
21
21
  LOCK_LEVEL_SUBPAGE = 4
22
- LOCK_LEVEL_TITLE = 5
23
-
22
+ LOCK_LEVEL_TITLE = 5
23
+
24
24
  def first_child?
25
25
  self == self.self_and_siblings.first
26
26
  end
27
-
27
+
28
28
  def last_child?
29
29
  self == self.self_and_siblings.last
30
30
  end
@@ -36,15 +36,15 @@ class Page < ActiveRecord::Base
36
36
  def reindex_children(recurse = true, departing_child = nil)
37
37
  Page.reindex_pages(children, recurse, departing_child)
38
38
  end
39
-
39
+
40
40
  def root?
41
41
  parent_id.nil?
42
42
  end
43
-
43
+
44
44
  def featured?
45
45
  !features.empty?
46
46
  end
47
-
47
+
48
48
  def lock_level
49
49
  read_attribute(:lock_level) || 0
50
50
  end
@@ -56,6 +56,12 @@ class Page < ActiveRecord::Base
56
56
  end
57
57
  end
58
58
 
59
+ # Flag if creation of new root pages id allowed
60
+ cattr_accessor :allow_new_roots
61
+ def self.allow_new_roots?
62
+ allow_new_roots == true
63
+ end
64
+
59
65
  private
60
66
 
61
67
  def set_url
@@ -63,8 +69,8 @@ class Page < ActiveRecord::Base
63
69
  end
64
70
 
65
71
  # takes a given array of pages and recursively (or not) reindexes
66
- # if departing_child is supplied, it is removed from the array so
67
- # that former siblings are reindexed as though it was already
72
+ # if departing_child is supplied, it is removed from the array so
73
+ # that former siblings are reindexed as though it was already
68
74
  # removed from the collection.
69
75
  def self.reindex_pages(pages, recurse, departing_child)
70
76
  pages.select{|r| r != departing_child}.each_with_index do |page, index|
@@ -74,7 +80,7 @@ class Page < ActiveRecord::Base
74
80
  true
75
81
  end
76
82
 
77
- # When the parent id of a node changes, the acts_as_list gets lost, so
83
+ # When the parent id of a node changes, the acts_as_list gets lost, so
78
84
  # we need to reindex the affected nodes to keep things sane
79
85
  def keep_position_sane
80
86
  return unless self.parent_id_changed?
@@ -90,5 +96,5 @@ class Page < ActiveRecord::Base
90
96
  last_page = (self.parent_id.nil? ? Page.top.last : Page.find(self.parent_id).children.last)
91
97
  self.position = (last_page.nil? ? 1 : last_page.position + 1)
92
98
  true
93
- end
99
+ end
94
100
  end
@@ -1,15 +1,17 @@
1
1
  <h1>Listing pages<%= " under #{@parent.title}" unless @parent.nil? %></h1>
2
2
 
3
3
  <ul class="choices">
4
- <% unless @parent.nil? %>
5
- <%= "<li>#{link_to 'New page', new_admin_page_page_path(@parent), :class => 'button', :title => "Add a sub-page under #{@parent.title}"}</li>" unless @parent.lock_level >= Page::LOCK_LEVEL_SUBPAGE %>
6
- <% if @parent.parent.nil? %>
4
+ <% if !@parent.nil? and @parent.lock_level < Page::LOCK_LEVEL_SUBPAGE -%>
5
+ <li><%= link_to 'New page', new_admin_page_page_path(@parent), :class => 'button', :title => "Add a sub-page under #{@parent.title}" %></li>
6
+ <% elsif @parent.nil? and Page.allow_new_roots? %>
7
+ <li><%= link_to 'New page', new_admin_page_path, :class => 'button', :title => "Add new page" %></li>
8
+ <% end -%>
9
+ <% if !@parent.nil? and @parent.parent.nil? %>
7
10
  <li><%= link_to "All top pages", admin_pages_path(), :class => "up button" %></li>
8
- <% else %>
11
+ <% elsif !@parent.nil? %>
9
12
  <li><%= link_to "Up to #{@parent.parent.title}", admin_page_pages_path(@parent.parent), :class => "up button" %></li>
10
- <% end %>
11
13
  <% end %>
12
- </ul>
14
+ </ul>
13
15
 
14
16
  <table class="featurable">
15
17
  <thead>
@@ -26,8 +26,9 @@
26
26
  <p>
27
27
  <%= f.label :permalink, "URL" %><br/>
28
28
  <%= root_url %><%= f.text_field :permalink %>
29
- <p>URLs are most efficient if they closely reflect the title or main subject of this content. Changing the permalink will make search engines think it is a different page resulting in a loss of page rank, only change if very necessary. Leave blank to use the title.</p>
30
29
  </p>
30
+ <p>URLs are most efficient if they closely reflect the title or main subject of this content. Changing the permalink will make search engines think it is a different page resulting in a loss of page rank, only change if very necessary. Leave blank to use the title.</p>
31
+
31
32
  <% else %>
32
33
  <p>
33
34
  <%= f.label :permalink, "URL" %><br/>
data/beef-pages.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{beef-pages}
8
- s.version = "0.3.10"
8
+ s.version = "0.3.11"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Steve England"]
12
- s.date = %q{2010-01-19}
12
+ s.date = %q{2010-01-27}
13
13
  s.email = %q{steve@wearebeef.co.uk}
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beef-pages
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.10
4
+ version: 0.3.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve England
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-19 00:00:00 +00:00
12
+ date: 2010-01-27 00:00:00 +00:00
13
13
  default_executable:
14
14
  dependencies: []
15
15