will_filter 3.1.11 → 5.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/Gemfile +8 -3
- data/Gemfile.lock +182 -127
- data/README.rdoc +1 -10
- data/app/assets/images/will_filter/loading.gif +0 -0
- data/app/assets/javascripts/will_filter/filter.js +526 -517
- data/app/assets/stylesheets/will_filter/filter.css.scss +405 -108
- data/app/controllers/will_filter/calendar_controller.rb +10 -1
- data/app/controllers/will_filter/exporter_controller.rb +12 -3
- data/app/controllers/will_filter/filter_controller.rb +19 -10
- data/app/models/will_filter/filter.rb +254 -203
- data/app/views/will_filter/calendar/index.html.erb +55 -43
- data/app/views/will_filter/common/_actions_bar.html.erb +3 -3
- data/app/views/will_filter/common/_results_table.html.erb +55 -39
- data/app/views/will_filter/common/_scripts.html.erb +2 -12
- data/app/views/will_filter/exporter/index.html.erb +26 -22
- data/app/views/will_filter/filter/_condition.html.erb +25 -9
- data/app/views/will_filter/filter/_conditions.html.erb +12 -9
- data/app/views/will_filter/filter/_conditions_footer.html.erb +25 -10
- data/app/views/will_filter/filter/_conditions_header.html.erb +38 -24
- data/app/views/will_filter/filter/_container.html.erb +10 -9
- data/app/views/will_filter/filter/containers/_date.html.erb +8 -10
- data/app/views/will_filter/filter/containers/_date_range.html.erb +21 -13
- data/app/views/will_filter/filter/containers/_date_time.html.erb +8 -10
- data/app/views/will_filter/filter/containers/_date_time_range.html.erb +21 -13
- data/app/views/will_filter/filter/containers/_list.html.erb +16 -6
- data/config/routes.rb +26 -16
- data/deploy +63 -0
- data/lib/generators/will_filter/templates/config.yml +18 -5
- data/lib/generators/will_filter/templates/create_will_filter_filters.rb +12 -1
- data/lib/generators/will_filter/will_filter_generator.rb +10 -1
- data/lib/tasks/will_filter_tasks.rake +10 -2
- data/lib/will_filter.rb +10 -1
- data/lib/will_filter/calendar.rb +10 -1
- data/lib/will_filter/config.rb +31 -4
- data/lib/will_filter/containers/boolean.rb +10 -1
- data/lib/will_filter/containers/date.rb +10 -1
- data/lib/will_filter/containers/date_range.rb +10 -1
- data/lib/will_filter/containers/date_time.rb +10 -1
- data/lib/will_filter/containers/date_time_range.rb +10 -1
- data/lib/will_filter/containers/double.rb +10 -1
- data/lib/will_filter/containers/double_delimited.rb +10 -1
- data/lib/will_filter/containers/double_range.rb +10 -1
- data/lib/will_filter/containers/filter_list.rb +21 -7
- data/lib/will_filter/containers/list.rb +10 -1
- data/lib/will_filter/containers/nil.rb +10 -1
- data/lib/will_filter/containers/numeric.rb +10 -1
- data/lib/will_filter/containers/numeric_delimited.rb +10 -1
- data/lib/will_filter/containers/numeric_range.rb +10 -1
- data/lib/will_filter/containers/single_date.rb +12 -1
- data/lib/will_filter/containers/text.rb +10 -1
- data/lib/will_filter/containers/text_delimited.rb +11 -2
- data/lib/will_filter/engine.rb +10 -1
- data/lib/will_filter/extensions/action_controller_extension.rb +34 -10
- data/lib/will_filter/extensions/action_view_extension.rb +12 -3
- data/lib/will_filter/extensions/active_record_extension.rb +11 -1
- data/lib/will_filter/extensions/active_record_relation_extension.rb +51 -0
- data/lib/will_filter/extensions/array_extension.rb +10 -1
- data/lib/will_filter/filter_condition.rb +11 -7
- data/lib/will_filter/filter_container.rb +10 -1
- data/lib/will_filter/filter_exception.rb +10 -1
- data/lib/will_filter/railtie.rb +14 -4
- data/lib/will_filter/version.rb +11 -2
- data/spec/config/config_spec.rb +5 -5
- data/spec/models/will_filter/filter_spec.rb +130 -131
- data/test/dummy/app/assets/javascripts/application.js +3 -0
- data/test/dummy/app/assets/javascripts/bootstrap.js +1951 -0
- data/test/dummy/app/assets/javascripts/jquery-2.1.3.min.js +4 -0
- data/test/dummy/app/assets/javascripts/select2.min.js +3 -0
- data/test/dummy/app/assets/stylesheets/{application.css → application.css.sass} +5 -2
- data/test/dummy/app/assets/stylesheets/bootstrap.min.css +7 -0
- data/test/dummy/app/assets/stylesheets/select2.min.css +1 -0
- data/test/dummy/app/controllers/advanced_controller.rb +4 -4
- data/test/dummy/app/controllers/orders_controller.rb +2 -2
- data/test/dummy/app/controllers/simple_controller.rb +3 -3
- data/test/dummy/app/models/event.rb +1 -1
- data/test/dummy/app/models/user.rb +1 -1
- data/test/dummy/app/views/common/_events.html.erb +7 -13
- data/test/dummy/app/views/common/_menu.html.erb +25 -27
- data/test/dummy/app/views/layouts/application.html.erb +3 -5
- data/test/dummy/config/environments/development.rb +2 -0
- data/test/dummy/config/environments/production.rb +2 -0
- data/test/dummy/config/environments/test.rb +2 -0
- data/test/dummy/config/initializers/assets.rb +12 -0
- data/test/dummy/config/routes.rb +10 -10
- data/test/dummy/db/schema.rb +46 -50
- data/will_filter.gemspec +3 -3
- metadata +39 -44
- data/.rvmrc +0 -1
- data/app/assets/javascripts/will_filter/filter_prototype_effects.js +0 -38
- data/app/assets/stylesheets/will_filter/actions.css.scss +0 -27
- data/app/assets/stylesheets/will_filter/buttons.css.scss +0 -24
- data/app/assets/stylesheets/will_filter/calendar.css.scss +0 -102
- data/app/assets/stylesheets/will_filter/exporter.css.scss +0 -89
- data/app/assets/stylesheets/will_filter/results.css.scss +0 -63
- data/app/views/layouts/will_filter/application.html.erb +0 -14
- data/test/dummy/app/assets/javascripts/orders.js +0 -2
- data/test/dummy/app/assets/stylesheets/orders.css +0 -4
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
<%= render :partial => '/will_filter/filter/conditions_header', :locals => {:wf_filter => wf_filter} %>
|
3
2
|
|
4
3
|
<div class="body">
|
@@ -12,30 +11,34 @@
|
|
12
11
|
<div class="filter_match_type">
|
13
12
|
<div class="end">
|
14
13
|
<small>
|
15
|
-
<%=
|
14
|
+
<%= link_to("Toggle Conditions", "#", :onclick => "wfFilter.toggleDebugger();") %>
|
16
15
|
</small>
|
17
16
|
</div>
|
18
|
-
Match <%= select_tag(:wf_match, options_for_select(wf_filter.match_options, wf_filter.match), {:onChange=>"wfFilter.markDirty()"}) %>
|
17
|
+
Match <%= select_tag(:wf_match, options_for_select(wf_filter.match_options, wf_filter.match), {:onChange => "wfFilter.markDirty()"}) %>
|
19
18
|
of the following conditions:
|
20
19
|
</div>
|
21
20
|
|
22
21
|
<% if wf_filter.size == 0 %>
|
23
22
|
<div class="no_filter_hint">
|
24
|
-
|
25
|
-
Use the "Add" button in the bottom left corner to add a new condition or select
|
23
|
+
No filter conditions have been specified and all results have been returned.
|
24
|
+
Use the "+ Add Condition" button in the bottom left corner to add a new condition or select
|
26
25
|
a predefined filter from a drop-down list above.
|
27
26
|
</div>
|
28
27
|
<% else %>
|
29
|
-
<table
|
28
|
+
<table>
|
30
29
|
<% 0.upto(wf_filter.size-1) do |index| %>
|
31
30
|
<% condition = wf_filter.condition_at(index) %>
|
32
|
-
<%= render :partial =>
|
31
|
+
<%= render :partial => '/will_filter/filter/condition', :locals => {
|
32
|
+
:wf_filter => wf_filter,
|
33
|
+
:condition => condition,
|
34
|
+
:index => index
|
35
|
+
} %>
|
33
36
|
<% end %>
|
34
37
|
</table>
|
35
38
|
<% end %>
|
36
39
|
|
37
40
|
<div id="wf_debugger" class="debugger" style="display:none;">
|
38
|
-
|
41
|
+
<%= raw(wf_filter.debug_sql_conditions) %>
|
39
42
|
</div>
|
40
43
|
|
41
|
-
</div>
|
44
|
+
</div>
|
@@ -1,17 +1,32 @@
|
|
1
1
|
<div class="actions">
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
2
|
+
|
3
|
+
<% if wf_filter.order_configurable? %>
|
4
|
+
Order:
|
5
|
+
<%= select_tag(:wf_order, options_for_select(wf_filter.condition_options, wf_filter.order), {:onChange => "markDirty()"}) %>
|
6
|
+
<%= select_tag(:wf_order_type, options_for_select(wf_filter.order_type_options, wf_filter.order_type), {:onChange => "markDirty()"}) %>
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<% if wf_filter.per_page_configurable? %>
|
10
|
+
Per Page:
|
11
|
+
<%= select_tag(:wf_per_page, options_for_select(wf_filter.per_page_options, wf_filter.per_page.to_s), {:onChange => "markDirty()"}) %>
|
12
|
+
<% end %>
|
13
|
+
|
7
14
|
|
8
|
-
|
15
|
+
<button type="button" class="btn btn-primary btn-xs" onclick="wfFilter.submit()">
|
16
|
+
Submit
|
17
|
+
</button>
|
9
18
|
</div>
|
19
|
+
|
10
20
|
<div>
|
11
|
-
|
12
|
-
|
21
|
+
<button type="button" class="btn btn-default btn-xs" onclick="wfFilter.addCondition()">
|
22
|
+
+ Add Condition
|
23
|
+
</button>
|
24
|
+
<button type="button" class="btn btn-default btn-xs" onclick="wfFilter.removeAllConditions()">
|
25
|
+
Clear All
|
26
|
+
</button>
|
27
|
+
|
13
28
|
|
14
29
|
<span id="wf_loader" class="spinner" style="display:none;">
|
15
|
-
<%=image_tag
|
30
|
+
<%= image_tag 'will_filter/loading.gif', style: 'height: 15px;' %>
|
16
31
|
</span>
|
17
|
-
</div>
|
32
|
+
</div>
|
@@ -1,38 +1,52 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
<%= hidden_field_tag(:wf_name, wf_filter.name) %>
|
1
|
+
<%= hidden_field_tag(:wf_id, wf_filter.id) %>
|
2
|
+
<%= hidden_field_tag(:wf_type, wf_filter.class.name) %>
|
3
|
+
<%= hidden_field_tag(:wf_dirty, "false") %>
|
4
|
+
<%= hidden_field_tag(:wf_submitted, "false") %>
|
5
|
+
<%= hidden_field_tag(:wf_name, wf_filter.name) %>
|
7
6
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
<%= hidden_field_tag(:wf_export_format, "") %>
|
13
|
-
<%= hidden_field_tag(:wf_export_fields, "") %>
|
14
|
-
</div>
|
7
|
+
<% unless WillFilter::Config.require_filter_extensions? %>
|
8
|
+
<%= hidden_field_tag(:wf_model, wf_filter.model_class_name) %>
|
9
|
+
<% end %>
|
15
10
|
|
16
|
-
|
11
|
+
<%= hidden_field_tag(:wf_export_format, "") %>
|
12
|
+
<%= hidden_field_tag(:wf_export_fields, "") %>
|
13
|
+
|
14
|
+
<div class="wf_header">
|
17
15
|
<% if wf_filter.show_export_options? %>
|
18
16
|
<div class="end" style="padding-left:3px;">
|
19
|
-
|
20
|
-
|
17
|
+
<button type="button" class="btn btn-default btn-xs" onclick="wfExporter.show(this)">
|
18
|
+
Export Data...
|
19
|
+
</button>
|
20
|
+
</div>
|
21
21
|
<% end %>
|
22
|
-
|
22
|
+
|
23
23
|
<% if wf_filter.show_save_options? %>
|
24
24
|
<div class="end">
|
25
|
-
|
25
|
+
<button type="button" class="btn btn-default btn-xs" onclick="wfFilter.saveFilter()">
|
26
|
+
Save As New...
|
27
|
+
</button>
|
28
|
+
|
26
29
|
<% if wf_filter.id %>
|
27
|
-
|
28
|
-
|
30
|
+
<button type="button" class="btn btn-default btn-xs" onclick="wfFilter.updateFilter()">
|
31
|
+
Update
|
32
|
+
</button>
|
33
|
+
<button type="button" class="btn btn-default btn-xs" onclick="wfFilter.deleteFilter()">
|
34
|
+
Delete
|
35
|
+
</button>
|
29
36
|
<% end %>
|
30
37
|
</div>
|
31
38
|
<% end %>
|
32
39
|
|
33
40
|
<div>
|
34
|
-
<% unless wf_filter.
|
35
|
-
|
36
|
-
|
41
|
+
<% unless wf_filter.filter_options.empty? %>
|
42
|
+
<%= select_tag(:wf_key, grouped_options_for_select(wf_filter.filter_options, wf_filter.key), {:onChange => "wfFilter.loadSavedFilter()", style: 'width:250px'}) %>
|
43
|
+
<script>
|
44
|
+
$("#wf_key").select2({
|
45
|
+
placeholder: "Select pre-defined or saved filter"
|
46
|
+
}).on("change", function (e) {
|
47
|
+
wfFilter.loadSavedFilter();
|
48
|
+
});
|
49
|
+
</script>
|
50
|
+
<% end %>
|
37
51
|
</div>
|
38
|
-
</div>
|
52
|
+
</div>
|
@@ -1,15 +1,16 @@
|
|
1
1
|
<%= will_filter_scripts_tag %>
|
2
2
|
|
3
|
-
<%= form_tag({}, {:method => :get, :name=>'wf_form', :id => 'wf_form', :class => 'wf_form'
|
4
|
-
<div class="wf_container">
|
3
|
+
<%= form_tag({}, {:method => :get, :name => 'wf_form', :id => 'wf_form', :class => 'wf_form'}) do %>
|
5
4
|
|
6
|
-
<div
|
7
|
-
<%= render :partial=> '/will_filter/filter/conditions', :locals => { :wf_filter => wf_filter } %>
|
8
|
-
</div>
|
5
|
+
<div class="wf_container">
|
9
6
|
|
10
|
-
|
11
|
-
|
12
|
-
|
7
|
+
<div id="wf_filter_conditions" class="wf_conditions">
|
8
|
+
<%= render :partial => '/will_filter/filter/conditions', :locals => {:wf_filter => wf_filter} %>
|
9
|
+
</div>
|
13
10
|
|
14
|
-
|
11
|
+
<div class="wf_footer">
|
12
|
+
<%= render :partial => '/will_filter/filter/conditions_footer', :locals => {:wf_filter => wf_filter} %>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
</div>
|
15
16
|
<% end %>
|
@@ -1,10 +1,8 @@
|
|
1
|
-
<
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
</tr>
|
10
|
-
</table>
|
1
|
+
<div class="input-group" style="width: 99%;">
|
2
|
+
<%= text_field_tag("wf_v#{index}_0", container.sanitized_value, :class => 'form-control input-xs', 'aria-describedby' => "wf_v#{index}_0_addon", :onChange => 'wfFilter.fieldChanged(this)') %>
|
3
|
+
<span class="input-group-addon input-xs" id="<%="wf_v#{index}_0_addon"%>">
|
4
|
+
<%= link_to("#", :onclick => "wfCalendar.selectDate('wf_v#{index}_0', this);", :style=>'color: #666;') do %>
|
5
|
+
<i class="fa fa-calendar" aria-hidden="true"></i>
|
6
|
+
<% end %>
|
7
|
+
</span>
|
8
|
+
</div>
|
@@ -1,16 +1,24 @@
|
|
1
|
-
<table class='values' cellspacing='0px' cellpadding='0px'>
|
2
|
-
|
3
|
-
<td width
|
4
|
-
|
1
|
+
<table class='values' cellspacing='0px' cellpadding='0px' style="width: 99%">
|
2
|
+
<tr>
|
3
|
+
<td style="width: 50%;">
|
4
|
+
<div class="input-group" style="width: 100%; padding-right: 5px;">
|
5
|
+
<%= text_field_tag("wf_v#{index}_0", container.sanitized_value(0), :class => 'form-control input-xs', 'aria-describedby' => "wf_v#{index}_0_addon", :onChange => 'wfFilter.fieldChanged(this)') %>
|
6
|
+
<span class="input-group-addon input-xs" id="<%= "wf_v#{index}_0_addon" %>">
|
7
|
+
<%= link_to("#", :onclick => "wfCalendar.selectDate('wf_v#{index}_0', this);", :style => 'color: #666;') do %>
|
8
|
+
<i class="fa fa-calendar" aria-hidden="true" title="Select start date and time"></i>
|
9
|
+
<% end %>
|
10
|
+
</span>
|
11
|
+
</div>
|
5
12
|
</td>
|
6
|
-
|
7
|
-
|
13
|
+
<td style="width: 50%;">
|
14
|
+
<div class="input-group" style="width: 100%;">
|
15
|
+
<%= text_field_tag("wf_v#{index}_1", container.sanitized_value(1), :class => 'form-control input-xs', 'aria-describedby' => "wf_v#{index}_1_addon", :onChange => 'wfFilter.fieldChanged(this)') %>
|
16
|
+
<span class="input-group-addon input-xs" id="<%= "wf_v#{index}_1_addon" %>">
|
17
|
+
<%= link_to("#", :onclick => "wfCalendar.selectDate('wf_v#{index}_1', this);", :style => 'color: #666;') do %>
|
18
|
+
<i class="fa fa-calendar" aria-hidden="true" title="Select start date and time"></i>
|
19
|
+
<% end %>
|
20
|
+
</span>
|
21
|
+
</div>
|
8
22
|
</td>
|
9
|
-
|
10
|
-
<%=text_field_tag("wf_v#{index}_1", container.sanitized_value(1), :style => 'width:98%', :onChange => 'wfFilter.fieldChanged(this)')%>
|
11
|
-
</td>
|
12
|
-
<td width='1%'>
|
13
|
-
<%=link_to_function(image_tag("will_filter/calendar.png", :title => "Select end date", :class => "wf_calendar_trigger"), "wfCalendar.selectDate('wf_v#{index}_1', this)")%>
|
14
|
-
</td>
|
15
|
-
</tr>
|
23
|
+
</tr>
|
16
24
|
</table>
|
@@ -1,10 +1,8 @@
|
|
1
|
-
<
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
</tr>
|
10
|
-
</table>
|
1
|
+
<div class="input-group" style="width: 99%;">
|
2
|
+
<%= text_field_tag("wf_v#{index}_0", container.sanitized_value, :class => 'form-control input-xs', 'aria-describedby' => "wf_v#{index}_0_addon", :onChange => 'wfFilter.fieldChanged(this)') %>
|
3
|
+
<span class="input-group-addon input-xs" id="<%="wf_v#{index}_0_addon"%>">
|
4
|
+
<%= link_to("#", :onclick => "wfCalendar.selectDateTime('wf_v#{index}_0', this);", :style=>'color: #666;') do %>
|
5
|
+
<i class="fa fa-clock-o" aria-hidden="true"></i>
|
6
|
+
<% end %>
|
7
|
+
</span>
|
8
|
+
</div>
|
@@ -1,16 +1,24 @@
|
|
1
|
-
<table class='values' cellspacing='0px' cellpadding='0px'>
|
2
|
-
|
3
|
-
<td width
|
4
|
-
|
1
|
+
<table class='values' cellspacing='0px' cellpadding='0px' style="width: 99%">
|
2
|
+
<tr>
|
3
|
+
<td style="width: 50%;">
|
4
|
+
<div class="input-group" style="width: 100%; padding-right: 5px;">
|
5
|
+
<%= text_field_tag("wf_v#{index}_0", container.sanitized_value(0), :class => 'form-control input-xs', 'aria-describedby' => "wf_v#{index}_0_addon", :onChange => 'wfFilter.fieldChanged(this)') %>
|
6
|
+
<span class="input-group-addon input-xs" id="<%= "wf_v#{index}_0_addon" %>">
|
7
|
+
<%= link_to("#", :onclick => "wfCalendar.selectDateTime('wf_v#{index}_0', this);", :style => 'color: #666;') do %>
|
8
|
+
<i class="fa fa-clock-o" aria-hidden="true" title="Select start date and time"></i>
|
9
|
+
<% end %>
|
10
|
+
</span>
|
11
|
+
</div>
|
5
12
|
</td>
|
6
|
-
|
7
|
-
|
13
|
+
<td style="width: 50%;">
|
14
|
+
<div class="input-group" style="width: 100%;">
|
15
|
+
<%= text_field_tag("wf_v#{index}_1", container.sanitized_value(1), :class => 'form-control input-xs', 'aria-describedby' => "wf_v#{index}_1_addon", :onChange => 'wfFilter.fieldChanged(this)') %>
|
16
|
+
<span class="input-group-addon input-xs" id="<%= "wf_v#{index}_1_addon" %>">
|
17
|
+
<%= link_to("#", :onclick => "wfCalendar.selectDateTime('wf_v#{index}_1', this);", :style => 'color: #666;') do %>
|
18
|
+
<i class="fa fa-clock-o" aria-hidden="true" title="Select start date and time"></i>
|
19
|
+
<% end %>
|
20
|
+
</span>
|
21
|
+
</div>
|
8
22
|
</td>
|
9
|
-
|
10
|
-
<%=text_field_tag("wf_v#{index}_1", container.sanitized_value(1), :style => 'width:98%', :onChange => 'wfFilter.fieldChanged(this)')%>
|
11
|
-
</td>
|
12
|
-
<td width='1%'>
|
13
|
-
<%=link_to_function(image_tag("will_filter/clock.png", :title => "Select end date and time", :class => "wf_calendar_trigger"), "wfCalendar.selectDateTime('wf_v#{index}_1', this)")%>
|
14
|
-
</td>
|
15
|
-
</tr>
|
23
|
+
</tr>
|
16
24
|
</table>
|
@@ -1,7 +1,17 @@
|
|
1
|
-
<
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
<div id="wf_v<%=index%>_0_border">
|
2
|
+
<select style='width:100%' name='wf_v<%= index %>_0' id='wf_v<%= index %>_0' onChange='wfFilter.fieldChanged(this)'>
|
3
|
+
<% container.options.each do |option| %>
|
4
|
+
<option <%= "selected" if option.last == container.value %> value="<%= option.last %>">
|
5
|
+
<%= option.first %>
|
5
6
|
</option>
|
6
|
-
|
7
|
-
</select>
|
7
|
+
<% end %>
|
8
|
+
</select>
|
9
|
+
</div>
|
10
|
+
|
11
|
+
<script>
|
12
|
+
$("#wf_v<%=index%>_0").select2().on("change", function (e) {
|
13
|
+
// $('#wf_v<%=index%>_0_border').css({'border-width': '1px', 'border-color': 'red', 'border-style': 'solid', 'border-radius': '3px'});
|
14
|
+
// $('#wf_v<%=index%>_0_border').css({'background-color': 'red'});
|
15
|
+
// wfFilter.fieldChanged("#wf_v<%=index%>_0");
|
16
|
+
});
|
17
|
+
</script>
|
data/config/routes.rb
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
#--
|
2
|
-
# Copyright (c)
|
2
|
+
# Copyright (c) 2017 Michael Berkovich, theiceberk@gmail.com
|
3
|
+
#
|
4
|
+
# __ __ ____ _ _ _____ ____ _ ______ ___ ____
|
5
|
+
# | |__| || || | | | | || || | | | / _]| \
|
6
|
+
# | | | | | | | | | | | __| | | | | | | / [_ | D )
|
7
|
+
# | | | | | | | |___ | |___ | |_ | | | |___|_| |_|| _]| /
|
8
|
+
# | ` ' | | | | || | | _] | | | | | | | [_ | \
|
9
|
+
# \ / | | | || | | | | | | | | | | || . \
|
10
|
+
# \_/\_/ |____||_____||_____| |__| |____||_____| |__| |_____||__|\_|
|
11
|
+
#
|
3
12
|
#
|
4
13
|
# Permission is hereby granted, free of charge, to any person obtaining
|
5
14
|
# a copy of this software and associated documentation files (the
|
@@ -22,22 +31,23 @@
|
|
22
31
|
#++
|
23
32
|
|
24
33
|
WillFilter::Engine.routes.draw do
|
25
|
-
match 'filter/index', :to => 'filter#index'
|
26
|
-
match 'filter/add_condition', :to => 'filter#add_condition'
|
27
|
-
match 'filter/update_condition', :to => 'filter#update_condition'
|
28
|
-
match 'filter/remove_condition', :to => 'filter#remove_condition'
|
29
|
-
match 'filter/remove_all_conditions', :to => 'filter#remove_all_conditions'
|
30
|
-
match 'filter/load_filter', :to => 'filter#load_filter'
|
31
|
-
match 'filter/save_filter', :to => 'filter#save_filter'
|
32
|
-
match 'filter/update_filter', :to => 'filter#update_filter'
|
33
|
-
match 'filter/delete_filter', :to => 'filter#delete_filter'
|
34
34
|
|
35
|
-
match '
|
36
|
-
match '
|
35
|
+
match 'filter/index', :to => 'filter#index', via: [:get, :post]
|
36
|
+
match 'filter/add_condition', :to => 'filter#add_condition', via: [:get, :post]
|
37
|
+
match 'filter/update_condition', :to => 'filter#update_condition', via: [:get, :post]
|
38
|
+
match 'filter/remove_condition', :to => 'filter#remove_condition', via: [:get, :post]
|
39
|
+
match 'filter/remove_all_conditions', :to => 'filter#remove_all_conditions', via: [:get, :post]
|
40
|
+
match 'filter/load_filter', :to => 'filter#load_filter', via: [:get, :post]
|
41
|
+
match 'filter/save_filter', :to => 'filter#save_filter', via: [:get, :post]
|
42
|
+
match 'filter/update_filter', :to => 'filter#update_filter', via: [:get, :post]
|
43
|
+
match 'filter/delete_filter', :to => 'filter#delete_filter', via: [:get, :post]
|
44
|
+
|
45
|
+
match 'calendar', :to => 'calendar#index', via: [:get, :post]
|
46
|
+
match 'calendar/index', :to => 'calendar#index', via: [:get, :post]
|
37
47
|
|
38
|
-
match 'exporter', :to => 'exporter#index'
|
39
|
-
match 'exporter/index', :to => 'exporter#index'
|
40
|
-
match 'exporter/export', :to => 'exporter#export'
|
48
|
+
match 'exporter', :to => 'exporter#index', via: [:get, :post]
|
49
|
+
match 'exporter/index', :to => 'exporter#index', via: [:get, :post]
|
50
|
+
match 'exporter/export', :to => 'exporter#export', via: [:get, :post]
|
41
51
|
|
42
|
-
root :to =>
|
52
|
+
root :to => 'filter#index'
|
43
53
|
end
|
data/deploy
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
def execute(cmd)
|
4
|
+
puts "\n***************************************************************************\n"
|
5
|
+
puts "$ #{cmd}"
|
6
|
+
system(cmd)
|
7
|
+
end
|
8
|
+
|
9
|
+
def version_file_path
|
10
|
+
'./lib/will_filter/version.rb'
|
11
|
+
end
|
12
|
+
|
13
|
+
def version_file
|
14
|
+
@version_file ||= File.read(version_file_path)
|
15
|
+
end
|
16
|
+
|
17
|
+
def version
|
18
|
+
@version ||= version_file.match(/VERSION\s*=\s*'([^']*)'/)[1]
|
19
|
+
end
|
20
|
+
|
21
|
+
def increment_version
|
22
|
+
parts = version.split('.')
|
23
|
+
parts[2] = (parts[2].to_i + 1).to_s
|
24
|
+
new_version = parts.join('.')
|
25
|
+
|
26
|
+
version_file.gsub!(version, new_version)
|
27
|
+
|
28
|
+
File.open(version_file_path, 'w') do |file|
|
29
|
+
file.write(version_file)
|
30
|
+
end
|
31
|
+
|
32
|
+
@version_file = nil
|
33
|
+
@version = nil
|
34
|
+
end
|
35
|
+
|
36
|
+
puts "\nBuilding will_filter-#{version}.gem..."
|
37
|
+
|
38
|
+
if ARGV.include?('release')
|
39
|
+
execute('git checkout master')
|
40
|
+
execute('git merge develop')
|
41
|
+
execute('git push')
|
42
|
+
end
|
43
|
+
|
44
|
+
execute('bundle exec rspec')
|
45
|
+
execute('gem build will_filter.gemspec')
|
46
|
+
execute("gem install will_filter-#{version}.gem --no-ri --no-rdoc")
|
47
|
+
|
48
|
+
if ARGV.include?('release')
|
49
|
+
execute("git tag #{version}")
|
50
|
+
execute('git push --tags')
|
51
|
+
|
52
|
+
execute("gem push will_filter-#{version}.gem")
|
53
|
+
|
54
|
+
execute('git checkout develop')
|
55
|
+
|
56
|
+
increment_version
|
57
|
+
execute("git add #{version_file_path}")
|
58
|
+
execute("git commit -m 'Updated version to #{version}'")
|
59
|
+
execute('git push')
|
60
|
+
end
|
61
|
+
|
62
|
+
|
63
|
+
|