Display

var userArray = [];
var ideaArray = [];
var itemCounter = 0;
var ideaItemCounter = 0;
var favoritesArray = [];
var myLikesArray = [];
//--------HTML Binding-------------

function htmlBinding() {
 
    //var Editbutton = "";
    for (var i = 0; i < ideaArray.length; i++) {
        var Editbutton = "";
        var favouritescss = ideaArray[i].Favouritescss;
        var LikesCssClass = ideaArray[i].LikesCssClass;
        if ((CurrentUser == ideaArray[i].createdBy.get_lookupValue()) && (userId == ideaArray[i].createdBy.get_lookupId())) {
            Editbutton = "<li><i class='fa fa-pencil' title='edit' aria-hidden='true' data-toggle='modal' data-target='#myModal' OnClick='EditIdeas(" + ideaArray[i].ItemId + ");'></i></li><li><i class='fa fa-trash' aria-hidden='true' class='btn-delete'  OnClick='deleteIdeaItem(" + ideaArray[i].ItemId + ");' title='delete'></i></li>";
        }


        innerHtml = "<tr><td class='row2'><div class='row'>" +
        "<div class='col-md-1'> <img src='" + hostweburl + "/_layouts/15/userphoto.aspx?size=M&accountname=%20" + ideaArray[i].Email + "' style='width:100%;'></div>" +
                     "<div class='col-md-9'>" +
                    "<p>" + ideaArray[i].Title + "</p><p style='word-wrap: break-word;'>" + ideaArray[i].IdeaDescription + "</p>" +
                     "</div>" +

                         "<div class='col-md-2'>" +
                         "<p><button type='button' class='blue-btn-like' OnClick='GetPeopleWhoLikesIdea(" + ideaArray[i].ItemId + ");' value='Like' data-toggle='modal' data-target='#LikeModel' title='Likes by people'><i class='fa fa-thumbs-up' aria-hidden='true'></i></button></p>" +
                          "<p><button type='button' class='blue-btn-fav' OnClick='GetPeopleFavoritesIdea(" + ideaArray[i].ItemId + ");' value='Fav' data-toggle='modal' data-target='#LikeModel' title='Favorites by people'><i class='fa fa-heart' aria-hidden='true'></i></button></div>" +
                         "</div>" +
                         " <div class='row'>" +
         "<div class='col-md-3'><p>Created:" + String.format("{0:d} {0:t} {0:tt}", ideaArray[i].createdDate) + "</p></div>" +
         "<div class='col-md-2'><p>Status:" + ideaArray[i].status + "</p></div>" +
         "<div class='col-md-2'><p>Idea Box:<a OnClick=\"SearchIdeaByIdeaBox('" + ideaArray[i].IdeaBoxColumn + "',\'\');\" class='isLink'>" + ideaArray[i].IdeaBoxColumn + "</a></p></div>" +
         "<div class='col-md-3'><p>Tags:" + ideaArray[i].Tags + "</p></div>" +
          "<div class='col-md-2'><ul class='icons-list'>" + Editbutton + "<li><i class='IsReaderFalse btn-like fa " + LikesCssClass + "' aria-hidden='true' OnClick='InsertLikesToList(" + ideaArray[i].ItemId + ");' id='btnLike" + ideaArray[i].ItemId + "' title='like'></i></li><li><i id='btnFavourite" + ideaArray[i].ItemId + "' class='IsReaderFalse fa " + favouritescss + "' aria-hidden='true' OnClick='InsertFavoritesToList(" + ideaArray[i].ItemId + ");' title='favourite'></i></li><li><i class='fa fa-comment comm-btn IsReaderFalse btn-comment' aria-hidden='true' OnClick='displayCommentBox(" + ideaArray[i].ItemId + ");'  id='btnComment" + ideaArray[i].ItemId + "' title='comment'></i></li></ul></div></div>" +
          "<div class='row'><div class='AddCommentDiv' style='display:none;'>" +
          "<img src='" + hostweburl + "/_layouts/15/userphoto.aspx?size=M&accountname=%20" + ideaArray[i].Email + "' style='width:34px; height:34px;'></img><input type='text' class='txtComment'/><input type='button' value='Submit' class='btnSubmit' onclick='insertComment(" + ideaArray[i].ItemId + ");' /></div><div class='display-comm-div" + ideaArray[i].ItemId + "'></div>" +
            "</div></td></tr>";



        $("#IdeaTable tbody").append(innerHtml);
       
    }
    favoritesArray = [];
    myLikesArray = [];
    if (IsReader == true) {
        $('.IsReaderFalse').css({ 'display': 'none' });
        $('.comm-btn').css({ 'display': 'none' });
    }
    $('#IdeaTable').dataTable({
        "ordering": false,
        "bInfo": false,
        "searching": false
    });
    getCount();

}



//------------------------Read Idea Box------------------------
function readIdeaBox() {
    web = context.get_web();
    context.load(web);

    var myList = web.get_lists().getByTitle("IdeaBox");
    var query = new SP.CamlQuery();

    var items = myList.getItems(query);
    context.load(myList);
    context.load(items);
    context.executeQueryAsync(
        Function.createDelegate(this, function () {
            var html = "";
            var IdeaBoxCategory = "";
         

            IdeaBoxCategory += "<li><input type='checkbox' value='All Boxes' onClick='IsCheckedIdeaBoxOrNot(this);' checked/><span>All Boxes</sapn></li>";
            var enumerator = items.getEnumerator();
            while (enumerator.moveNext()) {
                var currentListItem = enumerator.get_current();
                var members = currentListItem.get_item('Title');
                html += "<option value='" + currentListItem.get_item('ID') + "'>" + members + "</option>";
                IdeaBoxCategory += "<li><input type='checkbox' value='" + members + "' checked /><span>" + members + "</sapn></li>";
            }


            $("#iIdeaBox").html(html);
            $("#IdeaBoxCategories").html(IdeaBoxCategory);
        }),
        Function.createDelegate(this, function () {

        })

        );


}
var listItem;

