From c054961c3bc3d6fd4987bffc54c16f6aa222c5fb Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Fri, 5 Apr 2019 17:23:55 +0530 Subject: [PATCH] fix(QueryReport): Expand/Collapse all for tree --- .../js/frappe/views/reports/query_report.js | 38 ++++++++++++++++++- frappe/public/less/page.less | 2 +- package.json | 2 +- yarn.lock | 8 ++-- 4 files changed, 42 insertions(+), 8 deletions(-) diff --git a/frappe/public/js/frappe/views/reports/query_report.js b/frappe/public/js/frappe/views/reports/query_report.js index e6423bf3c9..aa284f6aa1 100644 --- a/frappe/public/js/frappe/views/reports/query_report.js +++ b/frappe/public/js/frappe/views/reports/query_report.js @@ -79,6 +79,13 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { } } }); + this.page.wrapper.on('click', '[data-action]', (e) => { + let action_name = $(e.currentTarget).data('action'); + let action = this[action_name]; + if (action.call) { + action.call(this, e); + } + }); } load() { @@ -990,8 +997,35 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList { const message = __('For comparison, use >5, <10 or =324. For ranges, use 5:10 (for values between 5 & 10).'); const execution_time_msg = __('Execution Time: {0} sec', [this.execution_time || 0.1]); - this.page.footer.removeClass('hide').addClass('text-muted col-md-12') - .html(`${message}${execution_time_msg}`); + this.page.footer.removeClass('hide').addClass('text-muted col-md-12').html(` + ${message}${execution_time_msg} + `); + + this.page.wrapper.find('.tree-footer').remove(); + if (this.tree_report) { + this.$tree_footer = this.page.footer.clone().addClass('tree-footer'); + this.$tree_footer.html(`
+ + +
`); + this.page.footer.before(this.$tree_footer); + } + this.$tree_footer.find('[data-action=collapse_all_rows]').show(); + this.$tree_footer.find('[data-action=expand_all_rows]').hide(); + } + + expand_all_rows() { + this.$tree_footer.find('[data-action=expand_all_rows]').hide(); + this.datatable.rowmanager.expandAllNodes(); + this.$tree_footer.find('[data-action=collapse_all_rows]').show(); + } + + collapse_all_rows() { + this.$tree_footer.find('[data-action=collapse_all_rows]').hide(); + this.datatable.rowmanager.collapseAllNodes(); + this.$tree_footer.find('[data-action=expand_all_rows]').show(); } message_div(message) { diff --git a/frappe/public/less/page.less b/frappe/public/less/page.less index 6249aaacdd..d051a63b00 100644 --- a/frappe/public/less/page.less +++ b/frappe/public/less/page.less @@ -118,7 +118,7 @@ .layout-footer { border: 1px solid @border-color; border-top: 0px; - padding: 3px 15px; + padding: 5px 15px; font-size: @text-medium; } diff --git a/package.json b/package.json index 21a2ce0571..358a4920aa 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "cookie": "^0.3.1", "express": "^4.16.2", "fast-deep-equal": "^2.0.1", - "frappe-datatable": "^1.11.0", + "frappe-datatable": "^1.12.0", "frappe-gantt": "^0.1.0", "fuse.js": "^3.2.0", "highlight.js": "^9.12.0", diff --git a/yarn.lock b/yarn.lock index b7dbbcb81a..a3c928e858 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1224,10 +1224,10 @@ forwarded@~0.1.2: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= -frappe-datatable@^1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/frappe-datatable/-/frappe-datatable-1.11.0.tgz#e0f23659e2bb2e635ecd4f3eccadf1ed762a0629" - integrity sha512-tXjpNOywq3o6nMru47xhyzrH/sZ3PmrsLLOS+6+VJmqFsVC6TmlJDP1LRxSC+xCSDpumO8jjxfdwcwWWXKfDdw== +frappe-datatable@^1.12.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/frappe-datatable/-/frappe-datatable-1.12.0.tgz#2273535ead4404e5b165b6564c622acbacfdf61e" + integrity sha512-rrsRaxP9+CwPdJiYzmgmYD5ud+0pWzon8n+DKBrnrbFheN5SFnbuRdR58G8qA4/psHIN3rrSEximiQsbTUNdzw== dependencies: hyperlist "^1.0.0-beta" lodash "^4.17.5"