From cd0aa8fa6ae1eb1b482882a7b2fa617f6c900ef5 Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Fri, 9 Jun 2017 15:05:42 +0530 Subject: [PATCH] Add proxy variables for removed globals --- frappe/public/js/frappe/desk.js | 44 +++++++++++++++++++++--- frappe/public/js/frappe/misc/datetime.js | 16 ++++++++- frappe/public/js/frappe/ui/messages.js | 16 ++++++++- frappe/public/js/legacy/datatype.js | 1 - frappe/public/js/legacy/form.js | 14 +++++++- frappe/public/js/legacy/globals.js | 14 ++------ 6 files changed, 86 insertions(+), 19 deletions(-) diff --git a/frappe/public/js/frappe/desk.js b/frappe/public/js/frappe/desk.js index 8d8a253085..d1583a10ed 100644 --- a/frappe/public/js/frappe/desk.js +++ b/frappe/public/js/frappe/desk.js @@ -269,20 +269,56 @@ frappe.Application = Class.extend({ }, set_globals: function() { - console.warn('The global `user` has been deprecated. Please use `frappe.session.user` instead.'); frappe.session.user = frappe.boot.user.name; frappe.session.user_email = frappe.boot.user.email; frappe.session.user_fullname = frappe.user_info().fullname; - console.warn('The global `user_defaults` has been deprecated. Please use `frappe.user_roles` instead.'); frappe.user_defaults = frappe.boot.user.defaults; - console.warn('The global `roles` has been deprecated. Please use `frappe.user_roles` instead.'); frappe.user_roles = frappe.boot.user.roles; - console.warn('The global `sys_defaults` has been deprecated. Please use `frappe.sys_defaults` instead.'); frappe.sys_defaults = frappe.boot.sysdefaults; frappe.ui.py_date_format = frappe.boot.sysdefaults.date_format.replace('dd', '%d').replace('mm', '%m').replace('yyyy', '%Y'); frappe.boot.user.last_selected_values = {}; + + // Proxy for user globals + Object.defineProperties(window, { + 'user': { + get: function() { + console.warn('Please use `frappe.session.user` instead of `user`. It will be deprecated soon.'); + return frappe.session.user; + } + }, + 'user_fullname': { + get: function() { + console.warn('Please use `frappe.session.user_fullname` instead of `user_fullname`. It will be deprecated soon.'); + return frappe.session.user; + } + }, + 'user_email': { + get: function() { + console.warn('Please use `frappe.session.user_email` instead of `user_email`. It will be deprecated soon.'); + return frappe.session.user_email; + } + }, + 'user_defaults': { + get: function() { + console.warn('Please use `frappe.user_defaults` instead of `user_defaults`. It will be deprecated soon.'); + return frappe.user_defaults; + } + }, + 'roles': { + get: function() { + console.warn('Please use `frappe.user_roles` instead of `roles`. It will be deprecated soon.'); + return frappe.user_roles; + } + }, + 'sys_defaults': { + get: function() { + console.warn('Please use `frappe.sys_defaults` instead of `sys_defaults`. It will be deprecated soon.'); + return frappe.user_roles; + } + } + }); }, sync_pages: function() { // clear cached pages if timestamp is not found diff --git a/frappe/public/js/frappe/misc/datetime.js b/frappe/public/js/frappe/misc/datetime.js index e8cd44862f..b5a445ebdd 100644 --- a/frappe/public/js/frappe/misc/datetime.js +++ b/frappe/public/js/frappe/misc/datetime.js @@ -155,4 +155,18 @@ $.extend(frappe.datetime, { }); -console.warn('The globals `dateutil` and `get_today` are deprecated. Please use `frappe.datetime` instead.') +// Proxy for dateutil and get_today +Object.defineProperties(window, { + 'dateutil': { + get: function() { + console.warn('Please use `frappe.datetime` instead of `dateutil`. It will be deprecated soon.'); + return frappe.datetime; + } + }, + 'get_today': { + get: function() { + console.warn('Please use `frappe.datetime.get_today` instead of `get_today`. It will be deprecated soon.'); + return frappe.datetime.get_today; + } + } +}); diff --git a/frappe/public/js/frappe/ui/messages.js b/frappe/public/js/frappe/ui/messages.js index 5cd617e5d9..761f87a202 100644 --- a/frappe/public/js/frappe/ui/messages.js +++ b/frappe/public/js/frappe/ui/messages.js @@ -77,7 +77,6 @@ frappe.prompt = function(fields, callback, title, primary_label) { return d; } -console.warn('The globals `msgprint` and `show_alert` has been deprecated. Please use `frappe.msgprint` and `frappe.show_alert` instead.'); var msg_dialog=null; frappe.msgprint = function(msg, title) { if(!msg) return; @@ -176,6 +175,14 @@ frappe.msgprint = function(msg, title) { return msg_dialog; } +// Proxy for frappe.msgprint +Object.defineProperty(window, 'msgprint', { + get: function() { + console.warn('Please use `frappe.msgprint` instead of `msgprint`. It will be deprecated soon.'); + return frappe.msgprint; + } +}); + frappe.hide_msgprint = function(instant) { // clear msgprint if(msg_dialog && msg_dialog.msg_area) { @@ -286,3 +293,10 @@ frappe.show_alert = function(message, seconds=7) { return div; } +// Proxy for frappe.show_alert +Object.defineProperty(window, 'show_alert', { + get: function() { + console.warn('Please use `frappe.show_alert` instead of `show_alert`. It will be deprecated soon.'); + return frappe.show_alert; + } +}); diff --git a/frappe/public/js/legacy/datatype.js b/frappe/public/js/legacy/datatype.js index bf7024d6e8..eb6f6b6760 100644 --- a/frappe/public/js/legacy/datatype.js +++ b/frappe/public/js/legacy/datatype.js @@ -75,7 +75,6 @@ var crop = function(s, len) { return s; } -console.warn('The global `keys` has been deprecated. Please use `Object.keys` instead'); function has_words(list, item) { if(!item) return true; diff --git a/frappe/public/js/legacy/form.js b/frappe/public/js/legacy/form.js index 5bd3c5b175..24e73d3bd8 100644 --- a/frappe/public/js/legacy/form.js +++ b/frappe/public/js/legacy/form.js @@ -690,8 +690,20 @@ _f.Frm.prototype.reload_doc = function() { } } -console.warn('The global `validated` has been deprecated. Please use `frappe.validated` instead.'); frappe.validated = 0; +// Proxy for frappe.validated +Object.defineProperty(window, 'validated', { + get: function() { + console.warn('Please use `frappe.validated` instead of `validated`. It will be deprecated soon.'); + return frappe.validated; + }, + set: function(value) { + console.warn('Please use `frappe.validated` instead of `validated`. It will be deprecated soon.'); + frappe.validated = value; + return frappe.validated; + } +}); + _f.Frm.prototype.save = function(save_action, callback, btn, on_error) { btn && $(btn).prop("disabled", true); $(document.activeElement).blur(); diff --git a/frappe/public/js/legacy/globals.js b/frappe/public/js/legacy/globals.js index 7f348d89dd..46a4a4327e 100644 --- a/frappe/public/js/legacy/globals.js +++ b/frappe/public/js/legacy/globals.js @@ -7,8 +7,8 @@ frappe.provide('frappe.utils'); frappe.provide('frappe.model'); frappe.provide('frappe.user'); frappe.provide('frappe.session'); -frappe.provide('locals') -frappe.provide('locals.DocType') +frappe.provide('locals'); +frappe.provide('locals.DocType'); // for listviews frappe.provide("frappe.listview_settings"); @@ -23,14 +23,7 @@ var TAB = 9; var UP_ARROW = 38; var DOWN_ARROW = 40; -// user -var user=null; -var user=null; -var user_defaults=null; -var roles=null; -var user_fullname=null; -var user_email=null; -var user_img = {}; +// proxy for user globals defined in desk.js // Name Spaces // ============ @@ -39,7 +32,6 @@ var user_img = {}; var _f = {}; var _p = {}; var _r = {}; -// var FILTER_SEP = '\1'; // API globals var frms={};