sunrise-widgets 0.1.0 → 0.1.1

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/Gemfile CHANGED
@@ -1,7 +1,7 @@
1
1
  source "http://rubygems.org"
2
2
  gemspec
3
3
 
4
- gem "rails", "3.0.9"
4
+ gem "rails", "3.0.10"
5
5
  gem "capybara", ">= 0.4.0"
6
6
  gem "sqlite3"
7
7
 
@@ -23,6 +23,7 @@ gem 'simple_form'
23
23
  gem 'awesome_nested_set'
24
24
  gem 'fastercsv'
25
25
  gem 'ckeditor'
26
+ gem "has_scope"
26
27
 
27
28
  gem 'galetahub-enum_field', '~> 0.1.4', :require => 'enum_field'
28
29
  gem 'galetahub-salty_slugs', '~> 1.0.0', :require => 'salty_slugs'
@@ -1,13 +1,18 @@
1
1
  class Manage::WidgetsController < Manage::BaseController
2
2
  inherit_resources
3
3
  defaults :route_prefix => 'manage'
4
-
5
- before_filter :make_filter, :only=>[:index]
6
4
 
7
5
  load_and_authorize_resource :class => Widget
8
-
9
6
  cache_sweeper :widget_sweeper, :only => [:create, :update, :destroy]
10
7
 
8
+ with_options :only => [:index] do |i|
9
+ i.has_scope :with_title, :as => :title
10
+ i.has_scope :with_position, :as => :position
11
+ i.has_scope :with_type, :as => :type
12
+ i.has_scope :with_structure, :as => :structure
13
+ end
14
+ order_by :title, :created_at, :sort_order
15
+
11
16
  def create
12
17
  create!{ manage_widgets_path }
13
18
  end
@@ -23,11 +28,6 @@ class Manage::WidgetsController < Manage::BaseController
23
28
  protected
24
29
 
25
30
  def collection
26
- @widgets = (@widgets || end_of_association_chain).merge(@search.scoped).includes(:structure).page(params[:page])
27
- end
28
-
29
- def make_filter
30
- @search = Sunrise::ModelFilter.new(Widget, :attributes => [:title, :widget_position_id, :widget_type_id])
31
- @search.update_attributes(params[:search])
31
+ @widgets = (@widgets || end_of_association_chain).order(search_filter.order).includes(:structure).page(params[:page])
32
32
  end
33
33
  end
@@ -2,22 +2,31 @@
2
2
  <div class="filt-bl">
3
3
  <%= link_to_function t('manage.model_filter.title'), "Manage.toggle_element('block_filter')", :class=>"dark-arr" %>
4
4
 
5
+ <%= t('manage.model_filter.total_count') %>: <%= @widgets.total_count %>
6
+
5
7
  <%= cookie_content_tag(:div, :id=>"block_filter", :class=>"filt") do %>
6
- <%= form_for @search, :as => :search, :url=>manage_widgets_path, :html=>{:method=>:get, :id=>"form_filter"} do |f| %>
7
- <%= f.label :title, t('widget.title', :scope => [:activerecord, :attributes]) %>
8
- <%= f.text_field :title, :class=>"text" %>
9
8
 
10
- <%= f.label :widget_position_id, t('widget.widget_position_id', :scope => [:activerecord, :attributes]) %>
11
- <%= f.collection_select :widget_position_id, WidgetPosition.all, :id, :title, :include_blank => true %>
9
+ <%= form_for search_filter, :url => manage_widgets_path, :html =>{ :method => :get } do |f| %>
10
+ <% controller.scopes_configuration.each do |key, value| %>
11
+ <% next if [:with_position, :with_type, :with_structure].include?(key) %>
12
+ <%= f.label value[:as], t(value[:as], :scope => "activerecord.attributes.widget") %>
13
+ <%= f.text_field value[:as], :class => "text", :name => value[:as] %>
14
+ <% end %>
15
+
16
+ <%= f.label :widget_position_id, t(:widget_position_id, :scope => "activerecord.attributes.widget") %>
17
+ <%= f.collection_select :position, WidgetPosition.all, :id, :title, {:include_blank => true}, {:name => "position"} %>
18
+
19
+ <%= f.label :widget_type_id, t(:widget_type_id, :scope => "activerecord.attributes.widget") %>
20
+ <%= f.collection_select :type, WidgetType.all, :id, :title, {:include_blank => true}, {:name => "type"} %>
21
+
22
+ <%= f.label :structure_id, t(:structure_id, :scope => "activerecord.attributes.widget") %>
23
+ <%= f.select :structure, nested_set_options(Structure) {|i| "#{'–' * i.depth} #{i.title}"}, {:include_blank => true}, {:name => "structure"} %>
12
24
 
13
- <%= f.label :widget_type_id, t('widget.widget_type_id', :scope => [:activerecord, :attributes]) %>
14
- <%= f.collection_select :widget_type_id, WidgetType.all, :id, :title, :include_blank => true %>
15
-
16
25
  <div class="buts">
