datalayerru/schedule-widget-yii2

此包已被废弃,不再维护。作者建议使用 https://github.com/SergioMadness/ScheduleWidgetYII2 包。

angular-gantt 包装器

安装: 409

依赖: 0

建议者: 0

安全性: 0

星级: 2

关注者: 2

分支: 2

开放问题: 2

语言:JavaScript

类型:yii2 扩展

0.5.6 2016-09-01 21:32 UTC

This package is auto-updated.

Last update: 2022-02-01 12:46:35 UTC


README

Yii2 小部件。angular-gantt 包装器

Composer

ScheduleWidgetYII2 可通过 composer 使用

composer require professionalweb/schedule-widget-yii2 "dev-master"

或者您可以将以下内容手动添加到您的 composer.json 文件的 require 部分

"professionalweb/schedule-widget-yii2": "dev-master"

之后运行 composer update

在您的 PHP 项目中

数据

示例

use professionalweb\ScheduleWidget\ScheduleWidget;

echo ScheduleWidget::widget([
    'clientOptions' => [
        'daily' => 'true', 
        'column-magnet' => 'column', 
        'time-frames-magnet' => false
    ],
    'plugins' => [
        ScheduleWidget::PLUGIN_MOVABLE => [],
        ScheduleWidget::PLUGIN_TABLE => [
            'headers' => [
                'model.name' => 'Name'
            ]
        ], 
        ScheduleWidget::PLUGIN_TOOLTIP => []
    ],
    'events' => [
        ScheduleWidget::EVENT_TASK_MOVEEND => new JsExpression('function(task){'
                .'console.log(task.row.model);'
                .'}')
    ],
    'data' => '[
        {"name":"Row №1","sortable":"false","tasks":[]},
        {"name":"Row №2","sortable":"false","tasks":[]},
        {"name":"Row №3","sortable":"false","tasks":[
            {"name":"Task №1","from":"2015 04 16","to":"2015 04 23"}
          ]
        }
      ]'
]);

或者您可以使用数据准备包装器

$result = [];

$eventRow       = new Row();
$eventRow->name = Yii::t('app', 'Rent');
$result[]       = $eventRow;
foreach (Room::find()->all() as $room) {
    $rowRent         = new Row();
    $rowRent->name   = $room->ROOM_NUMBER;
    $rowRent->parent = $eventRow->name;
    foreach (Event::find()->andWhere(['ROOM_ID' => $room->id)->all() as $event) {
        $task          = new Task();
        $task->name    = $event->CLIENT_NAME;
        $task->from    = Yii::$app->formatter->asDate($event->START_DATE,
                'Y-MM-dd');
        $task->to      = Yii::$app->formatter->asDate($event->END_DATE,
                'Y-MM-dd');
        $task->classes = ['event-row'];

        $rowRent->tasks[] = $task;
    }

    $result[] = $rowRent;
}

事件

'events' => [
    ScheduleWidget::EVENT_TASK_ROW_CHANGE => new JsExpression('function(task){'
            .'if(task.row.model.parent===\'Rent\') {'
            .'task.$element.addClass(\'event-row\');'
            .'task.$element.removeClass(\'request-row\');'
            .'} else {'
            .'task.$element.removeClass(\'event-row\');'
            .'task.$element.addClass(\'request-row\');'
            .'}'
            .'}'),
    ScheduleWidget::EVENT_TASK_DBLCLICK => new JsExpression('function(task){console.log(task);}')
]

还包括

angular 的 HTMLFilter

示例

ScheduleWidget::PLUGIN_TOOLTIP => [
    'date-format'=>'\'DD.MM.YYYY\'',
    'content' => '\'<div ng-bind-html="task.model.name | unsafe"></div>{{getFromLabel() +" - "+getToLabel()}}\''
],

依赖

MIT 许可证

MIT 许可证 (MIT)

版权所有 (c) 2016 Sergey Zinchenko, 专业网站

特此免费授予任何获得此软件及其相关文档(“软件”)副本的任何人以使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许获得软件的人进行此类操作,但需遵守以下条件

上述版权声明和本许可声明应包含在软件的任何副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对因软件或软件的使用或其它交易而产生或与之相关的任何主张、损害或其他责任负责,无论是因合同、侵权或其他行为。