From 5772bfc7825154bbf448412edec6a7b7a05fb135 Mon Sep 17 00:00:00 2001 From: prssanna Date: Mon, 11 Nov 2019 14:59:37 +0530 Subject: [PATCH] fix: add multiple goes to last page --- frappe/public/js/frappe/form/grid.js | 24 ++++++++++--------- .../public/js/frappe/form/grid_pagination.js | 10 ++++++++ 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/frappe/public/js/frappe/form/grid.js b/frappe/public/js/frappe/form/grid.js index ea50f6895f..f2ac4ad459 100644 --- a/frappe/public/js/frappe/form/grid.js +++ b/frappe/public/js/frappe/form/grid.js @@ -84,8 +84,7 @@ export default class Grid { @@ -111,6 +110,8 @@ export default class Grid { this.form_grid = this.wrapper.find('.form-grid'); + this.setup_add_row(); + this.setup_grid_pagination(); this.custom_buttons = {}; @@ -546,19 +547,18 @@ export default class Grid { } } - add_row() { - let total_pages = this.grid_pagination.total_pages; - if (this.data.length == this.page_length*total_pages) { - this.grid_pagination.go_to_page(total_pages + 1); - } else { - this.grid_pagination.go_to_page(total_pages); - } - this.add_new_row(null, null, true); - this.set_focus_on_row(); + setup_add_row() { + this.wrapper.find(".grid-add-row").click(() => { + this.add_new_row(null, null, true); + this.set_focus_on_row(); + + return false; + }); } add_new_row(idx, callback, show, copy_doc) { if (this.is_editable()) { + this.grid_pagination.go_to_last_page(); if (this.frm) { var d = frappe.model.add_child(this.frm.doc, this.df.options, this.df.fieldname, idx); if (copy_doc) { @@ -720,6 +720,7 @@ export default class Grid { set_multiple_add(link, qty) { if (this.multiple_set) return; + var link_field = frappe.meta.get_docfield(this.df.options, link); var btn = $(this.wrapper).find(".grid-add-multiple-rows"); @@ -735,6 +736,7 @@ export default class Grid { target: this, txt: "" }); + this.grid_pagination.go_to_last_page(); return false; }); this.multiple_set = true; diff --git a/frappe/public/js/frappe/form/grid_pagination.js b/frappe/public/js/frappe/form/grid_pagination.js index 2b29c5664e..7e615b60ab 100644 --- a/frappe/public/js/frappe/form/grid_pagination.js +++ b/frappe/public/js/frappe/form/grid_pagination.js @@ -113,6 +113,16 @@ export default class GridPagination { this.update_page_numbers(); } + go_to_last_page() { + let total_pages = this.total_pages; + let page_length = this.page_length; + if (this.grid.data.length == page_length*total_pages) { + this.go_to_page(total_pages + 1); + } else { + this.go_to_page(total_pages); + } + } + get_result_length() { return this.grid.data.length < this.page_index*this.page_length ? this.grid.data.length