From fe1732ca0a26d18595c1898587498fad6487ad50 Mon Sep 17 00:00:00 2001 From: Shaunak Kashyap Date: Tue, 5 Jul 2016 17:17:20 -0700 Subject: [PATCH 1/5] Show notifier on page load, if notifier params are in query string --- src/core_plugins/kibana/public/kibana.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/core_plugins/kibana/public/kibana.js b/src/core_plugins/kibana/public/kibana.js index bf96cf92207d..63cd2ac289a3 100644 --- a/src/core_plugins/kibana/public/kibana.js +++ b/src/core_plugins/kibana/public/kibana.js @@ -17,6 +17,7 @@ import 'ui/vislib'; import 'ui/agg_response'; import 'ui/agg_types'; import 'ui/timepicker'; +import Notifier from 'ui/notify/notifier'; import 'leaflet'; routes.enable(); @@ -44,3 +45,17 @@ chrome moment.tz.setDefault(tz); } }); + +function showNotifier($location) { + const queryString = $location.search(); + if (queryString.notif_msg) { + const message = queryString.notif_msg; + const config = queryString.notif_loc ? { location: queryString.notif_loc } : {}; + const level = queryString.notif_lvl || 'info'; + + const notifier = new Notifier(config); + notifier[level](message); + } +} + +modules.get('kibana').run(showNotifier); From e5c5a3be15897961656bbb6bc98894fbabb68a46 Mon Sep 17 00:00:00 2001 From: Shaunak Kashyap Date: Wed, 6 Jul 2016 03:38:39 -0700 Subject: [PATCH 2/5] Remove notification parameters from query string after triggering notification --- src/core_plugins/kibana/public/kibana.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/core_plugins/kibana/public/kibana.js b/src/core_plugins/kibana/public/kibana.js index 63cd2ac289a3..4c05d4684a4f 100644 --- a/src/core_plugins/kibana/public/kibana.js +++ b/src/core_plugins/kibana/public/kibana.js @@ -53,6 +53,10 @@ function showNotifier($location) { const config = queryString.notif_loc ? { location: queryString.notif_loc } : {}; const level = queryString.notif_lvl || 'info'; + $location.search('notif_msg', null); + $location.search('notif_loc', null); + $location.search('notif_lvl', null); + const notifier = new Notifier(config); notifier[level](message); } From 829c858df3cd3f01685bdaaf67d4c140dabb7729 Mon Sep 17 00:00:00 2001 From: Shaunak Kashyap Date: Wed, 6 Jul 2016 11:21:33 -0700 Subject: [PATCH 3/5] Refactor notifier display code into Notifier module --- src/core_plugins/kibana/public/kibana.js | 18 +----------------- src/ui/public/notify/notifier.js | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/core_plugins/kibana/public/kibana.js b/src/core_plugins/kibana/public/kibana.js index 4c05d4684a4f..c4422571da66 100644 --- a/src/core_plugins/kibana/public/kibana.js +++ b/src/core_plugins/kibana/public/kibana.js @@ -46,20 +46,4 @@ chrome } }); -function showNotifier($location) { - const queryString = $location.search(); - if (queryString.notif_msg) { - const message = queryString.notif_msg; - const config = queryString.notif_loc ? { location: queryString.notif_loc } : {}; - const level = queryString.notif_lvl || 'info'; - - $location.search('notif_msg', null); - $location.search('notif_loc', null); - $location.search('notif_lvl', null); - - const notifier = new Notifier(config); - notifier[level](message); - } -} - -modules.get('kibana').run(showNotifier); +modules.get('kibana').run(Notifier.run); diff --git a/src/ui/public/notify/notifier.js b/src/ui/public/notify/notifier.js index b2dbbb0ec844..d20277eec3e4 100644 --- a/src/ui/public/notify/notifier.js +++ b/src/ui/public/notify/notifier.js @@ -188,6 +188,22 @@ Notifier.applyConfig = function (config) { // to be notified when the first fatal error occurs, push a function into this array. Notifier.fatalCallbacks = []; +Notifier.run = ($location) => { + const queryString = $location.search(); + if (queryString.notif_msg) { + const message = queryString.notif_msg; + const config = queryString.notif_loc ? { location: queryString.notif_loc } : {}; + const level = queryString.notif_lvl || 'info'; + + $location.search('notif_msg', null); + $location.search('notif_loc', null); + $location.search('notif_lvl', null); + + const notifier = new Notifier(config); + notifier[level](message); + } +}; + // simply a pointer to the global notif list Notifier.prototype._notifs = notifs; From 0c0e1412592de73fcaa4fa097970ca9d560be842 Mon Sep 17 00:00:00 2001 From: Shaunak Kashyap Date: Wed, 6 Jul 2016 11:26:57 -0700 Subject: [PATCH 4/5] Renaming method to be more descriptive --- src/core_plugins/kibana/public/kibana.js | 2 +- src/ui/public/notify/notifier.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core_plugins/kibana/public/kibana.js b/src/core_plugins/kibana/public/kibana.js index c4422571da66..41ec204bde5a 100644 --- a/src/core_plugins/kibana/public/kibana.js +++ b/src/core_plugins/kibana/public/kibana.js @@ -46,4 +46,4 @@ chrome } }); -modules.get('kibana').run(Notifier.run); +modules.get('kibana').run(Notifier.pullMessageFromUrl); diff --git a/src/ui/public/notify/notifier.js b/src/ui/public/notify/notifier.js index d20277eec3e4..9c13b49ab9f4 100644 --- a/src/ui/public/notify/notifier.js +++ b/src/ui/public/notify/notifier.js @@ -188,7 +188,7 @@ Notifier.applyConfig = function (config) { // to be notified when the first fatal error occurs, push a function into this array. Notifier.fatalCallbacks = []; -Notifier.run = ($location) => { +Notifier.pullMessageFromUrl = ($location) => { const queryString = $location.search(); if (queryString.notif_msg) { const message = queryString.notif_msg; From de3cf6c2cf057f3d71a2f9a41aba448b4ba6ed2c Mon Sep 17 00:00:00 2001 From: Shaunak Kashyap Date: Wed, 6 Jul 2016 11:28:09 -0700 Subject: [PATCH 5/5] Return early from function if there is no message to notify --- src/ui/public/notify/notifier.js | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/ui/public/notify/notifier.js b/src/ui/public/notify/notifier.js index 9c13b49ab9f4..801054e42da8 100644 --- a/src/ui/public/notify/notifier.js +++ b/src/ui/public/notify/notifier.js @@ -190,18 +190,19 @@ Notifier.fatalCallbacks = []; Notifier.pullMessageFromUrl = ($location) => { const queryString = $location.search(); - if (queryString.notif_msg) { - const message = queryString.notif_msg; - const config = queryString.notif_loc ? { location: queryString.notif_loc } : {}; - const level = queryString.notif_lvl || 'info'; - - $location.search('notif_msg', null); - $location.search('notif_loc', null); - $location.search('notif_lvl', null); - - const notifier = new Notifier(config); - notifier[level](message); + if (!queryString.notif_msg) { + return; } + const message = queryString.notif_msg; + const config = queryString.notif_loc ? { location: queryString.notif_loc } : {}; + const level = queryString.notif_lvl || 'info'; + + $location.search('notif_msg', null); + $location.search('notif_loc', null); + $location.search('notif_lvl', null); + + const notifier = new Notifier(config); + notifier[level](message); }; // simply a pointer to the global notif list