From f6d0de1454006b51706117fe8a001da63414b528 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Thu, 25 Jul 2019 09:34:50 +0100 Subject: [PATCH] Improve pagination data in bulk products --- .../admin/services/bulk_products.js.coffee | 16 +++++++--------- app/controllers/api/products_controller.rb | 10 +++++++++- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/app/assets/javascripts/admin/services/bulk_products.js.coffee b/app/assets/javascripts/admin/services/bulk_products.js.coffee index 71fd5b4414..72e9715c9e 100644 --- a/app/assets/javascripts/admin/services/bulk_products.js.coffee +++ b/app/assets/javascripts/admin/services/bulk_products.js.coffee @@ -1,15 +1,13 @@ -angular.module("ofn.admin").factory "BulkProducts", (PagedFetcher, dataFetcher, $http) -> +angular.module("ofn.admin").factory "BulkProducts", (ProductResource, dataFetcher, $http) -> new class BulkProducts products: [] + pagination: {} - fetch: (filters, onComplete) -> - queryString = filters.reduce (qs,f) -> - return qs + "q[#{f.property.db_column}_#{f.predicate.predicate}]=#{f.value};" - , "" - - url = "/api/products/bulk_products?page=::page::;per_page=20;#{queryString}" - processData = (data) => @addProducts data.products - PagedFetcher.fetch url, processData, onComplete + fetch: (params) -> + ProductResource.index params, (data) => + @products.length = 0 + @addProducts data.products + angular.extend(@pagination, data.pagination) cloneProduct: (product) -> $http.post("/api/products/" + product.id + "/clone").success (data) => diff --git a/app/controllers/api/products_controller.rb b/app/controllers/api/products_controller.rb index 2c04c52697..6c64a6397d 100644 --- a/app/controllers/api/products_controller.rb +++ b/app/controllers/api/products_controller.rb @@ -118,7 +118,15 @@ module Api each_serializer: Api::Admin::ProductSerializer ) - render text: { products: serializer, pages: products.num_pages }.to_json + render text: { + products: serializer, + pagination: { + results: products.total_count, + pages: products.num_pages, + page: params[:page].to_i, + per_page: params[:per_page].to_i + } + }.to_json end end end