2014-11-17 4 views
0

Я пытаюсь сделать это, если дата и время уже забронированы в календаре dont book, я использую этот код, и ничего не отображается? Любые Sugestions?предотвратить двойное собрание sharepoint calendar csom

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

функция 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)); 

}

функция onQuerySucceeded (отправитель, арг) {

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

}

функция onQueryFailed (отправитель, арг) {

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

}

ответ

0

Посмотрите на все свои set_items. Скорее всего, ваши поля даты должны иметь фактический объект даты, который будет успешно сохранен в SP.

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

Интересный материал здесь: http://alexeybbb.blogspot.com/2012/09/sharepoint15-js-update-datetime-field.html

+0

Все получает хранится, проблема в том, что я не работаю с моим запросом, чтобы пользователь не могу добавить двойное бронирование на то же время. – Batistuta