java/code/src/com/redhat/rhn/common/db/datasource/xml/Channel_queries.xml | 12 java/code/src/com/redhat/rhn/frontend/action/systems/SSMUpdateHardwareProfileConfirm.java | 5 java/code/src/com/redhat/rhn/frontend/action/token/ActivationKeyChildChannelsAction.java | 150 ++++++++++ java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml | 14 java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java | 2 java/code/webapp/WEB-INF/nav/activation_key.xml | 2 java/code/webapp/WEB-INF/pages/activationkeys/childchannels/listeditchannels.jsp | 73 ++++ java/code/webapp/WEB-INF/struts-config.xml | 20 + web/html/nav/activation_key.xml | 2 9 files changed, 272 insertions(+), 8 deletions(-)
New commits: commit b7cdf573fe80002d7575958fa42cafebf9e0587f Author: Colin Coe coec@war.coesta.com Date: Mon Oct 4 22:02:51 2010 +0800
Fix checkstyle errors
diff --git a/java/code/src/com/redhat/rhn/frontend/action/token/ActivationKeyChildChannelsAction.java b/java/code/src/com/redhat/rhn/frontend/action/token/ActivationKeyChildChannelsAction.java index f55b2c1..2dd7a6c 100644 --- a/java/code/src/com/redhat/rhn/frontend/action/token/ActivationKeyChildChannelsAction.java +++ b/java/code/src/com/redhat/rhn/frontend/action/token/ActivationKeyChildChannelsAction.java @@ -51,10 +51,10 @@ public class ActivationKeyChildChannelsAction extends RhnAction { private static final String POSSIBLE_CHANNELS = "possibleChannels"; private static final String SELECTED_CHANNEL = "selectedChannel";
- - - /** { inheritDoc} */ - @Override + /** + * + * {@inheritDoc} + */ public ActionForward execute(ActionMapping mapping, ActionForm formIn, HttpServletRequest request,
commit 35d9a4b6ea2e8d50685260cda0394f25e779ca28 Author: Colin Coe coec@war.coesta.com Date: Mon Oct 4 21:58:30 2010 +0800
Remove commented code in SSMUpdateHardwareProfileConfirm.java
diff --git a/java/code/src/com/redhat/rhn/frontend/action/systems/SSMUpdateHardwareProfileConfirm.java b/java/code/src/com/redhat/rhn/frontend/action/systems/SSMUpdateHardwareProfileConfirm.java index 3985d6d..376ac15 100644 --- a/java/code/src/com/redhat/rhn/frontend/action/systems/SSMUpdateHardwareProfileConfirm.java +++ b/java/code/src/com/redhat/rhn/frontend/action/systems/SSMUpdateHardwareProfileConfirm.java @@ -67,14 +67,9 @@ public class SSMUpdateHardwareProfileConfirm extends RhnAction implements Listab if (isSubmitted(daForm)) { Iterator it = set.iterator(); Set<Long> serverIds = new HashSet<Long>(); -// Long serverIds[] = new Long[set.size()]; -// Integer i = 0; while (it.hasNext()) { Long sid = ((RhnSetElement)it.next()).getElement(); serverIds.add(sid); -// Server server = SystemManager.lookupByIdAndUser(sid, user); -// serverIds[i] = sid; -// i++; } Date now = new Date();
commit 531cc97fec1b13ae20d6cbac2b62f694ea6abbcb Author: Colin Coe coec@war.coesta.com Date: Mon Oct 4 21:56:25 2010 +0800
Port /network/account/activation_keys/child_channels.pxt
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Channel_queries.xml b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Channel_queries.xml index 0255e9f..cdda7a3 100644 --- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Channel_queries.xml +++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Channel_queries.xml @@ -1251,6 +1251,18 @@ END; </query> </callable-mode>
+<mode name="activation_key_child_channels"> + <query params="token_id, user_id"> + SELECT DISTINCT c1.id as id, + (select name from rhnChannel C2 where c1.parent_channel = c2.id) parent, + c1.name as name, + NVL2((SELECT 1 FROM rhnRegTokenChannels WHERE token_id = :token_id AND channel_id = c1.id), 'selected', '') s + FROM rhnChannel c1 inner join rhnUserChannel UC on UC.channel_id = C1.id + AND c1.parent_channel IS NOT NULL + AND UC.user_id = :user_id + ORDER BY parent, name + </query> +</mode> <callable-mode name="can_convert_to_flex"> <query params="result, sid, cfid"> {:result = call rhn_channel.convert_to_fve(:sid, :cfid)} diff --git a/java/code/src/com/redhat/rhn/frontend/action/token/ActivationKeyChildChannelsAction.java b/java/code/src/com/redhat/rhn/frontend/action/token/ActivationKeyChildChannelsAction.java new file mode 100644 index 0000000..f55b2c1 --- /dev/null +++ b/java/code/src/com/redhat/rhn/frontend/action/token/ActivationKeyChildChannelsAction.java @@ -0,0 +1,150 @@ +/** + * Copyright (c) 2009--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.token; + +import com.redhat.rhn.common.db.datasource.DataResult; +import com.redhat.rhn.common.db.datasource.ModeFactory; +import com.redhat.rhn.common.db.datasource.SelectMode; +import com.redhat.rhn.domain.channel.Channel; +import com.redhat.rhn.domain.channel.ChannelFactory; +import com.redhat.rhn.domain.token.ActivationKey; +import com.redhat.rhn.domain.token.ActivationKeyFactory; +import com.redhat.rhn.domain.user.User; +import com.redhat.rhn.frontend.struts.RequestContext; +import com.redhat.rhn.frontend.struts.RhnAction; +import com.redhat.rhn.manager.token.ActivationKeyManager; + +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.ActionMessage; +import org.apache.struts.action.ActionMessages; +import org.apache.struts.action.DynaActionForm; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + + +/** + * ActivationKeyDetailsAction + * @version $Rev$ + */ +public class ActivationKeyChildChannelsAction extends RhnAction { + private static final String CHANNELS = "channels"; + private static final Long DEFAULT_CHANNEL_ID = -1L; + private static final String POSSIBLE_CHANNELS = "possibleChannels"; + private static final String SELECTED_CHANNEL = "selectedChannel"; + + + + /** { inheritDoc} */ + @Override + public ActionForward execute(ActionMapping mapping, + ActionForm formIn, + HttpServletRequest request, + HttpServletResponse response) throws Exception { + RequestContext context = new RequestContext(request); + DynaActionForm form = (DynaActionForm) formIn; + + ActivationKey key = context.lookupAndBindActivationKey(); + Map params = new HashMap(); + String fwd = "default"; + + request.setAttribute("description", key.getNote()); + + if (context.isSubmitted()) { + params.put(RequestContext.TOKEN_ID, key.getId().toString()); + update(form, context); + fwd = "success"; + } + else { + populateForm(form, key, context); + } + + return getStrutsDelegate().forwardParams( + mapping.findForward(fwd), params); + + } + + private ActivationKey update(DynaActionForm form, RequestContext context) { + User user = context.getLoggedInUser(); + ActivationKeyManager manager = ActivationKeyManager.getInstance(); + ActivationKey key = context.lookupAndBindActivationKey(); + + Channel base = key.getBaseChannel(); + key.clearChannels(); + if (base != null) { + key.addChannel(base); + } + + for (String id : (String[])form.get("childChannels")) { + key.addChannel(ChannelFactory.lookupById(Long.parseLong(id.trim()))); + } + + ActivationKeyFactory.save(key); + ActionMessages msg = new ActionMessages(); + addToMessage(msg, "activation-key.java.modified", key.getNote()); + + getStrutsDelegate().saveMessages(context.getRequest(), msg); + return key; + } + + private void populateForm(DynaActionForm form, ActivationKey key, + RequestContext context) { + context.getRequest().setAttribute(CHANNELS, key.getChannels()); + + User user = context.getLoggedInUser(); + DataResult<HashMap> channelList = getPossibleChannels(user, key.getId()); + ArrayList finalList = new ArrayList(); + + if (key.getBaseChannel() != null) { + for (HashMap c : channelList) { + Long id = (Long)c.get("id"); + if (ChannelFactory.lookupById(id).getParentChannel().getId() == + key.getBaseChannel().getId()) { + finalList.add(c); + } + } + context.getRequest().setAttribute("baseChannel", + key.getBaseChannel().getName()); + } + else { + finalList = (ArrayList)channelList; + } + context.getRequest().setAttribute(CHANNELS, finalList); + form.set(CHANNELS, finalList); + } + + private void addToMessage(ActionMessages msgs, String key, Object... args) { + ActionMessage temp = new ActionMessage(key, args); + msgs.add(ActionMessages.GLOBAL_MESSAGE, temp); + } + + private static DataResult getPossibleChannels(User user, Long tokenId) { + SelectMode m = ModeFactory.getMode("Channel_queries", + "activation_key_child_channels"); + Map params = new HashMap(); + params.put("user_id", user.getId()); + params.put("token_id", tokenId); + DataResult list = m.execute(params); + list.elaborate(); + return list; + } + +} 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 175754f..6daaf24 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 @@ -12939,6 +12939,20 @@ the <strong>Red Hat Enterprise Linux System Administration Guide.</stro
<group> <context-group name="ctx"> + <context context-type="sourcefile">/rhn/activationkeys/childchannels/* pages</context> + </context-group> + + <trans-unit id="activation-key.childchannels.jsp.summary"> + <source>Any system registered using this activation key will be subscribed to the selected child channels.</source> + </trans-unit> + + <trans-unit id="activation-key.childchannels.jsp.blurb"> + <source>The following child channels of <strong>{0}</strong> can be associated with this activation key.</source> + </trans-unit> + </group> + + <group> + <context-group name="ctx"> <context context-type="sourcefile">/rhn/activationkeys/configuration/* pages</context> </context-group>
diff --git a/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java b/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java index 3f4c6c3..47d1002 100644 --- a/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java +++ b/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java @@ -508,7 +508,7 @@ public class ChannelManager extends BaseManager {
/** * Returns a list of ChannelTreeNodes that have orgId null - * or has a prarent with org_id null + * or has a parent with org_id null * @param user who we are requesting Red Hat channels for * @param lc ListControl to use * @return list of ChannelTreeNode's diff --git a/java/code/webapp/WEB-INF/nav/activation_key.xml b/java/code/webapp/WEB-INF/nav/activation_key.xml index c2b48c5..4343276 100644 --- a/java/code/webapp/WEB-INF/nav/activation_key.xml +++ b/java/code/webapp/WEB-INF/nav/activation_key.xml @@ -2,7 +2,7 @@ <rhn-navi-tree label="activation_key" invisible="1" title-depth="1" formvar="tid" acl_mixins="com.redhat.rhn.common.security.acl.ActivationKeyAclHandler"> <rhn-tab name="Details" url="/rhn/activationkeys/Edit.do" /> - <rhn-tab name="Child Channels" url="/network/account/activation_keys/child_channels.pxt" /> + <rhn-tab name="Child Channels" url="/rhn/activationkeys/channels/ChildChannels.do"/>
<rhn-tab name="Packages" url="/rhn/activationkeys/packages/Packages.do"/> diff --git a/java/code/webapp/WEB-INF/pages/activationkeys/childchannels/listeditchannels.jsp b/java/code/webapp/WEB-INF/pages/activationkeys/childchannels/listeditchannels.jsp new file mode 100644 index 0000000..4b1d99f --- /dev/null +++ b/java/code/webapp/WEB-INF/pages/activationkeys/childchannels/listeditchannels.jsp @@ -0,0 +1,73 @@ +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<%@ taglib uri="http://rhn.redhat.com/rhn" prefix="rhn" %> +<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %> +<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %> + +<html> + +<head> + <meta name="name" value="activationkeys.jsp.header" /> +</head> + +<body> +<%@ include file="/WEB-INF/pages/common/fragments/activationkeys/common-header.jspf" %> + +<html:form action="/activationkeys/channels/ChildChannels"> + + <div class="page-summary"> + <p> + <bean:message key="activation-key.childchannels.jsp.summary"/> + </p> + <c:if test='${not empty baseChannel}'> + <bean:message key="activation-key.childchannels.jsp.blurb" arg0="${baseChannel}"/> + </c:if> + + <table class="details"> + <tr> + <td> + <select multiple="multiple" name="childChannels" size="6"> + <c:set var="first" scope="session" value="yes"/> + <c:forEach items="${channels}" var="channel" varStatus="loop"> + <c:choose> + <c:when test="${first == 'yes'}"> + <c:set var="first" scope="session" value="no"/> + <c:set var="last_parent" scope="session" value="${channel.parent}"/> + <c:if test="${empty baseChannel}"> + <optgroup label="${channel.parent}"> + </c:if> + </c:when> + <c:otherwise> + <c:if test="${(channel.parent != last_parent) && empty baseChannel}"> + </optgroup> + <optgroup label="${channel.parent}"> + </c:if> + </c:otherwise> + </c:choose> + <option value="${channel.id}" ${channel.s}>${channel.name}</option> + <c:set var="last_parent" scope="session" value="${channel.parent}"/> + </c:forEach> + <c:if test="${empty baseChannel}"> + </optgroup> + </c:if> + </select> + </td> + </tr> + </table> + + <div align="right"> + rhn:submitted/ + <hr/> + <input type="submit" name ="dispatch" value='<bean:message key="keyedit.jsp.submit"/>'/> + </div> + + <html:hidden property="submitted" value="true" /> + <c:if test='${not empty param.tid}'> + <html:hidden property="tid" value="${param.tid}" /> + </c:if> + + </div> +</html:form> + +</body> +</html> + diff --git a/java/code/webapp/WEB-INF/struts-config.xml b/java/code/webapp/WEB-INF/struts-config.xml index f872e86..d4c7c16 100644 --- a/java/code/webapp/WEB-INF/struts-config.xml +++ b/java/code/webapp/WEB-INF/struts-config.xml @@ -27,6 +27,12 @@ <form-property name="packages" type="java.lang.String"/> <form-property name="submitted" type="java.lang.Boolean"/> </form-bean> + <form-bean name="activationKeyChildChannelForm" + type="com.redhat.rhn.frontend.struts.ScrubbingDynaActionForm"> + <form-property name="channels" type="java.util.ArrayList"/> + <form-property name="childChannels" type="java.lang.String[]"/> + <form-property name="submitted" type="java.lang.Boolean"/> + </form-bean> <form-bean name="storedProfileForm" type="com.redhat.rhn.frontend.struts.ScrubbingDynaActionForm"> <form-property name="name" type="java.lang.String"/> @@ -4912,6 +4918,20 @@ path="/activationkeys/List.do"/> </action>
+ <action path="/activationkeys/channels/ChildChannels" + name="activationKeyChildChannelForm" + scope="request" + input="/WEB-INF/pages/activationkeys/childchannels/listeditchannels.jsp" + type="com.redhat.rhn.frontend.action.token.ActivationKeyChildChannelsAction" + className="com.redhat.rhn.frontend.struts.RhnActionMapping" + parameter="dispatch"> + <set-property property="acls" value="user_role(activation_key_admin)"/> + <forward name="default" + path="/WEB-INF/pages/activationkeys/childchannels/listeditchannels.jsp"/> + <forward name="success" redirect="true" + path="/activationkeys/channels/ChildChannels.do"/> + </action> + <action path="/activationkeys/packages/Packages" name="activationKeyPackagesForm" scope="request" diff --git a/web/html/nav/activation_key.xml b/web/html/nav/activation_key.xml index a0a1202..69a3ca7 100644 --- a/web/html/nav/activation_key.xml +++ b/web/html/nav/activation_key.xml @@ -3,7 +3,7 @@ <rhn-formvar name="tid" />
<rhn-tab name="Details" url="/rhn/activationkeys/Edit.do" /> - <rhn-tab name="Child Channels" url="/network/account/activation_keys/child_channels.pxt" /> + <rhn-tab name="Child Channels" url="/rhn/activationkeys/channels/ChildChannels.do"/>
<rhn-tab name="Packages" url="/rhn/activationkeys/packages/Packages.do"/>
spacewalk-commits@lists.fedorahosted.org