prevent double meeting sharepoint calendar csom

842 Views Asked by At

I am trying to make it if the date and time are already booked in the calender dont book, i am using this code and nothing get displayed? Any Sugestions?

 var context = SP.ClientContext.get_current();
var web = context.get_web();
var list = web.get_lists();
var targetList;

function createItem() { targetList = list.getByTitle("AppbokningarList");

    var listItemCreation = new SP.ListItemCreationInformation();
    var newItem = targetList.addItem(listItemCreation);
    var listItemTitle = document.getElementById('Textrubrik').value;
    alert(listItemTitle);
    var listItemCustom = document.getElementById('datepicker').value;
    alert(listItemCustom);
    var listItemFromTime = document.getElementById('timepicker').value;
    alert(listItemFromTime);
    var listItemtoDate = document.getElementById('datepickerto').value;
    alert(listItemtoDate);
    var listItemToTime = document.getElementById('timepickerTo').value;
    alert(listItemToTime);
    var listItemBeskrivning = document.getElementById('Textbeskrivning').value;
    alert(listItemBeskrivning);
    newItem.set_item('Title', listItemTitle);
    var result = listItemCustom + " " + listItemFromTime;
    newItem.set_item('EventDate', result);
    var result2 = listItemtoDate + " " + listItemToTime;
    newItem.set_item('EndDate', result2);
    newItem.set_item('Description', listItemBeskrivning);

    var camlQuery = new SP.CamlQuery();
    camlQuery.set_viewXml("<Where><Geq><FieldRef Name='EventDate' /><Value Type='DateTime'>" + result + "</Value></Geq><Leq><FieldRef Name='EndDate' /><Value Type='DateTime'>" + result2 + "</Value></Leq><FieldRef Name='RecurrenceID' /></Where>");

    this.collListItem = targetList.getItems(camlQuery);
    context.load(collListItem);

    var property = new SP.EventProperties();
    if (collListItem > 0) {
        property.cancel = true;
    }
    newItem.update();
    context.load(newItem);

    context.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded),Function.createDelegate(this, this.onQueryFailed));

}

function onQuerySucceeded(sender, args) {

var succeded = "Mötet är nu bokat!";
alert(succeded);

}

function onQueryFailed(sender, args) {

var failed = "Redan bokat!";
alert(failed);

}

1

There are 1 best solutions below

1
On

Look at all your set_items. Most likely your date fields need an actual date object to be stored successfully to SP.

var currDate = new Date();
listItem.set_item('DateColumn',currDate);
listItem.update();

Cool stuff here to: http://alexeybbb.blogspot.com/2012/09/sharepoint15-js-update-datetime-field.html