function retrieveIdeasItems() {
    var charVal = $("input.searchIdea").val();
    $("input.searchIdea").val('');

    var web = context.get_web();
    context.load(web);
    var IdeasList = web.get_lists().getByTitle("Ideas");
    var query = new SP.CamlQuery();

    if (charVal == null || charVal == "") {
        query.set_viewXml('<View><Query><OrderBy><FieldRef Name="ID" Ascending="FALSE"/></OrderBy></Query></View>');
    }
    else {
        query.set_viewXml('<View><Query><Where><Contains><FieldRef Name=Title /><Value Type=Text>' + charVal + '</Value></Contains></Where></Query><OrderBy><FieldRef Name="ID" Ascending="FALSE"/></OrderBy></View>');
    }

 
    var items = IdeasList.getItems(query);
    context.load(IdeasList);
    context.load(items);
    context.executeQueryAsync(
        Function.createDelegate(this, function () {
           
            var innerHtml = "<table id='IdeaTable' class='table table-striped table-bordered' cellspacing='0' width='100%'><thead style='display:none;'><tr><th>My Ideas</th></tr></thead><tbody></tbody></table>";

            DisplayIdeaDiv.innerHTML = innerHtml
            ideaArray = [];
            //var innerHtml = "";
            var favouritescss = "fa fa-heart-o";
            var likesCssClass = "fa-thumbs-up";
            var itemInfo = "";
            var enumerator = items.getEnumerator();
            while (enumerator.moveNext()) {
                var currentListItem = enumerator.get_current();
                //new
                var CurrentItemID = currentListItem.get_item("ID");
                var loginedUserID = userId;

                for (var i = 0; i < favoritesArray.length ; i++) {
                    var favoritesAuthorID = favoritesArray[i][0];
                    var fauoritesIdeaID = favoritesArray[i][1];
                    if (favoritesAuthorID == loginedUserID && fauoritesIdeaID == CurrentItemID) {
                        favouritescss = "fa fa-heart";
                        break;
                    }
                    else {
                        favouritescss = "fa fa-heart-o";
                    }
                }

                for (var i = 0; i< myLikesArray.length; i++)
                {
                    var likesAuthorID = myLikesArray[i][0];
                    var likesIdeaID = myLikesArray[i][1];
                    if (likesAuthorID == loginedUserID && likesIdeaID == CurrentItemID) {
                        likesCssClass = "fa-thumbs-down";
                        break
                    }
                    else {
                        likesCssClass = "fa-thumbs-up";
                    }
                }
                //End
                var tags = currentListItem.get_item("Tags");
         
                var tagsString = tagHtml(tags);


                ideaArray.push({
                    Title: currentListItem.get_item("Title"),
                    IdeaDescription: currentListItem.get_item("IdeaDescription"),
                    ItemId: currentListItem.get_id(),
                    createdDate: currentListItem.get_item("Created"),
                    createdBy: currentListItem.get_item("Author"),
                    status: currentListItem.get_item("Status"),
                    IdeaBoxColumn: currentListItem.get_item("IdeaBox"),
                    Tags: tagsString,
                    Email: currentListItem.get_item('Email'),
                    Favouritescss: favouritescss,
                    LikesCssClass: likesCssClass
                })

             
            }


            htmlBinding();
        }),
        Function.createDelegate(this, function () { })
        );
}
//______________________Create Tag string_________________

function tagHtml(tags)
{
    var tagsArray = [];
    var tagName = "";
    var tagsString = "";
    if (tags) {
        if (tags.indexOf(',') > -1) {
            tagsArray = tags.split(',');
        }
        else {
            tagName = tags;
        }

        if (tagsArray.length > 0) {
            for (var i = 0; i < tagsArray.length ; i++) {
                tagsString += "<a onClick='SearchByTag(\"" + tagsArray[i] + "\");' class='isLink'>" + tagsArray[i] + "</a>,";
            }
        }
        else {
            tagsString += "<a onClick='SearchByTag(\"" + tagName + "\");' class='isLink'>" + tagName + "</a>,";
        }
        tagsString = tagsString.replace(/,\s*$/, "");
    }

    return tagsString;

}

//--------------Retrive Idea By Id------------------
var userName;
function RetriveIdea(id) {

    var targetList = context.get_web().get_lists().getByTitle('Ideas');
    var targetListItem = targetList.getItemById(id);
    context.load(targetListItem);

    context.executeQueryAsync(
    Function.createDelegate(this, function () {

        $("#modal-title").text(targetListItem.get_item('Title'));
        var html = "<div class='row'>" +
                     "<div class='col-md-12'>" +
                        "<p style='word-wrap: break-word;' id='topIdeaDescription'>" + targetListItem.get_item('IdeaDescription') + "</p>" +
                     "<p><strong>Outcome:</strong></p><p style='word-wrap: break-word;'>" + targetListItem.get_item('IdeaOutcome') + "</p></div>" +
                         "</div>" +
                         " <div class='row'>" +
         "<div class='col-md-5'><p><strong>Created:</strong>" + String.format("{0:d} {0:t} {0:tt}", targetListItem.get_item('Created')) + "</p></div>" +
         "<div class='col-md-5'><p><strong>Status:</strong>" + targetListItem.get_item('Status') + "</p></div>" +
         "<div class='col-md-5'><p><strong>Idea Box:</strong>" + targetListItem.get_item('IdeaBox') + "</p></div>" +
         "<div class='col-md-5'><p><strong>Tags:</strong>" + targetListItem.get_item('Tags') + "</p></div>" +
         "</div>";

        var result = true;
        userName = targetListItem.get_item('Author').get_lookupValue();
        $("#modal-footer").html('<input type="button" value="Add to Top Picks" OnClick="AddTopPick(' + targetListItem.get_item('ID') + ',' + result + ');"></input><input type="button" value="Delete" OnClick="deleteIdeaItem(' + targetListItem.get_item('ID') + ');"></input>');


        $("#ApproveIdea").html(html);
    }),
    Function.createDelegate(this, function (data) {

    })
    );

}

