professionalweb/schedule-widget-yii2

此包已被废弃,不再维护。未建议替代包。

angular-gantt 的包装器

安装量: 1,350

依赖者: 0

建议者: 0

安全: 0

星标: 2

关注者: 2

分支: 3

公开问题: 2

语言:JavaScript

类型:yii2-extension

0.5.6 2016-09-01 21:32 UTC

This package is auto-updated.

Last update: 2020-08-29 05:16:19 UTC


README

Yii2 小部件。angular-gantt 的包装器。

Composer

通过 composer 可获取 ScheduleWidgetYII2

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 许可证

The MIT License (MIT)

版权所有 (c) 2016 Sergey Zinchenko, Professional web

在此协议下,任何获得此软件及其相关文档副本(“软件”)的人均可免费使用该软件,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许提供软件的人进行此类操作,前提是遵守以下条件

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

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