From 93fd9dfce9cc59ec77aec24f97d2dc50fb0d074e Mon Sep 17 00:00:00 2001 From: Prateeksha Singh Date: Thu, 2 Aug 2018 19:54:53 +0530 Subject: [PATCH] [webform-list] Abstract out grid_list --- frappe/website/js/grid_list.js | 50 +++++++++++++++++++++++++++++++ frappe/website/js/web_form.js | 54 ++-------------------------------- 2 files changed, 52 insertions(+), 52 deletions(-) create mode 100644 frappe/website/js/grid_list.js diff --git a/frappe/website/js/grid_list.js b/frappe/website/js/grid_list.js new file mode 100644 index 0000000000..6304786c50 --- /dev/null +++ b/frappe/website/js/grid_list.js @@ -0,0 +1,50 @@ +import DataTable from 'frappe-datatable'; + +export default function make_datatable(container, doctype) { + let web_list_start = 0; + const web_list_page_length = 20; + let web_list_datatable; + + return new Promise(resolve => { + frappe.call({ + method: 'frappe.website.doctype.web_form.web_form.get_in_list_view_fields', + args: { doctype }, + callback: (r) => { + const docfields = r.message; + + frappe.call({ + method: 'frappe.client.get_list', + args: { doctype, fields: docfields.map(df => df.fieldname) }, + callback: (r) => { + const data = r.message || []; + + web_list_datatable = new DataTable(container + ' .results', { + columns: docfields.map(df => ({ name: df.label, id: df.fieldname })), + data, + layout: 'fluid' + }); + + $(container + ' .btn-more').on('click', () => { + web_list_start += web_list_page_length; + frappe.call({ + method: 'frappe.client.get_list', + args: { + doctype, + fields: docfields.map(df => df.fieldname), + limit_start: web_list_start + }, + callback: (r) => { + const data = r.message || []; + + web_list_datatable.appendRows(data); + } + }); + }); + + resolve(web_list_datatable); + } + }); + } + }); + }); +} diff --git a/frappe/website/js/web_form.js b/frappe/website/js/web_form.js index 79d4ddcfe3..31975ab3db 100644 --- a/frappe/website/js/web_form.js +++ b/frappe/website/js/web_form.js @@ -1,11 +1,11 @@ import WebForm from './webform'; -import DataTable from 'frappe-datatable'; +import make_datatable from './grid_list'; frappe.ready(function() { if(web_form_settings.is_list) { $('body').show(); if($('.web-form-list').length) { - make_datatable('.web-form-list .results', web_form_settings.web_form_doctype); + make_datatable('.web-form-list', web_form_settings.web_form_doctype); } return; } @@ -162,53 +162,3 @@ frappe.ready(function() { } }); }); - -window.web_list_start = 0; -window.web_list_page_length = 20; -window.web_list_datatable; - - -window.make_datatable = function make_datatable(container, doctype) { - return new Promise(resolve => { - frappe.call({ - method: 'frappe.website.doctype.web_form.web_form.get_in_list_view_fields', - args: { doctype }, - callback: (r) => { - const docfields = r.message; - - frappe.call({ - method: 'frappe.client.get_list', - args: { doctype, fields: docfields.map(df => df.fieldname) }, - callback: (r) => { - const data = r.message || []; - - window.web_list_datatable = new DataTable(container, { - columns: docfields.map(df => ({ name: df.label, id: df.fieldname })), - data, - layout: 'fluid' - }); - - $(".web-form-list .btn-more").on('click', () => { - window.web_list_start += window.web_list_page_length; - frappe.call({ - method: 'frappe.client.get_list', - args: { - doctype, - fields: docfields.map(df => df.fieldname), - limit_start: window.web_list_start - }, - callback: (r) => { - const data = r.message || []; - - window.web_list_datatable.appendRows(data); - } - }); - }); - - resolve(window.web_list_datatable); - } - }); - } - }); - }); -}