@Override public String getEditHtml( FieldLayoutItem fieldLayoutItem, OperationContext operationContext, Action action, Issue issue, Map displayParameters) { Map<String, Object> velocityParams = getVelocityParams(fieldLayoutItem, action, issue, displayParameters); populateVelocityParams( fieldLayoutItem, (operationContext != null) ? operationContext.getFieldValuesHolder() : null, velocityParams); CommentHelper.CommentHelperBuilder helperBuilder = CommentHelper.builder().issue(issue); if (operationContext != null && operationContext.getFieldValuesHolder() != null && operationContext.getFieldValuesHolder().containsKey(getId())) { Map commentParams = (Map) operationContext.getFieldValuesHolder().get(getId()); if (commentParams != null) { velocityParams.put(getId(), commentParams.get(getId())); // put the selected value into the params if it exists so we can handle errors populateParamsWithSelectedValue(commentParams, velocityParams); helperBuilder.comment((Comment) commentParams.get(PARAM_COMMENT_OBJECT)); } } return commentFieldRenderer.getFieldEditHtml(velocityParams, helperBuilder.build()); }
@Override public String getViewHtml( FieldLayoutItem fieldLayoutItem, Action action, Issue issue, Object value, Map displayParameters) { Map<String, Object> velocityParams = getVelocityParams(fieldLayoutItem, action, issue, displayParameters); // get the rendered value without specifying an issue for context IssueRenderContext context; if (issue != null) { context = issue.getIssueRenderContext(); } else { context = new IssueRenderContext(null); } String rendererType = (fieldLayoutItem != null) ? fieldLayoutItem.getRendererType() : null; Map<String, Object> valueMap = (Map<String, Object>) value; velocityParams.put( "value", rendererManager.getRenderedContent(rendererType, (String) valueMap.get(getId()), context)); if (valueMap.containsKey(PARAM_GROUP_LEVEL)) { velocityParams.put(PARAM_GROUP_LEVEL, valueMap.get(PARAM_GROUP_LEVEL)); } if (valueMap.containsKey(PARAM_ROLE_LEVEL)) { String roleId = (String) valueMap.get(PARAM_ROLE_LEVEL); // We need the display name of the role if (roleId != null) { ProjectRole projectRole = projectRoleManager.getProjectRole(new Long(roleId)); if (projectRole != null) { velocityParams.put("selectedRoleName", projectRole.getName()); } } velocityParams.put(PARAM_ROLE_LEVEL, roleId); } if (valueMap.containsKey(PARAM_COMMENT_PROPERTY)) { velocityParams.put(PARAM_COMMENT_PROPERTY, valueMap.get(PARAM_COMMENT_PROPERTY)); } return commentFieldRenderer.getFieldViewHtml( velocityParams, CommentHelper.builder().issue(issue).build()); }