Hello,
I'm trying to retrieve the full name of some users from their username. I think the UserUtil interface can do that but I couldn't find how to make it works in my vm file.
My velocity template:
#set($name = $userutil.getUserByName("bla").getDisplayName())
...
$nameProblem: "$name" is displayed but not replaced by the full name.
My atlassian-plugin.xml:
<component-import key="userutil"
interface="com.atlassian.jira.user.util.UserUtil" />JIRA version: v6.3.3
Thanks for your time and your help.
using $userutil assumes that you've got getUserUtil in your webwork action which renders the velocity template.
So you can either expose UserUtil through a getter in the java code or create a method that calls UserUtil and returns the display name:
something like getDisplayName(String user) { return UserUtil.getUserByName(user).getDisplayName()}
and then call it in velocity:
$displayName("bla")
Thanks for your answer,
I didn't do exactly what you wrote but that helped me to understand the existing code I'm working on. I add the method getDisplayName to the utilities class and then, I put an instance of this class in the context map so that I can use it in the velocity template.
Here's my code for people having the same issue:
Utility class:
import com.atlassian.jira.user.UserUtils;
...
public String getDisplayName(String username) {
return UserUtils.getUser(username).getDisplayName();
}
...Java class of the plugin:
Utilities utils = new Utilities();
...
contextMap.add("utils", utils);Velocity template:
$utils.getDisplayName("some username")Now, it works!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.