2008-10-22 Esteban Sanchez <estebans@artica.es>

* pandoradb.sql: Style correction.

        * godmode/agentes/agent_manager.php,
        godmode/agentes/configurar_agente.php: Removed inventory server
        configuration, which was moved to an enterprise hook. Style
        correction.

        * include/functions.php: Added slash to enterprise_include() path to
        work in some rare cases.

        * include/functions_db.php: Errors in process_sql() are shown using
        trigger_error(), so they can be disabled setting error_reporting().

        * include/functions_html.php: Added print_input_image() to show input
        image HTML elements.

        * index.php: Added enterprise includes and hooks to show the future
        dashboard. Style corrections.

        * godmode/reporting/map_builder.php: Fixed error when creating a map.
        Javascript fixes. Style correction.



git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1185 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
Esteban Sanchez 2008-10-22 12:01:36 +00:00
parent ee6f25ea52
commit 9aa3a05516
10 changed files with 117 additions and 88 deletions

View File

@ -1,4 +1,28 @@
2008-10-21 Esteban Sanchez <estebans@artica.es> 2008-10-22 Esteban Sanchez <estebans@artica.es>
* pandoradb.sql: Style correction.
* godmode/agentes/agent_manager.php,
godmode/agentes/configurar_agente.php: Removed inventory server
configuration, which was moved to an enterprise hook. Style
correction.
* include/functions.php: Added slash to enterprise_include() path to
work in some rare cases.
* include/functions_db.php: Errors in process_sql() are shown using
trigger_error(), so they can be disabled setting error_reporting().
* include/functions_html.php: Added print_input_image() to show input
image HTML elements.
* index.php: Added enterprise includes and hooks to show the future
dashboard. Style corrections.
* godmode/reporting/map_builder.php: Fixed error when creating a map.
Javascript fixes. Style correction.
2008-10-22 Esteban Sanchez <estebans@artica.es>
* pandoradb.sql: Removed inventory tables and fields from previous * pandoradb.sql: Removed inventory tables and fields from previous
commit. commit.

View File

@ -16,13 +16,13 @@
// along with this program; if not, write to the Free Software // along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
// ======================== // ========================
// AGENT GENERAL DATA FORM // AGENT GENERAL DATA FORM
// ======================== // ========================
// Load global vars // Load global vars
require("include/config.php"); require ('include/config.php');
enterprise_include ('godmode/agentes/agent_manager.php');
check_login (); check_login ();
@ -175,19 +175,8 @@ if ($id_prediction_server == 0) {
print_select_from_sql ('SELECT id_server, name FROM tserver WHERE prediction_server = 1 ORDER BY name', print_select_from_sql ('SELECT id_server, name FROM tserver WHERE prediction_server = 1 ORDER BY name',
'prediction_server', $id_prediction_server, '', $none, $none_value); 'prediction_server', $id_prediction_server, '', $none, $none_value);
// Inventory Server enterprise_hook ('inventory_server');
echo '<tr><td class="datos2"><b>'.__('Inventory Server').'</b>';
echo '<a href="#" class="tip">&nbsp;<span>'.__('You must select an Inventory Server for the Agent, so it can work properly with this kind of modules').'</span></a>';
echo '</td><td class="datos2">';
$none = '';
$none_value = '';
if ($id_inventory_server == 0) {
$none = $none_str;
$none_value = 0;
}
print_select_from_sql ('SELECT id_server, name FROM tserver WHERE inventory_server = 1 ORDER BY name',
'inventory_server', $id_inventory_server, '', $none, $none_value);
// Description // Description
echo '<tr><td class="datos2"><b>'; echo '<tr><td class="datos2"><b>';
echo __('Description'); echo __('Description');

View File

@ -104,7 +104,6 @@ $id_network_server = 0;
$id_plugin_server = 0; $id_plugin_server = 0;
$id_prediction_server = 0; $id_prediction_server = 0;
$id_wmi_server = 0; $id_wmi_server = 0;
$id_inventory_server = 0;
$grupo = 0; $grupo = 0;
$id_os = 0; $id_os = 0;
@ -125,7 +124,6 @@ if (isset ($_POST["create_agent"])) { // Create a new and shiny agent
$id_plugin_server = get_parameter_post ("plugin_server", 0); $id_plugin_server = get_parameter_post ("plugin_server", 0);
$id_prediction_server = get_parameter_post ("prediction_server", 0); $id_prediction_server = get_parameter_post ("prediction_server", 0);
$id_wmi_server = get_parameter_post ("wmi_server", 0); $id_wmi_server = get_parameter_post ("wmi_server", 0);
$id_inventory_server = get_parameter_post ("inventory_server", 0);
$id_os = get_parameter_post ("id_os", 0); $id_os = get_parameter_post ("id_os", 0);
$disabled = get_parameter_post ("disabled", 0); $disabled = get_parameter_post ("disabled", 0);
@ -138,11 +136,12 @@ if (isset ($_POST["create_agent"])) { // Create a new and shiny agent
$agent_created_ok = 0; $agent_created_ok = 0;
} else { } else {
$sql = sprintf ("INSERT INTO tagente $sql = sprintf ("INSERT INTO tagente
(nombre, direccion, id_grupo, intervalo, comentarios, modo, id_os, disabled, id_network_server, id_plugin_server, id_wmi_server, id_prediction_server, id_inventory_server, id_parent) (nombre, direccion, id_grupo, intervalo, comentarios, modo, id_os, disabled, id_network_server, id_plugin_server, id_wmi_server, id_prediction_server, id_parent)
VALUES VALUES
('%s', '%s', %d, %d, '%s', %d, %d, %d, %d, %d, %d, %d, %d, %d)", ('%s', '%s', %d, %d, '%s', %d, %d, %d, %d, %d, %d, %d, %d)",
$nombre_agente, $direccion_agente, $grupo, $intervalo, $comentarios, $modo, $id_os, $disabled, $id_network_server, $id_plugin_server, $id_wmi_server, $id_prediction_server, $id_inventory_server, $id_parent); $nombre_agente, $direccion_agente, $grupo, $intervalo, $comentarios, $modo, $id_os, $disabled, $id_network_server, $id_plugin_server, $id_wmi_server, $id_prediction_server, $id_parent);
$id_agente = process_sql ($sql, "insert_id"); $id_agente = process_sql ($sql, "insert_id");
enterprise_hook ('update_agent', array ($id_agente));
if ($id_agente !== false) { if ($id_agente !== false) {
$agent_created_ok = 1; $agent_created_ok = 1;
$agent_creation_error = ""; $agent_creation_error = "";
@ -501,7 +500,6 @@ if (isset($_POST["update_agent"])) { // if modified some agent paramenter
$id_plugin_server = (int) get_parameter_post ("plugin_server", 0); $id_plugin_server = (int) get_parameter_post ("plugin_server", 0);
$id_wmi_server = (int) get_parameter_post ("wmi_server", 0); $id_wmi_server = (int) get_parameter_post ("wmi_server", 0);
$id_prediction_server = (int) get_parameter_post ("prediction_server", 0); $id_prediction_server = (int) get_parameter_post ("prediction_server", 0);
$id_inventory_server = (int) get_parameter_post ("inventory_server", 0);
$id_parent = (int) get_parameter_post ("id_parent", 0); $id_parent = (int) get_parameter_post ("id_parent", 0);
//Verify if there is another agent with the same name but different ID //Verify if there is another agent with the same name but different ID
@ -522,26 +520,21 @@ if (isset($_POST["update_agent"])) { // if modified some agent paramenter
} }
//Now update the thing //Now update the thing
$sql = sprintf ("UPDATE tagente SET $sql = sprintf ("UPDATE tagente
disabled = %d, SET disabled = %d, id_parent = %d, id_os = %d, modo = %d,
id_parent = %d, nombre = '%s', direccion = '%s', id_grupo = %d,
id_os = %d, intervalo = %d, comentarios = '%s', id_network_server = %d,
modo = %d, id_plugin_server = %d, id_wmi_server = %d, id_prediction_server = %d
nombre = '%s', WHERE id_agente = %d",
direccion = '%s', $disabled, $id_parent, $id_os, $modo, $nombre_agente,
id_grupo = %d, $direccion_agente, $grupo, $intervalo, $comentarios,
intervalo = %d, $id_network_server, $id_plugin_server, $id_wmi_server,
comentarios = '%s', $id_prediction_server, $id_agente);
id_network_server = %d,
id_plugin_server = %d,
id_wmi_server = %d,
id_prediction_server = %d,
id_inventory_server = %d
WHERE id_agente = %d",$disabled,$id_parent,$id_os,$modo,$nombre_agente,$direccion_agente,$grupo,$intervalo,$comentarios,$id_network_server,$id_plugin_server,$id_wmi_server,$id_prediction_server,$id_inventory_server,$id_agente);
$result = process_sql ($sql); $result = process_sql ($sql);
if ($result === false) { if ($result === false) {
echo '<h3 class="error">'.__('There was a problem updating agent').'</h3>'; echo '<h3 class="error">'.__('There was a problem updating agent').'</h3>';
} else { } else {
enterprise_hook ('update_agent', array ($id_agente));
echo '<h3 class="suc">'.__('Agent successfully updated').'</h3>'; echo '<h3 class="suc">'.__('Agent successfully updated').'</h3>';
} }
} }
@ -554,12 +547,13 @@ if ((isset($agent_created_ok)) && ($agent_created_ok == 1)){
// Read agent data // Read agent data
// This should be at the end of all operation checks, to read the changess // This should be at the end of all operation checks, to read the changess
if (isset($_GET["id_agente"])) { if (isset($_GET["id_agente"])) {
$id_agente = get_parameter_get ("id_agente"); //This has been done in the beginning of the page, but if an agent was created, this id might change //This has been done in the beginning of the page, but if an agent was created, this id might change
$id_agente = get_parameter_get ("id_agente");
$id_grupo = dame_id_grupo ($id_agente); $id_grupo = dame_id_grupo ($id_agente);
if (give_acl ($config["id_user"], $id_grupo, "AW") != 1) { if (give_acl ($config["id_user"], $id_grupo, "AW") != 1) {
audit_db($config["id_user"],$REMOTE_ADDR, "ACL Violation","Trying to admin an agent without access"); audit_db($config["id_user"],$REMOTE_ADDR, "ACL Violation","Trying to admin an agent without access");
require ("general/noaccess.php"); require ("general/noaccess.php");
exit; exit;
} }
$row = get_db_row ('tagente', 'id_agente', $id_agente); $row = get_db_row ('tagente', 'id_agente', $id_agente);
@ -582,7 +576,6 @@ if (isset($_GET["id_agente"])) {
$id_network_server = $row["id_network_server"]; $id_network_server = $row["id_network_server"];
$id_prediction_server = $row["id_prediction_server"]; $id_prediction_server = $row["id_prediction_server"];
$id_wmi_server = $row["id_wmi_server"]; $id_wmi_server = $row["id_wmi_server"];
$id_inventory_server = $row["id_inventory_server"];
$modo = $row["modo"]; $modo = $row["modo"];
$id_os = $row["id_os"]; $id_os = $row["id_os"];
$disabled = $row["disabled"]; $disabled = $row["disabled"];
@ -903,12 +896,10 @@ switch ($tab) {
case "template": case "template":
require "agent_template.php"; require "agent_template.php";
break; break;
case "inventory":
enterprise_include ('godmode/agentes/inventory_manager.php');
break;
default: default:
//This will make sure that blank pages will have at least some if (enterprise_hook ('switch_agent_tab', array ($tab)))
//debug info in them //This will make sure that blank pages will have at least some
echo '<h3 class="error">DEBUG: Invalid tab specified in '.__FILE__.':'.__LINE__.'</h3>'; //debug info in them
echo '<h3 class="error">DEBUG: Invalid tab specified in '.__FILE__.':'.__LINE__.'</h3>';
} }
?> ?>

View File

@ -196,7 +196,7 @@ if ($id_profile || $new_profile) {
print_table ($table); print_table ($table);
echo '<div class="action-buttons" style="width: 400px">'; echo '<div class="action-buttons" style="width: '.$table->width.'">';
if ($new_profile) { if ($new_profile) {
print_submit_button (__('Create'), "crt", false, 'class="sub next"'); print_submit_button (__('Create'), "crt", false, 'class="sub next"');
print_input_hidden ('create_profile', 1); print_input_hidden ('create_profile', 1);

View File

@ -62,8 +62,8 @@ if ($create_layout) {
$sql = sprintf ('INSERT INTO tlayout (name, id_group, background, height, width) $sql = sprintf ('INSERT INTO tlayout (name, id_group, background, height, width)
VALUES ("%s", %d, "%s", %d, %d)', VALUES ("%s", %d, "%s", %d, %d)',
$name, $id_group, $background, $height, $width); $name, $id_group, $background, $height, $width);
$id_layout = process_sql ($sql, 'insert-id'); $id_layout = process_sql ($sql, 'insert_id');
if ($result !== false) { if ($id_layout !== false) {
echo '<h3 class="suc">'.__('Created successfully').'</h3>'; echo '<h3 class="suc">'.__('Created successfully').'</h3>';
} else { } else {
echo '<h3 class="err">'.__('Not created. Error inserting data').'</h3>'; echo '<h3 class="err">'.__('Not created. Error inserting data').'</h3>';
@ -160,7 +160,7 @@ if ($create_layout_data) {
$layout_data_id_agent_module, $layout_data_id_agent_module,
$layout_data_parent_item, $layout_data_period * 3600, $layout_data_parent_item, $layout_data_period * 3600,
$layout_data_width, $layout_data_height); $layout_data_width, $layout_data_height);
$result = process_sql ($sql, 'insert-id'); $result = process_sql ($sql, 'insert_id');
if ($result !== false) { if ($result !== false) {
echo '<h3 class="suc">'.__('Created successfully').'</h3>'; echo '<h3 class="suc">'.__('Created successfully').'</h3>';
@ -252,9 +252,11 @@ if ($id_layout) {
$height = $layout['height']; $height = $layout['height'];
} }
echo "<h2>".__('Reporting')." &gt; ".__('Map builder');
pandora_help ("map_builder");
echo "</h2>";
if (! $edit_layout && ! $id_layout) { if (! $edit_layout && ! $id_layout) {
echo "<h2>".__('Reporting')." &gt; ".__('Map builder')."</h2>";
$table->width = '500px'; $table->width = '500px';
$table->data = array (); $table->data = array ();
$table->head = array (); $table->head = array ();
@ -265,9 +267,9 @@ if (! $edit_layout && ! $id_layout) {
$table->align[2] = 'center'; $table->align[2] = 'center';
$maps = get_db_all_rows_in_table ('tlayout','name'); $maps = get_db_all_rows_in_table ('tlayout','name');
if (!$maps) if (!$maps) {
echo '<div class="nf">'.('No maps defined').'</div>'; echo '<div class="nf">'.('No maps defined').'</div>';
else { } else {
foreach ($maps as $map) { foreach ($maps as $map) {
$data = array (); $data = array ();
@ -288,11 +290,6 @@ if (! $edit_layout && ! $id_layout) {
echo '</form>'; echo '</form>';
echo '</div>'; echo '</div>';
} else { } else {
echo "<h2>".__('Reporting')." &gt; ";
echo __('Map builder');
pandora_help ("map_builder");
echo "</h2>";
$backgrounds_list = list_files ('images/console/background/', "jpg", 1, 0); $backgrounds_list = list_files ('images/console/background/', "jpg", 1, 0);
$backgrounds_list = array_merge ($backgrounds_list, list_files ('images/console/background/', "png", 1, 0)); $backgrounds_list = array_merge ($backgrounds_list, list_files ('images/console/background/', "png", 1, 0));
$groups = get_user_groups ($config['id_user']); $groups = get_user_groups ($config['id_user']);
@ -450,7 +447,7 @@ function agent_changed (event, id_agent, selected) {
id_agent = this.value; id_agent = this.value;
$('#form_layout_data_editor #module').attr ('disabled', 1); $('#form_layout_data_editor #module').attr ('disabled', 1);
$('#form_layout_data_editor #module').empty (); $('#form_layout_data_editor #module').empty ();
$('#form_layout_data_editor #module').append (new Option ("<?php echo __('Loading'); ?>...", 0)); $('#form_layout_data_editor #module').append ($('<option></option>').html ("<?php echo __('Loading'); ?>...").attr ("value", 0));
jQuery.post ('ajax.php', jQuery.post ('ajax.php',
{page: "operation/agentes/ver_agente", {page: "operation/agentes/ver_agente",
get_agent_modules_json: 1, get_agent_modules_json: 1,
@ -458,10 +455,10 @@ function agent_changed (event, id_agent, selected) {
}, },
function (data) { function (data) {
$('#form_layout_data_editor #module').empty (); $('#form_layout_data_editor #module').empty ();
$('#form_layout_data_editor #module').append (new Option ("--", 0)); $('#form_layout_data_editor #module').append ($('<option></option>').html ("--").attr ("value", 0));
jQuery.each (data, function (i, val) { jQuery.each (data, function (i, val) {
s = html_entity_decode (val['nombre']); s = html_entity_decode (val['nombre']);
$('#form_layout_data_editor #module').append (new Option (s, val['id_agente_modulo'])); $('#form_layout_data_editor #module').append ($('<option></option>').html (s).attr ("value", val['id_agente_modulo']));
$('#form_layout_data_editor #module').fadeIn ('normal'); $('#form_layout_data_editor #module').fadeIn ('normal');
}); });
if (selected != undefined) if (selected != undefined)

View File

@ -1220,7 +1220,9 @@ function enterprise_hook ($function_name, $parameters = false) {
function enterprise_include ($filename) { function enterprise_include ($filename) {
global $config; global $config;
// Load enterprise extensions // Load enterprise extensions
$filepath = $config["homedir"].ENTERPRISE_DIR.'/'.$filename; $filepath = realpath ($config["homedir"].'/'.ENTERPRISE_DIR.'/'.$filename);
if ($filepath === false)
return ENTERPRISE_NOT_HOOK;
if (file_exists ($filepath)) { if (file_exists ($filepath)) {
include ($filepath); include ($filepath);
return true; return true;

View File

@ -1434,7 +1434,7 @@ function process_sql ($sql, $rettype = "affected_rows") {
} else { } else {
$result = mysql_query ($sql); $result = mysql_query ($sql);
if ($result === false) { if ($result === false) {
echo '<strong>Error:</strong> process_sql ("'.$sql.'") :'. mysql_error ().'<br />'; trigger_error (mysql_error ());
return false; return false;
} elseif ($result === true) { } elseif ($result === true) {
if ($rettype == "insert_id") { if ($rettype == "insert_id") {

View File

@ -209,6 +209,22 @@ function print_input_text ($name, $value, $alt = '', $size = 50, $maxlength = 0,
echo $output; echo $output;
} }
/**
* Render an input image element.
*
* @param string $name Input name.
* @param string $src Image source.
* @param string $value Input value.
* @param string $style HTML style property.
* @param bool $return Whether to return an output string or echo now (optional, echo by default).
*/
function print_input_image ($name, $src, $value, $style = '', $return = false) {
$output = '<input id="image-'.$name.'" src="'.$src.'" style="'.$style.'" name="'.$name.'" type="image" value="'.$value.'" />';
if ($return)
return $output;
echo $output;
}
/** /**
* Render an input hidden element. * Render an input hidden element.

View File

@ -66,6 +66,11 @@ require_once ("include/functions_db.php");
//We should require this or you might end up with some empty strings //We should require this or you might end up with some empty strings
load_extensions ($config['extensions']); load_extensions ($config['extensions']);
/* Enterprise support */
if (file_exists ("enterprise/load_enterprise.php")) {
include ("enterprise/load_enterprise.php");
}
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>'; echo '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>';
// Pure mode (without menu, header and footer). // Pure mode (without menu, header and footer).
@ -101,20 +106,25 @@ if ($intervalo > 0){
} }
} }
enterprise_include ('index.php');
echo '<title>Pandora FMS - '.__('the Flexible Monitoring System').'</title> echo '<title>Pandora FMS - '.__('the Flexible Monitoring System').'</title>
<meta http-equiv="expires" content="0"> <meta http-equiv="expires" content="0" />
<meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="resource-type" content="document"> <meta name="resource-type" content="document" />
<meta name="distribution" content="global"> <meta name="distribution" content="global" />
<meta name="author" content="Sancho Lerena"> <meta name="author" content="Sancho Lerena" />
<meta name="copyright" content="This is GPL software. Created by Sancho Lerena and others"> <meta name="copyright" content="This is GPL software. Created by Sancho Lerena and others" />
<meta name="keywords" content="pandora, monitoring, system, GPL, software"> <meta name="keywords" content="pandora, monitoring, system, GPL, software" />
<meta name="robots" content="index, follow"> <meta name="robots" content="index, follow" />
<link rel="icon" href="images/pandora.ico" type="image/ico"> <link rel="icon" href="images/pandora.ico" type="image/ico" />
<link rel="stylesheet" href="include/styles/'.$config["style"].'.css" type="text/css"> <link rel="stylesheet" href="include/styles/'.$config["style"].'.css" type="text/css" />
<script type="text/javascript" src="include/javascript/wz_jsgraphics.js"></script> <script type="text/javascript" src="include/javascript/wz_jsgraphics.js"></script>
<script type="text/javascript" src="include/javascript/pandora.js"></script> <script type="text/javascript" src="include/javascript/pandora.js"></script>';
</head>';
enterprise_hook ('load_html_header');
echo '</head>';
// Show custom background // Show custom background
if ($config["pure"] == 0) { if ($config["pure"] == 0) {
@ -130,7 +140,7 @@ if (! isset ($_SESSION['id_usuario']) && isset ($_GET["login"])) {
$nick = get_parameter_post ("nick"); $nick = get_parameter_post ("nick");
$pass = get_parameter_post ("pass"); $pass = get_parameter_post ("pass");
// Connect to Database // Connect to Database
$sql = sprintf("SELECT `id_usuario`, `password` FROM `tusuario` WHERE `id_usuario` = '%s'",$nick); $sql = sprintf ("SELECT `id_usuario`, `password` FROM `tusuario` WHERE `id_usuario` = '%s'", $nick);
$row = get_db_row_sql ($sql); $row = get_db_row_sql ($sql);
// For every registry // For every registry
@ -194,20 +204,18 @@ if (isset ($_GET["bye"])) {
exit; exit;
} }
$page = ""; $page = "";
if (isset ($_GET["sec2"])){ $sec2 = "";
$sec = "";
if (isset ($_GET["sec2"])) {
$sec2 = get_parameter_get ('sec2'); $sec2 = get_parameter_get ('sec2');
$sec2 = parameter_extra_clean ($sec2); $sec2 = parameter_extra_clean ($sec2);
$page = $sec2; $page = $sec2;
} else {
$sec2 = "";
} }
if (isset ($_GET["sec"])){ if (isset ($_GET["sec"])) {
$sec = get_parameter_get ('sec'); $sec = get_parameter_get ('sec');
$sec = parameter_extra_clean ($sec); $sec = parameter_extra_clean ($sec);
$page = $sec2; $page = $sec2;
} else {
$sec = "";
} }
// http://es2.php.net/manual/en/ref.session.php#64525 // http://es2.php.net/manual/en/ref.session.php#64525
@ -226,7 +234,7 @@ if ($config["pure"] == 0) {
} }
// Main block of content // Main block of content
if ($config["pure"] == 0){ if ($config["pure"] == 0) {
echo '<div id="main">'; echo '<div id="main">';
} }
@ -247,7 +255,9 @@ if ($page != "") {
echo '<br><b class="error">'.__('Sorry! I can\'t find the page!').'</b>'; echo '<br><b class="error">'.__('Sorry! I can\'t find the page!').'</b>';
} }
} else { } else {
require ("general/logon_ok.php"); //default if (enterprise_hook ('load_logon_ok') === ENTERPRISE_NOT_HOOK) {
require ("general/logon_ok.php");
}
} }
if ($config["pure"] == 0) { if ($config["pure"] == 0) {

View File

@ -716,7 +716,7 @@ CREATE TABLE IF NOT EXISTS `tplanned_downtime` (
`description` TEXT NOT NULL, `description` TEXT NOT NULL,
`date_from` bigint(20) NOT NULL default '0', `date_from` bigint(20) NOT NULL default '0',
`date_to` bigint(20) NOT NULL default '0', `date_to` bigint(20) NOT NULL default '0',
`executed` tinyint(1) UNSIGNED NOT NULL default 0, `executed` tinyint(1) UNSIGNED NOT NULL default 0,
PRIMARY KEY ( `id` ) PRIMARY KEY ( `id` )
) ENGINE = InnoDB DEFAULT CHARSET=utf8; ) ENGINE = InnoDB DEFAULT CHARSET=utf8;