branding/css/rhn-listview.css
| 34 ++
java/code/src/com/redhat/rhn/frontend/dto/SystemCompareDto.java
| 4
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
| 3
java/code/webapp/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list-list.jspf
| 32 ++
java/code/webapp/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list.jspf
| 29 +-
java/code/webapp/WEB-INF/pages/systems/duplicate/duplicatesystemscompare.jsp
| 119 ++++++----
6 files changed, 163 insertions(+), 58 deletions(-)
New commits:
commit 932f6de4f7d6f81f70f4d6d45c4166486fa06efb
Author: Partha Aji <paji(a)redhat.com>
Date: Thu May 13 18:30:20 2010 -0400
Added the dupe compare css and javascript magic
diff --git a/branding/css/rhn-listview.css b/branding/css/rhn-listview.css
index 4649bac..ebb136b 100644
--- a/branding/css/rhn-listview.css
+++ b/branding/css/rhn-listview.css
@@ -547,6 +547,40 @@ tr.alphaResult td.sortedCol {
background-position: left center;
}
+.compare-list .first-column {
+ border-right: 1px solid #C0C0C0;
+ background-color: #e4e4e4;
+ text-align: right;
+}
+
+.list-button-row,
+.list-button-row td {
+ background-color: #888 !important;
+ border-right: none !important;
+}
+
+.list-button-row td {
+ padding: 10px 5px;
+}
+
+.list-row-even .list-column-even {
+ background-color: #eee;
+}
+
+.list-row-odd .list-column-even {
+ background-color: #e4e4e4;
+}
+
+.compare-list .inactive {
+ background-color: #fef5ad;
+ margin-bottom: 5px;
+}
+
+.compare-list ul {
+ list-style: none outside !important;
+ padding: 0px;
+}
+
/** CSV download widget **/
diff --git a/java/code/src/com/redhat/rhn/frontend/dto/SystemCompareDto.java
b/java/code/src/com/redhat/rhn/frontend/dto/SystemCompareDto.java
index 43d6f08..bf883d3 100644
--- a/java/code/src/com/redhat/rhn/frontend/dto/SystemCompareDto.java
+++ b/java/code/src/com/redhat/rhn/frontend/dto/SystemCompareDto.java
@@ -62,13 +62,13 @@ public class SystemCompareDto {
* as the systems were added
* @return the last checkin dates
*/
- public List<String> getLastCheckinDates() {
+ public List<Item> getLastCheckinDates() {
LocalizationService ls = LocalizationService.getInstance();
List<String> ret = new LinkedList<String>();
for (Server server : servers) {
ret.add(ls.formatDate(server.getLastCheckin()));
}
- return ret;
+ return compare(ret);
}
/**
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
index e55d92f..cc9d49e 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
@@ -5807,6 +5807,9 @@ value for this entitlement, excluding the default organization's
consumption.</s
<trans-unit id="Click Here To Hide">
<source>Click Here To Hide</source>
</trans-unit>
+ <trans-unit id="Click Here To Show">
+ <source>Click Here To Show</source>
+ </trans-unit>
<trans-unit id="Registration Date">
<source>Registration Date</source>
</trans-unit>
diff --git
a/java/code/webapp/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list-list.jspf
b/java/code/webapp/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list-list.jspf
index e328aa5..c01b6e3 100644
---
a/java/code/webapp/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list-list.jspf
+++
b/java/code/webapp/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list-list.jspf
@@ -1,10 +1,29 @@
<%@ taglib
uri="http://jakarta.apache.org/struts/tags-bean"
prefix="bean" %>
<%@ taglib
uri="http://java.sun.com/jsp/jstl/core" prefix="c"
%>
- <c:forEach items="${items_list}" var="sublist">
- <td>
+ <td class="first-column"><bean:message
key="${key}"/></td>
+ <c:forEach items="${items_list}" var="sublist"
varStatus="loop">
+ <c:choose>
+ <c:when test ="${loop.count % 2 == 0}">
+ <c:set var ="style_class" value="list-column-even"/>
+ </c:when>
+ <c:otherwise>
+ <c:set var ="style_class" value="list-column-odd"/>
+ </c:otherwise>
+ </c:choose>
+
+ <c:if test = "${loop.last}">
+ <c:set var ="style_class" value="${style_class}
last-column"/>
+ </c:if>
+ <td class="${style_class} ">
<c:choose>
<c:when test ="${not empty sublist}">
- <c:forEach items="${sublist}" var="item">
+ <ul>
+ <c:forEach items="${sublist}" var="item"
varStatus="subloop">
+ <c:choose>
+ <c:when test="${item.similar}"><li
class="inactive"></c:when>
+ <c:otherwise><li></c:otherwise>
+ </c:choose>
+
<c:choose>
<c:when test="${empty item.value}">
<c:set var ="value"><bean:message
key="generic.jsp.none"/></c:set>
@@ -16,11 +35,10 @@
<c:if test="${not empty href && not empty item.id}">
<c:set var ="value"> <a
href="${href}${item.id}">${value}</a></c:set>
</c:if>
- <c:choose>
- <c:when
test="${item.similar}"><strong>${value}</strong></c:when>
- <c:otherwise>${value}</c:otherwise>
- </c:choose><br/>
+ ${value}
+ </li>
</c:forEach>
+ </ul>
</c:when>
<c:otherwise><bean:message
key="generic.jsp.none"/></c:otherwise>
</c:choose>
diff --git
a/java/code/webapp/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list.jspf
b/java/code/webapp/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list.jspf
index 0980c8d..51a1c68 100644
---
a/java/code/webapp/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list.jspf
+++
b/java/code/webapp/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list.jspf
@@ -1,20 +1,33 @@
<%@ taglib
uri="http://java.sun.com/jsp/jstl/core" prefix="c"
%>
- <c:forEach items="${items_list}" var="item">
- <td>
- <c:choose>
+ <td class="first-column"><bean:message
key="${key}"/></td>
+ <c:forEach items="${items_list}" var="item"
varStatus="loop">
+ <c:choose>
+ <c:when test ="${loop.count % 2 == 0}">
+ <c:set var ="style_class" value="list-column-even"/>
+ </c:when>
+ <c:otherwise>
+ <c:set var ="style_class" value="list-column-odd"/>
+ </c:otherwise>
+ </c:choose>
+ <c:if test ="${item.similar}">
+ <c:set var ="style_class" value="${style_class}
inactive"/>
+ </c:if>
+ <c:if test = "${loop.last}">
+ <c:set var ="style_class" value="${style_class}
last-column"/>
+ </c:if>
+
+ <td class="${style_class} ">
+ <c:choose>
<c:when test="${empty item.value}">
<c:set var ="value"><bean:message
key="generic.jsp.none"/></c:set>
</c:when>
<c:otherwise>
<c:set var ="value" value="${item.value}" />
</c:otherwise>
- </c:choose>
+ </c:choose>
<c:if test="${not empty href && not empty item.id}">
<c:set var ="value"> <a
href="${href}${item.id}">${value}</a></c:set>
</c:if>
- <c:choose>
- <c:when
test="${item.similar}"><strong>${value}</strong></c:when>
- <c:otherwise>${value}</c:otherwise>
- </c:choose>
+ ${value}
</td>
</c:forEach>
\ No newline at end of file
diff --git a/java/code/webapp/WEB-INF/pages/systems/duplicate/duplicatesystemscompare.jsp
b/java/code/webapp/WEB-INF/pages/systems/duplicate/duplicatesystemscompare.jsp
index 4cdf7f5..0c9b449 100644
--- a/java/code/webapp/WEB-INF/pages/systems/duplicate/duplicatesystemscompare.jsp
+++ b/java/code/webapp/WEB-INF/pages/systems/duplicate/duplicatesystemscompare.jsp
@@ -7,8 +7,27 @@
<html:xhtml/>
<html>
<head>
- <meta name="page-decorator" content="none" />
- <script src="/javascript/tree.js"
type="text/javascript"></script>
+<meta name="page-decorator" content="none" />
+<script type="text/javascript">
+
+ function toggleElement(row) {
+ if (row.style.display == '') {
+ row.style.display = 'none';
+ }
+ else {
+ row.style.display = '';
+ }
+ }
+
+ function pageToggleRows(linkId, ids){
+ for (var i = 0 ; i < ids.length; i++) {
+ toggleElement(document.getElementById(ids[i]));
+ }
+ toggleElement(document.getElementById(linkId + 'Show'));
+ toggleElement(document.getElementById(linkId + 'Hide'));
+ }
+
+</script>
</head>
<body>
<rhn:toolbar base="h1" img="/img/rhn-icon-system.gif"
imgAlt="system.common.systemAlt"
@@ -55,7 +74,7 @@
<br/>
<h2><bean:message key='System Comparison'/></h2>
<c:choose> <c:when test="${requestScope.systems.size > 0}">
-<table cellpadding="0" cellspacing="0" class="list">
+<table cellpadding="0" cellspacing="0" class="list
compare-list">
<thead><tr>
<th> Property</th>
<c:forEach items="${requestScope.systems.servers}"
var="current">
@@ -63,100 +82,118 @@
</c:forEach>
</tr></thead>
<tbody>
- <tr class="list-row-even" >
- <td><%-- Empty --%></td>
- <c:forEach items="${requestScope.systems.systemIds}"
var="current">
- <td><input type="submit" name="btn${current.value}"
value="${rhn:localize('Delete System Profile')}"/></td>
+ <tr class="list-button-row" >
+ <td class="first-column"><%-- Empty --%></td>
+ <c:forEach items="${requestScope.systems.systemIds}"
var="current" varStatus="loop">
+ <c:choose>
+ <c:when test ="${loop.last}">
+ <td class="last-column">
+ </c:when>
+ <c:otherwise><td></c:otherwise>
+ </c:choose>
+ <input type="submit" name="btn${current.value}"
value="${rhn:localize('Delete System Profile')}"/></td>
</c:forEach>
</tr>
<tr>
- <th colspan="${requestScope.systems.size + 1}"><bean:message
key="System Identity Properties"/> <a
href=""><bean:message key="Click Here To Hide"/>
</a></th>
- </tr>
- <tr class="list-row-even" >
- <td><bean:message
key="systemlist.jsp.last_checked_in"/></td>
- <c:forEach items="${requestScope.systems.lastCheckinDates}"
var="current">
- <td>${current}</td>
- </c:forEach>
+ <th colspan="${requestScope.systems.size + 1}"><bean:message
key="System Identity Properties"/>
+ <a id='sysIdHide' href="javascript:pageToggleRows('sysId',
['lastCheckinRow',
'macAddressRow','ipAddressRow','systemGroupsRow'])"><bean:message
key="Click Here To Hide"/> </a>
+ <a style="display:none" id='sysIdShow'
href="javascript:pageToggleRows('sysId', ['lastCheckinRow',
'macAddressRow','ipAddressRow','systemGroupsRow'])"><bean:message
key="Click Here To Show"/> </a>
+ </th>
+ </tr>
+ <tr class="list-row-odd" id="lastCheckinRow">
+ <c:set var ="key" value="systemlist.jsp.last_checked_in"/>
+ <c:set var ="items_list"
value="${requestScope.systems.lastCheckinDates}"/>
+ <c:set var ="href" value=""/>
+ <%@ include
file="/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list.jspf"
%>
</tr>
- <tr class="list-row-even" >
- <td><bean:message key="row.macaddress"/></td>
+ <tr class="list-row-even" id="macAddressRow">
+ <c:set var ="key" value="row.macaddress"/>
<c:set var ="items_list"
value="${requestScope.systems.macAddresses}"/>
<c:set var ="href" value=""/>
<%@ include
file="/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list-list.jspf"
%>
</tr>
- <tr class="list-row-even" >
- <td><bean:message key="row.ip"/></td>
+ <tr class="list-row-odd" id = "ipAddressRow">
+ <c:set var ="key" value="row.ip"/>
<c:set var ="items_list"
value="${requestScope.systems.ipAddresses}"/>
<c:set var ="href" value=""/>
<%@ include
file="/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list-list.jspf"
%>
</tr>
- <tr class="list-row-even" >
- <td><bean:message key="System Groups"/></td>
+ <tr class="list-row-even" id = "systemGroupsRow">
+ <c:set var ="key" value="System Groups"/>
<c:set var ="items_list"
value="${requestScope.systems.systemGroups}"/>
<c:set var ="href"
value="/network/systems/groups/details.pxt?sgid="/>
<%@ include
file="/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list-list.jspf"
%>
</tr>
<tr>
- <th colspan="${requestScope.systems.size + 1}"><bean:message
key="Extended System Identity Properties"/> <a
href=""><bean:message key="Click Here To Hide"/>
</a></th>
+ <th colspan="${requestScope.systems.size + 1}"><bean:message
key="Extended System Identity Properties"/>
+ <a id='extendedSysIdHide'
href="javascript:pageToggleRows('extendedSysId',
['registrationDateRow',
'systemIdRow','activationKeysRow'])"><bean:message
key="Click Here To Hide"/> </a>
+ <a style="display:none" id='extendedSysIdShow'
href="javascript:pageToggleRows('sysId', ['registrationDateRow',
'systemIdRow','activationKeysRow'])"><bean:message
key="Click Here To Show"/> </a>
+ </th>
</tr>
- <tr class="list-row-even" >
- <td><bean:message key="Registration Date"/></td>
+ <tr class="list-row-odd" id = "registrationDateRow">
+ <c:set var ="key" value="Registration Date"/>
<c:set var ="items_list"
value="${requestScope.systems.registrationDates}"/>
<c:set var ="href" value=""/>
<%@ include
file="/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list.jspf"
%>
</tr>
- <tr class="list-row-even" >
- <td><bean:message key="System ID"/></td>
+ <tr class="list-row-even" id = "systemIdRow">
+ <c:set var ="key" value="System ID"/>
<c:set var ="items_list"
value="${requestScope.systems.systemIds}"/>
<c:set var ="href" value=""/>
<%@ include
file="/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list.jspf"
%>
</tr>
- <tr class="list-row-even" >
- <td><bean:message key="Activation Keys"/></td>
+ <tr class="list-row-odd" id = "activationKeysRow">
+ <c:set var ="key" value="Activation Keys"/>
<c:set var ="items_list"
value="${requestScope.systems.activationKeys}"/>
<c:set var ="href"
value="/rhn/activationkeys/Edit.do?tid="/>
<%@ include
file="/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list-list.jspf"
%>
</tr>
<tr>
- <th colspan="${requestScope.systems.size + 1}"><bean:message
key="System Content And Monitoring"/> <a
href=""><bean:message key="Click Here To Hide"/>
</a></th>
+ <th colspan="${requestScope.systems.size + 1}"><bean:message
key="System Content And Monitoring"/>
+ <a id='sysContentIdHide'
href="javascript:pageToggleRows('sysContentId', ['baseChannelRow',
'childChannelsRow','configChannelsRow','monitoringProbesRow'])"><bean:message
key="Click Here To Hide"/> </a>
+ <a style="display:none" id='sysContentIdShow'
href="javascript:pageToggleRows('sysContentId', ['baseChannelRow',
'childChannelsRow','configChannelsRow','monitoringProbesRow'])"><bean:message
key="Click Here To Show"/> </a>
+ </th>
</tr>
- <tr class="list-row-even">
- <td><bean:message key="kickstart.channel.label.jsp"/></td>
+ <tr class="list-row-odd" id = "baseChannelRow">
+ <c:set var ="key" value="kickstart.channel.label.jsp"/>
<c:set var ="items_list"
value="${requestScope.systems.baseChannels}"/>
<c:set var ="href"
value="/rhn/channels/ChannelDetail.do?cid="/>
<%@ include
file="/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list.jspf"
%>
</tr>
- <tr class="list-row-even" >
- <td><bean:message key="Child Software Channels"/></td>
+ <tr class="list-row-even" id="childChannelsRow">
+ <c:set var ="key" value="Child Software Channels"/>
<c:set var ="items_list"
value="${requestScope.systems.childChannels}"/>
<c:set var ="href"
value="/rhn/channels/ChannelDetail.do?cid="/>
<%@ include
file="/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list-list.jspf"
%>
</tr>
- <tr class="list-row-even" >
- <td><bean:message key="org.config.channels.jsp"/></td>
+ <tr class="list-row-odd" id="configChannelsRow">
+ <c:set var ="key" value="org.config.channels.jsp"/>
<c:set var ="items_list"
value="${requestScope.systems.childChannels}"/>
<c:set var ="href"
value="/rhn/configuration/ChannelOverview.do?ccid="/>
<%@ include
file="/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list-list.jspf"
%>
</tr>
- <tr class="list-row-even" >
- <td><bean:message key="Monitoring Probes"/></td>
+ <tr class="list-row-even" id="monitoringProbesRow">
+ <c:set var ="key" value="Monitoring Probes"/>
<c:set var ="items_list"
value="${requestScope.systems.monitoringProbes}"/>
<c:set var ="href" value=""/>
<%@ include
file="/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list-list.jspf"
%>
</tr>
<tr>
- <th colspan="${requestScope.systems.size + 1}"><bean:message
key="softwareEntitlementDetails.header.entitlementUsage"/> <a
href=""><bean:message key="Click Here To Hide"/>
</a></th>
+ <th colspan="${requestScope.systems.size + 1}"><bean:message
key="softwareEntitlementDetails.header.entitlementUsage"/>
+ <a id='sysEntUsageIdHide'
href="javascript:pageToggleRows('sysEntUsageId',
['systemEntitlementsRow',
'softwareEntitlementsRow'])"><bean:message key="Click Here To
Hide"/> </a>
+ <a style="display:none" id='sysEntUsageIdShow'
href="javascript:pageToggleRows('sysEntUsageId',
['systemEntitlementsRow',
'softwareEntitlementsRow'])"><bean:message key="Click Here To
Show"/> </a>
+ </th>
</tr>
- <tr class="list-row-even" >
- <td><bean:message key="System Entitlements"/></td>
+ <tr class="list-row-odd" id = "systemEntitlementsRow">
+ <c:set var ="key" value="System Entitlements"/>
<c:set var ="items_list"
value="${requestScope.systems.systemEntitlements}"/>
<c:set var ="href" value=""/>
<%@ include
file="/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list-list.jspf"
%>
</tr>
- <tr class="list-row-even" >
- <td><bean:message key="Software Entitlements"/></td>
+ <tr class="list-row-even" id="softwareEntitlementsRow">
+ <c:set var ="key" value="Software Entitlements"/>
<c:set var ="items_list"
value="${requestScope.systems.softwareEntitlements}"/>
<c:set var ="href" value=""/>
<%@ include
file="/WEB-INF/pages/common/fragments/systems/duplicates/render-item-list-list.jspf"
%>