Author: snoopdave
Date: Mon Feb 6 07:21:30 2006
New Revision: 375297
URL: http://svn.apache.org/viewcvs?rev=375297&view=rev
Log:
ROL-736: made it possible to add one feed to multiple groups
Modified:
incubator/roller/trunk/src/org/roller/presentation/planet/PlanetSubscriptionsAction.java
Modified:
incubator/roller/trunk/src/org/roller/presentation/planet/PlanetSubscriptionsAction.java
URL:
http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/planet/PlanetSubscriptionsAction.java?rev=375297&r1=375296&r2=375297&view=diff
==============================================================================
---
incubator/roller/trunk/src/org/roller/presentation/planet/PlanetSubscriptionsAction.java
(original)
+++
incubator/roller/trunk/src/org/roller/presentation/planet/PlanetSubscriptionsAction.java
Mon Feb 6 07:21:30 2006
@@ -182,7 +182,7 @@
return forward;
}
- /** Save subscription, add to "external" group */
+ /** Save subscription, add to current group */
public ActionForward saveSubscription(ActionMapping mapping,
ActionForm actionForm, HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException
{
@@ -203,13 +203,24 @@
PlanetSubscriptionData sub = null;
ActionErrors errors = validate(planet, form);
if (errors.isEmpty()) {
- if (form.getId() == null || form.getId().trim().length()
== 0) {
- sub = new PlanetSubscriptionData();
+ if (form.getId() == null || form.getId().trim().length()
== 0) {
+ // User adding new subscription to group.
+ // Does form specify a subscription that already
exists?
+ if (form.getFeedUrl() != null) {
+ sub = planet.getSubscription(form.getFeedUrl());
+ }
+ // If not, then create a new one
+ if (sub == null) {
+ sub = new PlanetSubscriptionData();
+ }
+ // And add it to the group
targetGroup.addSubscription(sub);
+
} else {
+ // User editing an existing subscription within a group
sub = planet.getSubscriptionById(form.getId());
- }
- form.copyTo(sub, request.getLocale());
+ form.copyTo(sub, request.getLocale());
+ }
form.setGroupHandle(groupHandle);
planet.saveSubscription(sub);
planet.saveGroup(targetGroup);