package fi.arcusys.koku.navi;
import static fi.arcusys.koku.util.Constants.PREF_NAVI_DEFAULT_PATH;
import static fi.arcusys.koku.util.Constants.PREF_NAVI_FRONTPAGE;
import static fi.arcusys.koku.util.Constants.PREF_NAVI_KKS;
import static fi.arcusys.koku.util.Constants.PREF_NAVI_LOK;
import static fi.arcusys.koku.util.Constants.PREF_NAVI_PYH;
import static fi.arcusys.koku.util.Constants.PREF_NAVI_RELATIVE_PATH;
import static fi.arcusys.koku.util.Constants.VIEW_NAVI_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;
@Controller("naviEditController")
@RequestMapping(value = "EDIT")
public class EditController {
private static final Logger LOG = LoggerFactory.getLogger(EditController.class);
@RenderMapping
public String showConfig(RenderRequest request, RenderResponse response, ModelMap modelmap) {
LOG.debug("show navi edit mode");
return VIEW_NAVI_CONFIG;
}
@ActionMapping(params="myaction=naviconfig")
public void doConfig(ActionRequest request, ActionResponse response) {
try {
PortletPreferences pref = request.getPreferences();
String useRelativePath = request.getParameter(PREF_NAVI_RELATIVE_PATH);
String kksPref = request.getParameter(PREF_NAVI_KKS);
String lokPref = request.getParameter(PREF_NAVI_LOK);
String pyhPref = request.getParameter(PREF_NAVI_PYH);
String defaultPathPref = request.getParameter(PREF_NAVI_DEFAULT_PATH);
String frontPagePath = request.getParameter(PREF_NAVI_FRONTPAGE);
pref.setValue(PREF_NAVI_RELATIVE_PATH, useRelativePath);
pref.setValue(PREF_NAVI_KKS, kksPref);
pref.setValue(PREF_NAVI_LOK, lokPref);
pref.setValue(PREF_NAVI_PYH, pyhPref);
pref.setValue(PREF_NAVI_DEFAULT_PATH, defaultPathPref);
pref.setValue(PREF_NAVI_FRONTPAGE, frontPagePath);
pref.store();
LOG.info("KokuNavigationPortlet - User '" + request.getUserPrincipal().getName()
+ "' saved new settings - RelativePathMode: '" + useRelativePath + "' Lok path: '"
+ lokPref + "' Pyh path: '" + pyhPref + "' Kks path: '" + kksPref + "' "
+ "' MessagePortlet default path: '" + defaultPathPref + "'"
+ " FrontPagePath: '" + frontPagePath + "'");
response.setPortletMode(PortletMode.VIEW);
response.setWindowState(WindowState.NORMAL);
} catch (Exception e) {
LOG.error("Configuration edit mode failed with exception. ErrorMsg: "+ e.getMessage());
}
}
}