Skip to main content

Search

drop down dynamic dysplay based on user group

Comments

1 comment

  • ArdeviaForum

    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 name

     

    THIS 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 support

    0

Please sign in to leave a comment.