java/code/src/com/redhat/rhn/frontend/action/systems/duplicate/DuplicateIPListAction.java
| 110 ---------
java/code/src/com/redhat/rhn/frontend/action/systems/duplicate/DuplicateSystemsAction.java
| 122 ++++++++++
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
| 17 +
java/code/src/com/redhat/rhn/frontend/strings/nav/StringResource_en_US.xml
| 29 ++
java/code/webapp/WEB-INF/nav/duplicate_systems_tabs.xml
| 13 +
java/code/webapp/WEB-INF/nav/sitenav-authenticated.xml
| 5
java/code/webapp/WEB-INF/pages/systems/duplicate/duplicateIPList.jsp
| 109 --------
java/code/webapp/WEB-INF/pages/systems/duplicate/duplicatesystems.jsp
| 112 +++++++++
java/code/webapp/WEB-INF/struts-config.xml
| 36 ++
9 files changed, 328 insertions(+), 225 deletions(-)
New commits:
commit b2dcb83d8ccdc99c7ff9c7c7939be009c71bd261
Author: Partha Aji <paji(a)redhat.com>
Date: Wed May 5 18:06:29 2010 -0400
Added Nav Tabs + hostname /mac address functionality + cleaned up the i18n Strings
diff --git
a/java/code/src/com/redhat/rhn/frontend/action/systems/duplicate/DuplicateIPListAction.java
b/java/code/src/com/redhat/rhn/frontend/action/systems/duplicate/DuplicateIPListAction.java
deleted file mode 100644
index 1adc38e..0000000
---
a/java/code/src/com/redhat/rhn/frontend/action/systems/duplicate/DuplicateIPListAction.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/**
- * Copyright (c) 2010 Red Hat, Inc.
- *
- * This software is licensed to you under the GNU General Public License,
- * version 2 (GPLv2). There is NO WARRANTY for this software, express or
- * implied, including the implied warranties of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
- * along with this software; if not, see
- *
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
- *
- * Red Hat trademarks are not licensed under GPLv2. No permission is
- * granted to use or replicate Red Hat trademarks that are incorporated
- * in this software or its documentation.
- */
-package com.redhat.rhn.frontend.action.systems.duplicate;
-
-import com.redhat.rhn.frontend.dto.NetworkDto;
-import com.redhat.rhn.frontend.struts.RequestContext;
-import com.redhat.rhn.frontend.struts.RhnAction;
-import com.redhat.rhn.frontend.taglibs.list.ListTagUtil;
-import com.redhat.rhn.frontend.taglibs.list.helper.ListSessionSetHelper;
-import com.redhat.rhn.frontend.taglibs.list.helper.Listable;
-import com.redhat.rhn.manager.system.DuplicateSystemGrouping;
-import com.redhat.rhn.manager.system.SystemManager;
-
-import org.apache.commons.lang.StringUtils;
-import org.apache.struts.action.ActionForm;
-import org.apache.struts.action.ActionForward;
-import org.apache.struts.action.ActionMapping;
-
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * SystemListAction
- * @version $Rev$
- */
-public class DuplicateIPListAction extends RhnAction implements Listable {
-
- private static final String INACTIVE_COUNT = "inactive_count";
-
-
- /**
- *
- * {@inheritDoc}
- */
- public ActionForward execute(ActionMapping mapping,
- ActionForm formIn,
- HttpServletRequest request,
- HttpServletResponse response) {
-
- RequestContext ctx = new RequestContext(request);
-
- long inactiveHours = 24;
- if (request.getParameter(INACTIVE_COUNT) != null) {
- inactiveHours = Long.parseLong(request.getParameter(INACTIVE_COUNT));
- }
- request.setAttribute(INACTIVE_COUNT, inactiveHours);
-
-
- ListSessionSetHelper helper = new ListSessionSetHelper(this, request);
- helper.execute();
- if (helper.isDispatched()) {
- RequestContext context = new RequestContext(request);
- return handleConfirm(context, mapping);
- }
-
-
- String inactiveButton = ListTagUtil.makeExtraButtonName(helper.getUniqueName());
- if (!StringUtils.isBlank(request.getParameter(inactiveButton))) {
- List<DuplicateSystemGrouping> list = getResult(ctx);
- Set set = new HashSet();
- for (DuplicateSystemGrouping grp : list) {
- for (NetworkDto dto : grp.getSystems()) {
- if (dto.getInactive() > 0) {
- set.add(dto.getId().toString());
- }
- }
- }
- helper.getSet().addAll(set);
- helper.resync(request);
- }
-
-
-
- request.setAttribute(inactiveButton,
- "system.select.inactive");
- return mapping.findForward("default");
- }
-
- private ActionForward handleConfirm(RequestContext context,
- ActionMapping mapping) {
-
- return mapping.findForward("success");
- }
-
- /**
- * {@inheritDoc}
- */
- public List getResult(RequestContext contextIn) {
- Long count = (Long) contextIn.getRequest().getAttribute(INACTIVE_COUNT);
- return SystemManager.listDuplicatesByIP(contextIn.getLoggedInUser(), count);
- }
-
-
-}
diff --git
a/java/code/src/com/redhat/rhn/frontend/action/systems/duplicate/DuplicateSystemsAction.java
b/java/code/src/com/redhat/rhn/frontend/action/systems/duplicate/DuplicateSystemsAction.java
new file mode 100644
index 0000000..d87ccf6
--- /dev/null
+++
b/java/code/src/com/redhat/rhn/frontend/action/systems/duplicate/DuplicateSystemsAction.java
@@ -0,0 +1,122 @@
+/**
+ * Copyright (c) 2010 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ *
http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+package com.redhat.rhn.frontend.action.systems.duplicate;
+
+import com.redhat.rhn.frontend.dto.NetworkDto;
+import com.redhat.rhn.frontend.struts.RequestContext;
+import com.redhat.rhn.frontend.struts.RhnAction;
+import com.redhat.rhn.frontend.taglibs.list.ListTagUtil;
+import com.redhat.rhn.frontend.taglibs.list.helper.ListSessionSetHelper;
+import com.redhat.rhn.frontend.taglibs.list.helper.Listable;
+import com.redhat.rhn.manager.system.DuplicateSystemGrouping;
+import com.redhat.rhn.manager.system.SystemManager;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * SystemListAction
+ * @version $Rev$
+ */
+public class DuplicateSystemsAction extends RhnAction implements Listable {
+
+ private static final String INACTIVE_COUNT = "inactive_count";
+ private static final String MAC_ADDRESS = "macaddress";
+ private static final String HOSTNAME = "hostname";
+ private static final String IP_ADDRESS = "ip";
+
+ /**
+ *
+ * {@inheritDoc}
+ */
+ public ActionForward execute(ActionMapping mapping,
+ ActionForm formIn,
+ HttpServletRequest request,
+ HttpServletResponse response) {
+
+ RequestContext ctx = new RequestContext(request);
+ request.setAttribute(mapping.getParameter(), mapping.getParameter());
+
+ long inactiveHours = 24;
+ if (request.getParameter(INACTIVE_COUNT) != null) {
+ inactiveHours = Long.parseLong(request.getParameter(INACTIVE_COUNT));
+ }
+ request.setAttribute(INACTIVE_COUNT, inactiveHours);
+
+
+ ListSessionSetHelper helper = new ListSessionSetHelper(this, request,
+ Collections.EMPTY_MAP, mapping.getParameter());
+ helper.execute();
+ if (helper.isDispatched()) {
+ RequestContext context = new RequestContext(request);
+ return handleConfirm(context, mapping);
+ }
+
+
+ String inactiveButton = ListTagUtil.makeExtraButtonName(helper.getUniqueName());
+ if (!StringUtils.isBlank(request.getParameter(inactiveButton))) {
+ List<DuplicateSystemGrouping> list = getResult(ctx);
+ Set set = new HashSet();
+ for (DuplicateSystemGrouping grp : list) {
+ for (NetworkDto dto : grp.getSystems()) {
+ if (dto.getInactive() > 0) {
+ set.add(dto.getId().toString());
+ }
+ }
+ }
+ helper.getSet().addAll(set);
+ helper.resync(request);
+ }
+
+
+
+ request.setAttribute(inactiveButton,
+ "system.select.inactive");
+ return mapping.findForward("default");
+ }
+
+ private ActionForward handleConfirm(RequestContext context,
+ ActionMapping mapping) {
+
+ return mapping.findForward("success");
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public List getResult(RequestContext contextIn) {
+ Long count = (Long) contextIn.getRequest().getAttribute(INACTIVE_COUNT);
+ if (contextIn.getRequest().getAttribute(HOSTNAME) != null) {
+ return SystemManager.listDuplicatesByHostname
+ (contextIn.getLoggedInUser(), count);
+ }
+ else if (contextIn.getRequest().getAttribute(MAC_ADDRESS) != null) {
+ return SystemManager.listDuplicatesByMac(contextIn.getLoggedInUser(),
count);
+ }
+ return SystemManager.listDuplicatesByIP(contextIn.getLoggedInUser(), count);
+ }
+
+
+}
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 ec7e5b2..a02205b 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
@@ -66,7 +66,7 @@
</trans-unit>
<trans-unit id="row.macaddress">
- <source>Network Address</source>
+ <source>MAC Address</source>
</trans-unit>
</group>
@@ -5748,6 +5748,21 @@ value for this entitlement, excluding the default
organization's consumption.</s
<context
context-type="sourcefile">/rhn/frontend/dto/SystemGroupOverview</context>
</context-group>
</trans-unit>
+
+
+<!--- System Duplicates pages -->
+ <group>
+ <context-group name="ctx">
+ <context
context-type="sourcefile">/rhn/systems/DuplicateIPList.do
pages</context>
+ </context-group>
+ <trans-unit id="duplicates.jsp.header">
+ <source>Duplicate System Profiles</source>
+ </trans-unit>
+ <trans-unit id="duplicate.jsp.message">
+ <source>Inactive system profiles are highlighted below.</source>
+ </trans-unit>
+ </group>
+
<!--- System groups pages -->
<group>
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/nav/StringResource_en_US.xml
b/java/code/src/com/redhat/rhn/frontend/strings/nav/StringResource_en_US.xml
index 2c06667..fb95487 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/nav/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/nav/StringResource_en_US.xml
@@ -104,13 +104,40 @@
http://www.oasis-open.org/committees/xliff/documents/xliff-core-1.1.xsd&q...
<context context-type="sourcefile">Systems Navigation
Menu</context>
</context-group>
</trans-unit>
-
<trans-unit id="Virtual Systems">
<source>Virtual Systems</source>
<context-group name="ctx">
<context context-type="sourcefile">Systems Navigation
Menu</context>
</context-group>
</trans-unit>
+ <trans-unit id="Duplicate Systems">
+<source>Duplicate Systems</source>
+ <context-group name="ctx">
+ <context context-type="sourcefile">Systems Navigation
Menu</context>
+ </context-group>
+ </trans-unit>
+
+ <trans-unit id="duplicate.systems.nav.ips">
+<source>Duplicate IP Address</source>
+ <context-group name="ctx">
+ <context context-type="sourcefile">Duplicate Systems Navigation
Menu</context>
+ </context-group>
+ </trans-unit>
+
+ <trans-unit id="duplicate.systems.nav.mac_address">
+<source>Duplicate MAC Address</source>
+ <context-group name="ctx">
+ <context context-type="sourcefile">Systems Navigation
Menu</context>
+ </context-group>
+ </trans-unit>
+
+ <trans-unit id="duplicate.systems.nav.hostname">
+<source>Duplicate Hostname</source>
+ <context-group name="ctx">
+ <context context-type="sourcefile">Systems Navigation
Menu</context>
+ </context-group>
+ </trans-unit>
+
<trans-unit id="system.nav.outofdate">
<source>Out of Date</source>
diff --git a/java/code/webapp/WEB-INF/nav/duplicate_systems_tabs.xml
b/java/code/webapp/WEB-INF/nav/duplicate_systems_tabs.xml
new file mode 100644
index 0000000..695206a
--- /dev/null
+++ b/java/code/webapp/WEB-INF/nav/duplicate_systems_tabs.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<rhn-navi-tree label="duplicate_tabs" invisible="1"
title-depth="1"
+
acl_mixins="com.redhat.rhn.common.security.acl.action.ActionAclHandler">
+ <rhn-tab name="duplicate.systems.nav.ips">
+ <rhn-tab-url>/rhn/systems/DuplicateIPList.do</rhn-tab-url>
+ </rhn-tab>
+ <rhn-tab name="duplicate.systems.nav.hostname">
+ <rhn-tab-url>/rhn/systems/DuplicateHostName.do</rhn-tab-url>
+ </rhn-tab>
+ <rhn-tab name="duplicate.systems.nav.mac_address">
+ <rhn-tab-url>/rhn/systems/DuplicateMacAddress.do</rhn-tab-url>
+ </rhn-tab>
+</rhn-navi-tree>
diff --git a/java/code/webapp/WEB-INF/nav/sitenav-authenticated.xml
b/java/code/webapp/WEB-INF/nav/sitenav-authenticated.xml
index 871f381..588e81d 100644
--- a/java/code/webapp/WEB-INF/nav/sitenav-authenticated.xml
+++ b/java/code/webapp/WEB-INF/nav/sitenav-authenticated.xml
@@ -37,6 +37,11 @@
<rhn-tab name="Inactive"
url="/rhn/systems/Inactive.do"/>
<rhn-tab name="Recently Registered"
url="/rhn/systems/Registered.do"/>
<rhn-tab name="Proxy" url="/rhn/systems/ProxyList.do"
acl="org_channel_family(rhn-proxy); user_role(org_admin)"/>
+ <rhn-tab name="Duplicate Systems"
url="/rhn/systems/DuplicateIPList.do">
+ <rhn-tab-url>/rhn/systems/DuplicateIPList.do</rhn-tab-url>
+ <rhn-tab-url>/rhn/systems/DuplicateHostName.do</rhn-tab-url>
+ <rhn-tab-url>/rhn/systems/DuplicateMacAddress.do</rhn-tab-url>
+ </rhn-tab>
</rhn-tab>
<rhn-tab name="System Groups"
acl="org_entitlement(sw_mgr_enterprise)">
<rhn-tab-directory>/rhn/groups</rhn-tab-directory>
diff --git a/java/code/webapp/WEB-INF/pages/systems/duplicate/duplicateIPList.jsp
b/java/code/webapp/WEB-INF/pages/systems/duplicate/duplicateIPList.jsp
deleted file mode 100644
index 15992b9..0000000
--- a/java/code/webapp/WEB-INF/pages/systems/duplicate/duplicateIPList.jsp
+++ /dev/null
@@ -1,109 +0,0 @@
-<%@ taglib
uri="http://rhn.redhat.com/rhn" prefix="rhn" %>
-<%@ taglib
uri="http://java.sun.com/jsp/jstl/core" prefix="c"
%>
-<%@ taglib
uri="http://jakarta.apache.org/struts/tags-html"
prefix="html" %>
-<%@ taglib
uri="http://jakarta.apache.org/struts/tags-bean"
prefix="bean" %>
-<%@ taglib
uri="http://rhn.redhat.com/tags/list" prefix="rl"
%>
-
-<html:xhtml/>
-<html>
-<head>
- <meta name="page-decorator" content="none" />
- <script src="/javascript/tree.js"
type="text/javascript"></script>
-</head>
-<body>
-<rhn:toolbar base="h1" img="/img/rhn-icon-system.gif"
imgAlt="system.common.systemAlt"
-
helpUrl="/rhn/help/reference/en-US/s1-sm-systems.jsp#s3-sm-system-list-ood">
- <bean:message key="duplicate-ip.jsp.header"/>
-</rhn:toolbar>
-<p>
-<bean:message key="duplicate-ip.jsp.message"/>
-</p>
-
-<rl:listset name="DupesListSet" legend="system">
-
-
- <div align="right">
- <bean:message key="duplicate-ip.jsp.inactive.header"/>
- <select name="inactive_count"
onChange="this.form.submit();">
- <option value="4" <c:if test="${4 ==
inactive_count}">selected="selected"</c:if> >
- <bean:message key="duplicate-ip.jsp.inactive.fourhours"/>
- </option>
- <option value="12" <c:if test="${12 ==
inactive_count}">selected="selected"</c:if> >
- <bean:message key="duplicate-ip.jsp.inactive.twelvehours"/>
- </option>
- <option value="24" <c:if test="${24 ==
inactive_count}">selected="selected"</c:if> >
- <bean:message key="duplicate-ip.jsp.inactive.oneday"/>
- </option>
- <option value="168" <c:if test="${168 ==
inactive_count}">selected="selected"</c:if> >
- <bean:message key="duplicate-ip.jsp.inactive.oneweek"/>
- </option>
- <option value="720" <c:if test="${720 ==
inactive_count}">selected="selected"</c:if> >
- <bean:message key="duplicate-ip.jsp.inactive.onemonth"/>
- </option>
- <option value="4320" <c:if test="${4320 ==
inactive_count}">selected="selected"</c:if> >
- <bean:message key="duplicate-ip.jsp.inactive.sixmonths"/>
- </option>
- </select>
- </div>
-
-
-<rl:list
- emptykey="nosystems.message"
- parentiselement = "false"
- searchchild="false"
- >
-
-
-
-
- <rl:rowrenderer name="ExpandableRowRenderer" />
- <rl:decorator name="SelectableDecorator"/>
- <rl:decorator name="ExpansionDecorator"/>
- <rl:decorator name="ExtraButtonDecorator"/>
- <c:choose>
- <c:when test = "${rl:expandable(current)}">
- <rl:selectablecolumn value="${current.key}"
- styleclass="first-column"/>
- </c:when>
- <c:otherwise>
- <rl:selectablecolumn value="${current.id}"
- styleclass="first-column"/>
-
- </c:otherwise>
- </c:choose>
-
-
- <!-- Name Column -->
- <rl:column headerkey="systemlist.jsp.system" filterattr="key"
filtermessage="row.ip">
- <rl:expandable rendericon="true">${current.key}
<em>(<bean:message key="manysystems.message"
arg0="${rl:countChildren(current)}"/>)</em> </rl:expandable>
-
- <rl:non-expandable rendericon="true">
- <c:out value="<a
href=\"/rhn/systems/details/Overview.do?sid=${current.id}\">"
escapeXml="false" />
- <c:choose>
- <c:when test="${empty current.name}">
- <bean:message key="sdc.details.overview.unknown"/>
- </c:when>
- <c:otherwise>
- <c:out value="${current.name}</a>" escapeXml="false"
/>
- </c:otherwise>
- </c:choose>
- </rl:non-expandable>
- </rl:column>
- <rl:column headerkey="systemlist.jsp.last_checked_in"
- styleclass="last-column">
- <rl:non-expandable>
- ${current.lastCheckinString}
- </rl:non-expandable>
- </rl:column>
-
-</rl:list>
-
-<rl:csv exportColumns="key"/>
-
-<rhn:submitted/>
-
-</rl:listset>
-
-
-</body>
-</html>
diff --git a/java/code/webapp/WEB-INF/pages/systems/duplicate/duplicatesystems.jsp
b/java/code/webapp/WEB-INF/pages/systems/duplicate/duplicatesystems.jsp
new file mode 100644
index 0000000..ce48ece
--- /dev/null
+++ b/java/code/webapp/WEB-INF/pages/systems/duplicate/duplicatesystems.jsp
@@ -0,0 +1,112 @@
+<%@ taglib
uri="http://rhn.redhat.com/rhn" prefix="rhn" %>
+<%@ taglib
uri="http://java.sun.com/jsp/jstl/core" prefix="c"
%>
+<%@ taglib
uri="http://jakarta.apache.org/struts/tags-html"
prefix="html" %>
+<%@ taglib
uri="http://jakarta.apache.org/struts/tags-bean"
prefix="bean" %>
+<%@ taglib
uri="http://rhn.redhat.com/tags/list" prefix="rl"
%>
+
+<html:xhtml/>
+<html>
+<head>
+ <meta name="page-decorator" content="none" />
+ <script src="/javascript/tree.js"
type="text/javascript"></script>
+</head>
+<body>
+<rhn:toolbar base="h1" img="/img/rhn-icon-system.gif"
imgAlt="system.common.systemAlt"
+
helpUrl="/rhn/help/reference/en-US/s1-sm-systems.jsp#s3-sm-system-list-ood">
+ <bean:message key="duplicates.jsp.header"/>
+</rhn:toolbar>
+
+<c:choose>
+ <c:when test="${not empty requestScope.hostname}">
+ <c:set var="filtermessage" value="row.hostname"/>
+ </c:when>
+ <c:when test="${not empty requestScope.ip}">
+ <c:set var="filtermessage" value="row.ip"/>
+ </c:when>
+ <c:otherwise>
+ <c:set var="filtermessage" value="row.macaddress"/>
+ </c:otherwise>
+</c:choose>
+
+
+<rl:listset name="DupesListSet" legend="system">
+
+ <p><bean:message key="duplicate.jsp.message"/><br/>
+ <bean:message key="duplicate-ip.jsp.inactive.header"/>
+ <select name="inactive_count"
onChange="this.form.submit();">
+ <option value="4" <c:if test="${4 ==
inactive_count}">selected="selected"</c:if> >
+ <bean:message key="duplicate-ip.jsp.inactive.fourhours"/>
+ </option>
+ <option value="12" <c:if test="${12 ==
inactive_count}">selected="selected"</c:if> >
+ <bean:message key="duplicate-ip.jsp.inactive.twelvehours"/>
+ </option>
+ <option value="24" <c:if test="${24 ==
inactive_count}">selected="selected"</c:if> >
+ <bean:message key="duplicate-ip.jsp.inactive.oneday"/>
+ </option>
+ <option value="168" <c:if test="${168 ==
inactive_count}">selected="selected"</c:if> >
+ <bean:message key="duplicate-ip.jsp.inactive.oneweek"/>
+ </option>
+ <option value="720" <c:if test="${720 ==
inactive_count}">selected="selected"</c:if> >
+ <bean:message key="duplicate-ip.jsp.inactive.onemonth"/>
+ </option>
+ <option value="4320" <c:if test="${4320 ==
inactive_count}">selected="selected"</c:if> >
+ <bean:message key="duplicate-ip.jsp.inactive.sixmonths"/>
+ </option>
+ </select>
+ </p>
+<rhn:dialogmenu mindepth="0" maxdepth="1"
definition="/WEB-INF/nav/duplicate_systems_tabs.xml"
+ renderer="com.redhat.rhn.frontend.nav.DialognavRenderer" />
+<rl:list
+ emptykey="nosystems.message"
+ parentiselement = "false"
+ searchchild="false"
+ >
+
+ <rl:rowrenderer name="ExpandableRowRenderer" />
+ <rl:decorator name="SelectableDecorator"/>
+ <rl:decorator name="ExpansionDecorator"/>
+ <rl:decorator name="ExtraButtonDecorator"/>
+ <c:choose>
+ <c:when test = "${rl:expandable(current)}">
+ <rl:selectablecolumn value="${current.key}"
+ styleclass="first-column"/>
+ </c:when>
+ <c:otherwise>
+ <rl:selectablecolumn value="${current.id}"
+ styleclass="first-column"/>
+
+ </c:otherwise>
+ </c:choose>
+
+
+ <!-- Name Column -->
+ <rl:column headerkey="systemlist.jsp.system" filterattr="key"
filtermessage="${filtermessage}">
+ <rl:expandable rendericon="true">${current.key}
<em>(<bean:message key="manysystems.message"
arg0="${rl:countChildren(current)}"/>)</em> </rl:expandable>
+
+ <rl:non-expandable rendericon="true">
+ <c:out value="<a
href=\"/rhn/systems/details/Overview.do?sid=${current.id}\">"
escapeXml="false" />
+ <c:choose>
+ <c:when test="${empty current.name}">
+ <bean:message key="sdc.details.overview.unknown"/>
+ </c:when>
+ <c:otherwise>
+ <c:out value="${current.name}</a>" escapeXml="false"
/>
+ </c:otherwise>
+ </c:choose>
+ </rl:non-expandable>
+ </rl:column>
+ <rl:column headerkey="systemlist.jsp.last_checked_in"
+ styleclass="last-column">
+ <rl:non-expandable>
+ ${current.lastCheckinString}
+ </rl:non-expandable>
+ </rl:column>
+
+</rl:list>
+<rhn:submitted/>
+
+</rl:listset>
+
+
+</body>
+</html>
diff --git a/java/code/webapp/WEB-INF/struts-config.xml
b/java/code/webapp/WEB-INF/struts-config.xml
index 8bc9801..acf0120 100644
--- a/java/code/webapp/WEB-INF/struts-config.xml
+++ b/java/code/webapp/WEB-INF/struts-config.xml
@@ -2406,16 +2406,44 @@
<action path="/systems/DuplicateIPList"
scope="request"
- input="/WEB-INF/pages/systems/duplicate/duplicateIPList.jsp"
-
type="com.redhat.rhn.frontend.action.systems.duplicate.DuplicateIPListAction"
+ input="/WEB-INF/pages/systems/duplicate/duplicatesystems.jsp"
+
type="com.redhat.rhn.frontend.action.systems.duplicate.DuplicateSystemsAction"
className="com.redhat.rhn.frontend.struts.RhnActionMapping"
- parameter="dispatch">
+ parameter="ip">
+ <forward name="default"
+
path="/WEB-INF/pages/systems/duplicate/duplicatesystems.jsp"/>
+ <forward name="success"
+ path="/systems/Overview.do"
+ redirect="true"/>
+ </action>
+
+ <action path="/systems/DuplicateHostName"
+ scope="request"
+ input="/WEB-INF/pages/systems/duplicate/duplicatesystems.jsp"
+
type="com.redhat.rhn.frontend.action.systems.duplicate.DuplicateSystemsAction"
+ className="com.redhat.rhn.frontend.struts.RhnActionMapping"
+ parameter="hostname">
<forward name="default"
-
path="/WEB-INF/pages/systems/duplicate/duplicateIPList.jsp"/>
+
path="/WEB-INF/pages/systems/duplicate/duplicatesystems.jsp"/>
<forward name="success"
path="/systems/Overview.do"
redirect="true"/>
</action>
+
+ <action path="/systems/DuplicateMacAddress"
+ scope="request"
+ input="/WEB-INF/pages/systems/duplicate/duplicatesystems.jsp"
+
type="com.redhat.rhn.frontend.action.systems.duplicate.DuplicateSystemsAction"
+ className="com.redhat.rhn.frontend.struts.RhnActionMapping"
+ parameter="macaddress">
+ <forward name="default"
+
path="/WEB-INF/pages/systems/duplicate/duplicatesystems.jsp"/>
+ <forward name="success"
+ path="/systems/Overview.do"
+ redirect="true"/>
+ </action>
+
+
<action path="/systems/OutOfDate"
scope="request"