From 5863f5d4ec64898d219de651dfb0ef91fee3198f Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 6 Aug 2018 12:08:02 +0530 Subject: [PATCH] fix(webform): attachments and date --- frappe/public/js/frappe/form/controls/date.js | 2 +- frappe/public/js/frappe/misc/datetime.js | 2 +- .../doctype/web_form/templates/web_form.html | 6 +++++- frappe/website/doctype/web_form/web_form.py | 3 ++- frappe/website/js/grid_list.js | 15 ++++++++++----- 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/frappe/public/js/frappe/form/controls/date.js b/frappe/public/js/frappe/form/controls/date.js index 85c514078c..fcc7dc42bf 100644 --- a/frappe/public/js/frappe/form/controls/date.js +++ b/frappe/public/js/frappe/form/controls/date.js @@ -125,7 +125,7 @@ frappe.ui.form.ControlDate = frappe.ui.form.ControlData.extend({ let sysdefaults = frappe.sys_defaults; let date_format = sysdefaults && sysdefaults.date_format ? sysdefaults.date_format : 'yyyy-mm-dd'; - frappe.msgprint(__("Date must be in format: {0}", [date_format])); + frappe.msgprint(__("Date {0} must be in format: {1}", [value, date_format])); return ''; } return value; diff --git a/frappe/public/js/frappe/misc/datetime.js b/frappe/public/js/frappe/misc/datetime.js index 1b3d713566..38eb49de85 100644 --- a/frappe/public/js/frappe/misc/datetime.js +++ b/frappe/public/js/frappe/misc/datetime.js @@ -160,7 +160,7 @@ $.extend(frappe.datetime, { }, _date: function(format, as_obj = false) { - const { time_zone } = frappe.sys_defaults; + const time_zone = frappe.sys_defaults && frappe.sys_defaults.time_zone; let date; if (time_zone) { date = moment.tz(time_zone); diff --git a/frappe/website/doctype/web_form/templates/web_form.html b/frappe/website/doctype/web_form/templates/web_form.html index 5101f0867c..b805757893 100644 --- a/frappe/website/doctype/web_form/templates/web_form.html +++ b/frappe/website/doctype/web_form/templates/web_form.html @@ -193,9 +193,13 @@ window.web_form_settings = { } frappe.boot = { sysdefaults: { - float_precision: {{ frappe.get_system_settings('float_precision') }} + float_precision: {{ frappe.get_system_settings('float_precision') }}, + date_format: "{{ frappe.get_system_settings('date_format') }}", } }; + +// for backward compatibility of some libs +frappe.sys_defaults = frappe.boot.sysdefaults; {% if row_template %}web_form_settings.web_form_row_template = "{{ row_template }}";{% endif %} diff --git a/frappe/website/doctype/web_form/web_form.py b/frappe/website/doctype/web_form/web_form.py index 4da04209f5..43585631a3 100644 --- a/frappe/website/doctype/web_form/web_form.py +++ b/frappe/website/doctype/web_form/web_form.py @@ -380,9 +380,10 @@ def accept(web_form, data, for_payment=False): if df and df.fieldtype=='Attach': if value and 'data:' and 'base64' in value: files.append((fieldname, value)) + doc.set(fieldname, '') continue - if not value and doc.get(fieldname): + elif not value and doc.get(fieldname): files_to_delete.append(doc.get(fieldname)) doc.set(fieldname, value) diff --git a/frappe/website/js/grid_list.js b/frappe/website/js/grid_list.js index 97f2d6235b..4fabf6edde 100644 --- a/frappe/website/js/grid_list.js +++ b/frappe/website/js/grid_list.js @@ -1,5 +1,3 @@ -import DataTable from 'frappe-datatable'; - export default function make_datatable(container, doctype) { let web_list_start = 0; const web_list_page_length = 20; @@ -25,6 +23,14 @@ export default function make_datatable(container, doctype) { }; + let truncate = function(txt) { + if (txt==null) txt = ''; + if (typeof txt==='string' && txt.length > 137) { + return txt.substr(0, 137) + '...'; + } + return txt; + }; + let append_rows = (data) => { let body = $(container + ' .results').find('tbody'); for (let i=0; i${val}`).appendTo(tablerow); + $(`${truncate(val)}`).appendTo(tablerow); } } - } + }; return new Promise(resolve => { frappe.call({