Welcome Guest, Not a member yet? Register   Sign In
Codeigniter + Kendo Gantt
#1

Hi there,
I wanna to put this to the codeigniter: Anyway Can you please tell me what I should prepare in the codeigniter to show this:
This is one file gantt.php (I can add gantt do controller but there is some problem to show data. Of course gantt.php works good outside the Codeigniter structure... Can I force codeigniter that all the files (gantt) have to be show in the view in codeigniter?

Code:
<!DOCTYPE html>
<html>
<head>
   <title></title>
   <link rel="stylesheet" href="styles/kendo.common.min.css" />
   <link rel="stylesheet" href="styles/kendo.default.min.css" />
   <link rel="stylesheet" href="styles/kendo.default.mobile.min.css" />

   <script src="js/jquery.min.js"></script>
   <script src="js/kendo.all.min.js"></script>
   

</head>
<body>
<?php
require_once '../lib/DataSourceResult.php';
require_once '../lib/Kendo/Autoload.php';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
   header('Content-Type: application/json');

   $request = json_decode(file_get_contents('php://input'));

   $result = new DataSourceResult('sqlite:..//sample.db');

   $type = $_GET['type'];

   $operation = $_GET['operation'];

   if ($type == "dependency") {
       $columns = array('ID', 'PredecessorID', 'SuccessorID', 'Type');

       $table = "GanttDependencies";
   } else {
       $columns = array('ID', 'ParentID', 'OrderID', 'Title', 'Start', 'End', 'PercentComplete', 'Expanded', 'Summary');

       $table = "GanttTasks";
   }

   switch($operation) {
       case 'create':
           $result = $result->create($table, $columns, $request, 'ID');
           break;
       case 'update':
           $result = $result->update($table, $columns, $request, 'ID');
           break;
       case 'destroy':
           $result = $result->destroy($table, $request, 'ID');
           break;
       default:
           $result = $result->read($table, $columns, $request);
           break;
   }

   echo json_encode($result, JSON_NUMERIC_CHECK);

   exit;
}

// tasks datasource
$transport = new \Kendo\Data\DataSourceTransport();

$create = new \Kendo\Data\DataSourceTransportCreate();

$create->url('gantt.php?type=task&operation=create')
    ->contentType('application/json')
    ->type('POST');

$read = new \Kendo\Data\DataSourceTransportRead();

$read->url('gantt.php?type=task&operation=read')
    ->contentType('application/json')
    ->type('POST');

$update = new \Kendo\Data\DataSourceTransportUpdate();

$update->url('gantt.php?type=task&operation=update')
    ->contentType('application/json')
    ->type('POST');

$destroy = new \Kendo\Data\DataSourceTransportDestroy();

$destroy->url('gantt.php?type=task&operation=destroy')
    ->contentType('application/json')
    ->type('POST');

$transport->create($create)
         ->read($read)
         ->update($update)
         ->destroy($destroy)
         ->parameterMap('function(data) {
             return kendo.stringify(data);
         }');

$taskModel = new \Kendo\Data\DataSourceSchemaModel();

$idField = new \Kendo\Data\DataSourceSchemaModelField('id');
$idField->type('number')
       ->from('ID')
       ->nullable(true);

$orderIdField = new \Kendo\Data\DataSourceSchemaModelField('orderId');
$orderIdField->from('OrderID')
       ->type('number');

$parentIdField = new \Kendo\Data\DataSourceSchemaModelField('parentId');
$parentIdField->from('ParentID')
       ->defaultValue(null)
       ->type('number');

$startField = new \Kendo\Data\DataSourceSchemaModelField('start');
$startField->from('Start')
       ->type('date');

$endField = new \Kendo\Data\DataSourceSchemaModelField('end');
$endField->from('End')
       ->type('date');

$titleField = new \Kendo\Data\DataSourceSchemaModelField('title');
$titleField->from('Title')
       ->defaultValue('')
       ->type('string');

$percentCompleteField = new \Kendo\Data\DataSourceSchemaModelField('percentComplete');
$percentCompleteField->from('PercentComplete')
       ->type('number');

$summaryField = new \Kendo\Data\DataSourceSchemaModelField('summary');
$summaryField->from('Summary')
       ->type('boolean');

