Class AbstractIssueLinkAction
java.lang.Object
webwork.action.ActionSupport
com.atlassian.jira.web.action.JiraWebActionSupport
com.atlassian.jira.web.action.ProjectActionSupport
com.atlassian.jira.web.action.IssueActionSupport
com.atlassian.jira.web.action.issue.AbstractIssueSelectAction
com.atlassian.jira.web.action.issue.AbstractViewIssue
com.atlassian.jira.web.action.issue.AbstractCommentableIssue
com.atlassian.jira.web.action.issue.AbstractIssueLinkAction
- All Implemented Interfaces:
OperationContext,ErrorCollection,I18nHelper,IssueSummaryAware,HttpServletVariables,AuthorizationSupport,Serializable,webwork.action.Action,webwork.action.CommandDriven,webwork.action.IllegalArgumentAware
- Direct Known Subclasses:
AddWebLink,LinkConfluencePage,LinkExistingIssue,LinkJiraIssue
public abstract class AbstractIssueLinkAction
extends AbstractCommentableIssue
implements OperationContext
Base class for an issue link action.
- Since:
- v5.0
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.atlassian.jira.web.action.JiraWebActionSupport
JiraWebActionSupport.MessageTypeNested classes/interfaces inherited from interface com.atlassian.jira.util.ErrorCollection
ErrorCollection.ReasonNested classes/interfaces inherited from interface com.atlassian.jira.util.I18nHelper
I18nHelper.BeanFactory -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final com.atlassian.event.api.EventPublisherprotected final IssueLinkManagerprotected final RemoteIssueLinkServiceFields inherited from class com.atlassian.jira.web.action.issue.AbstractCommentableIssue
userUtilFields inherited from class com.atlassian.jira.web.action.issue.AbstractIssueSelectAction
id, ISSUE_PERMISSION_ERROR, PREPOPULATED_ISSUE_OBJECTFields inherited from class com.atlassian.jira.web.action.IssueActionSupport
attachmentManagerFields inherited from class com.atlassian.jira.web.action.ProjectActionSupport
projectManagerFields inherited from class com.atlassian.jira.web.action.JiraWebActionSupport
ISSUE_NOT_FOUND_RESULT, log, PERMISSION_VIOLATION_RESULT, request, RETURN_URL_PARAMETER, savedFilters, SECURITY_BREACH_RESULTFields inherited from class webwork.action.ActionSupport
command, errorMap, errorMessagesFields inherited from interface webwork.action.Action
ERROR, INPUT, LOGIN, NONE, SUCCESS -
Constructor Summary
ConstructorsConstructorDescriptionAbstractIssueLinkAction(SubTaskManager subTaskManager, FieldScreenRendererFactory fieldScreenRendererFactory, FieldManager fieldManager, ProjectRoleManager projectRoleManager, CommentService commentService, UserUtil userUtil, RemoteIssueLinkService remoteIssueLinkService, com.atlassian.event.api.EventPublisher eventPublisher, IssueEventManager issueEventManager, IssueEventBundleFactory issueEventBundleFactory, IssueLinkManager issueLinkManager) -
Method Summary
Modifier and TypeMethodDescriptionprotected CommentCreate a comment and dispatch eventCreates the link and publishes an event for the creationcreateLink(RemoteIssueLinkService.CreateValidationResult validationResult) Creates the link and publishes an event for the creationprotected voiddispatchCommentEvents(Issue issue, Comment comment) The "default" command.protected voidValidate that the linking is enabled in system settings, user has permission to link issues, and that the comment field is valid.static Stringprotected StringReturns the URL to redirect to after successfully creating the issue link.protected voidbooleanbooleanReturns true if the contents of the action should be shown, false if otherwise.Methods inherited from class com.atlassian.jira.web.action.issue.AbstractCommentableIssue
createComment, doCommentValidation, getComment, getCommentLevel, getFieldScreenRendererLayoutItemForField, getFieldScreenRendererWithAllFields, getFieldValuesHolder, getGroupLevel, getGroupLevels, getIssueOperation, getOrderableField, getRoleLevels, populateAttachmentsFieldValuesHolderAndValidate, populateCommentFields, processAttachments, processAttachments, requireAttachmentsResources, setComment, setCommentLevel, setFieldValuesHolder, setGroupLevelMethods inherited from class com.atlassian.jira.web.action.issue.AbstractViewIssue
getAttachments, getPossibleComponents, getPossibleVersions, getPossibleVersionsReleasedFirstMethods inherited from class com.atlassian.jira.web.action.issue.AbstractIssueSelectAction
addErrorMessage, assertIssueIsValid, cameFromIssue, cameFromParent, getId, getIssue, getIssueObject, getIssueObjectWithoutDatabaseRead, getIssuePath, getKey, getLayoutBean, getMutableIssue, getParentIssueObject, getProject, getProjectObject, getSecurityLevel, getSubTaskManager, getSummaryIssue, getViewIssueKey, getViewUrl, isEditable, isEditable, isHasEditIssuePermission, isIssueExists, isIssueValid, isSubTask, isSubTaskCreatable, isWorkflowAllowsEdit, redirectToView, refreshIssueObject, setId, setIssueObject, setKey, setViewIssueKeyMethods inherited from class com.atlassian.jira.web.action.IssueActionSupport
addIssueToHistory, getAttachmentManager, getCurrentDateTimeInUsersTimezone, getCurrentFailedLoginCount, getCurrentJQL, getCustomFieldManager, getDaysPerWeek, getEverLoggedIn, getFormToken, getHoursPerDay, getIssueManager, getLastFailedLogin, getLastLogin, getLoginCount, getPossibleVersions, getPossibleVersionsReleasedFirst, getPrettyDuration, getPreviousLogin, getSearchRequest, getSelectedIssueId, getSessionPagerFilterManager, getSessionSearchRequestManager, getSessionSearchRequestManagerFactory, getSessionSelectedIssueManager, getTotalFailedLoginCount, getUrlEncoded, getWorkflow, getWorkflowTransitionDescription, getWorkflowTransitionDisplayName, isCustomFieldHidden, isElevatedSecurityCheckRequired, isFieldHidden, isFieldHidden, isTimeTrackingEnabled, setFormToken, setSearchRequest, setSelectedIssueId, updateSearchRequestMethods inherited from class com.atlassian.jira.web.action.ProjectActionSupport
getBrowsableProjects, getSelectedProjectId, setSelectedProject, setSelectedProjectMethods inherited from class com.atlassian.jira.web.action.JiraWebActionSupport
addError, addErrorCollection, addErrorMessage, addErrorMessageByKeyIfAbsent, addErrorMessageIfAbsent, addErrorMessages, addErrorMessages, addErrors, addIllegalArgumentException, addMessageToResponse, addReason, addReasons, checkIfUrlIsAllowed, execute, forceRedirect, getActionName, getActionNameJspa, getAdministratorContactLink, getApplicationProperties, getAuthorizationSupport, getComponentInstanceOfType, getConglomerateCookieValue, getConstantsManager, getDateFormat, getDateTimeFormat, getDateTimeFormatter, getDefaultResourceBundle, getDescTranslation, getDescTranslation, getDmyDateFormatter, getEmptyResponse, getErrorMessages, getErrors, getField, getFlushedErrorMessages, getGlobalPermissionManager, getHint, getHintManager, getHttpRequest, getHttpResponse, getHttpSession, getI18nHelper, getJiraContactHelper, getJiraServiceContext, getKeysForPrefix, getLanguage, getLocale, getLoggedInApplicationUser, getLoggedInUser, getNameTranslation, getNameTranslation, getOfBizDelegator, getOutboundWhitelistProvider, getOutlookDate, getPermissionManager, getProjectManager, getRandomHint, getReasons, getRedirect, getRedirect, getRedirectSanitiser, getRequestSourceType, getResourceBundle, getResult, getReturnUrl, getReturnUrlForCancelLink, getSearchSortDescriptions, getSelectedProject, getSelectedProjectObject, getServerId, getServletContext, getText, getText, getText, getText, getText, getText, getText, getText, getText, getText, getText, getText, getText, getText, getTimeFormat, getUnescapedText, getUntransformedRawText, getUriValidator, getUserFullName, getUserManager, getUserPreferences, getUserProjectHistoryManager, getVersionManager, getWebworkStack, getWebworkStack, getXsrfToken, hasAnyErrors, hasErrorMessage, hasErrorMessageByKey, hasGlobalPermission, hasGlobalPermission, hasIssuePermission, hasIssuePermission, hasIssuePermission, hasPermission, hasProjectPermission, hasProjectPermission, htmlEncode, insertContextPath, isAdministrator, isIndexing, isInlineDialogMode, isKeyDefined, isSystemAdministrator, isUserExists, isUserExistsByKey, isUserExistsByName, removeKeyOrAddError, returnComplete, returnComplete, returnCompleteWithInlineRedirect, returnCompleteWithInlineRedirectAndMsg, returnCompleteWithInlineRedirectAndMsg, returnMsgToUser, returnMsgToUser, setConglomerateCookieValue, setInline, setReasons, setReturnUrl, setSelectedProjectId, tagMauEventWithApplication, tagMauEventWithProject, urlEncodeMethods inherited from class webwork.action.ActionSupport
addError, doExecute, getCommandName, getHasErrorMessages, getHasErrors, getPropertyEditorMessage, getTexts, getTexts, getTimezone, invalidInput, invokeCommand, isCommand, setCommand, setErrorMessages, setErrors, validateMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface webwork.action.CommandDriven
getCommandName, setCommandMethods inherited from interface com.atlassian.jira.util.ErrorCollection
addError, setErrorMessagesMethods inherited from interface com.atlassian.jira.web.action.issue.IssueSummaryAware
getLoggedInApplicationUserMethods inherited from interface com.atlassian.jira.issue.customfields.OperationContext
getFieldValuesHolder, getIssueOperation
-
Field Details
-
validationResult
-
remoteIssueLinkService
-
eventPublisher
protected final com.atlassian.event.api.EventPublisher eventPublisher -
issueLinkManager
-
-
Constructor Details
-
AbstractIssueLinkAction
public AbstractIssueLinkAction(SubTaskManager subTaskManager, FieldScreenRendererFactory fieldScreenRendererFactory, FieldManager fieldManager, ProjectRoleManager projectRoleManager, CommentService commentService, UserUtil userUtil, RemoteIssueLinkService remoteIssueLinkService, com.atlassian.event.api.EventPublisher eventPublisher, IssueEventManager issueEventManager, IssueEventBundleFactory issueEventBundleFactory, IssueLinkManager issueLinkManager)
-
-
Method Details
-
doValidation
protected void doValidation()Validate that the linking is enabled in system settings, user has permission to link issues, and that the comment field is valid. Override this method to perform validation specific to the concrete action. It is recommended that this method be invoked by any overriding methods.- Overrides:
doValidationin classAbstractCommentableIssue
-
doDefault
The "default" command. Checks that the current issue exists and that the user has permission to view it.- Overrides:
doDefaultin classAbstractCommentableIssue- Returns:
- INPUT if success, ERROR if otherwise
- Throws:
Exception
-
createLink
Creates the link and publishes an event for the creation- Returns:
- create result
-
createLink
public RemoteIssueLinkService.RemoteIssueLinkResult createLink(RemoteIssueLinkService.CreateValidationResult validationResult) Creates the link and publishes an event for the creation- Parameters:
validationResult- the CreateValidationResult to be used to create the link- Returns:
- create result
-
isValidToView
public boolean isValidToView()Returns true if the contents of the action should be shown, false if otherwise.- Returns:
- true if the contents of the action should be shown, false if otherwise
-
createAndDispatchComment
Create a comment and dispatch event -
getRedirectUrl
Returns the URL to redirect to after successfully creating the issue link.- Returns:
- the URL to redirect to after successfully creating the issue link
-
handleCredentialsRequired
protected void handleCredentialsRequired() -
dispatchCommentEvents
-
isRequiresCredentials
public boolean isRequiresCredentials() -
getDisplayParams
- Overrides:
getDisplayParamsin classAbstractCommentableIssue
-
getCommentSectionHtml
-
getModifierKey
-
getKeyboardShortcutContext
-