Changeset View
Changeset View
Standalone View
Standalone View
branches/5.3.x/core/units/scheduled_tasks/scheduled_task_eh.php
Show All 23 Lines | |||||
* @see kEventHandler::$permMapping | * @see kEventHandler::$permMapping | ||||
*/ | */ | ||||
protected function mapPermissions() | protected function mapPermissions() | ||||
{ | { | ||||
parent::mapPermissions(); | parent::mapPermissions(); | ||||
$permissions = Array ( | $permissions = Array ( | ||||
'OnMassCancel' => Array ('self' => 'add|edit'), | 'OnMassCancel' => Array ('self' => 'add|edit'), | ||||
'OnRun' => Array ('self' => 'add|edit'), | |||||
); | ); | ||||
$this->permMapping = array_merge($this->permMapping, $permissions); | $this->permMapping = array_merge($this->permMapping, $permissions); | ||||
} | } | ||||
/** | /** | ||||
* Does custom validation | * Does custom validation | ||||
* | * | ||||
▲ Show 20 Lines • Show All 132 Lines • ▼ Show 20 Line(s) | |||||
} | } | ||||
} | } | ||||
} | } | ||||
$this->clearSelectedIDs($event); | $this->clearSelectedIDs($event); | ||||
} | } | ||||
/** | /** | ||||
* Runs selected scheduled tasks | |||||
* | |||||
* @param kEvent $event | |||||
*/ | |||||
function OnRun($event) | |||||
{ | |||||
$ids = $this->StoreSelectedIDs($event); | |||||
if ($ids) { | |||||
$object = $event->getObject( Array ('skip_autoload' => true) ); | |||||
/* @var $object kDBItem */ | |||||
$where_clause = Array ( | |||||
$object->TableName . '.' . $object->IDField . ' IN (' . implode(',', $ids) . ')', | |||||
$object->TableName . '.Status = ' . STATUS_ACTIVE, | |||||
$object->TableName . '.LastRunStatus <> ' . ScheduledTask::LAST_RUN_RUNNING, | |||||
); | |||||
$sql = $object->GetSelectSQL() . ' | |||||
WHERE (' . implode(') AND (', $where_clause) . ')'; | |||||
$scheduled_tasks = $this->Conn->Query($sql); | |||||
foreach ($scheduled_tasks as $scheduled_task_data) { | |||||
$this->Application->EventManager->runScheduledTask($scheduled_task_data); | |||||
} | |||||
} | |||||
$this->clearSelectedIDs($event); | |||||
} | |||||
/** | |||||
* Loads schedule from database to virtual fields | * Loads schedule from database to virtual fields | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
* @return void | * @return void | ||||
* @access protected | * @access protected | ||||
*/ | */ | ||||
protected function OnAfterItemLoad(kEvent $event) | protected function OnAfterItemLoad(kEvent $event) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 78 Lines • ▼ Show 20 Line(s) | |||||
} | } | ||||
$cron_helper = $this->Application->recallObject('kCronHelper'); | $cron_helper = $this->Application->recallObject('kCronHelper'); | ||||
/* @var $cron_helper kCronHelper */ | /* @var $cron_helper kCronHelper */ | ||||
$cron_helper->initUnit($event->Prefix, 'RunSchedule'); | $cron_helper->initUnit($event->Prefix, 'RunSchedule'); | ||||
} | } | ||||
} | } | ||||
No newline at end of file |