//-------------My Ideas---------------------
function MyIdea() {
    var context = new SP.ClientContext.get_current();
    var list = context.get_web().get_lists().getByTitle("Ideas");
    var cQuery = new SP.CamlQuery();
    var camlXML = "<View><Query><Where><Eq><FieldRef Name='Author' LookupId='True'/><Value Type='Lookup'>" + _spPageContextInfo.userId + "</Value></Eq></Where><OrderBy><FieldRef Name='ID' Ascending='FALSE'/></OrderBy></Query></Query></View>";
    cQuery.set_viewXml(camlXML);
    var listitems = list.getItems(cQuery);
    context.load(listitems);
    context.executeQueryAsync(function () {
   
     
       
        var innerHtml = "";
        var enumerator = listitems.getEnumerator();
        var innerHtml = "<table id='IdeaTable' class='table table-striped table-bordered' cellspacing='0' width='100%'><tbody><thead style='display:none;'><tr><th>My Ideas</th></tr></thead></tbody></table>";
        ideaArray = [];
        DisplayIdeaDiv.innerHTML = innerHtml;
        var favouritescss = "fa fa-heart-o";
        var likesCssClass = "fa-thumbs-up";
        while (enumerator.moveNext()) {
            var currentListItem = enumerator.get_current();

            //New Code
            var CurrentItemID = currentListItem.get_item("ID");
            var loginedUserID = userId;

            for (var i = 0; i < favoritesArray.length ; i++) {
                var favoritesAuthorID = favoritesArray[i][0];
                var fauoritesIdeaID = favoritesArray[i][1];
                if (favoritesAuthorID == loginedUserID && fauoritesIdeaID == CurrentItemID) {
                    favouritescss = "fa fa-heart";
                    break;
                }
                else {
                    favouritescss = "fa fa-heart-o";
                }
            }

            for (var i = 0; i < myLikesArray.length; i++) {
                var likesAuthorID = myLikesArray[i][0];
                var likesIdeaID = myLikesArray[i][1];
                if (likesAuthorID == loginedUserID && likesIdeaID == CurrentItemID) {
                    likesCssClass = "fa-thumbs-down";
                    break
                }
                else {
                    likesCssClass = "fa-thumbs-up";
                }
            }
            //End
            var tags = currentListItem.get_item("Tags");
            var tagsString = tagHtml(tags);
         

            ideaArray.push({
                Title: currentListItem.get_item("Title"),
                IdeaDescription: currentListItem.get_item("IdeaDescription"),
                ItemId: currentListItem.get_id(),
                createdDate: currentListItem.get_item("Created"),
                createdBy: currentListItem.get_item("Author"),
                status: currentListItem.get_item("Status"),
                IdeaBoxColumn: currentListItem.get_item("IdeaBox"),
                Tags: tagsString,
                Email: currentListItem.get_item('Email'),
                Favouritescss: favouritescss,
                LikesCssClass: likesCssClass
            })

        }
        htmlBinding();
   
    });
}

var myLikes = [];

//-------------My Likes---------------------
function MyLike() {
    var context = new SP.ClientContext.get_current();
    var list = context.get_web().get_lists().getByTitle("Likes");
    var cQuery = new SP.CamlQuery();
    var camlXML = "<View><Query><Where><Eq><FieldRef Name='Author' LookupId='True'/><Value Type='Lookup'>" + _spPageContextInfo.userId + "</Value></Eq></Where></Query></View>";
    cQuery.set_viewXml(camlXML);
    var listitems = list.getItems(cQuery);
    context.load(listitems);
    context.executeQueryAsync(function () {
        myLikes = [];
        var innerHtml = "";
        var enumerator = listitems.getEnumerator();
        while (enumerator.moveNext()) {
            // var item = enumerator.get_current().get_fieldValues();
            var item = enumerator.get_current();
            //console.log(item);
            var id = item.get_item('IdeaId');
            myLikes.push(id);
        }
        //console.log(myLikes);
        MyLikeIdeas();
    });
}
function MyLikeIdeas() {
    web = context.get_web();
    context.load(web);
    var myList = web.get_lists().getByTitle("Ideas");
    var query = new SP.CamlQuery();
    query.set_viewXml('<View><Query><OrderBy><FieldRef Name="ID" Ascending="FALSE"/></OrderBy></Query></View>');
    var items = myList.getItems(query);
    context.load(myList);
    context.load(items);
    context.executeQueryAsync(
        Function.createDelegate(this, function () {
            var itemInfo = '';
            var innerHtml = "<table id='IdeaTable' class='table table-striped table-bordered' cellspacing='0' width='100%'><thead style='display:none;'><tr><th>My Ideas</th></tr></thead><tbody></tbody></table>";
            ideaArray = [];
            DisplayIdeaDiv.innerHTML = innerHtml;
            var favouritescss = "fa fa-heart-o";
            var likesCssClass = "fa-thumbs-down";
            var enumerator = items.getEnumerator();
            while (enumerator.moveNext()) {
           

                for (var i = 0; i < myLikes.length; i++) {

                        var currentListItem = enumerator.get_current();
                        if (myLikes[i] == currentListItem.get_item('ID')) {

                        var tags = currentListItem.get_item("Tags");
                        var tagsString = tagHtml(tags);

                        ideaArray.push({
                            Title: currentListItem.get_item("Title"),
                            IdeaDescription: currentListItem.get_item("IdeaDescription"),
                            ItemId: currentListItem.get_id(),
                            createdDate: currentListItem.get_item("Created"),
                            createdBy: currentListItem.get_item("Author"),
                            status: currentListItem.get_item("Status"),
                            IdeaBoxColumn: currentListItem.get_item("IdeaBox"),
                            Tags: tagsString,
                            Email: currentListItem.get_item('Email'),
                            Favouritescss: favouritescss,
                            LikesCssClass: likesCssClass
                        })
                    }

                }

            }


            htmlBinding();

        }),
        Function.createDelegate(this, function () {

        })

        );
}

