Showing posts with label javascript. Show all posts
Showing posts with label javascript. Show all posts

Sunday, 6 September 2020

How to filter JSON data to get value based on the supplied key?

 var existingData = [];


some-loop{

    existingData.push(
{
'email' : $(this).attr("ows_Email_x0020_ID"), //this will be the key
'id' : $(this).attr("ows_ID") // record id for a given email will be fetched
}
}


function getIDbyEmail(emailID)
{
try
{
//var obj; = existingData.filter(i=>i.email==emailID);

var obj = existingData.filter(function(item){
    return item.email == emailID;
});

var _id = obj[0].id;

if(_id == undefined || _id == "" || _id == null)
{
return 0;
}
else
{
return _id;
}
}
catch(err)
{
return 0;
}
}





Thursday, 13 August 2020

How to redirect SharePoint Home page to site contents page?

 

<script language="javascript" type="text/javascript">

document.addEventListener("DOMContentLoaded", function(){

  var url = location.href;

  location = url.replace("SitePages/test.aspx", "_layouts/viewlsts.aspx");

});

</script>

Tuesday, 11 August 2020

How to search documents using SPServices and SharePoint Search?

 

var searchtext ="string to be searched";

SharePoint 2010:

var queryText = "<QueryPacket xmlns='urn:Microsoft.Search.Query' Revision='1000'>";

queryText += "<Query>";

queryText += "<Context>";

queryText += "<QueryText language='en-US' type='MSSQLFT'>";

queryText += "SELECT SpSiteUrl, Title, Path, Description, HitHighlightedSummary, IsDocument";

queryText += "FROM Scope() WHERE FREETEXT(DEFAULTPROPERTIES, '";

queryText += searchtext;

queryText += "')And CONTAINS(Path, 'https://server/sites/site/subsite/library')";

queryText += "ORDER BY \"Rank\" DESC";

queryText += "</QueryText>";

queryText += "</Context>";

queryText += "<Range><Count>5000</Count></Range>";

queryText += "</Query>";

queryText += "</QueryPacket>";


SharePoint Online:

var queryText = "<QueryPacket xmlns='urn:Microsoft.Search.Query' Revision='1000'>"

queryText += "<Query>"

queryText += "<Range><Count>500</Count></Range>";

queryText += "<Context>"

queryText += "<QueryText language='en-US' type='STRING'>"

queryText += searchtext;

queryText += " Site:https://server/sites/site/subsite/library/";

queryText += "</QueryText>"

queryText += "</Context>"

queryText += "</Query>"

queryText += "</QueryPacket>";


//declare required variables


$().SPServices({//sart service call

    operation: "Query",

    queryXml: queryText,

    async: false,

    completefunc: function (xData, Status) {

$(xData.responseXML).find('CopyResult').attr('ErrorMessage'));

        $(xData.responseXML).find("QueryResult").each(function () {

            var x = $(this).text();

            $(x).find("Document").each(function () {

                url = $("Action>LinkUrl", $(this)).text();

                if ((url.indexOf("site/subsite/library") > 0) && 

                    ((url.indexOf("aspx")) == -1)) {

title = $("Title", $(this)).text();

size = $("Action>LinkUrl", $(this)).attr('size');

ext = $("Action>LinkUrl", $(this)).attr('fileExt');

desc = $("Description", $(this)).text();

//clear/reset variables

                }

            });

        });


    }

});//end service call

Monday, 24 February 2020

JavaScript date : How to compare two dates to check which one is greater?


Example:

if(startDate.getTime() == endDate.getTime()) //both the dates are same
{
            //do something
}

JavaScript date : How to get days between two dates?


var daysInbetween = (d2.getTime() - d1.getTime())/(1000 * 3600 * 24);

JavaScript date : How to get all dates between two dates?


function getAllDatesBetween(startDate,endDate)
{
var d1 = new Date(startDate);
var d2 = new Date(endDate);
var d3;
var daysInbetween = (d2.getTime() - d1.getTime())/(1000 * 3600 * 24);

for(var i=0;i<=daysInbetween;i++)
{
d3 = new Date(d1);
d3.setDate(d3.getDate() + i);
datesArray.push((d3.getMonth()+1).toString()+"/"+d3.getDate().toString()+"/"+d3.getFullYear().toString());
}
}

