Index: branches/5.2.x/core/admin_templates/scheduled_tasks/agent_list.tpl
===================================================================
diff -u -N
--- branches/5.2.x/core/admin_templates/scheduled_tasks/agent_list.tpl (revision 14880)
+++ branches/5.2.x/core/admin_templates/scheduled_tasks/agent_list.tpl (revision 0)
@@ -1,91 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
Index: branches/5.2.x/core/units/scheduled_tasks/agent_eh.php
===================================================================
diff -u -N
--- branches/5.2.x/core/units/scheduled_tasks/agent_eh.php (revision 14880)
+++ branches/5.2.x/core/units/scheduled_tasks/agent_eh.php (revision 0)
@@ -1,181 +0,0 @@
- Array ('self' => 'add|edit'),
- 'OnRunAgents' => Array ('self' => 'add|edit'),
- );
-
- $this->permMapping = array_merge($this->permMapping, $permissions);
- }
-
- /**
- * [HOOK] Refreshes agents list in database based on cached data from unit configs
- *
- * @param kEvent $event
- */
- function OnRefreshAgents(&$event)
- {
- $regular_events = $this->Application->EventManager->getAgents(true);
-
- $object =& $event->getObject( Array ('skip_autoload' => true) );
- /* @var $object kDBItem */
-
- $processed_ids = Array ();
- $agents = $this->Conn->Query($object->GetSelectSQL(), 'AgentName');
-
- foreach ($regular_events as $run_mode => $events) {
-
- foreach ($events as $agent_name => $agent_params) {
- if ( !isset($agents[$agent_name]) ) {
- $fields_hash = Array (
- 'Event' => $agent_params['EventName'],
- 'AgentName' => $agent_name,
- 'AgentType' => Agent::AGENT_TYPE_SYSTEM,
- 'Status' => array_key_exists('Status', $agent_params) ? $agent_params['Status'] : STATUS_ACTIVE,
- 'RunInterval' => $agent_params['RunInterval'],
- 'RunMode' => $run_mode,
- );
-
- $object->Clear();
- $object->SetDBFieldsFromHash($fields_hash);
- $object->Create();
- }
- else {
- $object->LoadFromHash( $agents[$agent_name] );
- }
-
- $processed_ids[] = $object->GetID();
- }
-
- }
-
- // delete all non-processed agents (ones, that were deleted from unit configs)
- $sql = 'SELECT ' . $object->IDField . '
- FROM ' . $object->TableName . '
- WHERE (AgentType = ' . Agent::AGENT_TYPE_SYSTEM . ') AND (' . $object->IDField . ' NOT IN (' . implode(',', $processed_ids) . '))';
- $delete_ids = $this->Conn->GetCol($sql);
-
- if ($delete_ids) {
- $temp_handler =& $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler');
- /* @var $temp_handler kTempTablesHandler */
-
- $temp_handler->DeleteItems($event->Prefix, $event->Special, $delete_ids);
- }
-
- $this->Application->removeObject($event->getPrefixSpecial());
- }
-
- /**
- * Don't allow to delete other user's messages
- *
- * @param kEvent $event
- * @param string $type
- * @return void
- * @access protected
- */
- protected function customProcessing(&$event, $type)
- {
- if ($event->Name == 'OnMassDelete' && $type == 'before') {
- if ($this->Application->isDebugMode()) {
- // allow to delete system agents in debug mode
- return ;
- }
-
- $ids = $event->getEventParam('ids');
- if ($ids) {
- $id_field = $this->Application->getUnitOption($event->Prefix, 'IDField');
- $table_name = $this->Application->getUnitOption($event->Prefix, 'TableName');
-
- $sql = 'SELECT ' . $id_field . '
- FROM ' . $table_name . '
- WHERE ' . $id_field . ' IN (' . implode(',', $ids) . ') AND AgentType <> ' . Agent::AGENT_TYPE_SYSTEM;
- $allowed_ids = $this->Conn->GetCol($sql);
-
- $event->setEventParam('ids', $allowed_ids);
- }
- }
- }
-
- /**
- * Cancels agents, that are currently running
- *
- * @param kEvent $event
- */
- function OnMassCancel(&$event)
- {
- $ids = $this->StoreSelectedIDs($event);
-
- if ($ids) {
- $object =& $event->getObject( Array ('skip_autoload' => true) );
- /* @var $object kDBItem */
-
- foreach ($ids as $id) {
- $object->Load($id);
-
- if ($object->GetDBField('LastRunStatus') == Agent::LAST_RUN_RUNNING) {
- // only changes status, doesn't affect currency running agents
- $object->SetDBField('LastRunStatus', Agent::LAST_RUN_FAILED);
- $object->Update();
- }
- }
- }
-
- $this->clearSelectedIDs($event);
- }
-
- /**
- * Runs selected agents
- *
- * @param kEvent $event
- */
- function OnRunAgents(&$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 <> ' . Agent::LAST_RUN_RUNNING,
- );
-
- $sql = $object->GetSelectSQL() . '
- WHERE (' . implode(') AND (', $where_clause) . ')';
- $agents = $this->Conn->Query($sql);
-
- foreach ($agents as $agent_data) {
- $agent_data['EventName'] = $agent_data['Event'];
- $this->Application->EventManager->runAgent($agent_data);
- }
- }
-
- $this->clearSelectedIDs($event);
- }
- }
\ No newline at end of file
Index: branches/5.2.x/core/units/scheduled_tasks/agents_config.php
===================================================================
diff -u -N
--- branches/5.2.x/core/units/scheduled_tasks/agents_config.php (revision 14880)
+++ branches/5.2.x/core/units/scheduled_tasks/agents_config.php (revision 0)
@@ -1,173 +0,0 @@
- 'agent',
- 'ItemClass' => Array ('class' => 'kDBItem', 'file' => '', 'build_event' => 'OnItemBuild'),
- 'ListClass' => Array ('class' => 'kDBList', 'file' => '', 'build_event' => 'OnListBuild'),
- 'EventHandlerClass' => Array ('class' => 'AgentEventHandler', 'file' => 'agent_eh.php', 'build_event' => 'OnBuild'),
- 'TagProcessorClass' => Array ('class' => 'kDBTagProcessor', 'file' => '', 'build_event' => 'OnBuild'),
-
- 'AutoLoad' => true,
-
- 'QueryString' => Array (
- 1 => 'id',
- 2 => 'Page',
- 3 => 'PerPage',
- 4 => 'event',
- 5 => 'mode',
- ),
-
- 'Hooks' => Array (
- Array (
- 'Mode' => hAFTER,
- 'Conditional' => false,
- 'HookToPrefix' => 'adm',
- 'HookToSpecial' => '*',
- 'HookToEvent' => Array ('OnAfterCacheRebuild'),
- 'DoPrefix' => '',
- 'DoSpecial' => '*',
- 'DoEvent' => 'OnRefreshAgents',
- ),
- ),
-
- 'IDField' => 'AgentId',
-
- 'TableName' => TABLE_PREFIX . 'Agents',
-
- 'TitleField' => 'AgentName',
-
- 'StatusField' => Array ('Status'),
-
- 'TitlePresets' => Array (
- 'default' => Array (
- 'new_status_labels' => Array ('agent' => '!la_title_AddingAgent!'),
- 'edit_status_labels' => Array ('agent' => '!la_title_EditingAgent!'),
- 'new_titlefield' => Array ('agent' => '!la_title_NewAgent!'),
- ),
-
- 'agent_list' => Array (
- 'prefixes' => Array ('agent_List'), 'format' => "!la_title_Agents!",
- 'toolbar_buttons' => Array ('new_item', 'edit', 'delete', 'approve', 'decline', 'process', 'cancel', 'view', 'dbl-click'),
- ),
-
- 'agent_edit' => Array ('prefixes' => Array ('agent'), 'format' => "#agent_status# '#agent_titlefield#'",
- 'toolbar_buttons' => Array ('select', 'cancel', 'reset_edit', 'prev', 'next'),
- ),
- ),
-
- 'PermSection' => Array('main' => 'in-portal:agents'),
-
- 'Sections' => Array (
- 'in-portal:agents' => Array (
- 'parent' => 'in-portal:website_setting_folder',
- 'icon' => 'conf_agents',
- 'label' => 'la_title_Agents',
- 'url' => Array('t' => 'agents/agent_list', 'pass' => 'm'),
- 'permissions' => Array('view', 'add', 'edit', 'delete'),
- 'priority' => 6,
- 'type' => stTREE,
- ),
- ),
-
- 'ListSQLs' => Array (
- '' => ' SELECT %1$s.* %2$s FROM %1$s',
- ),
-
- 'ListSortings' => Array (
- '' => Array (
- 'Sorting' => Array ('AgentName' => 'asc'),
- )
- ),
-
- 'Fields' => Array (
- 'AgentId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
-
- 'AgentName' => Array (
- 'type' => 'string', 'max_len' => 255,
- 'unique' => Array (),
- 'required' => 1, 'not_null' => 1, 'default' => ''
- ),
-
- 'AgentType' => Array (
- 'type' => 'int',
- 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_opt_User', 2 => 'la_opt_System'), 'use_phrases' => 1,
- 'required' => 1, 'not_null' => 1, 'default' => 1
- ),
- 'Status' => Array (
- 'type' => 'int',
- 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_opt_Active', 0 => 'la_opt_Disabled'), 'use_phrases' => 1,
- 'required' => 1, 'not_null' => 1, 'default' => 1
- ),
- 'Event' => Array (
- 'type' => 'string', 'max_len' => 255,
- 'formatter' => 'kFormatter', 'regexp' => '/^[a-z-]*[.]{0,1}[a-z-]*:On[A-Za-z0-9]*$/',
- 'required' => 1, 'not_null' => 1, 'default' => ''
- ),
- 'RunInterval' => Array ('type' => 'int', 'required' => 1, 'not_null' => 1, 'default' => 0),
- 'RunMode' => Array (
- 'type' => 'int',
- 'formatter' => 'kOptionsFormatter', 'options' => Array (reBEFORE => 'la_opt_Before', reAFTER => 'la_opt_After'), 'use_phrases' => 1,
- 'required' => 1, 'not_null' => 1, 'default' => 2
- ),
- 'LastRunOn' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => NULL),
-
- 'LastRunStatus' => Array (
- 'type' => 'int',
- 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_opt_Success', 0 => 'la_opt_Failed', 2 => 'la_opt_Running'), 'use_phrases' => 1,
- 'not_null' => 1, 'default' => 1
- ),
-
- 'NextRunOn' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'required' => 1, 'default' => '#NOW#'),
- 'RunTime' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
- 'Timeout' => Array (
- 'type' => 'int',
- 'min_value_inc' => 1,
- 'not_null' => 1, 'default' => NULL
- ),
- 'LastTimeoutOn' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => NULL),
- 'SiteDomainLimitation' => Array (
- 'type' => 'string', 'max_len' => 255,
- 'formatter' => 'kOptionsFormatter', 'options_sql' => 'SELECT %s FROM ' . TABLE_PREFIX . 'SiteDomains ORDER BY DomainName ASC', 'option_key_field' => 'DomainId', 'option_title_field' => 'DomainName', 'multiple' => 1,
- 'not_null' => 1, 'default' => ''
- ),
- ),
-
- 'Grids' => Array (
- 'Default' => Array (
- 'Icons' => Array (
- 'default' => 'icon16_item.png',
- 0 => 'icon16_disabled.png',
- ),
- 'Fields' => Array (
- 'AgentId' => Array ('title' => 'column:la_fld_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter', 'width' => 50, ),
- 'AgentName' => Array ('title' => 'column:la_fld_Name', 'filter_block' => 'grid_like_filter', 'width' => 200, ),
- 'AgentType' => Array ('title' => 'column:la_fld_Type', 'filter_block' => 'grid_options_filter', 'width' => 60, ),
- 'Event' => Array ('filter_block' => 'grid_like_filter', 'width' => 280, ),
- 'RunInterval' => Array ('filter_block' => 'grid_range_filter', 'width' => 100, ),
- 'RunMode' => Array ('filter_block' => 'grid_options_filter', 'width' => 85, ),
- 'LastRunOn' => Array ('filter_block' => 'grid_date_range_filter', 'width' => 145, ),
- 'RunTime' => Array ('filter_block' => 'grid_range_filter', 'width' => 145, ),
- 'LastRunStatus' => Array ('filter_block' => 'grid_options_filter', 'width' => 120, ),
- 'NextRunOn' => Array ('filter_block' => 'grid_date_range_filter', 'width' => 145, ),
- 'Status' => Array ('filter_block' => 'grid_options_filter', 'width' => 65, ),
- 'Timeout' => Array ('filter_block' => 'grid_range_filter', 'width' => 85, ),
- 'LastTimeoutOn' => Array ('filter_block' => 'grid_date_range_filter', 'width' => 145, ),
- 'SiteDomainLimitation' => Array ('data_block' => 'grid_picker_td', 'filter_block' => 'grid_multioptions_filter', 'separator' => ', ', 'width' => 145),
- ),
- ),
- ),
- );
\ No newline at end of file
Index: branches/5.2.x/core/admin_templates/scheduled_tasks/agent_edit.tpl
===================================================================
diff -u -N
--- branches/5.2.x/core/admin_templates/scheduled_tasks/agent_edit.tpl (revision 14880)
+++ branches/5.2.x/core/admin_templates/scheduled_tasks/agent_edit.tpl (revision 0)
@@ -1,97 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file