Class MoveIssueUpdateFields

All Implemented Interfaces:
OperationContext, ErrorCollection, I18nHelper, Assignable, IssueSummaryAware, HttpServletVariables, AuthorizationSupport, Serializable, webwork.action.Action, webwork.action.CommandDriven, webwork.action.IllegalArgumentAware
Direct Known Subclasses:
MoveIssueConfirm

public class MoveIssueUpdateFields extends MoveIssue implements OperationContext
See Also:
  • Constructor Details

  • Method Details

    • doDefault

      public String doDefault()
      Description copied from class: MoveIssue
      Handles the initial request to move an issue. It returns the view responsible for rendering the first step of the wizard, if the user is authorised to perform the move and if the issue exists.
      Overrides:
      doDefault in class MoveIssue
      Returns:
      "securitybreach" if the user is not authorised to move the issue; Action.ERROR if the issue can't be found (which means it was probably deleted), or if the user isn't authorised to browse the issue; otherwise, Action.INPUT} is returned to render the view for the first step of the wizard.
    • getMoveFieldLayoutItems

      public Collection getMoveFieldLayoutItems()
    • getTargetIssueObject

      protected MutableIssue getTargetIssueObject()
      Retrieves the issue from the IssueManager and updates the Project and IssueType, and possibly clears the security.

      JRA-11605 - we need this method so that the display can prompt the user with values from system fields that are unencumbered by security level permission checks. It will set security level to null if the issue is moving somewhere that the old security level is no relevant.

      Returns:
      Target Issue Object with required Project and Issue Type added in.
      See Also:
    • getTargetIssueObjectWithSecurityLevel

      protected MutableIssue getTargetIssueObjectWithSecurityLevel()
      Retrieves the issue from the IssueManager and updates the Project and IssueType. The security level setting is left in place - see getTargetIssueObject() for an alternative method.
      Returns:
      Issue Object with required Project and Issue Type added in.
      See Also:
    • getTargetFieldLayout

      protected FieldLayout getTargetFieldLayout()
    • getFieldHtml

      public String getFieldHtml(FieldLayoutItem fieldLayoutItem)
    • getFieldName

      public String getFieldName(Field field)
    • doValidation

      protected void doValidation()
      Overrides:
      doValidation in class MoveIssue
    • popluateDefault

      protected void popluateDefault(OrderableField orderableField)
    • populateFromParams

      protected void populateFromParams(OrderableField orderableField)
    • doExecute

      protected String doExecute() throws Exception
      Description copied from class: MoveIssue
      Handles the request to submit the input from the first step of the wizard, the submitted information is the target project and the target issue type.

      If the issue has sub-tasks it redirects to MoveIssueSubtasks.doDefault() so that the tasks issue types can be mapped; otherwise, it redirects to MoveIssueUpdateWorkflow.doDefault()
      Overrides:
      doExecute in class MoveIssue
      Returns:
      It actually doesn't return anything. If the issue has sub-tasks it redirects to MoveIssueSubtasks.doDefault() so that the tasks issue types can be mapped; otherwise, it redirects to MoveIssueUpdateWorkflow.doDefault()
      Throws:
      Exception
    • isShouldCheckFieldValue

      protected boolean isShouldCheckFieldValue(Issue origIssue, Field field)
      JRA-12671 - need to determine if we should call hasValue on the field. For calculated custom fields, that are not in scope this isn't the case. This should prevent us from calling hasValue on calculated custom fields.

      protected to make it testable.

      Parameters:
      origIssue - The original issue in which we'll check the context
      field - The field in question.
      Returns:
      true, if the field is not a custom value, or it is in scope in the original issue.
    • getTargetHiddenFields

      protected Collection getTargetHiddenFields()
    • getCustomFieldValuesHolder

      public Map getCustomFieldValuesHolder()
    • getCurrentCustomFieldObjects

      protected Collection<CustomField> getCurrentCustomFieldObjects(String issueTypeId)
      Retrieve a collection of custom field objects associated with the specified issue type.
      Parameters:
      issueTypeId - the id of the issue type.
      Returns:
      A collection of custom field objects associated with the specified issue type.
    • getTargetCustomFieldObjects

      protected Collection<CustomField> getTargetCustomFieldObjects(String targetIssueTypeId)
      Returns a collection of target custom field objects.
      Parameters:
      targetIssueTypeId - the id of the target issue type.
      Returns:
      a collection of target custom field objects.
    • getTargetCustomFields

      public Collection getTargetCustomFields()
      Retrieve the custom fields that are applicable in the target destination.
      Returns:
      A collection of the custom fields that are applicable in the target destination.
    • getCustomFieldContextHelpUrl

      public String getCustomFieldContextHelpUrl()
    • isUserAdmin

      public boolean isUserAdmin()