@Override public Long apply(final ActionDescriptor actionDescriptor) { return (long) actionDescriptor.getId(); } });
public void visit(final JiraWorkflow workflow, final ActionDescriptor actionDescriptor, final Set<JiraWorkflow> workflowsToSave) { final String c = (String) actionDescriptor.getMetaAttributes().get( WorkflowHandler.COMMIT_COMMAND_MAPPING); if (c != null && lowerCaseCommand.equals(c.toLowerCase())) { transitions.add(new WorkflowTransition(workflow.getName(), workflow.isDraftWorkflow(), actionDescriptor.getId(), actionDescriptor.getName(), workflow.isSystemWorkflow())); } } });
public boolean isTransitionWithoutStepChange(ActionDescriptor transition) { return transition.getUnconditionalResult().getStep() == JiraWorkflow.ACTION_ORIGIN_STEP_ID; }
private RestrictionDescriptor getOrCreateRestriction(ActionDescriptor transition) { RestrictionDescriptor restriction = transition.getRestriction(); if (restriction == null) { restriction = new RestrictionDescriptor(); transition.setRestriction(restriction); } return restriction; }
@Override public Set<String> getClassnamesForScreenFromAction(ActionDescriptor action) { Set<String> classNames = new HashSet<String>(); if(FIELDSCREEN_VIEW.equals(action.getView()) && action.getMetaAttributes().containsKey(WorkflowScreensHelper.FIELDSCREEN_ID_NAME)) { String screenId = (String) action.getMetaAttributes().get(FIELDSCREEN_ID_NAME); classNames.addAll(getClassnamesForScreen(screenId)); } return classNames; }
/** * Sets the view and screen for the given action. * * @param actionDescriptor Action who's screen to set. * @param screen Screen to be set for the action. Null indicates no screen. */ @SuppressWarnings("unchecked") public static void setActionScreen(@Nonnull ActionDescriptor actionDescriptor, @Nullable FieldScreen screen) { if (screen == null) { actionDescriptor.setView(null); actionDescriptor.getMetaAttributes().put(ACTION_SCREEN_ATTRIBUTE, null); } else { actionDescriptor.setView(VIEW_SCREEN); actionDescriptor.getMetaAttributes().put(ACTION_SCREEN_ATTRIBUTE, screen.getId().toString()); } } }
public void visit(final JiraWorkflow workflow, final ActionDescriptor actionDescriptor, final Set<JiraWorkflow> workflowsToSave) { transitions.add(new WorkflowTransition(workflow.getName(), workflow.isDraftWorkflow(), actionDescriptor.getId(), actionDescriptor.getName(), workflow.isSystemWorkflow())); } });
public String getTransitionName() { return transition.getName(); }
public String doDefault() throws Exception { setTransitionName(action.getName()); setDescription((String) action.getMetaAttributes().get(JiraWorkflow.WORKFLOW_DESCRIPTION_ATTRIBUTE)); setDestinationStep(action.getUnconditionalResult().getStep()); FieldScreen fieldScreen = workflowActionsBean.getFieldScreenForView(action); setView(fieldScreen != null ? fieldScreen.getId().toString() : ""); return super.doDefault(); }
public FieldScreen getFieldScreenForView(ActionDescriptor actionDescriptor) String view = actionDescriptor.getView(); if (TextUtils.stringSet(view)) if (actionDescriptor.getMetaAttributes().containsKey(ACTION_SCREEN_ATTRIBUTE)) fieldScreenId = new Long((String) actionDescriptor.getMetaAttributes().get(ACTION_SCREEN_ATTRIBUTE)); ACTION_SCREEN_ATTRIBUTE + "' for workflow action '" + actionDescriptor.getId() + "'.");
final ActionDescriptor action = descriptor.getAction(actionId); final String firstStepName = (originalIssue == null) ? "" : originalIssue.getStatusObject().getName(); final String endStepName = descriptor.getStep(action.getUnconditionalResult().getStep()).getName(); final String actionName = action.getName(); final boolean notifyClients = Boolean.parseBoolean((String) args.get(HipChatPostFunctionFactory.NOTIFY_CLIENTS_PARAM)); final Iterable<String> roomsToNotifyIds = Splitter.on(",")
uniqueActions.put(action.getId(), action); for(ResultDescriptor result : (List<ResultDescriptor>) action.getConditionalResults()) postFunctions.addAll(action.getUnconditionalResult().getPostFunctions()); postFunctions.addAll(action.getPostFunctions());
@Override public Map<String, String> get() { return descriptor.getMetaAttributes(); }
/** * Get the translated display name of a workflow transition. * * @param descriptor The action descriptor to get the name of * @return The name of the transition. */ public static String getWorkflowTransitionDisplayName(final ActionDescriptor descriptor) { if(descriptor == null) { return getI18nBean().getText("common.words.unknown"); } final Map<String, Object> metadata = descriptor.getMetaAttributes(); if (metadata.containsKey(JiraWorkflow.JIRA_META_ATTRIBUTE_I18N)) { final String key = (String) metadata.get(JiraWorkflow.JIRA_META_ATTRIBUTE_I18N); final String value = getI18nBean().getText(key); if ((value != null) && !"".equals(value.trim()) && !value.trim().equals(key.trim())) { return value; } } return descriptor.getName(); }
public TransitionBean build() { final Status destinationStatus = getStatusFromStep(issue, action.getUnconditionalResult().getStep()); TransitionMetaFieldBeanBuilder fieldBuilder = new TransitionMetaFieldBeanBuilder(fieldScreenRendererFactory, fieldLayoutManager, action, issue, authContext.getUser(), versionBeanFactory, velocityRequestContextFactory, contextUriInfo, baseUrls); return new TransitionBean(String.valueOf(action.getId()), WorkflowUtil.getWorkflowTransitionDisplayName(action), fieldBuilder, StatusJsonBean.bean(destinationStatus, baseUrls)); }
protected void setupWorkflowDescriptor() { List validators = getTransition().getValidators(); if (validators != null && !validators.isEmpty()) { if (validators.size() >= getIndexCount()) { ValidatorDescriptor validatorDescriptor = (ValidatorDescriptor) validators.get(getIndexCount() - 1); setWorkflowDescriptor(validatorDescriptor); } else { addErrorMessage(getText("admin.errors.count.outside.range","'" + getIndexCount() + "'")); } } else { addErrorMessage(getText("admin.errors.no.validators","'" + getTransition().getName() + "'")); } }
private Set<String> getFunctionClassnames(ActionDescriptor action) { List<FunctionDescriptor> functions = action.getUnconditionalResult().getPostFunctions(); functions.addAll(action.getPostFunctions()); Set<String> classNames = new HashSet<String>(); for (FunctionDescriptor function : functions) { Set<Map.Entry<String,String>> args = (Set<Map.Entry<String,String>>) function.getArgs().entrySet(); classNames.addAll(getClassnamesFromArgs(args)); } return classNames; }
@RequiresXsrfCheck protected String doExecute() throws Exception { // setup the transition action action.setName(getTransitionName()); action.getMetaAttributes().put(JiraWorkflow.WORKFLOW_DESCRIPTION_ATTRIBUTE, getDescription()); setActionScreen(action, stringSet(getView()) ? getFieldScreen() : null); // setup the destination step result ResultDescriptor result = action.getUnconditionalResult(); result.setStep(getDestinationStep()); workflowService.updateWorkflow(getJiraServiceContext(), getWorkflow()); return getRedirect(getCancelUrl()); }
@Override public boolean apply(final ActionDescriptor actionDescriptor) { if (actionDescriptor.getConditionalResults() != null && !actionDescriptor.getConditionalResults().isEmpty()) { return true; } ResultDescriptor unconditionalResult = actionDescriptor.getUnconditionalResult(); if (unconditionalResult != null) { if (unconditionalResult.getValidators() != null && !unconditionalResult.getValidators().isEmpty()) { return true; } if (unconditionalResult.getPreFunctions() != null && !unconditionalResult.getPreFunctions().isEmpty()) { return true; } } if (actionDescriptor.getPreFunctions() != null && !actionDescriptor.getPreFunctions().isEmpty()) { return true; } if (actionDescriptor.getPostFunctions() != null && !actionDescriptor.getPostFunctions().isEmpty()) { return true; } return false; } });
protected void setupWorkflowDescriptor() RestrictionDescriptor restriction = getTransition().getRestriction(); if (restriction != null) addErrorMessage(getText("admin.errors.workflows.no.condition.descriptor","'" + getTransition().getName() + "'")); addErrorMessage(getText("admin.errors.workflows.no.restrictions.descriptor","'" + getTransition().getName() + "'"));