package fi.arcusys.koku.web; import static fi.arcusys.koku.util.Constants.ATTR_APPLICATION_ID; import static fi.arcusys.koku.util.Constants.ATTR_APPOIMENT_ID; import static fi.arcusys.koku.util.Constants.ATTR_AUTHORIZATION_ID; import static fi.arcusys.koku.util.Constants.ATTR_CONSENT_ID; import static fi.arcusys.koku.util.Constants.ATTR_CURRENT_PAGE; import static fi.arcusys.koku.util.Constants.ATTR_KEYWORD; import static fi.arcusys.koku.util.Constants.ATTR_KOKU_USER; import static fi.arcusys.koku.util.Constants.ATTR_MESSAGE_ID; import static fi.arcusys.koku.util.Constants.ATTR_MY_ACTION; import static fi.arcusys.koku.util.Constants.ATTR_ORDER_TYPE; import static fi.arcusys.koku.util.Constants.ATTR_REQUEST_ID; import static fi.arcusys.koku.util.Constants.ATTR_RESPONSE_ID; import static fi.arcusys.koku.util.Constants.ATTR_TARGET_PERSON; import static fi.arcusys.koku.util.Constants.ATTR_TASK_TYPE; import static fi.arcusys.koku.util.Constants.ATTR_USER_ID; import static fi.arcusys.koku.util.Constants.ATTR_USERNAME; import static fi.arcusys.koku.util.Constants.JSON_RENDER_URL; import static fi.arcusys.koku.util.Constants.JSON_RESULT; import static fi.arcusys.koku.util.Constants.MY_ACTION_SHOW_APPLICATION_KINDERGARTEN; import static fi.arcusys.koku.util.Constants.MY_ACTION_SHOW_APPOINTMENT; import static fi.arcusys.koku.util.Constants.MY_ACTION_SHOW_CONSENT; import static fi.arcusys.koku.util.Constants.MY_ACTION_SHOW_REQUEST; import static fi.arcusys.koku.util.Constants.MY_ACTION_SHOW_REQUEST_RESPONSE; import static fi.arcusys.koku.util.Constants.MY_ACTION_SHOW_TIPY; import static fi.arcusys.koku.util.Constants.MY_ACTION_SHOW_WARRANT; import static fi.arcusys.koku.util.Constants.MY_ACTION_SHOW_MESSAGE; import static fi.arcusys.koku.util.Constants.RESPONSE; import static fi.arcusys.koku.util.Constants.RESPONSE_FAIL; import static fi.arcusys.koku.util.Constants.RESPONSE_OK; import static fi.arcusys.koku.util.Constants.SUGGESTION_APPLICATION_KINDERGARTEN; import static fi.arcusys.koku.util.Constants.SUGGESTION_CONSENT; import static fi.arcusys.koku.util.Constants.SUGGESTION_NO_TYPE; import static fi.arcusys.koku.util.Constants.SUGGESTION_WARRANT; import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; import javax.portlet.PortletRequest; import javax.portlet.PortletResponse; import javax.portlet.PortletSession; import javax.portlet.PortletURL; import javax.portlet.ResourceResponse; import javax.portlet.WindowState; import javax.portlet.WindowStateException; import net.sf.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ResourceBundleMessageSource; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.portlet.bind.annotation.ResourceMapping; import fi.arcusys.koku.exceptions.KokuServiceException; import fi.arcusys.koku.hak.model.HakServiceHandle; import fi.arcusys.koku.tiva.TivaEmployeeServiceHandle; import fi.arcusys.koku.tiva.warrant.employee.KokuEmployeeWarrantHandle; import fi.arcusys.koku.users.KokuUser; import fi.arcusys.koku.users.KokuUserService; import fi.arcusys.koku.users.UserIdResolver; import fi.arcusys.koku.util.Properties; import fi.arcusys.koku.web.util.KokuActionProcess; import fi.arcusys.koku.web.util.KokuTaskQueryProcess; import fi.arcusys.koku.web.util.exception.KokuActionProcessException; import fi.arcusys.koku.web.util.impl.KokuActionProcessCitizenImpl; import fi.arcusys.koku.web.util.impl.KokuActionProcessDummyImpl; import fi.arcusys.koku.web.util.impl.KokuActionProcessEmployeeImpl; import fi.arcusys.koku.web.util.impl.QueryProcessCitizenImpl; import fi.arcusys.koku.web.util.impl.QueryProcessDummyImpl; import fi.arcusys.koku.web.util.impl.QueryProcessEmployeeImpl; import fi.koku.portlet.filter.userinfo.UserInfo; /** * Hanldes ajax request from portlet and returns the response with json string * @author Jinhua Chen * Jun 22, 2011 */ @Controller("ajaxController") @RequestMapping(value = "VIEW") public class AjaxController extends AbstractController { private static final int MAX_SUGGESTION_RESULTS = 5; private static final Logger LOG = LoggerFactory.getLogger(AjaxController.class); @Resource private ResourceBundleMessageSource messageSource; /** * Handles portlet ajax request of tasks such as messages, requests, * appointments, consents and so on, distinguished by task type * @param page the page number * @param taskType type of requested task * @param keyword keyword for filtering * @param field field for filtering * @param orderType order of tasks * @param modelmap ModelMap * @param request PortletRequest * @param response PortletResponse * @return tasks in Json format */ @ResourceMapping(value = "getTask") public String getTasks(@RequestParam(value = "page") int page, @RequestParam(value = "taskType") String taskType, @RequestParam(value = "keyword") String keyword, @RequestParam(value = "field") String field, @RequestParam(value = "orderType") String orderType, ModelMap modelmap, PortletRequest request, PortletResponse response) { final long start = System.nanoTime(); final PortletSession portletSession = request.getPortletSession(); final String username = (String) portletSession.getAttribute(ATTR_USERNAME); String userId = (String) portletSession.getAttribute(ATTR_USER_ID); registerUserToWS(portletSession); if (userId == null) { try { long startUser = System.nanoTime(); UserIdResolver resolver = new UserIdResolver(); userId = resolver.getUserId(username, getPortalRole()); portletSession.setAttribute(ATTR_USER_ID, userId); LOG.debug("UserResolver took "+((System.nanoTime()-startUser)/1000/1000) + "ms"); } catch (KokuServiceException e) { LOG.error("Failed to get UserUid username: '"+username+"' portalRole: '"+getPortalRole()+"'", e); } catch (Exception e) { LOG.error("Error while trying to resolve userId. See following error msg: "+ e); } } KokuTaskQueryProcess query = null; if (Properties.IS_KUNPO_PORTAL) { query = new QueryProcessCitizenImpl(messageSource); } else if (Properties.IS_LOORA_PORTAL) { query = new QueryProcessEmployeeImpl(messageSource); } else { query = new QueryProcessDummyImpl(messageSource); LOG.error("PortalMode unknown! Only kunpo/loora portal modes are supported. Please check that properties file is properly configured."); } final JSONObject jsonModel = query.getJsonModel(taskType, page, keyword, field, orderType, userId); modelmap.addAttribute(RESPONSE, jsonModel); LOG.debug("getTasks - "+((System.nanoTime()-start)/1000/1000) + "ms"); return AjaxViewResolver.AJAX_PREFIX; } /** * KOKU-805 * * Pilot KunPo users register themselves one-by-one in KunPo, they're not registered a priori. * These users need to be added to Intalio LDAP also for HAK/TIVA/KV/AV to work. * * @param portletSession */ private void registerUserToWS(final PortletSession portletSession) { /* No need to re-register user if already done */ if (portletSession.getAttribute(ATTR_KOKU_USER) != null) { return; } final String username = (String) portletSession.getAttribute(ATTR_USERNAME); final UserInfo userInfo = (UserInfo) portletSession.getAttribute(UserInfo.KEY_USER_INFO); LOG.info("Username: '"+username+"' Hetu: "+userInfo); if (userInfo == null) { LOG.error("UserInfo is null! Can't register user to WS. Username: '"+username+"'"); return; } final KokuUserService userService = new KokuUserService(); KokuUser user = null; try { if (Properties.IS_KUNPO_PORTAL) { // Kunpo user = userService.loginKunpo(username, userInfo.getPic()); } else if (Properties.IS_LOORA_PORTAL) { // Loora user = userService.loginLoora(username, userInfo.getPic()); } else { LOG.error("Can't register user to WS! Portlet doesn't have information if portal is Citizen/Employee mode! username: '"+username+"' SSN: '"+userInfo.getPic()+"'"); return; } } catch (KokuServiceException kse) { LOG.error("Failed register user to WS. Username: '"+username+"'", kse); } if (user == null) { // TODO: Remove if statement when Loora side implementation is ready, if ever.. if (Properties.IS_KUNPO_PORTAL) { LOG.error("For some reason userService didn't find KokuUser. Username: '"+username+"' SSN: '"+userInfo.getPic()+"' "); } user = new KokuUser(); } portletSession.setAttribute(ATTR_KOKU_USER, user); } private KokuActionProcess getActionProcess(PortletRequest request) throws KokuServiceException { final PortletSession portletSession = request.getPortletSession(); final String username = (String) portletSession.getAttribute(ATTR_USERNAME); String userId = (String) portletSession.getAttribute(ATTR_USER_ID); if (userId == null) { UserIdResolver resolver = new UserIdResolver(); resolver.getUserId(username, getPortalRole()); } KokuActionProcess actionProcess = null; switch (getPortalRole()) { case CITIZEN: actionProcess = new KokuActionProcessCitizenImpl(userId); break; case EMPLOYEE: actionProcess = new KokuActionProcessEmployeeImpl(userId); break; default: actionProcess = new KokuActionProcessDummyImpl(null); break; } return actionProcess; } /** * Archive old messages (more than 3 month old) * * @param folderType folder which messages should archive * @param modelmap ModelMap * @param request PortletRequest * @param response PortletResponse * @return action response 'OK' or 'FAIL' */ @ResourceMapping(value = "archiveMessageOld") public String doArchiveOld(@RequestParam(value = "folderType") String folderType, ModelMap modelmap, PortletRequest request, PortletResponse response) { final PortletSession portletSession = request.getPortletSession(); final String username = (String) portletSession.getAttribute(ATTR_USERNAME); final JSONObject jsonModel = new JSONObject(); try { getActionProcess(request).archiveOldMessages(folderType); jsonModel.put(JSON_RESULT, RESPONSE_OK); } catch (KokuServiceException e) { LOG.error("Failed to get UserUid username: '"+username+"' portalRole: '"+getPortalRole()+"'", e); } catch (KokuActionProcessException kape) { LOG.error("Failed to archive old messages. Username: '"+ username+"'", kape); jsonModel.put(JSON_RESULT, RESPONSE_FAIL); } modelmap.addAttribute(RESPONSE, jsonModel); return AjaxViewResolver.AJAX_PREFIX; } /** * Archives the messages * * @param messageList a list of message ids to be archived * @param modelmap ModelMap * @param request PortletRequest * @param response PortletResponse * @return action response 'OK' or 'FAIL' */ @ResourceMapping(value = "archiveMessage") public String doArchive(@RequestParam(value = "messageList[]") String[] messageList, ModelMap modelmap, PortletRequest request, PortletResponse response) { final PortletSession portletSession = request.getPortletSession(); final String username = (String) portletSession.getAttribute(ATTR_USERNAME); final JSONObject jsonModel = new JSONObject(); try { getActionProcess(request).archiveMessages(messageList); jsonModel.put(JSON_RESULT, RESPONSE_OK); } catch (KokuServiceException e) { LOG.error("Failed to get UserUid username: '"+username+"' portalRole: '"+getPortalRole()+"'", e); } catch (KokuActionProcessException kape) { LOG.error("Failed to archive message(s). Username: '"+ username+"'", kape); jsonModel.put(JSON_RESULT, RESPONSE_FAIL); } modelmap.addAttribute(RESPONSE, jsonModel); return AjaxViewResolver.AJAX_PREFIX; } /** * Deletes the messages * @param messageList a list of message ids to be deleted * @param modelmap ModelMap * @param request PortletRequest * @param response PortletResponse * @return action response 'OK' or 'FAIL' */ @ResourceMapping(value = "deleteMessage") public String doDelete(@RequestParam(value = "messageList[]") String[] messageList, ModelMap modelmap, PortletRequest request, PortletResponse response) { final PortletSession portletSession = request.getPortletSession(); final String username = (String) portletSession.getAttribute(ATTR_USERNAME); final JSONObject jsonModel = new JSONObject(); try { getActionProcess(request).deleteMessages(messageList); jsonModel.put(JSON_RESULT, RESPONSE_OK); } catch (KokuServiceException e) { LOG.error("Failed to get UserUid username: '"+username+"' portalRole: '"+getPortalRole()+"'", e); } catch (KokuActionProcessException kape) { LOG.error("Failed to delete message. Username: '"+ username+"'", kape); jsonModel.put(JSON_RESULT, RESPONSE_FAIL); } modelmap.addAttribute(RESPONSE, jsonModel); return AjaxViewResolver.AJAX_PREFIX; } /** * Revokes the consents * @param messageList a list of message/consent ids to be deleted * @param modelmap ModelMap * @param request PortletRequest * @param response PortletResponse * @return action response 'OK' or 'FAIL' */ @ResourceMapping(value = "revokeConsent") public String revokeConsent(@RequestParam(value = "messageList[]") String[] messageList, ModelMap modelmap, PortletRequest request, PortletResponse response) { final PortletSession portletSession = request.getPortletSession(); final String username = (String) portletSession.getAttribute(ATTR_USERNAME); final JSONObject jsonModel = new JSONObject(); try { getActionProcess(request).revokeConsents(messageList); jsonModel.put(JSON_RESULT, RESPONSE_OK); } catch (KokuServiceException e) { LOG.error("Failed to get UserUid username: '"+username+"' portalRole: '"+getPortalRole()+"'", e); } catch (KokuActionProcessException kape) { LOG.error("Failed to revoke consent. Username: '"+ username+"'", kape); jsonModel.put(JSON_RESULT, RESPONSE_FAIL); } modelmap.addAttribute(RESPONSE, jsonModel); return AjaxViewResolver.AJAX_PREFIX; } /** * Revokes the warrants * @param messageList a list of message/consent ids to be deleted * @param modelmap ModelMap * @param request PortletRequest * @param response PortletResponse * @return action response 'OK' or 'FAIL' */ @ResourceMapping(value = "revokeWarrant") public String revokeWarrant( @RequestParam(value = "messageList[]") String[] messageList, @RequestParam(value = "comment") String comment, ModelMap modelmap, PortletRequest request, PortletResponse response) { final PortletSession portletSession = request.getPortletSession(); final String username = (String) portletSession.getAttribute(ATTR_USERNAME); final JSONObject jsonModel = new JSONObject(); try { getActionProcess(request).revokeWarrants(messageList, comment); jsonModel.put(JSON_RESULT, RESPONSE_OK); } catch (KokuServiceException e) { LOG.error("Failed to get UserUid username: '"+username+"' portalRole: '"+getPortalRole()+"'", e); } catch (KokuActionProcessException kape) { LOG.error("Failed to revoke warrant. Username: '"+ username+"'", kape); jsonModel.put(JSON_RESULT, RESPONSE_FAIL); } modelmap.addAttribute(RESPONSE, jsonModel); return AjaxViewResolver.AJAX_PREFIX; } /** * Cancels appointments * @param messageList * @param targetPersons * @param comment * @param modelmap * @param request * @param response * @return action response 'OK' or 'FAIL' */ @ResourceMapping(value = "cancelAppointment") public String cancelAppointment(@RequestParam(value = "messageList[]") String[] messageList, @RequestParam(value = "targetPersons[]", required=false) String[] targetPersons, @RequestParam(value = "comment") String comment, @RequestParam(value = "taskType") String taskType, ModelMap modelmap, PortletRequest request, PortletResponse response) { final PortletSession portletSession = request.getPortletSession(); final String username = (String) portletSession.getAttribute(ATTR_USERNAME); final JSONObject jsonModel = new JSONObject(); String userId = (String) portletSession.getAttribute(ATTR_USER_ID); KokuActionProcess actionProcess = null; if (taskType == null || taskType.isEmpty()) { jsonModel.put(JSON_RESULT, RESPONSE_FAIL); } else { try { if (userId == null) { final UserIdResolver resolver = new UserIdResolver(); userId = resolver.getUserId(username, getPortalRole()); } /* Looks scary. We shouldn't trust client side parameters. */ if (taskType.endsWith("citizen")) { actionProcess = new KokuActionProcessCitizenImpl(userId); } else if (taskType.endsWith("employee")) { actionProcess = new KokuActionProcessEmployeeImpl(null); } else { actionProcess = new KokuActionProcessDummyImpl(null); } actionProcess.cancelAppointments(messageList, targetPersons, comment); jsonModel.put(JSON_RESULT, RESPONSE_OK); } catch (KokuServiceException e) { LOG.error("Failed to get UserUid username: '"+username+"' portalRole: '"+getPortalRole()+"'", e); } catch (KokuActionProcessException kape) { LOG.error("Failed to cancelAppointment", kape); jsonModel.put(JSON_RESULT, RESPONSE_FAIL); } } modelmap.addAttribute(RESPONSE, jsonModel); return AjaxViewResolver.AJAX_PREFIX; } @ResourceMapping(value = "getSuggestion") public String getSuggestion( @RequestParam(value = "keyword") String keyword, @RequestParam(value = "suggestType") String suggestionType, ModelMap modelmap, PortletRequest request, PortletResponse response) { final PortletSession portletSession = request.getPortletSession(); final String username = (String) portletSession.getAttribute(ATTR_USERNAME); final JSONObject jsonModel = new JSONObject(); @SuppressWarnings("rawtypes") List resultList = null; try { if (suggestionType.equals(SUGGESTION_CONSENT)) { TivaEmployeeServiceHandle tivaHandle = new TivaEmployeeServiceHandle(); resultList = tivaHandle.searchConsentTemplates(keyword, MAX_SUGGESTION_RESULTS); } else if (suggestionType.equals(SUGGESTION_WARRANT)) { KokuEmployeeWarrantHandle handle = new KokuEmployeeWarrantHandle(); resultList = handle.searchWarrantTemplates(keyword, MAX_SUGGESTION_RESULTS); } else if (suggestionType.equals(SUGGESTION_APPLICATION_KINDERGARTEN)) { HakServiceHandle handle = new HakServiceHandle(); resultList = handle.searchKindergartenByName(keyword, MAX_SUGGESTION_RESULTS); } else if (suggestionType.equals(SUGGESTION_NO_TYPE)) { resultList = new ArrayList<String>(); LOG.warn("No sugguestion type! Possibly bug in system. User: "+username+" Keyword: "+keyword); } } catch (KokuServiceException kse) { LOG.error("Failed to get suggestion. keyword: '"+keyword+"' suggestionType: '"+suggestionType+"'", kse); resultList = new ArrayList<String>(); } jsonModel.put(JSON_RESULT, resultList); modelmap.addAttribute(RESPONSE, jsonModel); return AjaxViewResolver.AJAX_PREFIX; } private PortletURL getPortletUrl(final ResourceResponse response, final String currentPage, final String taskType, final String keyword, final String orderType) { final PortletURL renderUrlObj = response.createRenderURL(); renderUrlObj.setParameter( ATTR_CURRENT_PAGE, currentPage); renderUrlObj.setParameter( ATTR_TASK_TYPE, taskType); renderUrlObj.setParameter( ATTR_KEYWORD, keyword); renderUrlObj.setParameter( ATTR_ORDER_TYPE, orderType); try { renderUrlObj.setWindowState(WindowState.NORMAL); } catch (WindowStateException e) { LOG.error("Create message render url failed"); } return renderUrlObj; } private void generateRenderUrl(final PortletURL renderUrlObj, final ModelMap modelmap) { final String renderUrlString = renderUrlObj.toString(); final JSONObject jsonModel = new JSONObject(); jsonModel.put(JSON_RENDER_URL, renderUrlString); modelmap.addAttribute(RESPONSE, jsonModel); } /** * Creates message render url mainly for gatein portal, and keeps the page * parameters such as page id, task type, keyword * @param messageId message id * @param currentPage current page * @param taskType request task type * @param keyword keyword * @param orderType order type * @param modelmap ModelMap * @param request PortletRequest * @param response ResourceResponse * @return Message render url in Json format */ @ResourceMapping(value = "createMessageRenderUrl") public String createMessageRenderUrl( @RequestParam(value = "messageId") String messageId, @RequestParam(value = "currentPage") String currentPage, @RequestParam(value = "taskType") String taskType, @RequestParam(value = "keyword") String keyword, @RequestParam(value = "orderType") String orderType, final ModelMap modelmap, final PortletRequest request, final ResourceResponse response) { final PortletURL renderUrlObj = getPortletUrl(response, currentPage, taskType, keyword, orderType); renderUrlObj.setParameter( ATTR_MY_ACTION, MY_ACTION_SHOW_MESSAGE); renderUrlObj.setParameter( ATTR_MESSAGE_ID, messageId); generateRenderUrl(renderUrlObj, modelmap); return AjaxViewResolver.AJAX_PREFIX; } /** * Creates request render url mainly for gatein portal, and keeps the page * parameters such as page id, task type, keyword * @param requestId request id * @param currentPage current page * @param taskType request task type * @param keyword keyword * @param orderType order type * @param modelmap ModelMap * @param request PortletRequest * @param response ResourceResponse * @return Request render url in Json format */ @ResourceMapping(value = "createRequestRenderUrl") public String createRequestRenderUrl( @RequestParam(value = "requestId") String requestId, @RequestParam(value = "currentPage") String currentPage, @RequestParam(value = "taskType") String taskType, @RequestParam(value = "keyword") String keyword, @RequestParam(value = "orderType") String orderType, ModelMap modelmap, PortletRequest request, ResourceResponse response) { final PortletURL renderUrlObj = getPortletUrl(response, currentPage, taskType, keyword, orderType); renderUrlObj.setParameter( ATTR_MY_ACTION, MY_ACTION_SHOW_REQUEST); renderUrlObj.setParameter( ATTR_REQUEST_ID, requestId); generateRenderUrl(renderUrlObj, modelmap); return AjaxViewResolver.AJAX_PREFIX; } /** * Creates request response render url mainly for gatein portal, and keeps the page * parameters such as page id, task type, keyword * @param requestId request id * @param currentPage current page * @param taskType request task type * @param keyword keyword * @param orderType order type * @param modelmap ModelMap * @param request PortletRequest * @param response ResourceResponse * @return Request render url in Json format */ @ResourceMapping(value = "createResponseRenderUrl") public String createResponseRenderUrl ( @RequestParam(value = "responseId") String responseId, @RequestParam(value = "currentPage") String currentPage, @RequestParam(value = "taskType") String taskType, @RequestParam(value = "keyword") String keyword, @RequestParam(value = "orderType") String orderType, ModelMap modelmap, PortletRequest request, ResourceResponse response) { final PortletURL renderUrlObj = getPortletUrl(response, currentPage, taskType, keyword, orderType); renderUrlObj.setParameter( ATTR_MY_ACTION, MY_ACTION_SHOW_REQUEST_RESPONSE); renderUrlObj.setParameter( ATTR_RESPONSE_ID, responseId); generateRenderUrl(renderUrlObj, modelmap); return AjaxViewResolver.AJAX_PREFIX; } /** * Creates appointment render url mainly for gatein portal, and keeps the page * parameters such as page id, task type, keyword * @param appointmentId appointment id * @param currentPage current page * @param taskType request task type * @param keyword keyword * @param orderType order type * @param modelmap ModelMap * @param request PortletRequest * @param response ResourceResponse * @return Appointment render url in Json format */ @ResourceMapping(value = "createAppointmentRenderUrl") public String createAppointmentRenderUrl( @RequestParam(value = "appointmentId") String appointmentId, @RequestParam(value = "currentPage") String currentPage, @RequestParam(value = "taskType") String taskType, @RequestParam(value = "keyword") String keyword, @RequestParam(value = "orderType") String orderType, @RequestParam(value = "targetPerson", required=false) String targetPerson, ModelMap modelmap, PortletRequest request, ResourceResponse response) { final PortletURL renderUrlObj = getPortletUrl(response, currentPage, taskType, keyword, orderType); renderUrlObj.setParameter( ATTR_MY_ACTION, MY_ACTION_SHOW_APPOINTMENT); renderUrlObj.setParameter( ATTR_APPOIMENT_ID, appointmentId); renderUrlObj.setParameter( ATTR_TARGET_PERSON, targetPerson); generateRenderUrl(renderUrlObj, modelmap); return AjaxViewResolver.AJAX_PREFIX; } /** * Creates consent render url mainly for gatein portal, and keeps the page * parameters such as page id, task type, keyword * * @param consentId consent id * @param currentPage current page * @param taskType request task type * @param keyword keyword * @param orderType order type * @param modelmap ModelMap * @param request PortletRequest * @param response ResourceResponse * @return Consent render url in Json format */ @ResourceMapping(value = "createConsentRenderUrl") public String createConsentRenderUrl( @RequestParam(value = "consentId") String consentId, @RequestParam(value = "currentPage") String currentPage, @RequestParam(value = "taskType") String taskType, @RequestParam(value = "keyword") String keyword, @RequestParam(value = "orderType") String orderType, ModelMap modelmap, PortletRequest request, ResourceResponse response) { final PortletURL renderUrlObj = getPortletUrl(response, currentPage, taskType, keyword, orderType); renderUrlObj.setParameter( ATTR_MY_ACTION, MY_ACTION_SHOW_CONSENT); renderUrlObj.setParameter( ATTR_CONSENT_ID, consentId); generateRenderUrl(renderUrlObj, modelmap); return AjaxViewResolver.AJAX_PREFIX; } /** * Creates warrant render url mainly for gatein portal, and keeps the page * parameters such as page id, task type, keyword * * @param authorizationId authorization id * @param currentPage current page * @param taskType request task type * @param keyword keyword * @param orderType order type * @param modelmap ModelMap * @param request PortletRequest * @param response ResourceResponse * @return Consent render url in Json format */ @ResourceMapping(value = "createWarrantRenderUrl") public String createWarrantRenderUrl( @RequestParam(value = "authorizationId") String authorizationId, @RequestParam(value = "currentPage") String currentPage, @RequestParam(value = "taskType") String taskType, @RequestParam(value = "keyword") String keyword, @RequestParam(value = "orderType") String orderType, ModelMap modelmap, PortletRequest request, ResourceResponse response) { final PortletURL renderUrlObj = getPortletUrl(response, currentPage, taskType, keyword, orderType); renderUrlObj.setParameter( ATTR_MY_ACTION, MY_ACTION_SHOW_WARRANT); renderUrlObj.setParameter( ATTR_AUTHORIZATION_ID, authorizationId); generateRenderUrl(renderUrlObj, modelmap); return AjaxViewResolver.AJAX_PREFIX; } /** * Creates info (tietopyyntö) render url mainly for gatein portal, and keeps the page * parameters such as page id, task type, keyword * * @param authorizationId authorization id * @param currentPage current page * @param taskType request task type * @param keyword keyword * @param orderType order type * @param modelmap ModelMap * @param request PortletRequest * @param response ResourceResponse * @return Consent render url in Json format */ @ResourceMapping(value = "createTipyRenderUrl") public String createTipyRenderUrl( @RequestParam(value = "requestId") String requestId, @RequestParam(value = "currentPage") String currentPage, @RequestParam(value = "taskType") String taskType, @RequestParam(value = "keyword") String keyword, @RequestParam(value = "orderType") String orderType, ModelMap modelmap, PortletRequest request, ResourceResponse response) { final PortletURL renderUrlObj = getPortletUrl(response, currentPage, taskType, keyword, orderType); renderUrlObj.setParameter( ATTR_MY_ACTION, MY_ACTION_SHOW_TIPY); renderUrlObj.setParameter( ATTR_REQUEST_ID, requestId); generateRenderUrl(renderUrlObj, modelmap); return AjaxViewResolver.AJAX_PREFIX; } /** * Creates info (tietopyyntö) render url mainly for gatein portal, and keeps the page * parameters such as page id, task type, keyword * * @param authorizationId authorization id * @param currentPage current page * @param taskType request task type * @param keyword keyword * @param orderType order type * @param modelmap ModelMap * @param request PortletRequest * @param response ResourceResponse * @return Consent render url in Json format */ @ResourceMapping(value = "createApplicationKindergartenRenderUrl") public String createApplicationKindergartenRenderUrl( @RequestParam(value = "applicationId") String applicationId, @RequestParam(value = "currentPage") String currentPage, @RequestParam(value = "taskType") String taskType, @RequestParam(value = "keyword") String keyword, @RequestParam(value = "orderType") String orderType, ModelMap modelmap, PortletRequest request, ResourceResponse response) { final PortletURL renderUrlObj = getPortletUrl(response, currentPage, taskType, keyword, orderType); renderUrlObj.setParameter( ATTR_MY_ACTION, MY_ACTION_SHOW_APPLICATION_KINDERGARTEN); renderUrlObj.setParameter( ATTR_APPLICATION_ID, applicationId); generateRenderUrl(renderUrlObj, modelmap); return AjaxViewResolver.AJAX_PREFIX; } }