//-----------My Favorites Ideas-----------
var myFavorites = [];
function MyFavorites() {
    var context = new SP.ClientContext.get_current();
    var list = context.get_web().get_lists().getByTitle("Favorites");
    var cQuery = new SP.CamlQuery();
    var camlXML = "<View><Query><Where><Eq><FieldRef Name='Author' LookupId='True'/><Value Type='Lookup'>" + _spPageContextInfo.userId + "</Value></Eq></Where></Query></View>";
    cQuery.set_viewXml(camlXML);
    var listitems = list.getItems(cQuery);
    context.load(listitems);
    context.executeQueryAsync(function () {
        myFavorites = [];
        var innerHtml = "";
        var enumerator = listitems.getEnumerator();
        while (enumerator.moveNext()) {

            var item = enumerator.get_current();
            console.log(item);
            var id = item.get_item('IdeaId');
            myFavorites.push(id);
        }

        MyFavoritesIdeas();
    });
}
function MyFavoritesIdeas() {
    web = context.get_web();
    context.load(web);
    var myList = web.get_lists().getByTitle("Ideas");
    var query = new SP.CamlQuery();
    query.set_viewXml('<View><Query><OrderBy><FieldRef Name="ID" Ascending="FALSE"/></OrderBy></Query></View>');
    var items = myList.getItems(query);
    context.load(myList);
    context.load(items);
    context.executeQueryAsync(
        Function.createDelegate(this, function () {
            var itemInfo = '';
            var innerHtml = "<table id='IdeaTable' class='table table-striped table-bordered' cellspacing='0' width='100%'><thead style='display:none;'><tr><th>My Ideas</th></tr></thead><tbody></tbody></table>";
            ideaArray = [];
            DisplayIdeaDiv.innerHTML = innerHtml;
            var favouritescss = "fa fa-heart";
            var likesCssClass = "fa-thumbs-down";
            var enumerator = items.getEnumerator();
            while (enumerator.moveNext()) {
                var currentListItem = enumerator.get_current();
             
                for (var i = 0; i < myFavorites.length; i++) {
                    if (myFavorites[i] == currentListItem.get_item('ID')) {

                        var tags = currentListItem.get_item("Tags");
                        var tagsString = tagHtml(tags);


                        ideaArray.push({
                            Title: currentListItem.get_item("Title"),
                            IdeaDescription: currentListItem.get_item("IdeaDescription"),
                            ItemId: currentListItem.get_id(),
                            createdDate: currentListItem.get_item("Created"),
                            createdBy: currentListItem.get_item("Author"),
                            status: currentListItem.get_item("Status"),
                            IdeaBoxColumn: currentListItem.get_item("IdeaBox"),
                            Tags: tagsString,
                            Email: currentListItem.get_item('Email'),
                            Favouritescss: favouritescss,
                            LikesCssClass: likesCssClass
                        })
                    }

                }

            }
            htmlBinding();

       
        }),
        Function.createDelegate(this, function () {

        })

        );
}

//____________________Display Top Picks Idea _________________

function retrieveTopPicksIdea() {
    AllUsersEmails = [];
    itemCounter = 0;
    var web = context.get_web();
    context.load(web);
    var IdeasList = web.get_lists().getByTitle("Ideas");
    var query = new SP.CamlQuery();
    query.set_viewXml("<View><Query><Where><Eq><FieldRef Name='IsTopPicks'/><Value Type='Boolean'>1</Value></Eq></Where></Query><OrderBy><FieldRef Name='ID' Ascending='FALSE'/></OrderBy></View>");
    var items = IdeasList.getItems(query);
    context.load(IdeasList);
    context.load(items);
    context.executeQueryAsync(
        Function.createDelegate(this, function () {
            var innerHtml = "<table id='IdeaTable' class='table table-striped table-bordered' cellspacing='0' width='100%'><thead style='display:none;'><tr><th>My Ideas</th></tr></thead><tbody></tbody></table>";

            DisplayIdeaDiv.innerHTML = innerHtml;
            var favouritescss = "fa fa-heart-o";
            var likesCssClass = "fa-thumbs-up";
            ideaArray = [];
            //var innerHtml = "";
            var itemInfo = '';
            var enumerator = items.getEnumerator();
            while (enumerator.moveNext()) {
                var currentListItem = enumerator.get_current();
                //new
                var CurrentItemID = currentListItem.get_item("ID");
                var loginedUserID = userId;

                for (var i = 0; i < favoritesArray.length ; i++) {
                    var favoritesAuthorID = favoritesArray[i][0];
                    var fauoritesIdeaID = favoritesArray[i][1];
                    if (favoritesAuthorID == loginedUserID && fauoritesIdeaID == CurrentItemID) {
                        favouritescss = "fa fa-heart";
                        break;
                    }
                    else {
                        favouritescss = "fa fa-heart-o";
                    }
                }

                for (var i = 0; i < myLikesArray.length; i++) {
                    var likesAuthorID = myLikesArray[i][0];
                    var likesIdeaID = myLikesArray[i][1];
                    if (likesAuthorID == loginedUserID && likesIdeaID == CurrentItemID) {
                        likesCssClass = "fa-thumbs-down";
                        break
                    }
                    else {
                        likesCssClass = "fa-thumbs-up";
                    }
                }
                //End
                var tags = currentListItem.get_item("Tags");

                var tagsString = tagHtml(tags);
               

                ideaArray.push({
                    Title: currentListItem.get_item("Title"),
                    IdeaDescription: currentListItem.get_item("IdeaDescription"),
                    ItemId: currentListItem.get_id(),
                    createdDate: currentListItem.get_item("Created"),
                    createdBy: currentListItem.get_item("Author"),
                    status: currentListItem.get_item("Status"),
                    IdeaBoxColumn: currentListItem.get_item("IdeaBox"),
                    Tags: tagsString,
                    Email: currentListItem.get_item('Email'),
                    Favouritescss: favouritescss,
                    LikesCssClass: likesCssClass
                })
            }


            htmlBinding();
        }),
        Function.createDelegate(this, function () { })
        );
}