JavaScript date : How to get month and year difference between two dates?


function yearsDiff(d1, d2) {
    var date1 = new Date(d1);
    var date2 = new Date(d2);
    var yearsDiff =  date2.getFullYear() - date1.getFullYear();
    return yearsDiff;
}

function monthsDiff(d1, d2) {
  var date1 = new Date(d1);
  var date2 = new Date(d2);
  var years = yearsDiff(d1, d2);
  var monthsDiff =(years * 12) + (date2.getMonth() - date1.getMonth()) ;
  return monthsDiff;
}

JavaScript date : How to get date for first, mid and last day of a month?


var firstDayStartDate = new Date(anyDateOfTheMonth.getFullYear(), anyDateOfTheMonth.getMonth(), 1);

var midDayStartDate = new Date(anyDateOfTheMonth.getFullYear(), anyDateOfTheMonth.getMonth(), 15);

var midDayPlusOneStartDate = new Date(anyDateOfTheMonth.getFullYear(), anyDateOfTheMonth.getMonth(), 16);

var lastDayStartDate = new Date(anyDateOfTheMonth.getFullYear(), anyDateOfTheMonth.getMonth() + 1, 0);

JavaScript Date : How to get working hours between two dates?


function getWorkingHoursBetween(d1,d2)
{
var workingDays = 0;
var daysInbetween = (d2.getTime() - d1.getTime())/(1000 * 3600 * 24);
var d3, iDay;
for(var i=0;i<=daysInbetween;i++)
{
d3 = new Date(d1);
d3.setDate(d3.getDate() + i);
iDay = d3.getDay();
if(iDay !=0 && iDay!=6)
{
workingDays++;
}
}
return (workingDays*9); //9 being the working hours per day
}

Sunday, 24 March 2019

How to show loading message/image during function call in JavaScript?


HTML

<select class="options-selector" id="drpAbcOptions" onmousedown="$('#loader').show();" onmouseup="$('#loader').hide();" onchange="callSomeFunction()"></select>

<div id="loader" style="display:none;"></div>

CSS

#loader {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 1;
  width: 50px;
  height: 50px;
  margin: -75px 0 0 -75px;
  border: 8px solid #f3f3f3;
  border-radius: 50%;
  border-top: 8px solid #3498db;
  -webkit-animation: spin 2s linear infinite;
  animation: spin 2s linear infinite;
}
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }

}


Script

$(document).ready(function(){
     $('#loader').show();
});

$(window).on('load', function (){
  setTimeout(function (){
   try
   {
       loadData();
   }
   catch(ex){}
   finally
   {
       $(loader).hide();
    }
  }, 1000);
});

Friday, 22 March 2019

How to refresh w2ui grid on dropdown menu index change?


    function onSelectedIndexChange()
   {
    //prepare records using loop
   
    try
     {
          w2ui['grid']. destroy ();
     }
     catch(ex){}

    defineGrid(); // call the function to define grid columns and other properties
    w2ui['grid'].records = listData;
    w2ui['grid'].refresh();
    }

Thursday, 14 February 2019

Excel to JSON : How to convert Excel data into JSON object using JavaScript?

<html>
<head>

<script type="text/javascript" src="./scripts/jquery-2.2.4.min.js"></script>
<script type="text/javascript" src="./scripts/jszip.js"></script>
<script type="text/javascript" src="./scripts/shim.min.js"></script>
<script type="text/javascript" src="./scripts/xlsx.js"></script>

<script language="javascript" type="text/javascript">
var _json_array;
$(document).ready(function(){
    $("#uploadingText").css("display", "none");
    $(function() {
        _fileIn = document.getElementById('fileToUpload');
        if(_fileIn.addEventListener) {
            _fileIn.addEventListener('change', readAllRows, false);//false: bubbling; true: capturing
        }
    });
});


