From 7ca44f53bccf48d289c5f53c00ca7026aacef6dd Mon Sep 17 00:00:00 2001 From: Michael Wood Date: Mon, 26 Sep 2016 13:59:30 +0300 Subject: [PATCH] bitbake: toaster: libtoaster Add a global notification set/show mechanism We now have a number of places where we show change notifications based on an event in a previous page (imported a layer, deleted a build, deleted a project etc) and we show these notifications on various pages so we add a simple notification utility to libtoaster. (Bitbake rev: c8db313e907918b0df122006046b157d510ecc1d) Signed-off-by: Michael Wood Signed-off-by: Ed Bartosh Signed-off-by: Richard Purdie --- .../toastergui/static/js/libtoaster.js | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/bitbake/lib/toaster/toastergui/static/js/libtoaster.js b/bitbake/lib/toaster/toastergui/static/js/libtoaster.js index b2099a6048..8e2221d2ae 100644 --- a/bitbake/lib/toaster/toastergui/static/js/libtoaster.js +++ b/bitbake/lib/toaster/toastergui/static/js/libtoaster.js @@ -449,6 +449,16 @@ var libtoaster = (function () { ajaxLoadingTimerEnabled = false; } + /* Utility function to set a notification for the next page load */ + function _setNotification(name, message){ + var data = { + name: name, + message: message + }; + + $.cookie('toaster-notification', JSON.stringify(data), { path: '/'}); + } + return { enableAjaxLoadingTimer: _enableAjaxLoadingTimer, disableAjaxLoadingTimer: _disableAjaxLoadingTimer, @@ -468,6 +478,7 @@ var libtoaster = (function () { showChangeNotification : _showChangeNotification, createCustomRecipe: _createCustomRecipe, makeProjectNameValidation: _makeProjectNameValidation, + setNotification: _setNotification, }; })(); @@ -502,6 +513,21 @@ function reload_params(params) { /* Things that happen for all pages */ $(document).ready(function() { + (function showNotificationRequest(){ + var cookie = $.cookie('toaster-notification'); + + if (!cookie) + return; + + var notificationData = JSON.parse(cookie); + + libtoaster.showChangeNotification(notificationData.message); + + $.removeCookie('toaster-notification', { path: "/"}); + })(); + + + var ajaxLoadingTimer; /* If we don't have a console object which might be the case in some