• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/grid/task/groupaction.php
  • Класс: BitrixTasksGridTaskGroupAction
  • Вызов: GroupAction::getFullList
private function getFullList(): array
{
	$actionList = [];

	$actionList[] = [
		'NAME' => Loc::getMessage('TASKS_LIST_CHOOSE_ACTION'),
		'VALUE' => self::ACTION_NONE,
		'ONCHANGE' => [
			[
				'ACTION' => Actions::CALLBACK,
				'DATA' => [
					['JS' => "BX.Tasks.GridActions.setCurrentGroupAction(null)"],
				],
			],
		],
	];

	$actionList[] = [
		'NAME' => Loc::getMessage('TASKS_LIST_GROUP_ACTION_PING'),
		'VALUE' => self::ACTION_PING,
		'ONCHANGE' => [
			[
				'ACTION' => Actions::CALLBACK,
				'DATA' => [
					['JS' => "BX.Tasks.GridActions.setCurrentGroupAction('ping')"],
				],
			],
		],
	];

	$actionList[] = [
		'NAME' => Loc::getMessage('TASKS_LIST_GROUP_ACTION_COMPLETE'),
		'VALUE' => self::ACTION_COMPLETE,
		'ONCHANGE' => [
			['ACTION' => Actions::RESET_CONTROLS],
			[
				'ACTION' => Actions::CALLBACK,
				'DATA' => [
					['JS' => "BX.Tasks.GridActions.setCurrentGroupAction('complete')"],
				],
			],
		],
	];

	$actionList[] = [
		'NAME' => Loc::getMessage('TASKS_LIST_GROUP_ACTION_SET_DEADLINE'),
		'VALUE' => self::ACTION_SET_DEADLINE,
		'ONCHANGE' => [
			[
				'ACTION' => Actions::CREATE,
				'DATA' => [
					[
						'TYPE' => Types::DATE,
						'ID' => 'action_set_deadline',
						'NAME' => 'ACTION_SET_DEADLINE',
						'VALUE' => '',
						'TIME' => true,
					],
				],
			],
			[
				'ACTION' => Actions::CALLBACK,
				'DATA' => [
					['JS' => "BX.Tasks.GridActions.setCurrentGroupAction('setdeadline')"],
				],
			],
		],
	];

	$actionList[] = [
		'NAME' => Loc::getMessage('TASKS_LIST_GROUP_ACTION_MOVE_DEADLINE_RIGHT'),
		'VALUE' => self::ACTION_ADJUST_DEADLINE,
		'ONCHANGE' => $this->getMoveDeadlineConfig(),
	];

	$actionList[] = [
		'NAME' => Loc::getMessage('TASKS_LIST_GROUP_ACTION_MOVE_DEADLINE_LEFT'),
		'VALUE' => self::ACTION_SUBSTRACT_DEADLINE,
		'ONCHANGE' => $this->getMoveDeadlineConfig(),
	];

	$actionList[] = [
		'NAME' => Loc::getMessage('TASKS_LIST_GROUP_ACTION_SET_TASK_CONTROL_V2'),
		'VALUE' => self::ACTION_SET_TASK_CONTROL,
		'ONCHANGE' => [
			[
				'ACTION' => Actions::CREATE,
				'DATA' => [
					[
						'TYPE' => Types::DROPDOWN,
						'ID' => 'action_set_task_control',
						'NAME' => 'value',
						'ITEMS' => [
							[
								'NAME' => Loc::getMessage('TASKS_LIST_GROUP_ACTION_SET_TASK_CONTROL_YES'),
								'VALUE' => 'N',
							],
							[
								'NAME' => Loc::getMessage('TASKS_LIST_GROUP_ACTION_SET_TASK_CONTROL_NO'),
								'VALUE' => 'Y',
							],
						],
					],
				],
			],
			[
				'ACTION' => Actions::CALLBACK,
				'DATA' => [
					['JS' => "BX.Tasks.GridActions.setCurrentGroupAction('settaskcontrol')"],
				],
			],
		],
	];

	$roles = $this->getRoles();

	foreach ($roles as $role)
	{
		$key = $role['KEY'];

		$actionList[] = [
			'NAME' => $role['NAME'],
			'VALUE' => $role['VALUE'],
			'ONCHANGE' => [
				[
					'ACTION' => Actions::CREATE,
					'DATA' => [
						[
							'TYPE' => Types::TEXT,
							'ID' => "action_set_{$key}_text",
							'NAME' => "{$key}Text",
							'VALUE' => '',
							'SIZE' => 1,
						],
						[
							'TYPE' => Types::HIDDEN,
							'ID' => "action_set_{$key}",
							'NAME' => "{$key}Id",
							'VALUE' => '',
							'SIZE' => 1,
						],
					],
				],
				[
					'ACTION' => Actions::CALLBACK,
					'DATA' => [
						['JS' => "BX.Tasks.GridActions.initPopupBalloon('user','action_set_{$key}_text','action_set_{$key}');"],
					],
				],
				[
					'ACTION' => Actions::CALLBACK,
					'DATA' => [
						['JS' => "BX.Tasks.GridActions.setCurrentGroupAction('changeuser')"],
					],
				],
			],
		];
	}

	$actionList[] = [
		'NAME' => Loc::getMessage('TASKS_LIST_GROUP_ACTION_MUTE'),
		'VALUE' => self::ACTION_MUTE,
		'ONCHANGE' => [
			['ACTION' => Actions::RESET_CONTROLS],
			[
				'ACTION' => Actions::CALLBACK,
				'DATA' => [
					['JS' => "BX.Tasks.GridActions.setCurrentGroupAction('mute')"],
				],
			],
		],
	];

	$actionList[] = [
		'NAME' => Loc::getMessage('TASKS_LIST_GROUP_ACTION_UNMUTE'),
		'VALUE' => self::ACTION_UNMUTE,
		'ONCHANGE' => [
			['ACTION' => Actions::RESET_CONTROLS],
			[
				'ACTION' => Actions::CALLBACK,
				'DATA' => [
					['JS' => "BX.Tasks.GridActions.setCurrentGroupAction('unmute')"],
				],
			],
		],
	];

	$actionList[] = [
		'NAME' => Loc::getMessage('TASKS_LIST_GROUP_ACTION_ADD_FAVORITE'),
		'VALUE' => self::ACTION_ADD_FAVORITE,
		'ONCHANGE' => [
			['ACTION' => Actions::RESET_CONTROLS],
			[
				'ACTION' => Actions::CALLBACK,
				'DATA' => [
					['JS' => "BX.Tasks.GridActions.setCurrentGroupAction('addtofavorite')"],
				],
			],
		],
	];

	$actionList[] = [
		'NAME' => Loc::getMessage('TASKS_LIST_GROUP_ACTION_DELETE_FAVORITE'),
		'VALUE' => self::ACTION_REMOVE_FAVORITE,
		'ONCHANGE' => [
			['ACTION' => Actions::RESET_CONTROLS],
			[
				'ACTION' => Actions::CALLBACK,
				'DATA' => [
					['JS' => "BX.Tasks.GridActions.setCurrentGroupAction('removefromfavorite')"],
				],
			],
		],
	];

	$actionList[] = [
		'NAME' => Loc::getMessage('TASKS_LIST_GROUP_ACTION_SET_GROUP'),
		'VALUE' => self::ACTION_SET_GROUP,
		'ONCHANGE' => [
			[
				'ACTION' => Actions::CREATE,
				'DATA' => [
					[
						'TYPE' => Types::TEXT,
						'ID' => 'action_set_group_search',
						'NAME' => 'ACTION_SET_GROUP_SEARCH',
					],
					[
						'TYPE' => Types::HIDDEN,
						'ID' => 'action_set_group_id',
						'NAME' => 'groupId',
					],
				],
			],
			[
				'ACTION' => Actions::CALLBACK,
				'DATA' => [
					['JS' => "BX.Tasks.GridActions.initPopupBalloon('group','action_set_group_search','action_set_group_id');"],
				],
			],
			[
				'ACTION' => Actions::CALLBACK,
				'DATA' => [
					['JS' => "BX.Tasks.GridActions.setCurrentGroupAction('setgroup')"],
				],
			],
		],
	];

	$actionList[] = [
		'NAME' => Loc::getMessage('TASKS_LIST_GROUP_ACTION_REMOVE'),
		'VALUE' => self::ACTION_DELETE,
		'ONCHANGE' => [
			['ACTION' => Actions::RESET_CONTROLS],
			[
				'ACTION' => Actions::CALLBACK,
				'DATA' => [
					['JS' => "BX.Tasks.GridActions.setCurrentGroupAction('delete')"],
				],
			],
		],
	];

	return $actionList;
}