//____________________Display Golden Stars Idea _________________

function retrieveGoldenStarsIdea() {
    AllUsersEmails = [];
    itemCounter = 0;
    var web = context.get_web();
    context.load(web);
    var IdeasList = web.get_lists().getByTitle("Ideas");
    var query = new SP.CamlQuery();
    query.set_viewXml("<View><Query><Where><Eq><FieldRef Name='IsGoldenStars'/><Value Type='Boolean'>1</Value></Eq></Where><OrderBy><FieldRef Name='ID' Ascending='FALSE'/></OrderBy></Query></View>");
    var items = IdeasList.getItems(query);
    context.load(IdeasList);
    context.load(items);
    context.executeQueryAsync(
        Function.createDelegate(this, function () {
            var innerHtml = "<table id='IdeaTable' class='table table-striped table-bordered' cellspacing='0' width='100%'><thead style='display:none;'><tr><th>My Ideas</th></tr></thead><tbody></tbody></table>";

            DisplayIdeaDiv.innerHTML = innerHtml;
            var favouritescss = "fa fa-heart-o";
            var likesCssClass = "fa-thumbs-up";
            ideaArray = [];
            //var innerHtml = "";
            var itemInfo = '';
            var enumerator = items.getEnumerator();
            while (enumerator.moveNext()) {
                var currentListItem = enumerator.get_current();
                //new
                var CurrentItemID = currentListItem.get_item("ID");
                var loginedUserID = userId;

                for (var i = 0; i < favoritesArray.length ; i++) {
                    var favoritesAuthorID = favoritesArray[i][0];
                    var fauoritesIdeaID = favoritesArray[i][1];
                    if (favoritesAuthorID == loginedUserID && fauoritesIdeaID == CurrentItemID) {
                        favouritescss = "fa fa-heart";
                        break;
                    }
                    else {
                        favouritescss = "fa fa-heart-o";
                    }
                }

                for (var i = 0; i < myLikesArray.length; i++) {
                    var likesAuthorID = myLikesArray[i][0];
                    var likesIdeaID = myLikesArray[i][1];
                    if (likesAuthorID == loginedUserID && likesIdeaID == CurrentItemID) {
                        likesCssClass = "fa-thumbs-down";
                        break
                    }
                    else {
                        likesCssClass = "fa-thumbs-up";
                    }
                }
                //End
                var tags = currentListItem.get_item("Tags");

                var tagsString = tagHtml(tags);

               

                ideaArray.push({
                    Title: currentListItem.get_item("Title"),
                    IdeaDescription: currentListItem.get_item("IdeaDescription"),
                    ItemId: currentListItem.get_id(),
                    createdDate: currentListItem.get_item("Created"),
                    createdBy: currentListItem.get_item("Author"),
                    status: currentListItem.get_item("Status"),
                    IdeaBoxColumn: currentListItem.get_item("IdeaBox"),
                    Tags: tagsString,
                    Email: currentListItem.get_item('Email'),
                    Favouritescss: favouritescss,
                    LikesCssClass: likesCssClass
                })
            }

            htmlBinding();
        }),
        Function.createDelegate(this, function () { })
        );
}


//------------------Search Idea By IdeaBox category-----------------------

function SearchIdeaByIdeaBox(ideaBox,searchQuery) {
    itemCounter = 0;
    var web = context.get_web();
    context.load(web);
    var IdeasList = web.get_lists().getByTitle("Ideas");
    var query = new SP.CamlQuery();
    if (ideaBox != "")
        query.set_viewXml("<View><Query><Where><Eq><FieldRef Name='IdeaBox'/><Value Type='Text'>" + ideaBox + "</Value></Eq></Where><OrderBy><FieldRef Name='ID' Ascending='FALSE'/></OrderBy></Query></View>");

    else
        query.set_viewXml("<View><Query><Where>" + searchQuery + "</Where><OrderBy><FieldRef Name='ID' Ascending='FALSE'/></OrderBy></Query></View>");
   
    var items = IdeasList.getItems(query);
    context.load(IdeasList);
    context.load(items);
    context.executeQueryAsync(
        Function.createDelegate(this, function () {
            var innerHtml = "<table id='IdeaTable' class='table table-striped table-bordered' cellspacing='0' width='100%'><thead style='display:none;'><tr><th>My Ideas</th></tr></thead><tbody></tbody></table>";

            DisplayIdeaDiv.innerHTML = innerHtml
            var favouritescss = "fa fa-heart-o";
            var likesCssClass = "fa-thumbs-down";
            ideaArray = [];
            //var innerHtml = "";
            var itemInfo = '';
            var enumerator = items.getEnumerator();
            while (enumerator.moveNext()) {
                var currentListItem = enumerator.get_current();

                var tags = currentListItem.get_item("Tags");

                var tagsString = tagHtml(tags);


                ideaArray.push({
                    Title: currentListItem.get_item("Title"),
                    IdeaDescription: currentListItem.get_item("IdeaDescription"),
                    ItemId: currentListItem.get_id(),
                    createdDate: currentListItem.get_item("Created"),
                    createdBy: currentListItem.get_item("Author"),
                    status: currentListItem.get_item("Status"),
                    IdeaBoxColumn: currentListItem.get_item("IdeaBox"),
                    Tags: tagsString,
                    Email: currentListItem.get_item('Email'),
                    Favouritescss: favouritescss,
                    LikesCssClass: likesCssClass
                })
            }


            htmlBinding();
        }),
        Function.createDelegate(this, function () { })
        );

}

