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
}

w2ui Form : How to validate a form?


actions: {
            reset: function () {
                this.clear();
            },
            save: function () {
                var errorList = w2ui['formName'].validate();
                if(errorList.length==0)
                {
                saveFormDataCustomFunction();
                }
            }
        }

w2ui Form : How to update a field on change of another field?


Form: 

onChange: function (event)
{
if(event.target=="fieldName1")
{
event.done(function () {
$('input[type=fieldName2]').w2field('list',
{
items: getFilteredValuesArray
}
);
});
}
if(event.target=="ResourceID")
{
event.done(function () {
refreshCalendar();
});
}
if(event.target=="Start Date")
{
event.done(function () {
refreshCalendar();
});
}
}


Function:

function refreshCalendar()
{
setUnavialableDatesForResource(w2ui['formName'].get('ResourceID').el.value);
$('input[type=start-date]').w2field('date',
{
format: 'm/d/yyyy',
blocked: blockedStartDates
}
);

setUnavialableEndDatesForResource(w2ui['formName'].get('Start Date').el.value);
$('input[type=end-date]').w2field('date',
{
format: 'm/d/yyyy',
blocked: blockedEndDates
}
);
}

HTML:
<input name="Start Date" type="start-date"/>
<input name="End Date" type="end-date"/>

w2ui Form : How to get and set a field's value?


Get:

var val = w2ui['formName'].get('fieldName').el.value;

OR

var val = $("fieldName").val


Set:

$("fieldName").val = "New Value";

OR

w2ui['formName'].get('fieldName').el.value = "New Value";

Thursday, 20 February 2020

How to show/hide section in an InfoPath form on click of a button?

Create (hidden) fields for each section and change/toggle the value on click of button as per the requirement.

Set a formatting rule for each section, which will show/hide the section based on the hidden fields values.

You can set a default values for the above variables based on the requirement.