Attached Files |
agent_filter_by_site_domain_v1.patch [^] (5,930 bytes) 2010-10-07 06:22
[Show Content]
Index: admin_templates/agents/agent_edit.tpl
===================================================================
--- admin_templates/agents/agent_edit.tpl (revision 13986)
+++ admin_templates/agents/agent_edit.tpl (working copy)
@@ -83,6 +83,8 @@
<inp2:m_RenderElement name="inp_edit_date_time" prefix="agent" field="NextRunOn" title="la_fld_NextRunOn"/>
<inp2:m_RenderElement name="inp_label" prefix="agent" field="RunTime" title="la_fld_RunTime"/>
+ <inp2:m_RenderElement name="inp_edit_checkboxes" prefix="agent" field="SiteDomainLimitation" title="la_fld_SiteDomainLimitation"/>
+
<inp2:m_RenderElement name="inp_edit_filler"/>
</table>
</div>
Index: install/install_schema.sql
===================================================================
--- install/install_schema.sql (revision 13986)
+++ install/install_schema.sql (working copy)
@@ -664,26 +664,28 @@
);
CREATE TABLE Agents (
- AgentId int(11) NOT NULL auto_increment,
- AgentName varchar(255) NOT NULL default '',
- AgentType tinyint(3) unsigned NOT NULL default '1',
- Status tinyint(3) unsigned NOT NULL default '1',
- Event varchar(255) NOT NULL default '',
- RunInterval int(10) unsigned NOT NULL default '0',
- RunMode tinyint(3) unsigned NOT NULL default '2',
- LastRunOn int(10) unsigned default NULL,
- LastRunStatus tinyint(3) unsigned NOT NULL default '1',
- NextRunOn int(11) default NULL,
- RunTime int(10) unsigned NOT NULL default '0',
- PRIMARY KEY (AgentId),
- KEY Status (Status),
+ AgentId int(11) NOT NULL AUTO_INCREMENT,
+ AgentName varchar(255) NOT NULL DEFAULT '',
+ AgentType tinyint(3) unsigned NOT NULL DEFAULT '1',
+ `Status` tinyint(3) unsigned NOT NULL DEFAULT '1',
+ `Event` varchar(255) NOT NULL DEFAULT '',
+ RunInterval int(10) unsigned NOT NULL DEFAULT '0',
+ RunMode tinyint(3) unsigned NOT NULL DEFAULT '2',
+ LastRunOn int(10) unsigned DEFAULT NULL,
+ LastRunStatus tinyint(3) unsigned NOT NULL DEFAULT '1',
+ NextRunOn int(11) DEFAULT NULL,
+ RunTime int(10) unsigned NOT NULL DEFAULT '0',
+ SiteDomainLimitation varchar(255) NOT NULL,
+ PRIMARY KEY (AgentId),
+ KEY `Status` (`Status`),
KEY RunInterval (RunInterval),
KEY RunMode (RunMode),
KEY AgentType (AgentType),
KEY LastRunOn (LastRunOn),
KEY LastRunStatus (LastRunStatus),
KEY RunTime (RunTime),
- KEY NextRunOn (NextRunOn)
+ KEY NextRunOn (NextRunOn),
+ KEY SiteDomainLimitation (SiteDomainLimitation)
);
CREATE TABLE SpellingDictionary (
Index: install/upgrades.sql
===================================================================
--- install/upgrades.sql (revision 13986)
+++ install/upgrades.sql (working copy)
@@ -1976,4 +1976,9 @@
ALTER TABLE Drafts CHANGE CreatedById CreatedById INT(11) NULL DEFAULT NULL;
UPDATE Drafts SET CreatedById = NULL WHERE CreatedById = 0;
-ALTER TABLE ItemReview CHANGE CreatedById CreatedById INT(11) NULL DEFAULT NULL;
\ No newline at end of file
+ALTER TABLE ItemReview CHANGE CreatedById CreatedById INT(11) NULL DEFAULT NULL;
+
+# ===== v 5.1.1-B2 =====
+ALTER TABLE Agents
+ ADD SiteDomainLimitation VARCHAR(255) NOT NULL,
+ ADD INDEX (SiteDomainLimitation);
\ No newline at end of file
Index: kernel/event_manager.php
===================================================================
--- kernel/event_manager.php (revision 13986)
+++ kernel/event_manager.php (working copy)
@@ -130,6 +130,7 @@
'LastRunOn' => (int)$agent_data['LastRunOn'],
'NextRunOn' => (int)$agent_data['NextRunOn'],
'Status' => $agent_data['Status'],
+ 'SiteDomainLimitation' => $agent_data['SiteDomainLimitation'],
);
}
}
@@ -751,7 +752,21 @@
$user_id = $this->Application->RecallVar('user_id');
$this->Application->StoreVar('user_id', USER_ROOT, true); // to prevent permission checking inside events, true for optional storage
+ $site_helper =& $this->Application->recallObject('SiteHelper');
+ /* @var $site_helper SiteHelper */
+
+ $site_domain_id = $site_helper->getDomainByName('DomainName', DOMAIN);
+
foreach ($events_source as $short_name => $event_data) {
+ if ( $site_domain_id && $event_data['SiteDomainLimitation'] != '' ) {
+ $site_domains = explode('|', substr($event_data['SiteDomainLimitation'], 1, -1));
+
+ if ( !in_array($site_domain_id, $site_domains) ) {
+ // agent isn't allowed on this site domain
+ continue;
+ }
+ }
+
$next_run = $event_data['NextRunOn'];
if ($next_run && ($next_run > adodb_mktime())) {
Index: units/agents/agents_config.php
===================================================================
--- units/agents/agents_config.php (revision 13986)
+++ units/agents/agents_config.php (working copy)
@@ -133,6 +133,11 @@
'NextRunOn' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'required' => 1, 'default' => '#NOW#'),
'RunTime' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
+ '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 (
@@ -152,6 +157,7 @@
'LastRunOn' => Array ('title' => 'la_col_LastRunOn', 'filter_block' => 'grid_date_range_filter', 'width' => 145, ),
'LastRunStatus' => Array ('title' => 'la_col_LastRunStatus', 'filter_block' => 'grid_options_filter', 'width' => 120, ),
'NextRunOn' => Array ('title' => 'la_col_NextRunOn', 'filter_block' => 'grid_date_range_filter', 'width' => 145, ),
+ 'SiteDomainLimitation' => Array ('title' => 'la_col_SiteDomainLimitation', 'data_block' => 'grid_picker_td', 'filter_block' => 'grid_options_filter', 'separator' => ', ', 'width' => 145),
),
),
),
agent_filter_by_site_domain_v2_520.patch [^] (9,431 bytes) 2011-10-03 04:13
[Show Content]
Index: admin_templates/agents/agent_edit.tpl
===================================================================
--- admin_templates/agents/agent_edit.tpl (revision 14590)
+++ admin_templates/agents/agent_edit.tpl (working copy)
@@ -67,22 +67,24 @@
<inp2:m_if check="agent_Field" name="AgentType" equals_to="1" db="db">
<inp2:m_RenderElement name="inp_edit_box" prefix="agent" field="AgentName" title="la_fld_Name"/>
<inp2:m_RenderElement name="inp_label" prefix="agent" field="AgentType" title="la_fld_Type" has_empty="1"/>
- <inp2:m_RenderElement name="inp_edit_radio" prefix="agent" field="Status" title="la_fld_Status" has_empty="1"/>
- <inp2:m_RenderElement name="inp_edit_box" prefix="agent" field="Event" title="la_fld_Event"/>
+ <inp2:m_RenderElement name="inp_edit_radio" prefix="agent" field="Status" has_empty="1"/>
+ <inp2:m_RenderElement name="inp_edit_box" prefix="agent" field="Event"/>
<inp2:m_else/>
<inp2:m_RenderElement name="inp_label" prefix="agent" field="AgentName" title="la_fld_Name"/>
<inp2:m_RenderElement name="inp_label" prefix="agent" field="AgentType" title="la_fld_Type" has_empty="1"/>
- <inp2:m_RenderElement name="inp_edit_radio" prefix="agent" field="Status" title="la_fld_Status" has_empty="1"/>
- <inp2:m_RenderElement name="inp_label" prefix="agent" field="Event" title="la_fld_Event"/>
+ <inp2:m_RenderElement name="inp_edit_radio" prefix="agent" field="Status" has_empty="1"/>
+ <inp2:m_RenderElement name="inp_label" prefix="agent" field="Event"/>
</inp2:m_if>
- <inp2:m_RenderElement name="inp_edit_box" prefix="agent" field="RunInterval" title="la_fld_RunInterval"/>
- <inp2:m_RenderElement name="inp_edit_options" prefix="agent" field="RunMode" title="la_fld_RunMode" has_empty="1"/>
- <inp2:m_RenderElement name="inp_label" prefix="agent" field="LastRunOn" title="la_fld_LastRunOn"/>
- <inp2:m_RenderElement name="inp_label" prefix="agent" field="LastRunStatus" title="la_fld_LastRunStatus"/>
- <inp2:m_RenderElement name="inp_edit_date_time" prefix="agent" field="NextRunOn" title="la_fld_NextRunOn"/>
- <inp2:m_RenderElement name="inp_label" prefix="agent" field="RunTime" title="la_fld_RunTime"/>
+ <inp2:m_RenderElement name="inp_edit_box" prefix="agent" field="RunInterval"/>
+ <inp2:m_RenderElement name="inp_edit_options" prefix="agent" field="RunMode" has_empty="1"/>
+ <inp2:m_RenderElement name="inp_label" prefix="agent" field="LastRunOn"/>
+ <inp2:m_RenderElement name="inp_label" prefix="agent" field="LastRunStatus"/>
+ <inp2:m_RenderElement name="inp_edit_date_time" prefix="agent" field="NextRunOn"/>
+ <inp2:m_RenderElement name="inp_label" prefix="agent" field="RunTime"/>
+ <inp2:m_RenderElement name="inp_edit_checkboxes" prefix="agent" field="SiteDomainLimitation"/>
+
<inp2:m_RenderElement name="inp_edit_filler"/>
</table>
</div>
Index: install/english.lang
===================================================================
--- install/english.lang (revision 14601)
+++ install/english.lang (working copy)
@@ -550,6 +550,7 @@
<PHRASE Label="la_fld_SessionLogId" Module="Core" Type="1" Column="U2Vzc2lvbiBMb2cgSUQ=">U2Vzc2lvbiBMb2cgSUQ=</PHRASE>
<PHRASE Label="la_fld_ShortIsoCode" Module="Core" Type="1" Column="U2hvcnQgSVNPIENvZGU=">U2hvcnQgSVNPIENvZGU=</PHRASE>
<PHRASE Label="la_fld_SimpleSearch" Module="Core" Type="1">U2ltcGxlIFNlYXJjaA==</PHRASE>
+ <PHRASE Label="la_fld_SiteDomainLimitation" Module="Core" Type="1" Column="U2l0ZSBEb21haW4gTGltaXRhdGlvbg==">U2l0ZSBEb21haW4gTGltaXRhdGlvbg==</PHRASE>
<PHRASE Label="la_fld_SkinName" Module="Core" Type="1" Column="TmFtZQ==">TmFtZQ==</PHRASE>
<PHRASE Label="la_fld_SkipFirstRow" Module="Core" Type="1">U2tpcCBGaXJzdCBSb3c=</PHRASE>
<PHRASE Label="la_fld_SortValues" Module="Core" Type="1">U29ydCBWYWx1ZXM=</PHRASE>
Index: install/install_schema.sql
===================================================================
--- install/install_schema.sql (revision 14590)
+++ install/install_schema.sql (working copy)
@@ -668,6 +668,7 @@
LastRunStatus tinyint(3) unsigned NOT NULL default '1',
NextRunOn int(11) default NULL,
RunTime int(10) unsigned NOT NULL default '0',
+ SiteDomainLimitation varchar(255) NOT NULL,
PRIMARY KEY (AgentId),
KEY Status (Status),
KEY RunInterval (RunInterval),
@@ -676,7 +677,8 @@
KEY LastRunOn (LastRunOn),
KEY LastRunStatus (LastRunStatus),
KEY RunTime (RunTime),
- KEY NextRunOn (NextRunOn)
+ KEY NextRunOn (NextRunOn),
+ KEY SiteDomainLimitation (SiteDomainLimitation)
);
CREATE TABLE SpellingDictionary (
Index: install/upgrades.sql
===================================================================
--- install/upgrades.sql (revision 14601)
+++ install/upgrades.sql (working copy)
@@ -2107,4 +2107,8 @@
SET DirectLinkAuthKey = SUBSTRING( MD5( CONCAT(CategoryId, ':', ParentId, ':', l<%PRIMARY_LANGUAGE%>_Name, ':b38') ), 1, 20)
WHERE DirectLinkAuthKey = '';
-INSERT INTO ConfigurationValues VALUES(DEFAULT, 'ExcludeTemplateSectionsFromSearch', '0', 'In-Portal', 'in-portal:configure_categories', 'la_title_General', 'la_config_ExcludeTemplateSectionsFromSearch', 'checkbox', '', '', 10.15, 0, 0, NULL);
\ No newline at end of file
+INSERT INTO ConfigurationValues VALUES(DEFAULT, 'ExcludeTemplateSectionsFromSearch', '0', 'In-Portal', 'in-portal:configure_categories', 'la_title_General', 'la_config_ExcludeTemplateSectionsFromSearch', 'checkbox', '', '', 10.15, 0, 0, NULL);
+
+ALTER TABLE Agents
+ ADD SiteDomainLimitation VARCHAR(255) NOT NULL,
+ ADD INDEX (SiteDomainLimitation);
Index: kernel/kbase.php
===================================================================
--- kernel/kbase.php (revision 14599)
+++ kernel/kbase.php (working copy)
@@ -775,7 +775,8 @@
{
$field_options = $this->GetFieldOptions($field, $is_virtual);
- if ( !$field_options ) {
+ if ( !$field_options && strpos($field, '#') === false ) {
+ // we use "#FIELD_NAME#" as field for InputName tag in JavaScript, so ignore it
$form_name = $this->getFormName();
trigger_error('Field "<strong>' . $field . '</strong>" is not defined' . ($form_name ? ' on "<strong>' . $this->getFormName() . '</strong>" form' : '') . ' in "<strong>' . $this->Prefix . '</strong>" unit config', E_USER_WARNING);
@@ -803,7 +804,7 @@
$formatter =& $this->Application->recallObject($formatter_class);
/* @var $formatter kFormatter */
-
+
return $formatter->Format($value, $name, $this, $format);
}
@@ -853,7 +854,7 @@
if ( isset($this->Fields[$field]['formatter']) ) {
$formatter =& $this->Application->recallObject($this->Fields[$field]['formatter']);
/* @var $formatter kFormatter */
-
+
$formatter->UpdateSubFields($field, $this->GetDBField($field), $this->Fields[$field], $this);
}
}
Index: kernel/managers/agent_manager.php
===================================================================
--- kernel/managers/agent_manager.php (revision 14590)
+++ kernel/managers/agent_manager.php (working copy)
@@ -94,6 +94,7 @@
'LastRunOn' => (int)$agent_data['LastRunOn'],
'NextRunOn' => (int)$agent_data['NextRunOn'],
'Status' => $agent_data['Status'],
+ 'SiteDomainLimitation' => $agent_data['SiteDomainLimitation'],
);
}
}
@@ -159,7 +160,21 @@
$user_id = $this->Application->RecallVar('user_id');
$this->Application->StoreVar('user_id', USER_ROOT, true); // to prevent permission checking inside events, true for optional storage
+ $site_helper =& $this->Application->recallObject('SiteHelper');
+ /* @var $site_helper SiteHelper */
+
+ $site_domain_id = $site_helper->getDomainByName('DomainName', DOMAIN);
+
foreach ($events_source as $short_name => $event_data) {
+ if ( $site_domain_id && $event_data['SiteDomainLimitation'] != '' ) {
+ $site_domains = explode('|', substr($event_data['SiteDomainLimitation'], 1, -1));
+
+ if ( !in_array($site_domain_id, $site_domains) ) {
+ // agent isn't allowed on this site domain
+ continue;
+ }
+ }
+
$next_run = $event_data['NextRunOn'];
if ($next_run && ($next_run > adodb_mktime())) {
Index: units/agents/agents_config.php
===================================================================
--- units/agents/agents_config.php (revision 14590)
+++ units/agents/agents_config.php (working copy)
@@ -133,6 +133,11 @@
'NextRunOn' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'required' => 1, 'default' => '#NOW#'),
'RunTime' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
+ '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 (
@@ -153,6 +158,7 @@
'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, ),
+ 'SiteDomainLimitation' => Array ('data_block' => 'grid_picker_td', 'filter_block' => 'grid_multioptions_filter', 'separator' => ', ', 'width' => 145),
),
),
),
|