java/code/src/com/redhat/rhn/frontend/action/channel/manage/DeleteChannelAction.java |
32 +++++++++-
java/code/src/com/redhat/rhn/frontend/action/rhnpackage/CustomPackageListAction.java |
7 +-
java/code/webapp/WEB-INF/struts-config.xml |
1
3 files changed, 36 insertions(+), 4 deletions(-)
New commits:
commit 731a4a32b8acf9da74fb47797be67967a0e165ba
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Tue Nov 27 15:00:52 2012 +0100
519472 - suggest deleting custom packages after a channel is deleted
diff --git
a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/DeleteChannelAction.java
b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/DeleteChannelAction.java
index 587f834..c193f35 100644
---
a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/DeleteChannelAction.java
+++
b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/DeleteChannelAction.java
@@ -14,20 +14,30 @@
*/
package com.redhat.rhn.frontend.action.channel.manage;
+import com.redhat.rhn.common.db.datasource.DataResult;
import com.redhat.rhn.common.security.PermissionException;
import com.redhat.rhn.common.validator.ValidatorException;
+import com.redhat.rhn.domain.Identifiable;
import com.redhat.rhn.domain.channel.Channel;
+import com.redhat.rhn.domain.rhnset.RhnSet;
+import com.redhat.rhn.domain.rhnset.RhnSetFactory;
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.frontend.struts.RhnHelper;
import com.redhat.rhn.manager.channel.ChannelManager;
+import com.redhat.rhn.manager.rhnpackage.PackageManager;
+import com.redhat.rhn.manager.rhnset.RhnSetDecl;
import com.redhat.rhn.manager.system.SystemManager;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -74,8 +84,10 @@ public class DeleteChannelAction extends RhnAction {
boolean override = request.getParameter("unsubscribeSystems") !=
null;
if (override || subscribedSystemsCount == 0) {
-
+ DataResult dr;
try {
+ dr = PackageManager.listCustomPackageForChannel(channelId,
+ user.getOrg().getId());
ChannelManager.deleteChannel(user, channelLabel);
}
catch (PermissionException e) {
@@ -89,6 +101,15 @@ public class DeleteChannelAction extends RhnAction {
}
createSuccessMessage(request, "message.channeldeleted",
channel.getName());
+ if (dr.size() > 0) {
+
prefillRhnSetWithElements(RhnSetDecl.DELETABLE_PACKAGE_LIST.get(user),
+ dr.iterator());
+ Map params = new HashMap();
+ params.put("selected_channel",
"all_managed_packages");
+ params.put("forwarded", "true");
+ return
getStrutsDelegate().forwardParams(actionMapping.findForward("delete"),
+ params);
+ }
return actionMapping.findForward("success");
}
addMessage(request, "message.channel.delete.systemssubscribed");
@@ -102,4 +123,13 @@ public class DeleteChannelAction extends RhnAction {
return actionMapping.findForward(RhnHelper.DEFAULT_FORWARD);
}
+
+ private void prefillRhnSetWithElements(RhnSet set, Iterator identifiables) {
+ set.clear();
+ while (identifiables.hasNext()) {
+ Identifiable tkn = (Identifiable) identifiables.next();
+ set.addElement(tkn.getId());
+ }
+ RhnSetFactory.save(set);
+ }
}
diff --git
a/java/code/src/com/redhat/rhn/frontend/action/rhnpackage/CustomPackageListAction.java
b/java/code/src/com/redhat/rhn/frontend/action/rhnpackage/CustomPackageListAction.java
index 523fca3..063cfb4 100644
---
a/java/code/src/com/redhat/rhn/frontend/action/rhnpackage/CustomPackageListAction.java
+++
b/java/code/src/com/redhat/rhn/frontend/action/rhnpackage/CustomPackageListAction.java
@@ -136,12 +136,13 @@ public class CustomPackageListAction extends RhnAction {
//true if they clicked view packages
boolean viewPackagesPressed = LocalizationService.getInstance().getMessage(
"channel.jsp.package.viewpackages").equals(request.getParameter("view"));
-
+ boolean forwarded = request.getParameter("forwarded") != null;
String alphaBarPressed = request.getParameter(
AlphaBarHelper.makeAlphaKey(TagHelper.generateUniqueName(listName)));
- if (!requestContext.isSubmitted() && alphaBarPressed == null ||
- viewPackagesPressed) {
+ if (!forwarded &&
+ (!requestContext.isSubmitted() && alphaBarPressed == null ||
+ viewPackagesPressed)) {
set.clear();
RhnSetManager.store(set);
}
diff --git a/java/code/webapp/WEB-INF/struts-config.xml
b/java/code/webapp/WEB-INF/struts-config.xml
index 00ffc82..0b44ba8 100644
--- a/java/code/webapp/WEB-INF/struts-config.xml
+++ b/java/code/webapp/WEB-INF/struts-config.xml
@@ -7374,6 +7374,7 @@
className="com.redhat.rhn.frontend.struts.RhnActionMapping">
<set-property property="postRequiredIfSubmitted"
value="true" />
<forward name="default"
path="/WEB-INF/pages/channel/manage/delete.jsp"/>
+ <forward name="delete"
path="/software/manage/packages/PackageList.do" redirect="true" />
<forward name="success" path="/channels/manage/Manage.do"
redirect="true" />
</action>
Show replies by date