I seem to be having trouble displaying events in the calendar. I know that I am able to get the JSON results without an issue as I created a test page which simply echo's the JSON results. I must be missing something in the code I modified and likely it is very, very simple. On a side note, the scheduler page is loaded up within a tab strip item, but I don't think that makes a difference as I don't see the results when I connect to the page directly.
Help is much appreciated...
Help is much appreciated...
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<html xmlns=
"http://www.w3.org/1999/xhtml"
>
<head>
<meta http-equiv=
"Content-Type"
content=
"text/html; charset=UTF-8"
/>
<title>Appointment Schedular</title>
<link href=
"css/Autovation.css"
rel=
"stylesheet"
/>
<link href=
"css/kendo.common.min.css"
rel=
"stylesheet"
/>
<link href=
"css/kendo.default.min.css"
rel=
"stylesheet"
/>
<script src=
"js/jquery.min.js"
></script>
<script src=
"js/kendo.all.min.js"
></script>
</head>
<script id=
"editor"
type=
"text/x-kendo-template"
>
<h3>Edit meeting</h3>
<p>
<label>Title: <input name=
"title"
/></label>
</p>
<p>
<label>Start: <input data-role=
"datetimepicker"
name=
"start"
/></label>
</p>
<p>
<label>Start: <input data-role=
"datetimepicker"
name=
"end"
/></label>
</p>
</script>
<?php
require_once
'dbModules/DataSourceResult.php'
;
require_once
'dbModules/SchedulerDataSourceResult.php'
;
require_once
'Kendo/Autoload.php'
;
if
(
$_SERVER
[
'REQUEST_METHOD'
] ==
'POST'
) {
header(
'Content-Type: application/json'
);
$request
= json_decode(
file_get_contents
(
'php://input'
));
$result
=
new
SchedulerDataSourceResult(
'mysql:host=localhost;dbname=appdata'
,
'root'
,
'...'
);
$type
=
$_GET
[
'type'
];
$columns
=
array
(
'ID'
,
'EstimateID'
,
'CustomerID'
,
'Subject'
,
'Location'
,
'Description'
,
'StartTime'
,
'EndTime'
,
'VehicleType'
,
'IsAllDay'
,
'Synchronized'
);
switch
(
$type
) {
case
'create'
:
$result
=
$result
->create(
'Appointments'
,
$columns
,
$request
->models,
'ID'
);
break
;
case
'update'
:
$result
=
$result
->update(
'Appointments'
,
$columns
,
$request
->models,
'ID'
);
break
;
case
'destroy'
:
$result
=
$result
->destroy(
'Appointments'
,
$request
->models,
'ID'
);
break
;
default
:
$result
=
$result
->read(
'Appointments'
,
array
(
'ID'
),
$request
);
break
;
}
echo
json_encode(
$result
, JSON_NUMERIC_CHECK);
exit
;
}
$transport
=
new
\Kendo\Data\DataSourceTransport();
$create
=
new
\Kendo\Data\DataSourceTransportCreate();
$create
->url(
'scheduler.php?type=create'
)
->contentType(
'application/json'
)
->type(
'POST'
);
$read
=
new
\Kendo\Data\DataSourceTransportRead();
$read
->url(
'scheduler.php?type=read'
)
->contentType(
'application/json'
)
->type(
'POST'
);
$update
=
new
\Kendo\Data\DataSourceTransportUpdate();
$update
->url(
'scheduler.php?type=update'
)
->contentType(
'application/json'
)
->type(
'POST'
);
$destroy
=
new
\Kendo\Data\DataSourceTransportDestroy();
$destroy
->url(
'scheduler.php?type=destroy'
)
->contentType(
'application/json'
)
->type(
'POST'
);
$transport
->create(
$create
)
->read(
$read
)
->update(
$update
)
->destroy(
$destroy
)
->parameterMap('
function
(data) {
return
kendo.stringify(data);
}');
$model
=
new
\Kendo\Data\DataSourceSchemaModel();
$IDField
=
new
\Kendo\Data\DataSourceSchemaModelField(
'ID'
);
$IDField
->type(
'number'
)
->from(
'ID'
)
->nullable(false);
$estimateID
=
new
\Kendo\Data\DataSourceSchemaModelField(
'EstimateID'
);
$estimateID
->type(
'number'
)
->from(
'EstimateID'
)
->defaultValue(
'No title'
)
->validation(
array
(
'required'
=> true));
$customerID
=
new
\Kendo\Data\DataSourceSchemaModelField(
'CustomerID'
);
$customerID
->type(
'number'
)
->from(
'CustomerID'
)
->defaultValue(
'No title'
)
->validation(
array
(
'required'
=> true));
$subjectField
=
new
\Kendo\Data\DataSourceSchemaModelField(
'Subject'
);
$subjectField
->type(
'string'
)
->from(
'Subject'
);
$locationField
=
new
\Kendo\Data\DataSourceSchemaModelField(
'Location'
);
$locationField
->type(
'string'
)
->from(
'Location'
);
$descriptionField
=
new
\Kendo\Data\DataSourceSchemaModelField(
'Description'
);
$descriptionField
->type(
'string'
)
->from(
'Description'
);
$startField
=
new
\Kendo\Data\DataSourceSchemaModelField(
'StartTime'
);
$startField
->type(
'datetime'
)
->from(
'StartTime'
);
$endField
=
new
\Kendo\Data\DataSourceSchemaModelField(
'EndTime'
);
$endField
->type(
'datetime'
)
->from(
'EndTime'
);
$vehicleTypeField
=
new
\Kendo\Data\DataSourceSchemaModelField(
'VehicleType'
);
$vehicleTypeField
->type(
'string'
)
->from(
'VehicleType'
);
$isAllDayField
=
new
\Kendo\Data\DataSourceSchemaModelField(
'IsAllDay'
);
$isAllDayField
->type(
'boolean'
)
->from(
'IsAllDay'
);
$SynchronizedField
=
new
\Kendo\Data\DataSourceSchemaModelField(
'Synchronized'
);
$SynchronizedField
->type(
'boolean'
)
->from(
'Synchronized'
);
$model
->id(
'ID'
);
$model
->addField(
$IDField
);
$model
->addField(
$estimateID
);
$model
->addField(
$customerID
);
$model
->addField(
$subjectField
);
$model
->addField(
$locationField
);
$model
->addField(
$descriptionField
);
$model
->addField(
$startField
);
$model
->addField(
$endField
);
$model
->addField(
$vehicleTypeField
);
$model
->addField(
$isAllDayField
);
$model
->addField(
$SynchronizedField
);
$schema
=
new
\Kendo\Data\DataSourceSchema();
$schema
->data(
'data'
)
->errors(
'errors'
)
->model(
$model
);
$dataSource
=
new
\Kendo\Data\DataSource();
$dataSource
->transport(
$transport
)
->schema(
$schema
)
->batch(true);
//$editable = new \Kendo\UI\SchedulerEditable();
//$confirmation = true;
//$editable->confirmation($confirmation);
//$editable->template('$editor')//;
$scheduler
=
new
\Kendo\UI\Scheduler(
'scheduler'
);
$scheduler
->timezone(
'America/Toronto'
)
->
date
(
new
DateTime())
->height(
'850'
)
->addView(
array
(
'type'
=>
'day'
,
'startTime'
=>
new
DateTime(
'7:00'
,
new
DateTimeZone(
'America/Toronto'
))),
array
(
'type'
=>
'week'
,
'selected'
=> true,
'startTime'
=>
new
DateTime(
'7:00'
,
new
DateTimeZone(
'America/Toronto'
))),
'month'
,
'agenda'
)
->dataSource(
$dataSource
);
?>
<?php
echo
$scheduler
->render();
?>