function readAllRows(_event)
{
    try{
        var _file = _event.target.files[0];
        var _reader = new FileReader();
        _reader.onload = function(e) {
       
          var _data = e.target.result;
          var _workbook = XLSX.read(_data, {
            type: 'array',cellDates: true
          });
   
          _workbook.SheetNames.forEach(function(sheetName) {
            var _xl_row = XLSX.utils.sheet_to_json(_workbook.Sheets[sheetName]);
            _json_array = JSON.stringify(_xl_row); //last sheet
          })
        };
   
        _reader.onerror = function(ex) {
          alert('Something went wrong. Please try again after sometime.');
        };
       
        _reader.onloadend = function(ex) {
          uploadData();
        };
       
        _reader.readAsArrayBuffer(_file);//,{cellDates:true,cellText:false});  
    }
    catch(err)
    {
        alert('Invalid workbook.');
    }
}

function uploadData()
{
    jasonData = $.parseJSON(_json_array);
    console.log(jasonData[i]["ColumnName"])
}

</script>
</head>
<body>
    <input style="font-family:'Segoe UI';" type="file" id="fileToUpload" />
</body>
</html>


Note: Based on the timezone you may have to add a day to the date.

Tuesday, 29 January 2019

SP Services: How to populate a dropdown box with unique values from a SharePoint list column?


<script language="javascript" type="text/javascript">
$( document ).ready(function(){
loadFunction();
})

function loadFunction()
{
$().SPServices({
    operation: "GetListItems",
    async: false,
    listName: "List Name",
    CAMLViewFields: "<ViewFields><FieldRef Name='Title' /></ViewFields>",
    CAMLQuery: "<Query><Where><Neq><FieldRef Name='ID' /><Value Type='Counter'>0</Value></Neq></Where><OrderBy><FieldRef Name='Title' Ascending='True' /></OrderBy></Query>",
    completefunc: function (xData, Status) {
      $(xData.responseXML).SPFilterNode("z:row").each(function() {
      var opTitle = $(this).attr("ows_Title");
      var opOption = "<option value="+opTitle+">" + opTitle + "</option>"
        $("select.opselector").append(opOption);
      });
    }
  });

 //Remove duplicate values
  $(".opselector option").val(function(idx, val) {
  $(this).siblings('[value="'+ val +'"]').remove();
  });

}

//Get selected text
function getOP()
{
    alert($(".opselector option:selected").html());
}

</script>

<body>
<select class="opselector" onchange="getOP();"></select>
</body>

Tuesday, 4 December 2018

How to redirect the current user to the existing item from the new-item page?


Add the following to a web-part on the new-item page:

<script type="text/javascript" language="javascript">
var masterDataList;

ExecuteOrDelayUntilScriptLoaded(getWebUserData, "sp.js");

function getWebUserData() {

clientContext = new SP.ClientContext.get_current();
web = clientContext.get_web();
currentUser = web.get_currentUser();
currentUser.retrieve();
clientContext.load(web);
clientContext.executeQueryAsync(onSuccessMethodGetUser, onFailureGetUser);
}

function onSuccessMethodGetUser(sender, args) {
var userObject = web.get_currentUser();
var userName = userObject.get_title(); //get_email();
masterDataList= web.get_lists().getByTitle('List Name');
var camlQuery = new SP.CamlQuery();
var query = "<View><Query><Where><Contains><FieldRef Name='Resource_x0020_Email' /><Value Type='Text'>" + userName + "</Value></Contains></Where></Query></View>";
camlQuery.set_viewXml(query);
masterDataListItem= masterDataList.getItems(camlQuery);
clientContext.load(masterDataListItem);
clientContext.executeQueryAsync(onMasterDataListItemsLoadSucceeded,onMasterDataListItemsLoadFailed);
}

function onFailureGetUser(sender, args)
{
//Do nothing
}

function onMasterDataListItemsLoadSucceeded(sender,args)
{
var itemID;
var itemsEnumerator=masterDataListItem.getEnumerator();
//Fetch latest item
while(itemsEnumerator.moveNext())
{
var currentItem=itemsEnumerator.get_current();
itemID=currentItem.get_item('ID');
}
if(itemID!=undefined)
{
window.location.href="https://server/sites/site_name/Lists/list_name/Item/editifs.aspx?ID="+itemID+"";
}
}

function onMasterDataListItemsLoadFailed(sender,args)
{
//Do nothing
}

</script>

Thursday, 15 November 2018

SharePoint Application Page: How to export Gridview data to Excel file using ActiveX?


Note: This feature works only in IE. Also, you would need to enable ActiveX in IE settings and add the URL in trusted sites.

Prerequisite 1: IE Settings -> Internet Options -> Security -> Trusted Sites -> Custom Levels -> ActiveX Settings -> Enable/Prompt for ActiveX not marked as safe.

Prerequisite 2: IE Settings -> Internet Options -> Security -> Trusted Sites -> Add URL


Javascript:

<script language="javascript" type="text/javascript">
function exportTable() {
var x = document.getElementById('table_id').rows;
var xls = new ActiveXObject("Excel.Application");
xls.visible = true
xls.Workbooks.Add
for (i = 0; i < x.length; i++) {
var y = x[i].cells;
for (j = 0; j < y.length; j++) {
xls.cells(i + 1, j + 1).value = y[j].innerText;
}
}
}
</script>


HTML


<input type='button' value='Export To Excel' onclick="exportTable();"/>

Thursday, 12 April 2018

Tuesday, 3 April 2018

SPServices : How to prepare date data for the SharePoint list date field using JavaScript?


var currDate = new Date();

var numDay=currDate.getDate();
var numMonth = currDate.getMonth();
var numYear = currDate.getFullYear();

var tempDate = (++numMonth)+"/"+(numDay)+"/"+numYear ;
var spDate = new Date(tempDate).toISOString();

//e.g. 2019-08-29T18:30:00.000Z


Note: You may have to adjust numDay based on the timezone.

How to fetch the email of the current user using SPServices?



$( document ).ready(function(){

 currUser = $().SPServices.SPGetCurrentUser({

  fieldNames: ["WorkEmail"],

  debug: false

 });

currUserEmail = currUser.split('p|')[1];

})

Monday, 9 February 2015

How to prepare Host-Web-Url and App-Web-Url, for SharePoint hosted app, that works for both root site and sub-sites?

$(document).ready(function () {
sharePointReady();
});

function sharePointReady() {
var temphostweburl =
decodeURIComponent(
getQueryStringParameter('SPHostUrl')
);

domainUrl = temphostweburl.substring(0, temphostweburl.indexOf("/sites"));
var tempHostUrl = temphostweburl.substring(temphostweburl.indexOf("/sites/") + 7, temphostweburl.length);

var splitedHostArr = tempHostUrl.split("/");

if (splitedHostArr.length > 1)
{ hostweburl = domainUrl + "/sites/" + splitedHostArr[0]; }
else
{ hostweburl = temphostweburl; }

appweburl =
decodeURIComponent(
getQueryStringParameter('SPAppWebUrl')
);

 
 
scriptbase = hostweburl + '/_layouts/15/';
$.getScript(scriptbase + 'SP.Runtime.js',
function () {
$.getScript(scriptbase + 'SP.js',
function () { $.getScript(scriptbase + 'SP.RequestExecutor.js', execCrossDomainRequest); }
);
}
);
}


function getQueryStringParameter(param) {
var params = document.URL.split("?")[1].split("&");
var strParams = "";
for (var i = 0; i < params.length; i = i + 1) {
var singleParam = params[i].split("=");
if (singleParam[0] == param) {
return singleParam[1];
}
}
}

Thursday, 5 February 2015

How to create a static variable in javascript ?

You can use the .counter property of JavaScript function to achieve this:

function staticVariable(change)
{
if (change == "next") {
    staticVariable.counter++;
}
else if(change=="prev")
{
    staticVariable.counter++;
}
Now you have a static variable as: staticVariable.counter