Quantcast
Channel: SharePoint 2013 - Development and Programming forum
Viewing all articles
Browse latest Browse all 7589

JSOM to update calendar (object expected)

$
0
0

Hi, I have a dropdown and a div that loads a calendar. 

After changing the value it goes to "case 'Plannings_Exploitation':" and after the "break" it goes to the Dropdown list and throws me that error "object expected". 

Any ideas pls?

Fullcalendar
http://fullcalendar.io/

<link href="/sites/TEST1/Documents%20partages/JS/Calendar/fullcalendar.css" rel="stylesheet" /><link href="/sites/TEST1/Documents%20partages/JS/Calendar/fullcalendar.print.css" rel="stylesheet" media="print" /><script src="/sites/TEST1/Documents%20partages/JS/Calendar/moment.min.js"></script><script src="/sites/TEST1/Documents%20partages/JS/Calendar/jquery.min.js"></script><script src="/sites/TEST1/Documents%20partages/JS/Calendar/fullcalendar.min.js"></script><script>
    function loadAllData() {
        loadCategories();
        loadCalendar();
    }

    function loadCalendar(ddlValue) {
        var calListProperties = new Object;
        calListProperties.listName = "Plannings_Exploitation";
        retrieveListItemsInclude(calListProperties,ddlValue);
    }

    function loadCategories() {
        var catListProperties = new Object;
        catListProperties.listName = "ref_categories";
        retrieveListItemsInclude(catListProperties);
    }

    function retrieveListItemsInclude(listProperties,ddlValue) {
        var clientContext = new SP.ClientContext.get_current();
        var oList = clientContext.get_web().get_lists().getByTitle(listProperties.listName);
        var camlQuery = new SP.CamlQuery();
        var ddlCategories = document.getElementById("ddlCategories");
        var today = new Date();
        var ss = today.getSeconds();
        if(listProperties.listName != "Plannings_Exploitation" || !ddlValue)
            camlQuery.set_viewXml("<View><Query><OrderBy><FieldRef Name='Title' Ascending='TRUE' /></OrderBy></Query></View>");
        else
            camlQuery.set_viewXml("<View><Query><Where><Eq><FieldRef Name='evn_categorie'/><Value Type='Lookup'>"+ddlValue+"</Value></Eq></Where><OrderBy><FieldRef Name='Title' Ascending='TRUE'/></OrderBy></Query></View>");

        listProperties.colListItem = oList.getItems(camlQuery);

        switch(listProperties.listName) {
            case 'Plannings_Exploitation':
                clientContext.load(listProperties.colListItem, 'Include(Title,ID,evn_categorie,evn_sscategorie,evn_datedebut,evn_datefin)');
                clientContext.executeQueryAsync(function(){ onCalQuerySucceeded(listProperties); }, onFailedCallback);
                break;
            case 'ref_categories':
                clientContext.load(listProperties.colListItem, 'Include(Title,ID)');
                clientContext.executeQueryAsync(function(){ onCatQuerySucceeded(listProperties); }, onFailedCallback);
                break;
        }
    }

    function onCalQuerySucceeded(listProperties) {
        var listItemEnumerator = listProperties.colListItem.getEnumerator();

        //Formulate HTML from the list items
        var dataEvents = [];
        //Loop through all the items
        while (listItemEnumerator.moveNext()) {
            var listItem = listItemEnumerator.get_current();
            var strtitle = listItem.get_item("Title");
            var strid = listItem.get_item("ID");
            var strcategorie = listItem.get_item("evn_categorie").$4g_1;
            var strsscategorie = listItem.get_item("evn_sscategorie").$4g_1;
            var strtitle = listItem.get_item("evn_categorie").$4g_1 + " / " + listItem.get_item("evn_sscategorie").$4g_1;
            var strdatedebut = listItem.get_item("evn_datedebut");
            var strdatefin = listItem.get_item("evn_datefin");
            strdatedebut = strdatedebut.getFullYear() + "-" + ('0' + (strdatedebut.getMonth() + 1)).slice(-2) + "-" + ('0' + strdatedebut.getDate()).slice(-2) + "T" + ('0' + strdatedebut.getHours()).slice(-2) + ":" + ('0' + strdatedebut.getMinutes()).slice(-2) + ":" + ('0' + strdatedebut.getSeconds()).slice(-2);
            strdatefin = strdatefin.getFullYear() + "-" + ('0' + (strdatefin.getMonth() + 1)).slice(-2) + "-" + ('0' + strdatefin.getDate()).slice(-2) + "T" + ('0' + strdatefin.getHours()).slice(-2) + ":" + ('0' + strdatefin.getMinutes()).slice(-2) + ":" + ('0' + strdatefin.getSeconds()).slice(-2);
            dataEvents.push({ title: strtitle, start: strdatedebut, end: strdatefin });
        }

        var today = new Date();
        var dd = today.getDate();
        var mm = today.getMonth() + 1;
        var yyyy = today.getFullYear();
        var jour = ('0' + dd).slice(-2);
        var mois = ('0' + mm).slice(-2);

        $('#calendar').fullCalendar({
            defaultDate: yyyy + "-" + mois + "-" + jour,
            editable: false,
            eventLimit: true, // allow "more" link when too many events
            events: dataEvents
        });
    }

    function onCatQuerySucceeded(listProperties) {
        var cats = [];
        var listItemEnumerator = listProperties.colListItem.getEnumerator();
        var ddlCategories = document.getElementById("ddlCategories");
        ddlCategories.options.length = 0;
        ddlCategories.options[ddlCategories.options.length] = new Option("Categories", "Categories");

        while (listItemEnumerator.moveNext()) {
            var oListItem = listItemEnumerator.get_current();

            var cat = {};

            cat.id = oListItem.get_item('ID');
            cat.title = oListItem.get_item('Title');
            ddlCategories.options[ddlCategories.options.length] = new Option(cat.title, cat.title);
        }
    }

    //This function fires when the query fails
    function onFailedCallback(sender, args) {
        //Formulate HTML to display details of the error
        var markup = '<p>The request failed: <br>';
        markup += 'Message: ' + args.get_message() + '<br>';
        //Display the details
        alert(markup);
    }

    ExecuteOrDelayUntilScriptLoaded(loadAllData, "sp.js");</script><style>
    #calendar {
        max-width: 900px;
        margin: 0 auto;
        margin: 40px 10px;
        padding: 0;
        font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
        font-size: 14px;
    }</style><select id="ddlCategories" onchange="ExecuteOrDelayUntilScriptLoaded(loadCalendar(this.value), 'sp.js');"></select><div id='calendar'></div>
Thanks


Viewing all articles
Browse latest Browse all 7589

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>