From 815498ca9c3830c10e56e67702e723c8ad579518 Mon Sep 17 00:00:00 2001 From: Ryan Petrello Date: Fri, 16 Aug 2013 14:01:42 -0400 Subject: [PATCH] Add the ability to perist the Zuul Status filter with a cookie. Change-Id: Ib576112bf0050458994da4076750c419fb81f99e --- .../openstack_project/files/zuul/status.html | 41 ++++++++++++++++++- .../openstack_project/files/zuul/status.js | 32 +++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) diff --git a/modules/openstack_project/files/zuul/status.html b/modules/openstack_project/files/zuul/status.html index 30a27095b5..711a75bf76 100644 --- a/modules/openstack_project/files/zuul/status.html +++ b/modules/openstack_project/files/zuul/status.html @@ -73,6 +73,33 @@ a:link { /* because other wise this floats up off the line */ margin-top: 0.25em; } +.projects_filter_container { + display: inline-block; + position: relative; + top: 1.5em; + padding-left: .5em; +} +.projects_filter_container input#projects_filter { + display: inline-block; +} +.projects_filter_container sub { + padding: .5em 0; + display: block; +} +.projects_filter_container sub a.save-filter { + text-decoration: underline; +} +.projects_filter_container .hidden { + visibility: hidden; +} +.projects_filter_container img.filter-saved { + display: inline-block; + position: relative; + top: 3px; +} +.projects_filter_container img.filter-saved.hidden { + display: none; +} /** Theming for the progress bars to get them consisten across browers: referenced from http://www.useragentman.com/blog/2012/01/03/cross-browser-html5-progress-bars-in-depth/ @@ -186,7 +213,19 @@ progress[aria-valuenow]:before { Queue lengths: events, results.      - Filter projects: + Filter projects: + + + + + + + +

diff --git a/modules/openstack_project/files/zuul/status.js b/modules/openstack_project/files/zuul/status.js index 519e115942..c78b9092a7 100644 --- a/modules/openstack_project/files/zuul/status.js +++ b/modules/openstack_project/files/zuul/status.js @@ -227,6 +227,27 @@ function update_graphs() { }); } +function save_filter() { + var name = 'zuul-project-filter'; + var value = $('#projects_filter').val().trim(); + document.cookie = name+"="+value+"; path=/"; + $('img.filter-saved').removeClass('hidden'); + window.setTimeout(function(){ + $('img.filter-saved').addClass('hidden'); + }, 1500); +} + +function read_cookie(name) { + var nameEQ = name + "="; + var ca = document.cookie.split(';'); + for(var i=0;i < ca.length;i++) { + var c = ca[i]; + while (c.charAt(0)==' ') c = c.substring(1,c.length); + if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); + } + return null; +} + $(function() { window.zuul_graph_update_count = 0; update_timeout(); @@ -253,5 +274,16 @@ $(function() { val.show(100); } }) + }).live('keyup', function () { + $('a.save-filter') + .removeClass('hidden') + .live('click', function(e){ + e.preventDefault(); + $(this).addClass('hidden'); + save_filter(); + }); }); + var cookie = read_cookie('zuul-project-filter'); + if(cookie) + $('#projects_filter').val(cookie).change(); });