$expandedField = new \Kendo\Data\DataSourceSchemaModelField('expanded');
$expandedField->from('Expanded')
       ->defaultValue(true)
       ->type('boolean');

$taskModel->id('id')
   ->addField($idField)
   ->addField($parentIdField)
   ->addField($orderIdField)
   ->addField($startField)
   ->addField($endField)
   ->addField($titleField)
   ->addField($percentCompleteField)
   ->addField($summaryField)
   ->addField($expandedField);

$schema = new \Kendo\Data\DataSourceSchema();
$schema->model($taskModel)
   ->data("data");

$tasks = new \Kendo\Data\DataSource();

$tasks->transport($transport)
   ->schema($schema)
   ->batch(false);

// dependencies datasource
$transport = new \Kendo\Data\DataSourceTransport();

$create = new \Kendo\Data\DataSourceTransportCreate();

$create->url('gantt.php?type=dependency&operation=create')
    ->contentType('application/json')
    ->type('POST');

$read = new \Kendo\Data\DataSourceTransportRead();

$read->url('gantt.php?type=dependency&operation=read')
    ->contentType('application/json')
    ->type('POST');

$update = new \Kendo\Data\DataSourceTransportUpdate();

$update->url('gantt.php?type=dependency&operation=update')
    ->contentType('application/json')
    ->type('POST');

$destroy = new \Kendo\Data\DataSourceTransportDestroy();

$destroy->url('gantt.php?type=dependency&operation=destroy')
    ->contentType('application/json')
    ->type('POST');

$transport->create($create)
         ->read($read)
         ->update($update)
         ->destroy($destroy)
         ->parameterMap('function(data) {
             return kendo.stringify(data);
         }');

$dependenciesModel = new \Kendo\Data\DataSourceSchemaModel();

$idField = new \Kendo\Data\DataSourceSchemaModelField('id');
$idField->from('ID')
       ->type('number');

$typeField = new \Kendo\Data\DataSourceSchemaModelField('type');
$typeField->from('Type')
       ->type('number');

$predecessorIdField = new \Kendo\Data\DataSourceSchemaModelField('predecessorId');
$predecessorIdField->from('PredecessorID')
       ->type('number');

$successorIdField = new \Kendo\Data\DataSourceSchemaModelField('successorId');
$successorIdField->from('SuccessorID')
       ->type('number');

$dependenciesModel->id('id')
   ->addField($idField)
   ->addField($typeField)
   ->addField($predecessorIdField)
   ->addField($successorIdField);

$schema = new \Kendo\Data\DataSourceSchema();
$schema->model($dependenciesModel)
   ->data("data");

$dependencies = new \Kendo\Data\DataSource();

$dependencies->transport($transport)
   ->schema($schema)
   ->batch(false);

// columns
$idColumn = new \Kendo\UI\GanttColumn();
$idColumn->field("id")
        ->title("ID")
        ->width(50);

$titleColumn = new \Kendo\UI\GanttColumn();
$titleColumn->field("title")
           ->title("Title")
           ->editable(true)
           ->sortable(true);

$startColumn = new \Kendo\UI\GanttColumn();
$startColumn->field("start")
           ->title("Start Time")
           ->format("{0:MM/dd/yyyy}")
           ->width(100)
           ->editable(true)
           ->sortable(true);

$endColumn = new \Kendo\UI\GanttColumn();
$endColumn->field("end")
         ->title("End Time")
         ->format("{0:MM/dd/yyyy}")
         ->width(100)
         ->editable(true)
         ->sortable(true);

// gantt
$gantt = new \Kendo\UI\Gantt('gantt');
$gantt->dataSource($tasks)
     ->dependencies($dependencies)
     ->height(700)
     ->addView(
         'day',
         array('type' => 'week', 'selected' => true),
         'month'
     )
     ->addColumn($idColumn, $titleColumn, $startColumn, $endColumn)
     ->showWorkHours(false)
     ->showWorkDays(false)
     ->snap(false);
?>

<?php
echo $gantt->render();
?>


</body>
</html>


http://demos.telerik.com/php-ui/gantt/index
Reply




Theme © iAndrew 2016 - Forum software by © MyBB