Add button that shows/hides CI comments in Gerrit

There are many CIs which automatically post comments in Gerrit and there
is no way to filter those out from the normal comments posted by
reviewers.

This patch adds a new "Toggle CI" button to the Gerrit interface which
shows/hides CI comments. The button is displayed only on review pages
and is hidden everywhere else.

Change-Id: I6ffca12d6314c63c0f1ab97d2c98a84a6ac790c9
Closes-Bug: 1282019
This commit is contained in:
Radoslav Gerganov 2014-05-27 15:07:38 +03:00
parent 1df52ccda8
commit 63d15119c3
3 changed files with 68 additions and 0 deletions
modules/openstack_project

@ -1,3 +1,5 @@
<div>
<script type="text/javascript" src="static/jquery.min.js" />
<script type="text/javascript" src="static/hideci.js" />
<a href="/"><h1 style="color: #CF2F19"><img src="static/title.png" style="vertical-align:middle;" /></h1></a>
</div>

@ -0,0 +1,49 @@
// Copyright (c) 2014 VMware, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations
// under the License.
// this regex matches the hash part of review pages
var hashRegex = /^\#\/c\/[\/\d]+$/
// this regex matches CI comments
var ciRegex = / CI$/
window.onload = function() {
var input = document.createElement("input");
input.id = "toggleci";
input.type = "button";
input.className = "gwt-Button";
input.value = "Toggle CI";
input.onclick = function() {
// CI comments in New Screen
$("div").filter(function() {
return ciRegex.test(this.innerHTML);
}).parent().parent().parent().toggle();
// CI comments in Old Screen
$("div").filter(function() {
return ciRegex.test(this.getAttribute('name'));
}).toggle();
}
document.body.appendChild(input);
if (!hashRegex.test(window.location.hash)) {
$("#toggleci").hide();
}
};
window.onhashchange = function() {
if (hashRegex.test(window.location.hash)) {
$("#toggleci").show();
} else {
$("#toggleci").hide();
}
};

@ -259,6 +259,23 @@ class openstack_project::gerrit (
require => Class['::gerrit'],
}
package { 'libjs-jquery':
ensure => present,
}
file { '/home/gerrit2/review_site/static/jquery.min.js':
ensure => present,
source => '/usr/share/javascript/jquery/jquery.min.js',
require => [Class['::gerrit'],
Package['libjs-jquery']],
}
file { '/home/gerrit2/review_site/static/hideci.js':
ensure => present,
source => 'puppet:///modules/openstack_project/gerrit/hideci.js',
require => Class['::gerrit'],
}
file { '/home/gerrit2/review_site/etc/GerritSite.css':
ensure => present,
source => 'puppet:///modules/openstack_project/gerrit/GerritSite.css',