KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > portlets > mailinglistbuilder > action > EditMailingListAction


1 package com.dotmarketing.portlets.mailinglistbuilder.action;
2
3 import java.util.List JavaDoc;
4
5 import javax.portlet.ActionRequest;
6 import javax.portlet.ActionResponse;
7 import javax.portlet.PortletConfig;
8 import javax.portlet.PortletSession;
9 import javax.portlet.RenderRequest;
10 import javax.portlet.RenderResponse;
11
12 import org.apache.struts.action.ActionForm;
13 import org.apache.struts.action.ActionForward;
14 import org.apache.struts.action.ActionMapping;
15
16 import com.dotmarketing.beans.UserProxy;
17 import com.dotmarketing.cms.factories.PublicUserFactory;
18 import com.dotmarketing.db.DotHibernate;
19 import com.dotmarketing.factories.InodeFactory;
20 import com.dotmarketing.factories.UserProxyFactory;
21 import com.dotmarketing.portal.struts.DotPortletAction;
22 import com.dotmarketing.portlets.mailinglistbuilder.struts.MailingListSearchForm;
23 import com.dotmarketing.portlets.mailinglists.factories.MailingListFactory;
24 import com.dotmarketing.portlets.mailinglists.model.MailingList;
25 import com.dotmarketing.util.WebKeys;
26 import com.liferay.portal.model.User;
27 import com.liferay.util.servlet.SessionMessages;
28
29 public class EditMailingListAction extends DotPortletAction {
30     
31     public ActionForward render(ActionMapping mapping, ActionForm form, PortletConfig config, RenderRequest req,
32             RenderResponse res) throws Exception JavaDoc {
33             return mapping.findForward("portlet.ext.mailinglistbuilder.view_mailinglist");
34     }
35     
36     public void processAction(ActionMapping mapping, ActionForm form, PortletConfig config, ActionRequest req,
37         ActionResponse res) throws Exception JavaDoc {
38         String JavaDoc cmd = req.getParameter(com.liferay.portal.util.Constants.CMD);
39         
40         String JavaDoc referer = req.getParameter("referer");
41         
42         User user = _getUser(req);
43         PortletSession sess = req.getPortletSession();
44         String JavaDoc[][] matchesArray = (String JavaDoc[][])sess.getAttribute(WebKeys.MAILINGLIST);
45         req.setAttribute(WebKeys.MAILINGLIST, matchesArray);
46         MailingListSearchForm mlForm = (MailingListSearchForm) form;
47         req.setAttribute(WebKeys.MAILINGLISTFORM, mlForm);
48         
49         // Saving Marketing List
50
if (com.liferay.portal.util.Constants.SAVE.equals(cmd)) {
51             try {
52                 _saveMarketingList(form,req,res, "0");
53             }
54             catch (Exception JavaDoc e) {
55                 _handleException(e,req);
56             }
57         }
58         if (com.liferay.portal.util.Constants.UPDATE.equals(cmd)) {
59             try {
60                 if (mlForm.getMailingListInode().equals("")) {
61                     SessionMessages.add(req, "message", "message.mailinglistbuilder.nolist");
62                 } else {
63                     _saveMarketingList(form,req,res, mlForm.getMailingListInode());
64                 }
65             }
66             catch (Exception JavaDoc e) {
67                 _handleException(e,req);
68             }
69         }
70         if (com.liferay.portal.util.Constants.DELETE.equals(cmd)) {
71
72             try {
73                 if (mlForm.getMailingListInode().equals("")) {
74                     SessionMessages.add(req, "message", "message.mailinglistbuilder.nolist");
75                 } else {
76                     _removeFromMarketingList(form,req,res, mlForm.getMailingListInode());
77                 }
78             }
79             catch (Exception JavaDoc e) {
80                 _handleException(e,req);
81             }
82         }
83
84
85         List JavaDoc list = MailingListFactory.getMailingListsByUser(user);
86         list.add(MailingListFactory.getUnsubscribersMailingList());
87         req.setAttribute(WebKeys.MAILING_LIST_VIEW, list);
88
89         setForward(req, "portlet.ext.mailinglistbuilder.view_mailinglist");
90     }
91     
92     private void _saveMarketingList(ActionForm form, ActionRequest req, ActionResponse res, String JavaDoc mailingListInode) throws Exception JavaDoc {
93         
94         User user = _getUser(req);
95         MailingListSearchForm mlForm = (MailingListSearchForm) form;
96         PortletSession sess = req.getPortletSession();
97         String JavaDoc[][] matchesArray = (String JavaDoc[][])sess.getAttribute(WebKeys.MAILINGLIST);
98
99         //Saving mailing list
100
MailingList ml = (MailingList) InodeFactory.getInode(mailingListInode,MailingList.class);
101         String JavaDoc cmd = req.getParameter(com.liferay.portal.util.Constants.CMD);
102         if (com.liferay.portal.util.Constants.SAVE.equals(cmd)) {
103             ml.setTitle(mlForm.getMailingListTitle());
104             ml.setPublicList(mlForm.isAllowPublicToSubscribe());
105             ml.setUserId(user.getUserId());
106         }
107         InodeFactory.saveInode(ml);
108         mlForm.setMailingListTitle("");
109         mlForm.setAllowPublicToSubscribe(false);
110         
111         //Adding subscribers
112
for (int i = 0; i < matchesArray.length; i++) {
113             User userSubscriber = PublicUserFactory.findUserByUserId(matchesArray[i][0]);
114             UserProxy s = UserProxyFactory.getUserProxy(userSubscriber);
115
116             if (s.getInode() == 0) {
117                 s.setUserId(userSubscriber.getUserId());
118                 s.setLastResult(0);
119                 InodeFactory.saveInode(s);
120             }
121
122             ml.addChild(s);
123         }
124
125         DotHibernate.flush();
126         DotHibernate.closeSession();
127
128         ml.setSubscriberCount(InodeFactory.getChildrenClass(ml, UserProxy.class).size());
129         InodeFactory.saveInode(ml);
130         
131         SessionMessages.add(req, "message", "message.mailinglistbuilder.save");
132     }
133     
134     private void _removeFromMarketingList(ActionForm form, ActionRequest req, ActionResponse res, String JavaDoc mailingListInode) throws Exception JavaDoc {
135         
136         User user = _getUser(req);
137         MailingListSearchForm mlForm = (MailingListSearchForm) form;
138         PortletSession sess = req.getPortletSession();
139         String JavaDoc[][] matchesArray = (String JavaDoc[][])sess.getAttribute(WebKeys.MAILINGLIST);
140
141         //Retrieving mailing list
142
MailingList ml = (MailingList) InodeFactory.getInode(mailingListInode,MailingList.class);
143         
144         //Removing subscribers
145
for (int i = 0; i < matchesArray.length; i++) {
146             User userSubscriber = PublicUserFactory.findUserByUserId(matchesArray[i][0]);
147             UserProxy s = UserProxyFactory.getUserProxy(userSubscriber);
148             if (s.getInode() > 0)
149                 ml.deleteChild(s);
150         }
151
152         DotHibernate.flush();
153         DotHibernate.closeSession();
154
155         ml.setSubscriberCount(InodeFactory.getChildrenClass(ml, UserProxy.class).size());
156         InodeFactory.saveInode(ml);
157         
158         SessionMessages.add(req, "message", "message.mailinglistbuilder.subscribers.removed");
159     }
160 }
161
Popular Tags