[Kimchi-devel] [PATCH][Wok] UI: Create notification-container and make notifications persistent

Lucio Correia luciojhc at linux.vnet.ibm.com
Tue Jun 21 12:04:52 UTC 2016


Reviewed-By: Lucio Correia <luciojhc at linux.vnet.ibm.com>

On 20-06-2016 14:37, Rodrigo Trujillo wrote:
> There is an issue in frontend that does not allow notification messages
> to be showed more than once if the problem happens again.
> Also, when notifications are created, they are showed in different parts
> of the UI, for each plugin or plugin tab (usually in the alert-container).
> If some window does not have alert-container, the notification is not
> showed.
> This patch creates a notificatoin-container 'on-the-fly' in the windows
> that Wok is displaying and shows the notification.
> Notification is check by its message content, instead of the code ID,
> allowing multiple similar notifications but with different subjects
> (like different VM names).
> Notifications are showed again if message was closed but backend returns
> the same notification massage. Before, messages were nevermore display.
>
> Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo at linux.vnet.ibm.com>
> ---
>   ui/css/src/wok.scss    |  4 ++++
>   ui/css/wok.css         |  4 ++++
>   ui/js/src/wok.main.js  |  1 -
>   ui/js/src/wok.utils.js | 13 ++++++++-----
>   4 files changed, 16 insertions(+), 6 deletions(-)
>
> diff --git a/ui/css/src/wok.scss b/ui/css/src/wok.scss
> index c4a81d4..0672cdb 100755
> --- a/ui/css/src/wok.scss
> +++ b/ui/css/src/wok.scss
> @@ -142,6 +142,10 @@ body {
>     }
>   }
>
> +#notification-container .alert {
> +  margin: 10px;
> +}
> +
>   // Login
>   @import "modules/login";
>   // Topbar and navigation
> diff --git a/ui/css/wok.css b/ui/css/wok.css
> index 96b9e6e..6da0aa8 100644
> --- a/ui/css/wok.css
> +++ b/ui/css/wok.css
> @@ -133,6 +133,10 @@ body {
>     cursor: not-allowed !important;
>   }
>
> +#notification-container .alert {
> +  margin: 10px;
> +}
> +
>   .login .content .container {
>     width: 100% !important;
>     padding-left: 0 !important;
> diff --git a/ui/js/src/wok.main.js b/ui/js/src/wok.main.js
> index 55b8d0d..1d49c9e 100644
> --- a/ui/js/src/wok.main.js
> +++ b/ui/js/src/wok.main.js
> @@ -19,7 +19,6 @@
>    */
>
>   wok.NOTIFICATION_INTERVAL = 2000
> -wok.postedNotifications = []
>   wok.tabMode = {};
>
>   wok.config = undefined;
> diff --git a/ui/js/src/wok.utils.js b/ui/js/src/wok.utils.js
> index 236bf0a..54f8cf0 100644
> --- a/ui/js/src/wok.utils.js
> +++ b/ui/js/src/wok.utils.js
> @@ -214,12 +214,15 @@ wok.notificationsLoop = function notificationsLoop() {
>           function(notifications){
>               if(notifications && notifications.length > 0) {
>                   $.each(notifications, function(i, notif) {
> -                    if (wok.postedNotifications.indexOf(notif.message) == -1) {
> -                        wok.message.notify(notif, '#message-container-area');
> -                        wok.postedNotifications.push(notif.message);
> +                    // Check if notification is being displayed
> +                    if (!$("#notification-container").length) {
> +                        $('.navbar.toolbar').next().prepend('<div id="notification-container"></div>');
>                       }
> -                })
> -            };
> +                    if (($("#notification-container").find("div:contains('" + notif.message + "')").length) == 0) {
> +                        wok.message.notify(notif, '#notification-container');
> +                    }
> +                });
> +            }
>               setTimeout(notificationsLoop, wok.NOTIFICATION_INTERVAL);
>           },
>           function(data){
>


-- 
Lucio Correia
Software Engineer
IBM LTC Brazil




More information about the Kimchi-devel mailing list