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.MessageType
Nested classes/interfaces inherited from interface com.atlassian.jira.util.ErrorCollection
ErrorCollection.Reason
Nested classes/interfaces inherited from interface com.atlassian.jira.util.I18nHelper
I18nHelper.BeanFactory
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final com.atlassian.event.api.EventPublisher
protected final RemoteIssueLinkService
Fields inherited from class com.atlassian.jira.web.action.issue.AbstractCommentableIssue
userUtil
Fields inherited from class com.atlassian.jira.web.action.issue.AbstractIssueSelectAction
id, ISSUE_PERMISSION_ERROR, PREPOPULATED_ISSUE_OBJECT
Fields inherited from class com.atlassian.jira.web.action.IssueActionSupport
attachmentManager
Fields inherited from class com.atlassian.jira.web.action.ProjectActionSupport
projectManager
Fields inherited from class com.atlassian.jira.web.action.JiraWebActionSupport
ISSUE_NOT_FOUND_RESULT, log, PERMISSION_VIOLATION_RESULT, request, RETURN_URL_PARAMETER, savedFilters, SECURITY_BREACH_RESULT
Fields inherited from class webwork.action.ActionSupport
command, errorMap, errorMessages
Fields 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) -
Method Summary
Modifier and TypeMethodDescriptionprotected Comment
Create 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 void
dispatchCommentEvents
(Issue issue, Comment comment) The "default" command.protected void
Validate that the user has permission to link issues, and that the comment field is valid.static String
protected String
Returns the URL to redirect to after successfully creating the issue link.protected void
boolean
boolean
Returns 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, setGroupLevel
Methods inherited from class com.atlassian.jira.web.action.issue.AbstractViewIssue
getAttachments, getPossibleComponents, getPossibleVersions, getPossibleVersionsReleasedFirst
Methods 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, setViewIssueKey
Methods 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, updateSearchRequest
Methods inherited from class com.atlassian.jira.web.action.ProjectActionSupport
getBrowsableProjects, getSelectedProjectId, setSelectedProject, setSelectedProject
Methods 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, 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, urlEncode
Methods inherited from class webwork.action.ActionSupport
addError, doExecute, getCommandName, getHasErrorMessages, getHasErrors, getPropertyEditorMessage, getTexts, getTexts, getTimezone, invalidInput, invokeCommand, isCommand, setCommand, setErrorMessages, setErrors, validate
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface webwork.action.CommandDriven
getCommandName, setCommand
Methods inherited from interface com.atlassian.jira.util.ErrorCollection
addError, setErrorMessages
Methods inherited from interface com.atlassian.jira.web.action.issue.IssueSummaryAware
getLoggedInApplicationUser
Methods inherited from interface com.atlassian.jira.issue.customfields.OperationContext
getFieldValuesHolder, getIssueOperation
-
Field Details
-
validationResult
-
remoteIssueLinkService
-
eventPublisher
protected final com.atlassian.event.api.EventPublisher eventPublisher
-
-
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)
-
-
Method Details
-
doValidation
protected void doValidation()Validate that the 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:
doValidation
in classAbstractCommentableIssue
-
doDefault
The "default" command. Checks that the current issue exists and that the user has permission to view it.- Overrides:
doDefault
in 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:
getDisplayParams
in classAbstractCommentableIssue
-
getCommentSectionHtml
-
getModifierKey
-
getKeyboardShortcutContext
-