17
- <%= content_tag(:button, :value=>"search", :type=>"submit", :name=>"commit", :class=>"gr cupid-green") do %>
26
+ <%= content_tag(:button, :value => "search", :type => "submit", :name => "commit", :class => "gr cupid-green") do %>
18
27
  <%= t('manage.model_filter.search') %>
19
28
  <% end %>
20
-
29
+
21
30
  <%= link_to t('manage.model_filter.clear'), manage_widgets_path, :class=>"erase" %>
22
31
  </div>
23
32
  <% end %>
@@ -25,16 +34,12 @@
25
34
  </div>
26
35
  <div class="sort">
27
36
  <label><%= t('manage.sort') %></label>
28
- <div class="select-input"><%= link_to_function t("widgets.#{@search.order_column}_#{@search.order_type}", :scope => [:manage, :sort_columns], :default => :"#{@search.order_column}_#{@search.order_type}"), "SelectList.toggle(event)", :class=>"corn", :id=>'sort_select' %></div>
37
+ <div class="select-input"><%= link_to_function t(search_filter.current_order, :scope => "manage.widgets.sort"), "SelectList.toggle(event)", :class=>"corn", :id=>'sort_select' %></div>
29
38
  <div id='sort_select_list' class="select-list" style='display:none;'>
30
- <%= link_to_sort(t('widgets.created_at_desc', :scope => [:manage, :sort_columns], :default => :created_at_desc), :name => "created_at", :order_type => 'desc') %>
31
- <%= link_to_sort(t('widgets.created_at_asc', :scope => [:manage, :sort_columns], :default => :created_at_asc), :name => "created_at", :order_type => 'asc') %>
32
-
33
- <%= link_to_sort(t('widgets.title_desc', :scope => [:manage, :sort_columns], :default => :title_desc), :name => "title", :order_type => 'desc') %>
34
- <%= link_to_sort(t('widgets.title_asc', :scope => [:manage, :sort_columns], :default => :title_asc), :name => "title", :order_type => 'asc') %>
35
-
36
- <%= link_to_sort(t('widgets.sort_order_desc', :scope => [:manage, :sort_columns], :default => :sort_order_desc), :name => "sort_order", :order_type => 'desc') %>
37
- <%= link_to_sort(t('widgets.sort_order_asc', :scope => [:manage, :sort_columns], :default => :sort_order_asc), :name => "sort_order", :order_type => 'asc') %>
39
+ <% controller.orders_configuration.each do |key, value| %>
40
+ <%= link_to_sort(t("#{key}_desc", :scope => "manage.widgets.sort"), :name => key, :order_type=>'desc') %>
41
+ <%= link_to_sort(t("#{key}_asc", :scope => "manage.widgets.sort"), :name => key, :order_type=>'asc') %>
42
+ <% end %>
38
43
  </div>
39
44
  </div>
40
45
  </div>
@@ -21,8 +21,10 @@ module Sunrise
21
21
  scope :sortable, order("#{quoted_table_name}.sort_order DESC")
22
22
  scope :recently, order("#{quoted_table_name}.created_at DESC")
23
23
  scope :visible, where(:is_visible => true)
24
- scope :with_type, lambda { |type| where(:widget_type_id => type.id) }
25
- scope :with_position, lambda { |position| where(:widget_position_id => position.id) }
24
+ scope :with_type, lambda { |type| where(:widget_type_id => type.try(:id) || type) }
25
+ scope :with_position, lambda { |position| where(:widget_position_id => position.try(:id) || position) }
26
+ scope :with_title, lambda {|title| where(["#{quoted_table_name}.title LIKE ?", "%#{title}%"]) }
27
+ scope :with_structure, lambda {|structure| where(["#{quoted_table_name}.structure_id = ?", structure]) }
26
28
  end
27
29
  end
28
30
  end
@@ -1,5 +1,5 @@
1
1
  module Sunrise
2
2
  module Widgets
3
- VERSION = "0.1.0".freeze
3
+ VERSION = "0.1.1".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,21 +1,22 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sunrise-widgets
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Igor Galeta
14
+ - Pavel Galeta
14
15
  autorequire:
15
16
  bindir: bin
16
17
  cert_chain: []
17
18
 
18
- date: 2011-08-18 00:00:00 +03:00
19
+ date: 2011-09-15 00:00:00 +03:00
19
20
  default_executable:
20
21
  dependencies:
21
22
  - !ruby/object:Gem::Dependency
@@ -26,12 +27,12 @@ dependencies:
26
27
  requirements:
27
28
  - - ">="
28
29
  - !ruby/object:Gem::Version
29
- hash: 17
30
+ hash: 23
30
31
  segments:
31
32
  - 0
32
- - 1
33
- - 5
34
- version: 0.1.5
33
+ - 2
34
+ - 0
35
+ version: 0.2.0
35
36
  type: :runtime
36
37
  version_requirements: *id001
37
38
  description: Widgets plugin for Sunrise CMS via aimbulance