will_filter 3.0.5 → 3.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/.gitignore +6 -0
- data/.rspec +1 -0
- data/.rvmrc +1 -0
- data/CHANGELOG.rdoc +2 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +156 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +78 -0
- data/Rakefile +68 -0
- data/app/.DS_Store +0 -0
- data/app/assets/images/.DS_Store +0 -0
- data/{public/favicon.ico → app/assets/images/will_filter/.gitkeep} +0 -0
- data/{public/will_filter/images → app/assets/images/will_filter}/buttons.png +0 -0
- data/{public/will_filter/images → app/assets/images/will_filter}/calendar.png +0 -0
- data/{public/will_filter/images → app/assets/images/will_filter}/clock.png +0 -0
- data/{public/will_filter/images → app/assets/images/will_filter}/close.gif +0 -0
- data/{public/will_filter/images → app/assets/images/will_filter}/sort_arrow_all.gif +0 -0
- data/{public/will_filter/images → app/assets/images/will_filter}/sort_bg.gif +0 -0
- data/{public/will_filter/images → app/assets/images/will_filter}/spinner.gif +0 -0
- data/{public/will_filter/javascripts/will_filter.js → app/assets/javascripts/will_filter/filter.js} +7 -7
- data/app/assets/javascripts/will_filter/filter_prototype_effects.js +38 -0
- data/app/assets/stylesheets/will_filter/actions.css.scss +27 -0
- data/app/assets/stylesheets/will_filter/buttons.css.scss +24 -0
- data/app/assets/stylesheets/will_filter/calendar.css.scss +55 -0
- data/app/assets/stylesheets/will_filter/exporter.css.scss +43 -0
- data/app/assets/stylesheets/will_filter/filter.css.scss +152 -0
- data/app/assets/stylesheets/will_filter/results.css.scss +63 -0
- data/app/controllers/{application_controller.rb → will_filter/application_controller.rb} +4 -4
- data/app/controllers/will_filter/calendar_controller.rb +1 -1
- data/app/controllers/will_filter/exporter_controller.rb +1 -1
- data/app/controllers/will_filter/filter_controller.rb +1 -7
- data/app/models/will_filter/filter.rb +12 -40
- data/app/views/.DS_Store +0 -0
- data/app/views/layouts/will_filter/application.html.erb +14 -0
- data/app/views/will_filter/.DS_Store +0 -0
- data/app/views/will_filter/calendar/.tmp__annual.html.erb.10120~ +32 -0
- data/app/views/will_filter/calendar/.tmp__annual.html.erb.2839~ +14 -0
- data/app/views/will_filter/calendar/.tmp__annual.html.erb.58862~ +14 -0
- data/app/views/will_filter/calendar/.tmp__annual.html.erb.64846~ +14 -0
- data/app/views/will_filter/calendar/.tmp__annual.html.erb.68789~ +32 -0
- data/app/views/will_filter/calendar/.tmp__annual.html.erb.93003~ +14 -0
- data/app/views/will_filter/calendar/.tmp__annual.html.erb.93827~ +32 -0
- data/app/views/will_filter/calendar/.tmp__month.html.erb.756~ +39 -0
- data/app/views/will_filter/calendar/.tmp__quarter.html.erb.69400~ +24 -0
- data/app/views/will_filter/calendar/.tmp_index.html.erb.11043~ +52 -0
- data/app/views/will_filter/calendar/.tmp_index.html.erb.33725~ +52 -0
- data/app/views/will_filter/calendar/.tmp_index.html.erb.56447~ +66 -0
- data/app/views/will_filter/calendar/.tmp_index.html.erb.85379~ +70 -0
- data/app/views/will_filter/calendar/.tmp_index.html.erb.86425~ +70 -0
- data/app/views/will_filter/calendar/.tmp_index.html.erb.95884~ +52 -0
- data/app/views/will_filter/calendar/index.html.erb +3 -3
- data/app/views/will_filter/common/.tmp__results_table.html.erb.47785~ +87 -0
- data/app/views/will_filter/common/.tmp__results_table.html.erb.88043~ +87 -0
- data/app/views/will_filter/common/.tmp__scripts.html.erb.51111~ +0 -0
- data/app/views/will_filter/common/.tmp__scripts.html.erb.6990~ +2 -0
- data/app/views/will_filter/common/.tmp__scripts.html.erb.88469~ +6 -0
- data/app/views/will_filter/common/_results_table.html.erb +6 -2
- data/app/views/will_filter/common/_scripts.html.erb +8 -2
- data/app/views/will_filter/exporter/.tmp_export.html.erb.10837~ +9 -0
- data/app/views/will_filter/exporter/.tmp_export.html.erb.1415~ +29 -0
- data/app/views/will_filter/exporter/.tmp_export.html.erb.60681~ +29 -0
- data/app/views/will_filter/exporter/.tmp_export.html.erb.61343~ +29 -0
- data/app/views/will_filter/exporter/.tmp_export_dialog.html.erb.22940~ +38 -0
- data/app/views/will_filter/exporter/.tmp_index.html.erb.13538~ +47 -0
- data/app/views/will_filter/exporter/.tmp_index.html.erb.23276~ +47 -0
- data/app/views/will_filter/exporter/.tmp_index.html.erb.28308~ +44 -0
- data/app/views/will_filter/exporter/.tmp_index.html.erb.29049~ +44 -0
- data/app/views/will_filter/exporter/index.html.erb +1 -1
- data/app/views/will_filter/filter/.tmp__condition.html.erb.24762~ +28 -0
- data/app/views/will_filter/filter/.tmp__condition.html.erb.27587~ +28 -0
- data/app/views/will_filter/filter/.tmp__condition.html.erb.45362~ +28 -0
- data/app/views/will_filter/filter/.tmp__condition.html.erb.49252~ +28 -0
- data/app/views/will_filter/filter/.tmp__condition.html.erb.58234~ +30 -0
- data/app/views/will_filter/filter/.tmp__condition.html.erb.60688~ +28 -0
- data/app/views/will_filter/filter/.tmp__condition.html.erb.66557~ +28 -0
- data/app/views/will_filter/filter/.tmp__condition.html.erb.68032~ +30 -0
- data/app/views/will_filter/filter/.tmp__condition.html.erb.73740~ +28 -0
- data/app/views/will_filter/filter/.tmp__condition.html.erb.81041~ +30 -0
- data/app/views/will_filter/filter/.tmp__condition.html.erb.98638~ +28 -0
- data/app/views/will_filter/filter/.tmp__conditions.html.erb.23216~ +50 -0
- data/app/views/will_filter/filter/.tmp__conditions.html.erb.53568~ +50 -0
- data/app/views/will_filter/filter/.tmp__conditions.html.erb.5788~ +56 -0
- data/app/views/will_filter/filter/.tmp__conditions.html.erb.79521~ +50 -0
- data/app/views/will_filter/filter/.tmp__conditions.html.erb.92102~ +56 -0
- data/app/views/will_filter/filter/.tmp__conditions.html.erb.97034~ +52 -0
- data/app/views/will_filter/filter/.tmp__container.html.erb.23178~ +30 -0
- data/app/views/will_filter/filter/.tmp__container.html.erb.25113~ +31 -0
- data/app/views/will_filter/filter/.tmp__container.html.erb.29332~ +36 -0
- data/app/views/will_filter/filter/.tmp__container.html.erb.31412~ +32 -0
- data/app/views/will_filter/filter/.tmp__container.html.erb.57958~ +32 -0
- data/app/views/will_filter/filter/.tmp__container.html.erb.80588~ +30 -0
- data/app/views/will_filter/filter/.tmp__container.html.erb.89054~ +30 -0
- data/app/views/will_filter/filter/.tmp__container.html.erb.92260~ +32 -0
- data/app/views/will_filter/filter/.tmp__container.html.erb.92798~ +36 -0
- data/app/views/will_filter/filter/.tmp__filter_conditions.html.erb.70617~ +78 -0
- data/app/views/will_filter/filter/.tmp_calendar.html.erb.30839~ +66 -0
- data/app/views/will_filter/filter/.tmp_calendar.html.erb.52766~ +66 -0
- data/app/views/will_filter/filter/.tmp_calendar.html.erb.83182~ +66 -0
- data/app/views/will_filter/filter/.tmp_export_data.html.erb.50322~ +44 -0
- data/app/views/will_filter/filter/.tmp_index.html.erb.40957~ +4 -0
- data/app/views/will_filter/filter/_condition.html.erb +5 -5
- data/app/views/will_filter/filter/_conditions.html.erb +4 -7
- data/app/views/will_filter/filter/_container.html.erb +5 -5
- data/app/views/will_filter/filter/containers/_boolean.html.erb +2 -2
- data/app/views/will_filter/filter/containers/_date.html.erb +3 -5
- data/app/views/will_filter/filter/containers/_date_range.html.erb +5 -9
- data/app/views/will_filter/filter/containers/_date_time.html.erb +3 -5
- data/app/views/will_filter/filter/containers/_date_time_range.html.erb +5 -9
- data/app/views/will_filter/filter/containers/_list.html.erb +1 -1
- data/app/views/will_filter/filter/containers/_numeric_range.html.erb +3 -3
- data/app/views/will_filter/filter/containers/_text.html.erb +2 -2
- data/app/views/will_filter/filter/index.html.erb +1 -1
- data/config/routes.rb +39 -17
- data/db/migrate/20110924023807_create_will_filter_filters.rb +15 -0
- data/lib/generators/.DS_Store +0 -0
- data/lib/generators/will_filter/templates/config.yml +0 -28
- data/lib/generators/will_filter/templates/create_will_filter_filters.rb +15 -0
- data/lib/generators/will_filter/will_filter_generator.rb +27 -4
- data/lib/tasks/will_filter_tasks.rake +1 -2
- data/lib/will_filter.rb +26 -1
- data/lib/will_filter/calendar.rb +1 -1
- data/lib/will_filter/config.rb +1 -6
- data/lib/will_filter/containers/filter_list.rb +2 -2
- data/lib/will_filter/engine.rb +23 -17
- data/lib/will_filter/{common_methods.rb → extensions/action_controller_extension.rb} +18 -20
- data/lib/will_filter/extensions/action_view_extension.rb +50 -0
- data/lib/{core_ext/active_record/base.rb → will_filter/extensions/active_record_extension.rb} +22 -17
- data/lib/{core_ext/array.rb → will_filter/extensions/array_extension.rb} +1 -1
- data/lib/{application_helper.rb → will_filter/railtie.rb} +30 -20
- data/{app/helpers/application_helper.rb → lib/will_filter/version.rb} +3 -3
- data/script/rails +6 -0
- data/spec/spec_helper.rb +27 -0
- data/test/.DS_Store +0 -0
- data/test/dummy/.DS_Store +0 -0
- data/test/dummy/.sass-cache/f9cb1ef521115be73f1c61d3d5d64f66c947af63/actions.css.scssc +0 -0
- data/test/dummy/.sass-cache/f9cb1ef521115be73f1c61d3d5d64f66c947af63/buttons.css.scssc +0 -0
- data/test/dummy/.sass-cache/f9cb1ef521115be73f1c61d3d5d64f66c947af63/calendar.css.scssc +0 -0
- data/test/dummy/.sass-cache/f9cb1ef521115be73f1c61d3d5d64f66c947af63/exporter.css.scssc +0 -0
- data/test/dummy/.sass-cache/f9cb1ef521115be73f1c61d3d5d64f66c947af63/filter.css.scssc +0 -0
- data/test/dummy/.sass-cache/f9cb1ef521115be73f1c61d3d5d64f66c947af63/results.css.scssc +0 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/.DS_Store +0 -0
- data/test/dummy/app/assets/javascripts/application.js +7 -0
- data/test/dummy/app/assets/stylesheets/application.css +7 -0
- data/test/dummy/app/assets/stylesheets/kaminari.css +10 -0
- data/test/dummy/app/controllers/advanced_controller.rb +19 -0
- data/test/dummy/app/controllers/application_controller.rb +8 -0
- data/test/dummy/app/controllers/simple_controller.rb +15 -0
- data/test/dummy/app/helpers/application_helper.rb +3 -0
- data/test/dummy/app/mailers/.gitkeep +0 -0
- data/test/dummy/app/models/.gitkeep +0 -0
- data/test/dummy/app/models/event.rb +15 -0
- data/test/dummy/app/models/event_filter.rb +41 -0
- data/test/dummy/app/models/event_user.rb +10 -0
- data/test/dummy/app/models/event_user_filter.rb +40 -0
- data/test/dummy/app/models/user.rb +42 -0
- data/test/dummy/app/models/user_filter.rb +57 -0
- data/test/dummy/app/views/advanced/event_members.html.erb +2 -0
- data/test/dummy/app/views/advanced/events.html.erb +2 -0
- data/test/dummy/app/views/advanced/users.html.erb +2 -0
- data/test/dummy/app/views/advanced/users_with_actions.html.erb +12 -0
- data/test/dummy/app/views/common/_event_members.html.erb +2 -0
- data/test/dummy/app/views/common/_events.html.erb +2 -0
- data/test/dummy/app/views/common/_menu.html.erb +23 -0
- data/test/dummy/app/views/common/_users.html.erb +2 -0
- data/test/dummy/app/views/kaminari/_first_page.html.erb +11 -0
- data/test/dummy/app/views/kaminari/_gap.html.erb +8 -0
- data/test/dummy/app/views/kaminari/_last_page.html.erb +11 -0
- data/test/dummy/app/views/kaminari/_next_page.html.erb +11 -0
- data/test/dummy/app/views/kaminari/_page.html.erb +12 -0
- data/test/dummy/app/views/kaminari/_paginator.html.erb +23 -0
- data/test/dummy/app/views/kaminari/_prev_page.html.erb +11 -0
- data/test/dummy/app/views/layouts/application.html.erb +17 -0
- data/test/dummy/app/views/simple/event_members.html.erb +2 -0
- data/test/dummy/app/views/simple/events.html.erb +3 -0
- data/test/dummy/app/views/simple/users.html.erb +2 -0
- data/test/dummy/config.ru +4 -0
- data/{config → test/dummy/config}/application.rb +11 -10
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/data/female_names.txt +26 -0
- data/test/dummy/config/data/last_names.txt +50 -0
- data/test/dummy/config/data/male_names.txt +25 -0
- data/{config → test/dummy/config}/database.yml +3 -0
- data/test/dummy/config/environment.rb +5 -0
- data/{config → test/dummy/config}/environments/development.rb +8 -4
- data/{config → test/dummy/config}/environments/production.rb +24 -13
- data/{config → test/dummy/config}/environments/test.rb +9 -5
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +10 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +13 -0
- data/test/dummy/config/will_filter/config.yml +97 -0
- data/test/dummy/db/migrate/.DS_Store +0 -0
- data/test/dummy/db/migrate/20090416182137_create_users.rb +15 -0
- data/test/dummy/db/migrate/20090418042757_create_events.rb +20 -0
- data/test/dummy/db/migrate/20090418062225_create_event_users.rb +17 -0
- data/test/dummy/db/schema.rb +61 -0
- data/test/dummy/lib/assets/.gitkeep +0 -0
- data/test/dummy/lib/tasks/dummy.rake +14 -0
- data/test/dummy/log/.gitkeep +0 -0
- data/{public → test/dummy/public}/404.html +0 -0
- data/{public → test/dummy/public}/422.html +0 -0
- data/{public → test/dummy/public}/500.html +0 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/test/functional/welcome_controller_test.rb +9 -0
- data/test/dummy/test/unit/helpers/welcome_helper_test.rb +4 -0
- data/test/fixtures/will_filter/filters.yml +11 -0
- data/test/functional/will_filter/calendar_controller_test.rb +9 -0
- data/test/functional/will_filter/exporter_controller_test.rb +9 -0
- data/test/functional/will_filter/filter_controller_test.rb +9 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/test_helper.rb +10 -0
- data/test/unit/helpers/will_filter/calendar_helper_test.rb +6 -0
- data/test/unit/helpers/will_filter/exporter_helper_test.rb +6 -0
- data/test/unit/helpers/will_filter/filter_helper_test.rb +6 -0
- data/test/unit/will_filter/filter_test.rb +9 -0
- data/test/will_filter_test.rb +7 -0
- data/will_filter.gemspec +38 -0
- metadata +446 -45
- data/app/views/layouts/application.html.erb +0 -11
- data/config/boot.rb +0 -6
- data/config/environment.rb +0 -15
- data/lib/core_ext/object.rb +0 -34
- data/lib/generators/will_filter/templates/create_will_filter_tables.rb +0 -19
- data/public/robots.txt +0 -5
- data/public/will_filter/images/results_table_th_active.gif +0 -0
- data/public/will_filter/javascripts/will_filter_prototype_effects.js +0 -15
- data/public/will_filter/stylesheets/will_filter.css +0 -168
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
class CreateWillFilterFilters < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
create_table :will_filter_filters do |t|
|
|
4
|
+
t.string :type
|
|
5
|
+
t.string :name
|
|
6
|
+
t.text :data
|
|
7
|
+
t.integer :user_id
|
|
8
|
+
t.string :model_class_name
|
|
9
|
+
|
|
10
|
+
t.timestamps
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
add_index :will_filter_filters, [:user_id]
|
|
14
|
+
end
|
|
15
|
+
end
|
|
Binary file
|
|
@@ -10,34 +10,6 @@
|
|
|
10
10
|
#############################################################################
|
|
11
11
|
|
|
12
12
|
defaults: &defaults
|
|
13
|
-
|
|
14
|
-
###########################################################################
|
|
15
|
-
#
|
|
16
|
-
# require_filter_extension makes the filter into an abstract class
|
|
17
|
-
# and will require you to subclass it in order for the filter to be
|
|
18
|
-
# serializeable. The following will no longer work:
|
|
19
|
-
#
|
|
20
|
-
# @users = User.filter(:params => params)
|
|
21
|
-
#
|
|
22
|
-
# Use your own filter class instead:
|
|
23
|
-
#
|
|
24
|
-
# @users = User.filter(:params => params, :filter => UserFilter)
|
|
25
|
-
#
|
|
26
|
-
# In the subclass you must provide the model name to be filtered by overloading:
|
|
27
|
-
#
|
|
28
|
-
# def model_class
|
|
29
|
-
# User
|
|
30
|
-
# end
|
|
31
|
-
#
|
|
32
|
-
###########################################################################
|
|
33
|
-
|
|
34
|
-
require_filter_extensions: false
|
|
35
|
-
|
|
36
|
-
###########################################################################
|
|
37
|
-
# If you would like to see some JavaScript effects
|
|
38
|
-
# provide your own effects class and implement required methods
|
|
39
|
-
###########################################################################
|
|
40
|
-
|
|
41
13
|
effects_options:
|
|
42
14
|
enabled: false
|
|
43
15
|
script_path: "/will_filter/javascripts/will_filter_prototype_effects.js"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
class CreateWillFilterFilters < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
create_table :will_filter_filters do |t|
|
|
4
|
+
t.string :type
|
|
5
|
+
t.string :name
|
|
6
|
+
t.text :data
|
|
7
|
+
t.integer :user_id
|
|
8
|
+
t.string :model_class_name
|
|
9
|
+
|
|
10
|
+
t.timestamps
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
add_index :will_filter_filters, [:user_id]
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -1,9 +1,32 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Copyright (c) 2010-2011 Michael Berkovich
|
|
3
|
+
#
|
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
|
5
|
+
# a copy of this software and associated documentation files (the
|
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
|
10
|
+
# the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be
|
|
13
|
+
# included in all copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
|
+
#++
|
|
23
|
+
|
|
1
24
|
require 'rails/generators'
|
|
2
25
|
require 'rails/generators/migration'
|
|
3
26
|
|
|
4
27
|
class WillFilterGenerator < Rails::Generators::Base
|
|
5
28
|
include Rails::Generators::Migration
|
|
6
|
-
|
|
29
|
+
|
|
7
30
|
def self.source_root
|
|
8
31
|
@source_root ||= File.expand_path('../templates', __FILE__)
|
|
9
32
|
end
|
|
@@ -18,7 +41,7 @@ class WillFilterGenerator < Rails::Generators::Base
|
|
|
18
41
|
end
|
|
19
42
|
|
|
20
43
|
def create_migration_file
|
|
21
|
-
migration_template '
|
|
44
|
+
migration_template 'create_will_filter_filters.rb', 'db/migrate/create_will_filter_filters.rb'
|
|
22
45
|
copy_file 'config.yml', 'config/will_filter/config.yml'
|
|
23
|
-
end
|
|
24
|
-
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#--
|
|
2
|
-
# Copyright (c) 2011 Michael Berkovich
|
|
2
|
+
# Copyright (c) 2010-2011 Michael Berkovich
|
|
3
3
|
#
|
|
4
4
|
# Permission is hereby granted, free of charge, to any person obtaining
|
|
5
5
|
# a copy of this software and associated documentation files (the
|
|
@@ -26,7 +26,6 @@ namespace :will_filter do
|
|
|
26
26
|
desc "Sync extra files from will_filter plugin."
|
|
27
27
|
task :sync do
|
|
28
28
|
system "rsync -ruv vendor/plugins/will_filter/config/wf ./config"
|
|
29
|
-
system "rsync -ruv vendor/plugins/will_filter/db/migrate ./db"
|
|
30
29
|
end
|
|
31
30
|
|
|
32
31
|
end
|
data/lib/will_filter.rb
CHANGED
|
@@ -1,3 +1,28 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Copyright (c) 2010-2011 Michael Berkovich
|
|
3
|
+
#
|
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
|
5
|
+
# a copy of this software and associated documentation files (the
|
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
|
10
|
+
# the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be
|
|
13
|
+
# included in all copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
|
+
#++
|
|
23
|
+
|
|
24
|
+
require File.join(File.dirname(__FILE__), 'will_filter/railtie')
|
|
25
|
+
require File.join(File.dirname(__FILE__), 'will_filter/engine')
|
|
26
|
+
|
|
1
27
|
module WillFilter
|
|
2
|
-
require 'will_filter/engine' if defined?(Rails) && Rails::VERSION::MAJOR == 3
|
|
3
28
|
end
|
data/lib/will_filter/calendar.rb
CHANGED
data/lib/will_filter/config.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#--
|
|
2
|
-
# Copyright (c) 2011 Michael Berkovich
|
|
2
|
+
# Copyright (c) 2010-2011 Michael Berkovich
|
|
3
3
|
#
|
|
4
4
|
# Permission is hereby granted, free of charge, to any person obtaining
|
|
5
5
|
# a copy of this software and associated documentation files (the
|
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
|
|
24
24
|
module WillFilter
|
|
25
25
|
class Config
|
|
26
|
-
|
|
27
26
|
def self.init(site_current_user)
|
|
28
27
|
Thread.current[:current_user] = site_current_user
|
|
29
28
|
end
|
|
@@ -45,10 +44,6 @@ module WillFilter
|
|
|
45
44
|
@config ||= load_yml("/config/will_filter/config.yml")
|
|
46
45
|
end
|
|
47
46
|
|
|
48
|
-
def self.require_filter_extensions?
|
|
49
|
-
config[:require_filter_extensions]
|
|
50
|
-
end
|
|
51
|
-
|
|
52
47
|
def self.effects_options
|
|
53
48
|
config[:effects_options]
|
|
54
49
|
end
|
|
@@ -43,12 +43,12 @@ module WillFilter
|
|
|
43
43
|
model_class_name = condition.key.to_s[0..-4].camelcase
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
WillFilter::Filter.new(model_class_name).saved_filters(false)
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
def sql_condition
|
|
50
50
|
return nil unless operator == :is_filtered_by
|
|
51
|
-
sub_filter =
|
|
51
|
+
sub_filter = WillFilter::Filter.find_by_id(value)
|
|
52
52
|
sub_conds = sub_filter.sql_conditions
|
|
53
53
|
sub_sql = "SELECT #{sub_filter.table_name}.id FROM #{sub_filter.table_name} WHERE #{sub_conds[0]}"
|
|
54
54
|
sub_conds[0] = " #{condition.full_key} IN (#{sub_sql}) "
|
data/lib/will_filter/engine.rb
CHANGED
|
@@ -1,22 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
#--
|
|
2
|
+
# Copyright (c) 2010-2011 Michael Berkovich
|
|
3
|
+
#
|
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
|
5
|
+
# a copy of this software and associated documentation files (the
|
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
|
10
|
+
# the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be
|
|
13
|
+
# included in all copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
|
+
#++
|
|
3
23
|
|
|
4
24
|
module WillFilter
|
|
5
25
|
class Engine < Rails::Engine
|
|
6
|
-
|
|
7
|
-
"../../lib/core_ext/**",
|
|
8
|
-
"../../lib/will_filter",
|
|
9
|
-
"../../lib/will_filter/containers"
|
|
10
|
-
].each do |dir|
|
|
11
|
-
Dir[File.expand_path("#{File.dirname(__FILE__)}/#{dir}/*.rb")].sort.each do |file|
|
|
12
|
-
require(file)
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
require(File.expand_path("#{File.dirname(__FILE__)}/../../lib/application_helper.rb"))
|
|
16
|
-
|
|
17
|
-
initializer "static assets" do |app|
|
|
18
|
-
# app.middleware.use ActionDispatch::Static, "#{root}/public" # Old way, does not work in production
|
|
19
|
-
app.middleware.insert_after ActionDispatch::Static, ActionDispatch::Static, "#{root}/public"
|
|
20
|
-
end
|
|
26
|
+
isolate_namespace WillFilter
|
|
21
27
|
end
|
|
22
28
|
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#--
|
|
2
|
-
# Copyright (c) 2011 Michael Berkovich
|
|
2
|
+
# Copyright (c) 2010-2011 Michael Berkovich
|
|
3
3
|
#
|
|
4
4
|
# Permission is hereby granted, free of charge, to any person obtaining
|
|
5
5
|
# a copy of this software and associated documentation files (the
|
|
@@ -22,28 +22,26 @@
|
|
|
22
22
|
#++
|
|
23
23
|
|
|
24
24
|
module WillFilter
|
|
25
|
-
module
|
|
26
|
-
|
|
25
|
+
module ActionControllerExtension
|
|
27
26
|
def self.included(base)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
end
|
|
27
|
+
base.send(:include, InstanceMethods)
|
|
28
|
+
base.before_filter :init_will_filter
|
|
31
29
|
end
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
30
|
+
|
|
31
|
+
module InstanceMethods
|
|
32
|
+
def init_will_filter
|
|
33
|
+
# only if the filters need to be
|
|
34
|
+
return unless WillFilter::Config.user_filters_enabled?
|
|
35
|
+
|
|
36
|
+
wf_current_user = nil
|
|
37
|
+
begin
|
|
38
|
+
wf_current_user = eval(WillFilter::Config.current_user_method)
|
|
39
|
+
rescue Exception => ex
|
|
40
|
+
raise WillFilter::Exception.new("will_filter cannot be initialized because #{WillFilter::Config.current_user_method} failed with: #{ex.message}")
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
WillFilter::Config.init(wf_current_user)
|
|
42
44
|
end
|
|
43
|
-
|
|
44
|
-
WillFilter::Config.init(wf_current_user)
|
|
45
45
|
end
|
|
46
|
-
|
|
47
46
|
end
|
|
48
47
|
end
|
|
49
|
-
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
#--
|
|
2
|
+
# Copyright (c) 2010-2011 Michael Berkovich
|
|
3
|
+
#
|
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
|
5
|
+
# a copy of this software and associated documentation files (the
|
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
|
10
|
+
# the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be
|
|
13
|
+
# included in all copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
|
+
#++
|
|
23
|
+
|
|
24
|
+
module WillFilter
|
|
25
|
+
module ActionViewExtension
|
|
26
|
+
extend ActiveSupport::Concern
|
|
27
|
+
module InstanceMethods
|
|
28
|
+
def will_filter_tag(results, opts = {})
|
|
29
|
+
render(:partial => "/will_filter/filter/container", :locals => {:wf_filter => results.wf_filter, :opts => opts})
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def will_filter_scripts_tag(opts = {})
|
|
33
|
+
render(:partial => "/will_filter/common/scripts", :locals => {:opts => opts})
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def will_filter_table_tag(results, opts = {})
|
|
37
|
+
filter = results.wf_filter
|
|
38
|
+
opts[:columns] ||= filter.model_column_keys
|
|
39
|
+
render(:partial => "/will_filter/common/results_table", :locals => {:results => results, :filter => filter, :opts => opts})
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def will_filter_actions_bar_tag(results, actions, opts = {})
|
|
43
|
+
filter = results.wf_filter
|
|
44
|
+
opts[:class] ||= "wf_actions_bar_blue"
|
|
45
|
+
opts[:style] ||= ""
|
|
46
|
+
render(:partial => "/will_filter/common/actions_bar", :locals => {:results => results, :filter => filter, :actions => actions, :opts => opts})
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
data/lib/{core_ext/active_record/base.rb → will_filter/extensions/active_record_extension.rb}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#--
|
|
2
|
-
# Copyright (c) 2011 Michael Berkovich
|
|
2
|
+
# Copyright (c) 2010-2011 Michael Berkovich
|
|
3
3
|
#
|
|
4
4
|
# Permission is hereby granted, free of charge, to any person obtaining
|
|
5
5
|
# a copy of this software and associated documentation files (the
|
|
@@ -21,24 +21,29 @@
|
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
22
|
#++
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
module WillFilter
|
|
25
|
+
module ActiveRecordExtension
|
|
26
|
+
extend ActiveSupport::Concern
|
|
27
|
+
module ClassMethods
|
|
28
|
+
def filter(opts = {})
|
|
29
|
+
if ActiveRecord::Base == self.class
|
|
30
|
+
raise WillFilter::FilterException.new("Cannot apply filter to the ActiveRecord::Base object")
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
params = opts[:params] || {}
|
|
34
|
+
|
|
35
|
+
if opts[:filter]
|
|
36
|
+
case opts[:filter].class.name
|
|
37
|
+
when "String" then filter_class = opts[:filter].constantize
|
|
38
|
+
when "Symbol" then filter_class = opts[:filter].to_s.camelcase.constantize
|
|
39
|
+
else filter_class = opts[:filter]
|
|
40
|
+
end
|
|
41
|
+
else
|
|
42
|
+
filter_class = WillFilter::Filter
|
|
43
|
+
end
|
|
29
44
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if opts[:filter]
|
|
33
|
-
case opts[:filter].class.name
|
|
34
|
-
when "String" then filter_class = opts[:filter].constantize
|
|
35
|
-
when "Symbol" then filter_class = opts[:filter].to_s.camelcase.constantize
|
|
36
|
-
else filter_class = opts[:filter]
|
|
45
|
+
filter_class.new(self).deserialize_from_params(params).results
|
|
37
46
|
end
|
|
38
|
-
else
|
|
39
|
-
filter_class = WillFilter::Filter
|
|
40
47
|
end
|
|
41
|
-
|
|
42
|
-
filter_class.new(self).deserialize_from_params(params).results
|
|
43
48
|
end
|
|
44
49
|
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#--
|
|
2
|
-
# Copyright (c) 2011 Michael Berkovich
|
|
2
|
+
# Copyright (c) 2010-2011 Michael Berkovich
|
|
3
3
|
#
|
|
4
4
|
# Permission is hereby granted, free of charge, to any person obtaining
|
|
5
5
|
# a copy of this software and associated documentation files (the
|
|
@@ -21,25 +21,35 @@
|
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
22
|
#++
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
render(:partial => "/will_filter/filter/container", :locals => {:wf_filter => results.wf_filter})
|
|
27
|
-
end
|
|
24
|
+
require 'rails'
|
|
25
|
+
require 'pp'
|
|
28
26
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
27
|
+
[
|
|
28
|
+
".",
|
|
29
|
+
"./containers"
|
|
30
|
+
].each do |dir|
|
|
31
|
+
Dir[File.expand_path("#{File.dirname(__FILE__)}/#{dir}/*.rb")].sort.each do |file|
|
|
32
|
+
require(file)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
require File.join(File.dirname(__FILE__), 'extensions/array_extension')
|
|
37
|
+
require File.join(File.dirname(__FILE__), 'extensions/action_view_extension')
|
|
38
|
+
require File.join(File.dirname(__FILE__), 'extensions/active_record_extension')
|
|
39
|
+
require File.join(File.dirname(__FILE__), 'extensions/action_controller_extension')
|
|
38
40
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
module WillFilter
|
|
42
|
+
class Railtie < ::Rails::Railtie #:nodoc:
|
|
43
|
+
initializer 'will_filter' do |app|
|
|
44
|
+
ActiveSupport.on_load(:active_record) do
|
|
45
|
+
::ActiveRecord::Base.send :include, WillFilter::ActiveRecordExtension
|
|
46
|
+
end
|
|
47
|
+
ActiveSupport.on_load(:action_view) do
|
|
48
|
+
::ActionView::Base.send :include, WillFilter::ActionViewExtension
|
|
49
|
+
end
|
|
50
|
+
ActiveSupport.on_load(:action_controller) do
|
|
51
|
+
include WillFilter::ActionControllerExtension
|
|
52
|
+
end
|
|
53
|
+
end
|
|
44
54
|
end
|
|
45
|
-
end
|
|
55
|
+
end
|