Advertisement
Guest User

Untitled

a guest
Aug 5th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  * common constants for Admin tab
  3.  */
  4. var ALL_USERS = "/admin/users/allappusers/";
  5. var ALL_GROUPS = "/admin/groups/allappgroups/";
  6. var ALL_GA_GROUPS = "/admin/groups/allgaappgroups/";
  7. var CREATE_GROUP = "/admin/groups/group/";
  8. var CREATE_USER = "/admin/users/user";
  9. var CREATE_ROLE = "/admin/roles/role/";
  10. var UPDATE_APP_USER = "/admin/users/appuser";
  11. var DELETE_USERS = "/admin/users/user/";
  12. var UPDATE_GROUP = "/admin/groups/group";
  13. var DELETE_GROUP = "/admin/groups/group/";
  14. var ALL_ROLES = "/admin/roles/allapproles/";
  15. var UPDATE_ROLE = "/admin/roles/role/";
  16. var DELETE_ROLE = "/admin/roles/role/";
  17. var CREATE_COMPONENT = "/admin/components/component";
  18. var ALL_COMPONENT = "/admin/components/allappcomponents";
  19. var UPDATE_COMPONENT = "/admin/components/component";
  20. var DELETE_COMPONENT = "/admin/components/components";
  21. var GET_GRP_ROLE = "/admin/groups/grouprole/";
  22. var GET_GRP_USER_FOR_GRP = "/admin/groups/groupuser/";
  23. var GET_USER_GRP_ROLE = "/admin/groups/usergrouprole/";
  24. var GET_ROLE_COMPONENT = "/admin/roles/rolecomponent/";
  25. var SAVE_RESOURCE = "/admin/components/compresources/";
  26. var SAVE_RESOURCE_JUN_USR = "/admin/components/compresourcesJunUsr/";
  27. var GET_RESOURCES = "/admin/components/resources/";
  28. var GET_MULTIPLE_RESOURCES = "/admin/components/multiroleresources/";
  29. var SAVE_GROUP_ROLE = "/admin/groups/grouprole/";
  30. var SAVE_GROUP_USER = "/admin/groups/groupuser/";
  31. var SAVE_ROLE_COMP = "/admin/roles/rolecomponent/";
  32. var SAVE_USER_GRP_ROLE = "/admin/users/usergrprole/";
  33. var SAVE_USER_ROLE = "/admin/users/userrole/";
  34. var GET_USR_GROUP = "/admin/users/groupuser/";
  35. var GET_USR_ROLES = "/admin/users/userroles/";
  36. var SAVE_USER_GROUP = "/admin/users/groupuser/";
  37. var SEARCH_USERS = "/admin/users/searchUser/";
  38. var GET_PREDEFINED_ROLES = "/admin/roles/predefinedRoles/";
  39. var ALL_USERS_FOR_ROLE = "/admin/users/allapproleusers/";
  40. var GET_USERS_ROLES = "/admin/roles/usersrole/";
  41. var GET_USERS_MULTIPLE_ROLES = "/admin/roles/usersmultipleroles/";
  42. var ALL_USERS_CREATE_OR_MANAGE_ROLE = "/admin/roles/allUsersForGrpRole/";
  43. var GET_COMP_FOR_ROLE = "/admin/components/compIDForRoleID/";
  44. var GET_JUN_USR_ROLEID = "/admin/roles/junUsrRoleId/";
  45. var changedGroupIndexRolesTab = '0';
  46. var varGrpsTabName = "Groups";
  47. var varRolesTabName = "Roles";
  48. var varComponentsTabName = "Components";
  49. var varUsersTabName = "Users";
  50. var jsonObj = [[]];
  51. var compClickedButtonId = null;
  52. var gridID = null;
  53. var gridID_SAUsersTab = null;
  54. var currGroup = {};
  55. var currRole = {};
  56. var currComponent = {};
  57. var currUser = {};
  58. var currEnv = null;
  59. var userRoleID_global = '';
  60. var auRoleID_global = '';
  61. var emptySetResources = '00000000000000000000000000000000000000000';
  62. var rmvGroupSuccessFlag = false;
  63. var rmvRoleSuccessFlag = false;
  64. var rmvUserSuccessFlag = false;
  65. var numCompSelected = 0;
  66. var usersSelectEnvSA = null;
  67. var usersSelectEnvGA = null;
  68. var usersRoleSelectEnv = null;
  69. var usersGrpRoleSelectEnv = null;
  70. var groupsSelectEnv = null;
  71. var rolesSelectEnvSA = null;
  72. var rolesSelectEnvGA = null;
  73. var createGrpSelectEnv = null;
  74. var createRoleSelectEnv = null;
  75. var addCompToGrpRoleSelectEnv = null;
  76. var custJunUsrEnvSelectEnv = null;
  77. var usersTabUserIdArrayForRole = new Array(5);
  78. var usersTabRoleIdArrayForRole = new Array(5);
  79. var usersTabUserIDArray = new Array();
  80. var usersTabRoleIDArray = new Array();
  81. var countUserRoles = 0;
  82. var countUserGrpRoles = 0;
  83. var rolesTabGroupSelectedIndexGA = 0;
  84. var rolesTabEnvSelectedIndexGA = 0;
  85. var groupsTabEnvSelectedIndexSA = 0;
  86. var groupPwdHiddenFieldVal = '';
  87.  
  88. /**
  89.  * The java script function getGroupsInfo makes an ajax call to retrieve the groups json.
  90.  */
  91. function getGroupsInfo(){
  92.     if($('statusMessage_Admin')){
  93.         if(!rmvGroupSuccessFlag){
  94.             $('statusMessage_Admin').innerHTML = '';
  95.         }
  96.         rmvGroupSuccessFlag = false;
  97.     }
  98.     var selectedEnv;
  99.     if(document.getElementById("groupsTabEnvironmentId") != null){
  100.         selectedEnv = document.getElementById("groupsTabEnvironmentId").value;
  101.         currEnv = selectedEnv;
  102.         groupsTabEnvSelectedIndexSA = document.getElementById("groupsTabEnvironmentId").selectedIndex;
  103.     }
  104.     var url = baseURL + ALL_GROUPS +selectedEnv+'?ignoreMe=' + new Date().getTime();
  105.     var reqArgs = {url: url, method: 'GET', load: displayGroupsInfo, error: displayGroupsInfo, handleAs:'json'};
  106.     new AJAX.pubGUI.sendRequest(reqArgs);
  107. }
  108.  
  109. /**
  110.  * This handles the response for displaying the groups info
  111.  * @return
  112.  */
  113. function displayGroupsInfo(responseJSON){
  114.     $('buttonsTab').innerHTML = '';
  115.     $('screenName_Admin_Groups').innerHTML = 'Groups Information';
  116.     dojo.byId('groupTabPageLinks').innerHTML =
  117.         '<a class="alwaysBlue"  href="#" onclick="javascript: createOrManageGroup(true); populateCreateOrManageGrpEnvironment(true);">Create Group</a>';
  118.     if($('statusMessage_Admin')){
  119.         if(!rmvGroupSuccessFlag){
  120.             $('statusMessage_Admin').innerHTML = '';
  121.         }
  122.         rmvGroupSuccessFlag = false;
  123.     }
  124.     hideObjects(['groupUsersInfo','groupRolesInfo','createOrManageGroup','associateGroupRoles']);
  125.     showObjects(['groupsInfoTableId','groupsInfo','groupTabPageLinks']);
  126.     if (responseJSON != null && responseJSON.ResourceResponse.Groups != undefined){
  127.         dojo.byId('groupsInfo').innerHTML = '';    
  128.         var groupsStructure = [
  129.                             { name: '', width: '20px'},                
  130.                             { field: 'groupName', name: 'Group Name', width: 'auto', formatter: showAsLink},
  131.                             { field: 'groupID', name: 'Group ID', width: 'auto', hidden:'true'},
  132.                             { field: 'groupPassword', name: 'Group Password', width: 'auto', hidden:'true'},
  133.                             { field: 'description', name: 'Description', width: 'auto', hidden:'true'}  
  134.                            ];
  135.         var groupsDataStore = responseJSON.ResourceResponse.Groups.Group;
  136.         var grid1 = PubGUIGrid('groupsInfo', 'id_94'+(new Date().getTime()), groupsStructure, groupsDataStore, 'groupsRowClickHandler');       
  137.     }
  138.     else{
  139.         $('groupsInfo').innerHTML = "<span style='color: red; font-weight: bold; font-size: 8pt;' >No Records Found</span>";
  140.     }
  141. }
  142.  
  143. function getGAGroupsInfo(){
  144.     if($('statusMessage_Admin')){
  145.         if(!rmvGroupSuccessFlag){
  146.             $('statusMessage_Admin').innerHTML = '';
  147.         }
  148.         rmvGroupSuccessFlag = false;
  149.     }
  150.     var selectedEnv;
  151.     if(document.getElementById("groupsTabEnvironmentId") != null){
  152.         selectedEnv = document.getElementById("groupsTabEnvironmentId").value;
  153.         currEnv = selectedEnv;
  154.     }
  155.     var url = baseURL + ALL_GA_GROUPS +selectedEnv+"/"+safeUser.uid+'?ignoreMe=' + new Date().getTime();
  156.     var reqArgs = {url: url, method: 'GET', load: displayGAGroupsInfo, error: displayGAGroupsInfo, handleAs:'json'};
  157.     new AJAX.pubGUI.sendRequest(reqArgs);
  158. }
  159.  
  160. /**
  161.  * This handles the response for displaying the groups info
  162.  * @return
  163.  */
  164. function displayGAGroupsInfo(responseJSON){
  165.     $('buttonsTab').innerHTML = '';
  166.     $('screenName_Admin_Groups').innerHTML = 'Groups Information';
  167.     if($('statusMessage_Admin')){
  168.         if(!rmvGroupSuccessFlag){
  169.             $('statusMessage_Admin').innerHTML = '';
  170.         }
  171.         rmvGroupSuccessFlag = false;
  172.     }
  173.     hideObjects(['groupUsersInfo','groupRolesInfo','createOrManageGroup','associateGroupRoles']);
  174.     showObjects(['groupsInfoTableId','groupsInfo','groupTabPageLinks']);
  175.     if (responseJSON != null && responseJSON.ResourceResponse.Groups.Group != undefined){  
  176.         dojo.byId('groupsInfo').innerHTML = '';    
  177.         var groupsStructure = [
  178.                             { name: '', width: '20px'},                
  179.                             { field: 'groupName', name: 'Group Name', width: 'auto', formatter: showAsLink},
  180.                             { field: 'groupID', name: 'Group ID', width: 'auto', hidden:'true'},
  181.                             { field: 'groupPassword', name: 'Group Password', width: 'auto', hidden:'true'},
  182.                             { field: 'description', name: 'Description', width: 'auto', hidden:'true'}  
  183.                            ];
  184.         var groupsDataStore = responseJSON.ResourceResponse.Groups.Group;
  185.         var grid1 = PubGUIGrid('groupsInfo','id_90'+(new Date().getTime()),groupsStructure, groupsDataStore, 'groupsRowClickHandler');     
  186.     }
  187.     else{
  188.         $('groupsInfo').innerHTML = "<span style='color: red; font-weight: bold; font-size: 8pt;' >No Records Found</span>";
  189.     }
  190. }
  191.  
  192. function getGAGroupsForRolesTab(){
  193.     if($('statusMessage_Admin')){
  194.         if(!rmvRoleSuccessFlag){
  195.             $('statusMessage_Admin').innerHTML = '';
  196.         }
  197.         rmvRoleSuccessFlag = false;
  198.     }
  199.     var selectedEnv;
  200.     if(document.getElementById("rolesTabEnvironmentIdGA") != null){
  201.         selectedEnv = document.getElementById("rolesTabEnvironmentIdGA").value;
  202.         rolesTabEnvSelectedIndexGA = document.getElementById("rolesTabEnvironmentIdGA").selectedIndex;
  203.     }
  204.     var url = baseURL + ALL_GA_GROUPS +selectedEnv+"/"+safeUser.uid+'?ignoreMe=' + new Date().getTime();
  205.     var reqArgs = {url: url, method: 'GET', load: displayGAGroupsForRoles, error: displayGAGroupsForRoles, handleAs:'json'};
  206.     new AJAX.pubGUI.sendRequest(reqArgs);
  207. }
  208.  
  209. function getGAGroupsForCreateGrpRolesTab(isNewRoleRequest){
  210.     if($('statusMessage_Admin')){
  211.         if(!rmvRoleSuccessFlag){
  212.             $('statusMessage_Admin').innerHTML = '';
  213.         }
  214.         rmvRoleSuccessFlag = false;
  215.     }
  216.     var selectedEnv;
  217.     if(isNewRoleRequest){
  218.         if(document.getElementById("rolesTabCreateRoleEnvId") != null){
  219.             selectedEnv = document.getElementById("rolesTabCreateRoleEnvId").value;
  220.         }
  221.     }
  222.     else{
  223.         if(document.getElementById("rolesTabManageRoleEnvId") != null){
  224.             selectedEnv = document.getElementById("rolesTabManageRoleEnvId").value;
  225.         }
  226.     }
  227.     var url = baseURL + ALL_GA_GROUPS +selectedEnv+"/"+safeUser.uid+'?ignoreMe=' + new Date().getTime();
  228.     var reqArgs = {url: url, method: 'GET', load: displayGAGroupsForCreateGrpRoles, error: displayGAGroupsForCreateGrpRoles, handleAs:'json'};
  229.     new AJAX.pubGUI.sendRequest(reqArgs);
  230. }
  231.  
  232. function getGAGroupsForUsersTab(){ 
  233.     if($('statusMessage_Admin')){
  234.         if(!rmvUserSuccessFlag){
  235.             $('statusMessage_Admin').innerHTML = '';
  236.         }
  237.         rmvUserSuccessFlag = false;
  238.     }
  239.     var selectedEnv;
  240.     if(document.getElementById("usersTabEnvironmentIdGA") != null){
  241.         selectedEnv = document.getElementById("usersTabEnvironmentIdGA").value;
  242.     }
  243.     var url = baseURL + ALL_GA_GROUPS +selectedEnv+"/"+safeUser.uid+'?ignoreMe=' + new Date().getTime();
  244.     var reqArgs = {url: url, method: 'GET', load: displayGAGroupsForUsers, error: displayGAGroupsForUsers, handleAs:'json'};
  245.     new AJAX.pubGUI.sendRequest(reqArgs);
  246. }
  247.  
  248. function getGAGroupsForUsersTabGrpRole(){
  249.     if($('statusMessage_Admin')){
  250.         if(!rmvUserSuccessFlag){
  251.             $('statusMessage_Admin').innerHTML = '';
  252.         }
  253.         rmvUserSuccessFlag = false;
  254.     }
  255.     var selectedEnv;
  256.     if(document.getElementById("usersTabUserGrpRolesEnvironmentId") != null){
  257.         selectedEnv = document.getElementById("usersTabUserGrpRolesEnvironmentId").value;
  258.     }
  259.     var url = baseURL + ALL_GA_GROUPS +selectedEnv+"/"+safeUser.uid+'?ignoreMe=' + new Date().getTime();
  260.     var reqArgs = {url: url, method: 'GET', load: displayGAGroupsForUsersGrpRole, error: displayGAGroupsForUsersGrpRole, handleAs:'json'};
  261.     new AJAX.pubGUI.sendRequest(reqArgs);
  262. }
  263.  
  264. function showAsLink(val){
  265.     if(val){
  266.         var a = dojo.create('a');
  267.         a.href = 'javascript: function(){return false;}';  
  268.         a.className = 'alwaysBlue';
  269.         a.innerHTML = val;
  270.         return a.outerHTML;
  271.     }
  272.     else{
  273.         return " ";
  274.     }
  275. }
  276.  
  277. function showAsBtn(val, index){
  278.     return new dijit.form.Button({label: "Reset"});
  279. }
  280.  
  281. function groupsRowClickHandler(evt){
  282.     var grid = evt.grid;
  283.     grid.selection.setSelected(evt.rowIndex, false);
  284.     if(evt.cellIndex == 1){      
  285.         if(evt.target == evt.cellNode){ // so as to accept the event only when clicked on the text
  286.            return false;
  287.         }        
  288.         var rowData = grid.getItem(evt.rowIndex);        
  289.         currGroup = rowData; // setting the group info to global variable(currGroup).
  290.         populateCreateOrManageGrpEnvironment(false);
  291.         createOrManageGroup(false);
  292.     }
  293.     return true;
  294. }
  295.  
  296. function createOrManageGroup(isNewGroupRequest){
  297.       currGroup = (isNewGroupRequest == true) ? {groupID:'', groupName:'', groupPassword:'', description:''}:currGroup;
  298.       if(isNewGroupRequest == true){
  299.           groupsTabEnvSelectedIndexSA = 0;
  300.       }
  301.       dojo.byId('groupNameObj').value = currGroup.groupName;
  302.       dojo.byId('groupCurPwdHiddenObj').value = currGroup.groupPassword;
  303.       groupPwdHiddenFieldVal = currGroup.groupPassword;
  304.       dojo.byId('groupPwdObj').value = '';
  305.       dojo.byId('groupPwdConfirmObj').value = '';
  306.       dojo.byId('groupCurPwdObj').value = '';
  307.       dojo.byId('groupDescriptionObj').value = (currGroup.description == undefined)?"":currGroup.description;
  308.       hideObjects(['groupsInfoTableId','groupUsersInfo','groupRolesInfo','createOrManageGroup','associateGroupRoles']);
  309.       showObjects(['createOrManageGroup']);
  310.       if($('statusMessage_Admin')){
  311.             $('statusMessage_Admin').innerHTML = '';
  312.       }
  313.       var btns = [];
  314.       dojo.byId('buttonsTab').innerHTML = '';  
  315.       if(currGroup.groupName != ''){
  316.           if(usersRoleName == PREDEFINED_ROLE_SA){
  317.               showCurrGrpPasswdRow(true);
  318.               btns = [{dojoType: dijit.form.Button, label:'Update', region:'center',onClick: updateGroup},
  319.                           {dojoType: dijit.form.Button, label:'Delete', region:'center',onClick: deleteGroup},
  320.                           {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: getGroupsInfo}];
  321.           }
  322.           else if(usersRoleName == PREDEFINED_ROLE_GA){
  323.               showCurrGrpPasswdRow(true);
  324.               btns = [{dojoType: dijit.form.Button, label:'Update', region:'center',onClick: updateGroup},
  325.                       {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: getGAGroupsInfo}];
  326.           }
  327.           $('screenName_Admin_Groups').innerHTML = 'Manage Group : '+currGroup.groupName;
  328.           if(dojo.byId('groups_create_env_dropdown') != null){
  329.               hideObjects(['groups_create_env_dropdown']);
  330.           }
  331.           if(dojo.byId('manage_groups_env_dropdown') != null){
  332.               showObjects(['manage_groups_env_dropdown']);
  333.               dojo.byId('manage_groups_env_dropdown').disabled = true;
  334.           }
  335.           dojo.byId('groupTabPageLinks').innerHTML = '';
  336.       }
  337.       else{
  338.          
  339.           showCurrGrpPasswdRow(false);
  340.           if(usersRoleName == PREDEFINED_ROLE_SA){
  341.               btns = [{dojoType: dijit.form.Button, label:'Create', region:'center',onClick: createGroup},
  342.                     {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: getGroupsInfo}];
  343.           }
  344.           else if(usersRoleName == PREDEFINED_ROLE_GA){
  345.               btns = [{dojoType: dijit.form.Button, label:'Create', region:'center',onClick: createGroup},
  346.                     {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: getGAGroupsInfo}];
  347.           }
  348.           $('screenName_Admin_Groups').innerHTML = 'Create Group';
  349.           if(dojo.byId('manage_groups_env_dropdown') != null){
  350.               hideObjects(['manage_groups_env_dropdown']);
  351.           }
  352.           if(dojo.byId('groups_create_env_dropdown') != null){
  353.               showObjects(['groups_create_env_dropdown']);
  354.           }
  355.           dojo.byId('groupTabPageLinks').innerHTML = '';
  356.       }
  357.       for(i=0; i<btns.length; i++){
  358.           var btn = new dijit.form.Button(btns[i]);
  359.           dojo.byId('buttonsTab').appendChild(btn.domNode);
  360.       }
  361. }
  362.  
  363. function showCurrGrpPasswdRow ( showRow ){
  364.     var tableRow = document.getElementById('currGrpPasswdRowId');
  365.     if ( showRow ){
  366.         tableRow.style.display = 'block';
  367.     }
  368.     else{
  369.         tableRow.style.display = 'none';
  370.     }
  371. }
  372.  
  373. /**
  374.  *
  375.  * This method is used to remove a group
  376.  * @return
  377.  */
  378. function deleteGroup(){
  379.     if(validateGroup()){
  380.         if(confirm('Are you sure you want to delete the group '+$F('groupNameObj') +'?')){
  381.             var url = baseURL +DELETE_GROUP +currGroup.groupID +"?ignoreMe=" + new Date().getTime();
  382.             var reqArgs = {url: url, method: 'DELETE', load: displayStatusRmvGrp, error: displayError, handleAs:'json'};
  383.             new AJAX.pubGUI.sendRequest(reqArgs);
  384.         }
  385.     }
  386. }
  387.  
  388. /**
  389.  *
  390.  * This method is used to update a group information.
  391.  * @return
  392.  */
  393. function updateGroup(){
  394.     if(validateGroup()){
  395.         var url = baseURL + UPDATE_GROUP +"?ignoreMe=" + new Date().getTime();
  396.         var json = "{\"@class\":\"Group\",\"groupID\":\""+currGroup.groupID+"\",\"groupName\":\""+$F('groupNameObj')+"\",\"groupPassword\":\""+$F('groupCurPwdObj')+"\", \"description\":\""+$F('groupDescriptionObj')+"\", \"newGroupPassword\":\""+$F('groupPwdObj')+"\"}";
  397.         json = prepareResourceRequest(json);
  398.         var reqArgs = {url: url, method: 'POST', postData:json, load: displayStatusUpdateGrp, error: displayError, handleAs:'json'};
  399.         new AJAX.pubGUI.sendRequest(reqArgs);
  400.     }
  401. }
  402.  
  403. /**
  404.  *
  405.  * This method is used to create a new group.
  406.  * @return
  407.  */
  408. function createGroup(){
  409.     if(validateGroup()){
  410.         var selectedEnv = null;
  411.         if(document.getElementById("grpsTabCreateGrpEnvId") != null){
  412.             selectedEnv = document.getElementById("grpsTabCreateGrpEnvId").value;
  413.         }
  414.         var url = baseURL + CREATE_GROUP +selectedEnv +"?ignoreMe=" + new Date().getTime();
  415.         var json = "{\"@class\":\"Group\", \"groupName\":\""+$F('groupNameObj')+"\",\"groupPassword\":\""+$F('groupPwdObj')+"\", \"description\":\""+$F('groupDescriptionObj')+"\"}";
  416.         json = prepareResourceRequest(json);
  417.         var reqArgs = {url: url, method: 'PUT', putData:json, load: displayStatus, error: displayError, handleAs:'json'};
  418.         new AJAX.pubGUI.sendRequest(reqArgs);
  419.     }
  420. }
  421.  
  422. /**
  423.  * This method is used to dispaly the status info after creating or managing a group
  424.  * @return
  425.  */
  426. function displayStatus(responseJSON){
  427.     if(responseJSON.ResourceResponse != null){
  428.         $('statusMessage_Admin').innerHTML = responseJSON.ResourceResponse.SuccessInfo.message;
  429.     }
  430.     else if(responseJSON.PubGUIErrorResponse != null){
  431.         $('statusMessage_Admin').innerHTML = responseJSON.PubGUIErrorResponse.ErrorMessage;
  432.     }
  433.     rmvGroupSuccessFlag = false;
  434.     rmvRoleSuccessFlag = false;
  435.     rmvUserSuccessFlag = false;
  436. }
  437.  
  438.  function displayStatusCustomMessage(message){
  439.         if(message != null){
  440.             $('statusMessage_Admin').innerHTML = message;
  441.         }
  442.     }
  443.  
  444. function displayError(responseJSON){
  445.     responseJSON = responseJSON.responseText;
  446.     var response = responseJSON.parseJSON();
  447.     if(response.PubGUIErrorResponse != null){
  448.         $('statusMessage_Admin').innerHTML = response.PubGUIErrorResponse.ErrorMessage;
  449.     }
  450. }
  451.  
  452. function displayStatusComp(responseJSON){
  453.     $('statusMessage_Components').innerHTML = (responseJSON.ResourceResponse != null) ? responseJSON.ResourceResponse.SuccessInfo.message :responseJSON.ResourceResponse.SuccessInfo.statusCode;
  454. }
  455.  
  456. function displayErrorComp(responseJSON){
  457.     responseJSON = responseJSON.responseText;
  458.     var response = responseJSON.parseJSON();
  459.     $('statusMessage_Components').innerHTML = (response.PubGUIErrorResponse != null) ? response.PubGUIErrorResponse.ErrorMessage :response.PubGUIErrorResponse.ErrorMessage;
  460. }
  461.  
  462. function displayStatusUpdateGrp(responseJSON){
  463.     if(responseJSON.ResourceResponse != null){
  464.         $('statusMessage_Admin').innerHTML = responseJSON.ResourceResponse.SuccessInfo.message;
  465.         //set the hidden password to the new one on success
  466.         if ( groupPwdHiddenFieldVal != '' ) {
  467.             dojo.byId('groupCurPwdHiddenObj').value = groupPwdHiddenFieldVal;
  468.         }
  469.         dojo.byId('groupPwdObj').value = '';
  470.         dojo.byId('groupPwdConfirmObj').value = '';
  471.         dojo.byId('groupCurPwdObj').value = '';
  472.     }
  473.     else if(responseJSON.PubGUIErrorResponse != null){
  474.         $('statusMessage_Admin').innerHTML = responseJSON.PubGUIErrorResponse.ErrorMessage;
  475.     }
  476.     rmvGroupSuccessFlag = false;
  477.     rmvRoleSuccessFlag = false;
  478.     rmvUserSuccessFlag = false;
  479.    
  480. }
  481.  
  482. function displayStatusRmvGrp(responseJSON){
  483.     $('statusMessage_Admin').innerHTML = (responseJSON.ResourceResponse != null) ? "Group is successfully removed." :responseJSON.ResourceResponse.SuccessInfo.statusCode;
  484.     rmvGroupSuccessFlag = true;
  485.     getGroupsInfo();
  486. }
  487.  
  488. function displayStatusRmvRole(responseJSON){
  489.     $('statusMessage_Admin').innerHTML = (responseJSON.ResourceResponse != null) ? "Role is successfully removed." :responseJSON.ResourceResponse.SuccessInfo.statusCode;
  490.     rmvRoleSuccessFlag = true;
  491.     getGroupRoles();
  492. }
  493.  
  494. function displayStatusRmvUser(responseJSON){
  495.     $('statusMessage_Admin').innerHTML = (responseJSON.ResourceResponse != null) ? "User is successfully removed." :responseJSON.ResourceResponse.SuccessInfo.statusCode;
  496.     rmvUserSuccessFlag = true;
  497.     getAllUserForAppRole();
  498. }
  499.  
  500. function displayStatusRmvComp(responseJSON){
  501.     $('statusMessage_Components').innerHTML = (responseJSON.ResourceResponse != null) ? "Component(s) successfully removed." :responseJSON.ResourceResponse.SuccessInfo.statusCode;
  502.     getComponentsInfo();
  503. }
  504.  
  505. function getGroupUsers(){
  506.     var selectedEnv;
  507.     var usersTabGrpIdGA;
  508.     if(document.getElementById("usersTabGrpsId") != null){
  509.         usersTabGrpIdGA = document.getElementById("usersTabGrpsId").value;
  510.     }
  511.     if(document.getElementById("usersTabEnvironmentIdGA") != null){
  512.         selectedEnv = document.getElementById("usersTabEnvironmentIdGA").value;
  513.     }
  514.     if($('statusMessage_Admin')){
  515.         $('statusMessage_Admin').innerHTML = '';
  516.     }
  517.     var url = baseURL + GET_GRP_USER_FOR_GRP +selectedEnv +"/" +usersTabGrpIdGA +"?ignoreMe=" + new Date().getTime();  
  518.     var reqArgs = {url: url, method: 'GET', load: displayGroupUsers, error: displayGroupUsers, handleAs:'json'};
  519.     new AJAX.pubGUI.sendRequest(reqArgs);
  520. }
  521.  
  522. function displayGroupUsers(responseJSON){  
  523.     hideObjects(['groupsInfo','groupUsersInfo','groupRolesInfo','createOrManageUser','associateGroupRoles','buttonsTab1','usersGrpRoleInfoTableIdGA']);
  524.     showObjects(['usersInfoTableIdGA','usersTabPageLinks1']);
  525.     $('usersTabPageLinks1').innerHTML = '<a class="alwaysBlue"  href="#" onclick="javascript: dijit.byId(\'searchUserDialog\').show(); clearSearchScreen(); ">Add User</a> | '+
  526.     '<a class="alwaysBlue"  href="#" onclick="javascript: populateUsersGrpRoleEnvironmentGA(); getGAGroupsForUsersTabGrpRole();">Add Users to Groups and Group Roles</a>';
  527.     $('usersInfoGA').innerHTML = '';
  528.     $('screenName_Admin_Users').innerHTML = 'Groups Users Information';
  529.     if (responseJSON.ResourceResponse.Users.User != undefined){
  530.         var groupUserStructure = [     
  531.                                 { name: '', width: '20px'},
  532.                                 { field: 'userID', name: '<B>User ID</B>', width: '100px', formatter: showAsLink},
  533.                                 { field: 'firstName', name: 'First Name', width: '100px'},
  534.                                 { field: 'lastName', name: 'Last Name', width: '100px'},
  535.                                 { field: 'emailID', name: 'E-mail ID', width: '300px'},
  536.                                 { field: 'associatedEnvCds', name: 'Environments Associated', hidden:'true'},
  537.                                 { field: 'role', name: '<B>Role</B>', width: '100px', formatter: showAsLink}
  538.                                ];
  539.         var groupUserDataStore = responseJSON.ResourceResponse.Users.User;
  540.         gridID = 'id_99'+(new Date().getTime());
  541.         var grid1 = PubGUIGrid('usersInfoGA', gridID, groupUserStructure, groupUserDataStore, 'usersRowClickHandlerGA');
  542.     }
  543.     else{
  544.         $('usersInfoGA').innerHTML = "<span style='color: red; font-weight: bold; font-size: 8pt;' >No Records Found</span>";
  545.     }
  546. }
  547.  
  548. function checkBoxDojo(value){
  549.     var div = dojo.create('div');  
  550.     div.className = value=='Y'?'checkBoxChecked':'checkBox';
  551.     div.innerHTML = value;                     
  552.     return div.outerHTML;
  553. }
  554.  
  555. function rolesTabGARolesRowClickHandler(evt){
  556.     var grid = evt.grid;
  557.     grid.selection.setSelected(evt.rowIndex, false);
  558.     if(evt.target == evt.cellNode){
  559.         return false;
  560.     }    
  561.     var rowData = grid.getItem(evt.rowIndex);        
  562.     currRole = rowData; // setting the role info to global variable(currRole).
  563.     if(evt.cellIndex == 1){                    
  564.         populateCreateOrManageRoleEnvironment(false);
  565.         getGAGroupsForCreateGrpRolesTab(false);
  566.         createOrManageRole(false);
  567.         isNewRequest = false;
  568.     }
  569.     if(evt.cellIndex == 3){                    
  570.         dijit.byId('showRoleResourcesId').show();
  571.         displayAssociatedResources(currRole.roleID);
  572.     }
  573.     return true;
  574. }
  575.  
  576. function getUpdatedGroupUsersInfo(){     
  577.     var grid = dijit.byId(gridID);
  578.     var items = [];
  579.     var count = grid.store._arrayOfAllItems.length;
  580.     for(var i = 0 ; i < count ; i++){
  581.         var item = grid.store._arrayOfAllItems[i];
  582.         if(item != null && item.isAssociated=='Y'){
  583.             items.push(item);
  584.         }
  585.     }
  586.     var updatedGroupUsersJSON = "";
  587.     if(items.length != 0){
  588.         updatedGroupUsersJSON = "{\"GroupUser\":[";
  589.         for(i=0; i<items.length; i++){ 
  590.             updatedGroupUsersJSON += "{\"groupID\":\""+currGroup.groupID+"\",\"userID\":\""+(items[i].userID)+"\",\"groupName\":\""+currGroup.groupName+"\",\"isAssociated\":\"Y\"},";
  591.         }
  592.         updatedGroupUsersJSON = items.length!=0?updatedGroupUsersJSON.substring(0,updatedGroupUsersJSON.length-1):updatedGroupUsersJSON;
  593.         updatedGroupUsersJSON += "]}";
  594.     } else {
  595.         updatedGroupUsersJSON = "{}";
  596.     }
  597.     updatedGroupUsersJSON = prepareResourceRequestForList(updatedGroupUsersJSON);
  598.     return updatedGroupUsersJSON;
  599. }
  600.  
  601. function saveGroupUsers(){ 
  602.     var updatedUsersJSON = getUpdatedGroupUsersInfo(); 
  603.     var url = baseURL +SAVE_GROUP_USER +currGroup.groupID;
  604.     var reqArgs = {url: url, method: 'PUT', putData:updatedUsersJSON, load: displayStatus, error: displayError, handleAs:'json'};
  605.     new AJAX.pubGUI.sendRequest(reqArgs);
  606. }
  607.  
  608. function getGroupRoles(){
  609.     if($('statusMessage_Admin')){
  610.         if(!rmvRoleSuccessFlag){
  611.             $('statusMessage_Admin').innerHTML = '';
  612.         }
  613.         rmvRoleSuccessFlag = false;
  614.     }
  615.     $('rolesTabPageLinks').innerHTML = '<a class="alwaysBlue" href="#" onclick="javascript: createOrManageRole(true); populateCreateOrManageRoleEnvironment(true); getGAGroupsForCreateGrpRolesTab(true);">Create Group Roles</a> | '+
  616.     '<a class="alwaysBlue"  href="#" onclick="javascript: populateAddCompToGrpRoleEnv(); getGAGroupsForAddCompToGrpRoleRolesTab(); addCompToGrpRoles(); ">Add Components to Group Roles</a>';
  617.     $('rolesInfoGA').innerHTML = '';   
  618.     $('screenName_Admin_Roles').innerHTML = 'Roles Information';
  619.     var selectedEnv;
  620.     var rolesTabGrpId;
  621.     if(document.getElementById("rolesTabGrpsId") != null){
  622.         rolesTabGrpId = document.getElementById("rolesTabGrpsId").value;
  623.         rolesTabGroupSelectedIndexGA = document.getElementById("rolesTabGrpsId").selectedIndex;
  624.     }
  625.     if(document.getElementById("rolesTabEnvironmentIdGA") != null){
  626.         selectedEnv = document.getElementById("rolesTabEnvironmentIdGA").value;
  627.         currEnv = selectedEnv;
  628.     }
  629.     var url = baseURL + GET_GRP_ROLE +rolesTabGrpId +"/" +selectedEnv+"?ignoreMe=" + new Date().getTime(); 
  630.     var reqArgs = {url: url, method: 'GET',load: displayGroupRoles, error: displayGroupRoles, handleAs:'json'};
  631.     new AJAX.pubGUI.sendRequest(reqArgs);
  632. }
  633.  
  634. function displayGroupRoles(responseJSON){
  635.     hideObjects(['createOrManageRole','associateRoleComponents','rolesAddCompToGrpRoleInfoTableId','rolesAddCompToGrpRoleInfoId']);
  636.     showObjects(['rolesTabPageLinks','rolesInfoTableIdGA','rolesInfoGA']);
  637.     dojo.byId('buttonsTab2').innerHTML = '';
  638.     if (responseJSON.ResourceResponse.GroupRoles.GroupRole != undefined){  
  639.         var groupRoleStructure = [                                 
  640.                                 { field: 'roleID', name: '<B>Role ID</B>', width: '100px' , hidden:'true'},
  641.                                 { field: 'roleName', name: 'Role Name', width: 'auto', formatter: showAsLink},
  642.                                 { field: 'groupID', name: 'Group ID', width: 'auto', hidden:'true'},
  643.                                 { field: 'resources', name: '<B>Resources</B>', width: '100px', formatter: showAsLink}
  644.                                ];
  645.         var groupRoleDataStore = responseJSON.ResourceResponse.GroupRoles.GroupRole;
  646.         if(!groupRoleDataStore.length){
  647.             groupRoleDataStore = [groupRoleDataStore];
  648.         }
  649.         gridID = 'id_98'+(new Date().getTime());
  650.         var grid1 = PubGUIGrid('rolesInfoGA', gridID, groupRoleStructure, groupRoleDataStore, 'rolesTabGARolesRowClickHandler');
  651.         dojo.byId('buttonsTab').innerHTML = '';
  652.         var btns = [{dojoType: dijit.form.Button, label:'Save', region:'center', onClick: saveGroupRoles},
  653.                 {dojoType: dijit.form.Button, label:'Back', region:'center', onClick: createOrManageGroup}];
  654.         for(i=0; i<btns.length; i++){
  655.              var btn = new dijit.form.Button(btns[i]);
  656.              dojo.byId('buttonsTab').appendChild(btn.domNode);
  657.         }
  658.     }
  659.     else{
  660.         $('rolesInfoGA').innerHTML = "<span style='color: red; font-weight: bold; font-size: 8pt;' >No Records Found</span>";
  661.     }
  662. }
  663.  
  664. function getUpdatedGroupRolesInfo(){     
  665.     var grid = dijit.byId(gridID);
  666.     var items = [];
  667.     var count = grid.store._arrayOfAllItems.length;
  668.     for(var i = 0 ; i < count ; i++){
  669.         var item = grid.store._arrayOfAllItems[i];
  670.         if(item != null && item.isAssociated=='Y'){
  671.             items.push(item);
  672.         }
  673.     }
  674.     var updatedGroupRolesJSON = "";
  675.     if(items.length != 0){
  676.         updatedGroupRolesJSON = "{\"GroupRole\":[";
  677.     for(i=0; i<items.length; i++){ 
  678.         updatedGroupRolesJSON += "{\"groupID\":\""+currGroup.groupID+"\",\"roleID\":\""+(items[i].roleID)+"\",\"roleName\":\""+(items[i].roleName)+"\",\"isAssociated\":\"Y\"},";
  679.     }
  680.     updatedGroupRolesJSON = items.length!=0?updatedGroupRolesJSON.substring(0,updatedGroupRolesJSON.length-1):updatedGroupRolesJSON;
  681.     updatedGroupRolesJSON += "]}";
  682.     } else {
  683.         updatedGroupRolesJSON = "{}";
  684.     }
  685.     updatedGroupRolesJSON = prepareResourceRequestForList(updatedGroupRolesJSON);
  686.     return updatedGroupRolesJSON;
  687.  }
  688.  
  689. function saveGroupRoles(){ 
  690.     var updatedRolesJSON = getUpdatedGroupRolesInfo(); 
  691.     var url = baseURL + SAVE_GROUP_ROLE +currGroup.groupID+'?ignoreMe=' + new Date().getTime();
  692.     var reqArgs = {url: url, method: 'PUT', putData: updatedRolesJSON,load: displayStatus, error: displayError, handleAs:'json'};
  693.     new AJAX.pubGUI.sendRequest(reqArgs);
  694. }
  695.  
  696. /**
  697.  *  TAB :: USERS
  698.  *
  699.  */
  700. function getUsersInfo(){
  701.     if($('statusMessage_Admin')){
  702.         if(!rmvUserSuccessFlag){
  703.             $('statusMessage_Admin').innerHTML = '';
  704.         }
  705.         rmvUserSuccessFlag = false;
  706.     }
  707.     var selectedEnv = null;
  708.     var usersTabGrpRoleGrpId = null;
  709.     var usersTabGrpRoleRoleId = null;
  710.     if(document.getElementById("usersTabUserGrpRolesEnvironmentId") != null){
  711.         selectedEnv = document.getElementById("usersTabUserGrpRolesEnvironmentId").value;
  712.     }
  713.     if(document.getElementById("usersTabGrpRoleGrpsId") != null){
  714.         usersTabGrpRoleGrpId = document.getElementById("usersTabGrpRoleGrpsId").value;
  715.     }
  716.     if(document.getElementById("usersTabGrpRoleRolesId") != null){
  717.         usersTabGrpRoleRoleId = (document.getElementById("usersTabGrpRoleRolesId").value != '')? document.getElementById("usersTabGrpRoleRolesId").value: ' ';
  718.     }
  719.     var url = baseURL + ALL_USERS +selectedEnv+"/"+usersTabGrpRoleGrpId+"/"+usersTabGrpRoleRoleId+"?ignoreMe=" + new Date().getTime();
  720.     var reqArgs = {url: url, method: 'GET', load: displayUsersInfo, error: displayUsersInfo, handleAs:'json'};
  721.     new AJAX.pubGUI.sendRequest(reqArgs);
  722. }
  723.  
  724. function displayUsersInfo(responseJSON){
  725.     hideObjects(['usersInfoTableIdSA','createOrManageUser','associateUserGroups','usersTabPageLinks1','associateUserRolesTableId','usersInfoTableIdGA']);
  726.     showObjects(['usersGrpRoleInfoTableIdGA','usersgrprole_env_dropdownGA','usersgrprole_group_dropdownGA','usersgrprole_role_dropdownGA','usersGrpRoleInfoGA','buttonsTab1']);
  727.     $('usersGrpRoleInfoGA').innerHTML = '';
  728.     $('screenName_Admin_Users').innerHTML = 'Add Users to Groups and Group Roles';
  729.     if (responseJSON != null && responseJSON.ResourceResponse.Users != undefined){   
  730.         if(dojo.byId('usersgrprole_env_dropdownGA') != null){
  731.             if(popEnvUserRolesGA == false){
  732.                 dojo.byId('usersgrprole_env_dropdownGA').appendChild(usersGrpRoleSelectEnv);
  733.             }
  734.             popEnvUserRolesGA = true;
  735.         }
  736.         var userRoleStructure = [
  737.                                 { field: 'isPredefinedMember', name: 'Predefined Member', width: '0px', hidden:'true'},
  738.                                 { field: 'isGrpMember', name: 'Group Member', width: '100px', formatter:checkBoxDojo},
  739.                                 { field: 'userID', name: 'User ID',  width: '70px', formatter: showAsLink},
  740.                                 { field: 'firstName', name: 'First Name', width: '80px'},
  741.                                 { field: 'lastName', name: 'Last Name', width: '80px'},
  742.                                 { field: 'emailID', name: 'E-mail ID', width: '250px'},
  743.                                 { field: 'associatedEnvCds', name: 'Associated Envs', width: '0px', hidden:'true'}
  744.                                ];
  745.         var userRoleDataStore = responseJSON.ResourceResponse.Users.User;
  746.         userRoleDataStore = dojo.filter(userRoleDataStore, function(item){ return item.isPredefinedMember=='N'; });
  747.         gridID = 'id_92'+(new Date().getTime());
  748.         var grid1 = PubGUIGrid('usersGrpRoleInfoGA', gridID, userRoleStructure, userRoleDataStore, 'usersRoleRowClickHandlerGA');
  749.         dojo.byId('buttonsTab1').innerHTML = '';
  750.         var btns = [{dojoType: dijit.form.Button, label:'Save', region:'center', onClick: saveUserGrpsNGrpRoles},
  751.                 {dojoType: dijit.form.Button, label:'Back', region:'center' ,onClick: function(){getGroupUsers();}}];
  752.         for(i=0; i<btns.length; i++){
  753.              var btn = new dijit.form.Button(btns[i]);
  754.              dojo.byId('buttonsTab1').appendChild(btn.domNode);
  755.         }
  756.     }
  757.     else{
  758.         $('usersGrpRoleInfoGA').innerHTML = "<span style='color: red; font-weight: bold; font-size: 8pt;' >No Records Found</span>";
  759.     }
  760. }
  761.  
  762. function usersRoleRowClickHandlerGA(evt){  
  763.     var grid = evt.grid;
  764.     grid.selection.setSelected(evt.rowIndex, false);
  765.     if(evt.target == evt.cellNode){ // so as to accept the event only when clicked on the text
  766.        return false;
  767.     }
  768.     //cellIndex 0 is for isGrpMember checkbox
  769.     if(evt.cellIndex == 0){
  770.         var checkBox = (evt.target)?evt.target:evt.srcElement;
  771.         checkBox.className = (checkBox.className=='checkBox')?'checkBoxChecked':'checkBox';
  772.         var currVal = (checkBox.className=='checkBox')?'N':'Y';
  773.         if(checkBox.className=='checkBox'){
  774.             checkBox.innerHTML = 'N';  
  775.             grid.getItem(evt.rowIndex).isGrpMember = 'N';          
  776.         }else{
  777.             checkBox.innerHTML = 'Y';
  778.             grid.getItem(evt.rowIndex).isGrpMember = 'Y';  
  779.         }  
  780.     }
  781.     //cellIndex 1 is for userId Link
  782.     if(evt.cellIndex == 1){
  783.         var rowData = grid.getItem(evt.rowIndex);        
  784.         currUser = rowData; // setting the user info to global variable(currUser).
  785.         createOrManageUser();
  786.     }
  787.     return true;
  788. }
  789.  
  790. function usersRowClickHandlerGA(evt){  
  791.     var grid = evt.grid;
  792.     grid.selection.setSelected(evt.rowIndex, false);
  793.     if(evt.target == evt.cellNode){ // so as to accept the event only when clicked on the text
  794.        return false;
  795.     }        
  796.     var rowData = grid.getItem(evt.rowIndex);
  797.     currUser = rowData; // setting the user info to global variable(currUser).
  798.     // Cell Index 1 means User Id link
  799.     if(evt.cellIndex == 1){          
  800.         createOrManageUser();
  801.     }
  802.     // Cell Index 6 means Roles link
  803.     if(evt.cellIndex == 6){          
  804.         dijit.byId('showUserRolesId').show();
  805.         getUsersRoles();
  806.     }
  807.     return true;
  808. }
  809.  
  810. function usersRowClickHandlerSA(evt){  
  811.     var grid = evt.grid;
  812.     grid.selection.setSelected(evt.rowIndex, false);
  813.     if(evt.target == evt.cellNode){ // so as to accept the event only when clicked on the text
  814.         return false;
  815.     }        
  816.     var rowData = grid.getItem(evt.rowIndex);
  817.     currUser = rowData; // setting the user info to global variable(currUser).
  818.     // Cell Index 1 means User Id link
  819.     if(evt.cellIndex == 1){          
  820.         createOrManageUser();
  821.     }
  822.     return true;
  823. }
  824.  
  825. function getUsersRoles(){
  826.     var selectedEnv;
  827.     if(document.getElementById("usersTabEnvironmentIdGA") != null){
  828.         selectedEnv = document.getElementById("usersTabEnvironmentIdGA").value;
  829.     }
  830.     var url = baseURL + GET_USERS_MULTIPLE_ROLES +currUser.userID +"/"+selectedEnv+"?ignoreMe=" + new Date().getTime();
  831.     if($('statusMessage_Admin')){
  832.         $('statusMessage_Admin').innerHTML = '';
  833.     }
  834.     var reqArgs = {url: url, method: 'GET', load: displayUsersRoles, error: displayUsersRoles, handleAs:'json'};
  835.     new AJAX.pubGUI.sendRequest(reqArgs);
  836. }
  837.  
  838. function displayUsersRoles(responseJSON){
  839.     showObjects(['showUserRolesId','showUserRoles']);
  840.     var tempRoleList = responseJSON.ResourceResponse.Roles.Role;
  841.     if (tempRoleList != null && tempRoleList != undefined){
  842.         var multiRoleName ="";
  843.         if(!tempRoleList.length){
  844.             tempRoleList = [tempRoleList];
  845.         }
  846.         $('showUserRoles').innerHTML = ''; 
  847.         var userRolesStructure = [                                 
  848.                                      { field: 'roleID', name: 'Role ID', width: '0px' , hidden:'true'},
  849.                                      { field: 'roleName', name: 'Group Roles', width: 'auto'},
  850.                                      ];
  851.         var userRolesDataStore = responseJSON.ResourceResponse.Roles.Role;
  852.         gridID = 'id_93'+(new Date().getTime());
  853.         var grid1 = PubGUIGrid('showUserRoles', gridID, userRolesStructure, userRolesDataStore);
  854.     }
  855.     else{
  856.         $('showUserRoles').innerHTML = "<span style='color: red; font-weight: bold; font-size: 8pt;' >No Records Found</span>";
  857.     }
  858. }
  859.  
  860. function addusersToRoleRowClickHandler(evt){   
  861.     var grid = evt.grid;
  862.     var rowId = evt.rowIndex;
  863.     grid.selection.setSelected(evt.rowIndex, false);
  864.     if(evt.target == evt.cellNode){ // so as to accept the event only when clicked on the text
  865.         return false;
  866.     }
  867.     var rowData = grid.getItem(evt.rowIndex);
  868.     currUser = rowData; // setting the user info to global variable(currUser).
  869.     var userID = rowData.userID;
  870.     //alert('evt.cellIndex::'+evt.cellIndex);
  871.     if(evt.cellIndex == 0){
  872.         createOrManageUser();
  873.     }
  874.     // cellIndex 5 is for Junior User
  875.     if(evt.cellIndex == 5){
  876.         $('radioJU_'+rowId).className = 'radioBtnSelected';
  877.         $('radioAU_'+rowId).className = 'radioBtn';
  878.         $('radioGA_'+rowId).className = 'radioBtn';
  879.         $('radioSA_'+rowId).className = 'radioBtn';
  880.         $('link_'+rowId).className = 'disable_link';
  881.         if(rowData.isJuniorUsr == true){
  882.             usersTabUserIDArray[countUserRoles] = userID;
  883.             usersTabRoleIDArray[countUserRoles] = rowData.juniorUsrRoleID;
  884.             countUserRoles++;
  885.         }
  886.     }
  887.     // cellIndex 7 is for Advanced User
  888.     if(evt.cellIndex == 7){
  889.         $('radioAU_'+rowId).className = 'radioBtnSelected';
  890.         $('radioJU_'+rowId).className = 'radioBtn';
  891.         $('radioGA_'+rowId).className = 'radioBtn';
  892.         $('radioSA_'+rowId).className = 'radioBtn';
  893.         $('link_'+rowId).className = 'disable_link';
  894.         if(rowData.isAdvUsr == true){
  895.             usersTabUserIDArray[countUserRoles] = userID;
  896.             usersTabRoleIDArray[countUserRoles] = rowData.advUsrRoleID;
  897.             countUserRoles++;
  898.         }
  899.     }
  900.     // cellIndex 9 is for Group Admin
  901.     if(evt.cellIndex == 9){
  902.         $('radioGA_'+rowId).className = 'radioBtnSelected';
  903.         $('radioJU_'+rowId).className = 'radioBtn';
  904.         $('radioAU_'+rowId).className = 'radioBtn';
  905.         $('radioSA_'+rowId).className = 'radioBtn';
  906.         $('link_'+rowId).className = 'enable_link';
  907.         if(rowData.isGrpAdm == true){
  908.             usersTabUserIDArray[countUserRoles] = userID;
  909.             usersTabRoleIDArray[countUserRoles] = rowData.grpAmdRoleID;
  910.             countUserRoles++;
  911.         }
  912.         if($('radioGA_'+evt.rowIndex).className == 'radioBtnSelected'){
  913.             getUserGroups();
  914.         }
  915.     }
  916.     // cellIndex 11 is for Super Admin
  917.     if(evt.cellIndex == 11){
  918.         $('radioSA_'+rowId).className = 'radioBtnSelected';
  919.         $('radioJU_'+rowId).className = 'radioBtn';
  920.         $('radioAU_'+rowId).className = 'radioBtn';
  921.         $('radioGA_'+rowId).className = 'radioBtn';
  922.         $('link_'+rowId).className = 'disable_link';
  923.         if(rowData.isSprAdm == true){
  924.             usersTabUserIDArray[countUserRoles] = userID;
  925.             usersTabRoleIDArray[countUserRoles] = rowData.sprAdmRoleID;
  926.             countUserRoles++;
  927.         }
  928.     }
  929.     // cellIndex 13 is for Reset Button
  930.     if(evt.cellIndex == 13){
  931.         $('link_'+rowId).className = 'disable_link';
  932.         $('radioJU_'+rowId).className = 'radioBtn';
  933.         $('radioAU_'+rowId).className = 'radioBtn';
  934.         $('radioGA_'+rowId).className = 'radioBtn';
  935.         $('radioSA_'+rowId).className = 'radioBtn';
  936.         /* Good One could be useful
  937.         var rowData = evt.grid.getItem(evt.rowIndex);
  938.         alert(rowData.isJuniorUsr +' -- '+ rowData.isAdvUsr+' --'+ rowData.isGrpAdm);*/
  939.     }
  940.     return true;
  941. }
  942.  
  943. function createOrManageUser(){
  944.     updateUsersEnvironmentOnLoad();
  945.     if($('statusMessage_Admin')){
  946.         $('statusMessage_Admin').innerHTML = '';
  947.     }
  948.     dojo.byId('userIDObj').value = currUser.userID;
  949.     dojo.byId('firstNameObj').value = currUser.firstName;
  950.     dojo.byId('lastNameObj').value = currUser.lastName;
  951.     dojo.byId('emailIDObj').value = currUser.emailID;
  952.     var userID = safeUser.uid;
  953.     if(usersRoleName == PREDEFINED_ROLE_SA){
  954.         dojo.byId('users_env_dropdownSA').appendChild(usersSelectEnvSA);
  955.         hideObjects(['usersInfoTableIdSA','associateUserRolesTableId','associateUserRoles','associateUserGroups']);
  956.     }
  957.     else if(usersRoleName == PREDEFINED_ROLE_GA){
  958.         dojo.byId('users_env_dropdownGA').appendChild(usersSelectEnvGA);
  959.         hideObjects(['usersInfoTableIdGA','associateUserRoles','associateUserGroups','usersGrpRoleInfoTableIdGA']);
  960.     }
  961.     showObjects(['createOrManageUser','buttonsTab1']);
  962.     $('buttonsTab1').innerHTML = '';
  963.     $('usersTabPageLinks1').innerHTML = '';
  964.     var btns = [];
  965.     if(usersRoleName == PREDEFINED_ROLE_SA){
  966.         if ( userID == currUser.userID ){
  967.             btns = [{dojoType: dijit.form.Button, disabled:'true', label:'Update', region:'center',onClick: updateAppUser},
  968.                  {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: getAllUserForAppRole}];
  969.             displayStatusCustomMessage('Cannot update as logged in user Id is same as the current user Id');
  970.         }
  971.         else{
  972.             btns = [{dojoType: dijit.form.Button, label:'Update', region:'center',onClick: updateAppUser},
  973.                      {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: getAllUserForAppRole}];
  974.         }
  975.     }
  976.     else if(usersRoleName == PREDEFINED_ROLE_GA){
  977.         if ( userID == currUser.userID ){
  978.             btns = [{dojoType: dijit.form.Button, disabled:'true', label:'Update', region:'center',onClick: updateAppUser},
  979.                  {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: getGroupUsers}];
  980.             displayStatusCustomMessage('Cannot update as logged in user Id is same as the current user Id');
  981.         }
  982.         else{
  983.             btns = [{dojoType: dijit.form.Button, label:'Update', region:'center',onClick: updateAppUser},
  984.                      {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: getGroupUsers}];
  985.         }
  986.     }
  987.     $('screenName_Admin_Users').innerHTML = 'Update User : '+currUser.firstName;   
  988.     dojo.byId('userIDObj').disabled = true;
  989.     dojo.byId('firstNameObj').disabled = true;
  990.     dojo.byId('lastNameObj').disabled = true;
  991.     dojo.byId('emailIDObj').disabled = true;
  992.     for(i=0; i<btns.length; i++){
  993.         var btn = new dijit.form.Button(btns[i]);
  994.         dojo.byId('buttonsTab1').appendChild(btn.domNode);
  995.     }
  996. }
  997.  
  998. function updateUsersEnvironmentOnLoad(){
  999.     var systemEnv = getSystemEnv().toUpperCase();
  1000.     var assocEnvs = currUser.associatedEnvCds+"";
  1001.     var assocEnv_array = assocEnvs.split(",");
  1002.     if(systemEnv == 'DEV' || systemEnv == 'QC' || systemEnv == 'BLRDEV') {
  1003.         var placeHolderDev = 'unchecked';
  1004.         var placeHolderQC = 'unchecked';
  1005.         var placeHolderBlrDev = 'unchecked';
  1006.         for(var i=0; i<assocEnv_array.length; i++){
  1007.             if(assocEnv_array[i] == 'DEV'){
  1008.                 placeHolderDev = 'checked';
  1009.             }
  1010.             else if(assocEnv_array[i] == 'QC'){
  1011.                 placeHolderQC = 'checked';
  1012.             }
  1013.             else if(assocEnv_array[i] == 'BLRDEV'){
  1014.                 placeHolderBlrDev = 'checked';
  1015.             }
  1016.         }
  1017.         $('userTabsAddUserEnvId').innerHTML = "<input type='checkbox' id='checkBoxDev' "+placeHolderDev+" value='DEV'/>&nbspDev&nbsp&nbsp<input type='checkbox' id='checkBoxQC' "+placeHolderQC+" value='QC'/>&nbspQC&nbsp&nbsp<input type='checkbox' id='checkBoxBlrDev' "+placeHolderBlrDev+" value='BLRDEV'/>&nbspBlrDev&nbsp";
  1018.     }
  1019.     else if(systemEnv == 'CLIENT') {
  1020.         var placeHolderClient = 'unchecked';
  1021.         for(var i=0; i<assocEnv_array.length; i++){
  1022.             if(assocEnv_array[i] == 'CLIENT'){
  1023.                 placeHolderClient = 'checked';
  1024.             }
  1025.         }
  1026.         $('userTabsAddUserEnvId').innerHTML = "<input type='checkbox' id='checkBoxClient' "+placeHolderClient+" value='CLIENT'/>&nbspClient&nbsp";
  1027.     }
  1028.     else if(systemEnv == 'PROD') {
  1029.         var placeHolderProd = 'unchecked';
  1030.         var placeHolderClient = 'unchecked';
  1031.         for(var i=0; i<assocEnv_array.length; i++){
  1032.             if(assocEnv_array[i] == 'PROD'){
  1033.                 placeHolderProd = 'checked';
  1034.             }
  1035.             else if(assocEnv_array[i] == 'CLIENT'){
  1036.                 placeHolderClient = 'checked';
  1037.             }
  1038.         }
  1039.         $('userTabsAddUserEnvId').innerHTML = "<input type='checkbox' id='checkBoxProd' "+placeHolderProd+" value='PROD'/>&nbspProd&nbsp&nbsp<input type='checkbox' id='checkBoxClient' "+placeHolderClient+" value='CLIENT'/>&nbspClient&nbsp";
  1040.     }
  1041.     else {
  1042.         for(var i=0; i<assocEnv_array.length; i++){
  1043.             var placeHolderEnv = 'unchecked';
  1044.             if(assocEnv_array[i] == systemEnv){
  1045.                 placeHolderEnv = 'checked';
  1046.             }
  1047.         }
  1048.         $('userTabsAddUserEnvId').innerHTML = "<input type='checkbox' id='checkBoxEnv' "+placeHolderEnv+" value='"+systemEnv.toLowerCase()+"'/>&nbsp"+systemEnv+"&nbsp";
  1049.     }
  1050. }
  1051.  
  1052. /**
  1053.  * This method is used to remove a user
  1054.  * @return
  1055.  */
  1056. function removeUser(){
  1057.     if(confirm('Are you sure you want to delete the user '+currUser.userID +'?')){
  1058.         var url = baseURL +DELETE_USERS +currUser.userID;  
  1059.         var reqArgs = {url: url, method: 'DELETE', load: displayStatusRmvUser, error: displayError, handleAs:'json'};
  1060.         new AJAX.pubGUI.sendRequest(reqArgs);
  1061.     }
  1062. }
  1063.  
  1064. /**
  1065.  *
  1066.  * This method is used to update a group information.
  1067.  * @return
  1068.  */
  1069. function updateAppUser(){  
  1070.     var selectedUserEnvs = getSelectedEnvUsers();
  1071.     var availableUserEnvs = getAvailableUserEnvs();
  1072.     var url = baseURL + UPDATE_APP_USER;
  1073.     var json = "{\"@class\":\"AppUser\",\"userID\":\""+currUser.userID+"\",\"associatedEnvCds\":\""+selectedUserEnvs+"\",\"availableEnvCds\":\""+availableUserEnvs+"\"}";
  1074.     json = prepareResourceRequest(json);
  1075.     var reqArgs = {url: url, method: 'POST', postData: json, load: displayStatus, error: displayError, handleAs:'json'};
  1076.     new AJAX.pubGUI.sendRequest(reqArgs);
  1077. }
  1078.  
  1079. function getAvailableUserEnvs(){
  1080.     var availableEnvs = new Array();
  1081.     var availableEnvsCounter = 0;
  1082.     if($('checkBoxDev')){
  1083.         availableEnvs[availableEnvsCounter] = $('checkBoxDev').value;
  1084.         availableEnvsCounter++;
  1085.     }
  1086.     if($('checkBoxQC')){
  1087.         availableEnvs[availableEnvsCounter] = $('checkBoxQC').value;
  1088.         availableEnvsCounter++;
  1089.     }
  1090.     if($('checkBoxBlrDev')){
  1091.         availableEnvs[availableEnvsCounter] = $('checkBoxBlrDev').value;
  1092.         availableEnvsCounter++;
  1093.     }
  1094.     if($('checkBoxClient')){
  1095.         availableEnvs[availableEnvsCounter] = $('checkBoxClient').value;
  1096.         availableEnvsCounter++;
  1097.     }
  1098.     if($('checkBoxProd')){
  1099.         availableEnvs[availableEnvsCounter] = $('checkBoxProd').value;
  1100.         availableEnvsCounter++;
  1101.     }
  1102.     if($('checkBoxProdClient')){
  1103.         availableEnvs[availableEnvsCounter] = $('checkBoxProdClient').value;
  1104.         availableEnvsCounter++;
  1105.     }
  1106.     if($('checkBoxEnv')){
  1107.         availableEnvs[availableEnvsCounter] = $('checkBoxEnv').value;
  1108.         availableEnvsCounter++;
  1109.     }
  1110.     return availableEnvs;
  1111. }
  1112.  
  1113. function getSelectedEnvUsers(){
  1114.     var selectedEnvs = new Array();
  1115.     var selectedEnvsCounter = 0;
  1116.     if($('checkBoxDev')){
  1117.         if($('checkBoxDev').checked){
  1118.             selectedEnvs[selectedEnvsCounter] = $('checkBoxDev').value;
  1119.             selectedEnvsCounter++;
  1120.         }
  1121.     }
  1122.     if($('checkBoxQC')){
  1123.         if($('checkBoxQC').checked){
  1124.             selectedEnvs[selectedEnvsCounter] = $('checkBoxQC').value;
  1125.             selectedEnvsCounter++;
  1126.         }
  1127.     }
  1128.     if($('checkBoxBlrDev')){
  1129.         if($('checkBoxBlrDev').checked){
  1130.             selectedEnvs[selectedEnvsCounter] = $('checkBoxBlrDev').value;
  1131.             selectedEnvsCounter++;
  1132.         }
  1133.     }
  1134.     if($('checkBoxClient')){
  1135.         if($('checkBoxClient').checked){
  1136.             selectedEnvs[selectedEnvsCounter] = $('checkBoxClient').value;
  1137.             selectedEnvsCounter++;
  1138.         }
  1139.     }
  1140.     if($('checkBoxProd')){
  1141.         if($('checkBoxProd').checked){
  1142.             selectedEnvs[selectedEnvsCounter] = $('checkBoxProd').value;
  1143.             selectedEnvsCounter++;
  1144.         }
  1145.     }
  1146.     if($('checkBoxProdClient')){
  1147.         if($('checkBoxProdClient').checked){
  1148.             selectedEnvs[selectedEnvsCounter] = $('checkBoxProdClient').value;
  1149.             selectedEnvsCounter++;
  1150.         }
  1151.     }
  1152.     if($('checkBoxEnv')){
  1153.         if($('checkBoxEnv').checked){
  1154.             selectedEnvs[selectedEnvsCounter] = $('checkBoxEnv').value;
  1155.             selectedEnvsCounter++;
  1156.         }
  1157.     }
  1158.     return selectedEnvs;
  1159. }
  1160.  
  1161. /**
  1162.  *
  1163.  * This method is used to create a new group.
  1164.  * @return
  1165.  */
  1166. function createUser(){
  1167.     if(validateUser()){
  1168.         var url = baseURL + CREATE_USER;   
  1169.         var json = "{\"@class\":\"User\",\"userID\":\""+$F('userIDObj')+"\",\"firstName\":\""+$F('firstNameObj')+"\",\"lastName\":\""+$F('lastNameObj')+"\",\"emailID\":\""+$F('emailIDObj')+"\"}";
  1170.         json = prepareResourceRequest(json);
  1171.         var reqArgs = {url: url, method: 'PUT', putData: json, load: displayStatus, error: displayError, handleAs:'json'};
  1172.         new AJAX.pubGUI.sendRequest(reqArgs);
  1173.     }
  1174. }
  1175.  
  1176. function getUserRoles(){
  1177.     if($('statusMessage_Admin')){
  1178.         if(!rmvUserSuccessFlag){
  1179.             $('statusMessage_Admin').innerHTML = '';
  1180.         }
  1181.         rmvUserSuccessFlag = false;
  1182.     }
  1183.     var selectedEnv = null;
  1184.     if(document.getElementById("usersTabUserRolesEnvironmentId") != null){
  1185.         selectedEnv = document.getElementById("usersTabUserRolesEnvironmentId").value;
  1186.     }
  1187.     var url = baseURL + GET_USR_ROLES +selectedEnv +"?ignoreMe=" + new Date().getTime();
  1188.     var reqArgs = {url: url, method: 'GET',load: displayUserRoles, error: displayUserRoles, handleAs:'json'};
  1189.     new AJAX.pubGUI.sendRequest(reqArgs);
  1190. }
  1191.  
  1192. function displayUserRoles(responseJSON){
  1193.     if (responseJSON != null && responseJSON.ResourceResponse.Users != undefined){     
  1194.         hideObjects(['usersInfoTableIdSA','createOrManageUser','associateUserGroups','usersTabPageLinks1']);
  1195.         showObjects(['associateUserRolesTableId','associateUserRoles']);
  1196.         $('associateUserRoles').innerHTML = '';
  1197.         $('screenName_Admin_Users').innerHTML = 'Add Users to Global Roles';
  1198.         if(dojo.byId('usersrole_env_dropdownSA') != null){
  1199.             if(popEnvUserRolesSA == false){
  1200.                 dojo.byId('usersrole_env_dropdownSA').appendChild(usersRoleSelectEnv);
  1201.             }
  1202.             popEnvUserRolesSA = true;
  1203.         }
  1204.         var userRoleStructure = [  
  1205.                                 { field: 'userID', name: 'User ID',  width: '55px', formatter: showAsLink},
  1206.                                 { field: 'firstName', name: 'First Name', width: '75px'},
  1207.                                 { field: 'lastName', name: 'Last Name', width: '75px'},
  1208.                                 { field: 'emailID', name: 'E-mail ID', width: '225px'},
  1209.                                 { field: 'associatedEnvCds', name: 'Associated Envs', width: '0px', hidden:'true'},
  1210.                                 { field: 'isJuniorUsr', name: PREDEFINED_ROLE_GJU, width: '95px', formatter: renderAsRadioBtnJU},
  1211.                                 { field: 'juniorUsrRoleID', name: 'Junior User Role ID', width: '0px', hidden:'true'},
  1212.                                 { field: 'isAdvUsr', name: PREDEFINED_ROLE_GAU, width: '115px', formatter: renderAsRadioBtnAU},
  1213.                                 { field: 'advUsrRoleID', name: 'Advanced User Role ID', width: '0px', hidden:'true'},
  1214.                                 { field: 'isGrpAdm', name: PREDEFINED_ROLE_GA, width: '80px', formatter: renderAsRadioBtnGA},
  1215.                                 { field: 'grpAmdRoleID', name: 'Group Admin Role ID', width: '0px', hidden:'true'},
  1216.                                 { field: 'isSprAdm', name: PREDEFINED_ROLE_SA, width: '75px', formatter: renderAsRadioBtnSA},
  1217.                                 { field: 'sprAdmRoleID', name: 'Super Admin Role ID', width: '0px', hidden:'true'},
  1218.                                 { field: 'reset', name: 'Reset Role', width: 'auto', formatter: showAsBtn}
  1219.                                ];
  1220.         var userRoleDataStore = responseJSON.ResourceResponse.Users.User;
  1221.         gridID_SAUsersTab = 'id_97'+(new Date().getTime());
  1222.         var grid1 = PubGUIGrid('associateUserRoles', gridID_SAUsersTab, userRoleStructure, userRoleDataStore, 'addusersToRoleRowClickHandler');
  1223.         dojo.byId('buttonsTab1').innerHTML = '';
  1224.         var btns = [{dojoType: dijit.form.Button, label:'Save', region:'center',onClick: saveUserRoles},
  1225.                 {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: function(){getAllUserForAppRole();}}];
  1226.         for(i=0; i<btns.length; i++){
  1227.              var btn = new dijit.form.Button(btns[i]);
  1228.              dojo.byId('buttonsTab1').appendChild(btn.domNode);
  1229.         }
  1230.     }
  1231. }
  1232.  
  1233. function updateStoreDijit(rowVal, val){
  1234.    
  1235. }
  1236.  
  1237. function parseGridDijits(index, row) {
  1238.     dojo.query("[dojoType]",this.domNode).forEach(
  1239.         function(x) {
  1240.             dojo.parser.parse(x.parentNode);
  1241.         }
  1242.     );
  1243. }
  1244.  
  1245. function renderAsRadioBtnJU(val, index) {
  1246.     // console.log('renderAsDijitRadio...');
  1247.     var radioName='radioJU_' + index;
  1248.     if (val == true) {
  1249.         return "<div id='"+radioName+"' align='center' onClick='updateStoreJU("+index+","+true+")' class='radioBtnSelected'></div>";
  1250.     }
  1251.     else {
  1252.         return "<div id='"+radioName+"' align='center' onClick='updateStoreJU("+index+","+true+")' class='radioBtn'></div>";
  1253.     }
  1254. }
  1255.  
  1256. function renderAsRadioBtnAU(val, index) {
  1257.     var radioName='radioAU_' + index;
  1258.     if (val == true) {
  1259.         return "<div id='"+radioName+"' align='center' onClick='updateStoreAU("+index+","+true+")' class='radioBtnSelected'></div>";
  1260.     }
  1261.     else {
  1262.         return "<div id='"+radioName+"' align='center' onClick='updateStoreAU("+index+","+true+")' class='radioBtn'></div>";
  1263.     }
  1264. }
  1265.  
  1266. function renderAsRadioBtnGA(val, index) {
  1267.     var radioName='radioGA_' + index;
  1268.     var spanId = 'span_' + index;
  1269.     var linkId = 'link_' + index;
  1270.     var groupsLink = 'id="'+spanId+'">&nbsp<a id="'+linkId+'" href="#" ';
  1271.     var groupsColumn = null;
  1272.     if (val == true) {
  1273.         groupsColumn = "<div id='"+radioName+"' align='center' onClick='updateStoreGA("+index+","+true+")' class='radioBtnSelected'></div> <span "+groupsLink+" onclick='javascript: showOrHideGroupsLink("+index+","+true+");'>Groups</a></span>";
  1274.     }
  1275.     else {
  1276.         groupsColumn = "<div id='"+radioName+"' align='center' onClick='updateStoreGA("+index+","+true+")' class='radioBtn'></div> <span "+groupsLink+" onclick='javascript: showOrHideGroupsLink("+index+","+true+");' class='disable_link'>Groups</a></span>";
  1277.     }
  1278.     return groupsColumn;
  1279. }
  1280.  
  1281. function renderAsRadioBtnSA(val, index) {
  1282.     var radioName='radioSA_' + index;
  1283.     if (val == true) {
  1284.         return "<div id='"+radioName+"' align='center' onClick='updateStoreSA("+index+","+true+")' class='radioBtnSelected'></div>";
  1285.     }
  1286.     else {
  1287.         return "<div id='"+radioName+"' align='center' onClick='updateStoreSA("+index+","+true+")' class='radioBtn'></div>";
  1288.     }
  1289. }
  1290.  
  1291. function showOrHideGroupsLink(rowVal, val){
  1292.     var spanId = 'span_' + rowVal;
  1293.     var linkId = 'link_' + rowVal;
  1294.     if($(linkId+'').className == '' || $(linkId+'').className == 'enable_link'){
  1295.         dijit.byId("associateUserGroupsId").show();
  1296.         showDialogWindow();
  1297.     }
  1298.     else{
  1299.         hideDialogWindow();
  1300.         dijit.byId("associateUserGroupsId").style = 'none';
  1301.         return;
  1302.     }
  1303. }
  1304.  
  1305. function hideDialogWindow(){
  1306.     hideObjects(['associateUserGroupsId','associateUserGroups']);
  1307. }
  1308.  
  1309. function showDialogWindow(){
  1310.     showObjects(['associateUserGroupsId','associateUserGroups']);
  1311. }
  1312.  
  1313. function updateStoreJU(rowVal, val){
  1314.     var grid = dijit.byId(gridID_SAUsersTab);
  1315.     $('link_'+rowVal).className = 'disable_link';
  1316.     if (grid != null || grid != undefined){
  1317.         var rowData = grid.getItem(rowVal);
  1318.         if(rowData != null){
  1319.             rowData.isJuniorUsr = true;
  1320.         }
  1321.     }
  1322. }
  1323.  
  1324. function updateStoreAU(rowVal, val){
  1325.     var grid = dijit.byId(gridID_SAUsersTab);
  1326.     if (grid != null || grid != undefined){
  1327.         var rowData = grid.getItem(rowVal);
  1328.         $('link_'+rowVal).className = 'disable_link';
  1329.         if(rowData != null){
  1330.             rowData.isAdvUsr = true;
  1331.         }
  1332.     }
  1333. }
  1334.  
  1335. function updateStoreGA(rowVal, val){
  1336.     var grid = dijit.byId(gridID_SAUsersTab);
  1337.     if (grid != null || grid != undefined){
  1338.         var rowData = grid.getItem(rowVal);
  1339.         $('link_'+rowVal).className = 'enable_link';
  1340.         if(rowData != null){
  1341.             rowData.isGrpAdm = true;
  1342.         }
  1343.     }
  1344. }
  1345.  
  1346. function updateStoreSA(rowVal, val){
  1347.     var grid = dijit.byId(gridID_SAUsersTab);
  1348.     $('link_'+rowVal).className = 'disable_link';
  1349.     if (grid != null || grid != undefined){
  1350.         var rowData = grid.getItem(rowVal);
  1351.         if(rowData != null){
  1352.             rowData.isSprAdm = true;
  1353.         }
  1354.     }
  1355. }
  1356.  
  1357. function getUserGroups(){
  1358.     var selectedEnv;
  1359.     if(document.getElementById("usersTabUserRolesEnvironmentId") != null){
  1360.         selectedEnv = document.getElementById("usersTabUserRolesEnvironmentId").value;
  1361.     }
  1362.     var url = baseURL + GET_USR_GROUP +currUser.userID +"/"+selectedEnv+"?ignoreMe=" + new Date().getTime();
  1363.     if($('statusMessage_Admin')){
  1364.         $('statusMessage_Admin').innerHTML = '';
  1365.     }
  1366.     var reqArgs = {url: url, method: 'GET', load: displayUserGroups, error: displayUserGroups, handleAs:'json'};
  1367.     new AJAX.pubGUI.sendRequest(reqArgs);
  1368. }
  1369.  
  1370. function displayUserGroups(responseJSON){  
  1371.     if (responseJSON != null &&  responseJSON.ResourceResponse.GroupUsers != undefined){   
  1372.         showObjects(['associateUserGroupsId','associateUserGroups']);
  1373.         $('associateUserGroups').innerHTML = '';   
  1374.         var userGroupsStructure = [                                
  1375.                                  { field: 'isAssociated', name: 'Select', width: '50px', formatter:checkBoxDojo },
  1376.                                  { field: 'groupID', name: '<B>Group ID</B>', width: '100px' , hidden:'true'},
  1377.                                  { field: 'groupName', name: 'Group Name', width: 'auto'},
  1378.                                  { field: 'userID', name: 'User ID', width: 'auto', hidden:'true'}                                 
  1379.                                  ];
  1380.         var userGroupsDataStore = responseJSON.ResourceResponse.GroupUsers.GroupUser;
  1381.         gridID = 'id_96'+(new Date().getTime());
  1382.         var grid1 = PubGUIGrid('associateUserGroups', gridID, userGroupsStructure, userGroupsDataStore, 'assocGroupRowClickHandler');
  1383.     }
  1384. }
  1385.  
  1386. function assocGroupRowClickHandler(evt){   
  1387.      var grid = evt.grid;
  1388.      grid.selection.setSelected(evt.rowIndex, false);
  1389.      if(evt.cellIndex == 0){                       
  1390.          var checkBox = (evt.target)?evt.target:evt.srcElement;
  1391.          if(evt.target == evt.cellNode){
  1392.              return false;
  1393.          }   
  1394.          checkBox.className = (checkBox.className=='checkBox')?'checkBoxChecked':'checkBox';
  1395.          var currVal = (checkBox.className=='checkBox')?'N':'Y';
  1396.          if(checkBox.className=='checkBox'){
  1397.              checkBox.innerHTML = 'N';
  1398.              grid.getItem(evt.rowIndex).isAssociated = 'N';            
  1399.          }
  1400.          else{
  1401.              checkBox.innerHTML = 'Y';
  1402.              grid.getItem(evt.rowIndex).isAssociated = 'Y';                    
  1403.          }                   
  1404.      }   
  1405. }
  1406.  
  1407. /**
  1408.  *
  1409.  * To retrieve the changes made to update the roles for the user.
  1410.  * @return
  1411.  */
  1412. function getUpdatedUserRolesInfo(){  
  1413.     var updatedUserRolesJSON = "";
  1414.     if(countUserRoles != 0){
  1415.         updatedUserRolesJSON = "{\"UserRole\":[";
  1416.         for(i=0; i<countUserRoles; i++){   
  1417.             updatedUserRolesJSON += "{\"userID\":\""+(usersTabUserIDArray[i])+"\",\"roleID\":\""+(usersTabRoleIDArray[i])+"\"},";
  1418.         }
  1419.         updatedUserRolesJSON = countUserRoles!=0?updatedUserRolesJSON.substring(0,updatedUserRolesJSON.length-1):updatedUserRolesJSON;
  1420.         updatedUserRolesJSON += "]}";
  1421.     }
  1422.     else{
  1423.         updatedUserRolesJSON = "{}";
  1424.     }
  1425.     updatedUserRolesJSON = prepareResourceRequestForList(updatedUserRolesJSON);
  1426.     return updatedUserRolesJSON;
  1427. }
  1428.  
  1429. /**
  1430.  *
  1431.  * To retrieve the changes made to update the roles for the user.
  1432.  * @return
  1433.  */
  1434. function getUpdatedUserGroupsInfo(){     
  1435.     var grid = dijit.byId(gridID);
  1436.     var items = [];
  1437.     var count = grid.store._arrayOfAllItems.length;
  1438.     for(var i = 0 ; i < count ; i++){
  1439.         var item = grid.store._arrayOfAllItems[i];
  1440.         if(item != null && item.isAssociated=='Y'){
  1441.             items.push(item);
  1442.         }
  1443.     }
  1444.     var updatedUserGroupsJSON = "";
  1445.     if(items.length != 0){
  1446.         updatedUserGroupsJSON = "{\"GroupUser\":[";
  1447.         for(i=0; i<items.length; i++){ 
  1448.             updatedUserGroupsJSON += "{\"userID\":\""+(items[i].userID)+"\",\"groupID\":\""+(items[i].groupID)+"\",\"groupName\":\""+(items[i].groupName)+"\",\"isAssociated\":\"Y\"},";
  1449.         }
  1450.         updatedUserGroupsJSON = items.length!=0?updatedUserGroupsJSON.substring(0,updatedUserGroupsJSON.length-1):updatedUserGroupsJSON;
  1451.         updatedUserGroupsJSON += "]}";
  1452.     }
  1453.     else {
  1454.         updatedUserGroupsJSON = "{}";
  1455.     }
  1456.     updatedUserGroupsJSON = prepareResourceRequestForList(updatedUserGroupsJSON);
  1457.     return updatedUserGroupsJSON;
  1458. }
  1459.  
  1460. function saveUserGrpsNGrpRoles(){
  1461.     var selectedEnv = null;
  1462.     var usersTabGrpRoleGrpId = null;
  1463.     var usersTabGrpRoleRoleId = null;
  1464.     if(document.getElementById("usersTabUserGrpRolesEnvironmentId") != null){
  1465.         selectedEnv = document.getElementById("usersTabUserGrpRolesEnvironmentId").value;
  1466.     }
  1467.     if(document.getElementById("usersTabGrpRoleGrpsId") != null){
  1468.         usersTabGrpRoleGrpId = document.getElementById("usersTabGrpRoleGrpsId").value;
  1469.     }
  1470.     if(document.getElementById("usersTabGrpRoleRolesId") != null){
  1471.         usersTabGrpRoleRoleId = document.getElementById("usersTabGrpRoleRolesId").value;
  1472.     }
  1473.     if(validateSaveUserGrpsNGrpRoles(usersTabGrpRoleGrpId, usersTabGrpRoleRoleId)){
  1474.         usersTabGrpRoleGrpId = (usersTabGrpRoleGrpId != '')? usersTabGrpRoleGrpId : ' ';
  1475.         usersTabGrpRoleRoleId = (usersTabGrpRoleRoleId != '')? usersTabGrpRoleRoleId : ' ';
  1476.         var updatedUserRolesJSON = getUpdatedUserGrpNGrpRolesInfo();   
  1477.         var url = baseURL +SAVE_USER_GRP_ROLE +selectedEnv+"/"+usersTabGrpRoleGrpId+"/"+usersTabGrpRoleRoleId+"?ignoreMe=" + new Date().getTime(); 
  1478.         var reqArgs = {url: url, method: 'PUT', putData: updatedUserRolesJSON, load: displayStatus, error: displayError, handleAs:'json'};
  1479.         new AJAX.pubGUI.sendRequest(reqArgs);
  1480.     }
  1481. }
  1482.  
  1483. function validateSaveUserGrpsNGrpRoles(grpID, roleID){
  1484.     if(grpID == '' && roleID == ''){
  1485.         alert('Either group or role needs to be selected.');
  1486.         return false;
  1487.     }
  1488.     else if(grpID == ''){
  1489.         alert('Group needs to be selected.');
  1490.         return false;
  1491.     }
  1492.     else if(roleID == ''){
  1493.         alert('Role needs to be selected.');
  1494.         return false;  
  1495.     }
  1496.     else{
  1497.         return true;
  1498.     }
  1499. }
  1500.  
  1501. function saveUserRoles(){
  1502.     var selectedEnv = null;
  1503.     if(document.getElementById("usersTabUserRolesEnvironmentId") != null){
  1504.         selectedEnv = document.getElementById("usersTabUserRolesEnvironmentId").value;
  1505.     }
  1506.     var updatedUserRolesJSON = getUpdatedUserRolesInfo();  
  1507.     var url = baseURL +SAVE_USER_ROLE +selectedEnv+"?ignoreMe=" + new Date().getTime();
  1508.     var reqArgs = {url: url, method: 'POST', postData: updatedUserRolesJSON, load: displayStatus, error: displayError, handleAs:'json'};
  1509.     new AJAX.pubGUI.sendRequest(reqArgs);
  1510. }
  1511.  
  1512. function getUpdatedUserGrpNGrpRolesInfo(){   
  1513.     var grid = dijit.byId(gridID);
  1514.     var items = [];
  1515.     var count = grid.store._arrayOfAllItems.length;
  1516.     for(var i = 0 ; i < count ; i++){
  1517.         var item = grid.store._arrayOfAllItems[i];
  1518.         if(item != null && item.isGrpMember=='Y'){
  1519.             items.push(item);
  1520.         }
  1521.     }
  1522.     var updatedUserGrpNGrpRolesJSON = "";
  1523.     if(items.length != 0){
  1524.         updatedUserGrpNGrpRolesJSON = "{\"User\":[";
  1525.         for(i=0; i<items.length; i++){ 
  1526.             updatedUserGrpNGrpRolesJSON += "{\"userID\":\""+(items[i].userID)+"\",\"isGrpMember\":\"Y\"},";
  1527.         }
  1528.         updatedUserGrpNGrpRolesJSON = items.length!=0?updatedUserGrpNGrpRolesJSON.substring(0,updatedUserGrpNGrpRolesJSON.length-1):updatedUserGrpNGrpRolesJSON;
  1529.         updatedUserGrpNGrpRolesJSON += "]}";
  1530.     }
  1531.     else {
  1532.         updatedUserGrpNGrpRolesJSON = "{}";
  1533.     }
  1534.     updatedUserGrpNGrpRolesJSON = prepareResourceRequestForList(updatedUserGrpNGrpRolesJSON);
  1535.     return updatedUserGrpNGrpRolesJSON;
  1536. }
  1537.  
  1538. function saveUserGroups(){
  1539.     var updatedUserGroupsJSON = getUpdatedUserGroupsInfo();
  1540.     var selectedEnv = null;
  1541.     if(document.getElementById("usersTabUserRolesEnvironmentId") != null){
  1542.         selectedEnv = document.getElementById("usersTabUserRolesEnvironmentId").value;
  1543.     }
  1544.     var url = baseURL +SAVE_USER_GROUP +currUser.userID +"/" +selectedEnv +'?ignoreMe=' + new Date().getTime();
  1545.     var reqArgs = {url: url, method: 'PUT', putData: updatedUserGroupsJSON, load: displayUserGroupStatus, error: displayUserGroupStatusErr, handleAs:'json'};
  1546.     new AJAX.pubGUI.sendRequest(reqArgs);
  1547. }
  1548.  
  1549. function displayUserGroupStatus(responseJSON){
  1550.     $('statusMessage_associateUserGroups').innerHTML = '';
  1551.     dijit.byId('associateUserGroupsId').show();
  1552.     if(responseJSON.ResourceResponse != null){
  1553.         $('statusMessage_associateUserGroups').innerHTML = responseJSON.ResourceResponse.SuccessInfo.message;
  1554.     }
  1555.     else if(responseJSON.PubGUIErrorResponse != null){
  1556.         $('statusMessage_associateUserGroups').innerHTML = responseJSON.PubGUIErrorResponse.ErrorMessage;
  1557.     }
  1558. }
  1559.  
  1560. function displayUserGroupStatusErr(responseJSON){
  1561.     dijit.byId('associateUserGroupsId').show();
  1562.     responseJSON = responseJSON.responseText;
  1563.     var response = responseJSON.parseJSON();
  1564.     $('statusMessage_associateUserGroups').innerHTML = (response.PubGUIErrorResponse != null) ? response.PubGUIErrorResponse.ErrorMessage :response.PubGUIErrorResponse.ErrorMessage;
  1565. }
  1566.  
  1567. /**
  1568.  * The java script function getGroupsInfo makes an ajax call to retrieve the groups json.
  1569.  */
  1570. function getGroupsDDN(){   
  1571.     var url = baseURL + ALL_GROUPS +'?ignoreMe=' + new Date().getTime();
  1572.     var reqArgs = {url: url, method: 'GET',load: displayGroupsDropDown, error: displayGroupsDropDown, handleAs:'json'};
  1573.     new AJAX.pubGUI.sendRequest(reqArgs);
  1574. }
  1575.  
  1576. function displayGroupsDropDown(responseJSON){
  1577.     if(responseJSON != undefined){
  1578.         var select = dojo.byId('groupsDDN');
  1579.         var groupsObj = responseJSON.ResourceResponse.Groups.Group;
  1580.         if(!groupsObj.length){
  1581.             groupsObj = [groupsObj];
  1582.         }
  1583.         for(var i=0; i< groupsObj.length; i++){              
  1584.             var option = document.createElement('option');
  1585.             option.value = groupsObj[i].groupID;
  1586.             option.innerHTML = groupsObj[i].groupName;
  1587.             select.appendChild(option);
  1588.         }    
  1589.     }
  1590. }
  1591.  
  1592. function getAllUserForAppRole(){
  1593.     if($('statusMessage_Admin')){
  1594.         if(!rmvUserSuccessFlag){
  1595.             $('statusMessage_Admin').innerHTML = '';
  1596.         }
  1597.         rmvUserSuccessFlag = false;
  1598.     }
  1599.     var selectedEnv;
  1600.     if(document.getElementById("usersTabEnvironmentIdSA") != null){
  1601.         selectedEnv = document.getElementById("usersTabEnvironmentIdSA").value;
  1602.     }
  1603.     if(document.getElementById("usersTabRolesId") != null){
  1604.         userRoleID_global = document.getElementById("usersTabRolesId").value;
  1605.     }
  1606.     var url = baseURL + ALL_USERS_FOR_ROLE +selectedEnv+"/"+userRoleID_global+"?ignoreMe=" + new Date().getTime();
  1607.     var reqArgs = {url: url, method: 'GET', load: displayRoleUsersInfo, error: displayRoleUsersInfo, handleAs:'json'};
  1608.     new AJAX.pubGUI.sendRequest(reqArgs);
  1609. }
  1610.  
  1611. function displayRoleUsersInfo(responseJSON){
  1612.     showObjects(['usersInfoTableIdSA','usersInfoSA','usersTabPageLinks1']);
  1613.     hideObjects(['createOrManageUser','associateUserRolesTableId']);
  1614.     $('buttonsTab1').innerHTML = '';
  1615.     $('usersInfoSA').innerHTML = '';
  1616.     if($('statusMessage_Admin')){
  1617.         $('statusMessage_Admin').innerHTML = '';
  1618.     }
  1619.     $('screenName_Admin_Users').innerHTML = 'Users Information';
  1620.     dojo.byId('usersTabPageLinks1').innerHTML =
  1621.         '<a class="alwaysBlue"  href="#" onclick="javascript: dijit.byId(\'searchUserDialog\').show(); clearSearchScreen();">Add User</a> | '+
  1622.         '<a class="alwaysBlue"  href="#" onclick="javascript: populateUsersRoleEnvironment(); getUserRoles();">Add Users to Global Roles</a>';
  1623.     if (responseJSON != null && responseJSON.ResourceResponse.Users != undefined){
  1624.         var usersStructure = [
  1625.                             { name: '', width: '20px'},                                
  1626.                             { field: 'userID', name: '<B>User ID</B>', width: '100px', formatter: showAsLink},
  1627.                             { field: 'firstName', name: 'First Name', width: '100px'},
  1628.                             { field: 'lastName', name: 'Last Name', width: '100px'},
  1629.                             { field: 'emailID', name: 'E-mail ID', width: 'auto'},
  1630.                             { field: 'associatedEnvCds', name: 'Environments Associated', hidden:'true'}
  1631.                            ];
  1632.         var usersDataStore = responseJSON.ResourceResponse.Users.User;
  1633.         if(!usersDataStore.length){
  1634.             usersDataStore = [usersDataStore];
  1635.         }
  1636.         var grid1 = PubGUIGrid('usersInfoSA','id_1'+(new Date().getTime()), usersStructure, usersDataStore, 'usersRowClickHandlerSA');
  1637.     }
  1638.     else{
  1639.         $('usersInfoSA').innerHTML = "<span style='color: red; font-weight: bold; font-size: 8pt;' >No Records Found</span>";
  1640.     }
  1641. }
  1642.  
  1643. /**
  1644.  *
  1645.  *  TAB :: ROLES
  1646.  *
  1647.  */
  1648.  
  1649. var allRoles = true;
  1650. function getRolesInfoSA(){
  1651.     if($('statusMessage_Admin')){
  1652.         if(!rmvRoleSuccessFlag){
  1653.             $('statusMessage_Admin').innerHTML = '';
  1654.         }
  1655.         rmvRoleSuccessFlag = false;
  1656.     }
  1657.     var selectedEnv;
  1658.     if(document.getElementById("rolesTabEnvironmentIdSA") != null){
  1659.         selectedEnv = document.getElementById("rolesTabEnvironmentIdSA").value;
  1660.     }
  1661.     var url = baseURL + GET_PREDEFINED_ROLES+selectedEnv +"?ignoreMe=" + new Date().getTime();
  1662.     $('screenName_Admin_Roles').innerHTML = 'Roles Information';
  1663.     $('rolesTabPageLinks').innerHTML = '<a class="alwaysBlue"  href="#" onclick="javascript: populateCustJunUsrEnv(); getJunUsrRoleId();">Customize Global Junior User Role</a>';
  1664.     var reqArgs = {url: url, method: 'GET',load: displayRolesInfo, error: displayRolesInfo, handleAs:'json'};
  1665.     new AJAX.pubGUI.sendRequest(reqArgs);
  1666. }
  1667.  
  1668. function displayRolesInfo(responseJSON){
  1669.     showObjects(['rolesInfoTableIdSA','rolesInfoSA','rolesTabPageLinks']);
  1670.     hideObjects(['createOrManageRole','associateRoleComponents','rolesCustJunUsrTableId','rolesCustJunUsrId']);
  1671.     if (responseJSON != null && responseJSON.ResourceResponse.Roles != undefined){ 
  1672.         $('buttonsTab2').innerHTML = '';
  1673.         $('rolesInfoSA').innerHTML = '';
  1674.         var rolesStructureGroups = [
  1675.                                 { name: '', width: '20px'},                                
  1676.                                 { field: 'roleID', name: 'Role ID', width: '100px', hidden:'true'},
  1677.                                 { field: 'roleName', name: 'Role Name', width: 'auto', formatter: showAsLink}                
  1678.                              ];
  1679.         var rolesDataStoreGroups = responseJSON.ResourceResponse.Roles.Role;       
  1680.         var grid1 = PubGUIGrid('rolesInfoSA', 'id_2'+(new Date().getTime()), rolesStructureGroups, rolesDataStoreGroups, 'rolesRowClickHandler');
  1681.     }
  1682.     else{
  1683.         $('rolesInfoSA').innerHTML = "<span style='color: red; font-weight: bold; font-size: 8pt;' >No Records Found</span>";
  1684.     }
  1685. }
  1686.  
  1687. function rolesRowClickHandler(evt){
  1688.     var grid = evt.grid;
  1689.     grid.selection.setSelected(evt.rowIndex, false);
  1690.     if(evt.cellIndex == 2){          
  1691.         if(evt.target == evt.cellNode){ // so as to accept the event only when clicked on the text
  1692.             return false
  1693.         }        
  1694.         var rowData = grid.getItem(evt.rowIndex);        
  1695.         currRole = rowData; // setting the group info to global variable(currGroup).
  1696.         dijit.byId('buttonNamesDialog').show();
  1697.         displayAssociatedResourcesSA(currRole.roleID);
  1698.     }
  1699. }
  1700.  
  1701. function createOrManageRole(isNewRoleRequest){
  1702.       currRole = (isNewRoleRequest==true) ? {roleID:'', roleName:'', applicationID:''}:currRole;   
  1703.       dojo.byId('roleIDObj').value = currRole.roleID;
  1704.       dojo.byId('roleNameObj').value = currRole.roleName;
  1705.       dojo.byId('applicationIDObj').value = currRole.applicationID;
  1706.       hideObjects(['rolesInfoTableIdSA','rolesInfoSA','associateRoleComponents','rolesInfoTableIdGA','rolesInfoGA']);
  1707.       showObjects(['createOrManageRole']);
  1708.       $('buttonsTab2').innerHTML = '';     
  1709.       $('rolesTabPageLinks').innerHTML = '';
  1710.       $('usersInfoRolesTabGAId').innerHTML = '';
  1711.       var btns = [];
  1712.       if($('statusMessage_Admin')){
  1713.             $('statusMessage_Admin').innerHTML = '';
  1714.       }
  1715.       if(isNewRoleRequest == false){       
  1716.         btns = [{dojoType: dijit.form.Button, label:'Update', region:'center',onClick: updateRole},
  1717.                       {dojoType: dijit.form.Button, label:'Delete', region:'center',onClick: removeRole},
  1718.                       {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: getGroupRoles}];      
  1719.         $('screenName_Admin_Roles').innerHTML = 'Manage Group Role : '+currRole.roleName;
  1720.         hideObjects(['roles_create_env_dropdown']);
  1721.         showObjects(['manage_roles_env_dropdown']);
  1722.         dojo.byId('manage_roles_env_dropdown').disabled = true;
  1723.         dojo.byId('roles_createOrManage_GrpName_dropdownGA').disabled = true;
  1724.         $('usersInfoRolesTabGATRId').style.display = "block";
  1725.       }
  1726.       else{
  1727.         dojo.byId('rolesTabPageLinks').innerHTML ='';
  1728.         btns = [{dojoType: dijit.form.Button, label:'Create', region:'center', onClick: createRole},
  1729.                     {dojoType: dijit.form.Button, label:'Back', region:'center', onClick: getGroupRoles}];
  1730.         $('screenName_Admin_Roles').innerHTML = 'Create Group Roles';
  1731.         $('usersInfoRolesTabGATRId').style.display = "none";
  1732.         hideObjects(['manage_roles_env_dropdown']);
  1733.         showObjects(['roles_create_env_dropdown']);
  1734.         dojo.byId('roles_createOrManage_GrpName_dropdownGA').disabled = false;
  1735.       }
  1736.       for(i=0; i<btns.length; i++){
  1737.          var btn = new dijit.form.Button(btns[i]);
  1738.          dojo.byId('buttonsTab2').appendChild(btn.domNode);
  1739.       }
  1740. }
  1741.  
  1742. function removeRole(){
  1743.     if(validateRole()){
  1744.         if(confirm('Are you sure you want to delete the role '+currRole.roleName +'?')){
  1745.             var selectedEnv;
  1746.             var rolesTabGrpIdGA;
  1747.             if(document.getElementById("rolesTabManageRoleEnvId") != null){
  1748.                 selectedEnv = document.getElementById("rolesTabManageRoleEnvId").value;
  1749.             }
  1750.             if(document.getElementById("rolesTabCreateOrManageGrpRoleGrpsId") != null){
  1751.                 rolesTabGrpIdGA = document.getElementById("rolesTabCreateOrManageGrpRoleGrpsId").value;
  1752.             }
  1753.             var url = baseURL +DELETE_ROLE +currRole.roleID+"/"+selectedEnv+"/"+rolesTabGrpIdGA+"?ignoreMe=" + new Date().getTime();;  
  1754.             var reqArgs = {url: url, method: 'DELETE', load: displayStatusRmvRole, error: displayError, handleAs:'json'};
  1755.             new AJAX.pubGUI.sendRequest(reqArgs);
  1756.         }
  1757.     }
  1758. }
  1759.  
  1760. /**
  1761.  *
  1762.  * This method is used to update a group information.
  1763.  * @return
  1764.  */
  1765. function updateRole(){ 
  1766.     if(validateRole()){
  1767.         var selectedEnv;
  1768.         if(document.getElementById("rolesTabManageRoleEnvId") != null){
  1769.             selectedEnv = document.getElementById("rolesTabManageRoleEnvId").value;
  1770.         }
  1771.         var url = baseURL + UPDATE_ROLE + selectedEnv +'?ignoreMe=' + new Date().getTime();
  1772.         var json = "{\"@class\":\"Role\",\"roleID\":\""+currRole.roleID+"\",\"roleName\":\""+$F('roleNameObj')+"\"}";
  1773.         json = prepareResourceRequest(json);
  1774.         var reqArgs = {url: url, method: 'POST', postData: json, load: displayStatusUpdateRole, error: displayStatusUpdateRole, handleAs:'json'};
  1775.         new AJAX.pubGUI.sendRequest(reqArgs);
  1776.     }
  1777. }
  1778.  
  1779. function displayStatusUpdateRole(responseJSON){
  1780.     if(responseJSON.ResourceResponse != null){
  1781.         $('statusMessage_Admin').innerHTML = (responseJSON.ResourceResponse != null) ? "Role is successfully updated." :responseJSON.ResourceResponse.SuccessInfo.statusCode;
  1782.     }
  1783.     else{
  1784.         $('statusMessage_Admin').innerHTML = (responseJSON.PubGUIErrorResponse != null) ? responseJSON.PubGUIErrorResponse.ErrorMessage :responseJSON.PubGUIErrorResponse.ErrorMessage;
  1785.     }
  1786. }
  1787.  
  1788. /**
  1789.  *
  1790.  * This method is used to create a new group.
  1791.  * @return
  1792.  */
  1793. function createRole(){
  1794.     if(validateRole()){
  1795.         var selectedEnv;
  1796.         var grpID;
  1797.         if(document.getElementById("rolesTabCreateRoleEnvId") != null){
  1798.             selectedEnv = document.getElementById("rolesTabCreateRoleEnvId").value;
  1799.         }
  1800.         if(document.getElementById("rolesTabCreateOrManageGrpRoleGrpsId") != null){
  1801.             grpID = document.getElementById("rolesTabCreateOrManageGrpRoleGrpsId").value;
  1802.         }
  1803.         var url = baseURL + CREATE_ROLE + selectedEnv + "/" + grpID +'?ignoreMe=' + new Date().getTime();  
  1804.         var json = "{\"@class\":\"Role\",\"roleName\":\""+$F('roleNameObj')+"\"}";
  1805.         json = prepareResourceRequest(json);
  1806.         var reqArgs = {url: url, method: 'PUT', putData: json, load: displayStatus, error: displayError, handleAs:'json'};
  1807.         new AJAX.pubGUI.sendRequest(reqArgs);
  1808.     }
  1809. }
  1810.  
  1811. /**
  1812.  *  
  1813.  *  TAB :: COMPONENT
  1814.  *
  1815.  */
  1816.  
  1817. /**
  1818.  * To create a new component
  1819.  */
  1820. function createComponent(val){
  1821.     if(validateCreateComponent()){
  1822.         var url = baseURL + CREATE_COMPONENT;
  1823.         var test = val.parseJSON();
  1824.         var json = prepareResourceRequest("{\"@class\":\"Component\",\"componentName\":\""+test.componentName+"\"}");
  1825.         var reqArgs = {url: url, method: 'PUT', putData: json, load: displayStatusComp, error: displayErrorComp, handleAs:'json'};
  1826.         new AJAX.pubGUI.sendRequest(reqArgs);
  1827.     }
  1828.     setTimeout ("getComponentsInfo()",500);
  1829. }
  1830.  
  1831. /**
  1832.  *
  1833.  * To manage component
  1834.  *
  1835.  */
  1836. function getComponentsInfo(){
  1837.     var url = baseURL + ALL_COMPONENT +"?ignoreMe=" + (new Date()).getTime();
  1838.     if($('statusMessage_Admin')){$('statusMessage_Admin').innerHTML = '';}
  1839.     $('screenName_Admin_Components').innerHTML = 'Components Information';
  1840.     var reqArgs = {preventCache: true, url: url, method: 'GET',load: displayComponentsInfo, error: displayComponentsInfo, handleAs:'json'};
  1841.     new AJAX.pubGUI.sendRequest(reqArgs);
  1842. }
  1843.  
  1844. /**
  1845.  *
  1846.  * To manage component
  1847.  * @return
  1848.  */
  1849. function displayComponentsInfo(responseJSON){
  1850.    if (responseJSON != null && responseJSON.ResourceResponse.Components != undefined){           
  1851.       $('buttonsTab3').innerHTML = '';       
  1852.       $('componentsInfo').innerHTML = '';        
  1853.       hideObjects(['manageComponent']);
  1854.       showObjects(['componentsInfo','createComponentLinkId']);
  1855.       var componentsStructure = [      
  1856.                                     { field: 'isAssociated', name: 'Select', width: '50px', formatter:checkBoxDojo},
  1857.                                     { field: 'componentID', name: 'Component ID', width: '100px' , hidden:'true'},
  1858.                                     { field: 'componentName', name: 'Component Name', width: 'auto', formatter: showAsLink}
  1859.                                 ];
  1860.         gridID = 'id_4'+(new Date().getTime());
  1861.         var componentsDataStore = responseJSON.ResourceResponse.Components.Component;
  1862.         var grid1 = PubGUIGrid('componentsInfo',gridID,componentsStructure, componentsDataStore, 'componentsRowClickHandler');         
  1863.         var btn = new dijit.form.Button({dojoType: dijit.form.Button, label:'<div style="font-size:8pt;">Remove</div>', region:'center', onClick: removeComponent});
  1864.         dojo.byId('buttonsTab3').appendChild(btn.domNode);
  1865.     }  
  1866. }
  1867.  
  1868. function wrapWidDiv(val){
  1869.  return '<div>'+val+'</div>';  
  1870. }
  1871.  
  1872. function updateLink(val){
  1873.     var a = dojo.create('a');
  1874.     a.href = 'javascript: function(){return false;}';  
  1875.     a.className = 'alwaysBlue';
  1876.     a.innerHTML = val;
  1877.     a.title = 'Click To Update';
  1878.     return a.outerHTML;
  1879. }
  1880.  
  1881. function updateButton(){
  1882.     return new dijit.form.Button({dojoType: dijit.form.Button, label:'Click to Update', region:'center', style:'padding:0; font-size: 8pt;'});
  1883. }
  1884.  
  1885. /**
  1886.  * RowClickHandler for Components grid
  1887.  * @return
  1888.  */
  1889. function componentsRowClickHandler(evt){
  1890.     var grid = evt.grid;
  1891.     grid.selection.setSelected(evt.rowIndex, false);
  1892.     if(evt.cellIndex == 0){          
  1893.         var checkBox = (evt.target)?evt.target:evt.srcElement; 
  1894.         if(evt.target == evt.cellNode){        
  1895.             return false;
  1896.         }    
  1897.         checkBox.className = (checkBox.className=='checkBox')?'checkBoxChecked':'checkBox';
  1898.         var currVal = (checkBox.className=='checkBox')?'N':'Y';
  1899.  
  1900.         if(checkBox.className=='checkBox'){
  1901.             checkBox.innerHTML = 'N';  
  1902.             grid.getItem(evt.rowIndex).isAssociated = 'N';         
  1903.         }else{
  1904.             checkBox.innerHTML = 'Y';
  1905.             grid.getItem(evt.rowIndex).isAssociated = 'Y'; 
  1906.         }  
  1907.      }
  1908.      if(evt.cellIndex == 2){
  1909.           if(evt.target == evt.cellNode){ // so as to accept the event only when clicked on the text
  1910.                 return false;
  1911.           }    
  1912.           var rowData = grid.getItem(evt.rowIndex);      
  1913.           currComponent = rowData; // setting the component info to global variable(currComponent).
  1914.           manageComponent();
  1915.      }
  1916. }
  1917.  
  1918. /**
  1919.  * To update a component
  1920.  * @return
  1921.  */
  1922. function updateComponent(){
  1923.     if(validateUpdateComponent()){
  1924.         var componentId = currComponent.componentID;
  1925.         var componentName = $F('componentNameObj');
  1926.         var updatedComponentJSON = "{\"@class\":\"Component\",\"componentID\":\""+componentId+"\",\"componentName\":\""+componentName+"\"}";
  1927.         updatedComponentJSON = prepareResourceRequest(updatedComponentJSON);
  1928.         var url = baseURL + UPDATE_COMPONENT;
  1929.         var reqArgs = {url: url, method: 'POST', postData: updatedComponentJSON, load: displayStatusComp, error: displayErrorComp, handleAs:'json'};
  1930.         new AJAX.pubGUI.sendRequest(reqArgs);
  1931.     }
  1932. }
  1933.  
  1934. function getUpdatedComponentsInfo(){     
  1935.     var grid = dijit.byId(gridID);
  1936.     var items = [];
  1937.     var count = grid.store._arrayOfAllItems.length;
  1938.     for(var i = 0 ; i < count ; i++){
  1939.         var item = grid.store._arrayOfAllItems[i];
  1940.         if(item != null && item.isAssociated=='Y'){
  1941.             items.push(item);
  1942.         }
  1943.     }
  1944.     numCompSelected = items.length;
  1945.     var updatedComponentJSON = "{\"Component\":[";
  1946.     for(i=0; i<items.length; i++){ 
  1947.         updatedComponentJSON += "{\"componentID\":\""+(items[i].componentID)+"\",\"componentName\":\""+(items[i].componentName)+"\"},";
  1948.     }
  1949.     updatedComponentJSON = items.length!=0?updatedComponentJSON.substring(0,updatedComponentJSON.length-1):updatedComponentJSON;
  1950.     updatedComponentJSON += "]}";
  1951.     updatedComponentJSON = prepareResourceRequestForList(updatedComponentJSON);
  1952.     return updatedComponentJSON;
  1953. }
  1954.  
  1955. function removeComponent(){
  1956.     var updatedComponentJSON = getUpdatedComponentsInfo();
  1957.     if(numCompSelected == 0){
  1958.         alert("Please select at least one component to remove");
  1959.         return false;
  1960.     }
  1961.     else{
  1962.         if(confirm('Are you sure you want to delete the component(s)?')){
  1963.             var url = baseURL + DELETE_COMPONENT;  
  1964.             var reqArgs = {url: url, method: 'POST', postData: updatedComponentJSON, load: displayStatusRmvComp, error: displayError, handleAs:'json'};
  1965.             new AJAX.pubGUI.sendRequest(reqArgs);
  1966.         }
  1967.     }
  1968. }
  1969.  
  1970. function getRoleComponents(){  
  1971.     var url = baseURL +GET_ROLE_COMPONENT +currRole.roleID +"?ignoreMe=" + new Date().getTime();
  1972.     if($('statusMessage_Admin')){
  1973.         $('statusMessage_Admin').innerHTML = '';
  1974.     }
  1975.     var reqArgs = {url: url, method: 'GET', load: displayRoleComponents, error: displayRoleComponents, handleAs:'json'};
  1976.     new AJAX.pubGUI.sendRequest(reqArgs);
  1977. }
  1978.  
  1979. function displayRoleComponents(responseJSON){
  1980.     if (responseJSON.ResourceResponse.RoleComponents != undefined){
  1981.         hideObjects(['rolesInfoTableIdSA','createOrManageRole']);
  1982.         showObjects(['associateRoleComponents']);
  1983.         $('associateRoleComponents').innerHTML = '';   
  1984.         $('screenName_Admin_Roles').innerHTML = 'Associate Components to Role : '+ currRole.roleName;
  1985.         var roleComponentsStructure = [                                
  1986.                                  { field: 'isAssociated', name: 'Select', width: '50px', formatter:checkBoxDojo },
  1987.                                  { field: 'componentID', name: '<B>Component ID</B>', width: '100px' , hidden:'true'},
  1988.                                  { field: 'componentName', name: 'Component Name', width: 'auto'},
  1989.                                  { field: 'roleID', name: 'Role ID', width: 'auto', hidden:'true'}                                 
  1990.                                  ];
  1991.         var roleComponentsDataStore = responseJSON.ResourceResponse.RoleComponents.RoleComponent;
  1992.         gridID = 'id_95'+(new Date().getTime());
  1993.         var grid1 = PubGUIGrid('associateRoleComponents', gridID, roleComponentsStructure, roleComponentsDataStore);
  1994.         dojo.byId('buttonsTab2').innerHTML = '';
  1995.         var btns = [{dojoType: dijit.form.Button, label:'Save', region:'center', onClick: saveRoleComponents},
  1996.                     {dojoType: dijit.form.Button, label:'Back', region:'center', onClick: function(){createOrManageRole(false);}}];
  1997.         for(i=0; i<btns.length; i++){
  1998.             var btn = new dijit.form.Button(btns[i]);
  1999.             dojo.byId('buttonsTab2').appendChild(btn.domNode);
  2000.         }
  2001.     }  
  2002. }
  2003.  
  2004. function getUpdatedRoleCompsInfo(){  
  2005.     var grid = dijit.byId(gridID);
  2006.     var items = [];
  2007.     var count = grid.store._arrayOfAllItems.length;
  2008.     for(var i = 0 ; i < count ; i++){
  2009.         var item = grid.store._arrayOfAllItems[i];
  2010.         if(item != null && item.isAssociated=='Y'){
  2011.             items.push(item);
  2012.         }
  2013.     }
  2014.     var updatedRoleCompsJSON = "";
  2015.     if(items.length != 0){
  2016.         updatedRoleCompsJSON = "{\"RoleComponent\":[";
  2017.     for(i=0; i<items.length; i++){ 
  2018.         updatedRoleCompsJSON += "{\"roleID\":\""+currRole.roleID+"\",\"componentID\":\""+(items[i].componentID)+"\",\"componentName\":\""+currRole.roleName+"\",\"isAssociated\":\"Y\"},";
  2019.     }
  2020.     updatedRoleCompsJSON = items.length!=0?updatedRoleCompsJSON.substring(0,updatedRoleCompsJSON.length-1):updatedRoleCompsJSON;
  2021.     updatedRoleCompsJSON += "]}";
  2022.     } else {
  2023.         updatedRoleCompsJSON = "{}";
  2024.     }
  2025.     updatedRoleCompsJSON = prepareResourceRequestForList(updatedRoleCompsJSON);
  2026.     return updatedRoleCompsJSON;
  2027. }
  2028.  
  2029. function saveRoleComponents(){ 
  2030.     var updatedCompsJSON = getUpdatedRoleCompsInfo();  
  2031.     var url = baseURL +SAVE_ROLE_COMP +currRole.roleID;
  2032.     var reqArgs = {url: url, method: 'PUT', putData: updatedCompsJSON, load: displayStatus, error: displayError, handleAs:'json'};
  2033.     new AJAX.pubGUI.sendRequest(reqArgs);
  2034. }
  2035.  
  2036. function manageComponent(){
  2037.     if($('statusMessage_Admin')){
  2038.         if(!rmvRoleSuccessFlag){
  2039.             $('statusMessage_Admin').innerHTML = '';
  2040.         }
  2041.         rmvRoleSuccessFlag = false;
  2042.     }
  2043.     var rolesTabAddCompRoleId;
  2044.     if(document.getElementById("rolesTabAddCompToGrpRoleRolesId") != null){
  2045.         rolesTabAddCompRoleId = document.getElementById("rolesTabAddCompToGrpRoleRolesId").value;
  2046.     }
  2047.     populateCurrentCompId(rolesTabAddCompRoleId);
  2048.     var url = baseURL +GET_RESOURCES +rolesTabAddCompRoleId +"?ignoreMe=" + new Date().getTime();  
  2049.     var reqArgs = {url: url, method: 'GET', load: parseResourceString, error: parseResourceString, handleAs:'json'};
  2050.     new AJAX.pubGUI.sendRequest(reqArgs);
  2051. }
  2052.  
  2053. function parseResourceString(responseJSON){
  2054.     $('statusMessage_Admin').innerHTML = '';
  2055.     var myJSONObject = "{\"PubGUIButtons\":{\"PubGUIButton\":[";
  2056.     var varResourceURI = null;
  2057.     // Check for one to one mapping between COMPONENTS and RESOURCES
  2058.     if (responseJSON != undefined){
  2059.         if(responseJSON.ResourceResponse.Resources != undefined){
  2060.             if(responseJSON.ResourceResponse.Resources.Resource.length > 1){
  2061.                 alert('An Error Occurred due to bad data for resources. Please contact administrator.');
  2062.                 return;
  2063.             }
  2064.         }
  2065.     }
  2066.     if (responseJSON != null && responseJSON.ResourceResponse.Resources != undefined){
  2067.         var varResource = responseJSON.ResourceResponse.Resources.Resource;
  2068.         if(!varResource.length){
  2069.             varResource = [varResource];
  2070.         }
  2071.         if(varResource != undefined){
  2072.             varResourceURI = responseJSON.ResourceResponse.Resources.Resource.resourceURI;
  2073.         }
  2074.     }
  2075.     else{
  2076.         varResourceURI = emptySetResources;
  2077.     }
  2078.     var varIsAssociated = null;
  2079.     if (arrayCollectionBtns != undefined){
  2080.         for(var i=0; i<arrayCollectionBtns.length; i++){
  2081.             if(!(arrayCollectionBtns[i] == ACTIVE_LOAD_MANAGERS_CONST || arrayCollectionBtns[i] == FORCE_MIGRATE_CONST || arrayCollectionBtns[i] == VIEW_CLEANUP_CONST || arrayCollectionBtns[i] == ACTIVE_DISTRIBUTIONS_CONST)){
  2082.                 varIsAssociated = (varResourceURI.charAt(getButtonposition(arrayCollectionBtns[i]))==1)?"Y":"N";
  2083.                 myJSONObject += "{\"isAssociated\":\"";
  2084.                 myJSONObject += varIsAssociated;
  2085.                 myJSONObject += "\",\"pubguiBtnName\":\"";
  2086.                 myJSONObject += getButtonValue(getButtonposition(arrayCollectionBtns[i]))+"\"";
  2087.                 myJSONObject += "},";
  2088.             }
  2089.         }
  2090.     }
  2091.     if (arrayFSBtns != undefined){
  2092.         for(var i=0; i<arrayFSBtns.length; i++){
  2093.             varIsAssociated = (varResourceURI.charAt(getButtonposition(arrayFSBtns[i]))==1)?"Y":"N";
  2094.             myJSONObject += "{\"isAssociated\":\"";
  2095.             myJSONObject += varIsAssociated;
  2096.             myJSONObject += "\",\"pubguiBtnName\":\"";
  2097.             myJSONObject += getButtonValue(getButtonposition(arrayFSBtns[i]))+"\"";
  2098.             myJSONObject += "},";
  2099.         }
  2100.     }
  2101.     if (arrayCSBtns != undefined){
  2102.         for(var i=0; i<arrayCSBtns.length; i++){
  2103.             varIsAssociated = (varResourceURI.charAt(getButtonposition(arrayCSBtns[i]))==1)?"Y":"N";
  2104.             myJSONObject += "{\"isAssociated\":\"";
  2105.             myJSONObject += varIsAssociated;
  2106.             myJSONObject += "\",\"pubguiBtnName\":\"";
  2107.             myJSONObject += getButtonValue(getButtonposition(arrayCSBtns[i]))+"\"";
  2108.             myJSONObject += "},";
  2109.         }
  2110.     }
  2111.     if (arrayDDBtns != undefined){
  2112.         for(var i=0; i<arrayDDBtns.length; i++){
  2113.             varIsAssociated = (varResourceURI.charAt(getButtonposition(arrayDDBtns[i]))==1)?"Y":"N";
  2114.             myJSONObject += "{\"isAssociated\":\"";
  2115.             myJSONObject += varIsAssociated;
  2116.             myJSONObject += "\",\"pubguiBtnName\":\"";
  2117.             myJSONObject += getButtonValue(getButtonposition(arrayDDBtns[i]))+"\"";
  2118.             if(i == parseInt(arrayDDBtns.length-1)){
  2119.                 myJSONObject += "}";
  2120.             }
  2121.             else{
  2122.                 myJSONObject += "},";
  2123.             }
  2124.         }
  2125.     }
  2126.     myJSONObject += "]}}";
  2127.     showObjects(['rolesAddCompToGrpRoleInfoTableId','rolesAddCompToGrpRoleInfoId']);
  2128.     var btns = [];
  2129.     dojo.byId('buttonsTab2').innerHTML = '';
  2130.     $('rolesAddCompToGrpRoleInfoId').innerHTML = '';
  2131.     btns = [{dojoType: dijit.form.Button, label:'Save', region:'center', onClick: function(){saveResources();}},
  2132.       {dojoType: dijit.form.Button, label:'Back', region:'center', onClick: getGroupRoles}];
  2133.     if($('statusMessage_Components')){$('statusMessage_Components').innerHTML = '';}
  2134.     var resourceStructure = [                                  
  2135.                             { field: 'isAssociated', name: 'Select', width: '50px', formatter:checkBoxDojo },
  2136.                             { field: 'pubguiBtnName', name: 'PubGUI Button Names', width: 'auto'},
  2137.                            ];
  2138.     parsedResponseText = myJSONObject.parseJSON();
  2139.     var resourceDataStore = parsedResponseText.PubGUIButtons.PubGUIButton;
  2140.     gridID = 'id_5'+(new Date().getTime());
  2141.     var grid1 = PubGUIGrid('rolesAddCompToGrpRoleInfoId', gridID, resourceStructure, resourceDataStore, 'assocResourceRowClickHandler');
  2142.     for(i=0; i<btns.length; i++){
  2143.         var btn = new dijit.form.Button(btns[i]);
  2144.         dojo.byId('buttonsTab2').appendChild(btn.domNode);
  2145.     }
  2146. }
  2147.  
  2148. function saveResources(){
  2149.     var updatedResourcesJSON = getUpdatedResourcesInfo();
  2150.     var rolesTabAddCompRoleId;
  2151.     var selectedEnv;
  2152.     if(document.getElementById("rolesTabAddCompToGrpRoleRolesId") != null){
  2153.         rolesTabAddCompRoleId = document.getElementById("rolesTabAddCompToGrpRoleRolesId").value;
  2154.     }
  2155.     if(document.getElementById("rolesTabAddCompToGrpRoleEnvId") != null){
  2156.         selectedEnv = document.getElementById("rolesTabAddCompToGrpRoleEnvId").value;
  2157.     }
  2158.     var url = baseURL +SAVE_RESOURCE +rolesTabAddCompRoleId +"/" +selectedEnv +"?ignoreMe=" + new Date().getTime();
  2159.     var reqArgs = {url: url, method: 'PUT', putData: updatedResourcesJSON, load: displayStatus, error: displayError, handleAs:'json'};
  2160.     new AJAX.pubGUI.sendRequest(reqArgs);
  2161. }
  2162.  
  2163. function saveResourcesForJunUsr(){
  2164.     if(confirm("Do you really want to change resources for Global Junior User? Please note this will affect all users who have this role.")){
  2165.         var updatedResourcesJSON = getUpdatedResourcesInfo();
  2166.         var selectedEnv;
  2167.         if(document.getElementById("rolesTabCustJunUsrEnvId") != null){
  2168.             selectedEnv = document.getElementById("rolesTabCustJunUsrEnvId").value;
  2169.         }
  2170.         var url = baseURL +SAVE_RESOURCE_JUN_USR +currRole.roleID +"/" +selectedEnv +"?ignoreMe=" + new Date().getTime();
  2171.         var reqArgs = {url: url, method: 'PUT', putData: updatedResourcesJSON, load: displayStatus, error: displayError, handleAs:'json'};
  2172.         new AJAX.pubGUI.sendRequest(reqArgs);
  2173.     }
  2174. }
  2175.  
  2176. function getUpdatedResourcesInfo(){
  2177.     var grid = dijit.byId(gridID);
  2178.     var items = [];
  2179.     var count = grid.store._arrayOfAllItems.length;
  2180.     var varResourceURI = "";
  2181.     for(var i = 0 ; i < count ; i++){
  2182.         var item = grid.store._arrayOfAllItems[i];
  2183.         if(item != null){
  2184.             items.push(item);
  2185.         }
  2186.     }
  2187.     for(var i=0; i<items.length; i++){
  2188.         varResourceURI += (items[i].isAssociated=="Y")?'1':'0';
  2189.     }
  2190.     var updatedResourcesJSON = "{\"@class\":\"Resource\",\"resourceURI\":\"";
  2191.         updatedResourcesJSON += varResourceURI;
  2192.         updatedResourcesJSON += "\",\"componentID\":\"";
  2193.         updatedResourcesJSON += currComponent.componentID;
  2194.         updatedResourcesJSON += "\"}";
  2195.     updatedResourcesJSON = prepareResourceRequest(updatedResourcesJSON);
  2196.     return updatedResourcesJSON;
  2197. }
  2198.  
  2199. function assocResourceRowClickHandler(evt){
  2200.      var grid = evt.grid;
  2201.      grid.selection.setSelected(evt.rowIndex, false);
  2202.      if(evt.cellIndex == 0){                       
  2203.          var checkBox = (evt.target)?evt.target:evt.srcElement;
  2204.          if(evt.target == evt.cellNode){
  2205.              return false;
  2206.          }   
  2207.          checkBox.className = (checkBox.className=='checkBox')?'checkBoxChecked':'checkBox';
  2208.          var currVal = (checkBox.className=='checkBox')?'N':'Y';
  2209.          if(checkBox.className=='checkBox'){
  2210.              checkBox.innerHTML = 'N';
  2211.              grid.getItem(evt.rowIndex).isAssociated = 'N';            
  2212.          }
  2213.          else{
  2214.              checkBox.innerHTML = 'Y';
  2215.              grid.getItem(evt.rowIndex).isAssociated = 'Y';                    
  2216.          }                   
  2217.      }   
  2218. }
  2219.  
  2220. function validateGroup(){
  2221.     var grpName = dojo.byId('groupNameObj');
  2222.     var grpCurrentPwd = dojo.byId('groupCurPwdObj');
  2223.     var grpCurrentPwdHidden = dojo.byId('groupCurPwdHiddenObj');
  2224.     var grpPwd = dojo.byId('groupPwdObj');
  2225.     var cnfmGrpPwd = dojo.byId('groupPwdConfirmObj');
  2226.     if(( grpPwd != '' || cnfmGrpPwd != '')){
  2227.         if(grpPwd.value != cnfmGrpPwd.value){
  2228.             alert('The Group Password and Confirm Group Password must be same.');
  2229.             cnfmGrpPwd.focus();
  2230.             cnfmGrpPwd.value = '';
  2231.             return false;
  2232.         }
  2233.         else
  2234.         {
  2235.             groupPwdHiddenFieldVal = grpPwd.value;
  2236.         }
  2237.     }
  2238.     if(grpName.value == '' ){
  2239.         alert('Please enter Group Name field.');
  2240.         grpName.focus();
  2241.         return false;
  2242.     }
  2243.     //In case of create group below code is not applicable
  2244.     if ( !(document.getElementById('currGrpPasswdRowId').style.display == 'none') )
  2245.     {
  2246.         if(grpCurrentPwd.value == '' ){
  2247.             alert('Please enter the current group password.');
  2248.             grpCurrentPwd.focus();
  2249.             return false;
  2250.         }else if( grpCurrentPwd.value != grpCurrentPwdHidden.value ){
  2251.             alert('The current group password does not match. Please enter the correct password.');
  2252.             grpCurrentPwd.focus();
  2253.             return false;
  2254.         }
  2255.     }
  2256.    
  2257.     return true;
  2258. }
  2259.  
  2260. function validateRole(){
  2261.     var roleNameObj = dojo.byId('roleNameObj');
  2262.     var roleName = roleNameObj.value;
  2263.     if(roleName == ''){
  2264.         alert('Please enter all mandatory fields.');
  2265.         roleNameObj.focus();
  2266.         return false;
  2267.     }      
  2268.     return true;
  2269. }
  2270.  
  2271. function clearCompVal(){
  2272.     dojo.byId('newComponentObj').value = '';
  2273. }
  2274.  
  2275. function validateCreateComponent(){
  2276.     var newCompNameObj = dojo.byId('newComponentObj');
  2277.     var newCompName = null;
  2278.     if(newCompNameObj != undefined){
  2279.         newCompName = newCompNameObj.value;
  2280.     }
  2281.     if(newCompName == ''){
  2282.         alert('Please enter all mandatory fields.');
  2283.         dijit.byId('createComponent').show();
  2284.         newCompNameObj.focus();
  2285.         return false;
  2286.     }      
  2287.     return true;
  2288. }
  2289.  
  2290. function validateUpdateComponent(){
  2291.     var compNameObj = dojo.byId('componentNameObj');
  2292.     var compName = null;
  2293.     if(compNameObj != undefined){
  2294.         compName = compNameObj.value;
  2295.     }
  2296.     if(compName == ''){
  2297.         alert('Please enter all mandatory fields.');
  2298.         compNameObj.focus();
  2299.         return false;
  2300.     }      
  2301.     return true;
  2302. }
  2303.  
  2304. function validateUser(){
  2305.     var userIDObj = dojo.byId('userIDObj');
  2306.     var userID = userIDObj.value;
  2307.     var firstNameObj = dojo.byId('firstNameObj');
  2308.     var firstName = firstNameObj.value;
  2309.     var lastNameObj = dojo.byId('lastNameObj');
  2310.     var lastName = lastNameObj.value;
  2311.     var eMailIdObj = dojo.byId('emailIDObj');
  2312.     var eMailId = eMailIdObj.value;
  2313.     if(userID == '' || firstName == '' || lastName == '' || eMailId == ''){
  2314.         alert('Please enter all mandatory fields.');
  2315.         if(userID == ''){
  2316.             userIDObj.focus();
  2317.         }
  2318.         if(firstName == ''){
  2319.             firstNameObj.focus();
  2320.         }
  2321.         if(lastName == ''){
  2322.             lastNameObj.focus();
  2323.         }
  2324.         if(eMailId == ''){
  2325.             eMailIdObj.focus();
  2326.         }
  2327.         return false;
  2328.     }
  2329.     if(hasSpecialChars(userID,"'$@!#%^&*()_-+={}[]|\\:;'?/><~ `")){
  2330.         alert('No special characters are allowed for User ID field.');
  2331.         userIDObj.focus();
  2332.         return false;
  2333.     }
  2334.     if(!validateEMailId(eMailId)){
  2335.         alert('Please enter a valid E-mail ID.');
  2336.         eMailIdObj.focus();
  2337.         return false;
  2338.     }
  2339.     return true;
  2340. }
  2341.  
  2342. function searchUser(){
  2343.         var searchUserId = ($('searchUserIDObj').value=="")?encodeURIComponent(" "):encodeURIComponent($('searchUserIDObj').value);
  2344.         var searchFirstName = ($('searchFirstNameObj').value=="")?encodeURIComponent(" "):encodeURIComponent($('searchFirstNameObj').value);
  2345.         var searchLastName = ($('searchLastNameObj').value=="")?encodeURIComponent(" "):encodeURIComponent($('searchLastNameObj').value);
  2346.         var searchEmailId = encodeURIComponent(" ");
  2347.         var url = baseURL + SEARCH_USERS +searchUserId +"/"+searchFirstName+"/"+searchLastName+"/"+searchEmailId+'?ignoreMe='+new Date().getTime();
  2348.         var reqArgs = {url: url, method: 'GET', load: displaySearchInfo, error: displaySearchInfoErr, handleAs:'json'};
  2349.         new AJAX.pubGUI.sendRequest(reqArgs);
  2350. }
  2351.  
  2352. function displaySearchInfo(responseJSON){
  2353.     if (responseJSON != null && responseJSON.ResourceResponse != undefined){   
  2354.         $('searchUsersInfo').innerHTML = '';
  2355.         $('statusMessage_SearchUser').innerHTML = '';
  2356.         var searchUsersStructure = [
  2357.                             { name: '', width: '20px'},                
  2358.                             { field: 'userID', name: 'User ID', width: '100px', formatter: showAsLink},
  2359.                             { field: 'firstName', name: 'First Name', width: '100px'},
  2360.                             { field: 'lastName', name: 'Last Name', width: '100px'},
  2361.                             { field: 'emailID', name: 'E-mail ID', width: 'auto'},
  2362.                             { field: 'associatedEnvCds', name: 'Environments Associated', hidden:'true'}
  2363.                            ];
  2364.         var searchUsersDataStore = responseJSON.ResourceResponse.Users.User;
  2365.         if(!searchUsersDataStore.length){
  2366.             searchUsersDataStore = [searchUsersDataStore];
  2367.         }
  2368.         var grid1 = PubGUIGrid('searchUsersInfo', 'id_10'+(new Date().getTime()), searchUsersStructure, searchUsersDataStore, 'searchUsersRowClickHandler');
  2369.         showObjects(['searchUsersInfo']);
  2370.         dijit.byId('searchUserDialog').show();
  2371.     }
  2372. }
  2373.  
  2374. function displaySearchInfoErr(responseJSON){
  2375.     dijit.byId('searchUserDialog').show();
  2376.     hideObjects(['searchUsersInfo']);
  2377.     responseJSON = responseJSON.responseText;
  2378.     var response = responseJSON.parseJSON();
  2379.     $('statusMessage_SearchUser').innerHTML = (response.PubGUIErrorResponse != null) ? response.PubGUIErrorResponse.ErrorMessage :response.PubGUIErrorResponse.ErrorMessage;
  2380. }
  2381.  
  2382. function searchUsersRowClickHandler(evt){
  2383.     var grid = evt.grid;
  2384.     grid.selection.setSelected(evt.rowIndex, false);
  2385.     dijit.byId('searchUserDialog').hide();
  2386.     if(evt.cellIndex == 1){      
  2387.         if(evt.target == evt.cellNode){ // so as to accept the event only when clicked on the text
  2388.            return false;
  2389.         }        
  2390.         var rowData = grid.getItem(evt.rowIndex);        
  2391.         currUser = rowData; // setting the group info to global variable(currGroup).
  2392.         createOrManageUser();
  2393.     }  
  2394. }
  2395.  
  2396. function clearSearchScreen(){
  2397.     dojo.byId('searchUserIDObj').value = '';
  2398.     dojo.byId('searchFirstNameObj').value = '';
  2399.     dojo.byId('searchLastNameObj').value = '';
  2400.     $('statusMessage_SearchUser').innerHTML = '';
  2401.     hideObjects(['searchUsersInfo']);
  2402. }
  2403.  
  2404. function checkUserId(param){
  2405.     var userIdLen = param.value.length;
  2406.     if(userIdLen != 0 && userIdLen < 3){
  2407.         alert('Please enter atleast three characters for user id.');
  2408.         $('searchUserIDObj').value = '';
  2409.     }
  2410. }
  2411.  
  2412. function checkFirstName(param){
  2413.     var firstNameLen = param.value.length;
  2414.     if(firstNameLen != 0 && firstNameLen < 3){
  2415.         alert('Please enter atleast three characters for first name.');
  2416.         $('searchFirstNameObj').value = '';
  2417.     }
  2418. }
  2419.  
  2420. function checkLastName(param){
  2421.     var lastNameLen = param.value.length;
  2422.     if(lastNameLen != 0 && lastNameLen < 3){
  2423.         alert('Please enter atleast three characters for last name.');
  2424.         $('searchLastNameObj').value = '';
  2425.     }
  2426. }
  2427.  
  2428. function getPredefinedRoles(){
  2429.     if($('statusMessage_Admin')){
  2430.         if(!rmvUserSuccessFlag){
  2431.             $('statusMessage_Admin').innerHTML = '';
  2432.         }
  2433.         rmvUserSuccessFlag = false;
  2434.     }
  2435.     var selectedEnv;
  2436.     if(document.getElementById("usersTabEnvironmentIdSA") != null){
  2437.         selectedEnv = document.getElementById("usersTabEnvironmentIdSA").value;
  2438.     }
  2439.     var url = baseURL + GET_PREDEFINED_ROLES +selectedEnv +"?ignoreMe=" + new Date().getTime();
  2440.     if($('statusMessage_Admin')){
  2441.         if(!rmvRoleSuccessFlag){
  2442.             $('statusMessage_Admin').innerHTML = '';
  2443.         }
  2444.         rmvRoleSuccessFlag = false;
  2445.     }
  2446.     var reqArgs = {url: url, method: 'GET',load: displayPredefinedRoles, error: displayPredefinedRoles, handleAs:'json'};
  2447.     new AJAX.pubGUI.sendRequest(reqArgs);
  2448. }
  2449.  
  2450. function displayPredefinedRoles(responseJSON){
  2451.     var select = dojo.create('select');
  2452.     select.id = "usersTabRolesId";     
  2453.     select.setAttribute('style','font-family: arial; font-size: 9pt;');
  2454.     if (responseJSON != null && responseJSON.ResourceResponse.Roles != undefined){
  2455.         var tempRolesObjectForPubGUI = responseJSON.ResourceResponse.Roles.Role;   
  2456.         if(!tempRolesObjectForPubGUI.length){
  2457.             tempRolesObjectForPubGUI = [tempRolesObjectForPubGUI];
  2458.         }
  2459.         for (i=0; i<tempRolesObjectForPubGUI.length; i++){
  2460.             rolesPubGUI = tempRolesObjectForPubGUI[i];
  2461.             var option = dojo.create('option');
  2462.             option.value = rolesPubGUI.roleID;
  2463.             if(i==0){
  2464.                 userRoleID_global = rolesPubGUI.roleID;
  2465.             }
  2466.             option.innerHTML = rolesPubGUI.roleName;   
  2467.             select.appendChild(option);
  2468.         }
  2469.         dojo.connect(select, 'onchange', getAllUserForAppRole);
  2470.         dojo.byId('users_role_dropdownSA').innerHTML = '';
  2471.         dojo.byId('users_role_dropdownSA').appendChild(select);
  2472.     }
  2473.     getAllUserForAppRole();
  2474. }
  2475.  
  2476. function displayGAGroupsForRoles(responseJSON){
  2477.     var select = dojo.create('select');
  2478.     select.id = "rolesTabGrpsId";      
  2479.     select.setAttribute('style','font-family: arial; font-size: 9pt;');
  2480.     if (responseJSON != null && responseJSON.ResourceResponse.Groups.Group != undefined){
  2481.         var tempGroupsObjectForPubGUI = responseJSON.ResourceResponse.Groups.Group;
  2482.         if(!tempGroupsObjectForPubGUI.length){
  2483.             tempGroupsObjectForPubGUI = [tempGroupsObjectForPubGUI];
  2484.         }
  2485.         for (i=0; i<tempGroupsObjectForPubGUI.length; i++){
  2486.             rolesPubGUI = tempGroupsObjectForPubGUI[i];
  2487.             var option = dojo.create('option');
  2488.             option.value = rolesPubGUI.groupID;
  2489.             option.innerHTML = rolesPubGUI.groupName;  
  2490.             select.appendChild(option);
  2491.         }
  2492.         dojo.connect(select, 'onchange', getGroupRoles);
  2493.         dojo.byId('roles_group_dropdownGA').innerHTML = '';
  2494.         dojo.byId('roles_group_dropdownGA').appendChild(select);
  2495.     }
  2496.     else{
  2497.         dojo.byId('roles_group_dropdownGA').innerHTML = '';
  2498.         dojo.byId('roles_group_dropdownGA').appendChild(select);
  2499.     }
  2500.     getGroupRoles();
  2501. }
  2502.  
  2503. function displayGAGroupsForCreateGrpRoles(responseJSON){
  2504.     var select = dojo.create('select');
  2505.     select.id = "rolesTabCreateOrManageGrpRoleGrpsId";     
  2506.     select.setAttribute('style','font-family: arial; font-size: 9pt;');
  2507.     if (responseJSON != null && responseJSON.ResourceResponse.Groups.Group != undefined){
  2508.         var tempGroupsObjectForPubGUI = responseJSON.ResourceResponse.Groups.Group;
  2509.         if(!tempGroupsObjectForPubGUI.length){
  2510.             tempGroupsObjectForPubGUI = [tempGroupsObjectForPubGUI];
  2511.         }
  2512.         for (i=0; i<tempGroupsObjectForPubGUI.length; i++){
  2513.             rolesPubGUI = tempGroupsObjectForPubGUI[i];
  2514.             var option = dojo.create('option');
  2515.             option.value = rolesPubGUI.groupID;
  2516.             option.innerHTML = rolesPubGUI.groupName;  
  2517.             select.appendChild(option);
  2518.         }
  2519.         if(currRole.roleID != ''){
  2520.             dojo.connect(select, 'onchange', getGroupRoles);
  2521.         }
  2522.         dojo.byId('roles_createOrManage_GrpName_dropdownGA').innerHTML = '';
  2523.         dojo.byId('roles_createOrManage_GrpName_dropdownGA').appendChild(select);
  2524.     }
  2525.     else{
  2526.         dojo.byId('roles_createOrManage_GrpName_dropdownGA').innerHTML = '';
  2527.         dojo.byId('roles_createOrManage_GrpName_dropdownGA').appendChild(select);
  2528.     }
  2529.     if(currRole.roleID != ''){
  2530.         select.selectedIndex = rolesTabGroupSelectedIndexGA;
  2531.     }
  2532.     else{
  2533.         select.selectedIndex = 0;
  2534.     }
  2535.     getUsersInfoCreateOrManageRolesTab();
  2536. }
  2537.  
  2538. function displayGAGroupsForUsers(responseJSON){
  2539.     var select = dojo.create('select');
  2540.     select.id = "usersTabGrpsId";      
  2541.     select.setAttribute('style','font-family: arial; font-size: 9pt;');
  2542.     if (responseJSON != null && responseJSON.ResourceResponse.Groups.Group != undefined){
  2543.         var tempGroupsObjectForPubGUI = responseJSON.ResourceResponse.Groups.Group;
  2544.         if(!tempGroupsObjectForPubGUI.length){
  2545.             tempGroupsObjectForPubGUI = [tempGroupsObjectForPubGUI];
  2546.         }
  2547.         for (i=0; i<tempGroupsObjectForPubGUI.length; i++){
  2548.             groupsPubGUI = tempGroupsObjectForPubGUI[i];
  2549.             var option = dojo.create('option');
  2550.             option.value = groupsPubGUI.groupID;
  2551.             option.innerHTML = groupsPubGUI.groupName; 
  2552.             select.appendChild(option);
  2553.         }
  2554.         dojo.connect(select, 'onchange', getGroupUsers);
  2555.         dojo.byId('users_group_dropdownGA').innerHTML = '';
  2556.         dojo.byId('users_group_dropdownGA').appendChild(select);
  2557.     }
  2558.     else{
  2559.         dojo.byId('users_group_dropdownGA').innerHTML = '';
  2560.         dojo.byId('users_group_dropdownGA').appendChild(select);
  2561.     }
  2562.     getGroupUsers();
  2563. }
  2564.  
  2565. function displayGAGroupsForUsersGrpRole(responseJSON){
  2566.     var select = dojo.create('select');
  2567.     select.id = "usersTabGrpRoleGrpsId";       
  2568.     select.setAttribute('style','font-family: arial; font-size: 9pt;');
  2569.     if (responseJSON != null && responseJSON.ResourceResponse.Groups.Group != undefined){
  2570.         var tempGroupsObjectForPubGUI = responseJSON.ResourceResponse.Groups.Group;
  2571.         if(!tempGroupsObjectForPubGUI.length){
  2572.             tempGroupsObjectForPubGUI = [tempGroupsObjectForPubGUI];
  2573.         }
  2574.         for (i=0; i<tempGroupsObjectForPubGUI.length; i++){
  2575.             groupsPubGUI = tempGroupsObjectForPubGUI[i];
  2576.             var option = dojo.create('option');
  2577.             option.value = groupsPubGUI.groupID;
  2578.             option.innerHTML = groupsPubGUI.groupName; 
  2579.             select.appendChild(option);
  2580.         }
  2581.         dojo.connect(select, 'onchange', getGroupRolesUsersTab);
  2582.         dojo.connect(select, 'onchange', getUsersInfo);
  2583.         dojo.byId('usersgrprole_group_dropdownGA').innerHTML = '';
  2584.         dojo.byId('usersgrprole_group_dropdownGA').appendChild(select);
  2585.     }
  2586.     else{
  2587.         dojo.byId('usersgrprole_group_dropdownGA').innerHTML = '';
  2588.         dojo.byId('usersgrprole_group_dropdownGA').appendChild(select);
  2589.     }
  2590.     getGroupRolesUsersTab();
  2591. }
  2592.  
  2593. function getGroupRolesUsersTab(){  
  2594.     if($('statusMessage_Admin')){
  2595.         if(!rmvUserSuccessFlag){
  2596.             $('statusMessage_Admin').innerHTML = '';
  2597.         }
  2598.         rmvUserSuccessFlag = false;
  2599.     }
  2600.     var selectedEnv;
  2601.     var usersTabGrpRoleGrpId;
  2602.     if(document.getElementById("usersTabGrpRoleGrpsId") != null){
  2603.         usersTabGrpRoleGrpId = document.getElementById("usersTabGrpRoleGrpsId").value;
  2604.     }
  2605.     if(document.getElementById("usersTabUserGrpRolesEnvironmentId") != null){
  2606.         selectedEnv = document.getElementById("usersTabUserGrpRolesEnvironmentId").value;
  2607.     }
  2608.     var url = baseURL + GET_GRP_ROLE +usersTabGrpRoleGrpId +"/" +selectedEnv+"?ignoreMe=" + new Date().getTime();  
  2609.     var reqArgs = {url: url, method: 'GET',load: displayGroupRolesUsersTab, error: displayGroupRolesUsersTab, handleAs:'json'};
  2610.     new AJAX.pubGUI.sendRequest(reqArgs);
  2611. }
  2612.  
  2613. function displayGroupRolesUsersTab(responseJSON){
  2614.     var select = dojo.create('select');
  2615.     select.id = "usersTabGrpRoleRolesId";      
  2616.     select.setAttribute('style','font-family: arial; font-size: 9pt;');
  2617.     if (responseJSON.ResourceResponse.GroupRoles.GroupRole != undefined){
  2618.         var tempGroupsObjectForPubGUI = responseJSON.ResourceResponse.GroupRoles.GroupRole;
  2619.         if(!tempGroupsObjectForPubGUI.length){
  2620.             tempGroupsObjectForPubGUI = [tempGroupsObjectForPubGUI];
  2621.         }
  2622.         for (i=0; i<tempGroupsObjectForPubGUI.length; i++){
  2623.             groupsPubGUI = tempGroupsObjectForPubGUI[i];
  2624.             var option = dojo.create('option');
  2625.             option.value = groupsPubGUI.roleID;
  2626.             option.innerHTML = groupsPubGUI.roleName;
  2627.             select.appendChild(option);
  2628.         }
  2629.         dojo.connect(select, 'onchange', getUsersInfo);
  2630.         dojo.byId('usersgrprole_role_dropdownGA').innerHTML = '';
  2631.         dojo.byId('usersgrprole_role_dropdownGA').appendChild(select);
  2632.     }
  2633.     else{
  2634.         dojo.byId('usersgrprole_role_dropdownGA').innerHTML = '';
  2635.         dojo.byId('usersgrprole_role_dropdownGA').appendChild(select);
  2636.     }
  2637.     getUsersInfo();
  2638. }
  2639.  
  2640. function getUsersInfoCreateOrManageRolesTab(){
  2641.     var selectedEnv;
  2642.     var rolesTabGrpIdGA;
  2643.     if(document.getElementById("rolesTabCreateRoleEnvId") != null){
  2644.         selectedEnv = document.getElementById("rolesTabCreateRoleEnvId").value;
  2645.     }
  2646.     if(document.getElementById("rolesTabCreateOrManageGrpRoleGrpsId") != null){
  2647.         rolesTabGrpIdGA = document.getElementById("rolesTabCreateOrManageGrpRoleGrpsId").value;
  2648.     }
  2649.     var url = baseURL + ALL_USERS_CREATE_OR_MANAGE_ROLE +selectedEnv+"/"+rolesTabGrpIdGA+"/"+currRole.roleID+"?ignoreMe=" + new Date().getTime();  
  2650.     var reqArgs = {url: url, method: 'GET', load: displayUsersInfoCreateOrManageRolesTab, error: displayUsersInfoCreateOrManageRolesTab, handleAs:'json'};
  2651.     new AJAX.pubGUI.sendRequest(reqArgs);
  2652. }
  2653.  
  2654. function displayUsersInfoCreateOrManageRolesTab(responseJSON){
  2655.     if (responseJSON != null && responseJSON.ResourceResponse.Users != undefined){   
  2656.         showObjects(['createOrManageRole','usersInfoRolesTabGAId']);
  2657.         $('usersInfoRolesTabGAId').innerHTML = ''; 
  2658.         var userRoleStructure = [  
  2659.                                 { field: 'isGrpMember', name: 'Group Member', width: '0px', hidden:'true' },
  2660.                                 { field: 'userID', name: 'User ID',  width: '70px'},
  2661.                                 { field: 'firstName', name: 'First Name', width: '80px'},
  2662.                                 { field: 'lastName', name: 'Last Name', width: '80px'},
  2663.                                 { field: 'emailID', name: 'E-mail ID', width: '250px'},
  2664.                                 { field: 'associatedEnvCds', name: 'Associated Envs', width: '0px', hidden:'true'}
  2665.                                ];
  2666.         var userRoleDataStore = responseJSON.ResourceResponse.Users.User;
  2667.         gridID = 'id_91'+(new Date().getTime());
  2668.         var grid1 = PubGUIGrid('usersInfoRolesTabGAId', gridID, userRoleStructure, userRoleDataStore, 'usersRoleRowClickHandlerGA');
  2669.     }
  2670.     else{
  2671.         $('usersInfoRolesTabGAId').innerHTML = "<span style='color: red; font-weight: bold; font-size: 8pt;' >No Records Found</span>";
  2672.     }
  2673. }
  2674.  
  2675. function addCompToGrpRoles(){
  2676.       hideObjects(['rolesInfoTableIdSA','rolesInfoSA','associateRoleComponents','rolesInfoTableIdGA','rolesInfoGA']);
  2677.       showObjects(['rolesAddCompToGrpRoleInfoTableId']);
  2678.       $('screenName_Admin_Roles').innerHTML = 'Add Components to Group Roles';
  2679.       $('buttonsTab2').innerHTML = '';     
  2680.       $('rolesTabPageLinks').innerHTML = '';
  2681.       $('usersInfoRolesTabGAId').innerHTML = '';
  2682.       var btns = [];
  2683.       if($('statusMessage_Admin')){
  2684.         $('statusMessage_Admin').innerHTML = '';
  2685.       }
  2686.       btns = [{dojoType: dijit.form.Button, label:'Update', region:'center',onClick: updateRole},
  2687.                   {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: getGroupRoles}];      
  2688.       for(i=0; i<btns.length; i++){
  2689.          var btn = new dijit.form.Button(btns[i]);
  2690.          dojo.byId('buttonsTab2').appendChild(btn.domNode);
  2691.       }
  2692. }
  2693.  
  2694. function getGAGroupsForAddCompToGrpRoleRolesTab(){ 
  2695.     if($('statusMessage_Admin')){
  2696.         if(!rmvRoleSuccessFlag){
  2697.             $('statusMessage_Admin').innerHTML = '';
  2698.         }
  2699.         rmvRoleSuccessFlag = false;
  2700.     }
  2701.     var selectedEnv;
  2702.     if(document.getElementById("rolesTabAddCompToGrpRoleEnvId") != null){
  2703.         selectedEnv = document.getElementById("rolesTabAddCompToGrpRoleEnvId").value;
  2704.     }
  2705.     var url = baseURL + ALL_GA_GROUPS +selectedEnv+"/"+safeUser.uid+'?ignoreMe=' + new Date().getTime();
  2706.     var reqArgs = {url: url, method: 'GET', load: displayGAGroupsForAddCompToGrpRole, error: displayGAGroupsForAddCompToGrpRole, handleAs:'json'};
  2707.     new AJAX.pubGUI.sendRequest(reqArgs);
  2708. }
  2709.  
  2710. function displayGAGroupsForAddCompToGrpRole(responseJSON){
  2711.     var select = dojo.create('select');
  2712.     select.id = "rolesTabAddCompToGrpRoleGrpsId";      
  2713.     select.setAttribute('style','font-family: arial; font-size: 9pt;');
  2714.     if (responseJSON != null && responseJSON.ResourceResponse.Groups.Group != undefined){
  2715.         var tempGroupsObjectForPubGUI = responseJSON.ResourceResponse.Groups.Group;
  2716.         if(!tempGroupsObjectForPubGUI.length){
  2717.             tempGroupsObjectForPubGUI = [tempGroupsObjectForPubGUI];
  2718.         }
  2719.         for (i=0; i<tempGroupsObjectForPubGUI.length; i++){
  2720.             rolesPubGUI = tempGroupsObjectForPubGUI[i];
  2721.             var option = dojo.create('option');
  2722.             option.value = rolesPubGUI.groupID;
  2723.             option.innerHTML = rolesPubGUI.groupName;  
  2724.             select.appendChild(option);
  2725.         }
  2726.         dojo.connect(select, 'onchange', getGroupRolesForAddCompToGrpRole);
  2727.         dojo.connect(select, 'onchange', manageComponent);
  2728.         dojo.byId('roles_addcomptogrprole_group_dropdown').innerHTML = '';
  2729.         dojo.byId('roles_addcomptogrprole_group_dropdown').appendChild(select);
  2730.     }
  2731.     else{
  2732.         dojo.byId('roles_addcomptogrprole_group_dropdown').innerHTML = '';
  2733.         dojo.byId('roles_addcomptogrprole_group_dropdown').appendChild(select);
  2734.     }
  2735.     getGroupRolesForAddCompToGrpRole();
  2736. }
  2737.  
  2738. function getGroupRolesForAddCompToGrpRole(){
  2739.     if($('statusMessage_Admin')){
  2740.         if(!rmvRoleSuccessFlag){
  2741.             $('statusMessage_Admin').innerHTML = '';
  2742.         }
  2743.         rmvRoleSuccessFlag = false;
  2744.     }
  2745.     var selectedEnv;
  2746.     var rolesTabGrpId;
  2747.     if(document.getElementById("rolesTabAddCompToGrpRoleGrpsId") != null){
  2748.         rolesTabGrpId = document.getElementById("rolesTabAddCompToGrpRoleGrpsId").value;
  2749.     }
  2750.     if(document.getElementById("rolesTabAddCompToGrpRoleEnvId") != null){
  2751.         selectedEnv = document.getElementById("rolesTabAddCompToGrpRoleEnvId").value;
  2752.     }
  2753.     var url = baseURL + GET_GRP_ROLE +rolesTabGrpId +"/" +selectedEnv+"?ignoreMe=" + new Date().getTime(); 
  2754.     if($('statusMessage_Admin')){
  2755.         if(!rmvRoleSuccessFlag){
  2756.             $('statusMessage_Admin').innerHTML = '';
  2757.         }
  2758.         rmvRoleSuccessFlag = false;
  2759.     }
  2760.     var reqArgs = {url: url, method: 'GET',load: displayGroupRolesCombo, error: displayGroupRolesCombo, handleAs:'json'};
  2761.     new AJAX.pubGUI.sendRequest(reqArgs);
  2762. }
  2763.  
  2764. function displayGroupRolesCombo(responseJSON){
  2765.     var select = dojo.create('select');
  2766.     select.id = "rolesTabAddCompToGrpRoleRolesId";     
  2767.     select.setAttribute('style','font-family: arial; font-size: 9pt;');
  2768.     if (responseJSON != null && responseJSON.ResourceResponse.GroupRoles.GroupRole != undefined){
  2769.         var tempGroupsObjectForPubGUI = responseJSON.ResourceResponse.GroupRoles.GroupRole;
  2770.         if(!tempGroupsObjectForPubGUI.length){
  2771.             tempGroupsObjectForPubGUI = [tempGroupsObjectForPubGUI];
  2772.         }
  2773.         for (i=0; i<tempGroupsObjectForPubGUI.length; i++){
  2774.             rolesPubGUI = tempGroupsObjectForPubGUI[i];
  2775.             var option = dojo.create('option');
  2776.             option.value = rolesPubGUI.roleID;
  2777.             option.innerHTML = rolesPubGUI.roleName;   
  2778.             select.appendChild(option);
  2779.         }
  2780.         dojo.connect(select, 'onchange', manageComponent);
  2781.         dojo.connect(select, 'onchange', this, populateCurrentCompId);
  2782.         dojo.byId('roles_addcomptogrprole_role_dropdown').innerHTML = '';
  2783.         dojo.byId('roles_addcomptogrprole_role_dropdown').appendChild(select);
  2784.     }
  2785.     else{
  2786.         dojo.byId('roles_addcomptogrprole_role_dropdown').innerHTML = '';
  2787.         dojo.byId('roles_addcomptogrprole_role_dropdown').appendChild(select);
  2788.     }
  2789.     manageComponent();
  2790. }
  2791.  
  2792. function populateCurrentCompId(roleIdParam){
  2793.     var url = baseURL + GET_COMP_FOR_ROLE +roleIdParam+'?ignoreMe=' + new Date().getTime();
  2794.     var reqArgs = {url: url, method: 'GET', load: setCurrentCompId, error: setCurrentCompId, handleAs:'json'};
  2795.     new AJAX.pubGUI.sendRequest(reqArgs);
  2796. }
  2797.  
  2798. function setCurrentCompId(responseJSON){
  2799.     if (responseJSON != null && responseJSON.ResourceResponse.RoleComponent != undefined){
  2800.         currComponent.componentID = responseJSON.ResourceResponse.RoleComponent.componentID;
  2801.     }
  2802. }
  2803.  
  2804. function displayCustJunUsrDetails(){
  2805.     var url = baseURL +GET_RESOURCES +currRole.roleID +"?ignoreMe=" + new Date().getTime();
  2806.     var reqArgs = {url: url, method: 'GET', load: parseResourceStringCustJunUsr, error: parseResourceStringCustJunUsr, handleAs:'json'};
  2807.     new AJAX.pubGUI.sendRequest(reqArgs);
  2808. }
  2809.  
  2810. function parseResourceStringCustJunUsr(responseJSON){
  2811.     var myJSONObject = "{\"PubGUIButtons\":{\"PubGUIButton\":[";
  2812.     var varResourceURI = null;
  2813.     // Check for one to one mapping between COMPONENTS and RESOURCES
  2814.     if (responseJSON != undefined){
  2815.         if(responseJSON.ResourceResponse.Resources != undefined){
  2816.             if(responseJSON.ResourceResponse.Resources.Resource.length > 1){
  2817.                 alert('An Error Occurred due to bad data for resources. Please contact administrator.');
  2818.                 return;
  2819.             }
  2820.         }
  2821.     }
  2822.     if (responseJSON != null && responseJSON.ResourceResponse.Resources != undefined){
  2823.         var varResource = responseJSON.ResourceResponse.Resources.Resource;
  2824.         if(!varResource.length){
  2825.             varResource = [varResource];
  2826.         }
  2827.         if(varResource != undefined){
  2828.             varResourceURI = responseJSON.ResourceResponse.Resources.Resource.resourceURI;
  2829.         }
  2830.     }
  2831.     else{
  2832.         varResourceURI = emptySetResources;
  2833.     }
  2834.     var varIsAssociated = null;
  2835.     if (arrayCollectionBtns != undefined){
  2836.         for(var i=0; i<arrayCollectionBtns.length; i++){
  2837.             if(!(arrayCollectionBtns[i] == ACTIVE_LOAD_MANAGERS_CONST || arrayCollectionBtns[i] == FORCE_MIGRATE_CONST || arrayCollectionBtns[i] == VIEW_CLEANUP_CONST || arrayCollectionBtns[i] == ACTIVE_DISTRIBUTIONS_CONST)){
  2838.                 varIsAssociated = (varResourceURI.charAt(getButtonposition(arrayCollectionBtns[i]))==1)?"Y":"N";
  2839.                 myJSONObject += "{\"isAssociated\":\"";
  2840.                 myJSONObject += varIsAssociated;
  2841.                 myJSONObject += "\",\"pubguiBtnName\":\"";
  2842.                 myJSONObject += getButtonValue(getButtonposition(arrayCollectionBtns[i]))+"\"";
  2843.                 myJSONObject += "},";
  2844.             }
  2845.         }
  2846.     }
  2847.     if (arrayFSBtns != undefined){
  2848.         for(var i=0; i<arrayFSBtns.length; i++){
  2849.             varIsAssociated = (varResourceURI.charAt(getButtonposition(arrayFSBtns[i]))==1)?"Y":"N";
  2850.             myJSONObject += "{\"isAssociated\":\"";
  2851.             myJSONObject += varIsAssociated;
  2852.             myJSONObject += "\",\"pubguiBtnName\":\"";
  2853.             myJSONObject += getButtonValue(getButtonposition(arrayFSBtns[i]))+"\"";
  2854.             myJSONObject += "},";
  2855.         }
  2856.     }
  2857.     if (arrayCSBtns != undefined){
  2858.         for(var i=0; i<arrayCSBtns.length; i++){
  2859.             varIsAssociated = (varResourceURI.charAt(getButtonposition(arrayCSBtns[i]))==1)?"Y":"N";
  2860.             myJSONObject += "{\"isAssociated\":\"";
  2861.             myJSONObject += varIsAssociated;
  2862.             myJSONObject += "\",\"pubguiBtnName\":\"";
  2863.             myJSONObject += getButtonValue(getButtonposition(arrayCSBtns[i]))+"\"";
  2864.             myJSONObject += "},";
  2865.         }
  2866.     }
  2867.     if (arrayDDBtns != undefined){
  2868.         for(var i=0; i<arrayDDBtns.length; i++){
  2869.             varIsAssociated = (varResourceURI.charAt(getButtonposition(arrayDDBtns[i]))==1)?"Y":"N";
  2870.             myJSONObject += "{\"isAssociated\":\"";
  2871.             myJSONObject += varIsAssociated;
  2872.             myJSONObject += "\",\"pubguiBtnName\":\"";
  2873.             myJSONObject += getButtonValue(getButtonposition(arrayDDBtns[i]))+"\"";
  2874.             if(i == parseInt(arrayDDBtns.length-1)){
  2875.                 myJSONObject += "}";
  2876.             }
  2877.             else{
  2878.                 myJSONObject += "},";
  2879.             }
  2880.         }
  2881.     }
  2882.     myJSONObject += "]}}";
  2883.     hideObjects(['rolesInfoTableIdSA','rolesInfoSA','rolesTabPageLinks']);
  2884.     showObjects(['rolesCustJunUsrTableId','rolesCustJunUsrId']);
  2885.     var btns = [];
  2886.     $('screenName_Admin_Roles').innerHTML = 'Customize Global Junior User Role';
  2887.     dojo.byId('buttonsTab2').innerHTML = '';
  2888.     $('rolesCustJunUsrId').innerHTML = '';
  2889.     btns = [{dojoType: dijit.form.Button, label:'Save', region:'center', onClick: function(){saveResourcesForJunUsr();}},
  2890.       {dojoType: dijit.form.Button, label:'Back', region:'center', onClick: getRolesInfoSA}];
  2891.     if($('statusMessage_Components')){$('statusMessage_Components').innerHTML = '';}
  2892.     var resourceStructure = [                                  
  2893.                             { field: 'isAssociated', name: 'Select', width: '50px', formatter:checkBoxDojo },
  2894.                             { field: 'pubguiBtnName', name: 'PubGUI Button Names', width: 'auto'},
  2895.                            ];
  2896.     parsedResponseText = myJSONObject.parseJSON();
  2897.     var resourceDataStore = parsedResponseText.PubGUIButtons.PubGUIButton;
  2898.     gridID = 'id_5'+(new Date().getTime());
  2899.     var grid1 = PubGUIGrid('rolesCustJunUsrId', gridID, resourceStructure, resourceDataStore, 'assocResourceRowClickHandler');
  2900.     for(i=0; i<btns.length; i++){
  2901.         var btn = new dijit.form.Button(btns[i]);
  2902.         dojo.byId('buttonsTab2').appendChild(btn.domNode);
  2903.     }
  2904. }
  2905.  
  2906. function displayAssociatedResources(rolesTabAssocResRoleId){
  2907.     var url = baseURL +GET_RESOURCES +rolesTabAssocResRoleId +"?ignoreMe=" + new Date().getTime(); 
  2908.     var reqArgs = {url: url, method: 'GET', load: parseResourceStringAssocRes, error: parseResourceStringAssocRes, handleAs:'json'};
  2909.     new AJAX.pubGUI.sendRequest(reqArgs);  
  2910. }
  2911.  
  2912. function parseResourceStringAssocRes(responseJSON){
  2913.     $('statusMessage_Admin').innerHTML = '';
  2914.     var myJSONObject = "{\"PubGUIButtons\":{\"PubGUIButton\":[";
  2915.     var varResourceURI = null;
  2916.     // Check for one to one mapping between COMPONENTS and RESOURCES
  2917.     if (responseJSON != undefined){
  2918.         if(responseJSON.ResourceResponse.Resources != undefined){
  2919.             if(responseJSON.ResourceResponse.Resources.Resource.length > 1){
  2920.                 alert('An Error Occurred due to bad data for resources. Please contact administrator.');
  2921.                 return;
  2922.             }
  2923.         }
  2924.     }
  2925.     if (responseJSON != null && responseJSON.ResourceResponse.Resources != undefined){
  2926.         var varResource = responseJSON.ResourceResponse.Resources.Resource;
  2927.         if(!varResource.length){
  2928.             varResource = [varResource];
  2929.         }
  2930.         if(varResource != undefined){
  2931.             varResourceURI = responseJSON.ResourceResponse.Resources.Resource.resourceURI;
  2932.         }
  2933.     }
  2934.     else{
  2935.         varResourceURI = emptySetResources;
  2936.     }
  2937.     var varIsAssociated = null;
  2938.     if (arrayCollectionBtns != undefined){
  2939.         for(var i=0; i<arrayCollectionBtns.length; i++){
  2940.             varIsAssociated = (varResourceURI.charAt(getButtonposition(arrayCollectionBtns[i]))==1)?"Y":"N";
  2941.             myJSONObject += "{\"isAssociated\":\"";
  2942.             myJSONObject += varIsAssociated;
  2943.             myJSONObject += "\",\"pubguiBtnName\":\"";
  2944.             myJSONObject += getButtonValue(getButtonposition(arrayCollectionBtns[i]))+"\"";
  2945.             myJSONObject += "},";
  2946.         }
  2947.     }
  2948.     if (arrayFSBtns != undefined){
  2949.         for(var i=0; i<arrayFSBtns.length; i++){
  2950.             varIsAssociated = (varResourceURI.charAt(getButtonposition(arrayFSBtns[i]))==1)?"Y":"N";
  2951.             myJSONObject += "{\"isAssociated\":\"";
  2952.             myJSONObject += varIsAssociated;
  2953.             myJSONObject += "\",\"pubguiBtnName\":\"";
  2954.             myJSONObject += getButtonValue(getButtonposition(arrayFSBtns[i]))+"\"";
  2955.             myJSONObject += "},";
  2956.         }
  2957.     }
  2958.     if (arrayCSBtns != undefined){
  2959.         for(var i=0; i<arrayCSBtns.length; i++){
  2960.             varIsAssociated = (varResourceURI.charAt(getButtonposition(arrayCSBtns[i]))==1)?"Y":"N";
  2961.             myJSONObject += "{\"isAssociated\":\"";
  2962.             myJSONObject += varIsAssociated;
  2963.             myJSONObject += "\",\"pubguiBtnName\":\"";
  2964.             myJSONObject += getButtonValue(getButtonposition(arrayCSBtns[i]))+"\"";
  2965.             myJSONObject += "},";
  2966.         }
  2967.     }
  2968.     if (arrayDDBtns != undefined){
  2969.         for(var i=0; i<arrayDDBtns.length; i++){
  2970.             varIsAssociated = (varResourceURI.charAt(getButtonposition(arrayDDBtns[i]))==1)?"Y":"N";
  2971.             myJSONObject += "{\"isAssociated\":\"";
  2972.             myJSONObject += varIsAssociated;
  2973.             myJSONObject += "\",\"pubguiBtnName\":\"";
  2974.             myJSONObject += getButtonValue(getButtonposition(arrayDDBtns[i]))+"\"";
  2975.             if(i == parseInt(arrayDDBtns.length-1)){
  2976.                 myJSONObject += "}";
  2977.             }
  2978.             else{
  2979.                 myJSONObject += "},";
  2980.             }
  2981.         }
  2982.     }
  2983.     myJSONObject += "]}}";
  2984.     hideObjects(['rolesInfoTableIdSA','rolesInfoSA']);
  2985.     showObjects(['showRoleResourcesId','showRoleResources','rolesTabPageLinks']);
  2986.     var btns = [];
  2987.     dojo.byId('buttonsTab2').innerHTML = '';
  2988.     $('showRoleResources').innerHTML = '';
  2989.     btns = [{dojoType: dijit.form.Button, label:'Save', region:'center', onClick: function(){saveResources();}},
  2990.       {dojoType: dijit.form.Button, label:'Back', region:'center', onClick: getRolesInfoSA}];
  2991.     if($('statusMessage_Components')){$('statusMessage_Components').innerHTML = '';}
  2992.     var resourceStructure = [                                  
  2993.                             { field: 'isAssociated', name: 'Select', width: '50px', hidden:'true'},
  2994.                             { field: 'pubguiBtnName', name: 'PubGUI Button Names', width: 'auto'},
  2995.                            ];
  2996.     parsedResponseText = myJSONObject.parseJSON();
  2997.     var resourceDataStore = parsedResponseText.PubGUIButtons.PubGUIButton;
  2998.     resourceDataStore = dojo.filter(resourceDataStore, function(item){ return item.isAssociated=='Y'; });
  2999.     gridID = 'id_5'+(new Date().getTime());
  3000.     var grid1 = PubGUIGrid('showRoleResources', gridID, resourceStructure, resourceDataStore, 'assocResourceRowClickHandler');
  3001. }
  3002.  
  3003. function displayAssociatedResourcesSA(rolesTabAssocResRoleId){
  3004.     var url = baseURL +GET_RESOURCES +rolesTabAssocResRoleId +"?ignoreMe=" + new Date().getTime(); 
  3005.     var reqArgs = {url: url, method: 'GET', load: parseResourceStringAssocResSA, error: parseResourceStringAssocResSA, handleAs:'json'};
  3006.     new AJAX.pubGUI.sendRequest(reqArgs);  
  3007. }
  3008.  
  3009. function parseResourceStringAssocResSA(responseJSON){
  3010.     $('statusMessage_Admin').innerHTML = '';
  3011.     $('showRoleResourcesSA').innerHTML = '';
  3012.     var myJSONObject = "{\"PubGUIButtons\":{\"PubGUIButton\":[";
  3013.     var varResourceURI = null;
  3014.     // Check for one to one mapping between COMPONENTS and RESOURCES
  3015.     if (responseJSON != undefined){
  3016.         if(responseJSON.ResourceResponse.Resources != undefined){
  3017.             if(responseJSON.ResourceResponse.Resources.Resource.length > 1){
  3018.                 alert('An Error Occurred due to bad data for resources. Please contact administrator.');
  3019.                 return;
  3020.             }
  3021.         }
  3022.     }
  3023.     if (responseJSON != null && responseJSON.ResourceResponse.Resources != undefined){
  3024.         var varResource = responseJSON.ResourceResponse.Resources.Resource;
  3025.         if(!varResource.length){
  3026.             varResource = [varResource];
  3027.         }
  3028.         if(varResource != undefined){
  3029.             varResourceURI = responseJSON.ResourceResponse.Resources.Resource.resourceURI;
  3030.         }
  3031.     }
  3032.     else{
  3033.         varResourceURI = emptySetResources;
  3034.     }
  3035.     var varIsAssociated = null;
  3036.     if (arrayCollectionBtns != undefined){
  3037.         for(var i=0; i<arrayCollectionBtns.length; i++){
  3038.             varIsAssociated = (varResourceURI.charAt(getButtonposition(arrayCollectionBtns[i]))==1)?"Y":"N";
  3039.             myJSONObject += "{\"isAssociated\":\"";
  3040.             myJSONObject += varIsAssociated;
  3041.             myJSONObject += "\",\"pubguiBtnName\":\"";
  3042.             myJSONObject += getButtonValue(getButtonposition(arrayCollectionBtns[i]))+"\"";
  3043.             myJSONObject += "},";
  3044.         }
  3045.     }
  3046.     if (arrayFSBtns != undefined){
  3047.         for(var i=0; i<arrayFSBtns.length; i++){
  3048.             varIsAssociated = (varResourceURI.charAt(getButtonposition(arrayFSBtns[i]))==1)?"Y":"N";
  3049.             myJSONObject += "{\"isAssociated\":\"";
  3050.             myJSONObject += varIsAssociated;
  3051.             myJSONObject += "\",\"pubguiBtnName\":\"";
  3052.             myJSONObject += getButtonValue(getButtonposition(arrayFSBtns[i]))+"\"";
  3053.             myJSONObject += "},";
  3054.         }
  3055.     }
  3056.     if (arrayCSBtns != undefined){
  3057.         for(var i=0; i<arrayCSBtns.length; i++){
  3058.             varIsAssociated = (varResourceURI.charAt(getButtonposition(arrayCSBtns[i]))==1)?"Y":"N";
  3059.             myJSONObject += "{\"isAssociated\":\"";
  3060.             myJSONObject += varIsAssociated;
  3061.             myJSONObject += "\",\"pubguiBtnName\":\"";
  3062.             myJSONObject += getButtonValue(getButtonposition(arrayCSBtns[i]))+"\"";
  3063.             myJSONObject += "},";
  3064.         }
  3065.     }
  3066.     if (arrayDDBtns != undefined){
  3067.         for(var i=0; i<arrayDDBtns.length; i++){
  3068.             varIsAssociated = (varResourceURI.charAt(getButtonposition(arrayDDBtns[i]))==1)?"Y":"N";
  3069.             myJSONObject += "{\"isAssociated\":\"";
  3070.             myJSONObject += varIsAssociated;
  3071.             myJSONObject += "\",\"pubguiBtnName\":\"";
  3072.             myJSONObject += getButtonValue(getButtonposition(arrayDDBtns[i]))+"\"";
  3073.             if(i == parseInt(arrayDDBtns.length-1)){
  3074.                 myJSONObject += "}";
  3075.             }
  3076.             else{
  3077.                 myJSONObject += "},";
  3078.             }
  3079.         }
  3080.     }
  3081.     myJSONObject += "]}}";
  3082.     showObjects(['buttonNamesDialog','showRoleResourcesSA']);
  3083.     var btns = [];
  3084.     dojo.byId('buttonsTab2').innerHTML = '';
  3085.     btns = [{dojoType: dijit.form.Button, label:'Save', region:'center', onClick: function(){saveResources();}},
  3086.       {dojoType: dijit.form.Button, label:'Back', region:'center', onClick: getRolesInfoSA}];
  3087.     if($('statusMessage_Components')){$('statusMessage_Components').innerHTML = '';}
  3088.     var resourceStructure = [                                  
  3089.                             { field: 'isAssociated', name: 'Select', width: '50px', hidden:'true'},
  3090.                             { field: 'pubguiBtnName', name: 'PubGUI Button Names', width: 'auto'},
  3091.                            ];
  3092.     parsedResponseText = myJSONObject.parseJSON();
  3093.     var resourceDataStore = parsedResponseText.PubGUIButtons.PubGUIButton;
  3094.     resourceDataStore = dojo.filter(resourceDataStore, function(item){ return item.isAssociated=='Y'; });
  3095.     gridID = 'id_5'+(new Date().getTime());
  3096.     var grid1 = PubGUIGrid('showRoleResourcesSA', gridID, resourceStructure, resourceDataStore, 'assocResourceRowClickHandler');
  3097. }
  3098.  
  3099. function getJunUsrRoleId(){
  3100.     if($('statusMessage_Admin')){
  3101.         if(!rmvRoleSuccessFlag){
  3102.             $('statusMessage_Admin').innerHTML = '';
  3103.         }
  3104.         rmvRoleSuccessFlag = false;
  3105.     }
  3106.     var selectedEnv;
  3107.     if(document.getElementById("rolesTabCustJunUsrEnvId") != null){
  3108.         selectedEnv = document.getElementById("rolesTabCustJunUsrEnvId").value;
  3109.     }
  3110.     var url = baseURL +GET_JUN_USR_ROLEID +selectedEnv +"?ignoreMe=" + new Date().getTime();
  3111.     var reqArgs = {url: url, method: 'GET', load: populateJunUsrRoleId, error: populateJunUsrRoleId, handleAs:'json'};
  3112.     new AJAX.pubGUI.sendRequest(reqArgs);  
  3113. }
  3114.  
  3115. function populateJunUsrRoleId(responseJSON){
  3116.     if (responseJSON != null && responseJSON.ResourceResponse.Role != undefined){
  3117.         var currRoleID = responseJSON.ResourceResponse.Role.roleID;
  3118.         currRole.roleID = currRoleID;
  3119.         populateCurrentCompId(currRoleID);
  3120.     }
  3121.     displayCustJunUsrDetails();
  3122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement