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"])) {
$('
'+ __("New Email Account") +'')
.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:') +
'
',
@@ -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", "
