diff --git a/frappe/core/doctype/communication/communication.js b/frappe/core/doctype/communication/communication.js index 71abb6d7ae..0b3db95540 100644 --- a/frappe/core/doctype/communication/communication.js +++ b/frappe/core/doctype/communication/communication.js @@ -33,7 +33,7 @@ frappe.ui.form.on("Communication", { if(frm.doc.communication_type == "Feedback") { frm.add_custom_button(__("Resend"), function() { - feedback = new frappe.utils.Feedback(); + var feedback = new frappe.utils.Feedback(); feedback.resend_feedback_request(frm.doc); }); } @@ -111,7 +111,7 @@ frappe.ui.form.on("Communication", { d.set_value("reference_doctype", frm.doc.reference_doctype); d.set_value("reference_name", frm.doc.reference_name); d.set_primary_action(__("Relink"), function () { - values = d.get_values(); + var values = d.get_values(); if (values) { frappe.confirm( __('Are you sure you want to relink this communication to {0}?', [values["reference_name"]]), @@ -130,7 +130,7 @@ frappe.ui.form.on("Communication", { }); }, function () { - show_alert('Document not Relinked') + frappe.show_alert('Document not Relinked') } ); } @@ -139,8 +139,8 @@ frappe.ui.form.on("Communication", { }, mark_as_read_unread: function(frm) { - action = frm.doc.seen? "Unread": "Read"; - flag = "(\\SEEN)"; + var action = frm.doc.seen? "Unread": "Read"; + var flag = "(\\SEEN)"; return frappe.call({ method: "frappe.email.inbox.create_email_flag_queue", @@ -154,7 +154,7 @@ frappe.ui.form.on("Communication", { }, reply: function(frm) { - args = frm.events.get_mail_args(frm); + var args = frm.events.get_mail_args(frm); $.extend(args, { subject: __("Re: {0}", [frm.doc.subject]), recipients: frm.doc.sender @@ -164,7 +164,7 @@ frappe.ui.form.on("Communication", { }, reply_all: function(frm) { - args = frm.events.get_mail_args(frm) + var args = frm.events.get_mail_args(frm) $.extend(args, { subject: __("Re: {0}", [frm.doc.subject]), recipients: frm.doc.sender, @@ -174,7 +174,7 @@ frappe.ui.form.on("Communication", { }, forward_mail: function(frm) { - args = frm.events.get_mail_args(frm) + var args = frm.events.get_mail_args(frm) $.extend(args, { forward: true, subject: __("Fw: {0}", [frm.doc.subject]), @@ -184,7 +184,7 @@ frappe.ui.form.on("Communication", { }, get_mail_args: function(frm) { - sender_email_id = "" + var sender_email_id = "" $.each(frappe.boot.email_accounts, function(idx, account) { if(account.email_account == frm.doc.email_account) { sender_email_id = account.email_id @@ -202,11 +202,11 @@ frappe.ui.form.on("Communication", { add_to_contact: function(frm) { var me = this; - fullname = frm.doc.sender_full_name || "" + var fullname = frm.doc.sender_full_name || "" - names = fullname.split(" ") - first_name = names[0] - last_name = names.length >= 2? names[names.length - 1]: "" + var names = fullname.split(" ") + var first_name = names[0] + var last_name = names.length >= 2? names[names.length - 1]: "" frappe.route_options = { "email_id": frm.doc.sender, diff --git a/frappe/core/doctype/feedback_trigger/feedback_trigger.js b/frappe/core/doctype/feedback_trigger/feedback_trigger.js index 7413ce3de6..376f98d08f 100644 --- a/frappe/core/doctype/feedback_trigger/feedback_trigger.js +++ b/frappe/core/doctype/feedback_trigger/feedback_trigger.js @@ -37,7 +37,7 @@ frappe.ui.form.on('Feedback Trigger', { frappe.model.with_doctype(frm.doc.document_type, function() { var fields = frappe.get_doc("DocType", frm.doc.document_type).fields; $.each(fields, function(idx, field) { - if(!inList(frappe.model.no_value_type, field.fieldtype) && field.options == "Email") { + if(!in_list(frappe.model.no_value_type, field.fieldtype) && field.options == "Email") { frm.options.push(field.label); frm.fieldname_mapper[field.label] = field.fieldname; } diff --git a/frappe/core/doctype/system_settings/system_settings.js b/frappe/core/doctype/system_settings/system_settings.js index f8ac1734f9..5d8ad211ab 100644 --- a/frappe/core/doctype/system_settings/system_settings.js +++ b/frappe/core/doctype/system_settings/system_settings.js @@ -7,7 +7,7 @@ frappe.ui.form.on("System Settings", "refresh", function(frm) { $.each(data.message.defaults, function(key, val) { frm.set_value(key, val); - sys_defaults[key] = val; + frappe.sys_defaults[key] = val; }) } }); diff --git a/frappe/core/doctype/user/user.js b/frappe/core/doctype/user/user.js index b540601da1..b57a472642 100644 --- a/frappe/core/doctype/user/user.js +++ b/frappe/core/doctype/user/user.js @@ -18,7 +18,7 @@ frappe.ui.form.on('User', { }, onload: function(frm) { - if(has_common(roles, ["Administrator", "System Manager"]) && !frm.doc.__islocal) { + if(has_common(frappe.user_roles, ["Administrator", "System Manager"]) && !frm.doc.__islocal) { if(!frm.roles_editor) { var role_area = $('
') .appendTo(frm.fields_dict.roles_html.wrapper); @@ -35,11 +35,11 @@ frappe.ui.form.on('User', { refresh: function(frm) { var doc = frm.doc; - if(doc.name===user && !doc.__unsaved + if(doc.name===frappe.session.user && !doc.__unsaved && frappe.all_timezones && (doc.language || frappe.boot.user.language) && doc.language !== frappe.boot.user.language) { - msgprint(__("Refreshing...")); + frappe.msgprint(__("Refreshing...")); window.location.reload(); } @@ -53,7 +53,7 @@ frappe.ui.form.on('User', { frappe.set_route("modules_setup"); }, null, "btn-default") - if(has_common(roles, ["Administrator", "System Manager"])) { + if(has_common(frappe.user_roles, ["Administrator", "System Manager"])) { frm.add_custom_button(__("Set User Permissions"), function() { frappe.route_options = { @@ -79,10 +79,10 @@ frappe.ui.form.on('User', { frm.roles_editor && frm.roles_editor.show(); frm.module_editor && frm.module_editor.refresh(); - if(user==doc.name) { + if(frappe.session.user==doc.name) { // update display settings if(doc.user_image) { - frappe.boot.user_info[user].image = frappe.utils.get_file_link(doc.user_image); + frappe.boot.user_info[frappe.session.user].image = frappe.utils.get_file_link(doc.user_image); } } } @@ -116,12 +116,12 @@ frappe.ui.form.on('User', { }, enabled: function(frm) { var doc = frm.doc; - if(!doc.__islocal && has_common(roles, ["Administrator", "System Manager"])) { + if(!doc.__islocal && has_common(frappe.user_roles, ["Administrator", "System Manager"])) { frm.toggle_display(['sb1', 'sb3', 'modules_access'], doc.enabled); frm.set_df_property('enabled', 'read_only', 0); } - if(user!="Administrator") { + if(frappe.session.user!=="Administrator") { frm.toggle_enable('email', doc.__islocal); } }, @@ -177,6 +177,7 @@ frappe.ModuleEditor = Class.extend({ }); }, bind: function() { + var me = this; this.wrapper.on("change", ".block-module-check", function() { var module = $(this).attr('data-module'); if($(this).prop("checked")) { diff --git a/frappe/core/page/data_import_tool/data_import_tool.js b/frappe/core/page/data_import_tool/data_import_tool.js index c0ec56c0e1..3abbb96667 100644 --- a/frappe/core/page/data_import_tool/data_import_tool.js +++ b/frappe/core/page/data_import_tool/data_import_tool.js @@ -129,12 +129,12 @@ frappe.DataImportTool = Class.extend({ queued: function() { // async, show queued msg_dialog.clear(); - msgprint(__("Import Request Queued. This may take a few moments, please be patient.")); + frappe.msgprint(__("Import Request Queued. This may take a few moments, please be patient.")); }, running: function() { // update async status as running msg_dialog.clear(); - msgprint(__("Importing...")); + frappe.msgprint(__("Importing...")); me.write_messages([__("Importing")]); me.has_progress = false; }, diff --git a/frappe/core/page/modules_setup/modules_setup.js b/frappe/core/page/modules_setup/modules_setup.js index e9952c1a18..cb7b55a602 100644 --- a/frappe/core/page/modules_setup/modules_setup.js +++ b/frappe/core/page/modules_setup/modules_setup.js @@ -59,7 +59,7 @@ frappe.pages['modules_setup'].on_page_load = function(wrapper) { }; // application installer - if(frappe.boot.user.roles.indexOf('System Manager')!==-1) { + if(frappe.user_roles.includes('System Manager')) { page.add_inner_button('Install Apps', function() { frappe.set_route('applications'); }); diff --git a/frappe/core/page/permission_manager/permission_manager.js b/frappe/core/page/permission_manager/permission_manager.js index b8c3ee0dab..03ae1419b5 100644 --- a/frappe/core/page/permission_manager/permission_manager.js +++ b/frappe/core/page/permission_manager/permission_manager.js @@ -298,7 +298,7 @@ frappe.PermissionEngine = Class.extend({ r.message = $.map(r.message, function(p) { return $.format('{1}', [p, p]); }) - msgprint(__("Users with role {0}:", [__(role)]) + frappe.msgprint(__("Users with role {0}:", [__(role)]) + "
" + r.message.join("
")); } }) @@ -324,7 +324,7 @@ frappe.PermissionEngine = Class.extend({ }, callback: function(r) { if(r.exc) { - msgprint(__("Did not remove")); + frappe.msgprint(__("Did not remove")); } else { me.refresh(); } @@ -404,7 +404,7 @@ frappe.PermissionEngine = Class.extend({ args: args, callback: function(r) { if(r.exc) { - msgprint(__("Did not add")); + frappe.msgprint(__("Did not add")); } else { me.refresh(); } @@ -476,9 +476,9 @@ frappe.PermissionEngine = Class.extend({ }, callback: function(r) { if(r.exc) { - msgprint(__("Did not set")); + frappe.msgprint(__("Did not set")); } else { - var msg = msgprint(__("Saved!")); + var msg = frappe.msgprint(__("Saved!")); setTimeout(function() { msg.hide(); }, 3000); d.user_permission_doctypes = user_permission_doctypes; dialog.hide(); diff --git a/frappe/core/page/user_permissions/user_permissions.js b/frappe/core/page/user_permissions/user_permissions.js index a23e3aa0a3..e77101da4e 100644 --- a/frappe/core/page/user_permissions/user_permissions.js +++ b/frappe/core/page/user_permissions/user_permissions.js @@ -82,7 +82,7 @@ frappe.UserPermissions = Class.extend({ options: "[Select]" }); - if(roles.indexOf("System Manager")!==-1) { + if(frappe.user_roles.includes("System Manager")) { me.download = me.wrapper.page.add_field({ fieldname: "download", label: __("Download"), @@ -141,7 +141,7 @@ frappe.UserPermissions = Class.extend({ primary_action: function() { var filedata = d.fields_dict.attach.get_value(); if(!filedata) { - msgprint(_("Please attach a file")); + frappe.msgprint(_("Please attach a file")); return; } frappe.call({ @@ -151,7 +151,7 @@ frappe.UserPermissions = Class.extend({ }, callback: function(r) { if(!r.exc) { - msgprint(__("Permissions Updated")); + frappe.msgprint(__("Permissions Updated")); d.hide(); } } @@ -288,7 +288,7 @@ frappe.UserPermissions = Class.extend({ }, callback: function(r) { if(r.exc) { - msgprint(__("Did not remove")); + frappe.msgprint(__("Did not remove")); } else { me.refresh(); } @@ -349,7 +349,7 @@ frappe.UserPermissions = Class.extend({ args: args, callback: function(r) { if(r.exc) { - msgprint(__("Did not add")); + frappe.msgprint(__("Did not add")); } else { me.refresh(); } diff --git a/frappe/custom/doctype/customize_form/customize_form.js b/frappe/custom/doctype/customize_form/customize_form.js index 8308d5a85a..c84e93080a 100644 --- a/frappe/custom/doctype/customize_form/customize_form.js +++ b/frappe/custom/doctype/customize_form/customize_form.js @@ -129,7 +129,7 @@ frappe.ui.form.on("Customize Form Field", { before_fields_remove: function(frm, doctype, name) { var row = frappe.get_doc(doctype, name); if(!(row.is_custom_field || row.__islocal)) { - msgprint(__("Cannot delete standard field. You can hide it if you want")); + frappe.msgprint(__("Cannot delete standard field. You can hide it if you want")); throw "cannot delete custom field"; } }, @@ -171,7 +171,7 @@ frappe.customize_form.confirm = function(msg, frm) { method: "reset_to_defaults", callback: function(r) { if(r.exc) { - msgprint(r.exc); + frappe.msgprintr.exc); } else { d.hide(); frappe.customize_form.clear_locals_and_refresh(frm); diff --git a/frappe/custom/doctype/property_setter/property_setter.js b/frappe/custom/doctype/property_setter/property_setter.js index 2901fa2052..42f3f7965c 100644 --- a/frappe/custom/doctype/property_setter/property_setter.js +++ b/frappe/custom/doctype/property_setter/property_setter.js @@ -4,7 +4,7 @@ $.extend(cur_frm.cscript, { validate: function(doc) { if(doc.property_type=='Check' && !in_list(['0','1'], doc.value)) { - msgprint(__('Value for a check field can be either 0 or 1')); + frappe.msgprint(__('Value for a check field can be either 0 or 1')); validated = false; } } diff --git a/frappe/desk/doctype/todo/todo_list.js b/frappe/desk/doctype/todo/todo_list.js index 9be865a49c..d76217c833 100644 --- a/frappe/desk/doctype/todo/todo_list.js +++ b/frappe/desk/doctype/todo/todo_list.js @@ -1,7 +1,7 @@ frappe.listview_settings['ToDo'] = { onload: function(me) { frappe.route_options = { - "owner": user, + "owner": frappe.session.user, "status": "Open" }; me.page.set_title(__("To Do")); @@ -14,7 +14,7 @@ frappe.listview_settings['ToDo'] = { var assign_filter = me.filter_list.get_filter("assigned_by"); assign_filter && assign_filter.remove(true); - me.filter_list.add_filter(me.doctype, "owner", '=', user); + me.filter_list.add_filter(me.doctype, "owner", '=', frappe.session.user); me.run(); }); @@ -23,7 +23,7 @@ frappe.listview_settings['ToDo'] = { var assign_filter = me.filter_list.get_filter("owner"); assign_filter && assign_filter.remove(true); - me.filter_list.add_filter(me.doctype, "assigned_by", '=', user); + me.filter_list.add_filter(me.doctype, "assigned_by", '=', frappe.session.user); me.run(); }, ".assigned-to-me"); }, diff --git a/frappe/desk/page/activity/activity.js b/frappe/desk/page/activity/activity.js index bf3ccfc08c..10cc7962ad 100644 --- a/frappe/desk/page/activity/activity.js +++ b/frappe/desk/page/activity/activity.js @@ -80,7 +80,7 @@ frappe.pages['activity'].on_page_load = function(wrapper) { this.page.add_menu_item(__('Authentication Log'), function() { frappe.route_options = { - "user": user + "user": frappe.session.user } frappe.set_route('Report', "Authentication Log"); @@ -147,17 +147,18 @@ frappe.activity.Feed = Class.extend({ data.feed_type = data.comment_type || data.communication_medium; }, add_date_separator: function(row, data) { - var date = dateutil.str_to_obj(data.creation); + var date = frappe.datetime.str_to_obj(data.creation); var last = frappe.activity.last_feed_date; - if((last && dateutil.obj_to_str(last) != dateutil.obj_to_str(date)) || (!last)) { - var diff = dateutil.get_day_diff(dateutil.get_today(), dateutil.obj_to_str(date)); + if((last && frappe.datetime.obj_to_str(last) != frappe.datetime.obj_to_str(date)) || (!last)) { + var diff = frappe.datetime.get_day_diff(frappe.datetime.get_today(), frappe.datetime.obj_to_str(date)); + var pdate; if(diff < 1) { pdate = 'Today'; } else if(diff < 2) { pdate = 'Yesterday'; } else { - pdate = dateutil.global_date_format(date); + pdate = frappe.datetime.global_date_format(date); } data.date_sep = pdate; data.date_class = pdate=='Today' ? "date-indicator blue" : "date-indicator"; @@ -182,7 +183,7 @@ frappe.activity.render_heatmap = function(page) { var legend = []; var max = Math.max.apply(this, $.map(r.message, function(v) { return v })); var legend = [cint(max/5), cint(max*2/5), cint(max*3/5), cint(max*4/5)]; - heatmap = new CalHeatMap(); + var heatmap = new CalHeatMap(); heatmap.init({ itemSelector: ".heatmap", domain: "month", diff --git a/frappe/desk/page/chat/chat.js b/frappe/desk/page/chat/chat.js index 660fc31796..1e1287e36a 100644 --- a/frappe/desk/page/chat/chat.js +++ b/frappe/desk/page/chat/chat.js @@ -40,10 +40,10 @@ frappe.Chat = Class.extend({ setup_realtime: function() { var me = this; frappe.realtime.on('new_message', function(comment) { - if(comment.modified_by !== user || comment.communication_type === 'Bot') { + if(comment.modified_by !== frappe.session.user || comment.communication_type === 'Bot') { if(frappe.get_route()[0] === 'chat') { var current_contact = $(cur_page.page).find('[data-contact]').data('contact'); - var on_broadcast_page = current_contact === user; + var on_broadcast_page = current_contact === frappe.session.user; if ((current_contact == comment.owner) || (on_broadcast_page && comment.broadcast) || current_contact === 'Bot' && comment.communication_type === 'Bot') { diff --git a/frappe/email/doctype/auto_email_report/auto_email_report.js b/frappe/email/doctype/auto_email_report/auto_email_report.js index bad77c6939..27d363d83e 100644 --- a/frappe/email/doctype/auto_email_report/auto_email_report.js +++ b/frappe/email/doctype/auto_email_report/auto_email_report.js @@ -27,7 +27,7 @@ frappe.ui.form.on('Auto Email Report', { "/api/method/frappe.email.doctype.auto_email_report.auto_email_report.download?" +"name="+encodeURIComponent(frm.doc.name))); if(!w) { - msgprint(__("Please enable pop-ups")); return; + frappe.msgprint(__("Please enable pop-ups")); return; } }); frm.add_custom_button(__('Send Now'), function() { @@ -35,7 +35,7 @@ frappe.ui.form.on('Auto Email Report', { method: 'frappe.email.doctype.auto_email_report.auto_email_report.send_now', args: {name: frm.doc.name}, callback: function() { - msgprint(__('Scheduled to send')); + frappe.msgprint(__('Scheduled to send')); } }); }); @@ -68,7 +68,7 @@ frappe.ui.form.on('Auto Email Report', { var report_filters = frappe.query_reports[frm.doc.report].filters; frm.set_value('filter_meta', JSON.stringify(report_filters)); - report_filters_list = [] + var report_filters_list = [] $.each(report_filters, function(key, val){ // Remove break fieldtype from the filters if(val.fieldtype != 'Break') { diff --git a/frappe/email/doctype/email_alert/email_alert.js b/frappe/email/doctype/email_alert/email_alert.js index 2042b62679..f7fa09dea0 100755 --- a/frappe/email/doctype/email_alert/email_alert.js +++ b/frappe/email/doctype/email_alert/email_alert.js @@ -70,9 +70,9 @@ frappe.ui.form.on("Email Alert", { }, callback: function(r) { if(r.message) { - msgprint(r.message); + frappe.msgprint(r.message); } else { - msgprint(__('No alerts for today')); + frappe.msgprint(__('No alerts for today')); } } }); diff --git a/frappe/email/doctype/newsletter/newsletter.js b/frappe/email/doctype/newsletter/newsletter.js index 3f6ba4834d..15724e1b2d 100644 --- a/frappe/email/doctype/newsletter/newsletter.js +++ b/frappe/email/doctype/newsletter/newsletter.js @@ -4,7 +4,7 @@ cur_frm.cscript.refresh = function(doc) { if(window.erpnext) erpnext.toggle_naming_series(); if(!doc.__islocal && !cint(doc.email_sent) && !doc.__unsaved - && inList(frappe.boot.user.can_write, doc.doctype)) { + && in_list(frappe.boot.user.can_write, doc.doctype)) { cur_frm.add_custom_button(__('Send'), function() { return $c_obj(doc, 'send_emails', '', function(r) { cur_frm.refresh(); diff --git a/frappe/printing/doctype/print_format/print_format.js b/frappe/printing/doctype/print_format/print_format.js index 216d7ff481..bd06697725 100644 --- a/frappe/printing/doctype/print_format/print_format.js +++ b/frappe/printing/doctype/print_format/print_format.js @@ -9,12 +9,12 @@ frappe.ui.form.on("Print Format", { refresh: function(frm) { frm.set_intro(""); frm.toggle_enable(["html", "doc_type", "module"], false); - if (user==="Administrator" || frm.doc.standard==="No") { + if (frappe.session.user==="Administrator" || frm.doc.standard==="No") { frm.toggle_enable(["html", "doc_type", "module"], true); frm.enable_save(); } - if(frm.doc.standard==="Yes" && user !== "Administrator") { + if(frm.doc.standard==="Yes" && frappe.session.user !== "Administrator") { frm.set_intro(__("Please duplicate this to make changes")); } frm.trigger('render_buttons'); @@ -25,7 +25,7 @@ frappe.ui.form.on("Print Format", { if(!frm.doc.custom_format) { frm.add_custom_button(__("Edit Format"), function() { if(!frm.doc.doc_type) { - msgprint(__("Please select DocType first")); + frappe.msgprint(__("Please select DocType first")); return; } frappe.set_route("print-format-builder", frm.doc.name); @@ -42,7 +42,7 @@ frappe.ui.form.on("Print Format", { } }, custom_format: function(frm) { - value = frm.doc.custom_format ? 0:1; + var value = frm.doc.custom_format ? 0:1; frm.set_value('align_labels_left', value); frm.set_value('show_section_headings', value); frm.set_value('line_breaks', value); diff --git a/frappe/printing/page/print_format_builder/print_format_builder.js b/frappe/printing/page/print_format_builder/print_format_builder.js index 4910ea42fa..e1aad1a8b4 100644 --- a/frappe/printing/page/print_format_builder/print_format_builder.js +++ b/frappe/printing/page/print_format_builder/print_format_builder.js @@ -123,7 +123,7 @@ frappe.PrintFormatBuilder = Class.extend({ var doctype = me.doctype_input.get_value(), name = me.name_input.get_value(); if(!(doctype && name)) { - msgprint(__("Both DocType and Name required")); + frappe.msgprint(__("Both DocType and Name required")); return; } me.setup_new_print_format(doctype, name); @@ -272,7 +272,7 @@ frappe.PrintFormatBuilder = Class.extend({ set_column(); } else if(!in_list(["Section Break", "Column Break", "Fold"], f.fieldtype) - && f.label) { + && f.label) { if(!column) set_column(); if(f.fieldtype==="Table") { @@ -564,7 +564,7 @@ frappe.PrintFormatBuilder = Class.extend({ section.no_of_columns = 1; var $section = $(frappe.render_template("print_format_builder_section", - {section: section, me: me})) + {section: section, me: me})) .appendTo(me.page.main.find(".print-format-builder-layout")) me.setup_sortable_for_column($section.find(".print-format-builder-column").get(0)); @@ -587,8 +587,8 @@ frappe.PrintFormatBuilder = Class.extend({ var parent = $(this).parents(".print-format-builder-field:first"), doctype = parent.attr("data-doctype"), label = parent.attr("data-label"), - columns = parent.attr("data-columns").split(",") - column_names = $.map(columns, function(v) { return v.split("|")[0]; }); + columns = parent.attr("data-columns").split(","), + column_names = $.map(columns, function(v) { return v.split("|")[0]; }), widths = {}; $.each(columns, function(i, v) { @@ -702,7 +702,7 @@ frappe.PrintFormatBuilder = Class.extend({ }); // set existing content in input - content = $content.data('content') || ""; + var content = $content.data('content') || ""; if(content.indexOf(me.get_no_content())!==-1) content = ""; d.set_input("content", content); diff --git a/frappe/public/js/frappe/assets.js b/frappe/public/js/frappe/assets.js index 3fdbe85bdc..8cdbfeafe0 100644 --- a/frappe/public/js/frappe/assets.js +++ b/frappe/public/js/frappe/assets.js @@ -45,7 +45,7 @@ frappe.assets = { }); // clear assets - for(key in localStorage) { + for(var key in localStorage) { if(key.indexOf("desk_assets:")===0 || key.indexOf("_page:")===0 || key.indexOf("_doctype:")===0 || key.indexOf("preferred_breadcrumbs:")===0) { localStorage.removeItem(key); diff --git a/frappe/public/js/frappe/defaults.js b/frappe/public/js/frappe/defaults.js index 6e671f07ed..24ba5e630e 100644 --- a/frappe/public/js/frappe/defaults.js +++ b/frappe/public/js/frappe/defaults.js @@ -26,12 +26,12 @@ frappe.defaults = { return d; }, get_global_default: function(key) { - var d = sys_defaults[key]; + var d = frappe.sys_defaults[key]; if($.isArray(d)) d = d[0]; return d; }, get_global_defaults: function(key) { - var d = sys_defaults[key]; + var d = frappe.sys_defaults[key]; if(!$.isArray(d)) d = [d]; return d; }, diff --git a/frappe/public/js/frappe/desk.js b/frappe/public/js/frappe/desk.js index 68aabfe200..5024a8234a 100644 --- a/frappe/public/js/frappe/desk.js +++ b/frappe/public/js/frappe/desk.js @@ -99,9 +99,9 @@ frappe.Application = Class.extend({ }); dialog.get_close_btn().toggle(false); }); - if (sys_defaults.email_user_password){ - var email_list = sys_defaults.email_user_password.split(','); - for (u in email_list) { + if (frappe.sys_defaults.email_user_password){ + var email_list = frappe.sys_defaults.email_user_password.split(','); + for (var u in email_list) { if (email_list[u]===frappe.user.name){ this.set_password(email_list[u]) } @@ -169,7 +169,7 @@ frappe.Application = Class.extend({ d.hide();//hide waiting indication if (!passed["message"]) { - show_alert("Login Failed please try again", 5); + frappe.show_alert("Login Failed please try again", 5); me.email_password_prompt(email_account, user, i) } else @@ -269,15 +269,13 @@ frappe.Application = Class.extend({ }, set_globals: function() { - // for backward compatibility frappe.session.user = frappe.boot.user.name; - frappe.session.user_fullname = frappe.boot.user.name; - user = frappe.boot.user.name; - user_fullname = frappe.user_info(user).fullname; - user_defaults = frappe.boot.user.defaults; - roles = frappe.boot.user.roles; - user_email = frappe.boot.user.email; - sys_defaults = frappe.boot.sysdefaults; + frappe.session.user_email = frappe.boot.user.email; + frappe.session.user_fullname = frappe.user_info().fullname; + + frappe.user_defaults = frappe.boot.user.defaults; + frappe.user_roles = frappe.boot.user.roles; + frappe.sys_defaults = frappe.boot.sysdefaults; frappe.ui.py_date_format = frappe.boot.sysdefaults.date_format.replace('dd', '%d').replace('mm', '%m').replace('yyyy', '%Y'); frappe.boot.user.last_selected_values = {}; }, @@ -285,7 +283,7 @@ frappe.Application = Class.extend({ // clear cached pages if timestamp is not found if(localStorage["page_info"]) { frappe.boot.allowed_pages = []; - page_info = JSON.parse(localStorage["page_info"]); + var page_info = JSON.parse(localStorage["page_info"]); $.each(frappe.boot.page_info, function(name, p) { if(!page_info[name] || (page_info[name].modified != p.modified)) { delete localStorage["_page:" + name]; @@ -293,19 +291,18 @@ frappe.Application = Class.extend({ frappe.boot.allowed_pages.push(name); }); } else { - frappe.boot.allowed_pages = keys(frappe.boot.page_info); + frappe.boot.allowed_pages = Object.keys(frappe.boot.page_info); } localStorage["page_info"] = JSON.stringify(frappe.boot.page_info); }, set_as_guest: function() { // for backward compatibility - user = {name:'Guest'}; - user = 'Guest'; - user_fullname = 'Guest'; - user_defaults = {}; - roles = ['Guest']; - user_email = ''; - sys_defaults = {}; + frappe.session.user = 'Guest'; + frappe.session.user_fullname = 'Guest'; + frappe.user_defaults = {}; + frappe.user_roles = ['Guest']; + frappe.session.user_email = ''; + frappe.sys_defaults = {}; }, make_page_container: function() { if($("#body_div").length) { @@ -564,12 +561,12 @@ frappe.get_desktop_icons = function(show_hidden, show_global) { } } - if(roles.indexOf('System Manager')!=-1) { + if(frappe.user_roles.includes('System Manager')) { var m = frappe.get_module('Setup'); if(show_module(m)) add_to_out(m) } - if(roles.indexOf('Administrator')!=-1) { + if(frappe.user_roles.includes('Administrator')) { var m = frappe.get_module('Core'); if(show_module(m)) add_to_out(m) } @@ -589,7 +586,7 @@ frappe.add_to_desktop = function(label, doctype, report) { }, callback: function(r) { if(r.message) { - show_alert(__("Added")); + frappe.show_alert(__("Added")); } } }); diff --git a/frappe/public/js/frappe/dom.js b/frappe/public/js/frappe/dom.js index 4ee6447a9a..939e5daa80 100644 --- a/frappe/public/js/frappe/dom.js +++ b/frappe/public/js/frappe/dom.js @@ -58,19 +58,19 @@ frappe.dom = { }, is_element_in_viewport: function (el) { - //special bonus for those using jQuery - if (typeof jQuery === "function" && el instanceof jQuery) { - el = el[0]; - } + //special bonus for those using jQuery + if (typeof jQuery === "function" && el instanceof jQuery) { + el = el[0]; + } - var rect = el.getBoundingClientRect(); + var rect = el.getBoundingClientRect(); - return ( - rect.top >= 0 - && rect.left >= 0 - // && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /*or $(window).height() */ - // && rect.right <= (window.innerWidth || document.documentElement.clientWidth) /*or $(window).width() */ - ); + return ( + rect.top >= 0 + && rect.left >= 0 + // && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /*or $(window).height() */ + // && rect.right <= (window.innerWidth || document.documentElement.clientWidth) /*or $(window).width() */ + ); }, set_style: function(txt, id) { @@ -115,7 +115,7 @@ frappe.dom = { css: function(ele, s) { if(ele && s) { $.extend(ele.style, s); - }; + } return ele; }, freeze: function(msg, css_class) { @@ -155,7 +155,7 @@ frappe.dom = { save_selection: function() { // via http://stackoverflow.com/questions/5605401/insert-link-in-contenteditable-element if (window.getSelection) { - sel = window.getSelection(); + var sel = window.getSelection(); if (sel.getRangeAt && sel.rangeCount) { var ranges = []; for (var i = 0, len = sel.rangeCount; i < len; ++i) { @@ -171,7 +171,7 @@ frappe.dom = { restore_selection: function(savedSel) { if (savedSel) { if (window.getSelection) { - sel = window.getSelection(); + var sel = window.getSelection(); sel.removeAllRanges(); for (var i = 0, len = savedSel.length; i < len; ++i) { sel.addRange(savedSel[i]); @@ -242,48 +242,48 @@ frappe._in = function(source, target) { })(jQuery); (function($) { - function pasteIntoInput(el, text) { - el.focus(); - if (typeof el.selectionStart == "number") { - var val = el.value; - var selStart = el.selectionStart; - el.value = val.slice(0, selStart) + text + val.slice(el.selectionEnd); - el.selectionEnd = el.selectionStart = selStart + text.length; - } else if (typeof document.selection != "undefined") { - var textRange = document.selection.createRange(); - textRange.text = text; - textRange.collapse(false); - textRange.select(); - } - } + function pasteIntoInput(el, text) { + el.focus(); + if (typeof el.selectionStart == "number") { + var val = el.value; + var selStart = el.selectionStart; + el.value = val.slice(0, selStart) + text + val.slice(el.selectionEnd); + el.selectionEnd = el.selectionStart = selStart + text.length; + } else if (typeof document.selection != "undefined") { + var textRange = document.selection.createRange(); + textRange.text = text; + textRange.collapse(false); + textRange.select(); + } + } - function allowTabChar(el) { - $(el).keydown(function(e) { - if (e.which == 9) { - pasteIntoInput(this, "\t"); - return false; - } - }); + function allowTabChar(el) { + $(el).keydown(function(e) { + if (e.which == 9) { + pasteIntoInput(this, "\t"); + return false; + } + }); - // For Opera, which only allows suppression of keypress events, not keydown - $(el).keypress(function(e) { - if (e.which == 9) { - return false; - } - }); - } + // For Opera, which only allows suppression of keypress events, not keydown + $(el).keypress(function(e) { + if (e.which == 9) { + return false; + } + }); + } - $.fn.allowTabs = function() { - if (this.jquery) { - this.each(function() { - if (this.nodeType == 1) { - var nodeName = this.nodeName.toLowerCase(); - if (nodeName == "textarea" || (nodeName == "input" && this.type == "text")) { - allowTabChar(this); - } - } - }) - } - return this; - } + $.fn.allowTabs = function() { + if (this.jquery) { + this.each(function() { + if (this.nodeType == 1) { + var nodeName = this.nodeName.toLowerCase(); + if (nodeName == "textarea" || (nodeName == "input" && this.type == "text")) { + allowTabChar(this); + } + } + }) + } + return this; + } })(jQuery); diff --git a/frappe/public/js/frappe/feedback.js b/frappe/public/js/frappe/feedback.js index 7a14c96fde..7a2e5d8156 100644 --- a/frappe/public/js/frappe/feedback.js +++ b/frappe/public/js/frappe/feedback.js @@ -3,7 +3,7 @@ frappe.provide("frappe.utils") frappe.utils.Feedback = Class.extend({ resend_feedback_request: function(doc) { /* resend the feedback request email */ - args = { + var args = { reference_name: doc.reference_name, reference_doctype: doc.reference_doctype, request: doc.feedback_request, @@ -14,12 +14,12 @@ frappe.utils.Feedback = Class.extend({ manual_feedback_request: function(doc) { var me = this; - args = { + var args = { reference_doctype: doc.doctype, reference_name: doc.name } if(frappe.boot.feedback_triggers[doc.doctype]) { - feedback_trigger = frappe.boot.feedback_triggers[doc.doctype] + var feedback_trigger = frappe.boot.feedback_triggers[doc.doctype] $.extend(args, { trigger: feedback_trigger }) me.get_feedback_request_details(args, false) } else{ @@ -43,7 +43,7 @@ frappe.utils.Feedback = Class.extend({ make_feedback_request_dialog: function(args, is_resend) { var me = this; - dialog = new frappe.ui.Dialog({ + var dialog = new frappe.ui.Dialog({ title: __("{0} Feedback Request", [ is_resend? "Resend": "Send" ]), fields: [ { diff --git a/frappe/public/js/frappe/form/control.js b/frappe/public/js/frappe/form/control.js index a6981d437a..3a9af71a8f 100755 --- a/frappe/public/js/frappe/form/control.js +++ b/frappe/public/js/frappe/form/control.js @@ -476,7 +476,7 @@ frappe.ui.form.ControlData = frappe.ui.form.ControlInput.extend({ callback(""); return; } - v1 = '' + var v1 = '' // phone may start with + and must only have numbers later, '-' and ' ' are stripped v = v.replace(/ /g, '').replace(/-/g, '').replace(/\(/g, '').replace(/\)/g, ''); @@ -507,7 +507,7 @@ frappe.ui.form.ControlData = frappe.ui.form.ControlInput.extend({ var invalid_email = false; email_list.forEach(function(email) { if (!validate_email(email)) { - msgprint(__("Invalid Email: {0}", [email])); + frappe.msgprint(__("Invalid Email: {0}", [email])); invalid_email = true; } }); @@ -671,18 +671,18 @@ frappe.ui.form.ControlDate = frappe.ui.form.ControlData.extend({ }, parse: function(value) { if(value) { - return dateutil.user_to_str(value); + return frappe.datetime.user_to_str(value); } }, format_for_input: function(value) { if(value) { - return dateutil.str_to_user(value); + return frappe.datetime.str_to_user(value); } return ""; }, validate: function(value, callback) { - if(value && !dateutil.validate(value)) { - msgprint (__("Date must be in format: {0}", [sys_defaults.date_format || "yyyy-mm-dd"])); + if(value && !frappe.datetime.validate(value)) { + frappe.msgprint(__("Date must be in format: {0}", [frappe.sys_defaults.date_format || "yyyy-mm-dd"])); callback(""); return; } @@ -733,14 +733,14 @@ frappe.ui.form.ControlDatetime = frappe.ui.form.ControlDate.extend({ parse: function(value) { if(value) { // parse and convert - value = dateutil.convert_to_system_tz(dateutil.user_to_str(value)); + value = frappe.datetime.convert_to_system_tz(frappe.datetime.user_to_str(value)); } return value; }, format_for_input: function(value) { if(value) { // convert and format - value = dateutil.str_to_user(dateutil.convert_to_user_tz(value)); + value = frappe.datetime.str_to_user(frappe.datetime.convert_to_user_tz(value)); } return value || ""; } @@ -789,16 +789,16 @@ frappe.ui.form.ControlDateRange = frappe.ui.form.ControlData.extend({ }, parse: function(value) { if(value && (value.indexOf(',') !== -1 || value.indexOf('to') !== -1)) { - vals = value.split(/[( to )(,)]/) - from_date = moment(dateutil.user_to_obj(vals[0])).format('YYYY-MM-DD'); - to_date = moment(dateutil.user_to_obj(vals[vals.length-1])).format('YYYY-MM-DD'); + var vals = value.split(/[( to )(,)]/) + var from_date = moment(frappe.datetime.user_to_obj(vals[0])).format('YYYY-MM-DD'); + var to_date = moment(frappe.datetime.user_to_obj(vals[vals.length-1])).format('YYYY-MM-DD'); return [from_date, to_date]; } }, format_for_input: function(value,value2) { if(value && value2) { - value = dateutil.str_to_user(value); - value2 = dateutil.str_to_user(value2); + value = frappe.datetime.str_to_user(value); + value2 = frappe.datetime.str_to_user(value2); return value + " to " + value2 } return ""; @@ -1025,7 +1025,7 @@ frappe.ui.form.ControlAttach = frappe.ui.form.ControlData.extend({ me.dialog.hide(); me.frm.save(); } else { - msgprint(__("Please attach a file or set a URL")); + frappe.msgprint(__("Please attach a file or set a URL")); } }, callback: function(attachment, r) { @@ -1346,7 +1346,7 @@ frappe.ui.form.ControlLink = frappe.ui.form.ControlData.extend({ return true; }, item: function (item, input) { - d = this.get_item(item.value); + var d = this.get_item(item.value); if(!d.label) { d.label = d.value; } var _label = (me.translate_values) ? __(d.label) : d.label; @@ -1408,7 +1408,7 @@ frappe.ui.form.ControlLink = frappe.ui.form.ControlData.extend({ value: "create_new__link_option", action: me.new_doc }) - }; + } // advanced search r.results.push({ label: "" @@ -1591,7 +1591,7 @@ frappe.ui.form.ControlDynamicLink = frappe.ui.form.ControlLink.extend({ } var options = frappe.model.get_value(this.df.parent, this.docname, this.df.options); // if(!options) { - // msgprint(__("Please set {0} first", + // frappe.msgprint(__("Please set {0} first", // [frappe.meta.get_docfield(this.df.parent, this.df.options, this.docname).label])); // } return options; @@ -1797,7 +1797,7 @@ frappe.ui.form.ControlTextEditor = frappe.ui.form.ControlCode.extend({ me.editor.summernote('insertImage', selected); me.image_dialog.hide(); } else { - msgprint(__("Please attach a file or set a URL")); + frappe.msgprint(__("Please attach a file or set a URL")); } }, callback: function(attachment, r) { @@ -1908,9 +1908,9 @@ frappe.ui.form.ControlSignature = frappe.ui.form.ControlData.extend({ // make jSignature field this.$pad = $('
') - .appendTo(me.wrapper) - .jSignature({height:300, width: "100%", "lineWidth": 0.8}) - .on('change', this.on_save_sign.bind(this)); + .appendTo(me.wrapper) + .jSignature({height:300, width: "100%", "lineWidth": 0.8}) + .on('change', this.on_save_sign.bind(this)); this.img_wrapper = $(`
diff --git a/frappe/public/js/frappe/form/dashboard.js b/frappe/public/js/frappe/form/dashboard.js index 8fa5a526ae..6b5f5b239e 100644 --- a/frappe/public/js/frappe/form/dashboard.js +++ b/frappe/public/js/frappe/form/dashboard.js @@ -259,7 +259,7 @@ frappe.ui.form.Dashboard = Class.extend({ group.items.forEach(function(item) { items.push(item); }); }); - method = this.data.method || 'frappe.desk.notifications.get_open_count'; + var method = this.data.method || 'frappe.desk.notifications.get_open_count'; frappe.call({ type: "GET", @@ -359,7 +359,7 @@ frappe.ui.form.Dashboard = Class.extend({ } else { heatmap_message.addClass('hidden'); } - } + } }, add_indicator: function(label, color) { @@ -370,6 +370,7 @@ frappe.ui.form.Dashboard = Class.extend({ // set colspan var indicators = this.stats_area_row.find('.indicator-column'); var n_indicators = indicators.length + 1; + var colspan; if(n_indicators > 4) { colspan = 3 } else { colspan = 12 / n_indicators; } diff --git a/frappe/public/js/frappe/form/footer/assign_to.js b/frappe/public/js/frappe/form/footer/assign_to.js index 05259e541f..950443de57 100644 --- a/frappe/public/js/frappe/form/footer/assign_to.js +++ b/frappe/public/js/frappe/form/footer/assign_to.js @@ -55,13 +55,13 @@ frappe.ui.form.AssignTo = Class.extend({ ', info)) .insertBefore(this.parent.find('.add-assignment')); - if(d[i].owner===user) { + if(d[i].owner===frappe.session.user) { me.primary_action = this.frm.page.add_menu_item(__("Assignment Complete"), function() { - me.remove(user); + me.remove(frappe.session.user); }, "fa fa-check", "btn-success") } - if(!(d[i].owner === user || me.frm.perm[0].write)) { + if(!(d[i].owner === frappe.session.user || me.frm.perm[0].write)) { me.parent.find('a.close').remove(); } } @@ -164,7 +164,7 @@ frappe.ui.form.AssignToDialog = Class.extend({ toggle_myself: function(myself) { var me = this; if($(myself).prop("checked")) { - me.set_value("assign_to", user); + me.set_value("assign_to", frappe.session.user); me.set_value("notify", 0); me.get_field("notify").$wrapper.toggle(false); me.get_field("assign_to").$wrapper.toggle(false); diff --git a/frappe/public/js/frappe/form/footer/attachments.js b/frappe/public/js/frappe/form/footer/attachments.js index 59138c5500..5a37d705cc 100644 --- a/frappe/public/js/frappe/form/footer/attachments.js +++ b/frappe/public/js/frappe/form/footer/attachments.js @@ -18,7 +18,7 @@ frappe.ui.form.Attachments = Class.extend({ }, max_reached: function() { // no of attachments - var n = keys(this.get_attachments()).length; + var n = Object.keys(this.get_attachments()).length; // button if the number of attachments is less than max if(n < this.frm.meta.max_attachments || !this.frm.meta.max_attachments) { @@ -135,7 +135,7 @@ frappe.ui.form.Attachments = Class.extend({ callback: function(r,rt) { if(r.exc) { if(!r._server_messages) - msgprint(__("There were errors")); + frappe.msgprint(__("There were errors")); return; } me.remove_fileid(fileid); @@ -207,13 +207,13 @@ frappe.ui.form.Attachments = Class.extend({ }); frappe.ui.get_upload_dialog = function(opts){ - dialog = new frappe.ui.Dialog({ - title: __('Upload Attachment'), + var dialog = new frappe.ui.Dialog({ + title: __('Upload Attachment'), no_focus: true, - fields: [ + fields: [ {fieldtype: "Section Break"}, {"fieldtype": "Link" , "fieldname": "file" , "label": __("Select uploaded file"), "options": "File"}, - ], + ], }); var btn = dialog.set_primary_action(__("Attach")); @@ -224,22 +224,22 @@ frappe.ui.get_upload_dialog = function(opts){ var fd = dialog.fields_dict; $(fd.file.input).change(function() { - frappe.call({ + frappe.call({ 'method': 'frappe.client.get_value', 'args': { - 'doctype': 'File', - 'fieldname': ['file_url','file_name','is_private'], - 'filters': { - 'name': dialog.get_value("file") - } + 'doctype': 'File', + 'fieldname': ['file_url','file_name','is_private'], + 'filters': { + 'name': dialog.get_value("file") + } }, callback: function(r){ if(!r.message) return; - dialog.$wrapper.find('[name="file_url"]').val(r.message.file_url); + dialog.$wrapper.find('[name="file_url"]').val(r.message.file_url); dialog.$wrapper.find('.private-file input').prop('checked', r.message.is_private); opts.args.filename = r.message.file_name } - }); + }); }); frappe.upload.make({ parent: upload_area, diff --git a/frappe/public/js/frappe/form/footer/timeline.js b/frappe/public/js/frappe/form/footer/timeline.js index 0a9e371f3f..afecc8299d 100644 --- a/frappe/public/js/frappe/form/footer/timeline.js +++ b/frappe/public/js/frappe/form/footer/timeline.js @@ -76,10 +76,10 @@ frappe.ui.form.Timeline = Class.extend({ setup_email_button: function() { var me = this; - selector = this.frm.doctype === "Communication"? ".btn-reply-email": ".btn-new-email" + var selector = this.frm.doctype === "Communication"? ".btn-reply-email": ".btn-new-email" this.email_button = this.wrapper.find(selector) .on("click", function() { - args = { + var args = { doc: me.frm.doc, frm: me.frm, recipients: me.get_recipient() @@ -309,7 +309,7 @@ frappe.ui.form.Timeline = Class.extend({ c._liked_by = JSON.parse(c._liked_by || "[]"); } - c.liked_by_user = c._liked_by.indexOf(user)!==-1; + c.liked_by_user = c._liked_by.indexOf(frappe.session.user)!==-1; } } @@ -453,7 +453,7 @@ frappe.ui.form.Timeline = Class.extend({ p[0], me.frm.docname); if(df && !df.hidden) { - field_display_status = frappe.perm.get_field_display_status(df, + var field_display_status = frappe.perm.get_field_display_status(df, null, me.frm.perm); if(field_display_status === 'Read' || field_display_status === 'Write') { @@ -535,7 +535,7 @@ frappe.ui.form.Timeline = Class.extend({ reference_doctype: this.frm.doctype, reference_name: this.frm.docname, content: comment, - sender: user + sender: frappe.session.user } }, btn: btn, diff --git a/frappe/public/js/frappe/form/form_viewers.js b/frappe/public/js/frappe/form/form_viewers.js index 222705fb61..b29ceb7584 100644 --- a/frappe/public/js/frappe/form/form_viewers.js +++ b/frappe/public/js/frappe/form/form_viewers.js @@ -43,9 +43,9 @@ frappe.ui.form.Viewers = Class.extend({ if (data_updated && new_users.length) { // new user viewing this document, who wasn't viewing in the past if (new_users.length===1) { - show_alert(__("{0} is currently viewing this document", [new_users[0]])); + frappe.show_alert(__("{0} is currently viewing this document", [new_users[0]])); } else { - show_alert(__("{0} are currently viewing this document", [frappe.utils.comma_and(new_users)])); + frappe.show_alert(__("{0} are currently viewing this document", [frappe.utils.comma_and(new_users)])); } } @@ -56,15 +56,9 @@ frappe.ui.form.set_viewers = function(data) { var doctype = data.doctype; var docname = data.docname; var past_viewers = (frappe.model.get_docinfo(doctype, docname).viewers || {}).past || []; - var new_viewers = []; var viewers = data.viewers || []; - for (i=0, l=viewers.length; i < l; i++) { - var username = viewers[i]; - if (past_viewers.indexOf(username)===-1) { - new_viewers.push(username); - } - } + var new_viewers = viewers.filter(viewer => !past_viewers.includes(viewer)); frappe.model.set_docinfo(doctype, docname, "viewers", { past: past_viewers.concat(new_viewers), diff --git a/frappe/public/js/frappe/form/formatters.js b/frappe/public/js/frappe/form/formatters.js index d25faa21e7..c23d440f47 100644 --- a/frappe/public/js/frappe/form/formatters.js +++ b/frappe/public/js/frappe/form/formatters.js @@ -99,7 +99,7 @@ frappe.form.formatters = { }, Date: function(value) { if (value) { - value = dateutil.str_to_user(value); + value = frappe.datetime.str_to_user(value); // handle invalid date if (value==="Invalid date") { value = null; @@ -110,7 +110,7 @@ frappe.form.formatters = { }, Datetime: function(value) { if(value) { - var m = moment(dateutil.convert_to_user_tz(value)); + var m = moment(frappe.datetime.convert_to_user_tz(value)); if(frappe.boot.sysdefaults.time_zone) { m = m.tz(frappe.boot.sysdefaults.time_zone); } @@ -182,7 +182,7 @@ frappe.form.formatters = { return "
" + (value==null ? "" : $("
").text(value).html()) + "
" }, WorkflowState: function(value) { - workflow_state = frappe.get_doc("Workflow State", value); + var workflow_state = frappe.get_doc("Workflow State", value); if(workflow_state) { return repl("' + - this.row_check_html + - ' ' + txt + '
') + this.row_index = $( + `
+ ${this.row_check_html} + ${txt}
`) .appendTo(this.row) .on('click', function(e) { if(!$(e.target).hasClass('grid-row-check')) { @@ -852,7 +853,7 @@ frappe.ui.form.GridRow = Class.extend({ add_class += (["Check"].indexOf(df.fieldtype)!==-1) ? " text-center": ""; - $col = $('
') + var $col = $('
') .attr("data-fieldname", df.fieldname) .attr("data-fieldtype", df.fieldtype) .data("df", df) @@ -861,7 +862,7 @@ frappe.ui.form.GridRow = Class.extend({ if(frappe.ui.form.editable_row===me) { return; } - out = me.toggle_editable_row(); + var out = me.toggle_editable_row(); var col = this; setTimeout(function() { $(col).find('input[type="Text"]:first').focus(); @@ -890,7 +891,7 @@ frappe.ui.form.GridRow = Class.extend({ if(frappe.ui.form.editable_row && frappe.ui.form.editable_row !== this) { frappe.ui.form.editable_row.toggle_editable_row(false); - }; + } this.row.toggleClass('editable-row', true); @@ -964,6 +965,7 @@ frappe.ui.form.GridRow = Class.extend({ var me = this; if(field.$input) { field.$input.on('keydown', function(e) { + var { TAB, UP_ARROW, DOWN_ARROW } = frappe.ui.keyCode; if(!in_list([TAB, UP_ARROW, DOWN_ARROW], e.which)) { return; } diff --git a/frappe/public/js/frappe/form/layout.js b/frappe/public/js/frappe/form/layout.js index f81ba69e36..fe92dae364 100644 --- a/frappe/public/js/frappe/form/layout.js +++ b/frappe/public/js/frappe/form/layout.js @@ -225,7 +225,7 @@ frappe.ui.form.Layout = Class.extend({ if(me.frm) { fieldobj.perm = me.frm.perm; } - }; + } refresh && fieldobj.refresh && fieldobj.refresh(); } }, @@ -249,7 +249,7 @@ frappe.ui.form.Layout = Class.extend({ }, handle_tab: function(doctype, fieldname, shift) { var me = this, - grid_row = null; + grid_row = null, prev = null, fields = me.fields_list, in_grid = false, @@ -357,7 +357,7 @@ frappe.ui.form.Layout = Class.extend({ // build dependants' dictionary var has_dep = false; - for(fkey in this.fields_list) { + for(var fkey in this.fields_list) { var f = this.fields_list[fkey]; f.dependencies_clear = true; if(f.df.depends_on) { @@ -409,7 +409,7 @@ frappe.ui.form.Layout = Class.extend({ if(expression.substr(0,5)=='eval:') { out = eval(expression.substr(5)); - } else if(expression.substr(0,3)=='fn:' && me.frm) { + } else if(expression.substr(0,3)=='fn:' && this.frm) { out = this.frm.script_manager.trigger(expression.substr(3), this.doctype, this.docname); } else { var value = doc[expression]; diff --git a/frappe/public/js/frappe/form/link_selector.js b/frappe/public/js/frappe/form/link_selector.js index be4d73d6b0..6702597776 100644 --- a/frappe/public/js/frappe/form/link_selector.js +++ b/frappe/public/js/frappe/form/link_selector.js @@ -16,6 +16,8 @@ frappe.ui.form.LinkSelector = Class.extend({ } }, make: function() { + var me = this; + this.dialog = new frappe.ui.Dialog({ title: __("Select {0}", [(this.doctype=='[Select]') ? __("value") : __(this.doctype)]), fields: [ @@ -32,7 +34,6 @@ frappe.ui.form.LinkSelector = Class.extend({ me.search(); } }); - me = this; if(this.txt) this.dialog.fields_dict.txt.set_input(this.txt); @@ -118,7 +119,7 @@ frappe.ui.form.LinkSelector = Class.extend({ $.each(me.target.frm.doc[me.target.df.fieldname] || [], function(i, d) { if(d[me.fieldname]===value) { frappe.model.set_value(d.doctype, d.name, me.qty_fieldname, data.qty); - show_alert(__("Added {0} ({1})", [value, d[me.qty_fieldname]])); + frappe.show_alert(__("Added {0} ({1})", [value, d[me.qty_fieldname]])); updated = true; return false; } @@ -129,7 +130,7 @@ frappe.ui.form.LinkSelector = Class.extend({ frappe.after_ajax(function() { setTimeout(function() { frappe.model.set_value(d.doctype, d.name, me.qty_fieldname, data.qty); - show_alert(__("Added {0} ({1})", [value, data.qty])); + frappe.show_alert(__("Added {0} ({1})", [value, data.qty])); }, 100); }); } @@ -137,7 +138,7 @@ frappe.ui.form.LinkSelector = Class.extend({ } else { var d = me.target.add_new_row(); frappe.model.set_value(d.doctype, d.name, me.fieldname, value); - show_alert(__("{0} added", [value])); + frappe.show_alert(__("{0} added", [value])); } } }); diff --git a/frappe/public/js/frappe/form/print.js b/frappe/public/js/frappe/form/print.js index 555c85c9d9..991a6622fb 100644 --- a/frappe/public/js/frappe/form/print.js +++ b/frappe/public/js/frappe/form/print.js @@ -70,9 +70,10 @@ frappe.ui.form.PrintPreview = Class.extend({ +"&name="+encodeURIComponent(me.frm.doc.name) +"&format="+me.selected_format() +"&no_letterhead="+(me.with_letterhead() ? "0" : "1") - +(me.lang_code ? ("&_lang="+me.lang_code) : ""))); + +(me.lang_code ? ("&_lang="+me.lang_code) : "")) + ); if(!w) { - msgprint(__("Please enable pop-ups")); return; + frappe.msgprint(__("Please enable pop-ups")); return; } } }); @@ -138,7 +139,7 @@ frappe.ui.form.PrintPreview = Class.extend({ +"&no_letterhead="+(me.with_letterhead() ? "0" : "1") +(me.lang_code ? ("&_lang="+me.lang_code) : ""))); if(!w) { - msgprint(__("Please enable pop-ups")); return; + frappe.msgprint(__("Please enable pop-ups")); return; } }, get_print_html: function(callback) { @@ -227,7 +228,7 @@ frappe.ui.get_print_settings = function(pdf, callback, letter_head) { ? locals[":Company"][frappe.defaults.get_default('company')]["default_letter_head"] : ''; - columns = [{ + var columns = [{ fieldtype: "Check", fieldname: "with_letter_head", label: __("With Letter head") diff --git a/frappe/public/js/frappe/form/quick_entry.js b/frappe/public/js/frappe/form/quick_entry.js index 2e830ce54d..a267839884 100644 --- a/frappe/public/js/frappe/form/quick_entry.js +++ b/frappe/public/js/frappe/form/quick_entry.js @@ -66,7 +66,7 @@ frappe.ui.form.quick_entry = function(doctype, success) { if(data) { dialog.working = true; - values = update_doc(); + var values = update_doc(); frappe.call({ method: "frappe.client.insert", args: { diff --git a/frappe/public/js/frappe/form/save.js b/frappe/public/js/frappe/form/save.js index e75383e010..d0890cbd3a 100644 --- a/frappe/public/js/frappe/form/save.js +++ b/frappe/public/js/frappe/form/save.js @@ -76,7 +76,7 @@ frappe.ui.form.save = function(frm, action, callback, btn) { if(newname) { doc.__newname = strip(newname); } else { - msgprint(__("Name is required")); + frappe.msgprint(__("Name is required")); throw "name required"; } @@ -142,7 +142,7 @@ frappe.ui.form.save = function(frm, action, callback, btn) { } message = message + '

  • ' + error_fields.join('
  • ') + "
"; - msgprint({ + frappe.msgprint({ message: message, indicator: 'red', title: __('Missing Fields') @@ -218,7 +218,7 @@ frappe.ui.form.update_calling_link = function(newdoc) { }}); } else { frappe._from_link.set_value(newdoc.name); - } + } // refresh field frappe._from_link.refresh(); diff --git a/frappe/public/js/frappe/form/script_manager.js b/frappe/public/js/frappe/form/script_manager.js index 146ec25a8e..56b6d00948 100644 --- a/frappe/public/js/frappe/form/script_manager.js +++ b/frappe/public/js/frappe/form/script_manager.js @@ -70,7 +70,7 @@ frappe.ui.form.ScriptManager = Class.extend({ var me = this; doctype = doctype || this.frm.doctype; name = name || this.frm.docname; - handlers = this.get_handlers(event_name, doctype, name, callback); + var handlers = this.get_handlers(event_name, doctype, name, callback); if(callback) handlers.push(callback); return $.when.apply($, $.map(handlers, function(fn) { return fn(); })); @@ -138,7 +138,7 @@ frappe.ui.form.ScriptManager = Class.extend({ this.trigger('setup'); }, log_error: function(caller, e) { - show_alert("Error in Client Script."); + frappe.show_alert("Error in Client Script."); console.group && console.group(); console.log("----- error in client script -----"); console.log("method: " + caller); diff --git a/frappe/public/js/frappe/form/share.js b/frappe/public/js/frappe/form/share.js index 41f811953f..c241d8783e 100644 --- a/frappe/public/js/frappe/form/share.js +++ b/frappe/public/js/frappe/form/share.js @@ -117,7 +117,7 @@ frappe.ui.form.Share = Class.extend({ options: "User", filters: { "user_type": "System User", - "name": ["!=", user] + "name": ["!=", frappe.session.user] } }, only_input: true, @@ -164,7 +164,7 @@ frappe.ui.form.Share = Class.extend({ var user = $(this).parents(".shared-user:first").attr("data-user") || "", value = $(this).prop("checked") ? 1 : 0, property = $(this).attr("name") - everyone = cint($(this).parents(".shared-user:first").attr("data-everyone")); + var everyone = cint($(this).parents(".shared-user:first").attr("data-everyone")); frappe.call({ method: "frappe.share.set_permission", diff --git a/frappe/public/js/frappe/form/sidebar.js b/frappe/public/js/frappe/form/sidebar.js index 080e6cd898..ea3f1737bb 100644 --- a/frappe/public/js/frappe/form/sidebar.js +++ b/frappe/public/js/frappe/form/sidebar.js @@ -151,11 +151,11 @@ frappe.ui.form.Sidebar = Class.extend({ }, setup_ratings: function() { - _ratings = this.frm.get_docinfo().rating || 0; + var _ratings = this.frm.get_docinfo().rating || 0; if(_ratings) { this.ratings.removeClass("hide"); - rating_icons = frappe.render_template("rating_icons", {rating: _ratings, show_label: false}); + var rating_icons = frappe.render_template("rating_icons", {rating: _ratings, show_label: false}); this.ratings.find(".rating-icons").html(rating_icons); } } diff --git a/frappe/public/js/frappe/form/toolbar.js b/frappe/public/js/frappe/form/toolbar.js index 80ee2d7341..aa0a822c0b 100644 --- a/frappe/public/js/frappe/form/toolbar.js +++ b/frappe/public/js/frappe/form/toolbar.js @@ -114,7 +114,7 @@ frappe.ui.form.Toolbar = Class.extend({ // Print if(!is_submittable || docstatus == 1 || (allow_print_for_cancelled && docstatus == 2)|| - (allow_print_for_draft && docstatus == 0)) { + (allow_print_for_draft && docstatus == 0)) { if(frappe.model.can_print(null, me.frm)) { this.page.add_menu_item(__("Print"), function() { me.frm.print_doc();}, true); @@ -159,7 +159,7 @@ frappe.ui.form.Toolbar = Class.extend({ me.frm.savetrash();}, true); } - if(in_list(roles, "System Manager")) { + if(frappe.user_roles.includes("System Manager")) { this.page.add_menu_item(__("Customize"), function() { frappe.set_route("Form", "Customize Form", { doc_type: me.frm.doctype @@ -178,7 +178,7 @@ frappe.ui.form.Toolbar = Class.extend({ if(!this.frm.doc.__unsaved) { if(is_submittable && docstatus == 1) { this.page.add_menu_item(__("Request Feedback"), function() { - feedback = new frappe.utils.Feedback(); + var feedback = new frappe.utils.Feedback(); feedback.manual_feedback_request(me.frm.doc); }, true) } diff --git a/frappe/public/js/frappe/form/workflow.js b/frappe/public/js/frappe/form/workflow.js index 69bc1092d6..e3fde7ae84 100644 --- a/frappe/public/js/frappe/form/workflow.js +++ b/frappe/public/js/frappe/form/workflow.js @@ -73,7 +73,7 @@ frappe.ui.form.States = Class.extend({ } $.each(frappe.workflow.get_transitions(this.frm.doctype, state), function(i, d) { - if(in_list(roles, d.allowed)) { + if(frappe.user_roles.includes(d.allowed)) { added = true; me.frm.page.add_action_item(__(d.action), function() { var action = d.action; @@ -112,10 +112,10 @@ frappe.ui.form.States = Class.extend({ } else if(new_docstatus==2 && me.frm.doc.docstatus==1) { me.frm.savecancel(null, success, on_error); } else { - msgprint(__("Document Status transition from ") + me.frm.doc.docstatus + " " + frappe.msgprint(__("Document Status transition from ") + me.frm.doc.docstatus + " " + __("to") + new_docstatus + " " + __("is not allowed.")); - msgprint(__("Document Status transition from {0} to {1} is not allowed", [me.frm.doc.docstatus, new_docstatus])); + frappe.msgprint(__("Document Status transition from {0} to {1} is not allowed", [me.frm.doc.docstatus, new_docstatus])); return false; } diff --git a/frappe/public/js/frappe/list/list_renderer.js b/frappe/public/js/frappe/list/list_renderer.js index 1f0209f74b..4fa52171e1 100644 --- a/frappe/public/js/frappe/list/list_renderer.js +++ b/frappe/public/js/frappe/list/list_renderer.js @@ -108,8 +108,8 @@ frappe.views.ListRenderer = Class.extend({ } // enabled / disabled - if (frappe.meta.has_field(this.doctype, 'enabled')) { add_field('enabled'); }; - if (frappe.meta.has_field(this.doctype, 'disabled')) { add_field('disabled'); }; + if (frappe.meta.has_field(this.doctype, 'enabled')) { add_field('enabled'); } + if (frappe.meta.has_field(this.doctype, 'disabled')) { add_field('disabled'); } // add workflow field (as priority) this.workflow_state_fieldname = frappe.workflow.get_state_fieldname(this.doctype); @@ -133,7 +133,7 @@ frappe.views.ListRenderer = Class.extend({ add_field(df.options.split(':')[1]); } else { add_field(df.options); - }; + } } } }); @@ -424,7 +424,7 @@ frappe.views.ListRenderer = Class.extend({ this.prepare_when(data, data.modified); // nulls as strings - for (key in data) { + for (var key in data) { if (data[key] == null) { data[key] = ''; } @@ -485,8 +485,8 @@ frappe.views.ListRenderer = Class.extend({ prepare_when: function (data, date_str) { if (!date_str) date_str = data.modified; // when - data.when = (dateutil.str_to_user(date_str)).split(' ')[0]; - var diff = dateutil.get_diff(dateutil.get_today(), date_str.split(' ')[0]); + data.when = (frappe.datetime.str_to_user(date_str)).split(' ')[0]; + var diff = frappe.datetime.get_diff(frappe.datetime.get_today(), date_str.split(' ')[0]); if (diff === 0) { data.when = comment_when(date_str); } diff --git a/frappe/public/js/frappe/list/list_sidebar.js b/frappe/public/js/frappe/list/list_sidebar.js index 58ce23209d..375bd0d6c4 100644 --- a/frappe/public/js/frappe/list/list_sidebar.js +++ b/frappe/public/js/frappe/list/list_sidebar.js @@ -212,7 +212,7 @@ frappe.views.ListSidebar = Class.extend({ .then(function() { d.hide(); }, function(err) { - msgprint(err); + frappe.msgprint(err); }); } }); @@ -273,15 +273,15 @@ frappe.views.ListSidebar = Class.extend({ var $dropdown = this.page.sidebar.find('.email-account-dropdown'); var divider = false; - if(has_common(roles, ["System Manager", "Administrator"])) { + if(has_common(frappe.user_roles, ["System Manager", "Administrator"])) { $('') .appendTo($dropdown) } - accounts = frappe.boot.email_accounts; + var accounts = frappe.boot.email_accounts; accounts.forEach(function(account) { - email_account = (account.email_id == "All Accounts")? "All Accounts": account.email_account; + var email_account = (account.email_id == "All Accounts")? "All Accounts": account.email_account; var route = ["List", "Communication", "Inbox", email_account].join('/'); if(!divider) { $('').appendTo($dropdown); @@ -318,9 +318,9 @@ frappe.views.ListSidebar = Class.extend({ me.defined_category = r.message; if (r.message.defined_cat ){ me.defined_category = r.message.defined_cat - me.cats = {}; + me.cats = {}; //structure the tag categories - for (i in me.defined_category){ + for (var i in me.defined_category){ if (me.cats[me.defined_category[i].category]===undefined){ me.cats[me.defined_category[i].category]=[me.defined_category[i].tag]; }else{ diff --git a/frappe/public/js/frappe/list/list_view.js b/frappe/public/js/frappe/list/list_view.js index e673a297c4..af811faa4b 100644 --- a/frappe/public/js/frappe/list/list_view.js +++ b/frappe/public/js/frappe/list/list_view.js @@ -302,7 +302,7 @@ frappe.views.ListView = frappe.ui.BaseList.extend({ set_filters: function (filters) { var me = this; $.each(filters, function (i, f) { - hidden = false + var hidden = false if (f.length === 3) { f = [me.doctype, f[0], f[1], f[2]] } else if (f.length === 5) { @@ -377,7 +377,7 @@ frappe.views.ListView = frappe.ui.BaseList.extend({ if (this.list_renderer.settings.list_view_doc) { this.list_renderer.settings.list_view_doc(this); } else { - doctype = this.list_renderer.no_result_doctype? this.list_renderer.no_result_doctype: this.doctype + var doctype = this.list_renderer.no_result_doctype? this.list_renderer.no_result_doctype: this.doctype $(this.wrapper).on('click', `button[list_view_doc='${doctype}']`, function () { if (me.list_renderer.make_new_doc) me.list_renderer.make_new_doc() @@ -563,18 +563,18 @@ frappe.views.ListView = frappe.ui.BaseList.extend({ return order_by; }, assigned_to_me: function () { - this.filter_list.add_filter(this.doctype, '_assign', 'like', '%' + user + '%'); + this.filter_list.add_filter(this.doctype, '_assign', 'like', '%' + frappe.session.user + '%'); this.run(); }, liked_by_me: function () { - this.filter_list.add_filter(this.doctype, '_liked_by', 'like', '%' + user + '%'); + this.filter_list.add_filter(this.doctype, '_liked_by', 'like', '%' + frappe.session.user + '%'); this.run(); }, remove_liked_by_me: function () { this.filter_list.get_filter('_liked_by').remove(); }, is_star_filtered: function () { - return this.filter_list.filter_exists(this.doctype, '_liked_by', 'like', '%' + user + '%'); + return this.filter_list.filter_exists(this.doctype, '_liked_by', 'like', '%' + frappe.session.user + '%'); }, init_menu: function () { var me = this; @@ -606,7 +606,7 @@ frappe.views.ListView = frappe.ui.BaseList.extend({ }); }, true); } - if (roles.includes('System Manager')) { + if (frappe.user_roles.includes('System Manager')) { this.page.add_menu_item(__('Role Permissions Manager'), function () { frappe.set_route('permission-manager', { doctype: me.doctype @@ -627,7 +627,7 @@ frappe.views.ListView = frappe.ui.BaseList.extend({ frappe.add_to_desktop(me.doctype, me.doctype); }, true); - if (roles.includes('System Manager') && frappe.boot.developer_mode === 1) { + if (frappe.user_roles.includes('System Manager') && frappe.boot.developer_mode === 1) { // edit doctype this.page.add_menu_item(__('Edit DocType'), function () { frappe.set_route('Form', 'DocType', me.doctype); @@ -683,7 +683,7 @@ frappe.views.ListView = frappe.ui.BaseList.extend({ return !is_submittable || doc.docstatus === 1 || (allow_print_for_cancelled && doc.docstatus == 2) || (allow_print_for_draft && doc.docstatus == 0) || - roles.includes('Administrator') + frappe.user_roles.includes('Administrator') }).map(function (doc) { return doc.name }); @@ -708,11 +708,11 @@ frappe.views.ListView = frappe.ui.BaseList.extend({ }); dialog.set_primary_action(__('Print'), function () { - args = dialog.get_values(); + var args = dialog.get_values(); if (!args) return; var default_print_format = locals.DocType[me.doctype].default_print_format; - with_letterhead = args.with_letterhead ? 1 : 0; - print_format = args.print_sel ? args.print_sel : default_print_format; + var with_letterhead = args.with_letterhead ? 1 : 0; + var print_format = args.print_sel ? args.print_sel : default_print_format; var json_string = JSON.stringify(valid_docs); var w = window.open('/api/method/frappe.utils.print_format.download_multi_pdf?' @@ -725,7 +725,7 @@ frappe.views.ListView = frappe.ui.BaseList.extend({ } }); - print_formats = frappe.meta.get_print_formats(me.doctype); + var print_formats = frappe.meta.get_print_formats(me.doctype); dialog.fields_dict.print_sel.$input.empty().add_options(print_formats); dialog.show(); diff --git a/frappe/public/js/frappe/misc/common.js b/frappe/public/js/frappe/misc/common.js index 808ae094de..eab3f8e6b2 100644 --- a/frappe/public/js/frappe/misc/common.js +++ b/frappe/public/js/frappe/misc/common.js @@ -30,7 +30,7 @@ frappe.avatar = function(user, css_class, title) { return repl('\ ', { + title="%(title)s">', { image: image, title: title, abbr: user_info.abbr, @@ -93,7 +93,7 @@ frappe.get_gravatar = function(email_id) { function repl(s, dict) { if(s==null)return ''; - for(key in dict) { + for(var key in dict) { s = s.split("%("+key+")s").join(dict[key]); } return s; @@ -162,8 +162,8 @@ function getCookies() { c.match(/(?:^|\s+)([!#$%&'*+\-.0-9A-Z^`a-z|~]+)=([!#$%&'*+\-.0-9A-Z^`a-z|~]*|"(?:[\x20-\x7E\x80\xFF]|\\[\x00-\x7F])*")(?=\s*[,;]|$)/g).map(function($0, $1) { var name = $0, value = $1.charAt(0) === '"' - ? $1.substr(1, -1).replace(/\\(.)/g, "$1") - : $1; + ? $1.substr(1, -1).replace(/\\(.)/g, "$1") + : $1; cookies[name] = value; }); } diff --git a/frappe/public/js/frappe/misc/datetime.js b/frappe/public/js/frappe/misc/datetime.js index 53a9c022bd..79f72a0ef4 100644 --- a/frappe/public/js/frappe/misc/datetime.js +++ b/frappe/public/js/frappe/misc/datetime.js @@ -10,8 +10,8 @@ frappe.provide("frappe.datetime"); $.extend(frappe.datetime, { convert_to_user_tz: function(date, format) { // format defaults to true - if(sys_defaults.time_zone) { - var date_obj = moment.tz(date, sys_defaults.time_zone).local(); + if(frappe.sys_defaults.time_zone) { + var date_obj = moment.tz(date, frappe.sys_defaults.time_zone).local(); } else { var date_obj = moment(date); } @@ -22,8 +22,8 @@ $.extend(frappe.datetime, { convert_to_system_tz: function(date, format) { // format defaults to true - if(sys_defaults.time_zone) { - var date_obj = moment(date).tz(sys_defaults.time_zone); + if(frappe.sys_defaults.time_zone) { + var date_obj = moment(date).tz(frappe.sys_defaults.time_zone); } else { var date_obj = moment(date); } @@ -32,8 +32,8 @@ $.extend(frappe.datetime, { }, is_timezone_same: function() { - if(sys_defaults.time_zone) { - return moment().tz(sys_defaults.time_zone).utcOffset() === moment().utcOffset(); + if(frappe.sys_defaults.time_zone) { + return moment().tz(frappe.sys_defaults.time_zone).utcOffset() === moment().utcOffset(); } else { return true; } @@ -48,7 +48,7 @@ $.extend(frappe.datetime, { }, obj_to_user: function(d) { - return moment(d).format(dateutil.get_user_fmt().toUpperCase()); + return moment(d).format(frappe.datetime.get_user_fmt().toUpperCase()); }, get_diff: function(d1, d2) { @@ -88,12 +88,12 @@ $.extend(frappe.datetime, { }, get_user_fmt: function() { - return sys_defaults.date_format || "yyyy-mm-dd"; + return frappe.sys_defaults.date_format || "yyyy-mm-dd"; }, str_to_user: function(val, no_time_str) { if(!val) return ""; - var user_fmt = dateutil.get_user_fmt().toUpperCase(); + var user_fmt = frappe.datetime.get_user_fmt().toUpperCase(); if(typeof val !== "string" || val.indexOf(" ")===-1) { return moment(val).format(user_fmt); } else { @@ -110,7 +110,7 @@ $.extend(frappe.datetime, { }, user_to_str: function(val, no_time_str) { - var user_fmt = dateutil.get_user_fmt().toUpperCase(); + var user_fmt = frappe.datetime.get_user_fmt().toUpperCase(); var system_fmt = "YYYY-MM-DD"; if(val.indexOf(" ")!==-1) { @@ -124,7 +124,7 @@ $.extend(frappe.datetime, { }, user_to_obj: function(d) { - return dateutil.str_to_obj(dateutil.user_to_str(d)); + return frappe.datetime.str_to_obj(frappe.datetime.user_to_str(d)); }, global_date_format: function(d) { @@ -156,5 +156,5 @@ $.extend(frappe.datetime, { }); // globals (deprecate) -var date = dateutil = frappe.datetime; -var get_today = frappe.datetime.get_today; +// var date = dateutil = frappe.datetime; +// var get_today = frappe.datetime.get_today; diff --git a/frappe/public/js/frappe/misc/number_format.js b/frappe/public/js/frappe/misc/number_format.js index fa77b3bbfc..c9b465da80 100644 --- a/frappe/public/js/frappe/misc/number_format.js +++ b/frappe/public/js/frappe/misc/number_format.js @@ -1,55 +1,55 @@ // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors // MIT License. See license.txt -if(!window.frappe) window.frappe = {}; +if (!window.frappe) window.frappe = {}; function flt(v, decimals, number_format) { - if(v==null || v=='')return 0; + if (v == null || v == '') return 0; - if(typeof v!=="number") { + if (typeof v !== "number") { v = v + ""; // strip currency symbol if exists - if(v.indexOf(" ")!=-1) { + if (v.indexOf(" ") != -1) { // using slice(1).join(" ") because space could also be a group separator - parts = v.split(" "); + var parts = v.split(" "); v = isNaN(parseFloat(parts[0])) ? parts.slice(parts.length - 1).join(" ") : v; } v = strip_number_groups(v, number_format); - v=parseFloat(v); - if(isNaN(v)) - v=0; + v = parseFloat(v); + if (isNaN(v)) + v = 0; } - if(decimals!=null) + if (decimals != null) return _round(v, decimals); return v; } function cint(v, def) { - if(v===true) + if (v === true) return 1; - if(v===false) + if (v === false) return 0; - v=v+''; - if(v!=="0")v=lstrip(v, ['0']); - v=parseInt(v); - if(isNaN(v))v=def===undefined?0:def; + v = v + ''; + if (v !== "0") v = lstrip(v, ['0']); + v = parseInt(v); + if (isNaN(v)) v = def === undefined ? 0 : def; return v; } function strip_number_groups(v, number_format) { - if(!number_format) number_format = get_number_format(); + if (!number_format) number_format = get_number_format(); var info = get_number_format_info(number_format); // strip groups (,) - var group_regex = new RegExp(info.group_sep==="." ? "\\." : info.group_sep, "g"); + var group_regex = new RegExp(info.group_sep === "." ? "\\." : info.group_sep, "g"); v = v.replace(group_regex, ""); // replace decimal separator with (.) - if (info.decimal_str!=="." && info.decimal_str!=="") { + if (info.decimal_str !== "." && info.decimal_str !== "") { var decimal_regex = new RegExp(info.decimal_str, "g"); v = v.replace(decimal_regex, "."); } @@ -59,32 +59,32 @@ function strip_number_groups(v, number_format) { frappe.number_format_info = { - "#,###.##": {decimal_str:".", group_sep:","}, - "#.###,##": {decimal_str:",", group_sep:"."}, - "# ###.##": {decimal_str:".", group_sep:" "}, - "# ###,##": {decimal_str:",", group_sep:" "}, - "#'###.##": {decimal_str:".", group_sep:"'"}, - "#, ###.##": {decimal_str:".", group_sep:", "}, - "#,##,###.##": {decimal_str:".", group_sep:","}, - "#,###.###": {decimal_str:".", group_sep:","}, - "#.###": {decimal_str:"", group_sep:"."}, - "#,###": {decimal_str:"", group_sep:","}, + "#,###.##": { decimal_str: ".", group_sep: "," }, + "#.###,##": { decimal_str: ",", group_sep: "." }, + "# ###.##": { decimal_str: ".", group_sep: " " }, + "# ###,##": { decimal_str: ",", group_sep: " " }, + "#'###.##": { decimal_str: ".", group_sep: "'" }, + "#, ###.##": { decimal_str: ".", group_sep: ", " }, + "#,##,###.##": { decimal_str: ".", group_sep: "," }, + "#,###.###": { decimal_str: ".", group_sep: "," }, + "#.###": { decimal_str: "", group_sep: "." }, + "#,###": { decimal_str: "", group_sep: "," }, } -window.format_number = function(v, format, decimals){ +window.format_number = function (v, format, decimals) { if (!format) { format = get_number_format(); - if(decimals == null) decimals = cint(frappe.defaults.get_default("float_precision")) || 3; + if (decimals == null) decimals = cint(frappe.defaults.get_default("float_precision")) || 3; } - info = get_number_format_info(format); + var info = get_number_format_info(format); // Fix the decimal first, toFixed will auto fill trailing zero. if (decimals == null) decimals = info.precision; v = flt(v, decimals, format); - if(v<0) var is_negative = true; + if (v < 0) var is_negative = true; v = Math.abs(v); v = v.toFixed(decimals); @@ -98,23 +98,23 @@ window.format_number = function(v, format, decimals){ var integer = part[0]; var str = ''; var offset = integer.length % group_position; - for (var i=integer.length; i>=0; i--) { + for (var i = integer.length; i >= 0; i--) { var l = replace_all(str, info.group_sep, "").length; - if(format=="#,##,###.##" && str.indexOf(",")!=-1) { // INR + if (format == "#,##,###.##" && str.indexOf(",") != -1) { // INR group_position = 2; l += 1; } str += integer.charAt(i); - if (l && !((l+1) % group_position) && i!=0 ) { + if (l && !((l + 1) % group_position) && i != 0) { str += info.group_sep; } } part[0] = str.split("").reverse().join(""); } - if(part[0]+""=="") { - part[0]="0"; + if (part[0] + "" == "") { + part[0] = "0"; } // join decimal @@ -131,18 +131,18 @@ function format_currency(v, currency, decimals) { decimals = frappe.boot.sysdefaults.currency_precision || null; } - if(symbol) + if (symbol) return symbol + " " + format_number(v, format, decimals); else return format_number(v, format, decimals); } function get_currency_symbol(currency) { - if(frappe.boot) { - if(frappe.boot.sysdefaults.hide_currency_symbol=="Yes") + if (frappe.boot) { + if (frappe.boot.sysdefaults.hide_currency_symbol == "Yes") return null; - if(!currency) + if (!currency) currency = frappe.boot.sysdefaults.currency; return frappe.model.get_value(":Currency", currency, "symbol") || currency; @@ -159,8 +159,8 @@ function get_number_format(currency) { function get_number_format_info(format) { var info = frappe.number_format_info[format]; - if(!info) { - info = {decimal_str:".", group_sep:","}; + if (!info) { + info = { decimal_str: ".", group_sep: "," }; } // get the precision from the number format @@ -171,13 +171,13 @@ function get_number_format_info(format) { function _round(num, precision) { var is_negative = num < 0 ? true : false; - var d = cint(precision); - var m = Math.pow(10, d); - var n = +(d ? Math.abs(num) * m : Math.abs(num)).toFixed(8); // Avoid rounding errors - var i = Math.floor(n), f = n - i; - var r = ((!precision && f == 0.5) ? ((i % 2 == 0) ? i : i + 1) : Math.round(n)); - r = d ? r / m : r; - return is_negative ? -r : r; + var d = cint(precision); + var m = Math.pow(10, d); + var n = +(d ? Math.abs(num) * m : Math.abs(num)).toFixed(8); // Avoid rounding errors + var i = Math.floor(n), f = n - i; + var r = ((!precision && f == 0.5) ? ((i % 2 == 0) ? i : i + 1) : Math.round(n)); + r = d ? r / m : r; + return is_negative ? -r : r; } @@ -187,20 +187,20 @@ function roundNumber(num, precision) { } function precision(fieldname, doc) { - if(cur_frm){ - if(!doc) doc = cur_frm.doc; + if (cur_frm) { + if (!doc) doc = cur_frm.doc; var df = frappe.meta.get_docfield(doc.doctype, fieldname, doc.parent || doc.name); - if(!df) console.log(fieldname + ": could not find docfield in method precision()"); + if (!df) console.log(fieldname + ": could not find docfield in method precision()"); return frappe.meta.get_field_precision(df, doc); - }else{ + } else { return frappe.boot.sysdefaults.float_precision } } function in_list(list, item) { - if(!list) return false; - for(var i=0, j=list.length; i (smallest_currency_fraction_value / 2)) { + if (remainder_val > (smallest_currency_fraction_value / 2)) { value += (smallest_currency_fraction_value - remainder_val); } else { value -= remainder_val; @@ -231,4 +231,4 @@ function round_based_on_smallest_currency_fraction(value, currency, precision) { value = Math.round(value); } return value; -}; +} diff --git a/frappe/public/js/frappe/misc/pretty_date.js b/frappe/public/js/frappe/misc/pretty_date.js index 7ec4c42ec1..427752b0bc 100644 --- a/frappe/public/js/frappe/misc/pretty_date.js +++ b/frappe/public/js/frappe/misc/pretty_date.js @@ -5,8 +5,8 @@ function prettyDate(time, mini){ time = new Date(); } if(moment) { - if(window.sys_defaults && sys_defaults.time_zone) { - var ret = moment.tz(time, sys_defaults.time_zone).locale(frappe.boot.lang).fromNow(mini); + if(frappe.sys_defaults && frappe.sys_defaults.time_zone) { + var ret = moment.tz(time, frappe.sys_defaults.time_zone).locale(frappe.boot.lang).fromNow(mini); } else { var ret = moment(time).locale(frappe.boot.lang).fromNow(mini); } @@ -41,7 +41,7 @@ function prettyDate(time, mini){ if ( isNaN(day_diff) || day_diff < 0 ) return ''; - return when = day_diff == 0 && ( + var when = day_diff == 0 && ( diff < 60 && __("just now") || diff < 120 && __("1 minute ago") || diff < 3600 && __("{0} minutes ago", [Math.floor( diff / 60 )]) || @@ -52,6 +52,8 @@ function prettyDate(time, mini){ day_diff < 31 && __("{0} weeks ago", [Math.ceil( day_diff / 7 )]) || day_diff < 365 && __("{0} months ago", [Math.ceil( day_diff / 30)]) || __("> {0} year(s) ago", [Math.floor( day_diff / 365 )]); + + return when; } } diff --git a/frappe/public/js/frappe/misc/tools.js b/frappe/public/js/frappe/misc/tools.js index 1414a5eee6..5e4ffc32e3 100644 --- a/frappe/public/js/frappe/misc/tools.js +++ b/frappe/public/js/frappe/misc/tools.js @@ -5,7 +5,7 @@ frappe.provide("frappe.tools"); frappe.tools.downloadify = function(data, roles, title) { if(roles && roles.length && !has_common(roles, roles)) { - msgprint(__("Export not allowed. You need {0} role to export.", [frappe.utils.comma_or(roles)])); + frappe.msgprint(__("Export not allowed. You need {0} role to export.", [frappe.utils.comma_or(roles)])); return; } diff --git a/frappe/public/js/frappe/misc/user.js b/frappe/public/js/frappe/misc/user.js index cc42a2f6ba..0928d4092e 100644 --- a/frappe/public/js/frappe/misc/user.js +++ b/frappe/public/js/frappe/misc/user.js @@ -5,7 +5,7 @@ frappe.user_info = function(uid) { if(!uid) - uid = user; + uid = frappe.session.user; if(uid.toLowerCase()==="bot") { return { @@ -57,7 +57,7 @@ frappe.provide('frappe.user'); $.extend(frappe.user, { name: 'Guest', full_name: function(uid) { - return uid===user ? + return uid === frappe.session.user ? __("You") : frappe.user_info(uid).fullname; }, @@ -77,7 +77,7 @@ $.extend(frappe.user, { }, get_desktop_items: function() { // hide based on permission - modules_list = $.map(frappe.boot.desktop_icons, function(icon) { + var modules_list = $.map(frappe.boot.desktop_icons, function(icon) { var m = icon.module_name; var type = frappe.modules[m] && frappe.modules[m].type; diff --git a/frappe/public/js/frappe/misc/utils.js b/frappe/public/js/frappe/misc/utils.js index 3cf3bca475..7eb4923b87 100644 --- a/frappe/public/js/frappe/misc/utils.js +++ b/frappe/public/js/frappe/misc/utils.js @@ -5,13 +5,13 @@ frappe.provide('frappe.utils'); frappe.utils = { get_random: function(len) { - var text = ""; - var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + var text = ""; + var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; - for( var i=0; i < len; i++ ) - text += possible.charAt(Math.floor(Math.random() * possible.length)); + for( var i=0; i < len; i++ ) + text += possible.charAt(Math.floor(Math.random() * possible.length)); - return text; + return text; }, get_file_link: function(filename) { filename = cstr(filename); @@ -122,7 +122,7 @@ frappe.utils = { return [dict[filters]] } $.each(dict, function(i, d) { - for(key in filters) { + for(var key in filters) { if($.isArray(filters[key])) { if(filters[key][0]=="in") { if(filters[key][1].indexOf(d[key])==-1) @@ -242,7 +242,6 @@ frappe.utils = { break; default: return false; - break; } // test regExp if not null @@ -288,7 +287,7 @@ frappe.utils = { }; if(!compare_type) - compare_type = typeof list[0][key]==="string" ? "string" : "number"; + compare_type = typeof list[0][key]==="string" ? "string" : "number"; list.sort(sort_fn[compare_type]); @@ -349,20 +348,20 @@ frappe.utils = { if (!arr1 || !arr2) { return false; } - if (arr1.length != arr2.length) { + if (arr1.length != arr2.length) { return false; } - for (var i = 0; i < arr1.length; i++) { - if ($.isArray(arr1[i])) { - if (!frappe.utils.arrays_equal(arr1[i], arr2[i])) { + for (var i = 0; i < arr1.length; i++) { + if ($.isArray(arr1[i])) { + if (!frappe.utils.arrays_equal(arr1[i], arr2[i])) { return false; } - } - else if (arr1[i] !== arr2[i]) { + } + else if (arr1[i] !== arr2[i]) { return false; } - } - return true; + } + return true; }, intersection: function(a, b) { @@ -411,13 +410,13 @@ frappe.utils = { var tempH = tempImg.height; if (tempW > tempH) { if (tempW > max_width) { - tempH *= max_width / tempW; - tempW = max_width; + tempH *= max_width / tempW; + tempW = max_width; } } else { if (tempH > max_height) { - tempW *= max_height / tempH; - tempH = max_height; + tempW *= max_height / tempH; + tempH = max_height; } } @@ -431,88 +430,88 @@ frappe.utils = { } }, - csv_to_array: function (strData, strDelimiter) { - // Check to see if the delimiter is defined. If not, - // then default to comma. - strDelimiter = (strDelimiter || ","); + csv_to_array: function (strData, strDelimiter) { + // Check to see if the delimiter is defined. If not, + // then default to comma. + strDelimiter = (strDelimiter || ","); - // Create a regular expression to parse the CSV values. - var objPattern = new RegExp( - ( - // Delimiters. - "(\\" + strDelimiter + "|\\r?\\n|\\r|^)" + + // Create a regular expression to parse the CSV values. + var objPattern = new RegExp( + ( + // Delimiters. + "(\\" + strDelimiter + "|\\r?\\n|\\r|^)" + - // Quoted fields. - "(?:\"([^\"]*(?:\"\"[^\"]*)*)\"|" + + // Quoted fields. + "(?:\"([^\"]*(?:\"\"[^\"]*)*)\"|" + - // Standard fields. - "([^\"\\" + strDelimiter + "\\r\\n]*))" - ), - "gi" - ); + // Standard fields. + "([^\"\\" + strDelimiter + "\\r\\n]*))" + ), + "gi" + ); - // Create an array to hold our data. Give the array - // a default empty first row. - var arrData = [[]]; + // Create an array to hold our data. Give the array + // a default empty first row. + var arrData = [[]]; - // Create an array to hold our individual pattern - // matching groups. - var arrMatches = null; + // Create an array to hold our individual pattern + // matching groups. + var arrMatches = null; - // Keep looping over the regular expression matches - // until we can no longer find a match. - while (arrMatches = objPattern.exec( strData )){ + // Keep looping over the regular expression matches + // until we can no longer find a match. + while (arrMatches = objPattern.exec( strData )){ - // Get the delimiter that was found. - var strMatchedDelimiter = arrMatches[ 1 ]; + // Get the delimiter that was found. + var strMatchedDelimiter = arrMatches[ 1 ]; - // Check to see if the given delimiter has a length - // (is not the start of string) and if it matches - // field delimiter. If id does not, then we know - // that this delimiter is a row delimiter. - if ( - strMatchedDelimiter.length && - strMatchedDelimiter !== strDelimiter - ){ + // Check to see if the given delimiter has a length + // (is not the start of string) and if it matches + // field delimiter. If id does not, then we know + // that this delimiter is a row delimiter. + if ( + strMatchedDelimiter.length && + strMatchedDelimiter !== strDelimiter + ){ - // Since we have reached a new row of data, - // add an empty row to our data array. - arrData.push( [] ); + // Since we have reached a new row of data, + // add an empty row to our data array. + arrData.push( [] ); - } + } - var strMatchedValue; + var strMatchedValue; - // Now that we have our delimiter out of the way, - // let's check to see which kind of value we - // captured (quoted or unquoted). - if (arrMatches[ 2 ]){ + // Now that we have our delimiter out of the way, + // let's check to see which kind of value we + // captured (quoted or unquoted). + if (arrMatches[ 2 ]){ - // We found a quoted value. When we capture - // this value, unescape any double quotes. - strMatchedValue = arrMatches[ 2 ].replace( - new RegExp( "\"\"", "g" ), - "\"" - ); + // We found a quoted value. When we capture + // this value, unescape any double quotes. + strMatchedValue = arrMatches[ 2 ].replace( + new RegExp( "\"\"", "g" ), + "\"" + ); - } else { + } else { - // We found a non-quoted value. - strMatchedValue = arrMatches[ 3 ]; + // We found a non-quoted value. + strMatchedValue = arrMatches[ 3 ]; - } + } - // Now that we have our value string, let's add - // it to the data array. - arrData[ arrData.length - 1 ].push( strMatchedValue ); - } + // Now that we have our value string, let's add + // it to the data array. + arrData[ arrData.length - 1 ].push( strMatchedValue ); + } - // Return the parsed data. - return( arrData ); - }, + // Return the parsed data. + return( arrData ); + }, warn_page_name_change: function(frm) { frappe.msgprint("Note: Changing the Page Name will break previous URL to this page."); @@ -589,40 +588,40 @@ frappe.utils = { // https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/includes if (!String.prototype.includes) { String.prototype.includes = function(search, start) { - 'use strict'; - if (typeof start !== 'number') { - start = 0; - } - if (start + search.length > this.length) { - return false; - } else { - return this.indexOf(search, start) !== -1; - } + 'use strict'; + if (typeof start !== 'number') { + start = 0; + } + if (start + search.length > this.length) { + return false; + } else { + return this.indexOf(search, start) !== -1; + } }; } // Array.prototype.includes polyfill // https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/includes if (!Array.prototype.includes) { Object.defineProperty(Array.prototype, 'includes', { - value: function(searchElement, fromIndex) { - if (this == null) { - throw new TypeError('"this" is null or not defined'); - } - var o = Object(this); - var len = o.length >>> 0; - if (len === 0) { - return false; - } - var n = fromIndex | 0; - var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); - while (k < len) { - if (o[k] === searchElement) { - return true; - } - k++; - } - return false; - } + value: function(searchElement, fromIndex) { + if (this == null) { + throw new TypeError('"this" is null or not defined'); + } + var o = Object(this); + var len = o.length >>> 0; + if (len === 0) { + return false; + } + var n = fromIndex | 0; + var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0); + while (k < len) { + if (o[k] === searchElement) { + return true; + } + k++; + } + return false; + } }); } // Array de duplicate diff --git a/frappe/public/js/frappe/model/create_new.js b/frappe/public/js/frappe/model/create_new.js index be1ec9bb4f..efc14fa77f 100644 --- a/frappe/public/js/frappe/model/create_new.js +++ b/frappe/public/js/frappe/model/create_new.js @@ -15,7 +15,7 @@ $.extend(frappe.model, { name: frappe.model.get_new_name(doctype), __islocal: 1, __unsaved: 1, - owner: user + owner: frappe.session.user }; frappe.model.set_default_values(doc, parent_doc); @@ -140,7 +140,7 @@ $.extend(frappe.model, { if(!df.ignore_user_permissions) { // 2 - look in user defaults - user_defaults = frappe.defaults.get_user_defaults(df.options); + var user_defaults = frappe.defaults.get_user_defaults(df.options); if (user_defaults && user_defaults.length===1) { // Use User Permission value when only when it has a single value user_default = user_defaults[0]; @@ -171,13 +171,13 @@ $.extend(frappe.model, { return frappe.session.user; } else if (df["default"] == "user_fullname") { - return user_fullname; + return frappe.session.user_fullname; } else if (df["default"] == "Today") { - return dateutil.get_today(); + return frappe.datetime.get_today(); } else if ((df["default"] || "").toLowerCase() === "now") { - return dateutil.now_datetime(); + return frappe.datetime.now_datetime(); } else if (df["default"][0]===":") { var boot_doc = frappe.model.get_default_from_boot_docs(df, doc, parent_doc); @@ -198,7 +198,7 @@ $.extend(frappe.model, { } } else if (df.fieldtype=="Time") { - return dateutil.now_time(); + return frappe.datetime.now_time(); } }, @@ -267,6 +267,8 @@ $.extend(frappe.model, { } } + var user = frappe.session.user; + newdoc.__islocal = 1; newdoc.docstatus = 0; newdoc.owner = user; @@ -309,7 +311,7 @@ $.extend(frappe.model, { frappe.create_routes = {}; frappe.new_doc = function (doctype, opts) { - if(opts && $.isPlainObject(opts)) { frappe.route_options = opts; }; + if(opts && $.isPlainObject(opts)) { frappe.route_options = opts; } frappe.model.with_doctype(doctype, function() { if(frappe.create_routes[doctype]) { frappe.set_route(frappe.create_routes[doctype]); diff --git a/frappe/public/js/frappe/model/meta.js b/frappe/public/js/frappe/model/meta.js index 542588324f..04b0594685 100644 --- a/frappe/public/js/frappe/model/meta.js +++ b/frappe/public/js/frappe/model/meta.js @@ -173,7 +173,7 @@ $.extend(frappe.meta, { get_parentfield: function(parent_dt, child_dt) { var df = (frappe.get_doc("DocType", parent_dt).fields || []).filter(function(d) - { return d.fieldtype==="Table" && options===child_dt }) + { return d.fieldtype==="Table" && d.options===child_dt }) if(!df.length) throw "parentfield not found for " + parent_dt + ", " + child_dt; return df[0].fieldname; diff --git a/frappe/public/js/frappe/model/model.js b/frappe/public/js/frappe/model/model.js index 10a882db67..3ed470a64d 100644 --- a/frappe/public/js/frappe/model/model.js +++ b/frappe/public/js/frappe/model/model.js @@ -5,7 +5,7 @@ frappe.provide('frappe.model'); $.extend(frappe.model, { no_value_type: ['Section Break', 'Column Break', 'HTML', 'Table', - 'Button', 'Image', 'Fold', 'Heading'], + 'Button', 'Image', 'Fold', 'Heading'], layout_fields: ['Section Break', 'Column Break', 'Fold'], @@ -77,7 +77,7 @@ $.extend(frappe.model, { if(d.fieldname==fieldname) return d; }); if(!docfield.length) { - msgprint(__("Unknown Column: {0}", [fieldname])); + frappe.msgprint(__("Unknown Column: {0}", [fieldname])); } return docfield[0]; }, @@ -103,7 +103,7 @@ $.extend(frappe.model, { freeze: true, callback: function(r) { if(r.exc) { - msgprint(__("Unable to load: {0}", [__(doctype)])); + frappe.msgprint(__("Unable to load: {0}", [__(doctype)])); throw "No doctype"; } if(r.message=="use_cache") { @@ -235,7 +235,7 @@ $.extend(frappe.model, { can_import: function(doctype, frm) { // system manager can always import - if(roles.indexOf("System Manager")!==-1) return true; + if(frappe.user_roles.includes("System Manager")) return true; if(frm) return frm.perm[0].import===1; return frappe.boot.user.can_import.indexOf(doctype)!==-1; @@ -243,7 +243,7 @@ $.extend(frappe.model, { can_export: function(doctype, frm) { // system manager can always export - if(roles.indexOf("System Manager")!==-1) return true; + if(frappe.user_roles.includes("System Manager")) return true; if(frm) return frm.perm[0].export===1; return frappe.boot.user.can_export.indexOf(doctype)!==-1; @@ -268,7 +268,7 @@ $.extend(frappe.model, { can_set_user_permissions: function(doctype, frm) { // system manager can always set user permissions - if(roles.indexOf("System Manager")!==-1) return true; + if(frappe.user_roles.includes("System Manager")) return true; if(frm) return frm.perm[0].set_user_permissions===1; return frappe.boot.user.can_set_user_permissions.indexOf(doctype)!==-1; @@ -359,7 +359,7 @@ $.extend(frappe.model, { */ /* example: frappe.model.on("Customer", "age", function(fieldname, value, doc) { if(doc.age < 16) { - msgprint("Warning, Customer must atleast be 16 years old."); + frappe.msgprint("Warning, Customer must atleast be 16 years old."); raise "CustomerAgeError"; } }) */ @@ -385,7 +385,7 @@ $.extend(frappe.model, { // doctype-level run(frappe.model.events[doc.doctype]['*']); - }; + } }, get_doc: function(doctype, name) { @@ -541,7 +541,7 @@ $.extend(frappe.model, { get_all_docs: function(doc) { var all = [doc]; - for(key in doc) { + for(var key in doc) { if($.isArray(doc[key])) { var children = doc[key]; for (var i=0, l=children.length; i < l; i++) { diff --git a/frappe/public/js/frappe/model/perm.js b/frappe/public/js/frappe/model/perm.js index f660440c05..0bf62525e4 100644 --- a/frappe/public/js/frappe/model/perm.js +++ b/frappe/public/js/frappe/model/perm.js @@ -45,7 +45,7 @@ $.extend(frappe.perm, { return perm; } - if (user==="Administrator" || roles.indexOf("Administrator")!==-1) { + if (frappe.session.user === "Administrator" || frappe.user_roles.includes("Administrator")) { perm[0].read = 1; } @@ -62,7 +62,7 @@ $.extend(frappe.perm, { // if owner if(!$.isEmptyObject(perm[0].if_owner)) { - if(doc.owner===user) { + if(doc.owner === frappe.session.user) { $.extend(perm[0], perm[0].if_owner); } else { // not owner, remove permissions @@ -78,7 +78,7 @@ $.extend(frappe.perm, { if(docinfo && docinfo.shared) { for(var i=0; i icon - for(key in perm) { + for(var key in perm) { if(key!='parent' && key!='permlevel') { if(perm[key]) { perm[key] = ''; diff --git a/frappe/public/js/frappe/router.js b/frappe/public/js/frappe/router.js index 3f6ddba9b8..7a58076a60 100644 --- a/frappe/public/js/frappe/router.js +++ b/frappe/public/js/frappe/router.js @@ -120,7 +120,7 @@ frappe.set_route = function() { if(params.length===1 && $.isArray(params[0])) { params = params[0]; } - route = $.map(params, function(a) { + var route = $.map(params, function(a) { if($.isPlainObject(a)) { frappe.route_options = a; return null; diff --git a/frappe/public/js/frappe/socketio_client.js b/frappe/public/js/frappe/socketio_client.js index f3b028cca9..c8af253bed 100644 --- a/frappe/public/js/frappe/socketio_client.js +++ b/frappe/public/js/frappe/socketio_client.js @@ -18,7 +18,7 @@ frappe.socket = { //Enable secure option when using HTTPS if (window.location.protocol == "https:") { - frappe.socket.socket = io.connect(frappe.socket.get_host(), {secure: true}); + frappe.socket.socket = io.connect(frappe.socket.get_host(), {secure: true}); } else if (window.location.protocol == "http:") { frappe.socket.socket = io.connect(frappe.socket.get_host()); diff --git a/frappe/public/js/frappe/toolbar.js b/frappe/public/js/frappe/toolbar.js index 3e712c40c9..55f8dc2f2e 100755 --- a/frappe/public/js/frappe/toolbar.js +++ b/frappe/public/js/frappe/toolbar.js @@ -56,8 +56,8 @@ frappe.get_form_sidebar_extension = function() { var template = ''; + {{ usage.total }}MB ({{ usage.total_used_percent }}%) used\ + '; usage.sidebar_usage_html = frappe.render(template, { 'usage': usage }, "form_sidebar_usage"); } else { diff --git a/frappe/public/js/frappe/translate.js b/frappe/public/js/frappe/translate.js index 7a54bde034..bc9acd497f 100644 --- a/frappe/public/js/frappe/translate.js +++ b/frappe/public/js/frappe/translate.js @@ -8,7 +8,7 @@ frappe._ = function(txt, replace) { return txt; if(typeof(txt) != "string") return txt; - ret = frappe._messages[txt.replace(/\n/g, "")] || txt; + var ret = frappe._messages[txt.replace(/\n/g, "")] || txt; if(replace && typeof(replace) === "object") { ret = $.format(ret, replace); } diff --git a/frappe/public/js/frappe/ui/base_list.js b/frappe/public/js/frappe/ui/base_list.js index d28e040ecf..720144350b 100644 --- a/frappe/public/js/frappe/ui/base_list.js +++ b/frappe/public/js/frappe/ui/base_list.js @@ -173,7 +173,7 @@ frappe.ui.BaseList = Class.extend({ // default filter for submittable doctype if (frappe.model.is_submittable(this.doctype)) { this.filter_list.add_filter(this.doctype, "docstatus", "!=", 2); - }; + } }, clear: function () { diff --git a/frappe/public/js/frappe/ui/charts.js b/frappe/public/js/frappe/ui/charts.js index 776e35fdb3..64f6414b9f 100644 --- a/frappe/public/js/frappe/ui/charts.js +++ b/frappe/public/js/frappe/ui/charts.js @@ -28,11 +28,11 @@ frappe.ui.Chart = Class.extend({ render_chart: function() { var chart_dict = { bindto: '#' + this.opts.bind_to, - data: {}, + data: {}, axis: { - x: { - type: this.opts.x_type || 'category' // this needed to load string x value - }, + x: { + type: this.opts.x_type || 'category' // this needed to load string x value + }, y: { padding: { bottom: 10 } } @@ -62,11 +62,11 @@ frappe.ui.Chart = Class.extend({ chart_dict.axis.x.tick.culling = {max: 15}; chart_dict.axis.x.tick.format = frappe.boot.sysdefaults.date_format .replace('yyyy', '%Y').replace('mm', '%m').replace('dd', '%d'); - }; + } // set color if(!chart_dict.data.colors && chart_dict.data.columns) { - colors = ['#4E50A6', '#7679FB', '#A3A5FC', '#925191', '#5D3EA4', '#8D5FFA', + var colors = ['#4E50A6', '#7679FB', '#A3A5FC', '#925191', '#5D3EA4', '#8D5FFA', '#5E3AA8', '#7B933D', '#4F8EA8']; chart_dict.data.colors = {}; chart_dict.data.columns.forEach(function(d, i) { diff --git a/frappe/public/js/frappe/ui/field_group.js b/frappe/public/js/frappe/ui/field_group.js index e40b6d87f5..896dca5901 100644 --- a/frappe/public/js/frappe/ui/field_group.js +++ b/frappe/public/js/frappe/ui/field_group.js @@ -74,7 +74,7 @@ frappe.ui.FieldGroup = frappe.ui.form.Layout.extend({ } } if(errors.length && !ignore_errors) { - msgprint({ + frappe.msgprint({ title: __('Missing Values Required'), message: __('Following fields have missing values:') + '

  • ' + errors.join('
  • ') + '
', @@ -106,7 +106,7 @@ frappe.ui.FieldGroup = frappe.ui.form.Layout.extend({ } }, clear: function() { - for(key in this.fields_dict) { + for(var key in this.fields_dict) { var f = this.fields_dict[key]; if(f && f.set_input) { f.set_input(f.df['default'] || ''); diff --git a/frappe/public/js/frappe/ui/filters/filters.js b/frappe/public/js/frappe/ui/filters/filters.js index 263fdf89b6..03b62b6428 100644 --- a/frappe/public/js/frappe/ui/filters/filters.js +++ b/frappe/public/js/frappe/ui/filters/filters.js @@ -149,8 +149,8 @@ frappe.ui.FilterList = Class.extend({ } if(options.length>0) { - for (i in stat) { - for (o in options) { + for (var i in stat) { + for (var o in options) { if (stat[i][0] == options[o].value) { if (field.name=="docstatus") { labels[i] = options[o].label @@ -460,8 +460,7 @@ frappe.ui.Filter = Class.extend({ ? __("values separated by commas") : __("use % as wildcard"))+'
'); } else { - me.set_field(me.field.df.parent, me.field.df.fieldname, null, - condition); + me.set_field(me.field.df.parent, me.field.df.fieldname, null, condition); } }); @@ -512,7 +511,7 @@ frappe.ui.Filter = Class.extend({ var original_docfield = me.fieldselect.fields_by_name[doctype][fieldname]; if(!original_docfield) { - msgprint(__("Field {0} is not selectable.", [fieldname])); + frappe.msgprint(__("Field {0} is not selectable.", [fieldname])); return; } @@ -784,7 +783,7 @@ frappe.ui.FieldSelect = Class.extend({ // old style if(doctype.indexOf(".")!==-1) { - parts = doctype.split("."); + var parts = doctype.split("."); doctype = parts[0]; fieldname = parts[1]; } diff --git a/frappe/public/js/frappe/ui/like.js b/frappe/public/js/frappe/ui/like.js index 0ebd429a2d..0dbdac72ad 100644 --- a/frappe/public/js/frappe/ui/like.js +++ b/frappe/public/js/frappe/ui/like.js @@ -3,7 +3,7 @@ frappe.ui.is_liked = function(doc) { var liked = frappe.ui.get_liked_by(doc); - return liked.indexOf(user)===-1 ? false : true; + return liked.indexOf(frappe.session.user)===-1 ? false : true; } frappe.ui.get_liked_by = function(doc) { @@ -47,10 +47,10 @@ frappe.ui.toggle_like = function($btn, doctype, name, callback) { var doc = locals[doctype] && locals[doctype][name]; if(doc) { var liked_by = JSON.parse(doc._liked_by || "[]"), - idx = liked_by.indexOf(user); + idx = liked_by.indexOf(frappe.session.user); if(add==="Yes") { if(idx===-1) - liked_by.push(user); + liked_by.push(frappe.session.user); } else { if(idx!==-1) { liked_by = liked_by.slice(0,idx).concat(liked_by.slice(idx+1)) @@ -98,7 +98,7 @@ frappe.ui.setup_like_popover = function($parent, selector) { placement: "right", content: function() { var liked_by = JSON.parse($wrapper.attr('data-liked-by') || "[]"); - + var user = frappe.session.user; // hack if ($wrapper.find(".not-liked").length) { if (liked_by.indexOf(user)!==-1) { diff --git a/frappe/public/js/frappe/ui/listing.js b/frappe/public/js/frappe/ui/listing.js index 437b16829f..39ec149ca6 100644 --- a/frappe/public/js/frappe/ui/listing.js +++ b/frappe/public/js/frappe/ui/listing.js @@ -80,7 +80,7 @@ frappe.ui.Listing = Class.extend({ return this.page.add_menu_item(label, click, icon) } else { this.wrapper.find('.list-toolbar-wrapper').removeClass("hide"); - $button = $('') + var $button = $('') .appendTo(this.wrapper.find('.list-toolbar')) .html((icon ? (" ") : "") + label) .click(click); @@ -166,7 +166,7 @@ frappe.ui.Listing = Class.extend({ }); if(frappe.model.is_submittable(this.doctype)) { this.filter_list.add_filter(this.doctype, "docstatus", "!=", 2); - }; + } }, clear: function() { @@ -246,7 +246,7 @@ frappe.ui.Listing = Class.extend({ save_list_settings_locally: function(args) { if(this.opts.save_list_settings && this.doctype && !this.docname) { // save list settings locally - list_settings = frappe.model.list_settings[this.doctype]; + var list_settings = frappe.model.list_settings[this.doctype]; if(!list_settings) { return @@ -409,7 +409,7 @@ frappe.ui.Listing = Class.extend({ }, set_filter: function(fieldname, label, no_run, no_duplicate, parent) { var filter = this.filter_list.get_filter(fieldname); - doctype = parent && this.doctype != parent? parent: this.doctype + var doctype = parent && this.doctype != parent? parent: this.doctype if(filter) { var v = cstr(filter.field.get_parsed_value()); diff --git a/frappe/public/js/frappe/ui/messages.js b/frappe/public/js/frappe/ui/messages.js index 09b6d1112b..96de5544e9 100644 --- a/frappe/public/js/frappe/ui/messages.js +++ b/frappe/public/js/frappe/ui/messages.js @@ -18,7 +18,7 @@ frappe.throw = function(msg) { msg = {message: msg, title: __('Error')}; } if(!msg.indicator) msg.indicator = 'red'; - msgprint(msg); + frappe.msgprint(msg); throw new Error(msg.message); } @@ -260,6 +260,7 @@ frappe.show_alert = function(message, seconds=7) { $('
').appendTo('body'); } + var message_html; if(message.indicator) { message_html = $('').append(message.message); } else { @@ -286,5 +287,3 @@ frappe.show_alert = function(message, seconds=7) { return div; } -// for backward compatibility -var show_alert = frappe.show_alert; diff --git a/frappe/public/js/frappe/ui/toolbar/about.js b/frappe/public/js/frappe/ui/toolbar/about.js index c0c1dae138..3ef036ad5f 100644 --- a/frappe/public/js/frappe/ui/toolbar/about.js +++ b/frappe/public/js/frappe/ui/toolbar/about.js @@ -6,8 +6,8 @@ frappe.ui.misc.about = function() { $(d.body).html(repl("
\

"+__("Open Source Applications for the Web")+"

\

\ - Website: https://frappe.io

\ -

\ + Website: https://frappe.io

\ +

\ Source: https://github.com/frappe

\
\

Installed Apps

\ @@ -31,14 +31,14 @@ frappe.ui.misc.about = function() { var show_versions = function(versions) { var $wrap = $("#about-app-versions").empty(); - $.each(keys(versions).sort(), function(i, key) { + $.each(Object.keys(versions).sort(), function(i, key) { var v = versions[key]; if(v.branch) { var text = $.format('

{0}: v{1} ({2})

', - [v.title, v.branch_version || v.version, v.branch]) + [v.title, v.branch_version || v.version, v.branch]) } else { var text = $.format('

{0}: v{1}

', - [v.title, v.version]) + [v.title, v.version]) } $(text).appendTo($wrap); }); diff --git a/frappe/public/js/frappe/ui/toolbar/awesome_bar.js b/frappe/public/js/frappe/ui/toolbar/awesome_bar.js index ed9b7c27dd..e54833f846 100644 --- a/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +++ b/frappe/public/js/frappe/ui/toolbar/awesome_bar.js @@ -138,7 +138,7 @@ frappe.search.AwesomeBar = Class.extend({ '+__("Calculate")+''+ __("e.g. (55 + 434) / 4 or =Math.sin(Math.PI/2)...")+'\ ' - msgprint(txt, __("Search Help")); + frappe.msgprint(txt, __("Search Help")); } }); }, @@ -255,7 +255,7 @@ frappe.search.AwesomeBar = Class.extend({ index: 80, default: "Calculator", onclick: function() { - msgprint(formatted_value, "Result"); + frappe.msgprint(formatted_value, "Result"); } }); } catch(e) { diff --git a/frappe/public/js/frappe/ui/toolbar/notifications.js b/frappe/public/js/frappe/ui/toolbar/notifications.js index 5b5abc9b79..9198594d8e 100644 --- a/frappe/public/js/frappe/ui/toolbar/notifications.js +++ b/frappe/public/js/frappe/ui/toolbar/notifications.js @@ -2,9 +2,9 @@ frappe.provide("frappe.ui.notifications") frappe.ui.notifications.update_notifications = function() { frappe.ui.notifications.total = 0; - var doctypes = keys(frappe.boot.notification_info.open_count_doctype).sort(); - var modules = keys(frappe.boot.notification_info.open_count_module).sort(); - var other = keys(frappe.boot.notification_info.open_count_other).sort(); + var doctypes = Object.keys(frappe.boot.notification_info.open_count_doctype).sort(); + var modules = Object.keys(frappe.boot.notification_info.open_count_module).sort(); + var other = Object.keys(frappe.boot.notification_info.open_count_other).sort(); // clear toolbar / sidebar notifications frappe.ui.notifications.dropdown_notification = $("#dropdown-notification").empty(); diff --git a/frappe/public/js/frappe/ui/toolbar/search.js b/frappe/public/js/frappe/ui/toolbar/search.js index e2c0e67430..dec4f38795 100644 --- a/frappe/public/js/frappe/ui/toolbar/search.js +++ b/frappe/public/js/frappe/ui/toolbar/search.js @@ -57,7 +57,7 @@ frappe.search.SearchDialog = Class.extend({ clearTimeout($this.data('timeout')); $this.data('timeout', setTimeout(function() { if(me.$input.val() === me.current_keyword) return; - keywords = me.$input.val(); + var keywords = me.$input.val(); if(keywords.length > 1) { me.get_results(keywords); } else { @@ -102,12 +102,12 @@ frappe.search.SearchDialog = Class.extend({ frappe.search.utils.get_global_results(me.current_keyword, current_count, me.more_count, type) .then(function(doctype_results) { - me.add_more_results(doctype_results); + me.add_more_results(doctype_results); }, function (err) { console.error(err); }); } else { - results = me.nav_lists[type].slice(0, me.more_count); + var results = me.nav_lists[type].slice(0, me.more_count); me.nav_lists[type].splice(0, me.more_count); me.add_more_results([{title: type, results: results}]); } @@ -133,6 +133,7 @@ frappe.search.SearchDialog = Class.extend({ if(me.$modal_body.find('.list-link').length > 1) { if(me.modal_state === 0) { // DOWN and UP keys navigate sidebar + var { UP_ARROW, DOWN_ARROW, TAB } = frappe.ui.keyCode; if(e.which === DOWN_ARROW || e.which === TAB) { e.preventDefault(); var $link = me.$modal_body.find('.list-link.select').next(); @@ -247,7 +248,7 @@ frappe.search.SearchDialog = Class.extend({ are_expansive = true; break; } - }; + } if(results[0].image) margin_more = "20px"; var [section_length, col_width] = are_expansive ? [3, "12"] : [4, "6"]; diff --git a/frappe/public/js/frappe/ui/toolbar/search_utils.js b/frappe/public/js/frappe/ui/toolbar/search_utils.js index 2148a88ed9..91d7edb633 100644 --- a/frappe/public/js/frappe/ui/toolbar/search_utils.js +++ b/frappe/public/js/frappe/ui/toolbar/search_utils.js @@ -5,27 +5,27 @@ frappe.search.utils = { this.recent = JSON.parse(frappe.boot.user.recent || "[]") || []; }, - get_recent_pages: function(keywords) { - var me = this; - values = [], options = []; - function find(list, keywords, process) { - list.forEach(function(item, i) { - _item = ($.isArray(item)) ? item[0] : item; - _item = __(_item || '').toLowerCase().replace(/-/g, " "); + get_recent_pages: function(keywords) { + var me = this, values = [], options = []; - if(keywords===_item || _item.indexOf(keywords) !== -1) { - var option = process(item); + function find(list, keywords, process) { + list.forEach(function(item, i) { + var _item = ($.isArray(item)) ? item[0] : item; + _item = __(_item || '').toLowerCase().replace(/-/g, " "); - if(option) { - if($.isPlainObject(option)) { - option = [option]; - } - option.forEach(function(o) { o.match = item; }); - options = option.concat(options); - } - } - }); - } + if(keywords===_item || _item.indexOf(keywords) !== -1) { + var option = process(item); + + if(option) { + if($.isPlainObject(option)) { + option = [option]; + } + option.forEach(function(o) { o.match = item; }); + options = option.concat(options); + } + } + }); + } me.recent.forEach(function(doctype, i) { values.push([doctype[1], ['Form', doctype[0], doctype[1]]]); @@ -48,7 +48,7 @@ frappe.search.utils = { }); find(values, keywords, function(match) { - out = { + var out = { route: match[1] } if(match[1][0]==='Form') { @@ -73,35 +73,35 @@ frappe.search.utils = { return out; }); - return options; + return options; }, - get_search_in_list: function(keywords) { - var me = this; + get_search_in_list: function(keywords) { + var me = this; var out = []; if(in_list(keywords.split(" "), "in") && (keywords.slice(-2) !== "in")) { - parts = keywords.split(" in "); + var parts = keywords.split(" in "); frappe.boot.user.can_read.forEach(function (item) { if(frappe.boot.user.can_search.includes(item)) { - var level = me.fuzzy_search(parts[1], item); - if(level) { - out.push({ - type: "In List", - label: __('Find {0} in {1}', [__(parts[0]), me.bolden_match_part(__(item), parts[1])]), - value: __('Find {0} in {1}', [__(parts[0]), __(item)]), - route_options: {"name": ["like", "%" + parts[0] + "%"]}, - index: 1 + level, - route: ["List", item] - }); - } - } + var level = me.fuzzy_search(parts[1], item); + if(level) { + out.push({ + type: "In List", + label: __('Find {0} in {1}', [__(parts[0]), me.bolden_match_part(__(item), parts[1])]), + value: __('Find {0} in {1}', [__(parts[0]), __(item)]), + route_options: {"name": ["like", "%" + parts[0] + "%"]}, + index: 1 + level, + route: ["List", item] + }); + } + } }); } return out; - }, + }, - get_creatables: function(keywords) { - var me = this; + get_creatables: function(keywords) { + var me = this; var out = []; if(keywords.split(" ")[0]==="new") { frappe.boot.user.can_create.forEach(function (item) { @@ -119,10 +119,10 @@ frappe.search.utils = { }); } return out; - }, + }, - get_doctypes: function(keywords) { - var me = this; + get_doctypes: function(keywords) { + var me = this; var out = []; var level, target; @@ -137,48 +137,48 @@ frappe.search.utils = { } }; frappe.boot.user.can_read.forEach(function(item) { - level = me.fuzzy_search(keywords, item); - if(level) { - target = item; - if(in_list(frappe.boot.single_types, item)) { - out.push(option("", ["Form", item, item], 0.05)); + level = me.fuzzy_search(keywords, item); + if(level) { + target = item; + if(in_list(frappe.boot.single_types, item)) { + out.push(option("", ["Form", item, item], 0.05)); - } else if(frappe.boot.user.can_search.includes(item)) { - // include 'making new' option - if(in_list(frappe.boot.user.can_create, item)) { - var match = item; - out.push({ - type: "New", - label: __("New {0}", [me.bolden_match_part(__(item), keywords)]), - value: __("New {0}", [__(item)]), - index: level + 0.01, - match: item, - onclick: function() { frappe.new_doc(match, true); } - }); - } - if(in_list(frappe.boot.treeviews, item)) { - out.push(option("Tree", ["Tree", item], 0.05)); + } else if(frappe.boot.user.can_search.includes(item)) { + // include 'making new' option + if(in_list(frappe.boot.user.can_create, item)) { + var match = item; + out.push({ + type: "New", + label: __("New {0}", [me.bolden_match_part(__(item), keywords)]), + value: __("New {0}", [__(item)]), + index: level + 0.01, + match: item, + onclick: function() { frappe.new_doc(match, true); } + }); + } + if(in_list(frappe.boot.treeviews, item)) { + out.push(option("Tree", ["Tree", item], 0.05)); - } else { - out.push(option("List", ["List", item], 0.05)); - if(frappe.model.can_get_report(item)) { - out.push(option("Report", ["Report", item], 0.04)); - } - if(frappe.boot.calendars.indexOf(item) !== -1) { - out.push(option("Calendar", ["List", item, "Calendar"], 0.03)); - out.push(option("Gantt", ["List", item, "Gantt"], 0.02)); - } - } - } - } + } else { + out.push(option("List", ["List", item], 0.05)); + if(frappe.model.can_get_report(item)) { + out.push(option("Report", ["Report", item], 0.04)); + } + if(frappe.boot.calendars.indexOf(item) !== -1) { + out.push(option("Calendar", ["List", item, "Calendar"], 0.03)); + out.push(option("Gantt", ["List", item, "Gantt"], 0.02)); + } + } + } + } }); return out; - }, + }, - get_reports: function(keywords) { - var me = this; + get_reports: function(keywords) { + var me = this; var out = []; - var route; + var route; Object.keys(frappe.boot.user.all_reports).forEach(function(item) { var level = me.fuzzy_search(keywords, item); if(level > 0) { @@ -188,7 +188,7 @@ frappe.search.utils = { else route = ["query-report", item]; out.push({ - type: "Report", + type: "Report", label: __("Report {0}" , [me.bolden_match_part(__(item), keywords)]), value: __("Report {0}" , [__(item)]), index: level, @@ -197,10 +197,10 @@ frappe.search.utils = { } }); return out; - }, + }, - get_pages: function(keywords) { - var me = this; + get_pages: function(keywords) { + var me = this; var out = []; this.pages = {}; $.each(frappe.boot.page_info, function(name, p) { @@ -221,8 +221,8 @@ frappe.search.utils = { }); } }); - var target = 'Calendar'; - if(__('calendar').indexOf(keywords.toLowerCase()) === 0) { + var target = 'Calendar'; + if(__('calendar').indexOf(keywords.toLowerCase()) === 0) { out.push({ type: "Calendar", value: __("Open {0}", [__(target)]), @@ -231,7 +231,7 @@ frappe.search.utils = { route: ['List', 'Event', target], }); } - if(__('email inbox').indexOf(keywords.toLowerCase()) === 0) { + if(__('email inbox').indexOf(keywords.toLowerCase()) === 0) { out.push({ type: "Inbox", value: __("Open {0}", [__('Email Inbox')]), @@ -241,17 +241,17 @@ frappe.search.utils = { }); } return out; - }, + }, - get_modules: function(keywords) { - var me = this; + get_modules: function(keywords) { + var me = this; var out = []; Object.keys(frappe.modules).forEach(function(item) { var level = me.fuzzy_search(keywords, item); if(level > 0) { var module = frappe.modules[item]; if(module._doctype) return; - ret = { + var ret = { type: "Module", label: __("Open {0}", [me.bolden_match_part(__(item), keywords)]), value: __("Open {0}", [__(item)]), @@ -266,196 +266,196 @@ frappe.search.utils = { } }); return out; - }, + }, - get_global_results: function (keywords, start, limit, doctype = "") { - var me = this; - function get_results_sets(data) { - var results_sets = [], result, set; - function get_existing_set (doctype) { - return results_sets.find(function(set) { - return set.title === doctype; - }); - } + get_global_results: function (keywords, start, limit, doctype = "") { + var me = this; + function get_results_sets(data) { + var results_sets = [], result, set; + function get_existing_set (doctype) { + return results_sets.find(function(set) { + return set.title === doctype; + }); + } - function make_description(content, doc_name) { - var parts = content.split(" ||| "); - var result_max_length = 300; - var field_length = 120; - var fields = []; - var result_current_length = 0; - var field_text = ""; - for(var i = 0; i < parts.length; i++) { - part = parts[i]; - if(part.toLowerCase().indexOf(keywords) !== -1) { - // If the field contains the keyword - if(part.indexOf(' &&& ') !== -1) { - var colon_index = part.indexOf(' &&& '); - var field_value = part.slice(colon_index + 5); - } else { - var colon_index = part.indexOf(' : '); - var field_value = part.slice(colon_index + 3); - } - if(field_value.length > field_length) { - // If field value exceeds field_length, find the keyword in it - // and trim field value by half the field_length at both sides - // ellipsify if necessary - var field_data = ""; - var index = field_value.indexOf(keywords); - field_data += index < field_length/2 ? field_value.slice(0, index) - : '...' + field_value.slice(index - field_length/2, index) - field_data += field_value.slice(index, index + field_length/2); - field_data += index + field_length/2 < field_value.length ? "..." : ""; - field_value = field_data; - } - var field_name = part.slice(0, colon_index); + function make_description(content, doc_name) { + var parts = content.split(" ||| "); + var result_max_length = 300; + var field_length = 120; + var fields = []; + var result_current_length = 0; + var field_text = ""; + for(var i = 0; i < parts.length; i++) { + var part = parts[i]; + if(part.toLowerCase().indexOf(keywords) !== -1) { + // If the field contains the keyword + if(part.indexOf(' &&& ') !== -1) { + var colon_index = part.indexOf(' &&& '); + var field_value = part.slice(colon_index + 5); + } else { + var colon_index = part.indexOf(' : '); + var field_value = part.slice(colon_index + 3); + } + if(field_value.length > field_length) { + // If field value exceeds field_length, find the keyword in it + // and trim field value by half the field_length at both sides + // ellipsify if necessary + var field_data = ""; + var index = field_value.indexOf(keywords); + field_data += index < field_length/2 ? field_value.slice(0, index) + : '...' + field_value.slice(index - field_length/2, index) + field_data += field_value.slice(index, index + field_length/2); + field_data += index + field_length/2 < field_value.length ? "..." : ""; + field_value = field_data; + } + var field_name = part.slice(0, colon_index); - // Find remaining result_length and add field length to result_current_length - var remaining_length = result_max_length - result_current_length; - result_current_length += field_name.length + field_value.length + 2; - if(result_current_length < result_max_length) { - // We have room, push the entire field - field_text = '' + - me.bolden_match_part(field_name, keywords) + ': ' + - me.bolden_match_part(field_value, keywords); - if(fields.indexOf(field_text) === -1 && doc_name !== field_value) { - fields.push(field_text); - } - } else { - // Not enough room - if(field_name.length < remaining_length){ - // Ellipsify (trim at word end) and push - remaining_length -= field_name.length; - field_text = '' + - me.bolden_match_part(field_name, keywords) + ': '; - field_value = field_value.slice(0, remaining_length); - field_value = field_value.slice(0, field_value.lastIndexOf(' ')) + ' ...'; - field_text += me.bolden_match_part(field_value, keywords); - fields.push(field_text); - } else { - // No room for even the field name, skip - fields.push('...'); - } - break; - } - } - } - return fields.join(', '); - } + // Find remaining result_length and add field length to result_current_length + var remaining_length = result_max_length - result_current_length; + result_current_length += field_name.length + field_value.length + 2; + if(result_current_length < result_max_length) { + // We have room, push the entire field + field_text = '' + + me.bolden_match_part(field_name, keywords) + ': ' + + me.bolden_match_part(field_value, keywords); + if(fields.indexOf(field_text) === -1 && doc_name !== field_value) { + fields.push(field_text); + } + } else { + // Not enough room + if(field_name.length < remaining_length){ + // Ellipsify (trim at word end) and push + remaining_length -= field_name.length; + field_text = '' + + me.bolden_match_part(field_name, keywords) + ': '; + field_value = field_value.slice(0, remaining_length); + field_value = field_value.slice(0, field_value.lastIndexOf(' ')) + ' ...'; + field_text += me.bolden_match_part(field_value, keywords); + fields.push(field_text); + } else { + // No room for even the field name, skip + fields.push('...'); + } + break; + } + } + } + return fields.join(', '); + } - data.forEach(function(d) { - // more properties - result = { - label: d.name, - value: d.name, - description: make_description(d.content, d.name), - route: ['Form', d.doctype, d.name], - } - if(d.image || d.image === null){ - result.image = d.image; - } - set = get_existing_set(d.doctype); - if(set) { - set.results.push(result); - } else { - set = { - title: d.doctype, - results: [result], - fetch_type: "Global" - } - results_sets.push(set); - } + data.forEach(function(d) { + // more properties + result = { + label: d.name, + value: d.name, + description: make_description(d.content, d.name), + route: ['Form', d.doctype, d.name], + } + if(d.image || d.image === null){ + result.image = d.image; + } + set = get_existing_set(d.doctype); + if(set) { + set.results.push(result); + } else { + set = { + title: d.doctype, + results: [result], + fetch_type: "Global" + } + results_sets.push(set); + } - }); - return results_sets; - } - return new Promise(function(resolve, reject) { - frappe.call({ - method: "frappe.utils.global_search.search", - args: { - text: keywords, - start: start, - limit: limit, - doctype: doctype - }, - callback: function(r) { - if(r.message) { - resolve(get_results_sets(r.message)); - } else { - resolve([]); - } - } - }); - }); - }, + }); + return results_sets; + } + return new Promise(function(resolve, reject) { + frappe.call({ + method: "frappe.utils.global_search.search", + args: { + text: keywords, + start: start, + limit: limit, + doctype: doctype + }, + callback: function(r) { + if(r.message) { + resolve(get_results_sets(r.message)); + } else { + resolve([]); + } + } + }); + }); + }, - get_help_results: function(keywords) { - function get_results_set(data) { - var result; - var set = { - title: "Help", - fetch_type: "Help", - results: [] - } - data.forEach(function(d) { - // more properties - result = { - label: d[0], - value: d[0], - description: d[1], - data_path: d[2], - onclick: function() { + get_help_results: function(keywords) { + function get_results_set(data) { + var result; + var set = { + title: "Help", + fetch_type: "Help", + results: [] + } + data.forEach(function(d) { + // more properties + result = { + label: d[0], + value: d[0], + description: d[1], + data_path: d[2], + onclick: function() { - } - } - set.results.push(result); - }); - return [set]; - } - return new Promise(function(resolve, reject) { - frappe.call({ - method: "frappe.utils.help.get_help", - args: { - text: keywords - }, - callback: function(r) { - if(r.message) { - resolve(get_results_set(r.message)); - } else { - resolve([]); - } - } - }); - }); - }, + } + } + set.results.push(result); + }); + return [set]; + } + return new Promise(function(resolve, reject) { + frappe.call({ + method: "frappe.utils.help.get_help", + args: { + text: keywords + }, + callback: function(r) { + if(r.message) { + resolve(get_results_set(r.message)); + } else { + resolve([]); + } + } + }); + }); + }, - get_nav_results: function(keywords) { - function sort_uniques(array) { - var routes = [], out = []; - array.forEach(function(d) { - if(d.route) { - if(d.route[0] === "List" && d.route[2]) { - d.route.splice(2); - } - var str_route = d.route.join('/'); - if(routes.indexOf(str_route) === -1) { - routes.push(str_route); - out.push(d); - } else { - var old = routes.indexOf(str_route); - if(out[old].index > d.index) { - out[old] = d; - } - } - } else { - out.push(d); - } - }); - return out.sort(function(a, b) { - return b.index - a.index; - }); - } - var lists = [], setup = []; + get_nav_results: function(keywords) { + function sort_uniques(array) { + var routes = [], out = []; + array.forEach(function(d) { + if(d.route) { + if(d.route[0] === "List" && d.route[2]) { + d.route.splice(2); + } + var str_route = d.route.join('/'); + if(routes.indexOf(str_route) === -1) { + routes.push(str_route); + out.push(d); + } else { + var old = routes.indexOf(str_route); + if(out[old].index > d.index) { + out[old] = d; + } + } + } else { + out.push(d); + } + }); + return out.sort(function(a, b) { + return b.index - a.index; + }); + } + var lists = [], setup = []; var all_doctypes = sort_uniques(this.get_doctypes(keywords)); all_doctypes.forEach(function(d) { if(d.type === "") { @@ -464,37 +464,37 @@ frappe.search.utils = { lists.push(d); } }); - var in_keyword = keywords.split(" in ")[0]; + var in_keyword = keywords.split(" in ")[0]; return [ - {title: "Recents", fetch_type: "Nav", results: sort_uniques(this.get_recent_pages(keywords))}, - {title: "Create a new ...", fetch_type: "Nav", results: sort_uniques(this.get_creatables(keywords))}, - {title: "Find '" + in_keyword + "' in ... ", fetch_type: "Nav", results: sort_uniques(this.get_search_in_list(keywords))}, - {title: "Lists", fetch_type: "Nav", results: lists}, + {title: "Recents", fetch_type: "Nav", results: sort_uniques(this.get_recent_pages(keywords))}, + {title: "Create a new ...", fetch_type: "Nav", results: sort_uniques(this.get_creatables(keywords))}, + {title: "Find '" + in_keyword + "' in ... ", fetch_type: "Nav", results: sort_uniques(this.get_search_in_list(keywords))}, + {title: "Lists", fetch_type: "Nav", results: lists}, {title: "Reports", fetch_type: "Nav", results: sort_uniques(this.get_reports(keywords))}, - {title: "Administration", fetch_type: "Nav", results: sort_uniques(this.get_pages(keywords))}, + {title: "Administration", fetch_type: "Nav", results: sort_uniques(this.get_pages(keywords))}, {title: "Modules", fetch_type: "Nav", results: sort_uniques(this.get_modules(keywords))}, - {title: "Setup", fetch_type: "Nav", results: setup}, - ] - }, + {title: "Setup", fetch_type: "Nav", results: setup}, + ] + }, - fuzzy_search: function(keywords, _item) { - // Returns 10 for case-perfect contain, 0 for not found - // 9 for perfect contain, - // 0 - 6 for fuzzy contain + fuzzy_search: function(keywords, _item) { + // Returns 10 for case-perfect contain, 0 for not found + // 9 for perfect contain, + // 0 - 6 for fuzzy contain - // **Specific use-case step** - item = __(_item || '').replace(/-/g, " "); + // **Specific use-case step** + var item = __(_item || '').replace(/-/g, " "); var ilen = item.length; var klen = keywords.length; - var length_ratio = klen/ilen; - var max_skips = 3, max_mismatch_len = 2; + var length_ratio = klen/ilen; + var max_skips = 3, max_mismatch_len = 2; if (klen > ilen) { return 0; } - if(keywords === item || item.toLowerCase().indexOf(keywords) === 0) { - return 10 + length_ratio; - } + if(keywords === item || item.toLowerCase().indexOf(keywords) === 0) { + return 10 + length_ratio; + } if (item.indexOf(keywords) !== -1 && keywords !== keywords.toLowerCase()) { return 9 + length_ratio; @@ -507,11 +507,11 @@ frappe.search.utils = { return 8 + length_ratio; } - var skips = 0, mismatches = 0; + var skips = 0, mismatches = 0; outer: for (var i = 0, j = 0; i < klen; i++) { if(mismatches !== 0) skips++; if(skips > max_skips) return 0; - var k_ch = keywords.charCodeAt(i); + var k_ch = keywords.charCodeAt(i); mismatches = 0; while (j < ilen) { if (item.charCodeAt(j++) === k_ch) { @@ -522,49 +522,92 @@ frappe.search.utils = { return 0; } - // Since indexOf didn't pass, there will be atleast 1 skip - // hence no divide by zero, but just to be safe - if((skips + mismatches) > 0) { - return (5 + length_ratio)/(skips + mismatches); - } else { - return 0; - } + // Since indexOf didn't pass, there will be atleast 1 skip + // hence no divide by zero, but just to be safe + if((skips + mismatches) > 0) { + return (5 + length_ratio)/(skips + mismatches); + } else { + return 0; + } }, - bolden_match_part: function(str, subseq) { + bolden_match_part: function(str, subseq) { var rendered = ""; - if(this.fuzzy_search(subseq, str) === 0) { - return str; - } else if(this.fuzzy_search(subseq, str) > 6) { - var regEx = new RegExp("("+ subseq +")", "ig"); - return str.replace(regEx, '$1'); - } else { - var str_orig = str; - var str = str.toLowerCase(); - var str_len = str.length; - var subseq = subseq.toLowerCase(); +<<<<<<< HEAD + if(this.fuzzy_search(subseq, str) === 0) { + return str; + } else if(this.fuzzy_search(subseq, str) > 6) { + var regEx = new RegExp("("+ subseq +")", "ig"); + return str.replace(regEx, '$1'); + } else { + var str_orig = str; + var str = str.toLowerCase(); + var str_len = str.length; + var subseq = subseq.toLowerCase(); - outer: for(var i = 0, j = 0; i < subseq.length; i++) { - var sub_ch = subseq.charCodeAt(i); - while(j < str_len) { - if(str.charCodeAt(j) === sub_ch) { - var str_char = str_orig.charAt(j); - if(str_char === str_char.toLowerCase()) { - rendered += '' + subseq.charAt(i) + ''; - } else { - rendered += '' + subseq.charAt(i).toUpperCase() + ''; - } - j++; - continue outer; - } - rendered += str_orig.charAt(j); - j++; - } - return str_orig; - } - rendered += str_orig.slice(j); - return rendered; - } + outer: for(var i = 0, j = 0; i < subseq.length; i++) { + var sub_ch = subseq.charCodeAt(i); + while(j < str_len) { + if(str.charCodeAt(j) === sub_ch) { + var str_char = str_orig.charAt(j); + if(str_char === str_char.toLowerCase()) { + rendered += '' + subseq.charAt(i) + ''; + } else { + rendered += '' + subseq.charAt(i).toUpperCase() + ''; + } + j++; + continue outer; + } + rendered += str_orig.charAt(j); + j++; + } + return str_orig; + } + rendered += str_orig.slice(j); + return rendered; + } - }, + }, } +======= + if(this.fuzzy_search(subseq, str) === 0) { + return str; + } else if(this.fuzzy_search(subseq, str) > 6) { + var regEx = new RegExp("("+ subseq +")", "ig"); + return str.replace(regEx, '$1'); + } else { + var str_orig = str; + var str = str.toLowerCase(); + var str_len = str.length; + var subseq = subseq.toLowerCase(); + + outer: for(var i = 0, j = 0; i < subseq.length; i++) { + var sub_ch = subseq.charCodeAt(i); + while(j < str_len) { + if(str.charCodeAt(j) === sub_ch) { + var str_char = str_orig.charAt(j); + if(str_char === str_char.toLowerCase()) { + rendered += '' + subseq.charAt(i) + ''; + } else { + rendered += '' + subseq.charAt(i).toUpperCase() + ''; + } + j++; + continue outer; + } + rendered += str_orig.charAt(j); + j++; + } + return str_orig; + } + rendered += str_orig.slice(j); + return rendered; + } + + }, + + unscrub_and_titlecase: function(str) { + return __(str || '').replace(/-|_/g, " ").replace(/\w*/g, + function(keywords){return keywords.charAt(0).toUpperCase() + keywords.substr(1).toLowerCase();}); + }, +} +>>>>>>> Remove all implicit global variables diff --git a/frappe/public/js/frappe/ui/toolbar/toolbar.js b/frappe/public/js/frappe/ui/toolbar/toolbar.js index 70ef6b71af..24fe005afb 100644 --- a/frappe/public/js/frappe/ui/toolbar/toolbar.js +++ b/frappe/public/js/frappe/ui/toolbar/toolbar.js @@ -162,7 +162,7 @@ frappe.ui.toolbar.Toolbar = Class.extend({ function show_results(e) { //edit links - href = e.target.href; + var href = e.target.href; if(href.indexOf('blob') > 0) { window.open(href, '_blank'); } @@ -220,7 +220,7 @@ frappe.ui.toolbar.clear_cache = function() { frappe.assets.clear_local_storage(); $c('frappe.sessions.clear',{},function(r,rt){ if(!r.exc) { - show_alert(r.message); + frappe.show_alert(r.message); location.reload(true); } }); @@ -228,7 +228,7 @@ frappe.ui.toolbar.clear_cache = function() { } frappe.ui.toolbar.download_backup = function() { - msgprint(__("Your download is being built, this may take a few moments...")); + frappe.msgprint(__("Your download is being built, this may take a few moments...")); $c('frappe.utils.backups.get_backup',{},function(r,rt) {}); return false; } diff --git a/frappe/public/js/frappe/ui/tree.js b/frappe/public/js/frappe/ui/tree.js index 0e6455606a..33e57ae3d9 100644 --- a/frappe/public/js/frappe/ui/tree.js +++ b/frappe/public/js/frappe/ui/tree.js @@ -231,7 +231,7 @@ frappe.ui.TreeNode = Class.extend({ }, load: function(callback) { var node = this; - args = $.extend(this.tree.args || {}, { + var args = $.extend(this.tree.args || {}, { parent: this.data.value }); diff --git a/frappe/public/js/frappe/upload.js b/frappe/public/js/frappe/upload.js index b80b3b21d5..0b48896864 100644 --- a/frappe/public/js/frappe/upload.js +++ b/frappe/public/js/frappe/upload.js @@ -219,7 +219,7 @@ frappe.upload = { if(opts.on_no_attach) { opts.on_no_attach(); } else { - msgprint(__("Please attach a file or set a URL")); + frappe.msgprint(__("Please attach a file or set a URL")); } return; } @@ -267,21 +267,21 @@ frappe.upload = { args.filename = fileobj.name.split(' ').join('_'); if(opts.options && opts.options.toLowerCase()=="image") { if(!frappe.utils.is_image_file(args.filename)) { - msgprint(__("Only image extensions (.gif, .jpg, .jpeg, .tiff, .png, .svg) allowed")); + frappe.msgprint(__("Only image extensions (.gif, .jpg, .jpeg, .tiff, .png, .svg) allowed")); return; } } if((opts.max_width || opts.max_height) && frappe.utils.is_image_file(args.filename)) { frappe.utils.resize_image(freader, function(_dataurl) { - dataurl = _dataurl; + var dataurl = _dataurl; args.filedata = _dataurl.split(",")[1]; args.file_size = Math.round(args.filedata.length * 3 / 4); console.log("resized!") frappe.upload._upload_file(fileobj, args, opts, dataurl); }) } else { - dataurl = freader.result; + var dataurl = freader.result; args.filedata = freader.result.split(",")[1]; args.file_size = fileobj.size; frappe.upload._upload_file(fileobj, args, opts, dataurl); @@ -292,11 +292,11 @@ frappe.upload = { }, upload_to_server: function(fileobj, args, opts, dataurl) { - // var msgbox = msgprint(__("Uploading...")); + // var msgbox = frappe.msgprint(__("Uploading...")); if(opts.start) { opts.start(); } - ajax_args = { + var ajax_args = { "method": "uploadfile", args: args, callback: function(r) { diff --git a/frappe/public/js/frappe/views/calendar/calendar.js b/frappe/public/js/frappe/views/calendar/calendar.js index 6c5fdff43d..3401999774 100644 --- a/frappe/public/js/frappe/views/calendar/calendar.js +++ b/frappe/public/js/frappe/views/calendar/calendar.js @@ -264,7 +264,7 @@ frappe.views.Calendar = Class.extend({ args: me.get_update_args(event), callback: function(r) { if(r.exc) { - show_alert(__("Unable to update event")); + frappe.show_alert(__("Unable to update event")); revertFunc(); } }, @@ -346,7 +346,7 @@ frappe.views.Calendar = Class.extend({ $.each(frappe.route_options, function(k, value) { if(me.page.fields_dict[k]) { me.page.fields_dict[k].set_input(value); - }; + } }) frappe.route_options = null; me.refresh(); diff --git a/frappe/public/js/frappe/views/communication.js b/frappe/public/js/frappe/views/communication.js index 6f00823481..d6082fba94 100755 --- a/frappe/public/js/frappe/views/communication.js +++ b/frappe/public/js/frappe/views/communication.js @@ -85,8 +85,8 @@ frappe.views.CommunicationComposer = Class.extend({ ]; // add from if user has access to multiple email accounts - email_accounts = frappe.boot.email_accounts.filter(function(account, idx){ - return !inList(["All Accounts", "Sent", "Spam", "Trash"], account.email_account) && + var email_accounts = frappe.boot.email_accounts.filter(function(account, idx){ + return !in_list(["All Accounts", "Sent", "Spam", "Trash"], account.email_account) && account.enable_outgoing }) if(frappe.boot.email_accounts && email_accounts.length > 1) { @@ -168,7 +168,7 @@ frappe.views.CommunicationComposer = Class.extend({ var content = content_field.get_value() || ""; var subject = subject_field.get_value() || ""; - parts = content.split(''); + var parts = content.split(''); if(parts.length===2) { content = [reply.message, "
", parts[1]]; @@ -318,8 +318,8 @@ frappe.views.CommunicationComposer = Class.extend({ if(me.frm) { args = { args: (me.frm.attachments.get_args - ? me.frm.attachments.get_args() - : { from_form: 1,folder:"Home/Attachments" }), + ? me.frm.attachments.get_args() + : { from_form: 1,folder:"Home/Attachments" }), callback: function (attachment, r) { me.frm.attachments.attachment_uploaded(attachment, r) }, @@ -442,10 +442,10 @@ frappe.views.CommunicationComposer = Class.extend({ send_email: function(btn, form_values, selected_attachments, print_html, print_format) { var me = this; - if((form_values.send_email || form_values.communication_medium === "Email") && !form_values.recipients){ - msgprint(__("Enter Email Recipient(s)")); - return; - } + if((form_values.send_email || form_values.communication_medium === "Email") && !form_values.recipients) { + frappe.msgprint(__("Enter Email Recipient(s)")); + return; + } if(!form_values.attach_document_print) { print_html = null; @@ -454,13 +454,13 @@ frappe.views.CommunicationComposer = Class.extend({ if(form_values.send_email) { if(cur_frm && !frappe.model.can_email(me.doc.doctype, cur_frm)) { - msgprint(__("You are not allowed to send emails related to this document")); + frappe.msgprint(__("You are not allowed to send emails related to this document")); return; } form_values.communication_medium = "Email"; form_values.sent_or_received = "Sent"; - }; + } return frappe.call({ method:"frappe.core.doctype.communication.email.make", @@ -489,7 +489,7 @@ frappe.views.CommunicationComposer = Class.extend({ frappe.utils.play_sound("email"); if(form_values.send_email && r.message["emails_not_sent_to"]) { - msgprint( __("Email not sent to {0} (unsubscribed / disabled)", + frappe.msgprint(__("Email not sent to {0} (unsubscribed / disabled)", [ frappe.utils.escape_html(r.message["emails_not_sent_to"]) ]) ); } @@ -504,7 +504,7 @@ frappe.views.CommunicationComposer = Class.extend({ cur_frm.reload_doc(); } } else { - msgprint(__("There were errors while sending email. Please try again.")); + frappe.msgprint(__("There were errors while sending email. Please try again.")); } } }); @@ -554,7 +554,7 @@ frappe.views.CommunicationComposer = Class.extend({ setup_awesomplete: function() { var me = this; [this.dialog.fields_dict.recipients.input, - this.dialog.fields_dict.cc.input] + this.dialog.fields_dict.cc.input] .map(function(input) { me.setup_awesomplete_for_input(input); }); diff --git a/frappe/public/js/frappe/views/gantt/gantt_view.js b/frappe/public/js/frappe/views/gantt/gantt_view.js index 704a5a26a2..b83acd241f 100644 --- a/frappe/public/js/frappe/views/gantt/gantt_view.js +++ b/frappe/public/js/frappe/views/gantt/gantt_view.js @@ -181,7 +181,7 @@ frappe.views.GanttView = frappe.views.ListRenderer.extend({ }, callback: function() { me.gantt.updating_task = false; - show_alert({message:__("Saved"), indicator: 'green'}, 1); + frappe.show_alert({message:__("Saved"), indicator: 'green'}, 1); } }); }, @@ -198,7 +198,7 @@ frappe.views.GanttView = frappe.views.ListRenderer.extend({ } else { // reset gantt state this.gantt.change_view_mode(this.gantt_view_mode); - show_alert({message: __("Not permitted"), indicator: 'red'}, 1); + frappe.show_alert({message: __("Not permitted"), indicator: 'red'}, 1); return false; } }, diff --git a/frappe/public/js/frappe/views/image/image_view.js b/frappe/public/js/frappe/views/image/image_view.js index b35fd04456..9113ff146f 100644 --- a/frappe/public/js/frappe/views/image/image_view.js +++ b/frappe/public/js/frappe/views/image/image_view.js @@ -169,7 +169,7 @@ frappe.views.GalleryView = Class.extend({ freeze_message: "Fetching Images.." }).then(function(r) { if (!r.message) { - msgprint("No Images found") + frappe.msgprint("No Images found") } else { // filter image files from other var images = r.message.filter(function(image) { diff --git a/frappe/public/js/frappe/views/inbox/inbox_view.js b/frappe/public/js/frappe/views/inbox/inbox_view.js index 15a8af013f..25cbcfafb2 100644 --- a/frappe/public/js/frappe/views/inbox/inbox_view.js +++ b/frappe/public/js/frappe/views/inbox/inbox_view.js @@ -20,7 +20,7 @@ frappe.views.InboxView = frappe.views.ListRenderer.extend({ render_inbox_view: function() { var html = "" - email_account = this.get_current_email_account() + var email_account = this.get_current_email_account() if(email_account) html = this.emails.map(this.render_email_row.bind(this)).join(""); else @@ -78,7 +78,7 @@ frappe.views.InboxView = frappe.views.ListRenderer.extend({ ["Communication", "email_status", "not in", "Spam,Trash", true], ]) } - else if (inList(["Spam", "Trash"], email_account)) { + else if (in_list(["Spam", "Trash"], email_account)) { filters = default_filters.concat([ ["Communication", "email_status", "=", email_account, true], ["Communication", "email_account", "in", frappe.boot.all_accounts, true] @@ -115,6 +115,7 @@ frappe.views.InboxView = frappe.views.ListRenderer.extend({ get_current_email_account: function() { var route = frappe.get_route(); if(!route[3] && frappe.boot.email_accounts.length) { + var email_account; if(frappe.boot.email_accounts[0].email_id == "All Accounts") { email_account = "All Accounts" } else { @@ -130,8 +131,9 @@ frappe.views.InboxView = frappe.views.ListRenderer.extend({ }, make_no_result: function () { var no_result_message = "" - email_account = this.get_current_email_account(); - if (inList(["Spam", "Trash"], email_account)) { + var email_account = this.get_current_email_account(); + var args; + if (in_list(["Spam", "Trash"], email_account)) { return __("No {0} mail", [email_account]) } else if(!email_account && !frappe.boot.email_accounts.length) { // email account is not configured @@ -159,7 +161,7 @@ frappe.views.InboxView = frappe.views.ListRenderer.extend({ doc: {} }) } else { - frappe.route_options = { 'email_id': user_email } + frappe.route_options = { 'email_id': frappe.session.user_email } frappe.new_doc(this.no_result_doctype) } } diff --git a/frappe/public/js/frappe/views/kanban/kanban_board.js b/frappe/public/js/frappe/views/kanban/kanban_board.js index 1450aca7b1..097df1b811 100644 --- a/frappe/public/js/frappe/views/kanban/kanban_board.js +++ b/frappe/public/js/frappe/views/kanban/kanban_board.js @@ -119,7 +119,7 @@ frappe.provide("frappe.views"); }).then(function(r) { saving_filters = false; updater.set({ filters_modified: false }); - show_alert({ + frappe.show_alert({ message: __('Filters saved'), indicator: 'green' }, 0.5); @@ -819,37 +819,6 @@ frappe.provide("frappe.views"); }) } - function edit_card_title_old() { - - self.$card.find('.kanban-card-edit').on('click', function (e) { - e.stopPropagation(); - $edit_card_area.show(); - $kanban_card_area.hide(); - $textarea.focus(); - }); - - $textarea.on('blur', function () { - $edit_card_area.hide(); - $kanban_card_area.show(); - }); - - $textarea.keydown(function (e) { - if (e.which === 13) { - e.preventDefault(); - var new_title = $textarea.val(); - if (card.title === new_title) { - return; - } - get_doc().then(function () { - var tf = store.getState().card_meta.title_field.fieldname; - var doc = card.doc; - doc[tf] = new_title; - fluxify.doAction('update_doc', doc, card); - }) - } - }) - } - init(); } @@ -1020,7 +989,7 @@ frappe.provide("frappe.views"); }, callback: function (r) { frappe.model.clear_doc(doc.doctype, doc.name); - show_alert({ message: __("Saved"), indicator: 'green' }, 1); + frappe.show_alert({ message: __("Saved"), indicator: 'green' }, 1); } }); } diff --git a/frappe/public/js/frappe/views/pageview.js b/frappe/public/js/frappe/views/pageview.js index e763c2cc97..7f3f42b4ce 100644 --- a/frappe/public/js/frappe/views/pageview.js +++ b/frappe/public/js/frappe/views/pageview.js @@ -6,7 +6,7 @@ frappe.provide("frappe.standard_pages"); frappe.views.pageview = { with_page: function(name, callback) { - if(in_list(keys(frappe.standard_pages), name)) { + if(in_list(Object.keys(frappe.standard_pages), name)) { if(!frappe.pages[name]) { frappe.standard_pages[name](); } diff --git a/frappe/public/js/frappe/views/reports/grid_report.js b/frappe/public/js/frappe/views/reports/grid_report.js index 9e7f7ad2c0..39f173e5bb 100644 --- a/frappe/public/js/frappe/views/reports/grid_report.js +++ b/frappe/public/js/frappe/views/reports/grid_report.js @@ -7,7 +7,7 @@ $.extend(frappe.report_dump, { data: {}, last_modified: {}, with_data: function(doctypes, callback) { - var pre_loaded = keys(frappe.report_dump.last_modified); + var pre_loaded = Object.keys(frappe.report_dump.last_modified); return frappe.call({ method: "frappe.desk.report_dump.get_data", type: "GET", @@ -148,10 +148,10 @@ frappe.views.GridReport = Class.extend({ var me = this; $.each(me.filter_inputs, function(i, v) { var opts = v.get(0).opts; - if(opts.fieldtype == "Select" && inList(me.doctypes, opts.link)) { + if(opts.fieldtype == "Select" && in_list(me.doctypes, opts.link)) { $(v).add_options($.map(frappe.report_dump.data[opts.link], function(d) { return d.name; })); - } else if(opts.fieldtype == "Link" && inList(me.doctypes, opts.link)) { + } else if(opts.fieldtype == "Link" && in_list(me.doctypes, opts.link)) { opts.list = $.map(frappe.report_dump.data[opts.link], function(d) { return d.name; }); me.set_autocomplete(v, opts.list); @@ -201,7 +201,7 @@ frappe.views.GridReport = Class.extend({ filters.val(value); } } else { - msgprint(__("Invalid Filter: {0}", [key])) + frappe.msgprint(__("Invalid Filter: {0}", [key])) } }, set_autocomplete: function($filter, list) { @@ -219,8 +219,8 @@ frappe.views.GridReport = Class.extend({ var me = this; $.each(this.filter_inputs, function(key, filter) { var opts = filter.get(0).opts; - if(sys_defaults[key]) { - filter.val(sys_defaults[key]); + if(frappe.sys_defaults[key]) { + filter.val(frappe.sys_defaults[key]); } else if(opts.fieldtype=='Select') { filter.get(0).selectedIndex = 0; } else if(opts.fieldtype=='Data') { @@ -235,8 +235,8 @@ frappe.views.GridReport = Class.extend({ set_default_values: function() { var values = { - from_date: dateutil.str_to_user(sys_defaults.year_start_date), - to_date: dateutil.str_to_user(sys_defaults.year_end_date) + from_date: frappe.datetime.str_to_user(frappe.sys_defaults.year_start_date), + to_date: frappe.datetime.str_to_user(frappe.sys_defaults.year_end_date) } var me = this; @@ -298,7 +298,7 @@ frappe.views.GridReport = Class.extend({ } else if(opts.fieldtype!='Button') { me[opts.fieldname] = f.val(); if(opts.fieldtype=="Date") { - me[opts.fieldname] = dateutil.user_to_str(me[opts.fieldname]); + me[opts.fieldname] = frappe.datetime.user_to_str(me[opts.fieldname]); } else if (opts.fieldtype == "Select") { me[opts.fieldname+'_default'] = opts.default_value; } @@ -306,7 +306,7 @@ frappe.views.GridReport = Class.extend({ }); if(this.filter_inputs.from_date && this.filter_inputs.to_date && (this.to_date < this.from_date)) { - msgprint(__("From Date must be before To Date")); + frappe.msgprint(__("From Date must be before To Date")); return; } @@ -359,7 +359,7 @@ frappe.views.GridReport = Class.extend({ this.round_off_data(); this.prepare_data_view(); // chart might need prepared data - show_alert("Updated", 2); + frappe.show_alert("Updated", 2); this.render(); this.setup_chart && this.setup_chart(); }, @@ -458,7 +458,7 @@ frappe.views.GridReport = Class.extend({ var filters = this.filter_inputs; if(item._show) return true; - for (i in filters) { + for (var i in filters) { if(!this.apply_filter(item, i)) { return false; } @@ -502,7 +502,7 @@ frappe.views.GridReport = Class.extend({ return this[fieldname]==this[fieldname + "_default"]; }, date_formatter: function(row, cell, value, columnDef, dataContext) { - return dateutil.str_to_user(value); + return frappe.datetime.str_to_user(value); }, currency_formatter: function(row, cell, value, columnDef, dataContext) { return repl('
%(value)s
', { @@ -586,9 +586,9 @@ frappe.views.GridReport = Class.extend({ var me = this; var range = this.filter_inputs.range.val(); - this.from_date = dateutil.user_to_str(this.filter_inputs.from_date.val()); - this.to_date = dateutil.user_to_str(this.filter_inputs.to_date.val()); - var date_diff = dateutil.get_diff(this.to_date, this.from_date); + this.from_date = frappe.datetime.user_to_str(this.filter_inputs.from_date.val()); + this.to_date = frappe.datetime.user_to_str(this.filter_inputs.to_date.val()); + var date_diff = frappe.datetime.get_diff(this.to_date, this.from_date); me.column_map = {}; me.last_date = null; @@ -596,7 +596,7 @@ frappe.views.GridReport = Class.extend({ var add_column = function(date) { me.columns.push({ id: date, - name: dateutil.str_to_user(date), + name: frappe.datetime.str_to_user(date), field: date, formatter: me.currency_formatter, width: 100 @@ -606,7 +606,7 @@ frappe.views.GridReport = Class.extend({ var build_columns = function(condition) { // add column for each date range for(var i=0; i <= date_diff; i++) { - var date = dateutil.add_days(me.from_date, i); + var date = frappe.datetime.add_days(me.from_date, i); if(!condition) condition = function() { return true; } if(condition(date)) add_column(date); @@ -624,17 +624,17 @@ frappe.views.GridReport = Class.extend({ } else if(range=='Weekly') { build_columns(function(date) { if(!me.last_date) return true; - return !(dateutil.get_diff(date, me.from_date) % 7) + return !(frappe.datetime.get_diff(date, me.from_date) % 7) }); } else if(range=='Monthly') { build_columns(function(date) { if(!me.last_date) return true; - return dateutil.str_to_obj(me.last_date).getMonth() != dateutil.str_to_obj(date).getMonth() + return frappe.datetime.str_to_obj(me.last_date).getMonth() != frappe.datetime.str_to_obj(date).getMonth() }); } else if(range=='Quarterly') { build_columns(function(date) { if(!me.last_date) return true; - return dateutil.str_to_obj(date).getDate()==1 && in_list([0,3,6,9], dateutil.str_to_obj(date).getMonth()) + return frappe.datetime.str_to_obj(date).getDate()==1 && in_list([0,3,6,9], frappe.datetime.str_to_obj(date).getMonth()) }); } else if(range=='Yearly') { build_columns(function(date) { @@ -649,8 +649,8 @@ frappe.views.GridReport = Class.extend({ // set label as last date of period $.each(this.columns, function(i, col) { col.name = me.columns[i+1] - ? dateutil.str_to_user(dateutil.add_days(me.columns[i+1].id, -1)) - : dateutil.str_to_user(me.to_date); + ? frappe.datetime.str_to_user(frappe.datetime.add_days(me.columns[i+1].id, -1)) + : frappe.datetime.str_to_user(me.to_date); }); }, trigger_refresh_on_change: function(filters) { @@ -815,7 +815,7 @@ frappe.views.TreeGridReport = frappe.views.GridReportWithPlot.extend({ if(group_ids.indexOf(item.name)==-1) { item_group_map[parent].push(item); } else { - msgprint(__("Ignoring Item {0}, because a group exists with the same name!", [item.name.bold()])); + frappe.msgprint(__("Ignoring Item {0}, because a group exists with the same name!", [item.name.bold()])); } }); @@ -844,7 +844,7 @@ frappe.views.TreeGridReport = frappe.views.GridReportWithPlot.extend({ }, export: function() { - var msgbox = msgprint($.format('

{0}

\ + var msgbox = frappe.msgprint($.format('

{0}

\

{1}

\

{2}

\

', [ diff --git a/frappe/public/js/frappe/views/reports/query_report.js b/frappe/public/js/frappe/views/reports/query_report.js index 5277aaef15..3b236bd3f7 100644 --- a/frappe/public/js/frappe/views/reports/query_report.js +++ b/frappe/public/js/frappe/views/reports/query_report.js @@ -33,10 +33,10 @@ frappe.views.QueryReport = Class.extend({ }, slickgrid_options: { enableColumnReorder: false, - showHeaderRow: true, - headerRowHeight: 30, - explicitInitialization: true, - multiColumnSort: true + showHeaderRow: true, + headerRowHeight: 30, + explicitInitialization: true, + multiColumnSort: true }, make: function() { var me = this; @@ -69,7 +69,7 @@ frappe.views.QueryReport = Class.extend({ // Edit this.page.add_menu_item(__('Edit'), function() { if(!frappe.user.is_report_manager()) { - msgprint(__("You are not allowed to create / edit reports")); + frappe.msgprint(__("You are not allowed to create / edit reports")); return false; } frappe.set_route("Form", "Report", me.report_name); @@ -181,7 +181,7 @@ frappe.views.QueryReport = Class.extend({ }, print_report: function() { if(!frappe.model.can_print(this.report_doc.ref_doctype)) { - msgprint(__("You are not allowed to print this report")); + frappe.msgprint(__("You are not allowed to print this report")); return false; } @@ -211,7 +211,7 @@ frappe.views.QueryReport = Class.extend({ var print_css = frappe.boot.print_css; if(!frappe.model.can_print(this.report_doc.ref_doctype)) { - msgprint(__("You are not allowed to make PDF for this report")); + frappe.msgprint(__("You are not allowed to make PDF for this report")); return false; } @@ -277,13 +277,13 @@ frappe.views.QueryReport = Class.extend({ xhr.responseType = "arraybuffer"; xhr.onload = function(success) { - if (this.status === 200) { - var blob = new Blob([success.currentTarget.response], {type: "application/pdf"}); - var objectUrl = URL.createObjectURL(blob); + if (this.status === 200) { + var blob = new Blob([success.currentTarget.response], {type: "application/pdf"}); + var objectUrl = URL.createObjectURL(blob); - //Open report in a new window - window.open(objectUrl); - } + //Open report in a new window + window.open(objectUrl); + } }; xhr.send(formData); }, @@ -563,7 +563,7 @@ frappe.views.QueryReport = Class.extend({ var newrow = {}; for(var i=1, j=this.columns.length; i\ ' + msg + '

'); } else { @@ -815,12 +815,12 @@ _f.Frm.prototype.amend_doc = function() { } this.validate_form_action("Amend"); var me = this; - var fn = function(newdoc) { - newdoc.amended_from = me.docname; - if(me.fields_dict && me.fields_dict['amendment_date']) - newdoc.amendment_date = dateutil.obj_to_str(new Date()); - } - this.copy_doc(fn, 1); + var fn = function(newdoc) { + newdoc.amended_from = me.docname; + if(me.fields_dict && me.fields_dict['amendment_date']) + newdoc.amendment_date = frappe.datetime.obj_to_str(new Date()); + } + this.copy_doc(fn, 1); frappe.utils.play_sound("click"); } diff --git a/frappe/public/js/legacy/handler.js b/frappe/public/js/legacy/handler.js index 022f6ee945..61d197b23a 100644 --- a/frappe/public/js/legacy/handler.js +++ b/frappe/public/js/legacy/handler.js @@ -20,7 +20,7 @@ function $c_obj(doc, method, arg, callback, no_spinner, freeze_msg, btn) { if(arg && typeof arg!='string') arg = JSON.stringify(arg); - args = { + var args = { cmd:'runserverobj', args: arg, method: method diff --git a/frappe/public/js/legacy/layout.js b/frappe/public/js/legacy/layout.js index 627d4a521f..512208d168 100644 --- a/frappe/public/js/legacy/layout.js +++ b/frappe/public/js/legacy/layout.js @@ -89,7 +89,7 @@ function LayoutCell(layout, layoutRow, width) { if(width) { // add '%' if user has forgotten var w = width + ''; if(w.substr(w.length-2, 2) != 'px') { - if(w.substr(w.length-1, 1) != "%") {width = width + '%'}; + if(w.substr(w.length-1, 1) != "%") {width = width + '%'} } } diff --git a/frappe/public/js/legacy/print_format.js b/frappe/public/js/legacy/print_format.js index 3a28fb1428..a05fb8579f 100644 --- a/frappe/public/js/legacy/print_format.js +++ b/frappe/public/js/legacy/print_format.js @@ -34,7 +34,7 @@ _p.go = function(html) { _p.preview = function(html) { var w = window.open(); if(!w) { - msgprint(__("Please enable pop-ups")); + frappe.msgprint(__("Please enable pop-ups")); return; } w.document.write(html); @@ -113,7 +113,7 @@ $.extend(_p, { fmtname= "Standard"; } - args = { + var args = { fmtname: fmtname, onload: onload, no_letterhead: no_letterhead, @@ -121,12 +121,12 @@ $.extend(_p, { }; if(!cur_frm) { - msgprint(__("No document selected")); + frappe.msgprint(__("No document selected")); return; } if(!frappe.model.can_print(cur_frm.doctype, cur_frm)) { - msgprint(__("You are not allowed to print this document")); + frappe.msgprint(__("You are not allowed to print this document")); return; } @@ -145,7 +145,7 @@ $.extend(_p, { } else { var print_format_doc = locals["Print Format"][args.fmtname]; if(!print_format_doc) { - msgprint(__("Unknown Print Format: {0}", [args.fmtname])); + frappe.msgprint(__("Unknown Print Format: {0}", [args.fmtname])); return; } args.onload(_p.render({ @@ -220,7 +220,7 @@ $.extend(_p, { } if(args.doc && cint(args.doc.docstatus)==0 && is_doctype_submittable) { - draft = _p.head_banner_format(); + var draft = _p.head_banner_format(); draft = draft.replace("{{HEAD}}", "DRAFT"); draft = draft.replace("{{DESCRIPTION}}", "This box will go away after the document is submitted."); return draft; @@ -236,7 +236,7 @@ $.extend(_p, { */ show_archived: function(args) { if(args.doc && args.doc.__archived) { - archived = _p.head_banner_format(); + var archived = _p.head_banner_format(); archived = archived.replace("{{HEAD}}", "ARCHIVED"); archived = archived.replace("{{DESCRIPTION}}", "You must restore this document to make it editable."); return archived; @@ -252,7 +252,7 @@ $.extend(_p, { */ show_cancelled: function(args) { if(args.doc && args.doc.docstatus==2) { - cancelled = _p.head_banner_format(); + var cancelled = _p.head_banner_format(); cancelled = cancelled.replace("{{HEAD}}", "CANCELLED"); cancelled = cancelled.replace("{{DESCRIPTION}}", "You must amend this document to make it editable."); return cancelled; @@ -267,7 +267,7 @@ $.extend(_p, { var body_style = ''; var style_list = container.getElementsByTagName('style'); while(style_list && style_list.length>0) { - for(i in style_list) { + for(var i in style_list) { if(style_list[i] && style_list[i].innerHTML) { body_style += style_list[i].innerHTML; var parent = style_list[i].parentNode; @@ -282,7 +282,7 @@ $.extend(_p, { } // Concatenate all styles - style_concat = (args.only_body ? '' : _p.def_print_style_body) + var style_concat = (args.only_body ? '' : _p.def_print_style_body) + _p.def_print_style_other + args.style + body_style; return style_concat; @@ -609,7 +609,7 @@ $.extend(_p, { return html; }, - add_layout: function(doctype) { + add_layout: function(doctype) {v var layout = new Layout(); layout.addrow(); @@ -625,7 +625,7 @@ $.extend(_p, { // If only one table is passed layout.cur_cell.appendChild(t); } else { - page_break = '\n\ + var page_break = '\n\
'; @@ -662,7 +662,7 @@ $.extend(_p, { // If value or a numeric type then proceed // Add field table - row = _p.field_tab(layout.cur_cell); + var row = _p.field_tab(layout.cur_cell); // Add label row.cells[0].innerHTML = __(f.label ? f.label : f.fieldname); diff --git a/frappe/public/js/legacy/print_table.js b/frappe/public/js/legacy/print_table.js index d6d7d0578c..64072e6fd7 100644 --- a/frappe/public/js/legacy/print_table.js +++ b/frappe/public/js/legacy/print_table.js @@ -141,7 +141,7 @@ frappe.printTable = Class.extend({ // get from doctype and redistribute to fit 100% if(!this.widths) { this.widths = $.map(this.columns, function(fieldname, ci) { - df = frappe.meta.docfield_map[me.tabletype][fieldname]; + var df = frappe.meta.docfield_map[me.tabletype][fieldname]; return df && df.print_width || (fieldname=="Sr" ? 30 : 80); }); diff --git a/frappe/templates/includes/contact.js b/frappe/templates/includes/contact.js index 869b4dce60..0937e653b6 100644 --- a/frappe/templates/includes/contact.js +++ b/frappe/templates/includes/contact.js @@ -8,13 +8,13 @@ frappe.ready(function() { var message = $('[name="message"]').val(); if(!(email && message)) { - msgprint(__("Please enter both your email and message so that we \ + frappe.msgprint(__("Please enter both your email and message so that we \ can get back to you. Thanks!")); return false; } - if(!valid_email(email)) { - msgprint(__("You seem to have written your name instead of your email. \ + if(!validate_email(email)) { + frappe.msgprint(__("You seem to have written your name instead of your email. \ Please enter a valid email address so that we can get back.")); $('[name="email"]').focus(); return false; @@ -27,9 +27,9 @@ frappe.ready(function() { message: message, callback: function(r) { if(r.message==="okay") { - msgprint(__("Thank you for your message")); + frappe.msgprint(__("Thank you for your message")); } else { - msgprint(__("There were errors")); + frappe.msgprint(__("There were errors")); console.log(r.exc); } $(':input').val(''); diff --git a/frappe/website/doctype/website_settings/website_settings.js b/frappe/website/doctype/website_settings/website_settings.js index cf8d9497f3..5200a8aaf4 100644 --- a/frappe/website/doctype/website_settings/website_settings.js +++ b/frappe/website/doctype/website_settings/website_settings.js @@ -14,7 +14,7 @@ // doctype:"Website Settings" // }, // callback: function(r) { -// if(!r.exc) { msgprint(__("Exported")); } +// if(!r.exc) { frappe.msgprint(__("Exported")); } // } // }) // }) @@ -81,7 +81,7 @@ $.extend(cur_frm.cscript, { cur_frm.cscript.set_banner_from_image = function(doc) { if(!doc.banner_image) { - msgprint(__("Select a Brand Image first.")); + frappe.msgprint(__("Select a Brand Image first.")); } var src = doc.banner_image; cur_frm.set_value("brand_html", "