'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" } ] } ] }; } });