use of org.apache.struts.action.ActionForward in project xwiki-platform by xwiki.
the class XWikiAction method execute.
/**
* Handle server requests.
*
* @param mapping The ActionMapping used to select this instance
* @param form The optional ActionForm bean for this request (if any)
* @param req The HTTP request we are processing
* @param resp The HTTP response we are creating
* @throws IOException if an input/output error occurs
* @throws ServletException if a servlet exception occurs
*/
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse resp) throws Exception {
ActionForward actionForward;
XWikiContext context = null;
try {
// Initialize the XWiki Context which is the main object used to pass information across
// classes/methods. It's also wrapping the request, response, and all container objects
// in general.
context = initializeXWikiContext(mapping, form, req, resp);
// From this line forward all information can be found in the XWiki Context.
actionForward = execute(context);
} finally {
if (context != null) {
cleanupComponents();
}
}
return actionForward;
}
use of org.apache.struts.action.ActionForward in project cu-kfs by CU-CommunityApps.
the class CuFinancialMaintenanceDocumentAction method insertBONote.
/**
* Overridden to include a Rice 2.5.x fix for persisting BO note additions,
* and to delegate the fix's boolean logic to some new shouldSaveBoNoteAfterUpdate()
* and isTargetReadyForNotes() methods so that it can be further limited based on BO class and readiness.
*
* Some other cleanup has also been done to improve line lengths
* and remove certain comments, but other than that and the changes stated above,
* this method is the same as the one from KualiDocumentActionBase.
*
* @see org.kuali.kfs.kns.web.struts.action.KualiDocumentActionBase#insertBONote(
* org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm,
* javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@Override
public ActionForward insertBONote(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
KualiDocumentFormBase kualiDocumentFormBase = (KualiDocumentFormBase) form;
Document document = kualiDocumentFormBase.getDocument();
Note newNote = kualiDocumentFormBase.getNewNote();
newNote.setNotePostedTimestampToCurrent();
String attachmentTypeCode = null;
FormFile attachmentFile = kualiDocumentFormBase.getAttachmentFile();
if (attachmentFile == null) {
GlobalVariables.getMessageMap().putError(String.format("%s.%s", KRADConstants.NEW_DOCUMENT_NOTE_PROPERTY_NAME, KRADConstants.NOTE_ATTACHMENT_FILE_PROPERTY_NAME), RiceKeyConstants.ERROR_UPLOADFILE_NULL);
}
if (newNote.getAttachment() != null) {
attachmentTypeCode = newNote.getAttachment().getAttachmentTypeCode();
}
// check authorization for adding notes
DocumentAuthorizer documentAuthorizer = getDocumentHelperService().getDocumentAuthorizer(document);
if (!documentAuthorizer.canAddNoteAttachment(document, attachmentTypeCode, GlobalVariables.getUserSession().getPerson())) {
throw buildAuthorizationException("annotate", document);
}
// create the attachment first, so that failure-to-create-attachment can be treated as a validation failure
Attachment attachment = null;
if (attachmentFile != null && !StringUtils.isBlank(attachmentFile.getFileName())) {
if (attachmentFile.getFileSize() == 0) {
GlobalVariables.getMessageMap().putError(String.format("%s.%s", KRADConstants.NEW_DOCUMENT_NOTE_PROPERTY_NAME, KRADConstants.NOTE_ATTACHMENT_FILE_PROPERTY_NAME), RiceKeyConstants.ERROR_UPLOADFILE_EMPTY, attachmentFile.getFileName());
} else {
String attachmentType = null;
Attachment newAttachment = kualiDocumentFormBase.getNewNote().getAttachment();
if (newAttachment != null) {
attachmentType = newAttachment.getAttachmentTypeCode();
}
attachment = getAttachmentService().createAttachment(document.getNoteTarget(), attachmentFile.getFileName(), attachmentFile.getContentType(), attachmentFile.getFileSize(), attachmentFile.getInputStream(), attachmentType);
}
}
DataDictionary dataDictionary = getDataDictionaryService().getDataDictionary();
DocumentEntry entry = dataDictionary.getDocumentEntry(document.getClass().getName());
if (entry.getDisplayTopicFieldInNotes()) {
String topicText = kualiDocumentFormBase.getNewNote().getNoteTopicText();
if (StringUtils.isBlank(topicText)) {
GlobalVariables.getMessageMap().putError(String.format("%s.%s", KRADConstants.NEW_DOCUMENT_NOTE_PROPERTY_NAME, KRADConstants.NOTE_TOPIC_TEXT_PROPERTY_NAME), RiceKeyConstants.ERROR_REQUIRED, "Note Topic (Note Topic)");
}
}
// create a new note from the data passed in
Person kualiUser = GlobalVariables.getUserSession().getPerson();
if (kualiUser == null) {
throw new IllegalStateException("Current UserSession has a null Person.");
}
Note tmpNote = getNoteService().createNote(newNote, document.getNoteTarget(), kualiUser.getPrincipalId());
ActionForward forward = checkAndWarnAboutSensitiveData(mapping, form, request, response, KRADPropertyConstants.NOTE, tmpNote.getNoteText(), "insertBONote", "");
if (forward != null) {
return forward;
}
// validate the note
boolean rulePassed = getKualiRuleService().applyRules(new AddNoteEvent(document, tmpNote));
// if the rule evaluation passed, let's add the note
if (rulePassed) {
tmpNote.refresh();
DocumentHeader documentHeader = document.getDocumentHeader();
// associate note with object now
document.addNote(tmpNote);
// maintenance document BO note should only be saved into table when document is in the PROCESSED workflow status
if (!documentHeader.getWorkflowDocument().isInitiated() && StringUtils.isNotEmpty(document.getNoteTarget().getObjectId()) && !(document instanceof MaintenanceDocument && NoteType.BUSINESS_OBJECT.getCode().equals(tmpNote.getNoteTypeCode()))) {
getNoteService().save(tmpNote);
}
// autopopulate the id since the note hasn't been persisted yet)
if (attachment != null) {
tmpNote.addAttachment(attachment);
// without the PK on the attachment I think it is safer then trying to get the sequence manually
if (!documentHeader.getWorkflowDocument().isInitiated() && StringUtils.isNotEmpty(document.getNoteTarget().getObjectId()) && !(document instanceof MaintenanceDocument && NoteType.BUSINESS_OBJECT.getCode().equals(tmpNote.getNoteTypeCode()))) {
getNoteService().save(tmpNote);
}
}
// Added some logic which saves the document and/or notes list after a BO note is added to the document
if (shouldSaveBoNoteAfterUpdate(document, tmpNote)) {
if (isTargetReadyForNotes(document)) {
getNoteService().save(tmpNote);
} else {
getDocumentService().saveDocument(document);
}
}
// reset the new note back to an empty one
kualiDocumentFormBase.setNewNote(new Note());
}
return mapping.findForward(RiceConstants.MAPPING_BASIC);
}
use of org.apache.struts.action.ActionForward in project cu-kfs by CU-CommunityApps.
the class FormatAction method continueFormat.
/**
* This method performs the format process.
*
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward continueFormat(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
FormatForm formatForm = (FormatForm) form;
KualiInteger processId = formatForm.getFormatProcessSummary().getProcessId();
try {
formatService.performFormat(processId.intValue());
// remove this
LOG.info("Formatting done..");
} catch (FormatException e) {
// errors added to global message map
return mapping.findForward(PdpConstants.MAPPING_CONTINUE);
}
String lookupUrl = buildUrl(String.valueOf(processId.intValue()));
// remove this
LOG.info("Forwarding to lookup");
return new ActionForward(lookupUrl, true);
}
use of org.apache.struts.action.ActionForward in project cu-kfs by CU-CommunityApps.
the class PurchasingActionBase method approve.
/**
* Overrides the superclass method so that it will also do proration for trade in and full order discount when the user clicks
* on the approve button.
*
* @see org.kuali.kfs.kns.web.struts.action.KualiDocumentActionBase#approve(org.apache.struts.action.ActionMapping,
* org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@Override
public ActionForward approve(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
PurchasingFormBase purchasingForm = (PurchasingFormBase) form;
PurchasingDocument purDoc = (PurchasingDocument) purchasingForm.getDocument();
if (isAttachmentSizeExceedSqLimit(form, "approve") || isReasonToChangeRequired(form)) {
return mapping.findForward(KFSConstants.MAPPING_BASIC);
}
boolean isCreatingReasonNote = isCreatingReasonNote(form);
if (isCreatingReasonNote) {
// save here, so it can be picked up in b2b
SpringContext.getBean(NoteService.class).saveNoteList(purDoc.getNotes());
}
// call prorateDiscountTradeIn
SpringContext.getBean(PurapService.class).prorateForTradeInAndFullOrderDiscount(purDoc);
ActionForward forward = super.approve(mapping, form, request, response);
if (GlobalVariables.getMessageMap().hasNoErrors() && isCreatingReasonNote) {
createReasonNote(form);
}
return forward;
}
use of org.apache.struts.action.ActionForward in project cu-kfs by CU-CommunityApps.
the class PurchasingActionBase method route.
/**
* Overrides the superclass method so that it will also do proration for trade in and full order discount when the user clicks
* on the submit button.
*
* @see org.kuali.kfs.sys.web.struts.KualiAccountingDocumentActionBase#route(org.apache.struts.action.ActionMapping,
* org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@Override
public ActionForward route(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
PurchasingFormBase purchasingForm = (PurchasingFormBase) form;
PurchasingDocument purDoc = (PurchasingDocument) purchasingForm.getDocument();
// if form is not yet calculated, return and prompt user to calculate
if (requiresCalculate(purchasingForm)) {
GlobalVariables.getMessageMap().putError(KFSConstants.DOCUMENT_ERRORS, PurapKeyConstants.ERROR_PURCHASING_REQUIRES_CALCULATE);
return mapping.findForward(KFSConstants.MAPPING_BASIC);
}
// TODO : should combine all validation errors and return at the same time
if (isAttachmentSizeExceedSqLimit(form, "route") || isReasonToChangeRequired(form)) {
return mapping.findForward(KFSConstants.MAPPING_BASIC);
}
// save this flag before notes is saved during route
boolean isCreatingReasonNote = isCreatingReasonNote(form);
// call prorateDiscountTradeIn
SpringContext.getBean(PurapService.class).prorateForTradeInAndFullOrderDiscount(purDoc);
ActionForward forward = super.route(mapping, form, request, response);
if (GlobalVariables.getMessageMap().hasNoErrors() && isCreatingReasonNote) {
createReasonNote(form);
}
return forward;
}
Aggregations