1 package com.dotmarketing.portlets.jobs.action; 2 3 import java.util.Calendar ; 4 import java.util.GregorianCalendar ; 5 import javax.portlet.ActionRequest; 6 import javax.portlet.ActionResponse; 7 import javax.portlet.PortletConfig; 8 import javax.servlet.http.HttpServletRequest ; 9 import org.apache.commons.beanutils.BeanUtils; 10 import org.apache.struts.action.ActionForm; 11 import org.apache.struts.action.ActionMapping; 12 import com.dotmarketing.factories.InodeFactory; 13 import com.dotmarketing.portal.struts.DotPortletAction; 14 import com.dotmarketing.portlets.jobs.factories.JobsFactory; 15 import com.dotmarketing.portlets.jobs.model.Jobs; 16 import com.dotmarketing.util.Constants; 17 import com.dotmarketing.util.Logger; 18 import com.dotmarketing.util.Validator; 19 import com.dotmarketing.util.WebKeys; 20 import com.liferay.portlet.ActionRequestImpl; 21 import com.liferay.util.servlet.SessionMessages; 22 23 24 public class EditJobAction extends DotPortletAction { 25 public void processAction(ActionMapping mapping, ActionForm form, PortletConfig config, ActionRequest req, 26 ActionResponse res) throws Exception { 27 String cmd = req.getParameter(com.liferay.portal.util.Constants.CMD); 28 29 ActionRequestImpl reqImpl = (ActionRequestImpl) req; 31 HttpServletRequest httpReq = reqImpl.getHttpServletRequest(); 32 33 String referer = req.getParameter("referer"); 34 35 _editJob(form, req, res); 37 38 if (com.liferay.portal.util.Constants.ADD.equals(cmd)) { 40 Logger.debug(this, "Jobs: Saving Jobs"); 41 42 if (!Validator.validate(req, form, mapping)) { 44 Logger.debug(this, "Jobs: Validation Job Failed"); 45 setForward(req, mapping.getInput()); 46 47 return; 48 } else { 49 try { 50 _saveJob(form, req, res); 51 } catch (Exception e) { 52 _handleException(e, req); 53 } 54 55 _sendToReferral(req, res, referer); 56 57 return; 58 } 59 } 60 else if (com.liferay.portal.util.Constants.DELETE.equals(cmd)) { 62 Logger.debug(this, "Jobs: Deleting Job"); 63 64 try { 65 _deleteJob(form, req, res); 66 } catch (Exception e) { 67 _handleException(e, req); 68 } 69 70 _sendToReferral(req, res, referer); 71 72 return; 73 } 74 75 else if (Constants.ACTIVATE.equals(cmd)) { 77 Logger.debug(this, "Jobs: Activating Job"); 78 79 try { 80 _activateJob(form, req, res); 81 } catch (Exception e) { 82 _handleException(e, req); 83 } 84 85 _sendToReferral(req, res, referer); 86 87 return; 88 } 89 90 BeanUtils.copyProperties(form, req.getAttribute(WebKeys.JOB_EDIT)); 91 setForward(req, "portlet.ext.jobs.edit_job"); 92 } 93 94 95 96 private void _saveJob(ActionForm form, ActionRequest req, ActionResponse res) 98 throws Exception { 99 100 ActionRequestImpl reqImpl = (ActionRequestImpl) req; 102 HttpServletRequest httpReq = reqImpl.getHttpServletRequest(); 103 BeanUtils.copyProperties(req.getAttribute(WebKeys.JOB_EDIT), form); 104 105 Jobs job = (Jobs) req.getAttribute(WebKeys.JOB_EDIT); 106 107 if(job.getExpdate() == null) { 108 if(job.isActive()) { 109 Calendar calendar = new GregorianCalendar (); 110 calendar.setTime(job.getEntrydate()); 111 calendar.add(Calendar.MONTH,3); 112 job.setExpdate(calendar.getTime()); 113 } 114 } 115 116 Logger.debug(this, "_saveJob: Inode = " + job.getInode()); 117 InodeFactory.saveInode(job); 118 119 SessionMessages.add(req, "message", "message.job.save"); 120 } 121 122 private void _deleteJob(ActionForm form, ActionRequest req, ActionResponse res) 124 throws Exception { 125 Jobs job = (Jobs) req.getAttribute(WebKeys.JOB_EDIT); 126 InodeFactory.deleteInode(job); 127 SessionMessages.add(req, "message", "message.job.delete"); 128 } 129 130 private void _activateJob(ActionForm form, ActionRequest req, ActionResponse res) 132 throws Exception { 133 134 Jobs job = (Jobs) req.getAttribute(WebKeys.JOB_EDIT); 135 String activeStr = req.getParameter("active"); 136 boolean active = Boolean.parseBoolean(activeStr); 137 job.setActive(active); 138 if(job.isActive()) { 139 Calendar cal = new GregorianCalendar (); 140 cal.setTime(job.getEntrydate()); 141 cal.add(Calendar.MONTH,3); 142 job.setExpdate(cal.getTime()); 143 } 144 InodeFactory.saveInode(job); 145 } 146 147 private void _editJob(ActionForm form, ActionRequest req, ActionResponse res) 149 throws Exception { 150 Jobs job = JobsFactory.getJob(req.getParameter("inode")); 151 req.setAttribute(WebKeys.JOB_EDIT, job); 152 } 153 } 154 | Popular Tags |