//---------------------Search by Tags----------------------------

function SearchByTag(Tag) {
    AllUsersEmails = [];
    itemCounter = 0;
    var web = context.get_web();
    context.load(web);
    var IdeasList = web.get_lists().getByTitle("Ideas");
    var query = new SP.CamlQuery();
    query.set_viewXml("<View><Query><Where><Contains><FieldRef Name='Tags' /><Value Type='Text'>" + Tag + "</Value></Contains></Where></Query><OrderBy><FieldRef Name='ID' Ascending='FALSE'/></OrderBy></View>");
    //query.set_viewXml("<View><Query><Where><Eq><FieldRef Name='Tags'/><Value Type='Text'>" + Tag + "</Value></Eq></Where></Query></View>");
    var items = IdeasList.getItems(query);
    context.load(IdeasList);
    context.load(items);
    context.executeQueryAsync(
        Function.createDelegate(this, function () {
            var innerHtml = "<table id='IdeaTable' class='table table-striped table-bordered' cellspacing='0' width='100%'><thead style='display:none;'><tr><th>My Ideas</th></tr></thead><tbody></tbody></table>";

            DisplayIdeaDiv.innerHTML = innerHtml
            var favouritescss = "fa fa-heart-o";
            var likesCssClass = "fa-thumbs-down";
            ideaArray = [];
            //var innerHtml = "";
            var itemInfo = '';
            var enumerator = items.getEnumerator();
            while (enumerator.moveNext()) {
                var currentListItem = enumerator.get_current();

                var tags = currentListItem.get_item("Tags");

                var tagsString = tagHtml(tags);


                ideaArray.push({
                    Title: currentListItem.get_item("Title"),
                    IdeaDescription: currentListItem.get_item("IdeaDescription"),
                    ItemId: currentListItem.get_id(),
                    createdDate: currentListItem.get_item("Created"),
                    createdBy: currentListItem.get_item("Author"),
                    status: currentListItem.get_item("Status"),
                    IdeaBoxColumn: currentListItem.get_item("IdeaBox"),
                    Tags: tagsString,
                    Email: currentListItem.get_item('Email'),
                    Favouritescss: favouritescss,
                    LikesCssClass: likesCssClass
                })
            }


            htmlBinding();
        }),
        Function.createDelegate(this, function () { })
        );
}


//---------------------Get count of all Ideas---------------

function getCount() {
    var web = context.get_web();
    context.load(web);
    var IdeasList = web.get_lists().getByTitle("Ideas");
    var AllIdeaQuery = new SP.CamlQuery();
    var AllItems = IdeasList.getItems(AllIdeaQuery);

    var GoldenQuery = new SP.CamlQuery();
    GoldenQuery.set_viewXml("<View><Query><Where><Eq><FieldRef Name='IsGoldenStars'/><Value Type='Boolean'>1</Value></Eq></Where></Query></View>");
    var GoldenItems = IdeasList.getItems(GoldenQuery);

    var TopPicksQuery = new SP.CamlQuery();
    TopPicksQuery.set_viewXml("<View><Query><Where><Eq><FieldRef Name='IsTopPicks'/><Value Type='Boolean'>1</Value></Eq></Where></Query></View>");
    var TopPicksItems = IdeasList.getItems(TopPicksQuery);

    var MyIdeaQuery = new SP.CamlQuery();
    MyIdeaQuery.set_viewXml("<View><Query><Where><Eq><FieldRef Name='Author' LookupId='True'/><Value Type='Lookup'>" + _spPageContextInfo.userId + "</Value></Eq></Where></Query></View>");
    var MyIdeaItems = IdeasList.getItems(MyIdeaQuery);

    var LikeList = web.get_lists().getByTitle("Likes");
    var myLikeItem = LikeList.getItems(MyIdeaQuery);

    var FavList = web.get_lists().getByTitle("Favorites");
    var myFavItem = FavList.getItems(MyIdeaQuery);


    context.load(IdeasList);
    context.load(LikeList);
    context.load(FavList);

    context.load(AllItems);
    context.load(GoldenItems);
    context.load(TopPicksItems);
    context.load(MyIdeaItems);
    context.load(myLikeItem);
    context.load(myFavItem);

    context.executeQueryAsync(
       Function.createDelegate(this, function () {
           $("#allIdeasCount").text(AllItems.get_count());
           $("#TopPicksCount").text(TopPicksItems.get_count());
           $("#GoldenCount").text(GoldenItems.get_count());
           $("#myIdeaCount").val("My Ideas(" + MyIdeaItems.get_count() + ")");
           $("#myLikeCount").val("My Likes(" + myLikeItem.get_count() + ")");
           $("#myFavCount").val("My Favorites(" + myFavItem.get_count() + ")");

       }),
       Function.createDelegate(this, function () { })
       );

}

//-----------------------Display Comment Box-----------------


