Package org.dspace.app.webui.cris.controller

Source Code of org.dspace.app.webui.cris.controller.FormSendMailController

/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* https://github.com/CILEA/dspace-cris/wiki/License
*/
package org.dspace.app.webui.cris.controller;


import java.io.File;
import java.util.Locale;
import java.util.ResourceBundle;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.dspace.app.cris.model.ResearcherPage;
import org.dspace.app.cris.util.ResearcherPageUtils;
import org.dspace.app.webui.cris.dto.MailDTO;
import org.dspace.app.webui.util.UIUtil;
import org.dspace.core.ConfigurationManager;
import org.dspace.core.Email;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;

/**
* This SpringMVC controller is responsible to send request change email to
* backoffice staff.
*
* @author cilea
*
*/
public class FormSendMailController extends BaseFormController
{
    /*
     * constants to define the scope of the send mail page
     */
    /**
     * constant to request changes for media
     */
    public final int MODE_MEDIA = 1;

    /**
     * constant to request changes for bibliometric data
     */
    public final int MODE_BIBLIOMETRIC = 2;

    /**
     * constant to request changes for item
     */
    public final int MODE_ITEMS = 3;

    /**
     * email template name constant
     */
    public final String TEMPLATE_MEDIA = "rp_request_changes_media";

    /**
     * email template name constant
     */
    public final String TEMPLATE_BIBLIOMETRIC = "rp_request_changes_bibliometric";

    /**
     * email template name constant
     */
    public final String TEMPLATE_ITEMS = "rp_request_changes_items";

    protected Object formBackingObject(HttpServletRequest request)
            throws Exception
    {

        String mode_s = request.getParameter("mode");
        Integer mode = Integer.parseInt(mode_s);
        String id_s = request.getParameter("id");
        Integer id = null;
        if (id_s != null)
        {
            id = Integer.parseInt(id_s);
        }
        ResearcherPage researcher = applicationService.get(
                ResearcherPage.class, id);
        MailDTO dto = new MailDTO();
        dto.setSubmitter(researcher.getId());
        dto.setRp(ResearcherPageUtils.getPersistentIdentifier(researcher));
        Locale supportedLocale = request.getLocale();
        ResourceBundle labels = ResourceBundle.getBundle("Messages",
                supportedLocale);
        switch (mode)
        {

        case MODE_BIBLIOMETRIC:
            dto.setTemplate(TEMPLATE_BIBLIOMETRIC);
            dto.setSubject(labels
                    .getString("subject.mail.hku.request-changes.two"));
            break;

        case MODE_ITEMS:
            dto.setTemplate(TEMPLATE_ITEMS);
            dto.setSubject(labels
                    .getString("subject.mail.hku.request-changes.three"));
            break;

        default:
            dto.setTemplate(TEMPLATE_MEDIA);
            dto.setSubject(labels
                    .getString("subject.mail.hku.request-changes.one"));
            break;
        }
        return dto;
    }

    protected ModelAndView onSubmit(HttpServletRequest request,
            HttpServletResponse response, Object command, BindException errors)
            throws Exception
    {

        MailDTO dto = (MailDTO) command;

        // send mail
        Email email = Email.getEmail(ConfigurationManager
                .getProperty("dspace.dir")
                + File.separatorChar
                + "config"
                + File.separatorChar
                + "emails"
                + File.separatorChar + dto.getTemplate());
        email.addArgument(dto.getRp());
        email.addArgument(dto.getText());
        email.addRecipient(ConfigurationManager
                .getProperty("feedback.recipient"));
        email.setReplyTo(UIUtil.obtainContext(request).getCurrentUser()
                .getEmail());
        email.send();
        return new ModelAndView(getSuccessView() + dto.getRp());
    }

}
TOP

Related Classes of org.dspace.app.webui.cris.controller.FormSendMailController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.