Advertisement
Guest User

Untitled

a guest
Jul 7th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 65.59 KB | None | 0 0
  1. /*
  2. * common constants for Admin tab
  3. */
  4. var ALL_USERS = "/admin/users/allappusers";
  5. var ALL_GROUPS = "/admin/groups/allappgroups";
  6. var CREATE_GROUPS = "/admin/groups/group";
  7. var CREATE_USER = "/admin/users/user";
  8. var CREATE_ROLE = "/admin/roles/role";
  9. var UPDATE_USERS = "/admin/users/user";
  10. var DELETE_USERS = "/admin/users/user/";
  11. var UPDATE_GROUPS = "/admin/groups/group";
  12. var DELETE_GROUPS = "/admin/groups/group/";
  13. var ALL_ROLES = "/admin/roles/allapproles";
  14. var UPDATE_ROLE = "/admin/roles/role";
  15. var DELETE_ROLE = "/admin/roles/role/";
  16. var CREATE_COMPONENT = "/admin/components/component";
  17. var ALL_COMPONENT = "/admin/components/allappcomponents";
  18. var UPDATE_COMPONENT = "/admin/components/component";
  19. var DELETE_COMPONENT = "/admin/components/components";
  20. var GET_GRP_ROLE = "/admin/groups/grouprole/";
  21. var GET_GRP_USER_FOR_GRP = "/admin/groups/groupuser/";
  22. var GET_ROLE_COMPONENT = "/admin/roles/rolecomponent/";
  23. var SAVE_RESOURCE = "/admin/components/compresources/";
  24. var GET_RESOURCES = "/admin/components/resources/";
  25. var SAVE_GROUP_ROLE = "/admin/groups/grouprole/";
  26. var SAVE_GROUP_USER = "/admin/groups/groupuser/";
  27. var SAVE_ROLE_COMP = "/admin/roles/rolecomponent/";
  28. var SAVE_USER_ROLE = "/admin/users/userrole/";
  29. var GET_USR_GROUP = "/admin/users/groupuser/";
  30. var GET_USR_ROLE = "/admin/users/userrole/";
  31. var SAVE_USER_GROUP = "/admin/users/groupuser/";
  32. var SEARCH_USERS = "/admin/users/searchUser/";
  33. var PREDEFINED_ROLES = "/admin/roles/predefinedRoles/";
  34. var ALL_USERS_FOR_ROLE = "/admin/users/allapproleusers/";
  35. var changedGroupIndexRolesTab = '0';
  36. var varGrpsTabName = "Groups";
  37. var varRolesTabName = "Roles";
  38. var varComponentsTabName = "Components";
  39. var varUsersTabName = "Users";
  40. var jsonObj = [[]];
  41. var compClickedButtonId = null;
  42. var gridID = null;
  43. var currGroup = {};
  44. var currRole = {};
  45. var currComponent = {};
  46. var currUser = {};
  47. var groupID_global = 'ALL';
  48. var userRoleID_global = '';
  49. var emptySetResources = '00000000000000000000000000000000000000000';
  50. var rmvGroupSuccessFlag = false;
  51. var rmvRoleSuccessFlag = false;
  52. var rmvUserSuccessFlag = false;
  53. var numCompSelected = 0;
  54. var usersSelectEnv = null;
  55.  
  56. /**
  57. * The java script function getGroupsInfo makes an ajax call to retrieve the groups json.
  58. */
  59. function getGroupsInfo(){
  60. var url = baseURL + ALL_GROUPS +'?ignoreMe=' + new Date().getTime();
  61. if($('statusMessage_Admin')){
  62. if(!rmvGroupSuccessFlag){
  63. $('statusMessage_Admin').innerHTML = '';
  64. }
  65. rmvGroupSuccessFlag = false;
  66. }
  67. var reqArgs = {url: url, method: 'GET', load: displayGroupsInfo, error: displayGroupsInfo1, handleAs:'json'};
  68. new AJAX.pubGUI.sendRequest(reqArgs);
  69. }
  70.  
  71. function displayGroupsInfo1(reponseJSON){
  72. ;
  73. }
  74. /**
  75. * This handles the response for displaying the groups info
  76. * @return
  77. */
  78. function displayGroupsInfo(reponseJSON){
  79. $('buttonsTab').innerHTML = '';
  80. if (reponseJSON != null && reponseJSON.ResourceResponse != undefined){
  81. dojo.byId('groupsInfo').innerHTML = '';
  82. hideObjects(['groupUsersInfo','groupRolesInfo','createOrManageGroup','associateGroupRoles']);
  83. showObjects(['groupsInfo','groupTabPageLinks']);
  84. $('screenName_Admin_Groups').innerHTML = 'Groups Information';
  85. dojo.byId('groupTabPageLinks').innerHTML ='<a class="alwaysBlue" href="#" onclick="javascript: createOrManageGroup(true);">Create Group</a>';
  86. var groupsStructure = [
  87. { name: '', width: '20px'},
  88. { field: 'groupName', name: 'Group Name', width: 'auto', formatter: showAsLink},
  89. { field: 'groupID', name: 'Group ID', width: 'auto', hidden:'true'},
  90. { field: 'groupPassword', name: 'Group Password', width: 'auto', hidden:'true'},
  91. { field: 'description', name: 'Description', width: 'auto', hidden:'true'}
  92. ];
  93. var groupsDataStore = reponseJSON.ResourceResponse.Groups.Group;
  94. var grid1 = PubGUIGrid('groupsInfo','id_'+(new Date()),groupsStructure, groupsDataStore, 'groupsRowClickHandler');
  95. }
  96. }
  97.  
  98. function showAsLink(val){
  99. if(val){
  100. var a = dojo.create('a');
  101. a.href = 'javascript: function(){return false;}';
  102. a.className = 'alwaysBlue';
  103. a.innerHTML = val;
  104. return a.outerHTML;
  105. }
  106. else{
  107. return " ";
  108. }
  109. }
  110.  
  111. function groupsRowClickHandler(evt){
  112. var grid = evt.grid;
  113. grid.selection.setSelected(evt.rowIndex, false);
  114.  
  115. if(evt.cellIndex == 1){
  116. if(evt.target == evt.cellNode){ // so as to accept the event only when clicked on the text
  117. return false;
  118. }
  119. var rowData = grid.getItem(evt.rowIndex);
  120. currGroup = rowData; // setting the group info to global variable(currGroup).
  121. createOrManageGroup();
  122. }
  123. }
  124.  
  125. function createOrManageGroup(isNewGroupRequest){
  126.  
  127. currGroup = (isNewGroupRequest==true) ? {groupID:'', groupName:'', groupPassword:'', description:''}:currGroup;
  128. dojo.byId('groupNameObj').value = currGroup.groupName;
  129. dojo.byId('groupPwdObj').value = currGroup.groupPassword;
  130. dojo.byId('groupPwdConfirmObj').value = currGroup.groupPassword;
  131. dojo.byId('groupDescriptionObj').value = (currGroup.description == undefined)?"":currGroup.description;
  132.  
  133. hideObjects(['groupsInfo','groupUsersInfo','groupRolesInfo','createOrManageGroup','associateGroupRoles']);
  134. showObjects(['createOrManageGroup']);
  135. if($('statusMessage_Admin')){
  136. $('statusMessage_Admin').innerHTML = '';
  137. }
  138. var btns = [];
  139. dojo.byId('buttonsTab').innerHTML = '';
  140. var linksGroupsTab = '<a class="alwaysBlue" href="#" onclick="javascript: createOrManageGroup(true);">Create Group</a> ';
  141. if(currGroup.groupName != ''){
  142. linksGroupsTab += '| <a class="alwaysBlue" href="#" onclick="javascript: getGroupUsers();">Associate Users</a> | '+
  143. '<a class="alwaysBlue" href="#" onclick="javascript: getGroupRoles();">Associate Roles</a>';
  144. btns = [{dojoType: dijit.form.Button, label:'Update', region:'center',onClick: updateGroup},
  145. {dojoType: dijit.form.Button, label:'Remove', region:'center',onClick: removeGroup},
  146. {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: getGroupsInfo}];
  147. $('screenName_Admin_Groups').innerHTML = 'Manage Group : '+currGroup.groupName;
  148. dojo.byId('groupTabPageLinks').innerHTML = linksGroupsTab;
  149. }else{
  150. btns = [{dojoType: dijit.form.Button, label:'Create', region:'center',onClick: createGroup},
  151. {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: getGroupsInfo}];
  152. $('screenName_Admin_Groups').innerHTML = 'Create Group';
  153. dojo.byId('groupTabPageLinks').innerHTML = '';
  154. }
  155. for(i=0; i<btns.length; i++){
  156. var btn = new dijit.form.Button(btns[i]);
  157. dojo.byId('buttonsTab').appendChild(btn.domNode);
  158. }
  159. }
  160. /**
  161. *
  162. * This method is used to remove a group
  163. * @return
  164. */
  165. function removeGroup(){
  166. if(validateGroup()){
  167. if(confirm('Are you sure you want to delete the group '+$F('groupNameObj') +'?')){
  168. var url = baseURL +DELETE_GROUPS +encodeURIComponent($F('groupNameObj'));
  169. var reqArgs = {url: url, method: 'DELETE', load: displayStatusRmvGrp, error: displayError, handleAs:'json'};
  170. new AJAX.pubGUI.sendRequest(reqArgs);
  171. }
  172. }
  173. }
  174. /**
  175. *
  176. * This method is used to update a group information.
  177. * @return
  178. */
  179. function updateGroup(){
  180. if(validateGroup()){
  181. var url = baseURL + UPDATE_GROUPS;
  182. var json = "{\"@class\":\"Group\",\"groupID\":\""+currGroup.groupID+"\",\"groupName\":\""+$F('groupNameObj')+"\",\"groupPassword\":\""+$F('groupPwdObj')+"\", \"description\":\""+$F('groupDescriptionObj')+"\"}";
  183. json = prepareResourceRequest(json);
  184. var reqArgs = {url: url, method: 'POST', postData:json, load: displayStatus, error: displayError, handleAs:'json'};
  185. new AJAX.pubGUI.sendRequest(reqArgs);
  186. }
  187. }
  188. /**
  189. *
  190. * This method is used to create a new group.
  191. * @return
  192. */
  193. function createGroup(){
  194. if(validateGroup()){
  195. var url = baseURL + CREATE_GROUPS;
  196. var json = "{\"@class\":\"Group\", \"groupName\":\""+$F('groupNameObj')+"\",\"groupPassword\":\""+$F('groupPwdObj')+"\", \"description\":\""+$F('groupDescriptionObj')+"\"}";
  197. json = prepareResourceRequest(json);
  198. var reqArgs = {url: url, method: 'PUT', putData:json, load: displayStatus, error: displayError, handleAs:'json'};
  199. new AJAX.pubGUI.sendRequest(reqArgs);
  200. }
  201. }
  202.  
  203. /**
  204. * This method is used to dispaly the status info after creating or managing a group
  205. * @return
  206. */
  207. function displayStatus(responseJSON){
  208. $('statusMessage_Admin').innerHTML = (responseJSON.ResourceResponse != null) ? responseJSON.ResourceResponse.SuccessInfo.message :responseJSON.ResourceResponse.SuccessInfo.statusCode;
  209. }
  210.  
  211. function displayError(responseJSON){
  212. responseJSON = responseJSON.responseText;
  213. var response = responseJSON.parseJSON();
  214. $('statusMessage_Admin').innerHTML = (response.PubGUIErrorResponse != null) ? response.PubGUIErrorResponse.ErrorMessage :response.PubGUIErrorResponse.ErrorMessage;
  215. }
  216.  
  217. function displayStatusComp(responseJSON){
  218. $('statusMessage_Components').innerHTML = (responseJSON.ResourceResponse != null) ? responseJSON.ResourceResponse.SuccessInfo.message :responseJSON.ResourceResponse.SuccessInfo.statusCode;
  219. }
  220.  
  221. function displayErrorComp(responseJSON){
  222. responseJSON = responseJSON.responseText;
  223. var response = responseJSON.parseJSON();
  224. $('statusMessage_Components').innerHTML = (response.PubGUIErrorResponse != null) ? response.PubGUIErrorResponse.ErrorMessage :response.PubGUIErrorResponse.ErrorMessage;
  225. }
  226.  
  227.  
  228. function displayStatusRmvGrp(responseJSON){
  229. $('statusMessage_Admin').innerHTML = (responseJSON.ResourceResponse != null) ? "Group is successfully removed." :responseJSON.ResourceResponse.SuccessInfo.statusCode;
  230. rmvGroupSuccessFlag = true;
  231. getGroupsInfo();
  232. }
  233.  
  234. function displayStatusRmvRole(responseJSON){
  235. $('statusMessage_Admin').innerHTML = (responseJSON.ResourceResponse != null) ? "Role is successfully removed." :responseJSON.ResourceResponse.SuccessInfo.statusCode;
  236. rmvRoleSuccessFlag = true;
  237. getRolesInfo();
  238. }
  239.  
  240. function displayStatusRmvUser(responseJSON){
  241. $('statusMessage_Admin').innerHTML = (responseJSON.ResourceResponse != null) ? "User is successfully removed." :responseJSON.ResourceResponse.SuccessInfo.statusCode;
  242. rmvUserSuccessFlag = true;
  243. getAllUserForAppRole();
  244. }
  245.  
  246. function displayStatusRmvComp(responseJSON){
  247. $('statusMessage_Components').innerHTML = (responseJSON.ResourceResponse != null) ? "Component(s) successfully removed." :responseJSON.ResourceResponse.SuccessInfo.statusCode;
  248. getComponentsInfo();
  249. }
  250.  
  251. function getGroupUsers(){
  252. var groupID = currGroup.groupID;
  253. if($('statusMessage_Admin')){
  254. $('statusMessage_Admin').innerHTML = '';
  255. }
  256. var url = baseURL + GET_GRP_USER_FOR_GRP +groupID +"?ignoreMe=" + new Date().getTime();
  257. var reqArgs = {url: url, method: 'GET', load: displayGroupUsers, error: displayGroupUsers, handleAs:'json'};
  258. new AJAX.pubGUI.sendRequest(reqArgs);
  259. }
  260.  
  261. function displayGroupUsers(responseJSON){
  262. if (responseJSON.ResourceResponse.Users != undefined){
  263. hideObjects(['groupsInfo','groupUsersInfo','groupRolesInfo','createOrManageGroup','associateGroupRoles']);
  264. showObjects(['groupUsersInfo']);
  265. $('groupUsersInfo').innerHTML = '';
  266. $('screenName_Admin_Groups').innerHTML = 'Associate Users to Group : '+currGroup.groupName;
  267. var groupUserStructure = [
  268. { field: 'isAssociated', name: 'Select', width: '50px', formatter:checkBoxDojo },
  269. { field: 'userID', name: '<B>User ID</B>', width: '100px'},
  270. { field: 'firstName', name: 'First Name', width: '100px'},
  271. { field: 'lastName', name: 'Last Name', width: '100px'},
  272. { field: 'emailID', name: 'E-mail ID', width: 'auto'}
  273. ];
  274. var groupUserDataStore = responseJSON.ResourceResponse.Users.User;
  275. gridID = 'id_'+(new Date());
  276. var grid1 = PubGUIGrid('groupUsersInfo',gridID,groupUserStructure, groupUserDataStore, 'assocGroupRowClickHandler');
  277. dojo.byId('buttonsTab').innerHTML = '';
  278. var btns = [{dojoType: dijit.form.Button, label:'Save', region:'center',onClick: saveGroupUsers},
  279. {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: createOrManageGroup}];
  280.  
  281. for(i=0; i<btns.length; i++){
  282. var btn = new dijit.form.Button(btns[i]);
  283. dojo.byId('buttonsTab').appendChild(btn.domNode);
  284. }
  285. }
  286. }
  287.  
  288. function checkBoxDojo(value){
  289. var div = dojo.create('div');
  290. div.className = value=='Y'?'checkBoxChecked':'checkBox';
  291. div.innerHTML = value;
  292. return div.outerHTML;
  293. }
  294.  
  295. function assocGroupRowClickHandler(evt){
  296. var grid = evt.grid;
  297. grid.selection.setSelected(evt.rowIndex, false);
  298. if(evt.cellIndex == 0){
  299. var checkBox = (evt.target)?evt.target:evt.srcElement;
  300. if(evt.target == evt.cellNode){
  301. return false;
  302. }
  303. checkBox.className = (checkBox.className=='checkBox')?'checkBoxChecked':'checkBox';
  304. var currVal = (checkBox.className=='checkBox')?'N':'Y';
  305.  
  306. if(checkBox.className=='checkBox'){
  307. checkBox.innerHTML = 'N';
  308. grid.getItem(evt.rowIndex).isAssociated = 'N';
  309. }else{
  310. checkBox.innerHTML = 'Y';
  311. grid.getItem(evt.rowIndex).isAssociated = 'Y';
  312. }
  313. }
  314. }
  315.  
  316. function getUpdatedGroupUsersInfo(){
  317. var grid = dijit.byId(gridID);
  318. var items = [];
  319. var count = grid.store._arrayOfAllItems.length;
  320. for(var i = 0 ; i < count ; i++){
  321. var item = grid.store._arrayOfAllItems[i];
  322. if(item != null && item.isAssociated=='Y'){
  323. items.push(item);
  324. }
  325. }
  326. var updatedGroupUsersJSON = "";
  327. if(items.length != 0){
  328. updatedGroupUsersJSON = "{\"GroupUser\":[";
  329. for(i=0; i<items.length; i++){
  330. updatedGroupUsersJSON += "{\"groupID\":\""+currGroup.groupID+"\",\"userID\":\""+(items[i].userID)+"\",\"groupName\":\""+currGroup.groupName+"\",\"isAssociated\":\"Y\"},";
  331. }
  332. updatedGroupUsersJSON = items.length!=0?updatedGroupUsersJSON.substring(0,updatedGroupUsersJSON.length-1):updatedGroupUsersJSON;
  333. updatedGroupUsersJSON += "]}";
  334. } else {
  335. updatedGroupUsersJSON = "{}";
  336. }
  337. updatedGroupUsersJSON = prepareResourceRequestForList(updatedGroupUsersJSON);
  338. return updatedGroupUsersJSON;
  339. }
  340.  
  341. function saveGroupUsers(){
  342. var updatedUsersJSON = getUpdatedGroupUsersInfo();
  343. var url = baseURL +SAVE_GROUP_USER +currGroup.groupID;
  344. var reqArgs = {url: url, method: 'PUT', putData:updatedUsersJSON, load: displayStatus, error: displayError, handleAs:'json'};
  345. new AJAX.pubGUI.sendRequest(reqArgs);
  346. }
  347.  
  348. function getGroupRoles(){
  349. var groupID = currGroup.groupID;
  350. var url = baseURL + GET_GRP_ROLE +groupID +"?ignoreMe=" + new Date().getTime();
  351. if($('statusMessage_Admin')){
  352. $('statusMessage_Admin').innerHTML = '';
  353. }
  354. var reqArgs = {url: url, method: 'GET',load: displayGroupRoles, error: displayGroupRoles, handleAs:'json'};
  355. new AJAX.pubGUI.sendRequest(reqArgs);
  356. }
  357.  
  358. function displayGroupRoles(responseJSON){
  359. if (responseJSON.ResourceResponse.GroupRoles != undefined){
  360. hideObjects(['groupsInfo','groupUsersInfo','groupRolesInfo','createOrManageGroup','associateGroupRoles']);
  361. showObjects(['groupRolesInfo']);
  362. $('groupRolesInfo').innerHTML = '';
  363. $('screenName_Admin_Groups').innerHTML = 'Associate Roles to Group : '+currGroup.groupName;
  364. var groupRoleStructure = [
  365. { field: 'isAssociated', name: 'Select', width: '50px', formatter:checkBoxDojo },
  366. { field: 'roleID', name: '<B>Role ID</B>', width: '100px' , hidden:'true'},
  367. { field: 'roleName', name: 'Role Name', width: 'auto'},
  368. { field: 'groupID', name: 'Group ID', width: 'auto', hidden:'true'}
  369. ];
  370. var groupRoleDataStore = responseJSON.ResourceResponse.GroupRoles.GroupRole;
  371. if(!groupRoleDataStore.length){
  372. groupRoleDataStore = [groupRoleDataStore];
  373. }
  374. gridID = 'id_'+(new Date());
  375. var grid1 = PubGUIGrid('groupRolesInfo',gridID,groupRoleStructure, groupRoleDataStore, 'assocGroupRowClickHandler');
  376. dojo.byId('buttonsTab').innerHTML = '';
  377. var btns = [{dojoType: dijit.form.Button, label:'Save', region:'center',onClick: saveGroupRoles},
  378. {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: createOrManageGroup}];
  379. for(i=0; i<btns.length; i++){
  380. var btn = new dijit.form.Button(btns[i]);
  381. dojo.byId('buttonsTab').appendChild(btn.domNode);
  382. }
  383. }
  384. }
  385.  
  386.  
  387. function getUpdatedGroupRolesInfo(){
  388. var grid = dijit.byId(gridID);
  389. var items = [];
  390. var count = grid.store._arrayOfAllItems.length;
  391. for(var i = 0 ; i < count ; i++){
  392. var item = grid.store._arrayOfAllItems[i];
  393. if(item != null && item.isAssociated=='Y'){
  394. items.push(item);
  395. }
  396. }
  397. var updatedGroupRolesJSON = "";
  398. if(items.length != 0){
  399. updatedGroupRolesJSON = "{\"GroupRole\":[";
  400. for(i=0; i<items.length; i++){
  401. updatedGroupRolesJSON += "{\"groupID\":\""+currGroup.groupID+"\",\"roleID\":\""+(items[i].roleID)+"\",\"roleName\":\""+(items[i].roleName)+"\",\"isAssociated\":\"Y\"},";
  402. }
  403. updatedGroupRolesJSON = items.length!=0?updatedGroupRolesJSON.substring(0,updatedGroupRolesJSON.length-1):updatedGroupRolesJSON;
  404. updatedGroupRolesJSON += "]}";
  405. } else {
  406. updatedGroupRolesJSON = "{}";
  407. }
  408. updatedGroupRolesJSON = prepareResourceRequestForList(updatedGroupRolesJSON);
  409. return updatedGroupRolesJSON;
  410. }
  411.  
  412. function saveGroupRoles(){
  413. var updatedRolesJSON = getUpdatedGroupRolesInfo();
  414. var url = baseURL + SAVE_GROUP_ROLE +currGroup.groupID;
  415. var reqArgs = {url: url, method: 'PUT', putData: updatedRolesJSON,load: displayStatus, error: displayError, handleAs:'json'};
  416. new AJAX.pubGUI.sendRequest(reqArgs);
  417. }
  418.  
  419. /**
  420. * TAB :: USERS
  421. *
  422. */
  423.  
  424. function getUsersInfo(){
  425. var url = baseURL + ALL_USERS +"?ignoreMe=" + new Date().getTime();
  426. if($('statusMessage_Admin')){
  427. if(!rmvUserSuccessFlag){
  428. $('statusMessage_Admin').innerHTML = '';
  429. }
  430. rmvUserSuccessFlag = false;
  431. }
  432. var reqArgs = {url: url, method: 'GET', load: displayUsersInfo, error: displayUsersInfo, handleAs:'json'};
  433. new AJAX.pubGUI.sendRequest(reqArgs);
  434. }
  435.  
  436. function displayUsersInfo(reponseJSON){
  437. if (reponseJSON != null && reponseJSON.ResourceResponse.Users != undefined){
  438. /*showObjects(['usersInfoTableId','usersInfo']);
  439. hideObjects(['createOrManageUser']);
  440. $('buttonsTab1').innerHTML = '';
  441. $('usersInfo').innerHTML = '';
  442. if(usersRoleName == 'Super Admin'){
  443. $('screenName_Admin_Users').innerHTML = 'Users Information';
  444. dojo.byId('usersTabPageLinks1').innerHTML =
  445. '<a class="alwaysBlue" href="#" onclick="javascript: createOrManageUser(true);">Add User</a> | '+
  446. '<a class="alwaysBlue" href="#" onclick="javascript: dijit.byId(\'searchUserDialog\').show(); clearSearchScreen();">Search User</a> | '+
  447. '<a class="alwaysBlue" href="#" onclick="javascript: getUserRoles();">Add Users to Global Roles</a> | '+
  448. '<a class="alwaysBlue" href="#" onclick="javascript: removeUser();">Remove User</a>';
  449. }
  450. else if (usersRoleName == 'Group Admin'){
  451. $('screenName_Admin_Users').innerHTML = 'Groups Users Information';
  452. dojo.byId('usersTabPageLinks1').innerHTML =
  453. '<a class="alwaysBlue" href="#" onclick="javascript: getUserRoles();">Add Users to Groups and Group Roles</a> | '+
  454. '<a class="alwaysBlue" href="#" onclick="javascript: createOrManageUser(true);">Add User</a> | '+
  455. '<a class="alwaysBlue" href="#" onclick="javascript: dijit.byId(\'searchUserDialog\').show(); clearSearchScreen();">Search User</a> | '+
  456. '<a class="alwaysBlue" href="#" onclick="javascript: removeUser();">Remove User</a>';
  457. }
  458. var usersStructure = [
  459. { name: '', width: '20px'},
  460. { field: 'userID', name: '<B>User ID</B>', width: '100px', formatter: showAsLink},
  461. { field: 'firstName', name: 'First Name', width: '100px'},
  462. { field: 'lastName', name: 'Last Name', width: '100px'},
  463. { field: 'emailID', name: 'E-mail ID', width: 'auto'}
  464. ];
  465. var usersDataStore = reponseJSON.ResourceResponse.Users.User;
  466. alert(reponseJSON.ResourceResponse.Users.User.userID)
  467. if(!usersDataStore.length){
  468. usersDataStore = [usersDataStore];
  469. }
  470. var grid1 = PubGUIGrid('usersInfo','id_1'+(new Date()), usersStructure, usersDataStore, 'usersRowClickHandler');*/
  471. }
  472. }
  473.  
  474. function showYesOrNo(value){
  475. var div = dojo.create('div');
  476. div.className = value=='Y'?'checkMarkChecked':'checkMark';
  477. div.innerHTML = '&nbsp;';
  478. return div.outerHTML;
  479. }
  480.  
  481. function usersRowClickHandler(evt){
  482. var grid = evt.grid;
  483. grid.selection.setSelected(evt.rowIndex, false);
  484. if(evt.cellIndex == 1){
  485. if(evt.target == evt.cellNode){ // so as to accept the event only when clicked on the text
  486. return false
  487. }
  488. var rowData = grid.getItem(evt.rowIndex);
  489. currUser = rowData; // setting the user info to global variable(currUser).
  490. createOrManageUser(false);
  491. }
  492. }
  493.  
  494. function createOrManageUser(isNewUserRequest){
  495. currUser = (isNewUserRequest==true) ? {userID:'', firstName:'', lastName:'', emailID:'', superUser:'N', adminUser:'N'}:currUser;
  496. if(isNewUserRequest){
  497. dojo.byId('userIDObj').disabled = false;
  498. dojo.byId('firstNameObj').disabled = false;
  499. dojo.byId('lastNameObj').disabled = false;
  500. dojo.byId('emailIDObj').disabled = false;
  501. }
  502. if($('statusMessage_Admin')){
  503. $('statusMessage_Admin').innerHTML = '';
  504. }
  505. updateUsersEnvironmentOnLoad();
  506. dojo.byId('userIDObj').value = currUser.userID;
  507. dojo.byId('firstNameObj').value = currUser.firstName;
  508. dojo.byId('lastNameObj').value = currUser.lastName;
  509. dojo.byId('emailIDObj').value = currUser.emailID;
  510. dojo.byId('users_env_dropdown').appendChild(usersSelectEnv);
  511. hideObjects(['usersInfoTableId','usersInfo','associateUserRoles','associateUserGroups']);
  512. showObjects(['createOrManageUser']);
  513. $('buttonsTab1').innerHTML = '';
  514. $('usersTabPageLinks1').innerHTML = '';
  515. var btns = [];
  516. if(isNewUserRequest == false){
  517. btns = [{dojoType: dijit.form.Button, label:'Add', region:'center',onClick: updateUser},
  518. {dojoType: dijit.form.Button, label:'Remove', region:'center',onClick: removeUser},
  519. {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: getAllUserForAppRole}];
  520. $('screenName_Admin_Users').innerHTML = 'Add User : '+currUser.firstName;
  521. dojo.byId('userIDObj').disabled = true;
  522. dojo.byId('firstNameObj').disabled = true;
  523. dojo.byId('lastNameObj').disabled = true;
  524. dojo.byId('emailIDObj').disabled = true;
  525. }else{
  526. dojo.byId('usersTabPageLinks1').innerHTML ='';
  527. btns = [{dojoType: dijit.form.Button, label:'Create', region:'center',onClick: createUser},
  528. {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: getAllUserForAppRole}];
  529. }
  530. for(i=0; i<btns.length; i++){
  531. var btn = new dijit.form.Button(btns[i]);
  532. dojo.byId('buttonsTab1').appendChild(btn.domNode);
  533. }
  534. }
  535.  
  536. function updateUsersEnvironmentOnLoad(){
  537. var systemEnv = getSystemEnv().toUpperCase();
  538. if(systemEnv == 'DEV' || systemEnv == 'QC' || systemEnv == 'BLRDEV') {
  539. var checkBoxDev = new dijit.form.CheckBox({
  540. name: "DEV",
  541. value: "DEV",
  542. checked: false,
  543. onChange: function(b) {
  544. alert('onChange called with parameter = ' + b + ', and widget value = ' + checkBoxDev.attr('value'));
  545. }
  546. },
  547. "checkBoxDev"+(new Date()));
  548. var checkBoxQC = new dijit.form.CheckBox({
  549. name: "QC",
  550. value: "QC",
  551. checked: false,
  552. onChange: function(b) {
  553. alert('onChange called with parameter = ' + b + ', and widget value = ' + checkBoxQC.attr('value'));
  554. }
  555. },
  556. "checkBoxQC"+(new Date()));
  557. var checkBoxBlrDev = new dijit.form.CheckBox({
  558. name: "BLRDEV",
  559. value: "BLRDEV",
  560. checked: false,
  561. onChange: function(b) {
  562. alert('onChange called with parameter = ' + b + ', and widget value = ' + checkBoxBlrDev.attr('value'));
  563. }
  564. },
  565. "checkBoxBlrDev"+(new Date()));
  566. $('userTabsAddUserEnvId').innerHTML = "<input id='checkBoxDev"+(new Date())+"'>Dev</input>&nbsp<input id='checkBoxQC"+(new Date())+"'>QC</input>&nbsp<input id='checkBoxBlrDev"+(new Date())+"'>BlrDev</input>";
  567. }
  568. else if(systemEnv == 'CLIENT') {
  569. var checkBoxClient = new dijit.form.CheckBox({
  570. name: "CLIENT",
  571. value: "CLIENT",
  572. checked: false,
  573. onChange: function(b) {
  574. alert('onChange called with parameter = ' + b + ', and widget value = ' + checkBoxClient.attr('value'));
  575. }
  576. },
  577. "checkBoxClient"+(new Date()));
  578. $('userTabsAddUserEnvId').innerHTML = "<input id='checkBoxClient"+(new Date())+"'>Client</input>";
  579. }
  580. else if(systemEnv == 'PROD') {
  581. var checkBoxProd = new dijit.form.CheckBox({
  582. name: "PROD",
  583. value: "PROD",
  584. checked: false,
  585. onChange: function(b) {
  586. alert('onChange called with parameter = ' + b + ', and widget value = ' + checkBoxProd.attr('value'));
  587. }
  588. },
  589. "checkBoxProd"+(new Date()));
  590. var checkBoxClient = new dijit.form.CheckBox({
  591. name: "CLIENT",
  592. value: "CLIENT",
  593. checked: false,
  594. onChange: function(b) {
  595. alert('onChange called with parameter = ' + b + ', and widget value = ' + checkBoxClient.attr('value'));
  596. }
  597. },
  598. "checkBoxClient"+(new Date()));
  599. $('userTabsAddUserEnvId').innerHTML = "<input id='checkBoxProd"+(new Date())+"'>Prod</input>&nbsp<input id='checkBoxClient"+(new Date())+"'>Client</input>";
  600. }
  601. else {
  602. var checkBoxEnv = new dijit.form.CheckBox({
  603. name: systemEnv,
  604. value: systemEnv.toLowerCase(),
  605. checked: false,
  606. onChange: function(b) {
  607. alert('onChange called with parameter = ' + b + ', and widget value = ' + checkBoxEnv.attr('value'));
  608. }
  609. },
  610. "checkBoxEnv"+(new Date()));
  611. $('userTabsAddUserEnvId').innerHTML = "<input id='checkBoxEnv"+(new Date())+"'>"+systemEnv+"</input>";
  612. }
  613. }
  614.  
  615. /**
  616. * This method is used to remove a user
  617. * @return
  618. */
  619. function removeUser(){
  620. if(confirm('Are you sure you want to delete the user '+currUser.userID +'?')){
  621. var url = baseURL +DELETE_USERS +currUser.userID;
  622. var reqArgs = {url: url, method: 'DELETE', load: displayStatusRmvUser, error: displayError, handleAs:'json'};
  623. new AJAX.pubGUI.sendRequest(reqArgs);
  624. }
  625. }
  626. /**
  627. *
  628. * This method is used to update a group information.
  629. * @return
  630. */
  631. function updateUser(){
  632. if(validateUser()){
  633. var url = baseURL + UPDATE_USERS;
  634. var json = "{\"@class\":\"User\",\"userID\":\""+currUser.userID+"\",\"firstName\":\""+$F('firstNameObj')+"\",\"lastName\":\""+$F('lastNameObj')+"\",\"emailID\":\""+$F('emailIDObj')+"\"}";
  635. json = prepareResourceRequest(json);
  636. var reqArgs = {url: url, method: 'POST', postData: json, load: displayStatus, error: displayError, handleAs:'json'};
  637. new AJAX.pubGUI.sendRequest(reqArgs);
  638. }
  639. }
  640. /**
  641. *
  642. * This method is used to create a new group.
  643. * @return
  644. */
  645. function createUser(){
  646. if(validateUser()){
  647. var url = baseURL + CREATE_USER;
  648. var json = "{\"@class\":\"User\",\"userID\":\""+$F('userIDObj')+"\",\"firstName\":\""+$F('firstNameObj')+"\",\"lastName\":\""+$F('lastNameObj')+"\",\"emailID\":\""+$F('emailIDObj')+"\"}";
  649. json = prepareResourceRequest(json);
  650. var reqArgs = {url: url, method: 'PUT', putData: json, load: displayStatus, error: displayError, handleAs:'json'};
  651. new AJAX.pubGUI.sendRequest(reqArgs);
  652. }
  653. }
  654.  
  655. function getUserRoles(){
  656. var url = baseURL + GET_USR_ROLE +currUser.userID +"?ignoreMe=" + new Date().getTime();
  657. if($('statusMessage_Admin')){
  658. $('statusMessage_Admin').innerHTML = '';
  659. }
  660. var reqArgs = {url: url, method: 'GET',load: displayUserRoles, error: displayUserRoles, handleAs:'json'};
  661. new AJAX.pubGUI.sendRequest(reqArgs);
  662. }
  663.  
  664. function displayUserRoles(responseJSON){
  665. if (responseJSON != null && responseJSON.ResourceResponse.UserRoles != undefined){
  666. hideObjects(['usersInfoTableId','usersInfo','createOrManageUser','associateUserGroups']);
  667. showObjects(['associateUserRoles']);
  668. $('associateUserRoles').innerHTML = '';
  669. $('screenName_Admin_Users').innerHTML = 'Associate Roles to User : '+currUser.firstName;
  670. var userRoleStructure = [
  671. { field: 'isAssociated', name: 'Select', width: '50px', formatter:checkBoxDojo },
  672. { field: 'roleID', name: '<B>Role ID</B>', width: '100px' , hidden:'true'},
  673. { field: 'roleName', name: 'Role Name', width: 'auto'},
  674. { field: 'userID', name: 'User ID', width: 'auto', hidden:'true'}
  675. ];
  676. var userRoleDataStore = responseJSON.ResourceResponse.UserRoles.UserRole;
  677. gridID = 'id_'+(new Date());
  678. var grid1 = PubGUIGrid('associateUserRoles',gridID,userRoleStructure, userRoleDataStore, 'assocGroupRowClickHandler');
  679. dojo.byId('buttonsTab1').innerHTML = '';
  680. var btns = [{dojoType: dijit.form.Button, label:'Save', region:'center',onClick: saveUserRoles},
  681. {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: function(){createOrManageUser(false);}}];
  682. for(i=0; i<btns.length; i++){
  683. var btn = new dijit.form.Button(btns[i]);
  684. dojo.byId('buttonsTab1').appendChild(btn.domNode);
  685. }
  686. }
  687. }
  688.  
  689. function getUserGroups(){
  690. var url = baseURL + GET_USR_GROUP +currUser.userID +"?ignoreMe=" + new Date().getTime();
  691. if($('statusMessage_Admin')){
  692. $('statusMessage_Admin').innerHTML = '';
  693. }
  694. var reqArgs = {url: url, method: 'GET',load: displayUserGroups, error: displayUserGroups, handleAs:'json'};
  695. new AJAX.pubGUI.sendRequest(reqArgs);
  696. }
  697.  
  698. function displayUserGroups(responseJSON){
  699.  
  700. if (responseJSON != null && responseJSON.ResourceResponse.GroupUsers != undefined){
  701.  
  702. hideObjects(['usersInfoTableId','usersInfo','createOrManageUser','associateUserRoles']);
  703. showObjects(['associateUserGroups']);
  704.  
  705. $('associateUserGroups').innerHTML = '';
  706.  
  707. var userGroupsStructure = [
  708. { field: 'isAssociated', name: 'Select', width: '50px', formatter:checkBoxDojo },
  709. { field: 'groupID', name: '<B>Group ID</B>', width: '100px' , hidden:'true'},
  710. { field: 'groupName', name: 'Group Name', width: 'auto'},
  711. { field: 'userID', name: 'User ID', width: 'auto', hidden:'true'}
  712. ];
  713. var userGroupsDataStore = responseJSON.ResourceResponse.GroupUsers.GroupUser;
  714. gridID = 'id_'+(new Date());
  715. var grid1 = PubGUIGrid('associateUserGroups',gridID,userGroupsStructure, userGroupsDataStore, 'assocGroupRowClickHandler');
  716. dojo.byId('buttonsTab1').innerHTML = '';
  717. var btns = [{dojoType: dijit.form.Button, label:'Save', region:'center',onClick: saveUserGroups},
  718. {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: function(){createOrManageUser(false);}}];
  719.  
  720. for(i=0; i<btns.length; i++){
  721. var btn = new dijit.form.Button(btns[i]);
  722. dojo.byId('buttonsTab1').appendChild(btn.domNode);
  723. }
  724. }
  725.  
  726. }
  727. /**
  728. *
  729. * To retrieve the changes made to update the roles for the user.
  730. * @return
  731. */
  732. function getUpdatedUserRolesInfo(){
  733. var grid = dijit.byId(gridID);
  734. var items = [];
  735. var count = grid.store._arrayOfAllItems.length;
  736. for(var i = 0 ; i < count ; i++){
  737. var item = grid.store._arrayOfAllItems[i];
  738. if(item != null && item.isAssociated=='Y'){
  739. items.push(item);
  740. }
  741. }
  742. var updatedUserRolesJSON = "";
  743. if(items.length != 0){
  744. updatedUserRolesJSON = "{\"UserRole\":[";
  745. for(i=0; i<items.length; i++){
  746. updatedUserRolesJSON += "{\"userID\":\""+(items[i].userID)+"\",\"roleID\":\""+(items[i].roleID)+"\",\"roleName\":\""+(items[i].roleName)+"\",\"isAssociated\":\"Y\"},";
  747. }
  748. updatedUserRolesJSON = items.length!=0?updatedUserRolesJSON.substring(0,updatedUserRolesJSON.length-1):updatedUserRolesJSON;
  749. updatedUserRolesJSON += "]}";
  750. } else {
  751. updatedUserRolesJSON = "{}";
  752. }
  753. updatedUserRolesJSON = prepareResourceRequestForList(updatedUserRolesJSON);
  754. return updatedUserRolesJSON;
  755. }
  756.  
  757. /**
  758. *
  759. * To retrieve the changes made to update the roles for the user.
  760. * @return
  761. */
  762. function getUpdatedUserGroupsInfo(){
  763. var grid = dijit.byId(gridID);
  764. var items = [];
  765. var count = grid.store._arrayOfAllItems.length;
  766.  
  767. for(var i = 0 ; i < count ; i++){
  768. var item = grid.store._arrayOfAllItems[i];
  769. if(item != null && item.isAssociated=='Y'){
  770. items.push(item);
  771. }
  772. }
  773. var updatedUserGroupsJSON = "";
  774. if(items.length != 0){
  775. updatedUserGroupsJSON = "{\"GroupUser\":[";
  776. for(i=0; i<items.length; i++){
  777. updatedUserGroupsJSON += "{\"userID\":\""+(items[i].userID)+"\",\"groupID\":\""+(items[i].groupID)+"\",\"groupName\":\""+(items[i].groupName)+"\",\"isAssociated\":\"Y\"},";
  778. }
  779. updatedUserGroupsJSON = items.length!=0?updatedUserGroupsJSON.substring(0,updatedUserGroupsJSON.length-1):updatedUserGroupsJSON;
  780. updatedUserGroupsJSON += "]}";
  781. } else {
  782. updatedUserGroupsJSON = "{}";
  783. }
  784. updatedUserGroupsJSON = prepareResourceRequestForList(updatedUserGroupsJSON);
  785. return updatedUserGroupsJSON;
  786. }
  787.  
  788. function saveUserRoles(){
  789. var updatedUserRolesJSON = getUpdatedUserRolesInfo();
  790. var url = baseURL +SAVE_USER_ROLE +currUser.userID;
  791. var reqArgs = {url: url, method: 'PUT', putData: updatedUserRolesJSON, load: displayStatus, error: displayError, handleAs:'json'};
  792. new AJAX.pubGUI.sendRequest(reqArgs);
  793. }
  794.  
  795. function saveUserGroups(){
  796. var updatedUserGroupsJSON = getUpdatedUserGroupsInfo();
  797. var url = baseURL +SAVE_USER_GROUP +currUser.userID;
  798. var reqArgs = {url: url, method: 'PUT', putData: updatedUserGroupsJSON, load: displayStatus, error: displayError, handleAs:'json'};
  799. new AJAX.pubGUI.sendRequest(reqArgs);
  800. }
  801.  
  802. /**
  803. * The java script function getGroupsInfo makes an ajax call to retrieve the groups json.
  804. */
  805. function getGroupsDDN(){
  806. var url = baseURL + ALL_GROUPS +'?ignoreMe=' + new Date().getTime();
  807. var reqArgs = {url: url, method: 'GET',load: displayGroupsDropDown, error: displayGroupsDropDown, handleAs:'json'};
  808. new AJAX.pubGUI.sendRequest(reqArgs);
  809. }
  810.  
  811. function displayGroupsDropDown(reponseJSON){
  812. if(reponseJSON != undefined){
  813. var select = dojo.byId('groupsDDN');
  814. var groupsObj = reponseJSON.ResourceResponse.Groups.Group;
  815. if(!groupsObj.length){
  816. groupsObj = [groupsObj];
  817. }
  818. for(var i=0; i< groupsObj.length; i++){
  819. var option = document.createElement('option');
  820. option.value = groupsObj[i].groupID;
  821. option.innerHTML = groupsObj[i].groupName;
  822. select.appendChild(option);
  823. }
  824. }
  825. }
  826.  
  827. function getAllUserForAppRole(){
  828. var selectedEnv;
  829. if(document.getElementById("usersTabEnvironmentId") != null){
  830. selectedEnv = document.getElementById("usersTabEnvironmentId").value;
  831. }
  832. if(document.getElementById("usersTabRolesId") != null){
  833. userRoleID_global = document.getElementById("usersTabRolesId").value;
  834. }
  835. var url = baseURL + ALL_USERS_FOR_ROLE +selectedEnv+"/"+userRoleID_global+"?ignoreMe=" + new Date().getTime();
  836. var reqArgs = {url: url, method: 'GET', load: displayRoleUsersInfo, error: displayRoleUsersInfo, handleAs:'json'};
  837. new AJAX.pubGUI.sendRequest(reqArgs);
  838. }
  839.  
  840. function displayRoleUsersInfo(reponseJSON){
  841. showObjects(['usersInfoTableId','usersInfo']);
  842. hideObjects(['createOrManageUser']);
  843. $('buttonsTab1').innerHTML = '';
  844. $('usersInfo').innerHTML = '';
  845. if($('statusMessage_Admin')){
  846. $('statusMessage_Admin').innerHTML = '';
  847. }
  848. if (reponseJSON != null && reponseJSON.ResourceResponse.Users != undefined){
  849. if(usersRoleName == 'Super Admin'){
  850. $('screenName_Admin_Users').innerHTML = 'Users Information';
  851. dojo.byId('usersTabPageLinks1').innerHTML =
  852. '<a class="alwaysBlue" href="#" onclick="javascript: dijit.byId(\'searchUserDialog\').show(); clearSearchScreen();">Search User</a> | '+
  853. '<a class="alwaysBlue" href="#" onclick="javascript: getUserRoles();">Add Users to Global Roles</a>';
  854. }
  855. else if (usersRoleName == 'Group Admin'){
  856. $('screenName_Admin_Users').innerHTML = 'Groups Users Information';
  857. dojo.byId('usersTabPageLinks1').innerHTML =
  858. '<a class="alwaysBlue" href="#" onclick="javascript: dijit.byId(\'searchUserDialog\').show(); clearSearchScreen();">Search User</a> | '+
  859. '<a class="alwaysBlue" href="#" onclick="javascript: getUserRoles();">Add Users to Groups and Group Roles</a>';
  860. }
  861. var usersStructure = [
  862. { name: '', width: '20px'},
  863. { field: 'userID', name: '<B>User ID</B>', width: '100px', formatter: showAsLink},
  864. { field: 'firstName', name: 'First Name', width: '100px'},
  865. { field: 'lastName', name: 'Last Name', width: '100px'},
  866. { field: 'emailID', name: 'E-mail ID', width: 'auto'}
  867. ];
  868. var usersDataStore = reponseJSON.ResourceResponse.Users.User;
  869. if(!usersDataStore.length){
  870. usersDataStore = [usersDataStore];
  871. }
  872. var grid1 = PubGUIGrid('usersInfo','id_1'+(new Date()), usersStructure, usersDataStore, 'usersRowClickHandler');
  873. }
  874. else{
  875. $('screenName_Admin_Users').innerHTML = 'Users Information';
  876. $('usersInfo').innerHTML = "<span style='color: red; font-weight: bold; font-size: 8pt;' >No Records Found</span>";
  877. }
  878. }
  879.  
  880. /**
  881. *
  882. * TAB :: ROLES
  883. *
  884. */
  885.  
  886. var allRoles = true;
  887. function getRolesInfo(){
  888. var url = (groupID_global == 'ALL') ? baseURL + ALL_ROLES +"?ignoreMe=" + new Date().getTime():
  889. baseURL + GET_GRP_ROLE +groupID_global+"?ignoreMe=" + new Date().getTime();
  890. if($('statusMessage_Admin')){
  891. if(!rmvRoleSuccessFlag){
  892. $('statusMessage_Admin').innerHTML = '';
  893. }
  894. rmvRoleSuccessFlag = false;
  895. }
  896. $('screenName_Admin_Roles').innerHTML = 'Roles Information';
  897. $('rolesTabPageLinks').innerHTML = '<a class="alwaysBlue" href="#" onclick="javascript: createOrManageRole(true);">Create Role</a>';
  898. var reqArgs = {url: url, method: 'GET',load: displayRolesInfo, error: displayRolesInfo, handleAs:'json'};
  899. new AJAX.pubGUI.sendRequest(reqArgs);
  900. }
  901.  
  902. function displayRolesInfo(reponseJSON){
  903. if (reponseJSON != null && reponseJSON.ResourceResponse.Roles != undefined){
  904. showObjects(['rolesInfo','groupSelector','rolesTabPageLinks']);
  905. hideObjects(['createOrManageRole','associateRoleComponents']);
  906. $('buttonsTab2').innerHTML = '';
  907. $('rolesInfo').innerHTML = '';
  908. var rolesStructureGroups = [
  909. { name: '', width: '20px'},
  910. { field: 'roleID', name: 'Role ID', width: '100px', hidden:'true'},
  911. { field: 'roleName', name: 'Role Name', width: 'auto', formatter: showAsLink}
  912. ];
  913. var rolesDataStoreGroups = reponseJSON.ResourceResponse.Roles.Role;
  914. var grid1 = PubGUIGrid('rolesInfo','id_2'+(new Date()),rolesStructureGroups, rolesDataStoreGroups, 'rolesRowClickHandler');
  915. }
  916. else if (reponseJSON != null && reponseJSON.ResourceResponse.GroupRoles != undefined){
  917. showObjects(['rolesInfo','groupSelector','rolesTabPageLinks']);
  918. hideObjects(['createOrManageRole','associateRoleComponents']);
  919. $('buttonsTab2').innerHTML = '';
  920. $('rolesInfo').innerHTML = '';
  921. var rolesDataStore = reponseJSON.ResourceResponse.GroupRoles.GroupRole;
  922. rolesDataStore = dojo.filter(rolesDataStore, function(item){ return item.isAssociated=='Y'; });
  923. var rolesStructure = [
  924. { name: '', width: '20px'},
  925. { field: 'roleID', name: 'Role ID', width: '100px',hidden:'true'},
  926. { field: 'roleName', name: 'Role Name', width: 'auto', formatter: showAsLink}
  927. ];
  928. var grid1 = PubGUIGrid('rolesInfo','id_2'+(new Date()),rolesStructure, rolesDataStore, 'rolesRowClickHandler');
  929. }
  930. }
  931.  
  932. function rolesRowClickHandler(evt){
  933. var grid = evt.grid;
  934. grid.selection.setSelected(evt.rowIndex, false);
  935. if(evt.cellIndex == 2){
  936. if(evt.target == evt.cellNode){ // so as to accept the event only when clicked on the text
  937. return false
  938. }
  939.  
  940. var rowData = grid.getItem(evt.rowIndex);
  941. currRole = rowData; // setting the group info to global variable(currGroup).
  942. createOrManageRole(false);
  943. }
  944. }
  945.  
  946.  
  947. function createOrManageRole(isNewRoleRequest){
  948. currRole = (isNewRoleRequest==true) ? {roleID:'', roleName:'', applicationID:''}:currRole;
  949.  
  950. dojo.byId('roleIDObj').value = currRole.roleID;
  951. dojo.byId('roleNameObj').value = currRole.roleName;
  952. dojo.byId('applicationIDObj').value = currRole.applicationID;
  953.  
  954. hideObjects(['rolesInfo','groupSelector','associateRoleComponents']);
  955. showObjects(['createOrManageRole']);
  956. $('buttonsTab2').innerHTML = '';
  957. $('rolesTabPageLinks').innerHTML = '';
  958. var btns = [];
  959. if($('statusMessage_Admin')){
  960. $('statusMessage_Admin').innerHTML = '';
  961. }
  962. if(isNewRoleRequest == false){
  963. dojo.byId('rolesTabPageLinks').innerHTML =
  964. '<a class="alwaysBlue" href="#" onclick="javascript: createOrManageRole(true);">Create Role</a> | '+
  965. '<a class="alwaysBlue" href="#" onclick="javascript: getRoleComponents();">Associate Role Components</a>';
  966. btns = [{dojoType: dijit.form.Button, label:'Update', region:'center',onClick: updateRole},
  967. {dojoType: dijit.form.Button, label:'Remove', region:'center',onClick: removeRole},
  968. {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: getRolesInfo}];
  969. $('screenName_Admin_Roles').innerHTML = 'Manage Role : '+currRole.roleName;
  970. }else{
  971. dojo.byId('rolesTabPageLinks').innerHTML ='';
  972. btns = [{dojoType: dijit.form.Button, label:'Create', region:'center',onClick: createRole},
  973. {dojoType: dijit.form.Button, label:'Back', region:'center',onClick: getRolesInfo}];
  974. $('screenName_Admin_Roles').innerHTML = 'Create Role';
  975. }
  976. for(i=0; i<btns.length; i++){
  977. var btn = new dijit.form.Button(btns[i]);
  978. dojo.byId('buttonsTab2').appendChild(btn.domNode);
  979. }
  980. }
  981.  
  982. function removeRole(){
  983. if(validateRole()){
  984. if(confirm('Are you sure you want to delete the role '+currRole.roleName +'?')){
  985. var url = baseURL +DELETE_ROLE +currRole.roleID;
  986. var reqArgs = {url: url, method: 'DELETE', load: displayStatusRmvRole, error: displayError, handleAs:'json'};
  987. new AJAX.pubGUI.sendRequest(reqArgs);
  988. }
  989. }
  990. }
  991. /**
  992. *
  993. * This method is used to update a group information.
  994. * @return
  995. */
  996. function updateRole(){
  997. if(validateRole()){
  998. var url = baseURL + UPDATE_ROLE;
  999. var json = "{\"@class\":\"Role\",\"roleID\":\""+currRole.roleID+"\",\"roleName\":\""+$F('roleNameObj')+"\"}";
  1000. json = prepareResourceRequest(json);
  1001. var reqArgs = {url: url, method: 'POST', postData: json, load: displayStatus, error: displayError, handleAs:'json'};
  1002. new AJAX.pubGUI.sendRequest(reqArgs);
  1003. }
  1004. }
  1005. /**
  1006. *
  1007. * This method is used to create a new group.
  1008. * @return
  1009. */
  1010. function createRole(){
  1011. if(validateRole()){
  1012. var url = baseURL + CREATE_ROLE;
  1013. var json = "{\"@class\":\"Role\",\"roleName\":\""+$F('roleNameObj')+"\"}";
  1014. json = prepareResourceRequest(json);
  1015. var reqArgs = {url: url, method: 'PUT', putData: json, load: displayStatus, error: displayError, handleAs:'json'};
  1016. new AJAX.pubGUI.sendRequest(reqArgs);
  1017. }
  1018. }
  1019.  
  1020. /**
  1021. *
  1022. * TAB :: COMPONENT
  1023. *
  1024. */
  1025.  
  1026. /**
  1027. * To create a new component
  1028. */
  1029. function createComponent(val){
  1030. if(validateCreateComponent()){
  1031. var url = baseURL + CREATE_COMPONENT;
  1032. var test = val.parseJSON();
  1033. var json = prepareResourceRequest("{\"@class\":\"Component\",\"componentName\":\""+test.componentName+"\"}");
  1034. var reqArgs = {url: url, method: 'PUT', putData: json, load: displayStatusComp, error: displayErrorComp, handleAs:'json'};
  1035. new AJAX.pubGUI.sendRequest(reqArgs);
  1036. }
  1037. setTimeout ("getComponentsInfo()",500);
  1038. }
  1039.  
  1040. /**
  1041. *
  1042. * To manage component
  1043. *
  1044. */
  1045. function getComponentsInfo(){
  1046. var url = baseURL + ALL_COMPONENT +"?ignoreMe=" + (new Date()).getTime();
  1047. if($('statusMessage_Admin')){$('statusMessage_Admin').innerHTML = '';}
  1048. $('screenName_Admin_Components').innerHTML = 'Components Information';
  1049. var reqArgs = {preventCache: true, url: url, method: 'GET',load: displayComponentsInfo, error: displayComponentsInfo, handleAs:'json'};
  1050. new AJAX.pubGUI.sendRequest(reqArgs);
  1051. }
  1052.  
  1053. /**
  1054. *
  1055. * To manage component
  1056. * @return
  1057. */
  1058. function displayComponentsInfo(responseJSON){
  1059. if (responseJSON != null && responseJSON.ResourceResponse.Components != undefined){
  1060. $('buttonsTab3').innerHTML = '';
  1061. $('componentsInfo').innerHTML = '';
  1062. hideObjects(['manageComponent']);
  1063. showObjects(['componentsInfo','createComponentLinkId']);
  1064. var componentsStructure = [
  1065. { field: 'isAssociated', name: 'Select', width: '50px', formatter:checkBoxDojo},
  1066. { field: 'componentID', name: 'Component ID', width: '100px' , hidden:'true'},
  1067. { field: 'componentName', name: 'Component Name', width: 'auto', formatter: showAsLink}
  1068. ];
  1069. gridID = 'id_4'+(new Date());
  1070. var componentsDataStore = responseJSON.ResourceResponse.Components.Component;
  1071. var grid1 = PubGUIGrid('componentsInfo',gridID,componentsStructure, componentsDataStore, 'componentsRowClickHandler');
  1072. var btn = new dijit.form.Button({dojoType: dijit.form.Button, label:'<div style="font-size:8pt;">Remove</div>', region:'center', onClick: removeComponent});
  1073. dojo.byId('buttonsTab3').appendChild(btn.domNode);
  1074. }
  1075. }
  1076.  
  1077. function wrapWidDiv(val){
  1078. return '<div>'+val+'</div>';
  1079. }
  1080.  
  1081. function updateLink(val){
  1082. var a = dojo.create('a');
  1083. a.href = 'javascript: function(){return false;}';
  1084. a.className = 'alwaysBlue';
  1085. a.innerHTML = val;
  1086. a.title = 'Click To Update';
  1087. return a.outerHTML;
  1088. }
  1089.  
  1090. function updateButton(){
  1091. return new dijit.form.Button({dojoType: dijit.form.Button, label:'Click to Update', region:'center', style:'padding:0; font-size: 8pt;'});
  1092. }
  1093.  
  1094. /**
  1095. * RowClickHandler for Components grid
  1096. * @return
  1097. */
  1098. function componentsRowClickHandler(evt){
  1099. var grid = evt.grid;
  1100. grid.selection.setSelected(evt.rowIndex, false);
  1101. if(evt.cellIndex == 0){
  1102. var checkBox = (evt.target)?evt.target:evt.srcElement;
  1103. if(evt.target == evt.cellNode){
  1104. return false;
  1105. }
  1106. checkBox.className = (checkBox.className=='checkBox')?'checkBoxChecked':'checkBox';
  1107. var currVal = (checkBox.className=='checkBox')?'N':'Y';
  1108.  
  1109. if(checkBox.className=='checkBox'){
  1110. checkBox.innerHTML = 'N';
  1111. grid.getItem(evt.rowIndex).isAssociated = 'N';
  1112. }else{
  1113. checkBox.innerHTML = 'Y';
  1114. grid.getItem(evt.rowIndex).isAssociated = 'Y';
  1115. }
  1116. }
  1117. if(evt.cellIndex == 2){
  1118. if(evt.target == evt.cellNode){ // so as to accept the event only when clicked on the text
  1119. return false;
  1120. }
  1121. var rowData = grid.getItem(evt.rowIndex);
  1122. currComponent = rowData; // setting the component info to global variable(currComponent).
  1123. manageComponent();
  1124. }
  1125. }
  1126.  
  1127. /**
  1128. * To update a component
  1129. * @return
  1130. */
  1131. function updateComponent(){
  1132. if(validateUpdateComponent()){
  1133. var componentId = currComponent.componentID;
  1134. var componentName = $F('componentNameObj');
  1135. var updatedComponentJSON = "{\"@class\":\"Component\",\"componentID\":\""+componentId+"\",\"componentName\":\""+componentName+"\"}";
  1136. updatedComponentJSON = prepareResourceRequest(updatedComponentJSON);
  1137. var url = baseURL + UPDATE_COMPONENT;
  1138. var reqArgs = {url: url, method: 'POST', postData: updatedComponentJSON, load: displayStatusComp, error: displayErrorComp, handleAs:'json'};
  1139. new AJAX.pubGUI.sendRequest(reqArgs);
  1140. }
  1141. }
  1142.  
  1143. function getUpdatedComponentsInfo(){
  1144. var grid = dijit.byId(gridID);
  1145. var items = [];
  1146. var count = grid.store._arrayOfAllItems.length;
  1147. for(var i = 0 ; i < count ; i++){
  1148. var item = grid.store._arrayOfAllItems[i];
  1149. if(item != null && item.isAssociated=='Y'){
  1150. items.push(item);
  1151. }
  1152. }
  1153. numCompSelected = items.length;
  1154. var updatedComponentJSON = "{\"Component\":[";
  1155. for(i=0; i<items.length; i++){
  1156. updatedComponentJSON += "{\"componentID\":\""+(items[i].componentID)+"\",\"componentName\":\""+(items[i].componentName)+"\"},";
  1157. }
  1158. updatedComponentJSON = items.length!=0?updatedComponentJSON.substring(0,updatedComponentJSON.length-1):updatedComponentJSON;
  1159. updatedComponentJSON += "]}";
  1160. updatedComponentJSON = prepareResourceRequestForList(updatedComponentJSON);
  1161. return updatedComponentJSON;
  1162. }
  1163.  
  1164. function removeComponent(){
  1165. var updatedComponentJSON = getUpdatedComponentsInfo();
  1166. if(numCompSelected == 0){
  1167. alert("Please select at least one component to remove");
  1168. return false;
  1169. }
  1170. else{
  1171. if(confirm('Are you sure you want to delete the component(s)?')){
  1172. var url = baseURL + DELETE_COMPONENT;
  1173. var reqArgs = {url: url, method: 'POST', postData: updatedComponentJSON, load: displayStatusRmvComp, error: displayError, handleAs:'json'};
  1174. new AJAX.pubGUI.sendRequest(reqArgs);
  1175. }
  1176. }
  1177. }
  1178.  
  1179. function getRoleComponents(){
  1180. var url = baseURL +GET_ROLE_COMPONENT +currRole.roleID +"?ignoreMe=" + new Date().getTime();
  1181. if($('statusMessage_Admin')){
  1182. $('statusMessage_Admin').innerHTML = '';
  1183. }
  1184. var reqArgs = {url: url, method: 'GET', load: displayRoleComponents, error: displayRoleComponents1, handleAs:'json'};
  1185. new AJAX.pubGUI.sendRequest(reqArgs);
  1186. }
  1187.  
  1188. function displayRoleComponents1(responseJSON){
  1189. ;
  1190. }
  1191.  
  1192. function displayRoleComponents(responseJSON){
  1193. if (responseJSON.ResourceResponse.RoleComponents != undefined){
  1194. hideObjects(['rolesInfo','createOrManageRole']);
  1195. showObjects(['associateRoleComponents']);
  1196. $('associateRoleComponents').innerHTML = '';
  1197. $('screenName_Admin_Roles').innerHTML = 'Associate Components to Role : '+ currRole.roleName;
  1198. var roleComponentsStructure = [
  1199. { field: 'isAssociated', name: 'Select', width: '50px', formatter:checkBoxDojo },
  1200. { field: 'componentID', name: '<B>Component ID</B>', width: '100px' , hidden:'true'},
  1201. { field: 'componentName', name: 'Component Name', width: 'auto'},
  1202. { field: 'roleID', name: 'Role ID', width: 'auto', hidden:'true'}
  1203. ];
  1204. var roleComponentsDataStore = responseJSON.ResourceResponse.RoleComponents.RoleComponent;
  1205. gridID = 'id_'+(new Date());
  1206. var grid1 = PubGUIGrid('associateRoleComponents', gridID, roleComponentsStructure, roleComponentsDataStore, 'assocGroupRowClickHandler');
  1207. dojo.byId('buttonsTab2').innerHTML = '';
  1208. var btns = [{dojoType: dijit.form.Button, label:'Save', region:'center', onClick: saveRoleComponents},
  1209. {dojoType: dijit.form.Button, label:'Back', region:'center', onClick: function(){createOrManageRole(false);}}];
  1210. for(i=0; i<btns.length; i++){
  1211. var btn = new dijit.form.Button(btns[i]);
  1212. dojo.byId('buttonsTab2').appendChild(btn.domNode);
  1213. }
  1214. }
  1215. }
  1216.  
  1217. function getUpdatedRoleCompsInfo(){
  1218. var grid = dijit.byId(gridID);
  1219. var items = [];
  1220. var count = grid.store._arrayOfAllItems.length;
  1221. for(var i = 0 ; i < count ; i++){
  1222. var item = grid.store._arrayOfAllItems[i];
  1223. if(item != null && item.isAssociated=='Y'){
  1224. items.push(item);
  1225. }
  1226. }
  1227. var updatedRoleCompsJSON = "";
  1228. if(items.length != 0){
  1229. updatedRoleCompsJSON = "{\"RoleComponent\":[";
  1230. for(i=0; i<items.length; i++){
  1231. updatedRoleCompsJSON += "{\"roleID\":\""+currRole.roleID+"\",\"componentID\":\""+(items[i].componentID)+"\",\"componentName\":\""+currRole.roleName+"\",\"isAssociated\":\"Y\"},";
  1232. }
  1233. updatedRoleCompsJSON = items.length!=0?updatedRoleCompsJSON.substring(0,updatedRoleCompsJSON.length-1):updatedRoleCompsJSON;
  1234. updatedRoleCompsJSON += "]}";
  1235. } else {
  1236. updatedRoleCompsJSON = "{}";
  1237. }
  1238. updatedRoleCompsJSON = prepareResourceRequestForList(updatedRoleCompsJSON);
  1239. return updatedRoleCompsJSON;
  1240. }
  1241.  
  1242. function saveRoleComponents(){
  1243. var updatedCompsJSON = getUpdatedRoleCompsInfo();
  1244. var url = baseURL +SAVE_ROLE_COMP +currRole.roleID;
  1245. var reqArgs = {url: url, method: 'PUT', putData: updatedCompsJSON, load: displayStatus, error: displayError, handleAs:'json'};
  1246. new AJAX.pubGUI.sendRequest(reqArgs);
  1247. }
  1248.  
  1249. function manageComponent(){
  1250. dojo.byId('componentIDObj').value = currComponent.componentID;
  1251. var url = baseURL +GET_RESOURCES +currComponent.componentID +"?ignoreMe=" + new Date().getTime();
  1252. var reqArgs = {url: url, method: 'GET', load: parseResourceString, error: parseResourceString, handleAs:'json'};
  1253. new AJAX.pubGUI.sendRequest(reqArgs);
  1254. }
  1255.  
  1256. function parseResourceString(responseJSON){
  1257. $('statusMessage_Admin').innerHTML = '';
  1258. var myJSONObject = "{\"PubGUIButtons\":{\"PubGUIButton\":[";
  1259. var varResourceURI = null;
  1260. // Check for one to one mapping between COMPONENTS and RESOURCES
  1261. if (responseJSON != undefined){
  1262. if(responseJSON.ResourceResponse.Resources != undefined){
  1263. if(responseJSON.ResourceResponse.Resources.Resource.length > 1){
  1264. alert('An Error Occurred due to bad data for resources. Please contact administrator.');
  1265. return;
  1266. }
  1267. }
  1268. }
  1269. if (responseJSON != null && responseJSON.ResourceResponse.Resources != undefined){
  1270. var varResource = responseJSON.ResourceResponse.Resources.Resource;
  1271. if(!varResource.length){
  1272. varResource = [varResource];
  1273. }
  1274. if(varResource != undefined){
  1275. varResourceURI = responseJSON.ResourceResponse.Resources.Resource.resourceURI;
  1276. }
  1277. }
  1278. else{
  1279. varResourceURI = emptySetResources;
  1280. }
  1281. var varIsAssociated = null;
  1282. if (arrayCollectionBtns != undefined){
  1283. for(var i=0; i<arrayCollectionBtns.length; i++){
  1284. varIsAssociated = (varResourceURI.charAt(getButtonposition(arrayCollectionBtns[i]))==1)?"Y":"N";
  1285. myJSONObject += "{\"isAssociated\":\"";
  1286. myJSONObject += varIsAssociated;
  1287. myJSONObject += "\",\"pubguiBtnName\":\"";
  1288. myJSONObject += getButtonValue(getButtonposition(arrayCollectionBtns[i]))+"\"";
  1289. myJSONObject += "},";
  1290. }
  1291. }
  1292. if (arrayFSBtns != undefined){
  1293. for(var i=0; i<arrayFSBtns.length; i++){
  1294. varIsAssociated = (varResourceURI.charAt(getButtonposition(arrayFSBtns[i]))==1)?"Y":"N";
  1295. myJSONObject += "{\"isAssociated\":\"";
  1296. myJSONObject += varIsAssociated;
  1297. myJSONObject += "\",\"pubguiBtnName\":\"";
  1298. myJSONObject += getButtonValue(getButtonposition(arrayFSBtns[i]))+"\"";
  1299. myJSONObject += "},";
  1300. }
  1301. }
  1302. if (arrayCSBtns != undefined){
  1303. for(var i=0; i<arrayCSBtns.length; i++){
  1304. varIsAssociated = (varResourceURI.charAt(getButtonposition(arrayCSBtns[i]))==1)?"Y":"N";
  1305. myJSONObject += "{\"isAssociated\":\"";
  1306. myJSONObject += varIsAssociated;
  1307. myJSONObject += "\",\"pubguiBtnName\":\"";
  1308. myJSONObject += getButtonValue(getButtonposition(arrayCSBtns[i]))+"\"";
  1309. myJSONObject += "},";
  1310. }
  1311. }
  1312. if (arrayDDBtns != undefined){
  1313. for(var i=0; i<arrayDDBtns.length; i++){
  1314. varIsAssociated = (varResourceURI.charAt(getButtonposition(arrayDDBtns[i]))==1)?"Y":"N";
  1315. myJSONObject += "{\"isAssociated\":\"";
  1316. myJSONObject += varIsAssociated;
  1317. myJSONObject += "\",\"pubguiBtnName\":\"";
  1318. myJSONObject += getButtonValue(getButtonposition(arrayDDBtns[i]))+"\"";
  1319. if(i == parseInt(arrayDDBtns.length-1)){
  1320. myJSONObject += "}";
  1321. }
  1322. else{
  1323. myJSONObject += "},";
  1324. }
  1325. }
  1326. }
  1327.  
  1328. myJSONObject += "]}}";
  1329. dojo.byId('componentNameObj').value = currComponent.componentName;
  1330. hideObjects(['componentsInfo','createComponent','manageComponent','createComponentLinkId']);
  1331. showObjects(['manageComponent']);
  1332. var btns = [];
  1333. dojo.byId('buttonsTab3').innerHTML = '';
  1334. $('resourcesInfo').innerHTML = '';
  1335. btns = [{dojoType: dijit.form.Button, label:'Save', region:'center', onClick: function(){saveResources();}},
  1336. {dojoType: dijit.form.Button, label:'Back', region:'center', onClick: getComponentsInfo}];
  1337. if($('statusMessage_Components')){$('statusMessage_Components').innerHTML = '';}
  1338. $('screenName_Admin_Components').innerHTML = 'Manage Component : '+currComponent.componentName;
  1339. var resourceStructure = [
  1340. { field: 'isAssociated', name: 'Select', width: '50px', formatter:checkBoxDojo },
  1341. { field: 'pubguiBtnName', name: 'PubGUI Button Names', width: 'auto'},
  1342. ];
  1343. parsedResponseText = myJSONObject.parseJSON();
  1344. var resourceDataStore = parsedResponseText.PubGUIButtons.PubGUIButton;
  1345. gridID = 'id_5'+(new Date());
  1346. var grid1 = PubGUIGrid('resourcesInfo', gridID, resourceStructure, resourceDataStore, 'assocResourceRowClickHandler');
  1347. for(i=0; i<btns.length; i++){
  1348. var btn = new dijit.form.Button(btns[i]);
  1349. dojo.byId('buttonsTab3').appendChild(btn.domNode);
  1350. }
  1351. }
  1352.  
  1353. function saveResources(){
  1354. var updatedResourcesJSON = getUpdatedResourcesInfo();
  1355. var url = baseURL +SAVE_RESOURCE +currComponent.componentID;
  1356. var reqArgs = {url: url, method: 'PUT', putData: updatedResourcesJSON, load: displayStatus, error: displayError, handleAs:'json'};
  1357. new AJAX.pubGUI.sendRequest(reqArgs);
  1358. }
  1359.  
  1360. function getUpdatedResourcesInfo(){
  1361. var grid = dijit.byId(gridID);
  1362. var items = [];
  1363. var count = grid.store._arrayOfAllItems.length;
  1364. var varResourceURI = "";
  1365. for(var i = 0 ; i < count ; i++){
  1366. var item = grid.store._arrayOfAllItems[i];
  1367. if(item != null){
  1368. items.push(item);
  1369. }
  1370. }
  1371. for(var i=0; i<items.length; i++){
  1372. varResourceURI += (items[i].isAssociated=="Y")?'1':'0';
  1373. }
  1374. var updatedResourcesJSON = "{\"@class\":\"Resource\",\"resourceURI\":\"";
  1375. updatedResourcesJSON += varResourceURI;
  1376. updatedResourcesJSON += "\",\"componentID\":\"";
  1377. updatedResourcesJSON += currComponent.componentID;
  1378. updatedResourcesJSON += "\"}";
  1379. updatedResourcesJSON = prepareResourceRequest(updatedResourcesJSON);
  1380. return updatedResourcesJSON;
  1381. }
  1382.  
  1383. function assocResourceRowClickHandler(evt){
  1384. var grid = evt.grid;
  1385. grid.selection.setSelected(evt.rowIndex, false);
  1386. if(evt.cellIndex == 0){
  1387. var checkBox = (evt.target)?evt.target:evt.srcElement;
  1388. if(evt.target == evt.cellNode){
  1389. return false;
  1390. }
  1391. checkBox.className = (checkBox.className=='checkBox')?'checkBoxChecked':'checkBox';
  1392. var currVal = (checkBox.className=='checkBox')?'N':'Y';
  1393. if(checkBox.className=='checkBox'){
  1394. checkBox.innerHTML = 'N';
  1395. grid.getItem(evt.rowIndex).isAssociated = 'N';
  1396. }
  1397. else{
  1398. checkBox.innerHTML = 'Y';
  1399. grid.getItem(evt.rowIndex).isAssociated = 'Y';
  1400. }
  1401. }
  1402. }
  1403.  
  1404. function validateGroup(){
  1405. var grpName = dojo.byId('groupNameObj');
  1406. var grpPwd = dojo.byId('groupPwdObj');
  1407. var cnfmGrpPwd = dojo.byId('groupPwdConfirmObj');
  1408. if(grpPwd.value != cnfmGrpPwd.value){
  1409. alert('The Group Password and Confirm Group Password must be same.');
  1410. cnfmGrpPwd.focus();
  1411. cnfmGrpPwd.value = '';
  1412. return false;
  1413. }
  1414. if(grpName.value == '' || grpPwd.value == '' || cnfmGrpPwd.value == ''){
  1415. alert('Please enter all mandatory fields.');
  1416. if(grpName.value == ''){
  1417. grpName.focus();
  1418. }
  1419. if(grpPwd.value == ''){
  1420. grpPwd.focus();
  1421. }
  1422. if(cnfmGrpPwd.value == ''){
  1423. cnfmGrpPwd.focus();
  1424. }
  1425. return false;
  1426. }
  1427. return true;
  1428. }
  1429.  
  1430. function validateRole(){
  1431. var roleNameObj = dojo.byId('roleNameObj');
  1432. var roleName = roleNameObj.value;
  1433. if(roleName == ''){
  1434. alert('Please enter all mandatory fields.');
  1435. roleNameObj.focus();
  1436. return false;
  1437. }
  1438. return true;
  1439. }
  1440.  
  1441. function clearCompVal(){
  1442. dojo.byId('newComponentObj').value = '';
  1443. }
  1444.  
  1445. function validateCreateComponent(){
  1446. var newCompNameObj = dojo.byId('newComponentObj');
  1447. var newCompName = null;
  1448. if(newCompNameObj != undefined){
  1449. newCompName = newCompNameObj.value;
  1450. }
  1451. if(newCompName == ''){
  1452. alert('Please enter all mandatory fields.');
  1453. dijit.byId('createComponent').show();
  1454. newCompNameObj.focus();
  1455. return false;
  1456. }
  1457. return true;
  1458. }
  1459.  
  1460. function validateUpdateComponent(){
  1461. var compNameObj = dojo.byId('componentNameObj');
  1462. var compName = null;
  1463. if(compNameObj != undefined){
  1464. compName = compNameObj.value;
  1465. }
  1466. if(compName == ''){
  1467. alert('Please enter all mandatory fields.');
  1468. compNameObj.focus();
  1469. return false;
  1470. }
  1471. return true;
  1472. }
  1473.  
  1474. function validateUser(){
  1475. var userIDObj = dojo.byId('userIDObj');
  1476. var userID = userIDObj.value;
  1477. var firstNameObj = dojo.byId('firstNameObj');
  1478. var firstName = firstNameObj.value;
  1479. var lastNameObj = dojo.byId('lastNameObj');
  1480. var lastName = lastNameObj.value;
  1481. var eMailIdObj = dojo.byId('emailIDObj');
  1482. var eMailId = eMailIdObj.value;
  1483. if(userID == '' || firstName == '' || lastName == '' || eMailId == ''){
  1484. alert('Please enter all mandatory fields.');
  1485. if(userID == ''){
  1486. userIDObj.focus();
  1487. }
  1488. if(firstName == ''){
  1489. firstNameObj.focus();
  1490. }
  1491. if(lastName == ''){
  1492. lastNameObj.focus();
  1493. }
  1494. if(eMailId == ''){
  1495. eMailIdObj.focus();
  1496. }
  1497. return false;
  1498. }
  1499. if(hasSpecialChars(userID,"'$@!#%^&*()_-+={}[]|\\:;'?/><~ `")){
  1500. alert('No special characters are allowed for User ID field.');
  1501. userIDObj.focus();
  1502. return false;
  1503. }
  1504. if(!validateEMailId(eMailId)){
  1505. alert('Please enter a valid E-mail ID.');
  1506. eMailIdObj.focus();
  1507. return false;
  1508. }
  1509. return true;
  1510. }
  1511.  
  1512. function searchUser(){
  1513. var searchUserId = ($('searchUserIDObj').value=="")?encodeURIComponent(" "):encodeURIComponent($('searchUserIDObj').value);
  1514. var searchFirstName = ($('searchFirstNameObj').value=="")?encodeURIComponent(" "):encodeURIComponent($('searchFirstNameObj').value);
  1515. var searchLastName = ($('searchLastNameObj').value=="")?encodeURIComponent(" "):encodeURIComponent($('searchLastNameObj').value);
  1516. var searchEmailId = encodeURIComponent(" ");
  1517. var url = baseURL + SEARCH_USERS +searchUserId +"/"+searchFirstName+"/"+searchLastName+"/"+searchEmailId+'?ignoreMe=' + new Date().getTime();
  1518. var reqArgs = {url: url, method: 'GET', load: displaySearchInfo, error: displaySearchInfoErr, handleAs:'json'};
  1519. new AJAX.pubGUI.sendRequest(reqArgs);
  1520. }
  1521.  
  1522. function displaySearchInfo(reponseJSON){
  1523. if (reponseJSON != null && reponseJSON.ResourceResponse != undefined){
  1524. $('searchUsersInfo').innerHTML = '';
  1525. $('statusMessage_SearchUser').innerHTML = '';
  1526. var searchUsersStructure = [
  1527. { name: '', width: '20px'},
  1528. { field: 'userID', name: 'User ID', width: '100px', formatter: showAsLink},
  1529. { field: 'firstName', name: 'First Name', width: '100px'},
  1530. { field: 'lastName', name: 'Last Name', width: '100px'},
  1531. { field: 'emailID', name: 'E-mail ID', width: 'auto'}
  1532. ];
  1533. var searchUsersDataStore = reponseJSON.ResourceResponse.Users.User;
  1534. if(!searchUsersDataStore.length){
  1535. searchUsersDataStore = [searchUsersDataStore];
  1536. }
  1537. var grid1 = PubGUIGrid('searchUsersInfo', 'id_10'+(new Date()), searchUsersStructure, searchUsersDataStore, 'searchUsersRowClickHandler');
  1538. showObjects(['searchUsersInfo']);
  1539. dijit.byId('searchUserDialog').show();
  1540. }
  1541. }
  1542.  
  1543. function displaySearchInfoErr(responseJSON){
  1544. dijit.byId('searchUserDialog').show();
  1545. hideObjects(['searchUsersInfo']);
  1546. responseJSON = responseJSON.responseText;
  1547. var response = responseJSON.parseJSON();
  1548. $('statusMessage_SearchUser').innerHTML = (response.PubGUIErrorResponse != null) ? response.PubGUIErrorResponse.ErrorMessage :response.PubGUIErrorResponse.ErrorMessage;
  1549. }
  1550.  
  1551. function searchUsersRowClickHandler(evt){
  1552. var grid = evt.grid;
  1553. grid.selection.setSelected(evt.rowIndex, false);
  1554. dijit.byId('searchUserDialog').hide();
  1555. if(evt.cellIndex == 1){
  1556. if(evt.target == evt.cellNode){ // so as to accept the event only when clicked on the text
  1557. return false;
  1558. }
  1559. var rowData = grid.getItem(evt.rowIndex);
  1560. currUser = rowData; // setting the group info to global variable(currGroup).
  1561. createOrManageUser(false);
  1562. }
  1563. }
  1564.  
  1565. function clearSearchScreen(){
  1566. dojo.byId('searchUserIDObj').value = '';
  1567. dojo.byId('searchFirstNameObj').value = '';
  1568. dojo.byId('searchLastNameObj').value = '';
  1569. $('statusMessage_SearchUser').innerHTML = '';
  1570. hideObjects(['searchUsersInfo']);
  1571. }
  1572.  
  1573. function checkUserId(param){
  1574. var userIdLen = param.value.length;
  1575. if(userIdLen != 0 && userIdLen < 3){
  1576. alert('Please enter atleast three characters for user id.');
  1577. $('searchUserIDObj').value = '';
  1578. }
  1579. }
  1580.  
  1581. function checkFirstName(param){
  1582. var firstNameLen = param.value.length;
  1583. if(firstNameLen != 0 && firstNameLen < 3){
  1584. alert('Please enter atleast three characters for first name.');
  1585. $('searchFirstNameObj').value = '';
  1586. }
  1587. }
  1588.  
  1589. function checkLastName(param){
  1590. var lastNameLen = param.value.length;
  1591. if(lastNameLen != 0 && lastNameLen < 3){
  1592. alert('Please enter atleast three characters for last name.');
  1593. $('searchLastNameObj').value = '';
  1594. }
  1595. }
  1596.  
  1597. function getPredefinedRoles(){
  1598. var url = baseURL + PREDEFINED_ROLES +"?ignoreMe=" + new Date().getTime();
  1599. var reqArgs = {url: url, method: 'GET',load: displayPredefinedRoles, error: displayPredefinedRoles, handleAs:'json'};
  1600. new AJAX.pubGUI.sendRequest(reqArgs);
  1601. }
  1602.  
  1603. function displayPredefinedRoles(reponseJSON){
  1604. var select = dojo.create('select');
  1605. select.id = "usersTabRolesId";
  1606. select.setAttribute('style','font-family: arial; font-size: 9pt;');
  1607. if (reponseJSON != null && reponseJSON.ResourceResponse.Roles != undefined){
  1608. var tempRolesObjectForPubGUI = reponseJSON.ResourceResponse.Roles.Role;
  1609. if(!tempRolesObjectForPubGUI.length){
  1610. tempRolesObjectForPubGUI = [tempRolesObjectForPubGUI];
  1611. }
  1612. for (i=0; i<tempRolesObjectForPubGUI.length; i++){
  1613. rolesPubGUI = tempRolesObjectForPubGUI[i];
  1614. var option = dojo.create('option');
  1615. option.value = rolesPubGUI.roleID;
  1616. if(i==0){
  1617. userRoleID_global = rolesPubGUI.roleID;
  1618. }
  1619. option.innerHTML = rolesPubGUI.roleName;
  1620. select.appendChild(option);
  1621. }
  1622. dojo.connect(select, 'onchange', getAllUserForAppRole);
  1623. dojo.byId('users_role_dropdown').innerHTML = '';
  1624. dojo.byId('users_role_dropdown').appendChild(select);
  1625. }
  1626. getAllUserForAppRole();
  1627. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement