/** * compute the "currentValue" to be passed to applyOperation() * @param issueCtx */ protected Map<String, Option> getInitialCreateValue(IssueContext issueCtx) { FieldConfig config = field.getRelevantConfig(issueCtx); return (Map<String, Option>) field.getCustomFieldType().getDefaultValue(config); }
public JsonData getJsonDefaultValue(IssueContext issueCtx, CustomField field) { FieldConfig config = field.getRelevantConfig(issueCtx); Collection<Group> groups = getDefaultValue(config); return groupsToJsonData(groups); }
/** * Gets hold of the Field Config for the given CustomField when used with the given Issue Type. * This value is cached to minimise DB IO. * * @param customField The Custom Field. * @param newIssueTypeId The Issue Type. * @return The Custom Field Config for the given CustomField when used with the given Issue Type. */ FieldConfig getCustomFieldConfig(final CustomField customField, final String newIssueTypeId) { final CustomFieldConfigMapKey key = new CustomFieldConfigMapKey(customField.getId(), newIssueTypeId); FieldConfig fieldConfig = (FieldConfig) customFieldConfigMap.get(key); if (fieldConfig == null) { fieldConfig = customField.getRelevantConfig(new IssueContextImpl(newProjectId, newIssueTypeId)); customFieldConfigMap.put(key, fieldConfig); } return fieldConfig; }
@Override public JsonData getJsonDefaultValue(IssueContext issueCtx, CustomField field) { FieldConfig config = field.getRelevantConfig(issueCtx); Object defaultValue = field.getCustomFieldType().getDefaultValue(config); return defaultValue == null ? null : new JsonData(defaultValue); } }
public JsonData getJsonDefaultValue(IssueContext issueCtx, CustomField field) { FieldConfig config = field.getRelevantConfig(issueCtx); Object defaultValue = field.getCustomFieldType().getDefaultValue(config); return defaultValue == null ? null : new JsonData(defaultValue); }
@Nullable private Option getOption(final String value, final Long parentId, final CustomField customField, final Project project, final IssueType issueType) { final FieldConfig fieldConfig = customField.getRelevantConfig(new IssueContextImpl(project.getId(), issueType.getId())); final Options options = customField.getOptions("notUsed", fieldConfig, null); return options.getOptionForValue(value, parentId); }
public JsonData getJsonDefaultValue(IssueContext issueCtx, CustomField field) { FieldConfig config = field.getRelevantConfig(issueCtx); return new JsonData(userBeanFactory.createBeanCollection(getDefaultValue(config), authenticationContext.getUser())); } }
@Override public JsonData getJsonDefaultValue(IssueContext issueCtx, CustomField field) { FieldConfig config = field.getRelevantConfig(issueCtx); Collection<Option> defaultValue = (Collection<Option>) field.getCustomFieldType().getDefaultValue(config); return defaultValue == null ? null : new JsonData(CustomFieldOptionJsonBean.shortBeans(defaultValue, jiraBaseUrls)); }
@Override public JsonData getJsonDefaultValue(IssueContext issueCtx, CustomField field) { FieldConfig config = field.getRelevantConfig(issueCtx); Option defaultValue = (Option) field.getCustomFieldType().getDefaultValue(config); return defaultValue == null ? null : new JsonData(CustomFieldOptionJsonBean.shortBean(defaultValue, jiraBaseUrls)); } }
@Nonnull @Override public Map<String, Object> getVelocityParameters(final Issue issue, final CustomField field, final FieldLayoutItem fieldLayoutItem) { final Map<String, Object> velocityParameters = super.getVelocityParameters(issue, field, fieldLayoutItem); if (issue != null) { // JRA-15007: released versions must always be reversed (descending order) final Collection releasedversion = versionManager.getVersionsReleasedDesc(issue.getProjectId(), false); final Collection unreleasedversion = versionManager.getVersionsUnreleased(issue.getProjectId(), false); final Collection currentlySelectedArchivedVersions = getCurrentlySelectedArchivedVersions(issue, field); velocityParameters.put("unknownVersionId", -1L); velocityParameters.put("releasedVersion", releasedversion); velocityParameters.put("unreleasedVersion", unreleasedversion); velocityParameters.put("archivedVersions", currentlySelectedArchivedVersions); velocityParameters.put("unreleasedFirst", getUnreleasedVersionFirst(field.getRelevantConfig(issue))); if (fieldLayoutItem != null) { velocityParameters.put("isFrotherControl", HackyRendererType.fromKey(fieldLayoutItem.getRendererType()) == HackyRendererType.FROTHER_CONTROL); } } velocityParameters.put("collection", new CollectionUtils()); velocityParameters.put("multiple", Boolean.valueOf(getDescriptor().getParams().get("multiple"))); return velocityParameters; }
public Collection<Issue> getAffectedIssues() { final MultipleSettableCustomFieldType customFieldType = (MultipleSettableCustomFieldType) getCustomField().getCustomFieldType(); Collection ids = customFieldType.getIssueIdsWithValue(getCustomField(), getSelectedOption()); Collection<Issue> issues = new ArrayList<Issue>(ids.size()); for (final Object id1 : ids) { Long id = (Long) id1; final Issue issue = issueManager.getIssueObject(id); final FieldConfig relevantConfigFromGv = getCustomField().getRelevantConfig(issue); if (getFieldConfig().equals(relevantConfigFromGv)) { issues.add(issue); } } return issues; }
private String getOptionIdForValue(IssueContext issueCtx, ErrorCollection errors, String value) { String optionId = null; FieldConfig config = field.getRelevantConfig(issueCtx); Collection<Option> options = optionsManager.getOptions(config); for (Option option : options) { if (option.getValue().equals(value)) { optionId = option.getOptionId().toString(); break; } } if (optionId == null) { errors.addError(field.getId(), i18nHelper.getText("rest.custom.field.option.value.invalid", value), ErrorCollection.Reason.VALIDATION_FAILED); } return optionId; }
String[] getDefaultValue(final CustomField customField, final Project project, final IssueType issueType) { //try to get from manager String[] defaultValue = defaultFieldValuesManager.getDefaultFieldValue(project.getKey(), customField.getId(), issueType.getName()); if (defaultValue != null) { return defaultValue; } //fallback to field config final FieldConfig config = customField.getRelevantConfig(new IssueContextImpl(project, issueType)); final Object contextDefaultValue = customField.getCustomFieldType().getDefaultValue(config); if (contextDefaultValue == null) { return null; } final List<Object> defaultValues; if (contextDefaultValue instanceof Iterable<?>) { defaultValues = Lists.newArrayList((Iterable<?>) contextDefaultValue); } else { defaultValues = ImmutableList.of(contextDefaultValue); } Iterable<String> serializedDefaultValues = Iterables.transform(defaultValues, new Function<Object, String>() { @Override public String apply(@Nullable Object input) { return customField.getCustomFieldType().getStringFromSingularObject(input); } }); return Iterables.toArray(serializedDefaultValues, String.class); }
@Override public FieldTypeInfo getFieldTypeInfo(FieldTypeInfoContext fieldTypeInfoContext) { // Get the allowed options FieldConfig config = ((CustomField) fieldTypeInfoContext.getOderableField()).getRelevantConfig(fieldTypeInfoContext.getIssueContext()); Options options = optionsManager.getOptions(config); Collection<CustomFieldOptionJsonBean> optionBeans = CustomFieldOptionJsonBean.shortBeans(options, jiraBaseUrls); return new FieldTypeInfo(optionBeans, null); }
@Override public FieldTypeInfo getFieldTypeInfo(FieldTypeInfoContext fieldTypeInfoContext) { // Get the allowed options FieldConfig config = ((CustomField) fieldTypeInfoContext.getOderableField()).getRelevantConfig(fieldTypeInfoContext.getIssueContext()); Options options = optionsManager.getOptions(config); Collection<CustomFieldOptionJsonBean> optionBeans = CustomFieldOptionJsonBean.shortBeans(options, jiraBaseUrls); return new FieldTypeInfo(optionBeans, null); }
@Override public FieldTypeInfo getFieldTypeInfo(FieldTypeInfoContext fieldTypeInfoContext) { // Get the allowed options FieldConfig config = ((CustomField) fieldTypeInfoContext.getOderableField()).getRelevantConfig(fieldTypeInfoContext.getIssueContext()); Options options = optionsManager.getOptions(config); Collection<CustomFieldOptionJsonBean> optionBeans = CustomFieldOptionJsonBean.shortBeans(options, jiraBaseUrls); return new FieldTypeInfo(optionBeans, null); }
private Option getOption(final String value, final CustomField customField, final Project project, final IssueType issueType) { final FieldConfig fieldConfig = customField.getRelevantConfig(new IssueContextImpl(project.getId(), issueType.getId())); final Options options = customField.getOptions("notUsed", fieldConfig, null); return options.getOptionForValue(value, null); }
private Option getOption(final String value, final CustomField customField, final Project project, final IssueType issueType) { final FieldConfig fieldConfig = customField.getRelevantConfig(new IssueContextImpl(project.getId(), issueType.getId())); final Options options = customField.getOptions("notUsed", fieldConfig, null); return options.getOptionForValue(value, null); }
@Override public JsonData getJsonDefaultValue(IssueContext issueCtx, CustomField field) { FieldConfig fieldConfig = field.getRelevantConfig(issueCtx); final Object o = genericConfigManager.retrieve(DEFAULT_VALUE_TYPE, fieldConfig.getId().toString()); if (o != null) { final CustomFieldParams params = new CustomFieldParamsImpl(fieldConfig.getCustomField(), o); Map<String, Option> options = getOptionMapFromCustomFieldParams(params); if (options == null) { return new JsonData(null); } Option parent = options.get(PARENT_KEY); Option child = options.get(CHILD_KEY); return new JsonData(CustomFieldOptionJsonBean.shortBean(parent, child, jiraBaseUrls)); } else { return null; } } }
@Override public void updateValue(CustomField customField, Issue issue, ApplicationUser user) { super.updateValue(customField, issue, user); //JRADEV-14962 Don't add defaults to user history; we don't want to clobber genuine choices with defaults. final ApplicationUser loggedInUser = authenticationContext.getUser(); final ApplicationUser defaultValue = getDefaultValue(customField.getRelevantConfig(issue)); if (user != null && !user.equals(loggedInUser) && !user.equals(defaultValue)) { userHistoryManager.addUserToHistory(UserHistoryItem.USED_USER, loggedInUser, user); } }