From 9d6765adb491eb3a70149109f3a0416728e2cf05 Mon Sep 17 00:00:00 2001 From: Philip Arndt Date: Mon, 11 Jan 2010 17:29:50 +1300 Subject: [PATCH] refactored core crud library to make it much more easily understandable and provide more options to control what's going on without overriding. Migrated some functionality over to make use of it and more will follow. --- .../admin/news_items_controller.rb | 2 +- vendor/plugins/news/app/models/news_item.rb | 4 + .../app/views/admin/news_items/index.html.erb | 24 ++-- .../app/controllers/admin/pages_controller.rb | 10 +- vendor/plugins/pages/app/models/page.rb | 5 +- .../app/views/admin/pages/index.html.erb | 4 +- .../app/views/shared/admin/_search.html.erb | 4 +- vendor/plugins/refinery/lib/crud.rb | 104 +++++++++++++----- .../app/models/refinery_setting.rb | 4 + .../_refinery_setting.html.erb | 2 +- .../admin/refinery_settings/index.html.erb | 30 ++--- 11 files changed, 118 insertions(+), 75 deletions(-) diff --git a/vendor/plugins/news/app/controllers/admin/news_items_controller.rb b/vendor/plugins/news/app/controllers/admin/news_items_controller.rb index e20393dba1..5fce69df6b 100644 --- a/vendor/plugins/news/app/controllers/admin/news_items_controller.rb +++ b/vendor/plugins/news/app/controllers/admin/news_items_controller.rb @@ -2,4 +2,4 @@ class Admin::NewsItemsController < Admin::BaseController crudify :news_item, :order => "created_at DESC" -end +end \ No newline at end of file diff --git a/vendor/plugins/news/app/models/news_item.rb b/vendor/plugins/news/app/models/news_item.rb index 8b77012e0b..d600feab40 100644 --- a/vendor/plugins/news/app/models/news_item.rb +++ b/vendor/plugins/news/app/models/news_item.rb @@ -23,4 +23,8 @@ def content=(value) self.body = value end + def self.per_page + 20 + end + end diff --git a/vendor/plugins/news/app/views/admin/news_items/index.html.erb b/vendor/plugins/news/app/views/admin/news_items/index.html.erb index 4650b1912e..797cf681f5 100644 --- a/vendor/plugins/news/app/views/admin/news_items/index.html.erb +++ b/vendor/plugins/news/app/views/admin/news_items/index.html.erb @@ -9,27 +9,23 @@
- <% if searching? %> -

Search Results for "<%= params[:search] %>"

- <% if @news_items.size > 0 %> - <%= render :partial => "news_item", :collection => @news_items %> - <% else %> -

Sorry, no results found.

- <% end %> + <%= "

Search Results for \"#{params[:search]}\"

" if searching? %> + <% unless @news_items.empty? %> + <%= will_paginate @news_items, :previous_label => '«', :next_label => '»' %> + + <%= will_paginate @news_items, :previous_label => '«', :next_label => '»' %> <% else %> - <% if @news_items.size > 0 %> - <%= will_paginate @news_items, :previous_label => '«', :next_label => '»' %> - - <%= will_paginate @news_items, :previous_label => '«', :next_label => '»' %> - <% else %> + <% unless searching? %>

There are no news items yet. Click "Create News Item" to add your first news item.

+ <% else %> +

Sorry, no results found.

<% end %> <% end %>
diff --git a/vendor/plugins/pages/app/controllers/admin/pages_controller.rb b/vendor/plugins/pages/app/controllers/admin/pages_controller.rb index 312cb2d123..9c64cc0c18 100644 --- a/vendor/plugins/pages/app/controllers/admin/pages_controller.rb +++ b/vendor/plugins/pages/app/controllers/admin/pages_controller.rb @@ -1,14 +1,6 @@ class Admin::PagesController < Admin::BaseController - crudify :page, :conditions => "parent_id IS NULL", :order => "position ASC", :include => [:parts, :slugs, :children, :images] - - def index - if searching? - @pages = Page.find_with_index params[:search] - else - @pages = Page.find_all_by_parent_id(nil, :order => "position ASC") - end - end + crudify :page, :conditions => "parent_id IS NULL", :order => "position ASC", :include => [:parts, :slugs, :children], :paging => false def new @page = Page.new diff --git a/vendor/plugins/pages/app/models/page.rb b/vendor/plugins/pages/app/models/page.rb index bcf1ee6a5b..e4f35eb5ba 100644 --- a/vendor/plugins/pages/app/models/page.rb +++ b/vendor/plugins/pages/app/models/page.rb @@ -26,7 +26,7 @@ def destroy if self.deletable? super else - puts "This page is not deletable. Please use .destroy! if you really want it gone or first" + puts "This page is not deletable. Please use .destroy! if you really want it gone or first:" puts "unset .link_url" unless self.link_url.blank? puts "unset .menu_match" unless self.menu_match.blank? puts "set .deletable to true" unless self.deletable @@ -115,7 +115,8 @@ def all_page_part_content end def self.per_page(dialog = false) - size = (dialog ? 14 : 20) + 2 + #size = (dialog ? 14 : 20) end end diff --git a/vendor/plugins/pages/app/views/admin/pages/index.html.erb b/vendor/plugins/pages/app/views/admin/pages/index.html.erb index a5b6d2d771..5367f76430 100644 --- a/vendor/plugins/pages/app/views/admin/pages/index.html.erb +++ b/vendor/plugins/pages/app/views/admin/pages/index.html.erb @@ -16,7 +16,7 @@
<% if searching? %> - <% if @pages.size > 0 %> + <% unless @pages.empty? %>

Search Results for "<%= params[:search] %>"

- <% if searching? %> - <% if @refinery_settings.size > 0 %> - - <% else %> -

Sorry, no results found

- <% end %> + <% unless @refinery_settings.empty? %> + <%= will_paginate @refinery_settings, :previous_label => '«', :next_label => '»' unless searching? %> + + <%= will_paginate @refinery_settings, :previous_label => '«', :next_label => '»' unless searching? %> <% else %> - <% if @refinery_settings.size > 0 %> - <%= will_paginate @refinery_settings, :previous_label => '«', :next_label => '»' %> - - <%= will_paginate @refinery_settings, :previous_label => '«', :next_label => '»' %> - <% else %> -

+

+ <% if searching? %> + Sorry, no results found + <% else %> There are no settings yet. Click "Create New Setting" to add your first setting. -

- <% end %> + <% end %> +

<% end %>