drop down dynamic dysplay based on user group
Original Post by Fred (Imported from Ardevia Forum)
Hi,
I have a drop down list and I would like to display it's content dynamically based on the user group.
drop down value:
1 - value1
2 - value2
User group A should only see "1 - value1" and user group B should only se "2".
Does anyone have an expression for that?
thanks!
-
Original Post by Andrii Berezovskyi (Imported from Ardevia Forum)
Hello Fred
I prepared script for this task for you.
Imagine that we have dropdown list with name DROP_DOWN_MENU . This dropdown has few options:
option1,option2,option3.And we have two users. First user belong to GROUP_A second to to GROUP_B appropriately.User from GROUP_A should only see option1,option2, user from GROUP_B should only see option2,option3.1.First of all you must create Form Load Action (Behaviour tab)
2.In Form Load Action click on edit -> Add action -> set preferred action Title -> select Type=Execute Script -> insert in text area code below: (save this action and form after that)var firstGroup = "GROUP_A"; var valuesThatUserFromGroup_A_canSee = ["option1","option2"]; var secondGroup = "GROUP_B"; var valuesThatUserFromGroup_B_canSee = ["option2","option3"]; var dropdownName = "DROP_DOWN_MENU "; if( [[@User.IsMemberOfGroup(firstGroup)]] ){ setDropDownValue( dropdownName , valuesThatUserFromGroup_A_canSee ); } if( [[@User.IsMemberOfGroup(secondGroup)]] ){ setDropDownValue( dropdownName , valuesThatUserFromGroup_B_canSee ); } function setDropDownValue(dropdownName, dropdownOptions){ var _select = jQuery("span[fieldname="+dropdownName+"]").find("select[id$='DropDownChoice']"); _select.empty(); var options = ''; dropdownOptions.forEach(function(item, i, arr) { options+= ""+item+"" ; }); _select.html(options); }3.After that configure that code according to your dropdown and group names:
var firstGroup = "GROUP_A"; // Your first group name
var valuesThatUserFromGroup_A_canSee = ["option1","option2"]; // Options wich users from group A can see in dropdown list. You can set your own options ["myOption1","myOption2"]
...
var dropdownName = "DROP_DOWN_MENU "; // Your dropdown list nameTHIS CODE WILL WORKS ONLY IF YOU HAVE TWO GROUPS
If you want handle more than two group you must extend this code.Thank you.
Ardevia support0
Please sign in to leave a comment.
Comments
1 comment