<% content_for :page_title do %> <%= plural_resource_name(Spree::Order) %> <% end %> <% content_for :page_actions do %> <%= button_link_to Spree.t(:new_order), new_admin_order_url, class: "btn-success", icon: 'add', id: 'admin_new_order' %> <% end if can? :create, Spree::Order %> <% content_for :table_filter do %> <div data-hook="admin_orders_index_search"> <%= search_form_for [:admin, @search] do |f| %> <div class="row"> <div class="date-range-filter col-xs-12 col-md-8"> <div class="form-group"> <%= label_tag :q_created_at_gt, Spree.t(:date_range) %> <div class="row no-padding-bottom"> <div class="col-xs-12 col-md-6"> <div class="input-group"> <%= f.text_field :created_at_gt, class: 'datepicker datepicker-from form-control', value: params[:q][:created_at_gt], placeholder: Spree.t(:start) %> <span class="input-group-addon"> <i class="icon icon-calendar"></i> </span> </div> </div> <div class="col-xs-12 col-md-6"> <div class="input-group"> <%= f.text_field :created_at_lt, class: 'datepicker datepicker-to form-control', value: params[:q][:created_at_lt], placeholder: Spree.t(:stop) %> <span class="input-group-addon"> <i class="icon icon-calendar"></i> </span> </div> </div> </div> </div> </div> <div class="col-xs-12 col-md-4"> <div class="form-group"> <%= label_tag :q_number_cont, Spree.t(:order_number, number: '') %> <%= f.text_field :number_cont, class: 'form-control js-quick-search-target' %> </div> </div> </div> <div class="row"> <div class="col-xs-12 col-md-4"> <div class="form-group"> <%= label_tag :q_state_eq, Spree.t(:status) %> <%= f.select :state_eq, Spree::Order.state_machines[:state].states.map {|s| [Spree.t("order_state.#{s.name}"), s.value]}, { include_blank: true }, class: 'select2 js-filterable' %> </div> </div> <div class="col-xs-12 col-md-4"> <div class="form-group"> <%= label_tag :q_payment_state_eq, Spree.t(:payment_state) %> <%= f.select :payment_state_eq, Spree::Order::PAYMENT_STATES.map {|s| [Spree.t("payment_states.#{s}"), s]}, { include_blank: true }, class: 'select2 js-filterable' %> </div> </div> <div class="col-xs-12 col-md-4"> <div class="form-group"> <%= label_tag :q_shipment_state_eq, Spree.t(:shipment_state) %> <%= f.select :shipment_state_eq, Spree::Order::SHIPMENT_STATES.map {|s| [Spree.t("shipment_states.#{s}"), s]}, { include_blank: true }, class: 'select2 js-filterable' %> </div> </div> </div> <div class="row"> <div class="col-xs-12 col-md-4"> <div class="form-group"> <%= label_tag :q_bill_address_firstname_start, Spree.t(:first_name_begins_with) %> <%= f.text_field :bill_address_firstname_start, class: 'form-control' %> </div> </div> <div class="col-xs-12 col-md-4"> <div class="form-group"> <%= label_tag :q_bill_address_lastname_start, Spree.t(:last_name_begins_with) %> <%= f.text_field :bill_address_lastname_start, class: 'form-control' %> </div> </div> <div class="col-xs-12 col-md-4"> <div class="form-group"> <%= label_tag :q_email_cont, Spree.t(:email) %> <%= f.text_field :email_cont, class: 'form-control js-filterable' %> </div> </div> </div> <div class="row"> <div class="col-xs-12 col-md-4"> <div class="form-group"> <%= label_tag :q_line_items_variant_sku_eq, Spree.t(:sku) %> <%= f.text_field :line_items_variant_sku_eq, class: 'form-control' %> </div> </div> <div class="col-xs-12 col-md-4"> <div class="form-group"> <%= label_tag :q_promotions_id_in, Spree.t(:promotion) %> <%= f.select :promotions_id_in, Spree::Promotion.applied.pluck(:name, :id), { include_blank: true }, class: 'select2' %> </div> </div> <div class="col-xs-12 col-md-4"> <div class="form-group"> <%= label_tag :q_store_id_in, Spree.t(:store) %> <%= f.select :store_id_in, Spree::Store.order("#{Spree::Store.table_name}.name").pluck(:name, :id), { include_blank: true }, class: 'select2' %> </div> </div> <div class="col-xs-12 col-md-4"> <div class="form-group"> <div class="checkbox"> <%= label_tag 'q_completed_at_not_null' do %> <%= f.check_box :completed_at_not_null, {checked: @show_only_completed}, '1', '0' %> <%= Spree.t(:show_only_complete_orders) %> <% end %> </div> <div class="checkbox"> <%= label_tag 'q_considered_risky_eq' do %> <%= f.check_box :considered_risky_eq, {checked: (params[:q][:considered_risky_eq] == '1')}, '1', '' %> <%= Spree.t(:show_only_considered_risky) %> <% end %> </div> </div> </div> </div> <div data-hook="admin_orders_index_search_buttons" class="form-actions"> <%= button Spree.t(:filter_results), 'search' %> </div> <% end %> </div> <% end %> <%= render 'spree/admin/shared/index_table_options', collection: @orders %> <% if @orders.any? %> <table class="table" id="listing_orders" data-hook> <thead> <tr data-hook="admin_orders_index_headers"> <% if @show_only_completed %> <th><%= sort_link @search, :completed_at, I18n.t(:completed_at, scope: 'activerecord.attributes.spree/order') %></th> <% else %> <th><%= sort_link @search, :created_at, I18n.t(:created_at, scope: 'activerecord.attributes.spree/order') %></th> <% end %> <th><%= sort_link @search, :number, I18n.t(:number, scope: 'activerecord.attributes.spree/order') %></th> <th><%= sort_link @search, :considered_risky, I18n.t(:considered_risky, scope: 'activerecord.attributes.spree/order') %></th> <th><%= sort_link @search, :state, I18n.t(:state, scope: 'activerecord.attributes.spree/order') %></th> <th><%= sort_link @search, :payment_state, I18n.t(:payment_state, scope: 'activerecord.attributes.spree/order') %></th> <% if Spree::Order.checkout_step_names.include?(:delivery) %> <th><%= sort_link @search, :shipment_state, I18n.t(:shipment_state, scope: 'activerecord.attributes.spree/order') %></th> <% end %> <th><%= sort_link @search, :email, I18n.t(:email, scope: 'activerecord.attributes.spree/order') %></th> <th><%= sort_link @search, :total, I18n.t(:total, scope: 'activerecord.attributes.spree/order') %></th> <th data-hook="admin_orders_index_header_actions" class="actions"></th> </tr> </thead> <tbody> <% @orders.each do |order| %> <tr data-hook="admin_orders_index_rows" class="state-<%= order.state.downcase %> <%= cycle('odd', 'even') %>"> <td> <%= order_time(@show_only_completed ? order.completed_at : order.created_at) %> </td> <td><%= link_to order.number, edit_admin_order_path(order) %></td> <td> <span class="label label-<%= order.considered_risky ? 'considered_risky' : 'considered_safe' %>"> <%= order.considered_risky ? Spree.t("risky") : Spree.t("safe") %> </span> </td> <td> <span class="label label-<%= order.state.downcase %>"><%= Spree.t("order_state.#{order.state.downcase}") %></span> <span class="icon icon-filter filterable js-add-filter" data-ransack-field="q_state_eq" data-ransack-value="<%= order.state %>"></span> </td> <td> <% if order.payments.count > 0 && order.payments.last.source.present? %> <% if order.payments.last.after_pay_method? && order.payments.last.authorized? %> <span class="label label-authorized"><%= link_to 'authorized', admin_order_payments_path(order) %></span> <% else %> <span class="label label-<%= order.payments.last.source.status %>"><%= link_to order.payments.last.source.status, admin_order_payments_path(order) %></span> <% end %> <% end %> </td> <% if Spree::Order.checkout_step_names.include?(:delivery) %> <td> <% if order.shipment_state %> <span class="label label-<%= order.shipment_state %>"><%= Spree.t("shipment_states.#{order.shipment_state}") %></span> <span class="icon icon-filter filterable js-add-filter" data-ransack-field="q_shipment_state_eq" data-ransack-value="<%= order.shipment_state %>"></span> <% end %> </td> <% end %> <td> <% if order.user %> <%= link_to order.email, edit_admin_user_path(order.user) %> <% else %> <%= mail_to order.email %> <% end %> <% if order.user || order.email %> <span class="icon icon-filter filterable js-add-filter" data-ransack-field="q_email_cont" data-ransack-value="<%= order.email %>"></span> <% end %> </td> <td><%= order.display_total.to_html %></td> <td class='actions actions-1' data-hook="admin_orders_index_row_actions"> <%= link_to_edit_url edit_admin_order_path(order), title: "admin_edit_#{dom_id(order)}", no_text: true if can?(:edit, order) %> </td> </tr> <% end %> </tbody> </table> <% else %> <div class="alert alert-info no-objects-found"> <%= Spree.t(:no_resource_found, resource: plural_resource_name(Spree::Order)) %>, <%= link_to(Spree.t(:add_one), new_admin_order_url) if can? :create, Spree::Order %>! </div> <% end %> <%= render 'spree/admin/shared/index_table_options', collection: @orders, simple: true %> <%= render 'spree/admin/shared/styles' %>