summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorBrendan Deere <brendan@stembolt.com>2016-10-05 14:30:19 -0700
committerBrendan Deere <brendan@stembolt.com>2016-10-07 10:55:10 -0700
commitac2b2ea76d4e61bc93aa17ae8813f76e7b475bc6 (patch)
treec9c14511b1ad5b7bd94f50a4cc42ebe26063527a /app
parent29f63f28609c3743371b2389e016141c574e185b (diff)
Add filters to subscriptions index page
Allow the subscriptions index to be filtered by - created date - actionable date - subscription state - processing state - user email
Diffstat (limited to 'app')
-rw-r--r--app/controllers/spree/admin/subscriptions_controller.rb6
-rw-r--r--app/views/spree/admin/subscriptions/index.html.erb80
2 files changed, 86 insertions, 0 deletions
diff --git a/app/controllers/spree/admin/subscriptions_controller.rb b/app/controllers/spree/admin/subscriptions_controller.rb
index c63521f..622ddca 100644
--- a/app/controllers/spree/admin/subscriptions_controller.rb
+++ b/app/controllers/spree/admin/subscriptions_controller.rb
@@ -1,7 +1,13 @@
module Spree
module Admin
class SubscriptionsController < ResourceController
+ skip_before_filter :load_resource, only: :index
+
def index
+ @search = SolidusSubscriptions::Subscription.
+ accessible_by(current_ability, :index).ransack(params[:q])
+
+ @subscriptions = @search.result(distinct: true)
end
private
diff --git a/app/views/spree/admin/subscriptions/index.html.erb b/app/views/spree/admin/subscriptions/index.html.erb
index 792fc61..ba6b325 100644
--- a/app/views/spree/admin/subscriptions/index.html.erb
+++ b/app/views/spree/admin/subscriptions/index.html.erb
@@ -1,5 +1,85 @@
<% admin_breadcrumb(plural_resource_name(SolidusSubscriptions::Subscription)) %>
+<% content_for :table_filter_title do %>
+ <%= Spree.t(:search) %>
+<% end %>
+
+<% content_for :table_filter do %>
+ <%= search_form_for [:admin, @search] do |f| %>
+ <div class='field-block alpha four columns'>
+ <div class="date-range-filter field">
+ <%= label_tag :q_created_at_gt, Spree.t(:date_range) %>
+ <div class="date-range-fields">
+ <%= f.text_field :created_at_gt, class: 'datepicker datepicker-from', placeholder: Spree.t(:start) %>
+
+ <span class="range-divider">
+ <i class="fa fa-arrow-right"></i>
+ </span>
+
+ <%= f.text_field :created_at_lt, class: 'datepicker datepicker-to', placeholder: Spree.t(:stop) %>
+ </div>
+ </div>
+
+ <div class="date-range-filter field">
+ <%= label_tag :q_actionable_date_gt, SolidusSubscriptions::Subscription.human_attribute_name(:actionable_date) %>
+ <div class="date-range-fields">
+ <%= f.text_field :actionable_date_gt, class: 'datepicker datepicker-from', placeholder: Spree.t(:start) %>
+
+ <span class="range-divider">
+ <i class="fa fa-arrow-right"></i>
+ </span>
+
+ <%= f.text_field :actionable_date_lt, class: 'datepicker datepicker-to', placeholder: Spree.t(:stop) %>
+ </div>
+ </div>
+ </div>
+
+ <div class="four columns">
+ <div class="field">
+ <%= label_tag :q_state_eq, Spree.t(:status) %>
+ <%= f.select :state_eq, SolidusSubscriptions::Subscription.state_machines[:state].states.map {|s| [s.human_name, s.value]}, {include_blank: true}, class: 'select2 fullwidth' %>
+ </div>
+ </div>
+
+ <div class="four columns">
+ <div class="field">
+ <%= label_tag :q_user_email_cont, Spree::User.human_attribute_name(:email) %>
+ <%= f.text_field :user_email_cont, size: 25 %>
+ </div>
+ </div>
+
+ <div class="omega four columns">
+ <div class="field">
+ <%= label_tag :q_processing_state_eq, SolidusSubscriptions::Subscription.human_attribute_name(:processing_state) %>
+
+ <%
+ processing_states = SolidusSubscriptions::Subscription.processing_states.map do |state|
+ [
+ SolidusSubscriptions::Subscription.human_attribute_name("processing_state.#{ state }"),
+ state
+ ]
+ end
+ %>
+
+ <%=
+ f.select(
+ :in_processing_state,
+ options_for_select(processing_states),
+ { include_blank: true },
+ class: 'select2 fullwidth'
+ )
+ %>
+ </div>
+ </div>
+
+ <div class="clearfix"></div>
+
+ <div class="actions filter-actions">
+ <div><%= button Spree.t(:filter_results) %></div>
+ </div>
+ <% end %>
+<% end %>
+
<table id="listing_subscriptions" class="index">
<thead>
<tr>