Advertisement
yaramohamed78

Sans HR - v4

Jul 9th, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ASP 7.67 KB | None | 0 0
  1. 'use strict';
  2.  
  3. ExecuteOrDelayUntilScriptLoaded(initializePage, "sp.js");
  4.  
  5. function initializePage()
  6. {
  7.     var engLanguage = true;
  8.     // var context = new SP.ClientContext.get_current();
  9.     // var user = context.get_web().get_currentUser();
  10.     var context;
  11.     var user;
  12.     var hostweburl;
  13.     var appweburl;
  14.     var appContextSite;
  15.     var list;
  16.     var employeeList;
  17.     var web;
  18.     var collListItem;
  19.     var collListItem1;
  20.     var collListItem2;
  21.     var isManager = false;
  22.     var requestList;
  23.     var firstLoad = true;
  24.     var tempList = [];
  25.     var link = "https://ejadasharepoint-1786e4322383fd.sharepoint.com/sites/SANSOnlinePortalProject/HRAppraisal/SANS_HRAppraisal/Pages/HRAppraisalForm.aspx?SPHostUrl=https%3A%2F%2Fejadasharepoint%2Esharepoint%2Ecom%2Fsites%2FSANSOnlinePortalProject%2FHRAppraisal&SPLanguage=en-US&SPClientTag=4&SPProductNumber=16%2E0%2E6628%2E1206&SPAppWebUrl=https%3A%2F%2FEjadaSharePoint-1786e4322383fd%2Esharepoint%2Ecom%2Fsites%2FSANSOnlinePortalProject%2FHRAppraisal%2FSANS_HRAppraisal";
  26.     var pageLink = "https://ejadasharepoint-1786e4322383fb.sharepoint.com/sites/SANSOnlinePortalProject/SANS_UserInbox/Pages/Default.aspx?SPHostUrl=https%3A%2F%2Fejadasharepoint%2Esharepoint%2Ecom%2Fsites%2FSANSOnlinePortalProject&SPLanguage=en-US&SPClientTag=0&SPProductNumber=16%2E0%2E6614%2E1203&SPAppWebUrl=https%3A%2F%2FEjadaSharePoint-1786e4322383fb%2Esharepoint%2Ecom%2Fsites%2FSANSOnlinePortalProject%2FSANS_UserInbox"
  27.     // This code runs when the DOM is ready and creates a context object which is needed to use the SharePoint object model
  28.     $(document).ready(function () {
  29.         $('#example').on('click', 'tr', function () {
  30.             var rid = $(this).find('td:first').text();
  31.             var state = $(this).find('td').eq(3).html();
  32.             window.open(link + "?rid=" + rid + "&manager=" + isManager + "&state=" + state, "_self");
  33.         });
  34.  
  35.         $("#langBtn").click(function () {
  36.             if (localStorage.getItem('lang') == 'en') {
  37.                 localStorage.setItem('lang', 'ar');
  38.                 window.open(pageLink + "&lang=ar", "_self");
  39.                 //  window.location.href = window.location.pathname + "?" + $.param({ 'lang': 'ar' });
  40.  
  41.             }
  42.             else {
  43.                 localStorage.setItem('lang', 'en');
  44.                 window.open(pageLink + "&lang=en", "_self");
  45.                 //  window.location.href = window.location.pathname + "?" + $.param({ 'lang': 'en' });
  46.             }
  47.             //location.reload();
  48.         });
  49.         getUserName();
  50.         SP.SOD.executeFunc('sp.js', 'SP.ClientContext', getUrl);
  51.  
  52.  
  53.     });
  54.  
  55.     // This function prepares, loads, and then executes a SharePoint query to get the current users information
  56.     function getUserName() {
  57.         context = new SP.ClientContext.get_current();
  58.         user = context.get_web().get_currentUser();
  59.         context.load(user);
  60.         // context.load(user,'Include(Title)');
  61.         context.executeQueryAsync(onGetUserNameSuccess, onGetUserNameFail);
  62.     }
  63.  
  64.     // This function is executed if the above call is successful
  65.     // It replaces the contents of the 'message' element with the user name
  66.     function onGetUserNameSuccess() {
  67.         //console.log('Hello '+ user.get_title());
  68.         // $('#message').text('Hello ' + user.get_title());
  69.     }
  70.  
  71.     // This function is executed if the above call fails
  72.     function onGetUserNameFail(sender, args) {
  73.         alert('Failed to get user name. Error:' + args.get_message());
  74.     }
  75.  
  76.     //Get the url for the sharepoint site
  77.     function getUrl() {
  78.         hostweburl = getQueryStringParameter("SPHostUrl");
  79.         hostweburl = hostweburl.replace("%2FUserInbox", "");
  80.         appweburl = getQueryStringParameter("SPAppWebUrl");
  81.         hostweburl = decodeURIComponent(hostweburl);
  82.         appweburl = decodeURIComponent(appweburl);
  83.         var scriptbase = hostweburl + "/_layouts/15/";
  84.         $.getScript(scriptbase + "SP.Runtime.js",
  85.             function () {
  86.                 $.getScript(scriptbase + "SP.js",
  87.                 function () { $.getScript(scriptbase + "SP.RequestExecutor.js", execOperation); }
  88.                 );
  89.             }
  90.         );
  91.         // event.preventDefault();
  92.     }
  93.  
  94.     function execOperation() {
  95.         context = new SP.ClientContext(appweburl);
  96.         var factory = new SP.ProxyWebRequestExecutorFactory(appweburl);
  97.         context.set_webRequestExecutorFactory(factory);
  98.         appContextSite = new SP.AppContextSite(context, hostweburl);
  99.         web = appContextSite.get_web();
  100.         context.load(web);
  101.         context.executeQueryAsync(getEmployeeInfo, onFail);
  102.     }
  103.  
  104.     function getEmployeeInfo() {
  105.  
  106.         employeeList = web.get_lists().getByTitle("Employees");
  107.  
  108.         var camlQuery = new SP.CamlQuery();
  109.         camlQuery.set_viewXml(
  110.             "<View><Query><Where><Eq><FieldRef Name='EmployeeName' /><Value Type='User'>" + user.get_title() + "</Value></Eq></Where></Query></View>"
  111.             );
  112.         collListItem1 = employeeList.getItems(camlQuery);
  113.         context.load(collListItem1);
  114.         context.executeQueryAsync(getEmployeeType, onFail);
  115.     }
  116.  
  117.     function getEmployeeType() {
  118.  
  119.         var listItemInfo = '';
  120.         var listItemEnumerator = collListItem1.getEnumerator();
  121.  
  122.         while (listItemEnumerator.moveNext()) {
  123.             var oListItem = listItemEnumerator.get_current();
  124.             console.log(oListItem.get_item('EmployeeName'));
  125.             listItemInfo += '\n Employee: ' + oListItem.get_item('EmployeeName')['$5K_1'];
  126.             if (oListItem.get_item('EmployeeType') == "Manager") {
  127.                 isManager = true;
  128.             }
  129.  
  130.         }
  131.         context.executeQueryAsync(getRequestList, onFail);
  132.     }
  133.  
  134.     function getRequestList() {
  135.         list = web.get_lists().getByTitle("AppraisalRequests");
  136.         var camlQuery = new SP.CamlQuery();
  137.         if (isManager == true) {
  138.             camlQuery.set_viewXml(
  139.                  "<View><Query><Where><Eq><FieldRef Name='Manager' /><Value Type='User'>" + user.get_title() + "</Value></Eq></Where></Query></View>"
  140.                  );
  141.         }
  142.         else {
  143.             camlQuery.set_viewXml(
  144.                  "<View><Query><Where><Eq><FieldRef Name='Employee' /><Value Type='User'>" + user.get_title() + "</Value></Eq></Where></Query></View>"
  145.                  );
  146.         }
  147.         collListItem = list.getItems(camlQuery);
  148.         context.load(collListItem);
  149.         context.executeQueryAsync(fillRequests, onFail);
  150.  
  151.     }
  152.  
  153.     function fillRequests() {
  154.         var listItemEnumerator = collListItem.getEnumerator();
  155.         //var table = document.getElementById("example").getElementsByTagName('tbody')[0];
  156.         var table = $('#example').DataTable();
  157.         if (firstLoad) {
  158.             $("#example tbody tr").remove();
  159.             firstLoad = false;
  160.         }
  161.         while (listItemEnumerator.moveNext()) {
  162.             var oListItem = listItemEnumerator.get_current();
  163.             table.row.add([oListItem.get_item('RequestID'), oListItem.get_item('Employee').get_lookupValue(), oListItem.get_item('Manager').get_lookupValue(), oListItem.get_item('RequestStatus'), oListItem.get_item('RequestDate')]).draw();
  164.  
  165.         }
  166.  
  167.     }
  168.  
  169.     // This function is executed if the above call fails
  170.     function onFail(sender, args) {
  171.         alert(args.get_message());
  172.     }
  173.     function getQueryStringParameter(paramToRetrieve) {
  174.         var params =
  175.             document.URL.split("?")[1].split("&");
  176.         for (var i = 0; i < params.length; i = i + 1) {
  177.             var singleParam = params[i].split("=");
  178.             if (singleParam[0] == paramToRetrieve)
  179.                 return singleParam[1];
  180.         }
  181.     }
  182.  
  183.  
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement