package fi.koku.taskmanager.controller; import static fi.arcusys.koku.util.Constants.PREF_DEFAULT_TASK_TYPE; import static fi.arcusys.koku.util.Constants.PREF_EDITABLE; import static fi.arcusys.koku.util.Constants.PREF_NOTIFICATION_FILTER; import static fi.arcusys.koku.util.Constants.PREF_OPEN_FORM; import static fi.arcusys.koku.util.Constants.PREF_REFRESH_DURATION; import static fi.arcusys.koku.util.Constants.PREF_TASK_FILTER; import static fi.arcusys.koku.util.Constants.VIEW_CONFIG; import javax.portlet.ActionRequest; import javax.portlet.ActionResponse; import javax.portlet.PortletMode; import javax.portlet.PortletPreferences; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; import javax.portlet.WindowState; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.portlet.bind.annotation.ActionMapping; import org.springframework.web.portlet.bind.annotation.RenderMapping; /** * Configuration/edit mode of portlet * * @author Jinhua Chen * May 11, 2011 */ @Controller("configController") @RequestMapping(value = "EDIT") public class ConfigController { private static final Logger LOG = LoggerFactory.getLogger(ConfigController.class); /** * Returns configuration view * * @param request * @param response * @param modelmap * @return configuration view */ @RenderMapping public String showConfig(RenderRequest request, RenderResponse response, ModelMap modelmap) { return VIEW_CONFIG; } /** * Save taskmanager configuration settings (Works only Kunpo(GateIn side) * * @param request * @param response */ @ActionMapping(params="myaction=config") public void doConfig(ActionRequest request, ActionResponse response) { try { PortletPreferences pref = request.getPreferences(); final String taskFilter = request.getParameter(PREF_TASK_FILTER); final String notifFilter = request.getParameter(PREF_NOTIFICATION_FILTER); final String refreshDuration = request.getParameter(PREF_REFRESH_DURATION); final String openForm = request.getParameter(PREF_OPEN_FORM); final String defaultTaskType = request.getParameter(PREF_DEFAULT_TASK_TYPE); final String editable = request.getParameter(PREF_EDITABLE); pref.setValue(PREF_TASK_FILTER, taskFilter); pref.setValue(PREF_NOTIFICATION_FILTER, notifFilter); pref.setValue(PREF_REFRESH_DURATION, refreshDuration); pref.setValue(PREF_OPEN_FORM, openForm); pref.setValue(PREF_DEFAULT_TASK_TYPE, defaultTaskType); pref.setValue(PREF_EDITABLE, editable); pref.store(); LOG.info("TaskManager - User '"+request.getRemoteUser()+"' saved new settings. TaskFilter: '" +taskFilter+"' NotificationFilter: '"+notifFilter+"' RefreshDuration: '" +refreshDuration+"' OpenForm: '"+openForm+"' DefaultTaskType: '"+defaultTaskType+"'"); response.setPortletMode(PortletMode.VIEW); response.setWindowState(WindowState.NORMAL); } catch (Exception e) { LOG.error("Configuration exception", e); } } }