function displayCommentBox(IdeaId) {
    $("#btnComment" + IdeaId).parents(".row2").find("div.AddCommentDiv").show();
    retrieveComments(IdeaId);
}
function retrieveComments(IdeaId) {
    var ideaID = IdeaId;
    var userInfo = [];
    $.ajax({
        url: appweburl + "/_api/web/lists/getbytitle('Comments')/items?$select=IdeaId,AuthorId,Author/FirstName,Author/LastName&$expand=Author",
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" },
        success: function (data) {
            records = [];
            var json_obj = $.parseJSON(JSON.stringify(data));
            for (var i = 0; i < json_obj.d.results.length; i++) {
                var Ideaid = json_obj.d.results[i].IdeaId;
                if (Ideaid == ideaID) {
                    var FirstName = json_obj.d.results[i].Author["FirstName"];
                    var LastName = "";
                    if (json_obj.d.results[i].Author["LastName"]) {
                        LastName = json_obj.d.results[i].Author["LastName"];
                    }
                    var authorID = json_obj.d.results[i].AuthorId;

                    userInfo.push({
                        authorID: authorID,
                        FirstName: FirstName,
                        LastName: LastName


                    });
                }

            }

        },
        error: function (data) {
            failure(data);
        }
    });
    $(".display-comm-div" + IdeaId).empty();
    itemCounter = 0;
    var web = context.get_web();
    context.load(web);
    var CommentsList = web.get_lists().getByTitle("Comments");
    var query = new SP.CamlQuery();
    query.set_viewXml("<View><Query><Where><Eq><FieldRef Name='IdeaId' /><Value Type='Text'>" + IdeaId + "</Value></Eq></Where></Query></View>");
    var items = CommentsList.getItems(query);
    context.load(CommentsList);
    context.load(items);
    context.executeQueryAsync(
        Function.createDelegate(this, function () {

            if (items.get_count() == 0) {
                $(".display-comm-div" + IdeaId).text("Be the first one to comment");
            }
            else {
                $(".display-comm-div" + IdeaId).text("");
            }
            //CommentsArray = [];
            var enumerator = items.getEnumerator();
            var CommentinnerHtml = "";
            while (enumerator.moveNext()) {
                var currentListItem = enumerator.get_current();
                var author = "";
                for (var i = 0; i < userInfo.length; i++) {
                    if (currentListItem.get_item("Author").get_lookupId() == userInfo[i].authorID) {
                        author = userInfo[i].FirstName + " " + userInfo[i].LastName;
                    }
                }


                CommentinnerHtml += '<div class="comment-div"><div class="col-md-1"> <img src="' + hostweburl + '/_layouts/15/userphoto.aspx?size=M&accountname=%20' + currentListItem.get_item("Email") + '" style=" width: 40px;height:40px;"></img></div>';
                CommentinnerHtml += '<div class="col-md-9" style="width:90%"><p style="float:left;">' + author + ': </p>';
                CommentinnerHtml += '<p class="comment-text">' + currentListItem.get_item("CommentText") + '</p>';
                CommentinnerHtml += '<p style="word-wrap: break-word; float:left;">' + String.format("{0:d} {0:t} {0:tt}", currentListItem.get_item("Created")) + '</p>';
                if ((CurrentUser == currentListItem.get_item("Author").get_lookupValue()) && (userId == currentListItem.get_item("Author").get_lookupId())) {
                    //CommentinnerHtml += '<input type="button" value="Del" id="btnCommentDelete' + currentListItem.get_id() + '" onclick="deleteComment(' + currentListItem.get_id() + ',' + IdeaId + ');"/>';
                    CommentinnerHtml += '<i class="fa fa-trash btn-delete commentDelbtn" id="btnCommentDelete' + currentListItem.get_id() + '" aria-hidden="true"  OnClick="deleteComment(' + currentListItem.get_id() + ',' + IdeaId + ');"></i>';
                    //<i class='fa fa-trash' id="btnCommentDelete' + currentListItem.get_id() + '" aria-hidden='true' class='btn-delete'  OnClick='deleteComment(" + currentListItem.get_id() + "," + IdeaId + ");'></i>
                }
                CommentinnerHtml += "</div></div>";
            }
            if (CommentinnerHtml != "") {
                $(".display-comm-div" + IdeaId).html(CommentinnerHtml);
            }
        }),
        Function.createDelegate(this, function (sender, args) {
            bootbox.alert("Error:" + args.get_message());
        })
        );
}
function GetMyFavandLikesIdeas()
{
    //New Code
    $.ajax({
        url: window.location.protocol + "//" + window.location.host + _spPageContextInfo.webServerRelativeUrl + "/_api/web/lists/getbytitle('Favorites')/items",
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" },
        success: function (data) {
            debugger;



            var json_obj = $.parseJSON(JSON.stringify(data));
            for (var i = 0; i < json_obj.d.results.length; i++) {
                debugger;
                var Ideaid = json_obj.d.results[i].IdeaId;
                var AuthorId = json_obj.d.results[i].AuthorId;
                favoritesArray.push([AuthorId, Ideaid]);

            }
         
        },
        error: function (data) {
            alert("Error");
        }
    });
    //End Code
    $.ajax({
        url: window.location.protocol + "//" + window.location.host + _spPageContextInfo.webServerRelativeUrl + "/_api/web/lists/getbytitle('Likes')/items",
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" },
        success: function (data) {
            debugger;



            var json_obj = $.parseJSON(JSON.stringify(data));
            for (var i = 0; i < json_obj.d.results.length; i++) {
                debugger;
                var Ideaid = json_obj.d.results[i].IdeaId;
                var AuthorId = json_obj.d.results[i].AuthorId;
             
                myLikesArray.push([AuthorId, Ideaid]);

            }
         
        },
        error: function (data) {
            alert("Error");
        }
    });

    retrieveIdeasItems();
}
function GetMyFavouritesIdeas()
{
    $.ajax({
        url: window.location.protocol + "//" + window.location.host + _spPageContextInfo.webServerRelativeUrl + "/_api/web/lists/getbytitle('Favorites')/items",
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" },
        success: function (data) {
            debugger;



            var json_obj = $.parseJSON(JSON.stringify(data));
            for (var i = 0; i < json_obj.d.results.length; i++) {
                debugger;
                var Ideaid = json_obj.d.results[i].IdeaId;
                var AuthorId = json_obj.d.results[i].AuthorId;
                favoritesArray.push([AuthorId, Ideaid]);

            }

        },
        error: function (data) {
            alert("Error");
        }
    });
}

