3

I am developing a project with the Kendo UI Framework, using more specically the Scheduler widget and I have the current issue:

On my database I have two tables one called Events and the other one called TypeOfEvents. Each type of event has got a specific color, a specific title plus defined values for startHour and endHour fields.

When the pop-up window to create an event is called, I can choose on two kendoMultiSelect the correspondent user and the type of event.

I can also choose the startDate and endDate. The default behavior of a Scheduler widget has got two datetimepickers also, however, I don't want that option on my pop-up window because the events will have defined hours that an user can't change.

My idea would be the following one:

Once I click save after choosing a specific event on my MultiSelectList, there would be some way to concatenate the startHour and endHour values I have defined in my database with the startDate and endHour field that I choosed on the pop-up window.

Right now, all my events startDate/endDate fields are saved on my DB with this format: 2015-03-01 00:00:00.000

I would like to substitute all those zeros with the values I defined in advance in my startHour/endHour fields of my TypeOfEvents table.

Here's my current CREATE script:

create: function (createEvent) {

    var typeOfEventID = $("#selectEvent").val();
    var usernameID = $("#selectUsername").val();
    var dataStartTemp = $("#dataStart").val();
    var dataEndTemp = $("#dataEnd").val();
    var note = $("#note").val();

    var res = $("#customViewScheduler").data("kendoScheduler");
    var res1 = res.resources[1].dataSource.data();

    var dataStart = convertToJSONDate(dataStartTemp);
    var dataEnd = convertToJSONDate(dataEndTemp);

    var changeSet = [];
    var id = 0;

    usernameID.forEach(function (userID) {
        typeOfEventID.forEach(function (eventID) {
            var titletemp = $.grep(res1, function (elem) {
                if (elem.TypeOfEventID == eventID) {
                    return true;
                }
            })

            if (titletemp.length > 0) {
                note = titletemp[0].title;
            }

            var entityChange = {};
            entityChange.Id = id;
            entityChange.Entity = {
                '__type': "Events:#BlahBlahWeb",
                    'UsernameID': userID,
                    'TypeOfEventID': eventID,
                    'startDate': dataStart,
                    'endDate': dataEnd,
                    'Title': note
            };
            entityChange.Operation = 2;
            changeSet.push(entityChange);
            id++
        })
    })

    var changesetPayload = JSON.stringify({
        "changeSet": changeSet
    });

    //Create jQuery ajax request
    var Params = {}
    Params.type = "POST";
    Params.url = "./../Services/BlahBlahWeb-BlahDomainService.svc/JSON/SubmitChanges";
    Params.dataType = "json";
    Params.data = changesetPayload;
    Params.contentType = "application/json";
    Params.error = function (httpRequest, textStatus, errorThrown) {
        //SendErrorByEmail(errorThrown, httpRequest.responseText)
    }
    Params.success = function (data) {
        //createEvent.success(data);
        var scheduler = $("#customViewScheduler").data("kendoScheduler");
        var elem = tratanewelem(data.SubmitChangesResult[0].Entity)
        scheduler.dataSource.read();
    }
    //Make the ajax request
    $.ajax(Params);
},

Any idea of how can I accomplish that?

chiapa
  • 4,362
  • 11
  • 66
  • 106
samureira
  • 253
  • 2
  • 17

0 Answers0