'use strict';
angular.module("KendoDemos", ["kendo.directives"])
.controller("MyCtrl", function ($scope, $http) {
var config = false;
var devconsole = {
log: function (text) {
if (config) {
console.log(text)
};
}
}
function getAuthURL() {
$http({
method: 'get',
url: '/events'
}).then(function successCallback(response) {
var res = response.data
if (res.result) {
if (res.result.status == "redirect") {
window.open(res.result.data, '_self')
}
} else {
console.info(response)
schedulerStart()
}
}, function errorCallback(response) {
console.error(response)
});
}
getAuthURL()
$scope.filter = {}
$scope.data = {}
$scope.filterEventID = function () {
devconsole.log("filterEventID")
$scope.schedulerSmartRMS.dataSource.filter({
operator: function (task) {
return $scope.selectedIds.indexOf(parseInt(task.eventTypeID)) >= 0
}
});
}
$scope.selectOptions = {
placeholder: "Select event...",
dataTextField: "eventName",
dataValueField: "eventID",
tagTemplate: ' #:data.eventName#',
valuePrimitive: true,
autoBind: false,
dataSource: [{
eventName: "Type1",
eventID: 1,
color: "#f8a398"
},
{
eventName: "Type2",
eventID: 2,
color: "#51a0ed"
},
{
eventName: "Type3",
eventID: 3,
color: "#56ca85"
}]
};
$scope.selectedIds = [1];
function scheduler_dataBinding(e) {
devconsole.log("dataBinding");
}
function scheduler_dataBound(e) {
devconsole.log("dataBound");
}
function scheduler_save(e) {
devconsole.log("save");
$scope.schedulerSmartRMS.refresh()
}
function scheduler_remove(e) {
devconsole.log("remove");
$scope.schedulerSmartRMS.refresh()
}
function scheduler_cancel(e) {
devconsole.log("cancel");
}
function scheduler_edit(e) {
devconsole.log("edit");
}
function scheduler_add(e) {
devconsole.log("add");
}
function schedulerStart() {
$scope.schedulerOptions = {
date: new Date("2016/10/12"),
startTime: new Date("2016/10/12 07:00"),
majorTimeHeaderTemplate: kendo.template("#=kendo.toString(date, 'HH:mm')# น."),
minorTickCount: 1,
toolbar: ["pdf"],
messages: {
cancel: "Cancel",
save: "Save",
deleteWindowTitle: "Remove event",
pdf: "PDF Export",
editable: {
confirmation: "Are you sure you want to delete this event?"
},
editor: {
description: "Description"
}
},
height: 600,
dataBinding: scheduler_dataBinding,
dataBound: scheduler_dataBound,
save: scheduler_save,
remove: scheduler_remove,
edit: scheduler_edit,
add: scheduler_add,
cancel: scheduler_cancel,
views: [
"day",
{ type: "workWeek", selected: true },
"week",
"month",
"agenda",
"timeline"
],
timezone: "Asia/Bangkok",
dataSource: {
batch: true,
transport: {
read: {
url: "//localhost:3001/events",
dataType: "jsonp",
type: "GET"
},
update: {
url: "//localhost:3001/events",
dataType: "jsonp",
type: "PUT"
},
create: {
url: "//localhost:3001/events",
dataType: "jsonp",
type: "POST"
},
destroy: {
url: "//localhost:3001/events",
dataType: "jsonp",
type: "DELETE"
},
parameterMap: function (options, operation) {
if (operation !== "read" && options.models) {
return { models: kendo.stringify(options.models) };
}
}
},
schema: {
model: {
id: "taskId",
fields: {
taskId: { from: "TaskID" },
title: { from: "Title", defaultValue: "No title", validation: { required: true } },
start: { type: "datetime", from: "Start" },
end: { type: "datetime", from: "End" },
startTimezone: { from: "StartTimezone", defaultValue: "Asia/Bangkok" },
endTimezone: { from: "EndTimezone", defaultValue: "Asia/Bangkok" },
description: { from: "Description" },
recurrenceId: { from: "RecurrenceID" },
recurrenceRule: { from: "RecurrenceRule" },
recurrenceException: { from: "RecurrenceException" },
eventTypeID: { from: "EventTypeID" },
isAllDay: { type: "boolean", from: "IsAllDay" }
}
}
},
filter: {
field: "eventTypeID", operator: "eq", value: 1
}
},
editable: true,
resources: [
{
field: "eventTypeID",
title: "EventType",
dataSource: [
{ text: "Type1", value: 1, color: "#f8a398" },
{ text: "Type2", value: 2, color: "#51a0ed" },
{ text: "Type3", value: 3, color: "#56ca85" }
]
}
]
};
}
})