Merge pull request #2829 from Matt-Yorkley/bi/results_per_page

Add per_page controls to admin orders index
This commit is contained in:
Pau Pérez Fabregat
2018-10-15 12:17:39 +02:00
committed by GitHub
6 changed files with 31 additions and 3 deletions

View File

@@ -3,8 +3,14 @@ angular.module("admin.orders").controller "ordersCtrl", ($scope, RequestMonitor,
$scope.pagination = Orders.pagination
$scope.orders = Orders.all
$scope.sortOptions = SortOptions
$scope.per_page_options = [
{id: 15, name: t('js.admin.orders.index.per_page', results: 15)},
{id: 50, name: t('js.admin.orders.index.per_page', results: 50)},
{id: 100, name: t('js.admin.orders.index.per_page', results: 100)}
]
$scope.initialise = ->
$scope.per_page = 15
$scope.q = {
completed_at_not_null: true
}
@@ -25,7 +31,7 @@ angular.module("admin.orders").controller "ordersCtrl", ($scope, RequestMonitor,
'q[order_cycle_id_in]': $scope['q']['order_cycle_id_in'],
'q[order_cycle_id_in]': $scope['q']['order_cycle_id_in'],
'q[s]': $scope.sorting || 'id desc',
per_page: $scope.per_page || 15,
per_page: $scope.per_page,
page: page
})

View File

@@ -0,0 +1,7 @@
.per-page {
float: left;
.per-page-feedback {
margin-left: 1em;
}
}

View File

@@ -65,8 +65,9 @@ Spree::Admin::OrdersController.class_eval do
orders: ActiveModel::ArraySerializer.new(@orders, each_serializer: Api::Admin::OrderSerializer),
pagination: {
results: @orders.total_count,
pages: @orders.num_pages,
page: params[:page].to_i
pages: @orders.num_pages.to_i,
page: params[:page].to_i,
per_page: params[:per_page].to_i
}
}
end

View File

@@ -0,0 +1,6 @@
.per-page{'ng-show' => '!RequestMonitor.loading && orders.length > 0'}
%input.per-page-select.ofn-select2{type: 'number', data: 'per_page_options', 'ng-model' => 'per_page', 'ng-change' => 'fetchResults()'}
%span.per-page-feedback
{{ 'spree.admin.orders.index.results_found' | t:{number: pagination.results} }}
{{ 'spree.admin.orders.index.viewing' | t:{start: ((pagination.page -1) * pagination.per_page) +1, end: ((pagination.page -1) * pagination.per_page) + orders.length} }}

View File

@@ -16,6 +16,9 @@
- content_for :table_filter do
= render partial: 'filters'
.row
= render partial: 'per_page_controls'
%table#listing_orders.index.responsive{width: "100%", 'ng-init' => 'initialise()', 'ng-show' => "!RequestMonitor.loading && orders.length > 0" }
%colgroup
%col{style: "width: 10%"}

View File

@@ -2571,6 +2571,9 @@ See the %{link} to find out more about %{sitename}'s features and to start using
resolve: Resolve
new_tag_rule_dialog:
select_rule_type: "Select a rule type:"
orders:
index:
per_page: "%{results} per page"
resend_user_email_confirmation:
resend: "Resend"
sending: "Resend..."
@@ -2667,6 +2670,8 @@ See the %{link} to find out more about %{sitename}'s features and to start using
next: "Next"
loading: "Loading"
no_orders_found: "No Orders Found"
results_found: "%{number} Results found."
viewing: "Viewing %{start} to %{end}."
invoice:
issued_on: Issued on
tax_invoice: TAX INVOICE