KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > cms > subscribe > action > MailingListsSubscribeAction


1 package com.dotmarketing.cms.subscribe.action;
2
3 import java.util.ArrayList JavaDoc;
4 import java.util.Iterator JavaDoc;
5 import java.util.List JavaDoc;
6
7 import javax.servlet.http.HttpServletRequest JavaDoc;
8 import javax.servlet.http.HttpServletResponse JavaDoc;
9
10 import org.apache.struts.action.ActionForm;
11 import org.apache.struts.action.ActionForward;
12 import org.apache.struts.action.ActionMapping;
13 import org.apache.struts.actions.DispatchAction;
14
15 import com.dotmarketing.beans.UserProxy;
16 import com.dotmarketing.cms.factories.PublicUserFactory;
17 import com.dotmarketing.cms.subscribe.struts.MailingListsSubscribeForm;
18 import com.dotmarketing.factories.InodeFactory;
19 import com.dotmarketing.factories.UserProxyFactory;
20 import com.dotmarketing.portlets.mailinglists.factories.MailingListFactory;
21 import com.dotmarketing.portlets.mailinglists.model.MailingList;
22 import com.dotmarketing.util.WebKeys;
23 import com.liferay.portal.model.User;
24
25 /**
26  *
27  * @author David
28  * @version $Revision: 1.2 $
29  *
30  */

31 public class MailingListsSubscribeAction extends DispatchAction {
32     public ActionForward unspecified(ActionMapping mapping, ActionForm lf, HttpServletRequest JavaDoc request,
33             HttpServletResponse JavaDoc response) throws Exception JavaDoc {
34
35         List JavaDoc mailingLists = MailingListFactory.getAllPublicLists();
36         
37         request.setAttribute("mailing_lists", mailingLists);
38
39         request.setAttribute("mailing_list_unsubscribers", WebKeys.MAILING_LIST_UNSUBSCRIBERS);
40
41         String JavaDoc email = request.getParameter("email");
42         if(email==null)
43             email="";
44         
45         User u = PublicUserFactory.getUserByEmail(email);
46         UserProxy s = UserProxyFactory.getUserProxy(u);
47         if (s.getInode() > 0) {
48             ArrayList JavaDoc inodes = new ArrayList JavaDoc ();
49             Iterator JavaDoc it = mailingLists.iterator();
50             while (it.hasNext()) {
51                 MailingList ml = (MailingList) it.next();
52                 List JavaDoc children = InodeFactory.getChildrenClass(ml, UserProxy.class);
53                 if (children.contains(s))
54                     inodes.add(String.valueOf(ml.getInode()));
55             }
56             request.setAttribute("name", u.getFirstName());
57             request.setAttribute("lastname", u.getLastName());
58             request.setAttribute("subs_mailing_lists_inodes", inodes);
59             
60         } else {
61             request.setAttribute("subs_mailing_lists_inodes", new ArrayList JavaDoc ());
62
63         }
64         return mapping.findForward("subscribePage");
65     }
66
67     public ActionForward subscribe(ActionMapping mapping, ActionForm lf, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
68             throws Exception JavaDoc {
69         
70         MailingListsSubscribeForm form = (MailingListsSubscribeForm) lf;
71         if (form.isUnsubscribeFromAll()) {
72             MailingList ml = MailingListFactory.getUnsubscribersMailingList();
73             User u = PublicUserFactory.getUserByEmail(form.getEmailAddress());
74             UserProxy s = UserProxyFactory.getUserProxy(u);
75
76             if (s.getInode() > 0) {
77                 ml.addChild(s);
78                 List JavaDoc mailingLists = MailingListFactory.getAllPublicLists();
79                 Iterator JavaDoc it = mailingLists.iterator();
80                 while (it.hasNext()) {
81                     MailingList ml2 = (MailingList) it.next();
82                     ml2.deleteChild(s);
83                 }
84                 ml.addChild(s);
85             } else {
86                 InodeFactory.saveInode(s);
87                 ml.addChild(s);
88             }
89             request.setAttribute("subscription", "false");
90         } else {
91             User u = PublicUserFactory.getUserByEmail(form.getEmailAddress());
92             UserProxy s = UserProxyFactory.getUserProxy(u);
93             if (s.getInode() > 0) {
94                 List JavaDoc mailingLists = MailingListFactory.getAllPublicLists();
95                 Iterator JavaDoc it = mailingLists.iterator();
96                 while (it.hasNext()) {
97                     MailingList ml2 = (MailingList) it.next();
98                     ml2.deleteChild(s);
99                 }
100                 MailingList ml = MailingListFactory.getUnsubscribersMailingList();
101                 ml.deleteChild(s);
102             } else {
103                 InodeFactory.saveInode(s);
104             }
105             String JavaDoc[] inodes = form.getMailingListsInodes();
106             if(inodes != null) {
107                 for (int i = 0; i < inodes.length; i++) {
108                     MailingList ml = (MailingList) InodeFactory.getInode(inodes[i], MailingList.class);
109                     ml.addChild(s);
110                 }
111             }
112             request.setAttribute("subscription", "true");
113         }
114         return mapping.findForward("thankYouPage");
115     }
116     
117     
118
119 }
Popular Tags