getInstance
Статический метод для редактирования пункта чек-листа.
Редактирование
$task = \CTaskItem::getInstance($taskId, $userId); $item = new \CTaskCheckListItem($task, $itemId); $item->update(['TITLE'=>'title 2']);
События
OnBeforeTaskCheckListItemUpdate ($task, $fields) OnAfterTaskCheckListItemUpdate ($task, $oldFields, $newFields)
REST запрос
// 20190207175155 // http://site.ru/rest/1/********/tasks.task.checklist.update?taskId=1&checkListItemId=29&fields[TITLE]=Hello%20world { "result": { "item": [ { "ID": "1", "CREATED_BY": "1", "TASK_ID": "1", "TITLE": "Hello world", "IS_COMPLETE": "N", "SORT_INDEX": "1" } ] }, "time": { "start": 1549554715.4373, "finish": 1549554715.54894, "duration": 0.11163997650146484, "processing": 0.038207054138183594, "date_start": "2019-02-07T17:51:55+02:00", "date_finish": "2019-02-07T17:51:55+02:00" } }
Удаление
$task = \CTaskItem::getInstance($taskId, $userId); $item = new \CTaskCheckListItem($task, $itemId); $item->delete();
События
OnBeforeTaskCheckListItemDelete ($task, $fields) OnAfterTaskCheckListItemDelete ($task)
REST запрос
// 20190207175321 // http://site.ru/rest/1/********/tasks.task.checklist.delete?taskId=1&checkListItemId=29 { "result": { "item": true }, "time": { "start": 1549554801.140385, "finish": 1549554801.24166, "duration": 0.10127520561218262, "processing": 0.032243967056274414, "date_start": "2019-02-07T17:53:21+02:00", "date_finish": "2019-02-07T17:53:21+02:00" } }
Проверка доступа
Проверка доступа к действиям над пунктами чек-листа:
task = \CTaskItem::getInstance($taskId, $userId); $item = new \CTaskCheckListItem($task, $itemId); $task->isActionAllowed(\CTaskItem::ACTION_CHECKLIST_ADD_ITEMS); // для добавления пункта чеклиста, разрешение стоит спрашивать у задачи, а не у чек-листа! $item = new \CTaskCheckListItem($task, $itemId); // удаление $item->isActionAllowed(\CTaskCheckListItem::ACTION_REMOVE); // сортировка $item->isActionAllowed(\CTaskCheckListItem::ACTION_REORDER); // изменение $item->isActionAllowed(\CTaskCheckListItem::ACTION_MODIFY); // выполнение $item->isActionAllowed(\CTaskCheckListItem::ACTION_TOGGLE);
Возможные варианты $actionId:
\CTaskCheckListItem::ACTION_ADD = 0x01; // добавление \CTaskCheckListItem::ACTION_MODIFY = 0x02; // изменение \CTaskCheckListItem::ACTION_REMOVE = 0x03; // удаление \CTaskCheckListItem::ACTION_TOGGLE = 0x04; // выполнение \CTaskCheckListItem::ACTION_REORDER = 0x05; // сортировку
Изменение сортировки
$task = \CTaskItem::getInstance($taskId, $userId); $item = new \CTaskCheckListItem($task, $itemId); $newIndex = 19; $item->setSortIndex($newIndex);
События
OnBeforeTaskCheckListItemSort ($task, $fields) OnAfterTaskCheckListItemSort ($task, $oldFields, $newFields)
Перемещение
Переместить пункт 5 под 2 пункт чеклиста:
$task = \CTaskItem::getInstance($taskId, $userId); $item5 = new \CTaskCheckListItem($task, $itemId5); $item2 = new \CTaskCheckListItem($task, $itemId2); $item5->moveAfterItem($item2->getId());
События
OnCheckListItemMoveItem ($selectedItemId, $insertAfterItemId)
REST запрос
// 20190207175514 // http://site.ru/rest/1/********/tasks.task.checklist.moveafter?taskId=1&checkListItemId=2&afterItemId=6 { "result": { "item": [ { "ID": "2", "CREATED_BY": "1", "TASK_ID": "1", "TITLE": "Hello world", "IS_COMPLETE": "N", "SORT_INDEX": "17" } ] }, "time": { "start": 1549555019.965198, "finish": 1549555020.053995, "duration": 0.08879685401916504, "processing": 0.035902976989746094, "date_start": "2019-02-07T17:56:59+02:00", "date_finish": "2019-02-07T17:57:00+02:00" } }
Выполнение пункта
Проверка выполнен ли пункт чек-листа
$task = \CTaskItem::getInstance($taskId, $userId); $item = new \CTaskCheckListItem($task, $itemId); echo $item->iSComplete() ? 'Выполнен' : 'Не выполнен';
Выполнить пункт чек-листа:
$task = \CTaskItem::getInstance($taskId, $userId); $item = new \CTaskCheckListItem($task, $itemId); echo $item->сomplete();
События
См. метод update.
REST запрос
// 20190207175514 // http://site.ru/rest/1/********/tasks.task.checklist.complete?taskId=1&checkListItemId=2 { "result": { "item": [ { "ID": "2", "CREATED_BY": "1", "TASK_ID": "1", "TITLE": "Hello world", "IS_COMPLETE": "Y", "SORT_INDEX": "4" } ] }, "time": { "start": 1549554914.300577, "finish": 1549554914.371372, "duration": 0.07079505920410156, "processing": 0.03411412239074707, "date_start": "2019-02-07T17:55:14+02:00", "date_finish": "2019-02-07T17:55:14+02:00" } }
Невыполненный пункт
Пометить пункт чек-листа как невыполненный. В отличии от метода toggle этот метод не переключает выполненный/невыполненный, а принудительно выставляет “невыполненный”.
$task = \CTaskItem::getInstance($taskId, $userId); $item = new \CTaskCheckListItem($task, $itemId); echo $item->renew();
События
См. метод update.
REST запрос
// 20190207175514 // http://site.ru/rest/1/********/tasks.task.checklist.renew?taskId=1&checkListItemId=2 { "result": { "item": [ { "ID": "2", "CREATED_BY": "1", "TASK_ID": "1", "TITLE": "Hello world", "IS_COMPLETE": "N", "SORT_INDEX": "4" } ] }, "time": { "start": 1549554914.300577, "finish": 1549554914.371372, "duration": 0.07079505920410156, "processing": 0.03411412239074707, "date_start": "2019-02-07T17:55:14+02:00", "date_finish": "2019-02-07T17:55:14+02:00" } }
© «Битрикс», 2001-2024, «1С-Битрикс», 2024