1 16 package com.blandware.atleap.webapp.action.core.mailTemplate; 17 18 import com.blandware.atleap.common.Constants; 19 import com.blandware.atleap.common.util.ConvertUtil; 20 import com.blandware.atleap.model.core.ContentLocale; 21 import com.blandware.atleap.model.core.MailTemplate; 22 import com.blandware.atleap.service.core.MailTemplateManager; 23 import com.blandware.atleap.webapp.action.core.BaseAction; 24 import com.blandware.atleap.webapp.form.MailTemplateForm; 25 import com.blandware.atleap.webapp.util.core.LocaleUtil; 26 import com.blandware.atleap.webapp.util.core.WebappConstants; 27 import com.blandware.atleap.webapp.util.core.WebappUtil; 28 import org.apache.commons.validator.GenericValidator; 29 import org.apache.struts.action.ActionForm; 30 import org.apache.struts.action.ActionForward; 31 import org.apache.struts.action.ActionMapping; 32 import org.apache.struts.action.ActionMessage; 33 import org.apache.struts.action.ActionMessages; 34 35 import javax.servlet.http.HttpServletRequest ; 36 import javax.servlet.http.HttpServletResponse ; 37 import java.util.HashMap ; 38 import java.util.Iterator ; 39 import java.util.List ; 40 import java.util.Map ; 41 42 61 public final class CallUpdateMailTemplateAction extends BaseAction { 62 71 public ActionForward execute(ActionMapping mapping, ActionForm form, 72 HttpServletRequest request, HttpServletResponse response) throws Exception { 73 74 if ( isCancelled(request) ) { 75 return mapping.findForward("listMailTemplates"); 76 } 77 78 if ( !request.isUserInRole("core-mailTemplate-update") ) { 79 response.sendError(HttpServletResponse.SC_FORBIDDEN); 80 return null; 81 } 82 83 MailTemplateForm mailTemplateForm = (MailTemplateForm) form; 84 Long mailTemplateId = null; 85 if ( !GenericValidator.isBlankOrNull(mailTemplateForm.getId()) ) { 86 mailTemplateId = Long.valueOf(mailTemplateForm.getId()); 87 } else if ( request.getSession().getAttribute(WebappConstants.MAIL_TEMPLATE_ID_KEY) != null ) { 88 mailTemplateId = (Long ) request.getSession().getAttribute(WebappConstants.MAIL_TEMPLATE_ID_KEY); 89 } else { 90 if ( log.isWarnEnabled() ) { 91 log.warn("Missing mail template ID. Returning to list..."); 92 } 93 return mapping.findForward("listMailTemplates"); 94 } 95 96 MailTemplateManager mailTemplateManager = (MailTemplateManager) getBean(Constants.MAIL_TEMPLATE_MANAGER_BEAN); 97 MailTemplate mailTemplate = mailTemplateManager.retrieveMailTemplate(mailTemplateId); 98 99 if ( mailTemplate == null ) { 100 ActionMessages errors = new ActionMessages(); 102 errors.add("mailTemplateNotFound", new ActionMessage("core.mailTemplate.errors.notFound")); 103 saveErrors(request, errors); 104 return mapping.findForward("listMailTemplates"); 105 } 106 107 WebappUtil.copyProperties(mailTemplateForm, mailTemplate, request); 108 mailTemplateForm.setFromMap(mailTemplate.getFrom()); 109 mailTemplateForm.setSubjectMap(mailTemplate.getSubject()); 110 mailTemplateForm.setBodyMap(mailTemplate.getBody()); 111 mailTemplateForm.setCharsetMap(mailTemplate.getCharset()); 112 113 if ( request.getAttribute(WebappConstants.MAIL_TEMPLATE_MERGED_BODY_KEY) != null ) { 114 Map mergedBody = (Map ) request.getAttribute(WebappConstants.MAIL_TEMPLATE_MERGED_BODY_KEY); 115 mailTemplateForm.setBodyMap(mergedBody); 116 } 117 118 List contentLocales = LocaleUtil.getInstance(servlet.getServletContext()).getAvailableLocales(); 119 120 request.getSession().setAttribute(WebappConstants.CONTENT_LOCALES_COLLECTION_KEY, contentLocales); 121 122 if ( mailTemplate.getCharset() == null || mailTemplate.getCharset().isEmpty() ) { 124 Map charsetMap = new HashMap (); 125 for ( Iterator i = contentLocales.iterator(); i.hasNext(); ) { 126 ContentLocale contentLocale = (ContentLocale) i.next(); 127 charsetMap.put(contentLocale.getIdentifier(), Constants.DEFAULT_ENCODING); 128 } 129 } 130 131 133 if ( mailTemplate.getAvailableVariables() != null && !mailTemplate.getAvailableVariables().isEmpty() ) { 134 request.getSession().setAttribute(WebappConstants.MAIL_TEMPLATE_AVAIALABLE_VARIABLES_KEY, ConvertUtil.convertListToString(mailTemplate.getAvailableVariables(), ", ")); 135 } else { 136 request.getSession().removeAttribute(WebappConstants.MAIL_TEMPLATE_AVAIALABLE_VARIABLES_KEY); 137 } 138 139 return mapping.findForward("updateMailTemplate"); 140 } 141 142 } | Popular Tags |