[webform-list] Abstract out grid_list

This commit is contained in:
Prateeksha Singh 2018-08-02 19:54:53 +05:30
parent b2d1f00e50
commit 93fd9dfce9
2 changed files with 52 additions and 52 deletions

View file

@ -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);
}
});
}
});
});
}

View file

@ -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);
}
});
}
});
});
}