List of usage examples for org.apache.commons.fileupload FileItem getContentType
String getContentType();
null
if not defined. From source file:fr.paris.lutece.plugins.suggest.web.SuggestJspBean.java
/** * Get the request data and if there is no error insert the data in the suggest * specified in parameter. return null if there is no error or else return * the error page url/*from w w w .j a va 2 s. co m*/ * * @param request * the request * @param suggest * suggest * * @return null if there is no error or else return the error page url */ private String getSuggestData(MultipartHttpServletRequest request, Suggest suggest) { String strDefaultRole = AppPropertiesService.getProperty(PROPERTY_DEFAULT_ROLE_CODE); String strUpdateFile = request.getParameter(PARAMETER_UPDATE_FILE); String strTitle = request.getParameter(PARAMETER_TITLE); String strLibelleContribution = request.getParameter(PARAMETER_LIBELLE_CONTRIBUTION); String strUnavailabilityMessage = request.getParameter(PARAMETER_UNAVAILABILITY_MESSAGE); String strWorkgroup = request.getParameter(PARAMETER_WORKGROUP); String strIdVoteType = request.getParameter(PARAMETER_ID_VOTE_TYPE); String strActivePropositionState = request.getParameter(PARAMETER_ACTIVE_PROPOSITION_STATE); String strNumberVoteRequired = request.getParameter(PARAMETER_NUMBER_VOTE_REQUIRED); String strNumberDayRequired = request.getParameter(PARAMETER_NUMBER_DAY_REQUIRED); String strNumberSuggestSubmitInTopScore = request .getParameter(PARAMETER_NUMBER_SUGGEST_SUBMIT_IN_TOP_SCORE); String strNumberSuggestSubmitCaractersShown = request .getParameter(PARAMETER_NUMBER_SUGGEST_SUBMIT_CARACTERS_SHOWN); String strNumberSuggestSubmitInTopComment = request .getParameter(PARAMETER_NUMBER_SUGGEST_SUBMIT_IN_TOP_COMMENT); String strThemeXpage = request.getParameter(PARAMETER_THEME_XPAGE); String strActiveSuggestSubmitAuthentification = request .getParameter(PARAMETER_ACTIVE_SUGGEST_SUBMIT_AUTHENTIFICATION); String strActiveVoteAuthentification = request.getParameter(PARAMETER_ACTIVE_VOTE_AUTHENTIFICATION); String strActiveCommentAuthentification = request.getParameter(PARAMETER_ACTIVE_COMMENT_AUTHENTIFICATION); String strDisableNewSuggestSubmit = request.getParameter(PARAMETER_DISABLE_NEW_SUGGEST_SUBMIT); String strEnableMailNewSuggestSubmit = request.getParameter(PARAMETER_ENABLE_MAIL_NEW_SUGGEST_SUBMIT); String strIdMailingListSuggestSubmit = request.getParameter(PARAMETER_ID_MAILING_LIST_SUGGEST_SUBMIT); String strAuthorizedComment = request.getParameter(PARAMETER_AUTHORIZED_COMMENT); String strActiveEditorBbcode = request.getParameter(PARAMETER_ACTIVE_EDITOR_BBCODE_ON_COMMENT); String strDisableNewComment = request.getParameter(PARAMETER_DISABLE_NEW_COMMENT); String strLimitNumberVote = request.getParameter(PARAMETER_LIMIT_NUMBER_VOTE); String strActiveCaptcha = request.getParameter(PARAMETER_ACTIVE_CAPTCHA); String strLibelleValidateButton = request.getParameter(PARAMETER_LIBELLE_VALIDATE_BUTTON); String strShowCategoryBlock = request.getParameter(PARAMETER_SHOW_CATEGORY_BLOCK); String strShowTopScoreBlock = request.getParameter(PARAMETER_SHOW_TOP_SCORE_BLOCK); String strShowTopCommentBlock = request.getParameter(PARAMETER_SHOW_TOP_COMMENT_BLOCK); String strActiveSuggestSubmitPaginator = request.getParameter(PARAMETER_ACTIVE_SUGGEST_SUBMIT_PAGINATOR); String strNumberSuggestSubmitPerPage = request.getParameter(PARAMETER_NUMBER_SUGGEST_SUBMIT_PER_PAGE); String strRole = request.getParameter(PARAMETER_ROLE); String strHeader = request.getParameter(PARAMETER_HEADER); String strConfirmationMessage = request.getParameter(PARAMETER_CONFIRMATION_MESSAGE); String strIdDefaultSort = request.getParameter(PARAMETER_ID_DEFAULT_SORT); String strDisableVote = request.getParameter(PARAMETER_DISABLE_VOTE); String strDisplayCommentInSuggestSubmitList = request .getParameter(PARAMETER_DISPLAY_COMMENT_IN_SUGGEST_SUBMIT_LIST); String strNumberCommentDisplayInSuggestSubmitList = request .getParameter(PARAMETER_NUMBER_COMMENT_DISPLAY_IN_SUGGEST_SUBMIT_LIST); String strNumberCharCommentDisplayInSuggestSubmitList = request .getParameter(PARAMETER_NUMBER_CHAR_COMMENT_DISPLAY_IN_SUGGEST_SUBMIT_LIST); String strEnableMailNewCommentSubmit = request.getParameter(PARAMETER_ENABLE_MAIL_NEW_COMMENT_SUBMIT); String strEnableMailNewReportedSubmit = request.getParameter(PARAMETER_ENABLE_MAIL_NEW_REPORTED_SUBMIT); String strEnableTermsOfUse = request.getParameter(PARAMETER_ENABLE_TERMS_OF_USE); String strTermsOfUse = request.getParameter(PARAMETER_TERMS_OF_USE); String strEnableReports = request.getParameter(PARAMETER_ENABLE_REPORTS); String strDescription = request.getParameter(PARAMETER_DESCRIPTION); String strNotificationNewCommentSenderName = request .getParameter(PARAMETER_NOTIFICATION_NEW_COMMENT_SENDER_NAME); String strNotificationNewCommentTitle = request.getParameter(PARAMETER_NOTIFICATION_NEW_COMMENT_TITLE); String strNotificationNewCommentBody = request.getParameter(PARAMETER_NOTIFICATION_NEW_COMMENT_BODY); String strNotificationNewSuggestSubmitSenderName = request .getParameter(PARAMETER_NOTIFICATION_NEW_SUGGEST_SUBMIT_SENDER_NAME); String strNotificationNewSuggestSubmitTitle = request .getParameter(PARAMETER_NOTIFICATION_NEW_SUGGEST_SUBMIT_TITLE); String strNotificationNewSuggestSubmitBody = request .getParameter(PARAMETER_NOTIFICATION_NEW_SUGGEST_SUBMIT_BODY); int nIdVoteType = SuggestUtils.getIntegerParameter(strIdVoteType); int nIdMailingListSuggestSubmit = SuggestUtils.getIntegerParameter(strIdMailingListSuggestSubmit); int nNumberDayRequired = SuggestUtils.getIntegerParameter(strNumberDayRequired); int nNumberVoteRequired = SuggestUtils.getIntegerParameter(strNumberVoteRequired); int nNumberSuggestSubmitInTopScore = SuggestUtils.getIntegerParameter(strNumberSuggestSubmitInTopScore); int nNumberSuggestSubmitCaractersShown = SuggestUtils .getIntegerParameter(strNumberSuggestSubmitCaractersShown); int nNumberSuggestSubmitInTopComment = SuggestUtils.getIntegerParameter(strNumberSuggestSubmitInTopComment); int nNumberSuggestSubmitPerPage = SuggestUtils.getIntegerParameter(strNumberSuggestSubmitPerPage); int nIdDefaultSort = SuggestUtils.getIntegerParameter(strIdDefaultSort); int nNumberCommentDisplayInSuggestSubmitList = SuggestUtils .getIntegerParameter(strNumberCommentDisplayInSuggestSubmitList); int nNumberCharCommentDisplayInSuggestSubmitList = SuggestUtils .getIntegerParameter(strNumberCharCommentDisplayInSuggestSubmitList); String strFieldError = EMPTY_STRING; if (StringUtils.isEmpty(strTitle)) { strFieldError = FIELD_TITLE; } else if (StringUtils.isEmpty(strLibelleContribution)) { strFieldError = FIELD_LIBELLE_CONTRIBUTION; } else if (StringUtils.isEmpty(strUnavailabilityMessage)) { strFieldError = FIELD_UNAVAILABILITY_MESSAGE; } else if (nIdVoteType == -1) { strFieldError = FIELD_VOTE_TYPE; } else if (StringUtils.isEmpty(strNumberSuggestSubmitCaractersShown)) { strFieldError = FIELD_NUMBER_SUGGEST_SUBMIT_CARACTERS_SHOWN; } else if ((((strShowTopScoreBlock != null) && strShowTopScoreBlock.trim().equals(CONSTANTE_YES_VALUE)) && (strNumberSuggestSubmitInTopScore == null)) || strNumberSuggestSubmitInTopScore.trim().equals(EMPTY_STRING)) { strFieldError = FIELD_NUMBER_SUGGEST_SUBMIT_IN_TOP_SCORE; } else if (((strAuthorizedComment != null) && strAuthorizedComment.trim().equals(CONSTANTE_YES_VALUE)) && ((strNumberSuggestSubmitInTopComment == null) || strNumberSuggestSubmitInTopComment.trim().equals(EMPTY_STRING))) { strFieldError = FIELD_NUMBER_SUGGEST_SUBMIT_IN_TOP_COMMENT; } else if (((strActiveSuggestSubmitPaginator != null) && strActiveSuggestSubmitPaginator.trim().equals(CONSTANTE_YES_VALUE)) && ((strNumberSuggestSubmitPerPage == null) || strNumberSuggestSubmitPerPage.trim().equals(EMPTY_STRING))) { strFieldError = FIELD_NUMBER_SUGGEST_SUBMIT_PER_PAGE; } else if ((strLibelleValidateButton == null) || strLibelleValidateButton.trim().equals(EMPTY_STRING)) { strFieldError = FIELD_LIBELE_VALIDATE_BUTTON; } else if (((strDisplayCommentInSuggestSubmitList != null) && ((strNumberCommentDisplayInSuggestSubmitList == null) || strNumberCommentDisplayInSuggestSubmitList.trim().equals(EMPTY_STRING)))) { strFieldError = FIELD_NUMBER_COMMENT_DISPLAY_IN_SUGGEST_SUBMIT_LIST; } else if (((strDisplayCommentInSuggestSubmitList != null) && ((strNumberCharCommentDisplayInSuggestSubmitList == null) || strNumberCharCommentDisplayInSuggestSubmitList.trim().equals(EMPTY_STRING)))) { strFieldError = FIELD_NUMBER_CHAR_COMMENT_DISPLAY_IN_SUGGEST_SUBMIT_LIST; } else if (StringUtils.isEmpty(strNotificationNewCommentTitle)) { strFieldError = FIELD_NOTIFICATION_NEW_COMMENT_TITLE; } else if (StringUtils.isEmpty(strNotificationNewCommentBody)) { strFieldError = FIELD_NOTIFICATION_NEW_COMMENT_BODY; } else if (StringUtils.isEmpty(strNotificationNewSuggestSubmitTitle)) { strFieldError = FIELD_NOTIFICATION_NEW_SUGGEST_DUBMIT_TITLE; } else if (StringUtils.isEmpty(strNotificationNewSuggestSubmitBody)) { strFieldError = FIELD_NOTIFICATION_NEW_SUGGEST_DUBMIT_BODY; } if (!strFieldError.equals(EMPTY_STRING)) { Object[] tabRequiredFields = { I18nService.getLocalizedString(strFieldError, getLocale()) }; return AdminMessageService.getMessageUrl(request, MESSAGE_MANDATORY_FIELD, tabRequiredFields, AdminMessage.TYPE_STOP); } if (nNumberSuggestSubmitCaractersShown < 0) { return AdminMessageService.getMessageUrl(request, MESSAGE_ILLOGICAL_NUMBER_SUGGEST_SUBMIT_CARACTERS_SHOWN, AdminMessage.TYPE_STOP); } if ((strNumberSuggestSubmitInTopScore != null) && !strNumberSuggestSubmitInTopScore.trim().equals(EMPTY_STRING) && (nNumberSuggestSubmitInTopScore < 0)) { return AdminMessageService.getMessageUrl(request, MESSAGE_ILLOGICAL_NUMBER_SUGGEST_SUBMIT_IN_TOP_SCORE, AdminMessage.TYPE_STOP); } if ((strActivePropositionState != null) && strActivePropositionState.trim().equals(CONSTANTE_YES_VALUE) && (strNumberVoteRequired != null) && !strNumberVoteRequired.trim().equals(EMPTY_STRING) && (nNumberVoteRequired < 0)) { return AdminMessageService.getMessageUrl(request, MESSAGE_ILLOGICAL_NUMBER_VOTE_REQUIRED, AdminMessage.TYPE_STOP); } if ((strNumberDayRequired != null) && !strNumberDayRequired.trim().equals(EMPTY_STRING) && (nNumberDayRequired < 0)) { return AdminMessageService.getMessageUrl(request, MESSAGE_ILLOGICAL_NUMBER_DAY_REQUIRED, AdminMessage.TYPE_STOP); } if ((strNumberSuggestSubmitInTopComment != null) && !strNumberSuggestSubmitInTopComment.trim().equals(EMPTY_STRING) && (nNumberSuggestSubmitInTopComment < 0)) { return AdminMessageService.getMessageUrl(request, MESSAGE_ILLOGICAL_NUMBER_SUGGEST_SUBMIT_IN_TOP_COMMENT, AdminMessage.TYPE_STOP); } if ((strNumberSuggestSubmitPerPage != null) && !strNumberSuggestSubmitPerPage.trim().equals(EMPTY_STRING) && (nNumberSuggestSubmitPerPage < 0)) { return AdminMessageService.getMessageUrl(request, MESSAGE_ILLOGICAL_NUMBER_SUGGEST_SUBMIT_PER_PAGE, AdminMessage.TYPE_STOP); } if ((strDisplayCommentInSuggestSubmitList != null) && (strNumberCommentDisplayInSuggestSubmitList != null) && !strNumberCommentDisplayInSuggestSubmitList.trim().equals(EMPTY_STRING) && (nNumberCommentDisplayInSuggestSubmitList < 0)) { return AdminMessageService.getMessageUrl(request, MESSAGE_ILLOGICAL_NUMBER_COMMENT_DISPLAY_IN_SUGGEST_SUBMIT_LIST, AdminMessage.TYPE_STOP); } if ((strDisplayCommentInSuggestSubmitList != null) && (strNumberCharCommentDisplayInSuggestSubmitList != null) && !strNumberCharCommentDisplayInSuggestSubmitList.trim().equals(EMPTY_STRING) && (nNumberCommentDisplayInSuggestSubmitList < 0)) { return AdminMessageService.getMessageUrl(request, MESSAGE_ILLOGICAL_NUMBER_CHAR_COMMENT_DISPLAY_IN_SUGGEST_SUBMIT_LIST, AdminMessage.TYPE_STOP); } suggest.setTitle(strTitle); suggest.setLibelleContribution(strLibelleContribution); suggest.setUnavailabilityMessage(strUnavailabilityMessage); suggest.setWorkgroup(strWorkgroup); if (suggest.getVoteType() == null) { suggest.setVoteType(new VoteType()); } suggest.getVoteType().setIdVoteType(nIdVoteType); if ((strActivePropositionState != null) && strActivePropositionState.trim().equals(CONSTANTE_YES_VALUE)) { suggest.setActiveSuggestPropositionState(true); suggest.setNumberVoteRequired(nNumberVoteRequired); } else { suggest.setActiveSuggestPropositionState(false); suggest.setNumberVoteRequired(-1); } suggest.setNumberDayRequired(nNumberDayRequired); suggest.setActiveSuggestSubmitAuthentification(strActiveSuggestSubmitAuthentification != null); suggest.setActiveVoteAuthentification(strActiveVoteAuthentification != null); suggest.setActiveCommentAuthentification(strActiveCommentAuthentification != null); suggest.setActiveCaptcha(strActiveCaptcha != null); suggest.setDisableNewSuggestSubmit(strDisableNewSuggestSubmit != null); suggest.setEnableMailNewSuggestSubmit(strEnableMailNewSuggestSubmit != null); suggest.setEnableMailNewCommentSubmit(strEnableMailNewCommentSubmit != null); suggest.setEnableMailNewReportedSubmit(strEnableMailNewReportedSubmit != null); suggest.setIdMailingListSuggestSubmit(nIdMailingListSuggestSubmit); suggest.setAuthorizedComment(strAuthorizedComment != null); suggest.setDisableNewComment(strDisableNewComment != null); suggest.setActiveEditorBbcode(strActiveEditorBbcode != null); suggest.setLimitNumberVote(strLimitNumberVote != null); suggest.setShowCategoryBlock(strShowCategoryBlock != null); suggest.setShowTopScoreBlock(strShowTopScoreBlock != null); suggest.setShowTopCommentBlock(strShowTopCommentBlock != null); suggest.setActiveSuggestSubmitPaginator(strActiveSuggestSubmitPaginator != null); if (strThemeXpage != null) { suggest.setCodeTheme(strThemeXpage); } suggest.setLibelleValidateButton(strLibelleValidateButton); suggest.setNumberSuggestSubmitInTopScore(nNumberSuggestSubmitInTopScore); suggest.setNumberSuggestSubmitInTopComment(nNumberSuggestSubmitInTopComment); suggest.setNumberSuggestSubmitCaractersShown(nNumberSuggestSubmitCaractersShown); suggest.setNumberSuggestSubmitPerPage(nNumberSuggestSubmitPerPage); if (strDefaultRole != null && !strRole.equals(strDefaultRole)) { suggest.setRole(strRole); } else { suggest.setRole(null); } suggest.setHeader(strHeader); suggest.setConfirmationMessage(strConfirmationMessage); suggest.setIdDefaultSort(nIdDefaultSort); suggest.setDisableVote(strDisableVote != null); suggest.setDisplayCommentInSuggestSubmitList(strDisplayCommentInSuggestSubmitList != null); suggest.setNumberCommentDisplayInSuggestSubmitList(nNumberCommentDisplayInSuggestSubmitList); suggest.setNumberCharCommentDisplayInSuggestSubmitList(nNumberCharCommentDisplayInSuggestSubmitList); suggest.setEnableReports(strEnableReports != null); suggest.setEnableTermsOfUse(strEnableTermsOfUse != null); suggest.setTermsOfUse(strTermsOfUse); suggest.setDescription(strDescription); suggest.setNotificationNewCommentSenderName(strNotificationNewCommentSenderName); suggest.setNotificationNewCommentTitle(strNotificationNewCommentTitle); suggest.setNotificationNewCommentBody(strNotificationNewCommentBody); suggest.setNotificationNewSuggestSubmitSenderName(strNotificationNewSuggestSubmitSenderName); suggest.setNotificationNewSuggestSubmitTitle(strNotificationNewSuggestSubmitTitle); suggest.setNotificationNewSuggestSubmitBody(strNotificationNewSuggestSubmitBody); if ((suggest.getIdSuggest() == SuggestUtils.CONSTANT_ID_NULL) || (strUpdateFile != null)) { FileItem imageSource = request.getFile(PARAMETER_IMAGE_SOURCE); String strImageName = FileUploadService.getFileNameOnly(imageSource); ImageResource image = new ImageResource(); byte[] baImageSource = imageSource.get(); if ((strImageName != null) && !strImageName.equals("")) { image.setImage(baImageSource); image.setMimeType(imageSource.getContentType()); } suggest.setImage(image); } return null; // No error }
From source file:it.infn.ct.nuclemd.Nuclemd.java
public String[] uploadNuclemdSettings(ActionRequest actionRequest, ActionResponse actionResponse, String username) {/*from w ww.j a va 2s . c o m*/ String[] NUCLEMD_Parameters = new String[9]; boolean status; // Check that we have a file upload request boolean isMultipart = PortletFileUpload.isMultipartContent(actionRequest); if (isMultipart) { // Create a factory for disk-based file items. DiskFileItemFactory factory = new DiskFileItemFactory(); // Set factory constrains File NUCLEMD_Repository = new File("/tmp"); if (!NUCLEMD_Repository.exists()) status = NUCLEMD_Repository.mkdirs(); factory.setRepository(NUCLEMD_Repository); // Create a new file upload handler. PortletFileUpload upload = new PortletFileUpload(factory); try { // Parse the request List items = upload.parseRequest(actionRequest); // Processing items Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); String fieldName = item.getFieldName(); DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); String timeStamp = dateFormat.format(Calendar.getInstance().getTime()); // Processing a regular form field if (item.isFormField()) { if (fieldName.equals("nuclemd_release")) NUCLEMD_Parameters[8] = item.getString(); if (fieldName.equals("nuclemd_desc")) if (item.getString().equals("Please, insert here a description")) NUCLEMD_Parameters[0] = "NUCLEMD Simulation Started"; else NUCLEMD_Parameters[0] = item.getString(); if (fieldName.equals("nuclemd_CE")) NUCLEMD_Parameters[1] = item.getString(); } else { // Processing a file upload if (fieldName.equals("nuclemd_fileinp")) { log.info("\n- Uploading the input file: " + "\n[ " + item.getName() + " ]" + "\n[ " + item.getContentType() + " ]" + "\n[ " + item.getSize() + "KBytes ]"); // Writing the file to disk String uploadNuclemdFile = NUCLEMD_Repository + "/" + timeStamp + "_" + username + "_" + item.getName(); log.info("\n- Writing the file: [ " + uploadNuclemdFile.toString() + " ] to disk"); item.write(new File(uploadNuclemdFile)); // Writing the file to disk String uploadNuclemdFile_stripped = NUCLEMD_Repository + "/" + timeStamp + "_" + username + "_" + item.getName() + "_stripped"; NUCLEMD_Parameters[2] = RemoveCarriageReturn(uploadNuclemdFile, uploadNuclemdFile_stripped); } if (fieldName.equals("nuclemd_fileconf_1")) { log.info("\n- Uploading the input file: " + "\n[ " + item.getName() + " ]" + "\n[ " + item.getContentType() + " ]" + "\n[ " + item.getSize() + "KBytes ]"); // Writing the file to disk String uploadNuclemdFile = NUCLEMD_Repository + "/" + timeStamp + "_" + username + "_" + item.getName(); log.info("\n- Writing the file: [ " + uploadNuclemdFile.toString() + " ] to disk"); item.write(new File(uploadNuclemdFile)); // Writing the file to disk String uploadNuclemdFile_stripped = NUCLEMD_Repository + "/" + timeStamp + "_" + username + "_" + item.getName() + "_stripped"; NUCLEMD_Parameters[3] = RemoveCarriageReturn(uploadNuclemdFile, uploadNuclemdFile_stripped); } if (fieldName.equals("nuclemd_fileconf_2")) { log.info("\n- Uploading the input file: " + "\n[ " + item.getName() + " ]" + "\n[ " + item.getContentType() + " ]" + "\n[ " + item.getSize() + "KBytes ]"); // Writing the file to disk String uploadNuclemdFile = NUCLEMD_Repository + "/" + timeStamp + "_" + username + "_" + item.getName(); log.info("\n- Writing the file: [ " + uploadNuclemdFile.toString() + " ] to disk"); item.write(new File(uploadNuclemdFile)); // Writing the file to disk String uploadNuclemdFile_stripped = NUCLEMD_Repository + "/" + timeStamp + "_" + username + "_" + item.getName() + "_stripped"; NUCLEMD_Parameters[4] = RemoveCarriageReturn(uploadNuclemdFile, uploadNuclemdFile_stripped); } } if (fieldName.equals("EnableNotification")) NUCLEMD_Parameters[5] = item.getString(); if (fieldName.equals("nuclemd_maxwallclocktime")) NUCLEMD_Parameters[6] = item.getString(); if (fieldName.equals("EnableDemo")) NUCLEMD_Parameters[7] = item.getString(); } // end while } catch (FileUploadException ex) { Logger.getLogger(Nuclemd.class.getName()).log(Level.SEVERE, null, ex); } catch (Exception ex) { Logger.getLogger(Nuclemd.class.getName()).log(Level.SEVERE, null, ex); } } return NUCLEMD_Parameters; }
From source file:com.stratelia.webactiv.kmelia.servlets.KmeliaRequestRouter.java
/** * Process Form Upload for publications import */* w w w . j a v a 2 s. c o m*/ * @param kmeliaScc * @param request * @param routeDestination * @return destination */ private String processFormUpload(KmeliaSessionController kmeliaScc, HttpRequest request, String routeDestination, boolean isMassiveMode) { String destination = ""; String topicId = ""; String importMode; boolean draftMode = false; String logicalName; String message; boolean error = false; String tempFolderName; String tempFolderPath = null; String fileType; long fileSize; long processStart = new Date().getTime(); ResourceLocator attachmentResourceLocator = new ResourceLocator( "org.silverpeas.util.attachment.multilang.attachment", kmeliaScc.getLanguage()); FileItem fileItem; int versionType = DocumentVersion.TYPE_DEFAULT_VERSION; try { List<FileItem> items = request.getFileItems(); topicId = FileUploadUtil.getParameter(items, "topicId"); importMode = FileUploadUtil.getParameter(items, "opt_importmode"); String sVersionType = FileUploadUtil.getParameter(items, "opt_versiontype"); if (StringUtil.isDefined(sVersionType)) { versionType = Integer.parseInt(sVersionType); } String sDraftMode = FileUploadUtil.getParameter(items, "chk_draft"); if (StringUtil.isDefined(sDraftMode)) { draftMode = StringUtil.getBooleanValue(sDraftMode); } fileItem = FileUploadUtil.getFile(items, "file_name"); if (fileItem != null) { logicalName = fileItem.getName(); if (logicalName != null) { boolean runOnUnix = !FileUtil.isWindows(); if (runOnUnix) { logicalName = logicalName.replace('\\', File.separatorChar); SilverTrace.info("kmelia", "KmeliaRequestRouter.processFormUpload", "root.MSG_GEN_PARAM_VALUE", "fileName on Unix = " + logicalName); } logicalName = logicalName.substring(logicalName.lastIndexOf(File.separator) + 1, logicalName.length()); // Name of temp folder: timestamp and userId tempFolderName = Long.toString(System.currentTimeMillis()) + "_" + kmeliaScc.getUserId(); // Mime type of the file fileType = fileItem.getContentType(); // Zip contentType not detected under Firefox ! if (!ClientBrowserUtil.isInternetExplorer(request)) { fileType = MimeTypes.ARCHIVE_MIME_TYPE; } fileSize = fileItem.getSize(); // Directory Temp for the uploaded file tempFolderPath = FileRepositoryManager.getAbsolutePath(kmeliaScc.getComponentId()) + GeneralPropertiesManager.getString("RepositoryTypeTemp") + File.separator + tempFolderName; if (!new File(tempFolderPath).exists()) { FileRepositoryManager.createAbsolutePath(kmeliaScc.getComponentId(), GeneralPropertiesManager.getString("RepositoryTypeTemp") + File.separator + tempFolderName); } // Creation of the file in the temp folder File fileUploaded = new File(FileRepositoryManager.getAbsolutePath(kmeliaScc.getComponentId()) + GeneralPropertiesManager.getString("RepositoryTypeTemp") + File.separator + tempFolderName + File.separator + logicalName); fileItem.write(fileUploaded); // Is a real file ? if (fileSize <= 0L) { // File access failed message = attachmentResourceLocator.getString("liaisonInaccessible"); error = true; } else { SilverTrace.debug("kmelia", "KmeliaRequestRouter.processFormUpload()", "root.MSG_GEN_PARAM_VALUE", "fileUploaded = " + fileUploaded + " fileSize=" + fileSize + " fileType=" + fileType + " importMode=" + importMode + " draftMode=" + draftMode); // Import !! ImportReport importReport = kmeliaScc.importFile(fileUploaded, fileType, topicId, importMode, draftMode, versionType); long processDuration = new Date().getTime() - processStart; // Compute nbPublication created int nbPublication = kmeliaScc.getNbPublicationImported(importReport); // nbFiles imported (only in unitary Import mode) int nbFiles = importReport.getNbFilesProcessed(); // Title for popup report String importModeTitle; if (importMode.equals(KmeliaSessionController.UNITARY_IMPORT_MODE)) { importModeTitle = kmeliaScc.getString("kmelia.ImportModeUnitaireTitre"); } else { importModeTitle = kmeliaScc.getString("kmelia.ImportModeMassifTitre"); } SilverTrace.debug("kmelia", "KmeliaRequestRouter.processFormUpload()", "root.MSG_GEN_PARAM_VALUE", "nbFiles = " + nbFiles + " nbPublication=" + nbPublication + " ProcessDuration=" + processDuration + " ImportMode=" + importMode + " Draftmode=" + draftMode + " Title=" + importModeTitle); message = kmeliaScc.getErrorMessageImportation(importReport, importMode); if (message != null && importMode.equals(KmeliaSessionController.UNITARY_IMPORT_MODE)) { error = true; } request.setAttribute("NbPublication", nbPublication); request.setAttribute("NbFiles", nbFiles); request.setAttribute("ProcessDuration", FileRepositoryManager.formatFileUploadTime(processDuration)); request.setAttribute("ImportMode", importMode); request.setAttribute("DraftMode", draftMode); request.setAttribute("Title", importModeTitle); request.setAttribute("Context", URLManager.getApplicationURL()); request.setAttribute("Message", message); destination = routeDestination + "reportImportFiles.jsp"; String componentId = kmeliaScc.getComponentId(); if (kmeliaScc.isDefaultClassificationModifiable(topicId, componentId)) { List<PublicationDetail> publicationDetails = kmeliaScc .getListPublicationImported(importReport, importMode); if (publicationDetails.size() > 0) { request.setAttribute("PublicationsDetails", publicationDetails); destination = routeDestination + "validateImportedFilesClassification.jsp"; } } } // Delete temp folder FileFolderManager.deleteFolder(tempFolderPath); } else { // the field did not contain a file message = attachmentResourceLocator.getString("liaisonInaccessible"); error = true; } } else { // the field did not contain a file message = attachmentResourceLocator.getString("liaisonInaccessible"); error = true; } if (error) { request.setAttribute("Message", message); request.setAttribute("TopicId", topicId); destination = routeDestination + "importOneFile.jsp"; if (isMassiveMode) { destination = routeDestination + "importMultiFiles.jsp"; } } } catch (Exception e) { String exMessage = SilverpeasTransverseErrorUtil.performExceptionMessage(e, kmeliaScc.getLanguage()); if (StringUtil.isNotDefined(exMessage)) { request.setAttribute("Message", e.getMessage()); } // Other exception request.setAttribute("TopicId", topicId); destination = routeDestination + "importOneFile.jsp"; if (isMassiveMode) { destination = routeDestination + "importMultiFiles.jsp"; } SilverTrace.warn("kmelia", "KmeliaRequestRouter.processFormUpload()", "root.EX_LOAD_ATTACHMENT_FAILED", e); } finally { if (tempFolderPath != null) { FileFolderManager.deleteFolder(tempFolderPath); } } return destination; }
From source file:it.infn.ct.wrf.Wrf.java
public String[] uploadSettings(ActionRequest actionRequest, ActionResponse actionResponse, String username) { String[] _Parameters = new String[7]; boolean status; // Check that we have a file upload request boolean isMultipart = PortletFileUpload.isMultipartContent(actionRequest); if (isMultipart) { // Create a factory for disk-based file items. DiskFileItemFactory factory = new DiskFileItemFactory(); // Set factory constrains File _Repository = new File("/tmp"); if (!_Repository.exists()) status = _Repository.mkdirs(); factory.setRepository(_Repository); // Create a new file upload handler. PortletFileUpload upload = new PortletFileUpload(factory); try {/* w ww.jav a 2 s . c om*/ // Parse the request List items = upload.parseRequest(actionRequest); // Processing items Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); String fieldName = item.getFieldName(); DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); String timeStamp = dateFormat.format(Calendar.getInstance().getTime()); // Processing a regular form field if (item.isFormField()) { if (fieldName.equals("wrf_textarea_OCTAVE")) { _Parameters[0] = _Repository + "/" + timeStamp + "_" + username + ".m"; // Store the textarea in a ASCII file storeString(_Parameters[0], item.getString()); } if (fieldName.equals("wrf_textarea_R")) { _Parameters[0] = _Repository + "/" + timeStamp + "_" + username + ".r"; // Store the textarea in a ASCII file storeString(_Parameters[0], item.getString()); } if (fieldName.equals("wrftype")) _Parameters[1] = item.getString(); if (fieldName.equals("wrf_CR")) _Parameters[2] = item.getString(); if (fieldName.equals("wrfvmtemplate")) _Parameters[5] = item.getString(); if (fieldName.equals("wrf_vmname")) _Parameters[6] = item.getString(); } else { // Processing a file upload if (fieldName.equals("wrf_file_OCTAVE") || fieldName.equals("wrf_file_R")) { log.info("\n- Uploading the following user's file: " + "\n[ " + item.getName() + " ]" + "\n[ " + item.getContentType() + " ]" + "\n[ " + item.getSize() + "KBytes ]"); // Writing the file to disk String uploadFile = _Repository + "/" + timeStamp + "_" + username + "_" + item.getName(); log.info("\n- Writing the user's file: [ " + uploadFile.toString() + " ] to disk"); item.write(new File(uploadFile)); _Parameters[0] = uploadFile; } } if (fieldName.equals("EnableNotification")) _Parameters[3] = item.getString(); if (fieldName.equals("wrf_desc")) if (item.getString().equals("Please, insert here a description for your run")) _Parameters[4] = "Cloud Simulation Started"; else _Parameters[4] = item.getString(); } // end while } catch (FileUploadException ex) { Logger.getLogger(Wrf.class.getName()).log(Level.SEVERE, null, ex); } catch (Exception ex) { Logger.getLogger(Wrf.class.getName()).log(Level.SEVERE, null, ex); } } return _Parameters; }
From source file:es.sm2.openppm.front.servlets.MaintenanceServlet.java
/** * Save a document or manual//from w w w . j a v a2 s .co m * @param req * @param resp * @throws IOException * @throws ServletException */ private void saveDocumentation(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { int docId = Integer.parseInt(getMultipartField("idDocumentation")); int idManten = Integer.parseInt(getMultipartField("idManten")); String namePopup = getMultipartField("namePopup"); try { FileItem dataFile = getMultipartFields().get("file"); if (dataFile != null) { Documentation doc = new Documentation(); Contentfile docFile = new Contentfile(); // Declare logics DocumentationLogic docLogic = new DocumentationLogic(); ContentFileLogic fileLogic = new ContentFileLogic(); if (docId != -1) { // Logic find doc doc = docLogic.findById(docId); infoUpdated(req, "maintenance.documentation_manuals.documentation"); } else { infoCreated(req, "maintenance.documentation_manuals.documentation"); } if (dataFile.getSize() > 0) { // Delete old file if update doc if (docId != -1) { fileLogic.delete(fileLogic.findByDocumentation(doc)); } // Set data content file docFile.setExtension(FilenameUtils.getExtension(dataFile.getName())); docFile.setMime(dataFile.getContentType()); docFile.setContent(dataFile.get()); // Logic save content file docFile = fileLogic.save(docFile); // Update doc doc.setNameFile(dataFile.getName()); doc.setContentfile(docFile); } doc.setNamePopup(namePopup); doc.setCompany(getCompany(req)); // Logic save doc docLogic.save(doc); } } catch (Exception e) { ExceptionUtil.evalueException(req, getResourceBundle(req), LOGGER, e); } consMaintenance(req, resp, idManten); }
From source file:com.stratelia.webactiv.kmelia.servlets.KmeliaRequestRouter.java
/** * This method has to be implemented by the component request rooter it has to compute a * destination page/*w ww . ja va 2s.co m*/ * * * @param function The entering request function ( : "Main.jsp") * @param kmelia The component Session Control, build and initialised. * @param request The entering request. The request rooter need it to get parameters * @return The complete destination URL for a forward (ex : * "/almanach/jsp/almanach.jsp?flag=user") */ @Override public String getDestination(String function, KmeliaSessionController kmelia, HttpRequest request) { SilverTrace.info("kmelia", "KmeliaRequestRouter.getDestination()", "root.MSG_GEN_PARAM_VALUE", "function = " + function); String destination = ""; String rootDestination = "/kmelia/jsp/"; boolean profileError = false; boolean kmaxMode = false; boolean toolboxMode; try { SilverTrace.info("kmelia", "KmeliaRequestRouter.getDestination()", "root.MSG_GEN_PARAM_VALUE", "getComponentRootName() = " + kmelia.getComponentRootName()); if ("kmax".equals(kmelia.getComponentRootName())) { kmaxMode = true; kmelia.isKmaxMode = true; } request.setAttribute("KmaxMode", kmaxMode); toolboxMode = KmeliaHelper.isToolbox(kmelia.getComponentId()); // Set language choosen by the user setLanguage(request, kmelia); if (function.startsWith("Main")) { resetWizard(kmelia); if (kmaxMode) { destination = getDestination("KmaxMain", kmelia, request); kmelia.setSessionTopic(null); kmelia.setSessionPath(""); } else { destination = getDestination("GoToTopic", kmelia, request); } } else if (function.startsWith("validateClassification")) { String[] publicationIds = request.getParameterValues("pubid"); Collection<KmeliaPublication> publications = kmelia .getPublications(asPks(kmelia.getComponentId(), publicationIds)); request.setAttribute("Context", URLManager.getApplicationURL()); request.setAttribute("PublicationsDetails", publications); destination = rootDestination + "validateImportedFilesClassification.jsp"; } else if (function.startsWith("portlet")) { kmelia.setSessionPublication(null); String flag = kmelia.getUserRoleLevel(); if (kmaxMode) { destination = rootDestination + "kmax_portlet.jsp?Profile=" + flag; } else { destination = rootDestination + "portlet.jsp?Profile=user"; } } else if (function.equals("FlushTrashCan")) { kmelia.flushTrashCan(); if (kmaxMode) { destination = getDestination("KmaxMain", kmelia, request); } else { destination = getDestination("GoToCurrentTopic", kmelia, request); } } else if (function.equals("GoToDirectory")) { String topicId = request.getParameter("Id"); String path; if (StringUtil.isDefined(topicId)) { NodeDetail topic = kmelia.getNodeHeader(topicId); path = topic.getPath(); } else { path = request.getParameter("Path"); } FileFolder folder = new FileFolder(path); request.setAttribute("Directory", folder); request.setAttribute("LinkedPathString", kmelia.getSessionPath()); destination = rootDestination + "repository.jsp"; } else if ("GoToTopic".equals(function)) { String topicId = (String) request.getAttribute("Id"); if (!StringUtil.isDefined(topicId)) { topicId = request.getParameter("Id"); if (!StringUtil.isDefined(topicId)) { topicId = NodePK.ROOT_NODE_ID; } } kmelia.setCurrentFolderId(topicId, true); resetWizard(kmelia); request.setAttribute("CurrentFolderId", topicId); request.setAttribute("DisplayNBPublis", kmelia.displayNbPublis()); request.setAttribute("DisplaySearch", kmelia.isSearchOnTopicsEnabled()); // rechercher si le theme a un descripteur request.setAttribute("HaveDescriptor", kmelia.isTopicHaveUpdateChainDescriptor()); request.setAttribute("Profile", kmelia.getUserTopicProfile(topicId)); request.setAttribute("IsGuest", kmelia.getUserDetail().isAccessGuest()); request.setAttribute("RightsOnTopicsEnabled", kmelia.isRightsOnTopicsEnabled()); request.setAttribute("WysiwygDescription", kmelia.getWysiwygOnTopic()); request.setAttribute("PageIndex", kmelia.getIndexOfFirstPubToDisplay()); if (kmelia.isTreeviewUsed()) { destination = rootDestination + "treeview.jsp"; } else if (kmelia.isTreeStructure()) { destination = rootDestination + "oneLevel.jsp"; } else { destination = rootDestination + "simpleListOfPublications.jsp"; } } else if ("GoToCurrentTopic".equals(function)) { if (!NodePK.ROOT_NODE_ID.equals(kmelia.getCurrentFolderId())) { request.setAttribute("Id", kmelia.getCurrentFolderId()); destination = getDestination("GoToTopic", kmelia, request); } else { destination = getDestination("Main", kmelia, request); } } else if (function.equals("GoToBasket")) { destination = rootDestination + "basket.jsp"; } else if (function.equals("ViewPublicationsToValidate")) { destination = rootDestination + "publicationsToValidate.jsp"; } else if ("GoBackToResults".equals(function)) { request.setAttribute("SearchContext", kmelia.getSearchContext()); destination = getDestination("GoToCurrentTopic", kmelia, request); } else if (function.startsWith("searchResult")) { resetWizard(kmelia); String id = request.getParameter("Id"); String type = request.getParameter("Type"); String fileAlreadyOpened = request.getParameter("FileOpened"); String from = request.getParameter("From"); if ("Search".equals(from)) { // identify clearly access from global search // because same URL is used from portlet, permalink... request.setAttribute("SearchScope", SearchContext.GLOBAL); } if (type != null && ("Publication".equals(type) || "com.stratelia.webactiv.calendar.backbone.TodoDetail".equals(type) || "Attachment".equals(type) || "Document".equals(type) || type.startsWith("Comment"))) { KmeliaSecurity security = new KmeliaSecurity(kmelia.getOrganisationController()); try { boolean accessAuthorized = security.isAccessAuthorized(kmelia.getComponentId(), kmelia.getUserId(), id, "Publication"); if (accessAuthorized) { processPath(kmelia, id); if ("Attachment".equals(type)) { String attachmentId = request.getParameter("AttachmentId"); request.setAttribute("AttachmentId", attachmentId); destination = getDestination("ViewPublication", kmelia, request); } else if ("Document".equals(type)) { String documentId = request.getParameter("DocumentId"); request.setAttribute("DocumentId", documentId); destination = getDestination("ViewPublication", kmelia, request); } else { if (kmaxMode) { request.setAttribute("FileAlreadyOpened", fileAlreadyOpened); destination = getDestination("ViewPublication", kmelia, request); } else if (toolboxMode) { // we have to find which page contains the right publication List<KmeliaPublication> publications = kmelia.getSessionPublicationsList(); int pubIndex = -1; for (int p = 0; p < publications.size() && pubIndex == -1; p++) { KmeliaPublication publication = publications.get(p); if (id.equals(publication.getDetail().getPK().getId())) { pubIndex = p; } } int nbPubliPerPage = kmelia.getNbPublicationsPerPage(); if (nbPubliPerPage == 0) { nbPubliPerPage = pubIndex; } int ipage = pubIndex / nbPubliPerPage; kmelia.setIndexOfFirstPubToDisplay(Integer.toString(ipage * nbPubliPerPage)); request.setAttribute("PubIdToHighlight", id); request.setAttribute("Id", kmelia.getCurrentFolderId()); destination = getDestination("GoToTopic", kmelia, request); } else { request.setAttribute("FileAlreadyOpened", fileAlreadyOpened); destination = getDestination("ViewPublication", kmelia, request); } } } else { destination = "/admin/jsp/accessForbidden.jsp"; } } catch (Exception e) { SilverTrace.error("kmelia", "KmeliaRequestRouter.getDestination()", "root.MSG_GEN_PARAM_VALUE", "Document Not Found = " + e.getMessage(), e); destination = getDocumentNotFoundDestination(kmelia, request); } } else if ("Node".equals(type)) { if (kmaxMode) { // Simuler l'action d'un utilisateur ayant slectionn la valeur id d'un axe // SearchCombination est un chemin /0/4/i NodeDetail node = kmelia.getNodeHeader(id); String path = node.getPath() + id; request.setAttribute("SearchCombination", path); destination = getDestination("KmaxSearch", kmelia, request); } else { try { request.setAttribute("Id", id); destination = getDestination("GoToTopic", kmelia, request); } catch (Exception e) { SilverTrace.error("kmelia", "KmeliaRequestRouter.getDestination()", "root.MSG_GEN_PARAM_VALUE", "Document Not Found = " + e.getMessage(), e); destination = getDocumentNotFoundDestination(kmelia, request); } } } else if ("Wysiwyg".equals(type)) { if (id.startsWith("Node")) { id = id.substring("Node_".length(), id.length()); request.setAttribute("Id", id); destination = getDestination("GoToTopic", kmelia, request); } else { destination = getDestination("ViewPublication", kmelia, request); } } else { request.setAttribute("Id", NodePK.ROOT_NODE_ID); destination = getDestination("GoToTopic", kmelia, request); } } else if (function.startsWith("GoToFilesTab")) { String id = request.getParameter("Id"); try { processPath(kmelia, id); if (toolboxMode) { KmeliaPublication kmeliaPublication = kmelia.getPublication(id); kmelia.setSessionPublication(kmeliaPublication); kmelia.setSessionOwner(true); destination = getDestination("ViewAttachments", kmelia, request); } else { destination = getDestination("ViewPublication", kmelia, request); } } catch (Exception e) { SilverTrace.error("kmelia", "KmeliaRequestRouter.getDestination()", "root.MSG_GEN_PARAM_VALUE", "Document Not Found = " + e.getMessage(), e); destination = getDocumentNotFoundDestination(kmelia, request); } } else if ("ToUpdatePublicationHeader".equals(function)) { request.setAttribute("Action", "UpdateView"); destination = getDestination("publicationManager.jsp", kmelia, request); } else if ("publicationManager.jsp".equals(function)) { String action = (String) request.getAttribute("Action"); if ("UpdateView".equals(action)) { request.setAttribute("TaxonomyOK", kmelia.isPublicationTaxonomyOK()); request.setAttribute("ValidatorsOK", kmelia.isPublicationValidatorsOK()); request.setAttribute("Publication", kmelia.getSessionPubliOrClone()); } else if ("New".equals(action)) { request.setAttribute("TaxonomyOK", true); request.setAttribute("ValidatorsOK", true); } request.setAttribute("Wizard", kmelia.getWizard()); request.setAttribute("Path", kmelia.getTopicPath(kmelia.getCurrentFolderId())); request.setAttribute("Profile", kmelia.getProfile()); destination = rootDestination + "publicationManager.jsp"; // thumbnail error for front explication if (request.getParameter("errorThumbnail") != null) { destination = destination + "&resultThumbnail=" + request.getParameter("errorThumbnail"); } } else if (function.equals("ToAddTopic")) { String topicId = request.getParameter("Id"); if (!SilverpeasRole.admin.isInRole(kmelia.getUserTopicProfile(topicId))) { destination = "/admin/jsp/accessForbidden.jsp"; } else { String isLink = request.getParameter("IsLink"); if (StringUtil.isDefined(isLink)) { request.setAttribute("IsLink", Boolean.TRUE); } List<NodeDetail> path = kmelia.getTopicPath(topicId); request.setAttribute("Path", kmelia.displayPath(path, false, 3)); request.setAttribute("PathLinked", kmelia.displayPath(path, true, 3)); request.setAttribute("Translation", kmelia.getCurrentLanguage()); request.setAttribute("NotificationAllowed", kmelia.isNotificationAllowed()); request.setAttribute("Parent", kmelia.getNodeHeader(topicId)); if (kmelia.isRightsOnTopicsEnabled()) { request.setAttribute("Profiles", kmelia.getTopicProfiles()); // Rights of the component request.setAttribute("RightsDependsOn", "ThisComponent"); } destination = rootDestination + "addTopic.jsp"; } } else if ("ToUpdateTopic".equals(function)) { String id = request.getParameter("Id"); NodeDetail node = kmelia.getSubTopicDetail(id); if (!SilverpeasRole.admin.isInRole(kmelia.getUserTopicProfile(id)) && !SilverpeasRole.admin.isInRole(kmelia.getUserTopicProfile(node.getFatherPK().getId()))) { destination = "/admin/jsp/accessForbidden.jsp"; } else { request.setAttribute("NodeDetail", node); List<NodeDetail> path = kmelia.getTopicPath(id); request.setAttribute("Path", kmelia.displayPath(path, false, 3)); request.setAttribute("PathLinked", kmelia.displayPath(path, true, 3)); request.setAttribute("Translation", kmelia.getCurrentLanguage()); request.setAttribute("NotificationAllowed", kmelia.isNotificationAllowed()); if (kmelia.isRightsOnTopicsEnabled()) { request.setAttribute("Profiles", kmelia.getTopicProfiles(id)); if (node.haveInheritedRights()) { request.setAttribute("RightsDependsOn", "AnotherTopic"); } else if (node.haveLocalRights()) { request.setAttribute("RightsDependsOn", "ThisTopic"); } else { // Rights of the component request.setAttribute("RightsDependsOn", "ThisComponent"); } } destination = rootDestination + "updateTopicNew.jsp"; } } else if (function.equals("AddTopic")) { String name = request.getParameter("Name"); String description = request.getParameter("Description"); String alertType = request.getParameter("AlertType"); if (!StringUtil.isDefined(alertType)) { alertType = "None"; } String rightsUsed = request.getParameter("RightsUsed"); String path = request.getParameter("Path"); String parentId = request.getParameter("ParentId"); NodeDetail topic = new NodeDetail("-1", name, description, null, null, null, "0", "X"); I18NHelper.setI18NInfo(topic, request); if (StringUtil.isDefined(path)) { topic.setType(NodeDetail.FILE_LINK_TYPE); topic.setPath(path); } int rightsDependsOn = -1; if (StringUtil.isDefined(rightsUsed)) { if ("father".equalsIgnoreCase(rightsUsed)) { NodeDetail father = kmelia.getCurrentFolder(); rightsDependsOn = father.getRightsDependsOn(); } else { rightsDependsOn = 0; } topic.setRightsDependsOn(rightsDependsOn); } NodePK nodePK = kmelia.addSubTopic(topic, alertType, parentId); if (kmelia.isRightsOnTopicsEnabled()) { if (rightsDependsOn == 0) { request.setAttribute("NodeId", nodePK.getId()); destination = getDestination("ViewTopicProfiles", kmelia, request); } else { destination = getDestination("GoToCurrentTopic", kmelia, request); } } else { destination = getDestination("GoToCurrentTopic", kmelia, request); } } else if ("UpdateTopic".equals(function)) { String name = request.getParameter("Name"); String description = request.getParameter("Description"); String alertType = request.getParameter("AlertType"); if (!StringUtil.isDefined(alertType)) { alertType = "None"; } String id = request.getParameter("ChildId"); String path = request.getParameter("Path"); NodeDetail topic = new NodeDetail(id, name, description, null, null, null, "0", "X"); I18NHelper.setI18NInfo(topic, request); if (StringUtil.isDefined(path)) { topic.setType(NodeDetail.FILE_LINK_TYPE); topic.setPath(path); } boolean goToProfilesDefinition = false; if (kmelia.isRightsOnTopicsEnabled()) { int rightsUsed = Integer.parseInt(request.getParameter("RightsUsed")); topic.setRightsDependsOn(rightsUsed); // process destination NodeDetail oldTopic = kmelia.getNodeHeader(id); if (oldTopic.getRightsDependsOn() != rightsUsed) { // rights dependency have changed if (rightsUsed != -1) { // folder uses its own rights goToProfilesDefinition = true; } } } kmelia.updateTopicHeader(topic, alertType); if (goToProfilesDefinition) { request.setAttribute("NodeId", id); destination = getDestination("ViewTopicProfiles", kmelia, request); } else { destination = getDestination("GoToCurrentTopic", kmelia, request); } } else if (function.equals("DeleteTopic")) { String id = request.getParameter("Id"); kmelia.deleteTopic(id); destination = getDestination("GoToCurrentTopic", kmelia, request); } else if (function.equals("ViewClone")) { PublicationDetail pubDetail = kmelia.getSessionPublication().getDetail(); // Reload clone and put it into session String cloneId = pubDetail.getCloneId(); KmeliaPublication kmeliaPublication = kmelia.getPublication(cloneId); kmelia.setSessionClone(kmeliaPublication); request.setAttribute("Publication", kmeliaPublication); request.setAttribute("Profile", kmelia.getProfile()); request.setAttribute("VisiblePublicationId", pubDetail.getPK().getId()); request.setAttribute("UserCanValidate", kmelia.isUserCanValidatePublication()); request.setAttribute("TaxonomyOK", kmelia.isPublicationTaxonomyOK()); request.setAttribute("ValidatorsOK", kmelia.isPublicationValidatorsOK()); putXMLDisplayerIntoRequest(kmeliaPublication.getDetail(), kmelia, request); // Attachments area must be displayed or not ? request.setAttribute("AttachmentsEnabled", kmelia.isAttachmentsEnabled()); destination = rootDestination + "clone.jsp"; } else if ("ViewPublication".equals(function)) { String id = request.getParameter("PubId"); if (!StringUtil.isDefined(id)) { id = request.getParameter("Id"); if (!StringUtil.isDefined(id)) { id = (String) request.getAttribute("PubId"); } } if (!kmaxMode) { boolean checkPath = StringUtil.getBooleanValue(request.getParameter("CheckPath")); if (checkPath || KmeliaHelper.isToValidateFolder(kmelia.getCurrentFolderId())) { processPath(kmelia, id); } else { processPath(kmelia, null); } } // view publication from global search ? Integer searchScope = (Integer) request.getAttribute("SearchScope"); if (searchScope == null) { if (kmelia.getSearchContext() != null) { request.setAttribute("SearchScope", SearchContext.LOCAL); } else { request.setAttribute("SearchScope", SearchContext.NONE); } } KmeliaPublication kmeliaPublication; if (StringUtil.isDefined(id)) { kmeliaPublication = kmelia.getPublication(id, true); kmelia.setSessionPublication(kmeliaPublication); PublicationDetail pubDetail = kmeliaPublication.getDetail(); if (pubDetail.haveGotClone()) { KmeliaPublication clone = kmelia.getPublication(pubDetail.getCloneId()); kmelia.setSessionClone(clone); } } else { kmeliaPublication = kmelia.getSessionPublication(); id = kmeliaPublication.getDetail().getPK().getId(); } if (toolboxMode) { destination = getDestination("ToUpdatePublicationHeader", kmelia, request); } else { List<String> publicationLanguages = kmelia.getPublicationLanguages(); // languages of // publication // header and attachments if (publicationLanguages.contains(kmelia.getCurrentLanguage())) { request.setAttribute("ContentLanguage", kmelia.getCurrentLanguage()); } else { request.setAttribute("ContentLanguage", checkLanguage(kmelia, kmeliaPublication.getDetail())); } request.setAttribute("Languages", publicationLanguages); // see also management Collection<ForeignPK> links = kmeliaPublication.getCompleteDetail().getLinkList(); HashSet<String> linkedList = new HashSet<String>(links.size()); for (ForeignPK link : links) { linkedList.add(link.getId() + "-" + link.getInstanceId()); } // put into session the current list of selected publications (see also) request.getSession().setAttribute(KmeliaConstants.PUB_TO_LINK_SESSION_KEY, linkedList); request.setAttribute("Publication", kmeliaPublication); request.setAttribute("PubId", id); request.setAttribute("UserCanValidate", kmelia.isUserCanValidatePublication() && kmelia.getSessionClone() == null); request.setAttribute("ValidationStep", kmelia.getValidationStep()); request.setAttribute("ValidationType", kmelia.getValidationType()); // check if user is writer with approval right (versioning case) request.setAttribute("WriterApproval", kmelia.isWriterApproval(id)); request.setAttribute("NotificationAllowed", kmelia.isNotificationAllowed()); // check is requested publication is an alias checkAlias(kmelia, kmeliaPublication); if (kmeliaPublication.isAlias()) { request.setAttribute("Profile", "user"); request.setAttribute("TaxonomyOK", false); request.setAttribute("ValidatorsOK", false); request.setAttribute("IsAlias", "1"); } else { request.setAttribute("Profile", kmelia.getProfile()); request.setAttribute("TaxonomyOK", kmelia.isPublicationTaxonomyOK()); request.setAttribute("ValidatorsOK", kmelia.isPublicationValidatorsOK()); } request.setAttribute("Wizard", kmelia.getWizard()); request.setAttribute("Rang", kmelia.getRang()); if (kmelia.getSessionPublicationsList() != null) { request.setAttribute("NbPublis", kmelia.getSessionPublicationsList().size()); } else { request.setAttribute("NbPublis", 1); } putXMLDisplayerIntoRequest(kmeliaPublication.getDetail(), kmelia, request); String fileAlreadyOpened = (String) request.getAttribute("FileAlreadyOpened"); boolean alreadyOpened = "1".equals(fileAlreadyOpened); String attachmentId = (String) request.getAttribute("AttachmentId"); String documentId = (String) request.getAttribute("DocumentId"); if (!alreadyOpened && kmelia.openSingleAttachmentAutomatically() && !kmelia.isCurrentPublicationHaveContent()) { request.setAttribute("SingleAttachmentURL", kmelia.getFirstAttachmentURLOfCurrentPublication()); } else if (!alreadyOpened && attachmentId != null) { request.setAttribute("SingleAttachmentURL", kmelia.getAttachmentURL(attachmentId)); } else if (!alreadyOpened && documentId != null) { request.setAttribute("SingleAttachmentURL", kmelia.getAttachmentURL(documentId)); } // Attachments area must be displayed or not ? request.setAttribute("AttachmentsEnabled", kmelia.isAttachmentsEnabled()); // option Actualits dcentralises request.setAttribute("NewsManage", kmelia.isNewsManage()); if (kmelia.isNewsManage()) { request.setAttribute("DelegatedNews", kmelia.getDelegatedNews(id)); request.setAttribute("IsBasket", NodePK.BIN_NODE_ID.equals(kmelia.getCurrentFolderId())); } request.setAttribute("LastAccess", kmelia.getLastAccess(kmeliaPublication.getPk())); request.setAttribute("PublicationRatingsAllowed", kmelia.isPublicationRatingAllowed()); destination = rootDestination + "publication.jsp"; } } else if (function.equals("PreviousPublication")) { // rcupration de la publication prcdente String pubId = kmelia.getPrevious(); request.setAttribute("PubId", pubId); destination = getDestination("ViewPublication", kmelia, request); } else if (function.equals("NextPublication")) { // rcupration de la publication suivante String pubId = kmelia.getNext(); request.setAttribute("PubId", pubId); destination = getDestination("ViewPublication", kmelia, request); } else if (function.startsWith("copy")) { String objectType = request.getParameter("Object"); String objectId = request.getParameter("Id"); if (StringUtil.isDefined(objectType) && "Node".equalsIgnoreCase(objectType)) { kmelia.copyTopic(objectId); } else { kmelia.copyPublication(objectId); } destination = URLManager.getURL(URLManager.CMP_CLIPBOARD, null, null) + "Idle.jsp?message=REFRESHCLIPBOARD"; } else if (function.startsWith("cut")) { String objectType = request.getParameter("Object"); String objectId = request.getParameter("Id"); if (StringUtil.isDefined(objectType) && "Node".equalsIgnoreCase(objectType)) { kmelia.cutTopic(objectId); } else { kmelia.cutPublication(objectId); } destination = URLManager.getURL(URLManager.CMP_CLIPBOARD, null, null) + "Idle.jsp?message=REFRESHCLIPBOARD"; } else if (function.startsWith("paste")) { kmelia.paste(); destination = URLManager.getURL(URLManager.CMP_CLIPBOARD, null, null) + "Idle.jsp"; } else if (function.startsWith("ToAlertUserAttachment")) { // utilisation de alertUser et // alertUserPeas SilverTrace.debug("kmelia", "KmeliaRequestRooter.getDestination()", "root.MSG_GEN_PARAM_VALUE", "ToAlertUserAttachment: function = " + function + " spaceId=" + kmelia.getSpaceId() + " componentId=" + kmelia.getComponentId()); try { String attachmentId = request.getParameter("AttachmentOrDocumentId"); destination = kmelia.initAlertUserAttachment(attachmentId); } catch (Exception e) { SilverTrace.warn("kmelia", "KmeliaRequestRooter.getDestination()", "root.EX_USERPANEL_FAILED", "function = " + function, e); } SilverTrace.debug("kmelia", "KmeliaRequestRooter.getDestination()", "root.MSG_GEN_PARAM_VALUE", "ToAlertUserAttachment: function = " + function + "=> destination=" + destination); } else if (function.startsWith("ToAlertUserDocument")) { // utilisation de alertUser et // alertUserPeas SilverTrace.debug("kmelia", "KmeliaRequestRooter.getDestination()", "root.MSG_GEN_PARAM_VALUE", "ToAlertUserDocument: function = " + function + " spaceId=" + kmelia.getSpaceId() + " componentId=" + kmelia.getComponentId()); try { String documentId = request.getParameter("AttachmentOrDocumentId"); destination = kmelia.initAlertUserAttachment(documentId); } catch (Exception e) { SilverTrace.warn("kmelia", "KmeliaRequestRooter.getDestination()", "root.EX_USERPANEL_FAILED", "function = " + function, e); } SilverTrace.debug("kmelia", "KmeliaRequestRooter.getDestination()", "root.MSG_GEN_PARAM_VALUE", "ToAlertUserDocument: function = " + function + "=> destination=" + destination); } else if (function.startsWith("ToAlertUser")) { // utilisation de alertUser et alertUserPeas SilverTrace.debug("kmelia", "KmeliaRequestRooter.getDestination()", "root.MSG_GEN_PARAM_VALUE", "ToAlertUser: function = " + function + " spaceId=" + kmelia.getSpaceId() + " componentId=" + kmelia.getComponentId()); try { destination = kmelia.initAlertUser(); } catch (Exception e) { SilverTrace.warn("kmelia", "KmeliaRequestRooter.getDestination()", "root.EX_USERPANEL_FAILED", "function = " + function, e); } SilverTrace.debug("kmelia", "KmeliaRequestRooter.getDestination()", "root.MSG_GEN_PARAM_VALUE", "ToAlertUser: function = " + function + "=> destination=" + destination); } else if (function.equals("ReadingControl")) { PublicationDetail publication = kmelia.getSessionPublication().getDetail(); request.setAttribute("LinkedPathString", kmelia.getSessionPath()); request.setAttribute("Publication", publication); request.setAttribute("UserIds", kmelia.getUserIdsOfTopic()); // paramtre du wizard request.setAttribute("Wizard", kmelia.getWizard()); destination = rootDestination + "readingControlManager.jsp"; } else if (function.startsWith("ViewAttachments")) { String flag = kmelia.getProfile(); // Versioning is out of "Always visible publication" mode if (kmelia.isCloneNeeded() && !kmelia.isVersionControlled()) { kmelia.clonePublication(); } // put current publication if (!kmelia.isVersionControlled()) { request.setAttribute("CurrentPublicationDetail", kmelia.getSessionPubliOrClone().getDetail()); } else { request.setAttribute("CurrentPublicationDetail", kmelia.getSessionPublication().getDetail()); } // Paramtres du wizard setWizardParams(request, kmelia); // Paramtres de i18n List<String> attachmentLanguages = kmelia.getAttachmentLanguages(); if (attachmentLanguages.contains(kmelia.getCurrentLanguage())) { request.setAttribute("Language", kmelia.getCurrentLanguage()); } else { request.setAttribute("Language", checkLanguage(kmelia)); } request.setAttribute("Languages", attachmentLanguages); request.setAttribute("XmlFormForFiles", kmelia.getXmlFormForFiles()); destination = rootDestination + "attachmentManager.jsp?profile=" + flag; } else if (function.equals("DeletePublication")) { String pubId = request.getParameter("PubId"); kmelia.deletePublication(pubId); if (kmaxMode) { destination = getDestination("Main", kmelia, request); } else { destination = getDestination("GoToCurrentTopic", kmelia, request); } } else if (function.equals("DeleteClone")) { kmelia.deleteClone(); destination = getDestination("ViewPublication", kmelia, request); } else if (function.equals("ViewValidationSteps")) { request.setAttribute("LinkedPathString", kmelia.getSessionPath()); request.setAttribute("Publication", kmelia.getSessionPubliOrClone().getDetail()); request.setAttribute("ValidationSteps", kmelia.getValidationSteps()); request.setAttribute("Role", kmelia.getProfile()); destination = rootDestination + "validationSteps.jsp"; } else if ("ValidatePublication".equals(function)) { String pubId = kmelia.getSessionPublication().getDetail().getPK().getId(); SilverTrace.debug("kmelia", "KmeliaRequestRooter.getDestination()", "root.MSG_GEN_PARAM_VALUE", "function = " + function + " pubId=" + pubId); boolean validationComplete = kmelia.validatePublication(pubId); if (validationComplete) { request.setAttribute("Action", "ValidationComplete"); destination = getDestination("ViewPublication", kmelia, request); } else { request.setAttribute("Action", "ValidationInProgress"); if (kmelia.getSessionClone() != null) { destination = getDestination("ViewClone", kmelia, request); } else { destination = getDestination("ViewPublication", kmelia, request); } } } else if (function.equals("ForceValidatePublication")) { String pubId = kmelia.getSessionPublication().getDetail().getPK().getId(); kmelia.forcePublicationValidation(pubId); request.setAttribute("Action", "ValidationComplete"); request.setAttribute("PubId", pubId); destination = getDestination("ViewPublication", kmelia, request); } else if ("Unvalidate".equals(function)) { String motive = request.getParameter("Motive"); String pubId = kmelia.getSessionPublication().getDetail().getPK().getId(); SilverTrace.debug("kmelia", "KmeliaRequestRooter.getDestination()", "root.MSG_GEN_PARAM_VALUE", "function = " + function + " pubId=" + pubId); kmelia.unvalidatePublication(pubId, motive); request.setAttribute("Action", "Unvalidate"); if (kmelia.getSessionClone() != null) { destination = getDestination("ViewClone", kmelia, request); } else { destination = getDestination("ViewPublication", kmelia, request); } } else if (function.equals("WantToSuspendPubli")) { String pubId = request.getParameter("PubId"); PublicationDetail pubDetail = kmelia.getPublicationDetail(pubId); request.setAttribute("PublicationToSuspend", pubDetail); destination = rootDestination + "defermentMotive.jsp"; } else if (function.equals("SuspendPublication")) { String motive = request.getParameter("Motive"); String pubId = request.getParameter("PubId"); kmelia.suspendPublication(pubId, motive); request.setAttribute("Action", "Suspend"); destination = getDestination("ViewPublication", kmelia, request); } else if (function.equals("DraftIn")) { kmelia.draftInPublication(); if (kmelia.getSessionClone() != null) { // draft have generate a clone destination = getDestination("ViewClone", kmelia, request); } else { String from = request.getParameter("From"); if (StringUtil.isDefined(from)) { destination = getDestination(from, kmelia, request); } else { destination = getDestination("ToUpdatePublicationHeader", kmelia, request); } } } else if (function.equals("DraftOut")) { kmelia.draftOutPublication(); destination = getDestination("ViewPublication", kmelia, request); } else if (function.equals("ToTopicWysiwyg")) { String topicId = request.getParameter("Id"); String subTopicId = request.getParameter("ChildId"); String flag = kmelia.getProfile(); NodeDetail topic = kmelia.getSubTopicDetail(subTopicId); request.setAttribute("SpaceId", kmelia.getSpaceId()); request.setAttribute("SpaceName", URLEncoder.encode(kmelia.getSpaceLabel(), CharEncoding.UTF_8)); request.setAttribute("ComponentId", kmelia.getComponentId()); request.setAttribute("ComponentName", URLEncoder.encode(kmelia.getComponentLabel(), CharEncoding.UTF_8)); String browseInfo = kmelia.getSessionPathString(); if (browseInfo != null && !browseInfo.contains(topic.getName())) { browseInfo += topic.getName(); } if (!StringUtil.isDefined(browseInfo)) { browseInfo = kmelia.getString("TopicWysiwyg"); } else { browseInfo += " > " + kmelia.getString("TopicWysiwyg"); } request.setAttribute("BrowseInfo", browseInfo); request.setAttribute("ObjectId", "Node_" + subTopicId); request.setAttribute("Language", kmelia.getLanguage()); request.setAttribute("ContentLanguage", kmelia.getCurrentLanguage()); request.setAttribute("ReturnUrl", URLManager.getApplicationURL() + URLManager.getURL(kmelia.getSpaceId(), kmelia.getComponentId()) + "FromTopicWysiwyg?Action=Search&Id=" + topicId + "&ChildId=" + subTopicId + "&Profile=" + flag); destination = "/wysiwyg/jsp/htmlEditor.jsp"; } else if (function.equals("FromTopicWysiwyg")) { String subTopicId = request.getParameter("ChildId"); kmelia.processTopicWysiwyg(subTopicId); destination = getDestination("GoToCurrentTopic", kmelia, request); } else if (function.equals("ChangeTopicStatus")) { String subTopicId = request.getParameter("ChildId"); String newStatus = request.getParameter("Status"); String recursive = request.getParameter("Recursive"); if (recursive != null && recursive.equals("1")) { kmelia.changeTopicStatus(newStatus, subTopicId, true); } else { kmelia.changeTopicStatus(newStatus, subTopicId, false); } destination = getDestination("GoToCurrentTopic", kmelia, request); } else if (function.equals("ViewOnly")) { String id = request.getParameter("Id"); destination = rootDestination + "publicationViewOnly.jsp?Id=" + id; } else if (function.equals("SeeAlso")) { String action = request.getParameter("Action"); if (!StringUtil.isDefined(action)) { action = "LinkAuthorView"; } request.setAttribute("Action", action); // check if requested publication is an alias String pubId = request.getParameter("PubId"); KmeliaPublication kmeliaPublication = kmelia.getSessionPublication(); if (StringUtil.isDefined(pubId)) { kmeliaPublication = kmelia.getPublication(pubId); kmelia.setSessionPublication(kmeliaPublication); } checkAlias(kmelia, kmeliaPublication); if (kmeliaPublication.isAlias()) { request.setAttribute("Profile", "user"); request.setAttribute("IsAlias", "1"); } else { request.setAttribute("Profile", kmelia.getProfile()); } // paramtres du wizard request.setAttribute("Wizard", kmelia.getWizard()); destination = rootDestination + "seeAlso.jsp"; } else if (function.equals("DeleteSeeAlso")) { String[] pubIds = request.getParameterValues("PubIds"); if (pubIds != null) { List<ForeignPK> infoLinks = new ArrayList<ForeignPK>(); for (String pubId : pubIds) { StringTokenizer tokens = new StringTokenizer(pubId, "-"); infoLinks.add(new ForeignPK(tokens.nextToken(), tokens.nextToken())); // removing deleted pks from session Set<String> list = (Set<String>) request.getSession() .getAttribute(KmeliaConstants.PUB_TO_LINK_SESSION_KEY); if (list != null) { list.remove(pubId); } } if (!infoLinks.isEmpty()) { kmelia.deleteInfoLinks(kmelia.getSessionPublication().getId(), infoLinks); } } destination = getDestination("SeeAlso", kmelia, request); } else if (function.equals("ImportFileUpload")) { destination = processFormUpload(kmelia, request, rootDestination, false); } else if (function.equals("ImportFilesUpload")) { destination = processFormUpload(kmelia, request, rootDestination, true); } else if (function.equals("ExportAttachementsToPDF")) { String topicId = request.getParameter("TopicId"); // build an exploitable list by importExportPeas SilverTrace.info("kmelia", "KmeliaSessionController.getAllVisiblePublicationsByTopic()", "root.MSG_PARAM_VALUE", "topicId =" + topicId); List<WAAttributeValuePair> publicationsIds = kmelia.getAllVisiblePublicationsByTopic(topicId); request.setAttribute("selectedResultsWa", publicationsIds); request.setAttribute("RootPK", new NodePK(topicId, kmelia.getComponentId())); // Go to importExportPeas destination = "/RimportExportPeas/jsp/ExportPDF"; } else if (function.equals("NewPublication")) { request.setAttribute("Action", "New"); destination = getDestination("publicationManager.jsp", kmelia, request); } else if (function.equals("ManageSubscriptions")) { destination = kmelia.manageSubscriptions(); } else if (function.equals("AddPublication")) { List<FileItem> parameters = request.getFileItems(); // create publication String positions = FileUploadUtil.getParameter(parameters, "Positions"); PdcClassificationEntity withClassification = PdcClassificationEntity.undefinedClassification(); if (StringUtil.isDefined(positions)) { withClassification = PdcClassificationEntity.fromJSON(positions); } PublicationDetail pubDetail = getPublicationDetail(parameters, kmelia); String newPubId = kmelia.createPublication(pubDetail, withClassification); // create thumbnail if exists boolean newThumbnail = ThumbnailController.processThumbnail( new ForeignPK(newPubId, kmelia.getComponentId()), PublicationDetail.getResourceType(), parameters); // force indexation to taking into account new thumbnail if (newThumbnail && pubDetail.isIndexable()) { kmelia.getPublicationBm().createIndex(pubDetail.getPK()); } request.setAttribute("PubId", newPubId); processPath(kmelia, newPubId); String wizard = kmelia.getWizard(); if ("progress".equals(wizard)) { KmeliaPublication kmeliaPublication = kmelia.getPublication(newPubId); kmelia.setSessionPublication(kmeliaPublication); String position = FileUploadUtil.getParameter(parameters, "Position"); setWizardParams(request, kmelia); request.setAttribute("Position", position); request.setAttribute("Publication", kmeliaPublication); request.setAttribute("Profile", kmelia.getProfile()); destination = getDestination("WizardNext", kmelia, request); } else { StringBuffer requestURI = request.getRequestURL(); destination = requestURI.substring(0, requestURI.indexOf("AddPublication")) + "ViewPublication?PubId=" + newPubId; } } else if ("UpdatePublication".equals(function)) { List<FileItem> parameters = request.getFileItems(); PublicationDetail pubDetail = getPublicationDetail(parameters, kmelia); String id = pubDetail.getPK().getId(); ThumbnailController.processThumbnail(new ForeignPK(id, kmelia.getComponentId()), PublicationDetail.getResourceType(), parameters); kmelia.updatePublication(pubDetail); String wizard = kmelia.getWizard(); if (wizard.equals("progress")) { KmeliaPublication kmeliaPublication = kmelia.getPublication(id); String position = FileUploadUtil.getParameter(parameters, "Position"); setWizardParams(request, kmelia); request.setAttribute("Position", position); request.setAttribute("Publication", kmeliaPublication); request.setAttribute("Profile", kmelia.getProfile()); destination = getDestination("WizardNext", kmelia, request); } else { if (kmelia.getSessionClone() != null) { destination = getDestination("ViewClone", kmelia, request); } else { request.setAttribute("PubId", id); request.setAttribute("CheckPath", "1"); destination = getDestination("ViewPublication", kmelia, request); } } } else if (function.equals("SelectValidator")) { destination = kmelia.initUPToSelectValidator(""); } else if (function.equals("PublicationPaths")) { // paramtre du wizard request.setAttribute("Wizard", kmelia.getWizard()); PublicationDetail publication = kmelia.getSessionPublication().getDetail(); String pubId = publication.getPK().getId(); request.setAttribute("Publication", publication); request.setAttribute("LinkedPathString", kmelia.getSessionPath()); request.setAttribute("PathList", kmelia.getPublicationFathers(pubId)); if (toolboxMode) { request.setAttribute("Topics", kmelia.getAllTopics()); } else { List<Alias> aliases = kmelia.getAliases(); request.setAttribute("Aliases", aliases); request.setAttribute("Components", kmelia.getComponents(aliases)); } destination = rootDestination + "publicationPaths.jsp"; } else if (function.equals("SetPath")) { String[] topics = request.getParameterValues("topicChoice"); String loadedComponentIds = request.getParameter("LoadedComponentIds"); Alias alias; List<Alias> aliases = new ArrayList<Alias>(); for (int i = 0; topics != null && i < topics.length; i++) { String topicId = topics[i]; SilverTrace.debug("kmelia", "KmeliaRequestRouter.setPath()", "root.MSG_GEN_PARAM_VALUE", "topicId = " + topicId); StringTokenizer tokenizer = new StringTokenizer(topicId, ","); String nodeId = tokenizer.nextToken(); String instanceId = tokenizer.nextToken(); alias = new Alias(nodeId, instanceId); alias.setUserId(kmelia.getUserId()); aliases.add(alias); } // Tous les composants ayant un alias n'ont pas forcment t chargs List<Alias> oldAliases = kmelia.getAliases(); for (Alias oldAlias : oldAliases) { if (!loadedComponentIds.contains(oldAlias.getInstanceId())) { // le composant de l'alias n'a pas t charg aliases.add(oldAlias); } } kmelia.setAliases(aliases); destination = getDestination("ViewPublication", kmelia, request); } else if (function.equals("ShowAliasTree")) { String componentId = request.getParameter("ComponentId"); request.setAttribute("Tree", kmelia.getAliasTreeview(componentId)); request.setAttribute("Aliases", kmelia.getAliases()); destination = rootDestination + "treeview4PublicationPaths.jsp"; } else if (function.equals("AddLinksToPublication")) { String id = request.getParameter("PubId"); String topicId = request.getParameter("TopicId"); //noinspection unchecked HashSet<String> list = (HashSet) request.getSession() .getAttribute(KmeliaConstants.PUB_TO_LINK_SESSION_KEY); int nb = kmelia.addPublicationsToLink(id, list); request.setAttribute("NbLinks", Integer.toString(nb)); destination = rootDestination + "publicationLinksManager.jsp?Action=Add&Id=" + topicId; } else if (function.equals("ExportTopic")) { String topicId = request.getParameter("TopicId"); boolean exportFullApp = !StringUtil.isDefined(topicId) || NodePK.ROOT_NODE_ID.equals(topicId); if (kmaxMode) { if (exportFullApp) { destination = getDestination("KmaxExportComponent", kmelia, request); } else { destination = getDestination("KmaxExportPublications", kmelia, request); } } else { // build an exploitable list by importExportPeas SilverTrace.info("kmelia", "KmeliaRequestRouter.ExportTopic", "root.MSG_PARAM_VALUE", "topicId =" + topicId); final List<WAAttributeValuePair> publicationsIds; if (exportFullApp) { publicationsIds = kmelia.getAllVisiblePublications(); } else { publicationsIds = kmelia.getAllVisiblePublicationsByTopic(topicId); } request.setAttribute("selectedResultsWa", publicationsIds); request.setAttribute("RootPK", new NodePK(topicId, kmelia.getComponentId())); // Go to importExportPeas destination = "/RimportExportPeas/jsp/SelectExportMode"; } } else if (function.equals("ExportPublications")) { String selectedIds = request.getParameter("SelectedIds"); String notSelectedIds = request.getParameter("NotSelectedIds"); List<PublicationPK> pks = kmelia.processSelectedPublicationIds(selectedIds, notSelectedIds); List<WAAttributeValuePair> publicationIds = new ArrayList<WAAttributeValuePair>(); for (PublicationPK pk : pks) { publicationIds.add(new WAAttributeValuePair(pk.getId(), pk.getInstanceId())); } request.setAttribute("selectedResultsWa", publicationIds); request.setAttribute("RootPK", new NodePK(kmelia.getCurrentFolderId(), kmelia.getComponentId())); kmelia.resetSelectedPublicationPKs(); // Go to importExportPeas destination = "/RimportExportPeas/jsp/SelectExportMode"; } else if (function.equals("ToPubliContent")) { CompletePublication completePublication = kmelia.getSessionPubliOrClone().getCompleteDetail(); if (completePublication.getModelDetail() != null) { destination = getDestination("ToDBModel", kmelia, request); } else if (WysiwygController.haveGotWysiwyg(kmelia.getComponentId(), completePublication.getPublicationDetail().getPK().getId(), kmelia.getCurrentLanguage())) { destination = getDestination("ToWysiwyg", kmelia, request); } else { String infoId = completePublication.getPublicationDetail().getInfoId(); if (infoId == null || "0".equals(infoId)) { List<String> usedModels = (List<String>) kmelia.getModelUsed(); if (usedModels.size() == 1) { String modelId = usedModels.get(0); if ("WYSIWYG".equals(modelId)) { // Wysiwyg content destination = getDestination("ToWysiwyg", kmelia, request); } else if (StringUtil.isInteger(modelId)) { // DB template ModelDetail model = kmelia.getModelDetail(modelId); request.setAttribute("ModelDetail", model); destination = getDestination("ToDBModel", kmelia, request); } else { // XML template request.setAttribute("Name", modelId); destination = getDestination("GoToXMLForm", kmelia, request); } } else { destination = getDestination("ListModels", kmelia, request); } } else { destination = getDestination("GoToXMLForm", kmelia, request); } } } else if (function.equals("ListModels")) { setTemplatesUsedIntoRequest(kmelia, request); // put current publication request.setAttribute("CurrentPublicationDetail", kmelia.getSessionPublication().getDetail()); // Paramtres du wizard setWizardParams(request, kmelia); destination = rootDestination + "modelsList.jsp"; } else if (function.equals("ModelUsed")) { request.setAttribute("XMLForms", kmelia.getForms()); // put dbForms Collection<ModelDetail> dbForms = kmelia.getAllModels(); request.setAttribute("DBForms", dbForms); Collection<String> modelUsed = kmelia.getModelUsed(); request.setAttribute("ModelUsed", modelUsed); destination = rootDestination + "modelUsedList.jsp"; } else if (function.equals("SelectModel")) { Object o = request.getParameterValues("modelChoice"); if (o != null) { kmelia.addModelUsed((String[]) o); } destination = getDestination("GoToCurrentTopic", kmelia, request); } else if ("ChangeTemplate".equals(function)) { kmelia.removePublicationContent(); destination = getDestination("ToPubliContent", kmelia, request); } else if ("ToWysiwyg".equals(function)) { if (kmelia.isCloneNeeded()) { kmelia.clonePublication(); } // put current publication PublicationDetail publication = kmelia.getSessionPubliOrClone().getDetail(); // Parametres du Wizard setWizardParams(request, kmelia); request.setAttribute("SpaceId", kmelia.getSpaceId()); request.setAttribute("SpaceName", URLEncoder.encode(kmelia.getSpaceLabel(), CharEncoding.UTF_8)); request.setAttribute("ComponentId", kmelia.getComponentId()); request.setAttribute("ComponentName", URLEncoder.encode(kmelia.getComponentLabel(), CharEncoding.UTF_8)); if (kmaxMode) { request.setAttribute("BrowseInfo", publication.getName()); } else { request.setAttribute("BrowseInfo", kmelia.getSessionPathString() + " > " + publication.getName()); } request.setAttribute("ObjectId", publication.getId()); request.setAttribute("Language", kmelia.getLanguage()); request.setAttribute("ContentLanguage", checkLanguage(kmelia, publication)); request.setAttribute("ReturnUrl", URLManager.getApplicationURL() + kmelia.getComponentUrl() + "FromWysiwyg?PubId=" + publication.getId()); request.setAttribute("UserId", kmelia.getUserId()); request.setAttribute("IndexIt", "false"); destination = "/wysiwyg/jsp/htmlEditor.jsp"; } else if ("FromWysiwyg".equals(function)) { String id = request.getParameter("PubId"); // Parametres du Wizard String wizard = kmelia.getWizard(); setWizardParams(request, kmelia); if (wizard.equals("progress")) { request.setAttribute("Position", "Content"); destination = getDestination("WizardNext", kmelia, request); } else { if (kmelia.getSessionClone() != null && id.equals(kmelia.getSessionClone().getDetail().getPK().getId())) { destination = getDestination("ViewClone", kmelia, request); } else { destination = getDestination("ViewPublication", kmelia, request); } } } else if (function.equals("ToDBModel")) { String modelId = request.getParameter("ModelId"); if (StringUtil.isDefined(modelId)) { ModelDetail model = kmelia.getModelDetail(modelId); request.setAttribute("ModelDetail", model); } // put current publication request.setAttribute("CompletePublication", kmelia.getSessionPubliOrClone().getCompleteDetail()); request.setAttribute("NotificationAllowed", kmelia.isNotificationAllowed()); // Paramtres du wizard setWizardParams(request, kmelia); destination = rootDestination + "modelManager.jsp"; } else if (function.equals("UpdateDBModelContent")) { ResourceLocator publicationSettings = kmelia.getPublicationSettings(); List<InfoTextDetail> textDetails = new ArrayList<InfoTextDetail>(); List<InfoImageDetail> imageDetails = new ArrayList<InfoImageDetail>(); int imageOrder = 0; boolean imageTrouble = false; List<FileItem> parameters = request.getFileItems(); String modelId = FileUploadUtil.getParameter(parameters, "ModelId"); // Parametres du Wizard setWizardParams(request, kmelia); for (FileItem item : parameters) { if (item.isFormField() && item.getFieldName().startsWith("WATXTVAR")) { String theText = item.getString(); int textOrder = Integer .parseInt(item.getFieldName().substring(8, item.getFieldName().length())); textDetails.add(new InfoTextDetail(null, Integer.toString(textOrder), null, theText)); } else if (!item.isFormField()) { String logicalName = item.getName(); if (logicalName != null && logicalName.length() > 0) { if (!FileUtil.isWindows()) { logicalName = logicalName.replace('\\', File.separatorChar); SilverTrace.info("kmelia", "KmeliaRequestRouter.UpdateDBModelContent", "root.MSG_GEN_PARAM_VALUE", "fileName on Unix = " + logicalName); } logicalName = FilenameUtils.getName(logicalName); String physicalName = Long.toString(System.currentTimeMillis()) + "." + FilenameUtils.getExtension(logicalName); String mimeType = item.getContentType(); long size = item.getSize(); File dir = new File(FileRepositoryManager.getAbsolutePath(kmelia.getComponentId()) + publicationSettings.getString("imagesSubDirectory") + File.separatorChar + physicalName); if (FileUtil.isImage(logicalName)) { item.write(dir); imageOrder++; if (size > 0L) { imageDetails.add(new InfoImageDetail(null, Integer.toString(imageOrder), null, physicalName, logicalName, "", mimeType, size)); imageTrouble = false; } else { imageTrouble = true; } } else { imageTrouble = true; } } else { // the field did not contain a file } } } InfoDetail infos = new InfoDetail(null, textDetails, imageDetails, null, ""); CompletePublication completePub = kmelia.getSessionPubliOrClone().getCompleteDetail(); if (completePub.getModelDetail() == null) { kmelia.createInfoModelDetail("useless", modelId, infos); } else { kmelia.updateInfoDetail("useless", infos); } if (imageTrouble) { request.setAttribute("ImageTrouble", Boolean.TRUE); } String wizard = kmelia.getWizard(); if (wizard.equals("progress")) { request.setAttribute("Position", "Content"); destination = getDestination("WizardNext", kmelia, request); } else { destination = getDestination("ToDBModel", kmelia, request); } } else if (function.equals("GoToXMLForm")) { String xmlFormName = request.getParameter("Name"); if (!StringUtil.isDefined(xmlFormName)) { xmlFormName = (String) request.getAttribute("Name"); } setXMLForm(request, kmelia, xmlFormName); // put current publication request.setAttribute("CurrentPublicationDetail", kmelia.getSessionPubliOrClone().getDetail()); // Parametres du Wizard setWizardParams(request, kmelia); // template can be changed only if current topic is using at least two templates setTemplatesUsedIntoRequest(kmelia, request); @SuppressWarnings("unchecked") Collection<PublicationTemplate> templates = (Collection<PublicationTemplate>) request .getAttribute("XMLForms"); boolean wysiwygUsable = (Boolean) request.getAttribute("WysiwygValid"); request.setAttribute("IsChangingTemplateAllowed", templates.size() >= 2 || (!templates.isEmpty() && wysiwygUsable)); destination = rootDestination + "xmlForm.jsp"; } else if (function.equals("UpdateXMLForm")) { if (kmelia.isCloneNeeded()) { kmelia.clonePublication(); } if (!StringUtil.isDefined(request.getCharacterEncoding())) { request.setCharacterEncoding("UTF-8"); } String encoding = request.getCharacterEncoding(); List<FileItem> items = request.getFileItems(); PublicationDetail pubDetail = kmelia.getSessionPubliOrClone().getDetail(); String xmlFormShortName; // Is it the creation of the content or an update ? String infoId = pubDetail.getInfoId(); if (infoId == null || "0".equals(infoId)) { String xmlFormName = FileUploadUtil.getParameter(items, "Name", null, encoding); // The publication have no content // We have to register xmlForm to publication xmlFormShortName = xmlFormName.substring(xmlFormName.indexOf('/') + 1, xmlFormName.indexOf('.')); pubDetail.setInfoId(xmlFormShortName); kmelia.updatePublication(pubDetail); } else { xmlFormShortName = pubDetail.getInfoId(); } String pubId = pubDetail.getPK().getId(); PublicationTemplate pub = getPublicationTemplateManager() .getPublicationTemplate(kmelia.getComponentId() + ":" + xmlFormShortName); RecordSet set = pub.getRecordSet(); Form form = pub.getUpdateForm(); String language = checkLanguage(kmelia, pubDetail); DataRecord data = set.getRecord(pubId, language); if (data == null) { data = set.getEmptyRecord(); data.setId(pubId); data.setLanguage(language); } PagesContext context = new PagesContext("myForm", "3", kmelia.getLanguage(), false, kmelia.getComponentId(), kmelia.getUserId()); context.setEncoding(CharEncoding.UTF_8); if (!kmaxMode) { context.setNodeId(kmelia.getCurrentFolderId()); } context.setObjectId(pubId); context.setContentLanguage(kmelia.getCurrentLanguage()); form.update(items, data, context); set.save(data); // update publication to change updateDate and updaterId kmelia.updatePublication(pubDetail); // Parametres du Wizard setWizardParams(request, kmelia); if (kmelia.getWizard().equals("progress")) { // on est en mode Wizard request.setAttribute("Position", "Content"); destination = getDestination("WizardNext", kmelia, request); } else { if (kmelia.getSessionClone() != null) { destination = getDestination("ViewClone", kmelia, request); } else if (kmaxMode) { destination = getDestination("ViewAttachments", kmelia, request); } else { destination = getDestination("ViewPublication", kmelia, request); } } } else if (function.startsWith("ToOrderPublications")) { List<KmeliaPublication> publications = kmelia.getSessionPublicationsList(); request.setAttribute("Publications", publications); request.setAttribute("Path", kmelia.getSessionPath()); destination = rootDestination + "orderPublications.jsp"; } else if (function.startsWith("OrderPublications")) { String sortedIds = request.getParameter("sortedIds"); StringTokenizer tokenizer = new StringTokenizer(sortedIds, ","); List<String> ids = new ArrayList<String>(); while (tokenizer.hasMoreTokens()) { ids.add(tokenizer.nextToken()); } kmelia.orderPublications(ids); destination = getDestination("GoToCurrentTopic", kmelia, request); } else if (function.equals("ToOrderTopics")) { String id = request.getParameter("Id"); if (!SilverpeasRole.admin.isInRole(kmelia.getUserTopicProfile(id))) { destination = "/admin/jsp/accessForbidden.jsp"; } else { TopicDetail topic = kmelia.getTopic(id); request.setAttribute("Nodes", topic.getNodeDetail().getChildrenDetails()); destination = rootDestination + "orderTopics.jsp"; } } else if (function.startsWith("Wizard")) { destination = processWizard(function, kmelia, request, rootDestination); } else if ("ViewTopicProfiles".equals(function)) { String role = request.getParameter("Role"); if (!StringUtil.isDefined(role)) { role = SilverpeasRole.admin.toString(); } String id = request.getParameter("NodeId"); if (!StringUtil.isDefined(id)) { id = (String) request.getAttribute("NodeId"); } request.setAttribute("Profiles", kmelia.getTopicProfiles(id)); NodeDetail topic = kmelia.getNodeHeader(id); ProfileInst profile; if (topic.haveInheritedRights()) { profile = kmelia.getTopicProfile(role, Integer.toString(topic.getRightsDependsOn())); request.setAttribute("RightsDependsOn", "AnotherTopic"); } else if (topic.haveLocalRights()) { profile = kmelia.getTopicProfile(role, Integer.toString(topic.getRightsDependsOn())); request.setAttribute("RightsDependsOn", "ThisTopic"); } else { profile = kmelia.getProfile(role); // Rights of the component request.setAttribute("RightsDependsOn", "ThisComponent"); } request.setAttribute("CurrentProfile", profile); request.setAttribute("Groups", kmelia.groupIds2Groups(profile.getAllGroups())); request.setAttribute("Users", kmelia.userIds2Users(profile.getAllUsers())); List<NodeDetail> path = kmelia.getTopicPath(id); request.setAttribute("Path", kmelia.displayPath(path, true, 3)); request.setAttribute("NodeDetail", topic); destination = rootDestination + "topicProfiles.jsp"; } else if (function.equals("TopicProfileSelection")) { String role = request.getParameter("Role"); String nodeId = request.getParameter("NodeId"); try { kmelia.initUserPanelForTopicProfile(role, nodeId); } catch (Exception e) { SilverTrace.warn("jobStartPagePeas", "JobStartPagePeasRequestRouter.getDestination()", "root.EX_USERPANEL_FAILED", "function = " + function, e); } destination = Selection.getSelectionURL(Selection.TYPE_USERS_GROUPS); } else if (function.equals("TopicProfileSetUsersAndGroups")) { String role = request.getParameter("Role"); String nodeId = request.getParameter("NodeId"); kmelia.updateTopicRole(role, nodeId); request.setAttribute("urlToReload", "ViewTopicProfiles?Role=" + role + "&NodeId=" + nodeId); destination = rootDestination + "closeWindow.jsp"; } else if (function.equals("TopicProfileRemove")) { String profileId = request.getParameter("Id"); kmelia.deleteTopicRole(profileId); destination = getDestination("ViewTopicProfiles", kmelia, request); } else if (function.equals("CloseWindow")) { destination = rootDestination + "closeWindow.jsp"; } else if (function.startsWith("UpdateChain")) { destination = processUpdateChainOperation(rootDestination, function, kmelia, request); } else if (function.equals("SuggestDelegatedNews")) { String pubId = kmelia.addDelegatedNews(); request.setAttribute("PubId", pubId); destination = getDestination("ViewPublication", kmelia, request); } /** * ************************* * Kmax mode *********************** */ else if (function.equals("KmaxMain")) { destination = rootDestination + "kmax.jsp?Action=KmaxView&Profile=" + kmelia.getProfile(); } else if (function.equals("KmaxAxisManager")) { destination = rootDestination + "kmax_axisManager.jsp?Action=KmaxViewAxis&Profile=" + kmelia.getProfile(); } else if (function.equals("KmaxAddAxis")) { String newAxisName = request.getParameter("Name"); String newAxisDescription = request.getParameter("Description"); NodeDetail axis = new NodeDetail("-1", newAxisName, newAxisDescription, DateUtil.today2SQLDate(), kmelia.getUserId(), null, "0", "X"); // I18N I18NHelper.setI18NInfo(axis, request); kmelia.addAxis(axis); request.setAttribute("urlToReload", "KmaxAxisManager"); destination = rootDestination + "closeWindow.jsp"; } else if (function.equals("KmaxUpdateAxis")) { String axisId = request.getParameter("AxisId"); String newAxisName = request.getParameter("AxisName"); String newAxisDescription = request.getParameter("AxisDescription"); NodeDetail axis = new NodeDetail(axisId, newAxisName, newAxisDescription, null, null, null, "0", "X"); // I18N I18NHelper.setI18NInfo(axis, request); kmelia.updateAxis(axis); destination = getDestination("KmaxAxisManager", kmelia, request); } else if (function.equals("KmaxDeleteAxis")) { String axisId = request.getParameter("AxisId"); kmelia.deleteAxis(axisId); destination = getDestination("KmaxAxisManager", kmelia, request); } else if (function.equals("KmaxManageAxis")) { String axisId = request.getParameter("AxisId"); String translation = request.getParameter("Translation"); request.setAttribute("Translation", translation); destination = rootDestination + "kmax_axisManager.jsp?Action=KmaxManageAxis&Profile=" + kmelia.getProfile() + "&AxisId=" + axisId; } else if (function.equals("KmaxManagePosition")) { String positionId = request.getParameter("PositionId"); String translation = request.getParameter("Translation"); request.setAttribute("Translation", translation); destination = rootDestination + "kmax_axisManager.jsp?Action=KmaxManagePosition&Profile=" + kmelia.getProfile() + "&PositionId=" + positionId; } else if (function.equals("KmaxAddPosition")) { String axisId = request.getParameter("AxisId"); String newPositionName = request.getParameter("Name"); String newPositionDescription = request.getParameter("Description"); String translation = request.getParameter("Translation"); NodeDetail position = new NodeDetail("toDefine", newPositionName, newPositionDescription, null, null, null, "0", "X"); // I18N I18NHelper.setI18NInfo(position, request); kmelia.addPosition(axisId, position); request.setAttribute("AxisId", axisId); request.setAttribute("Translation", translation); destination = getDestination("KmaxManageAxis", kmelia, request); } else if (function.equals("KmaxUpdatePosition")) { String positionId = request.getParameter("PositionId"); String positionName = request.getParameter("PositionName"); String positionDescription = request.getParameter("PositionDescription"); NodeDetail position = new NodeDetail(positionId, positionName, positionDescription, null, null, null, "0", "X"); // I18N I18NHelper.setI18NInfo(position, request); kmelia.updatePosition(position); destination = getDestination("KmaxAxisManager", kmelia, request); } else if (function.equals("KmaxDeletePosition")) { String positionId = request.getParameter("PositionId"); kmelia.deletePosition(positionId); destination = getDestination("KmaxAxisManager", kmelia, request); } else if (function.equals("KmaxViewUnbalanced")) { List<KmeliaPublication> publications = kmelia.getUnbalancedPublications(); kmelia.setSessionPublicationsList(publications); kmelia.orderPubs(); destination = rootDestination + "kmax.jsp?Action=KmaxViewUnbalanced&Profile=" + kmelia.getProfile(); } else if (function.equals("KmaxViewBasket")) { TopicDetail basket = kmelia.getTopic("1"); List<KmeliaPublication> publications = (List<KmeliaPublication>) basket.getKmeliaPublications(); kmelia.setSessionPublicationsList(publications); kmelia.orderPubs(); destination = rootDestination + "kmax.jsp?Action=KmaxViewBasket&Profile=" + kmelia.getProfile(); } else if (function.equals("KmaxViewToValidate")) { destination = rootDestination + "kmax.jsp?Action=KmaxViewToValidate&Profile=" + kmelia.getProfile(); } else if (function.equals("KmaxSearch")) { String axisValuesStr = request.getParameter("SearchCombination"); if (!StringUtil.isDefined(axisValuesStr)) { axisValuesStr = (String) request.getAttribute("SearchCombination"); } String timeCriteria = request.getParameter("TimeCriteria"); SilverTrace.info("kmelia", "KmeliaRequestRouter.getDestination()", "root.MSG_GEN_PARAM_VALUE", "axisValuesStr = " + axisValuesStr + " timeCriteria=" + timeCriteria); List<String> combination = kmelia.getCombination(axisValuesStr); List<KmeliaPublication> publications; if (StringUtil.isDefined(timeCriteria) && !"X".equals(timeCriteria)) { publications = kmelia.search(combination, Integer.parseInt(timeCriteria)); } else { publications = kmelia.search(combination); } SilverTrace.info("kmelia", "KmeliaRequestRouter.getDestination()", "root.MSG_GEN_PARAM_VALUE", "publications = " + publications + " Combination=" + combination + " timeCriteria=" + timeCriteria); kmelia.setIndexOfFirstPubToDisplay("0"); kmelia.orderPubs(); kmelia.setSessionCombination(combination); kmelia.setSessionTimeCriteria(timeCriteria); destination = rootDestination + "kmax.jsp?Action=KmaxSearchResult&Profile=" + kmelia.getProfile(); } else if (function.equals("KmaxSearchResult")) { if (kmelia.getSessionCombination() == null) { destination = getDestination("KmaxMain", kmelia, request); } else { destination = rootDestination + "kmax.jsp?Action=KmaxSearchResult&Profile=" + kmelia.getProfile(); } } else if (function.equals("KmaxViewCombination")) { setWizardParams(request, kmelia); request.setAttribute("CurrentCombination", kmelia.getCurrentCombination()); destination = rootDestination + "kmax_viewCombination.jsp?Profile=" + kmelia.getProfile(); } else if (function.equals("KmaxAddCoordinate")) { String pubId = request.getParameter("PubId"); String axisValuesStr = request.getParameter("SearchCombination"); StringTokenizer st = new StringTokenizer(axisValuesStr, ","); List<String> combination = new ArrayList<String>(); String axisValue; while (st.hasMoreTokens()) { axisValue = st.nextToken(); // axisValue is xx/xx/xx where xx are nodeId axisValue = axisValue.substring(axisValue.lastIndexOf('/') + 1, axisValue.length()); combination.add(axisValue); } kmelia.addPublicationToCombination(pubId, combination); // Store current combination kmelia.setCurrentCombination(kmelia.getCombination(axisValuesStr)); destination = getDestination("KmaxViewCombination", kmelia, request); } else if (function.equals("KmaxDeleteCoordinate")) { String coordinateId = request.getParameter("CoordinateId"); String pubId = request.getParameter("PubId"); SilverTrace.info("kmelia", "KmeliaRequestRouter.getDestination()", "root.MSG_GEN_PARAM_VALUE", "coordinateId = " + coordinateId + " PubId=" + pubId); kmelia.deletePublicationFromCombination(pubId, coordinateId); destination = getDestination("KmaxViewCombination", kmelia, request); } else if (function.equals("KmaxExportComponent")) { // build an exploitable list by importExportPeas List<WAAttributeValuePair> publicationsIds = kmelia.getAllVisiblePublications(); request.setAttribute("selectedResultsWa", publicationsIds); // Go to importExportPeas destination = "/RimportExportPeas/jsp/KmaxExportComponent"; } else if (function.equals("KmaxExportPublications")) { // build an exploitable list by importExportPeas List<WAAttributeValuePair> publicationsIds = kmelia.getCurrentPublicationsList(); List<String> combination = kmelia.getSessionCombination(); // get the time axis String timeCriteria = null; if (kmelia.isTimeAxisUsed() && StringUtil.isDefined(kmelia.getSessionTimeCriteria())) { ResourceLocator timeSettings = new ResourceLocator( "org.silverpeas.kmelia.multilang.timeAxisBundle", kmelia.getLanguage()); if (kmelia.getSessionTimeCriteria().equals("X")) { timeCriteria = null; } else { timeCriteria = "<b>" + kmelia.getString("TimeAxis") + "</b> > " + timeSettings.getString(kmelia.getSessionTimeCriteria(), ""); } } request.setAttribute("selectedResultsWa", publicationsIds); request.setAttribute("Combination", combination); request.setAttribute("TimeCriteria", timeCriteria); // Go to importExportPeas destination = "/RimportExportPeas/jsp/KmaxExportPublications"; } else if ("statistics".equals(function)) { destination = rootDestination + statisticRequestHandler.handleRequest(request, function, kmelia); } else if ("statSelectionGroup".equals(function)) { destination = statisticRequestHandler.handleRequest(request, function, kmelia); } else if ("SetPublicationValidator".equals(function)) { String userIds = request.getParameter("ValideurId"); kmelia.setPublicationValidator(userIds); destination = getDestination("ViewPublication", kmelia, request); } else { destination = rootDestination + function; } if (profileError) { destination = GeneralPropertiesManager.getString("sessionTimeout"); } SilverTrace.info("kmelia", "KmeliaRequestRouter.getDestination()", "root.MSG_GEN_PARAM_VALUE", "destination = " + destination); } catch (Exception exce_all) { request.setAttribute("javax.servlet.jsp.jspException", exce_all); return "/admin/jsp/errorpageMain.jsp"; } return destination; }
From source file:com.slamd.admin.AdminServlet.java
/** * Handles the work of actually accepting an uploaded file and storing it in * the configuration directory.// www . jav a2 s. c o m * * @param requestInfo The state information for this request. */ static void handleFileUpload(RequestInfo requestInfo) { logMessage(requestInfo, "In handleFileUpload()"); if (!requestInfo.mayManageFolders) { logMessage(requestInfo, "No mayManageFolders permission granted"); generateAccessDeniedBody(requestInfo, "You do not have permission to " + "upload files into job folders."); return; } StringBuilder infoMessage = requestInfo.infoMessage; FileUpload fileUpload = new FileUpload(new DefaultFileItemFactory()); fileUpload.setSizeMax(maxUploadSize); boolean inOptimizing = false; String folderName = null; try { String fileName = null; String fileType = null; String fileDesc = null; int fileSize = -1; byte[] fileData = null; Iterator iterator = requestInfo.multipartFieldList.iterator(); while (iterator.hasNext()) { FileItem fileItem = (FileItem) iterator.next(); String fieldName = fileItem.getFieldName(); if (fieldName.equals(Constants.SERVLET_PARAM_FILE_DESCRIPTION)) { fileDesc = new String(fileItem.get()); } else if (fieldName.equals(Constants.SERVLET_PARAM_JOB_FOLDER)) { folderName = new String(fileItem.get()); } else if (fieldName.equals(Constants.SERVLET_PARAM_UPLOAD_FILE)) { fileData = fileItem.get(); fileSize = fileData.length; fileType = fileItem.getContentType(); fileName = fileItem.getName(); } else if (fieldName.equals(Constants.SERVLET_PARAM_IN_OPTIMIZING)) { String optStr = new String(fileItem.get()); inOptimizing = optStr.equalsIgnoreCase("true"); } } if (fileName == null) { infoMessage.append( "Unable to process file upload: did not receive " + "any actual file data.<BR>" + EOL); if (inOptimizing) { handleViewOptimizing(requestInfo, true, folderName); } else { handleViewJob(requestInfo, Constants.SERVLET_SECTION_JOB_VIEW_COMPLETED, folderName, null); } return; } UploadedFile file = new UploadedFile(fileName, fileType, fileSize, fileDesc, fileData); configDB.writeUploadedFile(file, folderName); infoMessage.append("Successfully uploaded file \"" + fileName + "\"<BR>" + EOL); } catch (Exception e) { infoMessage.append("Unable to process file upload: " + e + "<BR>" + EOL); } if (inOptimizing) { handleViewOptimizing(requestInfo, true, folderName); } else { handleViewJob(requestInfo, Constants.SERVLET_SECTION_JOB_VIEW_COMPLETED, folderName, null); } }
From source file:Controlador.Contr_Seleccion.java
/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods.//from w w w .j a v a 2 s. com * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /*Se detalla el contenido que tendra el servlet*/ response.setContentType("text/html;charset=UTF-8"); request.setCharacterEncoding("UTF-8"); /*Se crea una variable para la sesion*/ HttpSession session = request.getSession(true); boolean b; try { /*Se declaran las variables necesarias*/ Cls_Seleccion sel = new Cls_Seleccion(); String Codigo = "", Mensaje = "", Nombre = "", Tipo = "", Imagen = "", url, Peti; String urlsalidaimg; urlsalidaimg = "/media/santiago/Santiago/IMGTE/"; //urlsalidaimg = "D:\\IMGTE\\"; String urlimgservidor = this.getServletContext().getRealPath("/Libs/Customs/images/Seleccion"); /*FileItemFactory es una interfaz para crear FileItem*/ FileItemFactory file_factory = new DiskFileItemFactory(); /*ServletFileUpload esta clase convierte los input file a FileItem*/ ServletFileUpload servlet_up = new ServletFileUpload(file_factory); /*sacando los FileItem del ServletFileUpload en una lista */ servlet_up.setHeaderEncoding("UTF-8"); List items = servlet_up.parseRequest(request); Iterator it = items.iterator(); /*Se evalua cada una de las posibles peticiones y los posibles campos que envien*/ while (it.hasNext()) { FileItem item = (FileItem) it.next(); if (item.isFormField()) { //Plain request parameters will come here. String name = item.getFieldName(); if (name.equals("Codigo")) { /*Se guarda el campo en la clase*/ sel.setCodigo(item.getString()); } else if (name.equals("Nombre")) { /** * Se guarda el campo en la clase */ sel.setNombre(item.getString()); } else if (name.equals("Tipo")) { /** * Se guarda el campo en la clase */ sel.setTipo(item.getString()); } else if (name.equals("Estado")) { /** * Se guarda el campo en la clase */ sel.setEstado(item.getString()); } else if (name.equals("RegistrarSeleccion")) { /*Se evalua si se mando una iamgen, cuando se va a registrar un evento*/ if (!sel.getImagen().equals("")) { /*Si se envia una imagen obtiene la imagen para guardarla en el server luego*/ File img = new File(sel.getImagen()); /*Se ejecuta el metodo de registrar usuario que se encuentra, en la clase modelo con los datos que se encuentran en la clase*/ b = sel.setRegistrarSeleccion(sel.getNombre(), sel.getTipo(), sel.getTypeImg()); if (b) { /*Se guarda un mensaje mediante las sesiones y se redirecciona*/ File imagedb = new File(urlimgservidor + "/" + sel.getCodigo() + sel.getTypeImg()); img.renameTo(imagedb); session.setAttribute("Mensaje", "El gusto o ambiente ha sido registrado correctamente."); session.setAttribute("TipoMensaje", "Dio"); url = "View/ConsultaSeleccion.jsp"; response.sendRedirect(url); } else { img.delete(); /*Se guarda un mensaje de error mediante las sesiones y se redirecciona*/ session.setAttribute("Mensaje", sel.getMensaje()); session.setAttribute("TipoMensaje", "NODio"); url = "View/ConsultaSeleccion.jsp"; response.sendRedirect(url); } } else { /*Se guarda un mensaje de error mediante las sesiones y se redirecciona*/ session.setAttribute("Mensaje", "Seleccione una imagen, para registrar el ambiente o gusto."); session.setAttribute("TipoMensaje", "NODio"); } } else if (name.equals("ModificarSeleccion")) { if (sel.getImagen().equals("")) { /*Se ejecuta el metodo de actualizar los datos de la seleccion usuario que se encuentra, en la clase modelo con los datos que se encuentran en la clase*/ b = sel.actualizardatosSeleccion(sel.getCodigo(), sel.getNombre(), sel.getTipo(), sel.getEstado()); if (b) { /*Se guarda un mensaje mediante las sesiones y se redirecciona*/ session.setAttribute("Mensaje", "El gusto o ambiente ha sido registrada correctamente."); session.setAttribute("TipoMensaje", "Dio"); url = "View/ConsultaSeleccion.jsp"; response.sendRedirect(url); } else { /*Se guarda un mensaje mediante las sesiones y se redirecciona*/ session.setAttribute("Mensaje", sel.getMensaje()); session.setAttribute("TipoMensaje", "NODio"); url = "View/ConsultaSeleccion.jsp"; response.sendRedirect(url); } } else { /*Se ejecuta el metodo de actualizar los datos de la seleccion usuario que se encuentra, en la clase modelo con los datos que se encuentran en la clase*/ File img = new File(sel.getImagen()); b = sel.actualizardatosSeleccion(sel.getCodigo(), sel.getNombre(), sel.getTipo(), sel.getTypeImg(), sel.getEstado()); if (b) { File imagedb = new File(urlimgservidor + "/" + sel.getCodigo() + sel.getTypeImg()); img.renameTo(imagedb); /*Se guarda un mensaje mediante las sesiones y se redirecciona*/ session.setAttribute("Mensaje", "El gusto o ambiente ha sido modificado correctamente."); session.setAttribute("TipoMensaje", "Dio"); url = "View/ConsultaSeleccion.jsp"; response.sendRedirect(url); } else { img.delete(); /*Se guarda un mensaje mediante las sesiones y se redirecciona*/ session.setAttribute("Mensaje", sel.getMensaje()); session.setAttribute("TipoMensaje", "NODio"); url = "View/ConsultaSeleccion.jsp"; response.sendRedirect(url); } } } } else { if (!item.getName().equals("")) { //uploaded files will come here. FileItem file = item; String fieldName = item.getFieldName(); String fileName = item.getName(); String contentType = item.getContentType(); boolean isInMemory = item.isInMemory(); long sizeInBytes = item.getSize(); if (sizeInBytes > 1000000) { /*Se muestra un mensaje en caso de pesar mas de 3 MB*/ session.setAttribute("Mensaje", "El tamao lmite de la imagen es: 1 MB"); session.setAttribute("TipoMensaje", "NODio"); /*Se redirecciona*/ response.sendRedirect("View/ConsultaSeleccion.jsp"); } else { if (contentType.indexOf("jpeg") > 0 || contentType.indexOf("png") > 0) { if (contentType.indexOf("jpeg") > 0) { contentType = ".jpg"; } else { contentType = ".png"; } /*Se crea la imagne*/ File archivo_server = new File(urlimgservidor + "/" + item.getName()); /*Se guardael nombre y tipo de imagen en la clase*/ sel.setImagen(urlimgservidor + "/" + item.getName()); sel.setTypeImg(contentType); /*Se guarda la imagen*/ item.write(archivo_server); } else { session.setAttribute("Mensaje", "Solo se pueden registrar imagenes JPG o PNG"); session.setAttribute("TipoMensaje", "NODio"); } } } else { /*Se guarda el url de la imagen en la clase*/ sel.setImagen(""); } } } /*Se redirecciona sino se recive ninguna peticion*/ response.sendRedirect("View/index.jsp"); } catch (FileUploadException ex) { /*Se muestra un mensaje en caso de error*/ System.out.print(ex.getMessage().toString()); } catch (Exception ex) { /*Se muestra un mensaje en caso de error*/ Logger.getLogger(Contr_Seleccion.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:fr.paris.lutece.plugins.calendar.web.CalendarJspBean.java
/** * Process Event creation/* w w w . ja v a 2s . c o m*/ * * @param request The Http request * @return URL */ public String doCreateEvent(HttpServletRequest request) { String strJspReturn = StringUtils.EMPTY; String strCalendarId = request.getParameter(Constants.PARAMETER_CALENDAR_ID); String strPeriodicity = request.getParameter(Constants.PARAMETER_PERIODICITY); if (StringUtils.isNotBlank(strCalendarId) && StringUtils.isNumeric(strCalendarId) && StringUtils.isNotBlank(strPeriodicity) && StringUtils.isNumeric(strPeriodicity)) { //Retrieving parameters from form int nCalendarId = Integer.parseInt(strCalendarId); int nPeriodicity = Integer.parseInt(strPeriodicity); String strEventDateEnd = request.getParameter(Constants.PARAMETER_EVENT_DATE_END); String strTimeStart = request.getParameter(Constants.PARAMETER_EVENT_TIME_START); String strTimeEnd = request.getParameter(Constants.PARAMETER_EVENT_TIME_END); String strOccurrence = request.getParameter(Constants.PARAMETER_OCCURRENCE); String strEventTitle = request.getParameter(Constants.PARAMETER_EVENT_TITLE); String strDate = request.getParameter(Constants.PARAMETER_EVENT_DATE); String strNotify = request.getParameter(Constants.PARAMETER_NOTIFY); //Retrieve the features of an event from form String strDescription = request.getParameter(Constants.PARAMETER_DESCRIPTION); String strEventTags = request.getParameter(Constants.PARAMETER_EVENT_TAGS).trim(); String strLocationAddress = request.getParameter(Constants.PARAMETER_EVENT_LOCATION_ADDRESS).trim(); String strLocationTown = request.getParameter(Constants.PARAMETER_LOCATION_TOWN).trim(); String strLocation = request.getParameter(Constants.PARAMETER_LOCATION).trim(); String strLocationZip = request.getParameter(Constants.PARAMETER_LOCATION_ZIP).trim(); String strLinkUrl = request.getParameter(Constants.PARAMETER_EVENT_LINK_URL).trim(); String strDocumentId = request.getParameter(Constants.PARAMETER_EVENT_DOCUMENT_ID).trim(); String strPageUrl = request.getParameter(Constants.PARAMETER_EVENT_PAGE_URL).trim(); String strTopEvent = request.getParameter(Constants.PARAMETER_EVENT_TOP_EVENT).trim(); String strMapUrl = request.getParameter(Constants.PARAMETER_EVENT_MAP_URL).trim(); //Retrieving the excluded days String[] arrayExcludedDays = request.getParameterValues(Constants.PARAMETER_EXCLUDED_DAYS); MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request; FileItem item = mRequest.getFile(Constants.PARAMETER_EVENT_IMAGE); String[] arrayCategory = request.getParameterValues(Constants.PARAMETER_CATEGORY); //Categories List<Category> listCategories = new ArrayList<Category>(); if (arrayCategory != null) { for (String strIdCategory : arrayCategory) { Category category = CategoryHome.find(Integer.parseInt(strIdCategory), getPlugin()); if (category != null) { listCategories.add(category); } } } String[] strTabEventTags = null; // Mandatory field if (StringUtils.isBlank(strDate) || StringUtils.isBlank(strEventTitle) || StringUtils.isBlank(strDescription)) { return AdminMessageService.getMessageUrl(request, Messages.MANDATORY_FIELDS, AdminMessage.TYPE_STOP); } if (StringUtils.isNotBlank(strEventTags) && strEventTags.length() > 0) { //Test if there aren't special characters in tag list boolean isAllowedExp = Pattern.matches(PROPERTY_TAGS_REGEXP, strEventTags); if (!isAllowedExp) { return AdminMessageService.getMessageUrl(request, MESSAGE_INVALID_TAG, AdminMessage.TYPE_STOP); } strTabEventTags = strEventTags.split("\\s"); } //Convert the date in form to a java.util.Date object Date dateEvent = DateUtil.formatDate(strDate, getLocale()); if ((dateEvent == null) || !Utils.isValidDate(dateEvent)) { return AdminMessageService.getMessageUrl(request, Constants.PROPERTY_MESSAGE_DATEFORMAT, AdminMessage.TYPE_STOP); } Date dateEndEvent = null; if (StringUtils.isNotBlank(strEventDateEnd)) { dateEndEvent = DateUtil.formatDate(strEventDateEnd, getLocale()); if ((dateEndEvent == null) || !Utils.isValidDate(dateEndEvent)) { return AdminMessageService.getMessageUrl(request, Constants.PROPERTY_MESSAGE_DATEFORMAT, AdminMessage.TYPE_STOP); } } //the number of occurrence is 1 by default int nOccurrence = 1; if ((strOccurrence.length() > 0) && !strOccurrence.equals("")) { try { nOccurrence = Integer.parseInt(strOccurrence); } catch (NumberFormatException e) { return AdminMessageService.getMessageUrl(request, MESSAGE_INVALID_OCCURRENCE_NUMBER, AdminMessage.TYPE_STOP); } } int nDocumentId = -1; if ((strDocumentId.length() > 0) && !strDocumentId.equals("")) { try { nDocumentId = Integer.parseInt(strDocumentId); } catch (NumberFormatException e) { return AdminMessageService.getMessageUrl(request, MESSAGE_INVALID_OCCURRENCE_NUMBER, AdminMessage.TYPE_STOP); } } if (!Utils.checkTime(strTimeStart) || !Utils.checkTime(strTimeEnd)) { return AdminMessageService.getMessageUrl(request, Constants.PROPERTY_MESSAGE_TIMEFORMAT, AdminMessage.TYPE_STOP); } //If a date end is chosen if ((Integer.parseInt(request.getParameter(Constants.PARAMETER_RADIO_PERIODICITY)) == 1) && StringUtils.isNotBlank(strEventDateEnd)) { if (dateEndEvent.before(dateEvent)) { return AdminMessageService.getMessageUrl(request, Constants.PROPERTY_MESSAGE_DATE_END_BEFORE, AdminMessage.TYPE_STOP); } nPeriodicity = 0; nOccurrence = Utils.getOccurrenceWithinTwoDates(dateEvent, dateEndEvent, arrayExcludedDays); } else if ((Integer.parseInt(request.getParameter(Constants.PARAMETER_RADIO_PERIODICITY)) == 1) && StringUtils.isBlank(strEventDateEnd)) { return AdminMessageService.getMessageUrl(request, Constants.PROPERTY_MESSAGE_DATEFORMAT, AdminMessage.TYPE_STOP); } //If a date end is not chosen if ((Integer.parseInt(request.getParameter(Constants.PARAMETER_RADIO_PERIODICITY)) == 0) && StringUtils.isBlank(strEventDateEnd)) { dateEndEvent = Utils.getDateForward(dateEvent, nPeriodicity, nOccurrence, arrayExcludedDays); if (dateEndEvent.before(dateEvent)) { nOccurrence = 0; dateEndEvent = dateEvent; } } SimpleEvent event = new SimpleEvent(); event.setDate(dateEvent); event.setDateEnd(dateEndEvent); event.setDateTimeStart(strTimeStart); event.setDateTimeEnd(strTimeEnd); event.setTitle(strEventTitle); event.setOccurrence(nOccurrence); event.setPeriodicity(nPeriodicity); event.setDescription(strDescription); if (item.getSize() == 0) { HttpSession session = request.getSession(true); if (session.getAttribute(ATTRIBUTE_MODULE_DOCUMENT_TO_CALENDAR_CONTENT_FILE) != null && session.getAttribute(ATTRIBUTE_MODULE_DOCUMENT_TO_CALENDAR_MIME_TYPE_FILE) != null) { ImageResource imageResource = new ImageResource(); imageResource.setImage( (byte[]) session.getAttribute(ATTRIBUTE_MODULE_DOCUMENT_TO_CALENDAR_CONTENT_FILE)); imageResource.setMimeType( (String) session.getAttribute(ATTRIBUTE_MODULE_DOCUMENT_TO_CALENDAR_MIME_TYPE_FILE)); event.setImageResource(imageResource); session.removeAttribute(ATTRIBUTE_MODULE_DOCUMENT_TO_CALENDAR_CONTENT_FILE); session.removeAttribute(ATTRIBUTE_MODULE_DOCUMENT_TO_CALENDAR_MIME_TYPE_FILE); } } if (item.getSize() >= 1) { ImageResource imageResource = new ImageResource(); imageResource.setImage(item.get()); imageResource.setMimeType(item.getContentType()); event.setImageResource(imageResource); } event.setTags(strTabEventTags); event.setLocationAddress(strLocationAddress); event.setLocation(strLocation); event.setLocationTown(strLocationTown); event.setLocationZip(strLocationZip); event.setLinkUrl(strLinkUrl); event.setPageUrl(strPageUrl); event.setTopEvent(Integer.parseInt(strTopEvent)); event.setMapUrl(strMapUrl); event.setDocumentId(nDocumentId); event.setListCategories(listCategories); event.setExcludedDays(arrayExcludedDays); event.setIdCalendar(nCalendarId); _eventListService.doAddEvent(event, null, getPlugin()); List<OccurrenceEvent> listOccurencesEvent = _eventListService.getOccurrenceEvents(nCalendarId, event.getId(), Constants.SORT_ASC, getPlugin()); for (OccurrenceEvent occ : listOccurencesEvent) { IndexationService.addIndexerAction(Integer.toString(occ.getId()), AppPropertiesService.getProperty(CalendarIndexer.PROPERTY_INDEXER_NAME), IndexerAction.TASK_CREATE); CalendarIndexerUtils.addIndexerAction(occ.getId(), IndexerAction.TASK_CREATE); } /* * IndexationService.addIndexerAction( Constants.EMPTY_STRING + * nCalendarId * ,AppPropertiesService.getProperty( * CalendarIndexer.PROPERTY_INDEXER_NAME ), * IndexerAction.TASK_CREATE ); */ boolean isNotify = Boolean.parseBoolean(strNotify); if (isNotify) { int nSubscriber = _agendaSubscriberService.getSubscriberNumber(nCalendarId, getPlugin()); if (nSubscriber > 0) { Collection<CalendarSubscriber> calendarSubscribers = _agendaSubscriberService .getSubscribers(nCalendarId, getPlugin()); _agendaSubscriberService.sendSubscriberMail(request, calendarSubscribers, event, nCalendarId); } } strJspReturn = AppPathService.getBaseUrl(request) + JSP_EVENT_LIST2 + nCalendarId; } else { strJspReturn = AdminMessageService.getMessageUrl(request, MESSAGE_INVALID_NUMBER_FORMAT, AdminMessage.TYPE_STOP); } return strJspReturn; }
From source file:com.occamlab.te.web.TestServlet.java
public void processFormData(HttpServletRequest request, HttpServletResponse response) throws ServletException { try {/*ww w .j av a 2s .c o m*/ FileItemFactory ffactory; ServletFileUpload upload; List /* FileItem */ items = null; HashMap<String, String> params = new HashMap<String, String>(); boolean multipart = ServletFileUpload.isMultipartContent(request); if (multipart) { ffactory = new DiskFileItemFactory(); upload = new ServletFileUpload(ffactory); items = upload.parseRequest(request); Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.isFormField()) { params.put(item.getFieldName(), item.getString()); } } } else { Enumeration paramNames = request.getParameterNames(); while (paramNames.hasMoreElements()) { String name = (String) paramNames.nextElement(); params.put(name, request.getParameter(name)); } } HttpSession session = request.getSession(); ServletOutputStream out = response.getOutputStream(); String operation = params.get("te-operation"); if (operation.equals("Test")) { TestSession s = new TestSession(); String user = request.getRemoteUser(); File logdir = new File(conf.getUsersDir(), user); String mode = params.get("mode"); RuntimeOptions opts = new RuntimeOptions(); opts.setWorkDir(conf.getWorkDir()); opts.setLogDir(logdir); if (mode.equals("retest")) { opts.setMode(Test.RETEST_MODE); String sessionid = params.get("session"); String test = params.get("test"); if (sessionid == null) { int i = test.indexOf("/"); sessionid = i > 0 ? test.substring(0, i) : test; } opts.setSessionId(sessionid); if (test == null) { opts.addTestPath(sessionid); } else { opts.addTestPath(test); } for (Entry<String, String> entry : params.entrySet()) { if (entry.getKey().startsWith("profile_")) { String profileId = entry.getValue(); int i = profileId.indexOf("}"); opts.addTestPath(sessionid + "/" + profileId.substring(i + 1)); } } s.load(logdir, sessionid); opts.setSourcesName(s.getSourcesName()); } else if (mode.equals("resume")) { opts.setMode(Test.RESUME_MODE); String sessionid = params.get("session"); opts.setSessionId(sessionid); s.load(logdir, sessionid); opts.setSourcesName(s.getSourcesName()); } else { opts.setMode(Test.TEST_MODE); String sessionid = LogUtils.generateSessionId(logdir); s.setSessionId(sessionid); String sources = params.get("sources"); s.setSourcesName(sources); SuiteEntry suite = conf.getSuites().get(sources); s.setSuiteName(suite.getId()); // String suite = params.get("suite"); // s.setSuiteName(suite); String description = params.get("description"); s.setDescription(description); opts.setSessionId(sessionid); opts.setSourcesName(sources); opts.setSuiteName(suite.getId()); ArrayList<String> profiles = new ArrayList<String>(); for (Entry<String, String> entry : params.entrySet()) { if (entry.getKey().startsWith("profile_")) { profiles.add(entry.getValue()); opts.addProfile(entry.getValue()); } } s.setProfiles(profiles); s.save(logdir); } String webdir = conf.getWebDirs().get(s.getSourcesName()); // String requestURI = request.getRequestURI(); // String contextPath = requestURI.substring(0, requestURI.indexOf(request.getServletPath()) + 1); // URI contextURI = new URI(request.getScheme(), null, request.getServerName(), request.getServerPort(), contextPath, null, null); URI contextURI = new URI(request.getScheme(), null, request.getServerName(), request.getServerPort(), request.getRequestURI(), null, null); opts.setBaseURI(new URL(contextURI.toURL(), webdir + "/").toString()); // URI baseURI = new URL(contextURI.toURL(), webdir).toURI(); // String base = baseURI.toString() + URLEncoder.encode(webdir, "UTF-8") + "/"; // opts.setBaseURI(base); //System.out.println(opts.getSourcesName()); TECore core = new TECore(engine, indexes.get(opts.getSourcesName()), opts); //System.out.println(indexes.get(opts.getSourcesName()).toString()); ByteArrayOutputStream baos = new ByteArrayOutputStream(); PrintStream ps = new PrintStream(baos); core.setOut(ps); core.setWeb(true); Thread thread = new Thread(core); session.setAttribute("testsession", core); thread.start(); response.setContentType("text/xml"); out.println("<thread id=\"" + thread.getId() + "\" sessionId=\"" + s.getSessionId() + "\"/>"); } else if (operation.equals("Stop")) { response.setContentType("text/xml"); TECore core = (TECore) session.getAttribute("testsession"); if (core != null) { core.stopThread(); session.removeAttribute("testsession"); out.println("<stopped/>"); } else { out.println("<message>Could not retrieve core object</message>"); } } else if (operation.equals("GetStatus")) { TECore core = (TECore) session.getAttribute("testsession"); response.setContentType("text/xml"); out.print("<status"); if (core.getFormHtml() != null) { out.print(" form=\"true\""); } if (core.isThreadComplete()) { out.print(" complete=\"true\""); session.removeAttribute("testsession"); } out.println(">"); out.print("<![CDATA["); // out.print(core.getOutput()); out.print(URLEncoder.encode(core.getOutput(), "UTF-8").replace('+', ' ')); out.println("]]>"); out.println("</status>"); } else if (operation.equals("GetForm")) { TECore core = (TECore) session.getAttribute("testsession"); String html = core.getFormHtml(); core.setFormHtml(null); response.setContentType("text/html"); out.print(html); } else if (operation.equals("SubmitForm")) { TECore core = (TECore) session.getAttribute("testsession"); Document doc = DB.newDocument(); Element root = doc.createElement("values"); doc.appendChild(root); for (String key : params.keySet()) { if (!key.startsWith("te-")) { Element valueElement = doc.createElement("value"); valueElement.setAttribute("key", key); valueElement.appendChild(doc.createTextNode(params.get(key))); root.appendChild(valueElement); } } if (multipart) { Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (!item.isFormField() && !item.getName().equals("")) { File uploadedFile = new File(core.getLogDir(), StringUtils.getFilenameFromString(item.getName())); item.write(uploadedFile); Element valueElement = doc.createElement("value"); String key = item.getFieldName(); valueElement.setAttribute("key", key); if (core.getFormParsers().containsKey(key)) { Element parser = core.getFormParsers().get(key); URL url = uploadedFile.toURI().toURL(); Element resp = core.parse(url.openConnection(), parser, doc); Element content = DomUtils.getElementByTagName(resp, "content"); if (content != null) { Element child = DomUtils.getChildElement(content); if (child != null) { valueElement.appendChild(child); } } } else { Element fileEntry = doc.createElementNS(CTL_NS, "file-entry"); fileEntry.setAttribute("full-path", uploadedFile.getAbsolutePath().replace('\\', '/')); fileEntry.setAttribute("media-type", item.getContentType()); fileEntry.setAttribute("size", String.valueOf(item.getSize())); valueElement.appendChild(fileEntry); } root.appendChild(valueElement); } } } core.setFormResults(doc); response.setContentType("text/html"); out.println("<html>"); out.println("<head><title>Form Submitted</title></head>"); out.print("<body onload=\"window.parent.update()\"></body>"); out.println("</html>"); } } catch (Throwable t) { throw new ServletException(t); } }