function GetActiveIdeasLikesandFav() {
    //New Code
    $.ajax({
        url: window.location.protocol + "//" + window.location.host + _spPageContextInfo.webServerRelativeUrl + "/_api/web/lists/getbytitle('Favorites')/items",
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" },
        success: function (data) {
            debugger;



            var json_obj = $.parseJSON(JSON.stringify(data));
            for (var i = 0; i < json_obj.d.results.length; i++) {
                debugger;
                var Ideaid = json_obj.d.results[i].IdeaId;
                var AuthorId = json_obj.d.results[i].AuthorId;
                favoritesArray.push([AuthorId, Ideaid]);

            }

        },
        error: function (data) {
            alert("Error");
        }
    });
    //End Code
    $.ajax({
        url: window.location.protocol + "//" + window.location.host + _spPageContextInfo.webServerRelativeUrl + "/_api/web/lists/getbytitle('Likes')/items",
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" },
        success: function (data) {
            debugger;



            var json_obj = $.parseJSON(JSON.stringify(data));
            for (var i = 0; i < json_obj.d.results.length; i++) {
                debugger;
                var Ideaid = json_obj.d.results[i].IdeaId;
                var AuthorId = json_obj.d.results[i].AuthorId;

                myLikesArray.push([AuthorId, Ideaid]);

            }

        },
        error: function (data) {
            alert("Error");
        }
    });

   
}

//-------styling my ideas----------
function GetMyIdeas() {
    //New Code
    $.ajax({
        url: window.location.protocol + "//" + window.location.host + _spPageContextInfo.webServerRelativeUrl + "/_api/web/lists/getbytitle('Favorites')/items",
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" },
        success: function (data) {
            debugger;



            var json_obj = $.parseJSON(JSON.stringify(data));
            for (var i = 0; i < json_obj.d.results.length; i++) {
                debugger;
                var Ideaid = json_obj.d.results[i].IdeaId;
                var AuthorId = json_obj.d.results[i].AuthorId;
                favoritesArray.push([AuthorId, Ideaid]);

            }

        },
        error: function (data) {
            alert("Error");
        }
    });
    //End Code
    $.ajax({
        url: window.location.protocol + "//" + window.location.host + _spPageContextInfo.webServerRelativeUrl + "/_api/web/lists/getbytitle('Likes')/items",
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" },
        success: function (data) {
            debugger;



            var json_obj = $.parseJSON(JSON.stringify(data));
            for (var i = 0; i < json_obj.d.results.length; i++) {
                debugger;
                var Ideaid = json_obj.d.results[i].IdeaId;
                var AuthorId = json_obj.d.results[i].AuthorId;

                myLikesArray.push([AuthorId, Ideaid]);

            }

        },
        error: function (data) {
            alert("Error");
        }
    });

    MyIdea();
}

//-------styling ideas in top picks------
function GetTopPicksWithStyle() {
    //New Code
    $.ajax({
        url: window.location.protocol + "//" + window.location.host + _spPageContextInfo.webServerRelativeUrl + "/_api/web/lists/getbytitle('Favorites')/items",
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" },
        success: function (data) {
            debugger;



            var json_obj = $.parseJSON(JSON.stringify(data));
            for (var i = 0; i < json_obj.d.results.length; i++) {
                debugger;
                var Ideaid = json_obj.d.results[i].IdeaId;
                var AuthorId = json_obj.d.results[i].AuthorId;
                favoritesArray.push([AuthorId, Ideaid]);

            }

        },
        error: function (data) {
            alert("Error");
        }
    });
    //End Code
    $.ajax({
        url: window.location.protocol + "//" + window.location.host + _spPageContextInfo.webServerRelativeUrl + "/_api/web/lists/getbytitle('Likes')/items",
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" },
        success: function (data) {
            debugger;



            var json_obj = $.parseJSON(JSON.stringify(data));
            for (var i = 0; i < json_obj.d.results.length; i++) {
                debugger;
                var Ideaid = json_obj.d.results[i].IdeaId;
                var AuthorId = json_obj.d.results[i].AuthorId;

                myLikesArray.push([AuthorId, Ideaid]);

            }

        },
        error: function (data) {
            alert("Error");
        }
    });

    retrieveTopPicksIdea();
}

//---------styling ideas in golden star--------
function GetGoldenStarWithStyle() {
    //New Code
    $.ajax({
        url: window.location.protocol + "//" + window.location.host + _spPageContextInfo.webServerRelativeUrl + "/_api/web/lists/getbytitle('Favorites')/items",
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" },
        success: function (data) {
            debugger;



            var json_obj = $.parseJSON(JSON.stringify(data));
            for (var i = 0; i < json_obj.d.results.length; i++) {
                debugger;
                var Ideaid = json_obj.d.results[i].IdeaId;
                var AuthorId = json_obj.d.results[i].AuthorId;
                favoritesArray.push([AuthorId, Ideaid]);

            }

        },
        error: function (data) {
            alert("Error");
        }
    });
    //End Code
    $.ajax({
        url: window.location.protocol + "//" + window.location.host + _spPageContextInfo.webServerRelativeUrl + "/_api/web/lists/getbytitle('Likes')/items",
        method: "GET",
        headers: { "Accept": "application/json; odata=verbose" },
        success: function (data) {
            debugger;



            var json_obj = $.parseJSON(JSON.stringify(data));
            for (var i = 0; i < json_obj.d.results.length; i++) {
                debugger;
                var Ideaid = json_obj.d.results[i].IdeaId;
                var AuthorId = json_obj.d.results[i].AuthorId;

                myLikesArray.push([AuthorId, Ideaid]);

            }

        },
        error: function (data) {
            alert("Error");
        }
    });

    retrieveGoldenStarsIdea();
}

Comments

Popular posts from this blog

Insert