For example, I have project roles: Developers, Users.I want to make my field read-only except on step "In Progress" for Developers, and except on step "Open" for Users.As a result: ("In Progress" AND Developers) OR ("Open" AND Users).Help, please
you can do it by using javascript? let me know if you want do it using JS so i can help you!!
I'm not sure that it will work excellent. But I'm ready to try.How can I get projectrole and step using javascript?..
small clarification!
do you want field read only on transition screen or view screen?
the following script will run on edit screen
<script type="text/javascript"> jQuery(document).ready(function($) { JIRA.bind(JIRA.Events.NEW_CONTENT_ADDED, function (e,context) { makeReadonly(); }); makeReadonly(); function makeReadonly(){ var editFunction=$('#edit-issue-submit').val(); if(editFunction === 'Update'){ var user=getCurrentUserName(); var statusText=$('#status-val').text(); var status=$.trim(statusText); var devlopersRoleID='10010';//changr the project role id here var usersRoleID='10011';//changr the project role id here $("#customfield_10571").attr("readonly", ''); $("#customfield_10572").attr("readonly", ''); if(isUserInGroup(user,devlopersRoleID) && status=='In Progress'){ //to make text field read only $("#customfield_10571").attr("readonly", true); }else if(isUserInGroup(user,usersRoleID) && status=='Open'){ //to make text field read only $("#customfield_10572").attr("readonly", true); } } } function getCurrentUserName() { var user; AJS.$.ajax({ url: "/rest/gadget/1.0/currentUser", type: 'get', dataType: 'json', async: false, success: function(data) { user = data.username; } }); return user; } function getUsers(roleID) { var users; AJS.$.ajax({ url: "/rest/api/2/project/TEST/role/"+roleID,//change project Key here(need to replace TEST with your project key) type: 'get', dataType: 'json', async: false, success: function(data) { users = data.actors.name; } }); return users; } function isUserInGroup(user, roleID){ var users = getUsers(roleID); for (i = 0; i < users.length; i++){ if (users[i].name == user){ return true; } } return false; } }); </script>
wow, it looks nice!
And how can I get system fields? Duedate, assignee..
try with following code
//for dute field $("#duedate").attr("readonly", true); //to hide date picker icon $("#duedate-trigger").hide(); /to show date picker icon $("#duedate-trigger").show(); try with this for assignee field $("#assignee-field").attr("readonly", true);
I guess function isUserInGroup(user, roleID) doesn't work.
Without this function all is ok..
Jira on demand?
the behavior plug-in may offer that, but I don't know if you can have it installed.
Rambanam Prasad
I am trying to make a text field read only on edit screen, but looks like the code is not working. can you please help with this -
jQuery(document).ready(function($) { JIRA.bind(JIRA.Events.NEW_CONTENT_ADDED, function(e,context) {var projectName = AJS.$("#project-name-val").text();console.log("RFC projectName "+projectName);if (projectName == "RFC") {callReadonlyFunction(); } }});function callReadonlyFunction(){$('#edit-issue').click(function() { console.log("Edit Button Clicked Start"); AJS.$("#customfield_13911").attr("readonly", true); //text field console.log("Edit Button Clicked End"); });}
In the console log, I do see messages but for some reason, the field is not becoming read-only.
It looks like you're new here. Sign in or register to get started.