2012-02-23 Vanessa Gil <vanessa.gil@artica.es>
* pandoradb.sql pandoradb.oracle.sql pandoradb.postgreSQL.sql extras/pandoradb_migrate_4.0.x_to_4.1.mysql.sql extras/pandoradb_migrate_4.0.x_to_4.1.oracle.sql extras/pandoradb_migrate_4.0.x_to_4.1.postgreSQL.sql: Added column 'id_graph_template' to 'tgraph' table. * include/functions_reporting.php: Added function to apply templates for combined graphs. * godmode/reporting/graph_template_wizard.php: Added file. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5634 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
parent
f5c89c4a3d
commit
94381b8b45
|
@ -1,3 +1,17 @@
|
|||
2012-02-23 Vanessa Gil <vanessa.gil@artica.es>
|
||||
* pandoradb.sql
|
||||
pandoradb.oracle.sql
|
||||
pandoradb.postgreSQL.sql
|
||||
extras/pandoradb_migrate_4.0.x_to_4.1.mysql.sql
|
||||
extras/pandoradb_migrate_4.0.x_to_4.1.oracle.sql
|
||||
extras/pandoradb_migrate_4.0.x_to_4.1.postgreSQL.sql: Added
|
||||
column 'id_graph_template' to 'tgraph' table.
|
||||
|
||||
* include/functions_reporting.php: Added function to apply
|
||||
templates for combined graphs.
|
||||
|
||||
* godmode/reporting/graph_template_wizard.php: Added file.
|
||||
|
||||
2012-02-22 Juan Manuel Ramon <juanmanuel.ramon@artica.es>
|
||||
|
||||
* pandoradb.sql
|
||||
|
|
|
@ -199,3 +199,8 @@ ALTER TABLE treport_content_item ADD FOREIGN KEY (`id_report_content`) REFERENCE
|
|||
-- Table `treport`
|
||||
-- -----------------------------------------------------
|
||||
ALTER TABLE treport ADD COLUMN `id_template` INTEGER UNSIGNED DEFAULT 0;
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `tgraph`
|
||||
-- -----------------------------------------------------
|
||||
ALTER TABLE `tgraph` ADD COLUMN `id_graph_template` int(11) NOT NULL DEFAULT 0;
|
||||
|
|
|
@ -192,3 +192,8 @@ ALTER TABLE treport_content_item ADD FOREIGN KEY (id_report_content) REFERENCES
|
|||
-- Table `treport`
|
||||
-- -----------------------------------------------------
|
||||
ALTER TABLE treport ADD (id_template NUMBER(10, 0) default 0 NOT NULL);
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `tgraph`
|
||||
-- -----------------------------------------------------
|
||||
ALTER TABLE tgraph ADD (id_graph_template NUMBER(11, 0) default 0 NOT NULL);
|
||||
|
|
|
@ -177,3 +177,8 @@ CREATE TABLE IF NOT EXISTS "tgraph_source_template" (
|
|||
-- Table `treport`
|
||||
-- -----------------------------------------------------
|
||||
ALTER TABLE "treport" ADD COLUMN "id_template" INTEGER NOT NULL default 0;
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `tgraph`
|
||||
-- -----------------------------------------------------
|
||||
ALTER TABLE "tgraph" ADD COLUMN "id_graph_template" INTEGER NOT NULL default 0;
|
||||
|
|
|
@ -0,0 +1,423 @@
|
|||
<?php
|
||||
// Pandora FMS - http://pandorafms.com
|
||||
// ==================================================
|
||||
// Copyright (c) 2005-2010 Artica Soluciones Tecnologicas
|
||||
// Please see http://pandorafms.org for full contribution list
|
||||
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation for version 2.
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
global $config;
|
||||
|
||||
// Login check
|
||||
check_login ();
|
||||
|
||||
if (! check_acl ($config['id_user'], 0, "IW")) {
|
||||
db_pandora_audit("ACL Violation",
|
||||
"Trying to access template wizard");
|
||||
require ("general/noaccess.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
$id_template = get_parameter('id_template');
|
||||
$agent_filter = (string) get_parameter ('agent_filter', '');
|
||||
$agent_filter2 = (string) get_parameter ('agent_filter2', '');
|
||||
$template_selected = get_parameter ('template_selected');
|
||||
$cleanup_template = get_parameter('cleanup_template', 0);
|
||||
$action_wizard = get_parameter ('action_wizard');
|
||||
$template = get_parameter('templates');
|
||||
|
||||
if (is_ajax()) {
|
||||
$cleanup_template = get_parameter('cleanup_template', 0);
|
||||
$id_template_cleanup = get_parameter('id_template_cleanup');
|
||||
|
||||
// Cleanup applied template from database
|
||||
if ($cleanup_template){
|
||||
$sql = "SELECT id_graph FROM tgraph WHERE id_graph_template=$id_template_cleanup";
|
||||
$id_graphs = db_get_all_rows_sql($sql);
|
||||
|
||||
$result = db_process_sql_delete('tgraph', array('id_graph_template' => $id_template_cleanup));
|
||||
|
||||
if($result) {
|
||||
foreach ($id_graphs as $id_graph) {
|
||||
$result_aux = db_process_sql_delete('tgraph_source', array('id_graph' => $id_graph));
|
||||
}
|
||||
echo 1;
|
||||
} else {
|
||||
echo 0;
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Result for cleanup functionality
|
||||
echo '<div id="sucess_cleanup" style="display:none">';
|
||||
ui_print_success_message(__('Cleanup sucessfully'));
|
||||
echo '</div>';
|
||||
echo '<div id="wrong_cleanup" style="display:none">';
|
||||
ui_print_error_message(__('Cleanup error'));
|
||||
echo '</div>';
|
||||
|
||||
$buttons['template_list'] = '<a href="index.php?sec=greporting&sec2=godmode/reporting/graph_template_list">'
|
||||
. html_print_image ("images/god6.png", true, array ("title" => __('Template list')))
|
||||
. '</a>';
|
||||
|
||||
// Header
|
||||
ui_print_page_header (__('Wizard template'), "", false, "", true, $buttons);
|
||||
|
||||
// Apply templates action
|
||||
if ($action_wizard == 'apply') {
|
||||
$agents_selected = (array) get_parameter ('id_agents2');
|
||||
$template_selected = get_parameter('templates');
|
||||
|
||||
if (empty($agents_selected) || empty($template_selected))
|
||||
$result = false;
|
||||
else {
|
||||
$result = reporting_apply_report_template_graph($agents_selected, $template_selected);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
<table style="" class="databox" id="" border="0" cellpadding="4" cellspacing="4" width="98%">
|
||||
<tbody>
|
||||
<tr style="" class="datos">
|
||||
<td>
|
||||
<?php
|
||||
echo '<form method="post" action="index.php?sec=greporting&sec2=godmode/reporting/graph_template_wizard&action=wizard&id_template=' . $id_template . '">';
|
||||
|
||||
// List all available templates
|
||||
$own_info = get_user_info ($config['id_user']);
|
||||
if ($own_info['is_admin'] || check_acl ($config['id_user'], 0, "PM"))
|
||||
$return_all_group = true;
|
||||
else
|
||||
$return_all_group = false;
|
||||
|
||||
$templates = reporting_template_graphs_get_user ($config['id_user'], false, true, 'IW');
|
||||
|
||||
if ($templates === false)
|
||||
$template_select = array();
|
||||
else{
|
||||
foreach ($templates as $template){
|
||||
$template_select[$template['id_graph_template']] = $template['name'];
|
||||
}
|
||||
}
|
||||
|
||||
echo __('Templates') . " ";
|
||||
html_print_select($template_select, 'templates', $template_selected, '', __('None'), '0', false, false, true, '', false, 'width:180px;');
|
||||
echo " ";
|
||||
echo '<a id="cleanup_template" href="index.php?sec=greporting&sec2=godmode/reporting/graph_template_wizard&cleanup_template=1&id_template=' . $id_template .'">';
|
||||
|
||||
html_print_image ('images/clean.png', false, array ('title' => __('Clean up template')));
|
||||
echo '</a>';
|
||||
?>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr style="" class="datos">
|
||||
<td>
|
||||
<?php
|
||||
echo __('Filter group') . " ";
|
||||
html_print_select(groups_get_all(), 'group', '', "", __('All'), '0', false, false, true, '', false, 'width:180px;');
|
||||
echo "<div id='loading_group' class='loading_div' style='display:none; float:left;'><img src='images/spinner.gif'></div>";
|
||||
?>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
<tr style="" class="datos">
|
||||
<td>
|
||||
<?php
|
||||
echo __('Filter agent') . " ";
|
||||
html_print_input_text ('agent_filter', $agent_filter, '', 22, 150);
|
||||
echo "<div id='loading_filter' class='loading_div' style='display:none; float:left;'><img src='images/spinner.gif'></div>";
|
||||
?>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr style="" class="datos">
|
||||
<td>
|
||||
<?php
|
||||
echo "<b>" . __('Agents available')."</b> " . html_print_submit_button (__('Select all'), 'select_all', false, 'class="sub upd"', true);
|
||||
?>
|
||||
</td>
|
||||
<td></td>
|
||||
<td>
|
||||
<?php
|
||||
echo "<b>" . __('Agents to apply')."</b> " . html_print_submit_button (__('Select all'), 'select_all2', false, 'class="sub upd"', true);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr style="" class="datos">
|
||||
<td>
|
||||
<?php
|
||||
$option_style = array();
|
||||
/* This will keep agents that will be added to the template */
|
||||
$template_agents_in = array();
|
||||
|
||||
$template_agents_all = agents_get_group_agents(0, false, '');
|
||||
$template_agents_out = array();
|
||||
$template_agents_out = array_diff_key($template_agents_all, $template_agents_in);
|
||||
|
||||
$template_agents_in_keys = array_keys($template_agents_in);
|
||||
$template_agents_out_keys = array_keys($template_agents_out);
|
||||
|
||||
html_print_select ($template_agents_out, 'id_agents[]', 0, false, '', '', false, true, true, '', false, 'width: 100%;', $option_style);
|
||||
?>
|
||||
</td>
|
||||
<td>
|
||||
<br>
|
||||
<?php
|
||||
html_print_image ('images/darrowright.png', false, array ('id' => 'right', 'title' => __('Add agents to template')));
|
||||
?>
|
||||
<br><br><br><br>
|
||||
<?php
|
||||
html_print_image ('images/darrowleft.png', false, array ('id' => 'left', 'title' => __('Undo agents to template')));
|
||||
?>
|
||||
<br><br><br>
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
$option_style = array();
|
||||
/* Agents applied to the template */
|
||||
html_print_select ($template_agents_in, 'id_agents2[]', 0, false, '', '', false, true, true, '', false, 'width: 100%;', $option_style);
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<?php
|
||||
|
||||
echo '<div class="action-buttons" style="width: 98%;">';
|
||||
html_print_input_hidden('action_wizard', 'apply');
|
||||
html_print_submit_button (__('Apply template'), 'apply', false, 'class="sub next"');
|
||||
echo '</div>';
|
||||
echo '</form>';
|
||||
|
||||
// Choose a weird separator
|
||||
$separator = ';;..;;..;;';
|
||||
|
||||
html_print_input_hidden('separator', $separator);
|
||||
html_print_input_hidden('agents_in', implode($separator, $template_agents_in));
|
||||
html_print_input_hidden('agents_in_keys', implode($separator, $template_agents_in_keys));
|
||||
html_print_input_hidden('agents_out', implode($separator, $template_agents_out));
|
||||
html_print_input_hidden('agents_out_keys', implode($separator, $template_agents_out_keys));
|
||||
?>
|
||||
|
||||
<script language="javascript" type="text/javascript">
|
||||
var agents_out;
|
||||
var agents_out_keys;
|
||||
var agents_in;
|
||||
var pending_delete_ids;
|
||||
var agents_in_keys;
|
||||
var separator;
|
||||
|
||||
$(document).ready (function () {
|
||||
// Get the agents in both sides from the hidden fields
|
||||
separator = $("#hidden-separator").attr('value');
|
||||
var aux;
|
||||
aux = $("#hidden-agents_in").attr('value');
|
||||
agents_in = aux.split(separator);
|
||||
aux = $("#hidden-agents_in_keys").attr('value');
|
||||
agents_in_keys = aux.split(separator);
|
||||
aux = $("#hidden-agents_out").attr('value');
|
||||
agents_out = aux.split(separator);
|
||||
aux = $("#hidden-agents_out_keys").attr('value');
|
||||
agents_out_keys = aux.split(separator);
|
||||
|
||||
$("select[name='group']").change(function(){
|
||||
filterByGroup($(this).val(), '');
|
||||
});
|
||||
|
||||
$("select[name='group2']").change(function(){
|
||||
filterByGroup($(this).val(), '2');
|
||||
});
|
||||
|
||||
function filterByGroup(idGroup, idSelect) {
|
||||
$('#loading_group'+idSelect).show();
|
||||
|
||||
$('#id_agents'+idSelect).empty ();
|
||||
search = $("#text-agent_filter"+idSelect).val();
|
||||
|
||||
jQuery.post ("ajax.php",
|
||||
{"page" : "godmode/groups/group_list",
|
||||
"get_group_agents" : 1,
|
||||
"search" : search,
|
||||
"id_group" : idGroup
|
||||
},
|
||||
function (data, status) {
|
||||
var group_agents = new Array();
|
||||
var group_agents_keys = new Array();
|
||||
|
||||
jQuery.each (data, function (id, value) {
|
||||
group_agents.push(value);
|
||||
group_agents_keys.push(id);
|
||||
});
|
||||
|
||||
if(idSelect == '') {
|
||||
agents_out_keys = group_agents_keys;
|
||||
agents_out = group_agents;
|
||||
}
|
||||
else {
|
||||
agents_in_keys = group_agents_keys;
|
||||
agents_in = group_agents;
|
||||
}
|
||||
|
||||
refresh_agents($("#text-agent_filter"+idSelect).attr('value'), agents_out_keys, agents_out, $("#id_agents"+idSelect));
|
||||
},
|
||||
"json"
|
||||
);
|
||||
}
|
||||
|
||||
$("#group").click (function () {
|
||||
$(this).css ("width", "auto");
|
||||
});
|
||||
|
||||
$("#group").blur (function () {
|
||||
$(this).css ("width", "180px");
|
||||
});
|
||||
|
||||
$("#group2").click (function () {
|
||||
$(this).css ("width", "auto");
|
||||
});
|
||||
|
||||
$("#group2").blur (function () {
|
||||
$(this).css ("width", "180px");
|
||||
});
|
||||
|
||||
function refresh_agents(start_search, keys, values, select) {
|
||||
var n = 0;
|
||||
var i = 0;
|
||||
select.empty();
|
||||
|
||||
values.forEach(function(item) {
|
||||
var re = new RegExp(start_search,"gi");
|
||||
match = item.match(re);
|
||||
|
||||
if(match != null) {
|
||||
select.append ($("<option></option>").attr("value", keys[n]).html(values[n]));
|
||||
i++;
|
||||
}
|
||||
n++;
|
||||
});
|
||||
if(i == 0) {
|
||||
$(select).empty ();
|
||||
$(select).append ($("<option></option>").attr ("value", 0).html ('<?php echo __('None');?>'));
|
||||
}
|
||||
|
||||
$('.loading_div').hide();
|
||||
}
|
||||
|
||||
$("#text-agent_filter").keyup (function () {
|
||||
$('#loading_filter').show();
|
||||
refresh_agents($(this).val(), agents_out_keys, agents_out, $("#id_agents"));
|
||||
});
|
||||
|
||||
$("#text-agent_filter2").keyup (function () {
|
||||
$('#loading_filter2').show();
|
||||
refresh_agents($(this).val(), agents_in_keys, agents_in, $("#id_agents2"));
|
||||
});
|
||||
|
||||
$("#right").click (function () {
|
||||
jQuery.each($("select[name='id_agents[]'] option:selected"), function (key, value) {
|
||||
agent_name = $(value).html();
|
||||
if (agent_name != <?php echo "'".__('None')."'"; ?>){
|
||||
id_agent = $(value).attr('value');
|
||||
$("select[name='id_agents2[]']").append($("<option>").val(id_agent).html('<i>' + agent_name + '</i>'));
|
||||
$("#id_agents").find("option[value='" + id_agent + "']").remove();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$("#left").click(function(){
|
||||
jQuery.each($("select[name='id_agents2[]'] option:selected"), function (key, value) {
|
||||
agent_name = $(value).html();
|
||||
if (agent_name != <?php echo "'".__('None')."'"; ?>){
|
||||
id_agent = $(value).attr('value');
|
||||
$("select[name='id_agents[]']").append($("<option>").val(id_agent).html('<i>' + agent_name + '</i>'));
|
||||
$("#id_agents2").find("option[value='" + id_agent + "']").remove();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$("#submit-apply").click(function () {
|
||||
$('#id_agents2 option').map(function(){
|
||||
$(this).attr('selected','selected');
|
||||
});
|
||||
|
||||
//Prevent from applying template 'None' over agent
|
||||
if ($("#templates").val() == 0){
|
||||
alert( <?php echo "'" . __('Please set template distinct than ') . '"' . __('None') . '"' . "'"; ?> );
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!confirm ( <?php echo "'" . __('Are you sure?') . "'"; ?> ))
|
||||
return false;
|
||||
|
||||
});
|
||||
|
||||
$("#submit-select_all").click(function () {
|
||||
$('#id_agents option').map(function(){
|
||||
$(this).attr('selected','selected');
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$("#submit-select_all2").click(function () {
|
||||
$('#id_agents2 option').map(function(){
|
||||
$(this).attr('selected','selected');
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
$("#cleanup_template").click(function () {
|
||||
// Prevent user of current action
|
||||
if (! confirm ( <?php echo "'" . __('This will be delete all reports created in previous template applications. Do you want to continue?') . "'"; ?> ))
|
||||
return false;
|
||||
|
||||
// Prevent from applying template 'None' over agent
|
||||
if ($("#templates").val() == 0){
|
||||
alert( <?php echo "'" . __('Please set template distinct than ') . '"' . __('None') . '"' . "'"; ?> );
|
||||
return false;
|
||||
}
|
||||
|
||||
// Cleanup applied template
|
||||
var params = [];
|
||||
var result;
|
||||
params.push("cleanup_template=1");
|
||||
params.push("id_template_cleanup=" + $("#templates").val());
|
||||
params.push("page=godmode/reporting/graph_template_wizard");
|
||||
jQuery.ajax ({
|
||||
data: params.join ("&"),
|
||||
type: 'POST',
|
||||
url: action="ajax.php",
|
||||
async: false,
|
||||
timeout: 10000,
|
||||
success: function (data) {
|
||||
result = data;
|
||||
|
||||
if (result == 1)
|
||||
$("#sucess_cleanup").css("display", "");
|
||||
else
|
||||
$("#wrong_cleanup").css("display", "");
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
|
@ -4689,4 +4689,81 @@ function reporting_template_graphs_get_user ($id_user = 0, $only_names = false,
|
|||
|
||||
return $templates;
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply a template graph
|
||||
*
|
||||
* @param array $agents_selected to apply the template.
|
||||
* @param $template_selected
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
function reporting_apply_report_template_graph ($agents_selected, $template_selected) {
|
||||
|
||||
if ($agents_selected[0] == '') {
|
||||
unset($agents_selected[0]);
|
||||
}
|
||||
|
||||
if ($agents_selected != null) {
|
||||
|
||||
$template_data = db_get_row('tgraph_template','id_graph_template', $template_selected);
|
||||
|
||||
foreach ($agents_selected as $id_agent) {
|
||||
$values = array(
|
||||
'id_user' => $template_data['id_user'],
|
||||
'name' => $template_data['name'],
|
||||
'description' => $template_data['description'],
|
||||
'period' => $template_data['period'],
|
||||
'width' => $template_data['width'],
|
||||
'height' => $template_data['height'],
|
||||
'private' => $template_data['private'],
|
||||
'events' => $template_data['events'],
|
||||
'stacked' => $template_data['stacked'],
|
||||
'id_group' => $template_data['id_group'],
|
||||
'id_graph_template' => $template_selected
|
||||
);
|
||||
|
||||
$id_graph = db_process_sql_insert('tgraph', $values);
|
||||
|
||||
$sql = "SELECT * FROM tgraph_source_template WHERE id_template=$template_selected";
|
||||
$source_templates = db_get_all_rows_sql($sql);
|
||||
|
||||
foreach ($source_templates as $source) {
|
||||
$modules = agents_get_modules($id_agent, false, array('disabled' => 0));
|
||||
$exact_match = $source['exact_match'];
|
||||
|
||||
foreach ($modules as $key => $module) {
|
||||
$insert_module = false;
|
||||
if ($exact_match) {
|
||||
if ($module == $source['module']) {
|
||||
$insert_module = true;
|
||||
}
|
||||
} else {
|
||||
$result = preg_match('/[.]*'.$source['module'].'[.]*/i', $module);
|
||||
if ($result) {
|
||||
$insert_module = true;
|
||||
}
|
||||
}
|
||||
if ($insert_module) {
|
||||
$values_aux = array(
|
||||
'id_graph' => $id_graph,
|
||||
'id_agent_module' => $key,
|
||||
'weight' => $source['weight']
|
||||
);
|
||||
$id_gs = db_process_sql_insert('tgraph_source', $values_aux);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($id_graph) {
|
||||
ui_print_success_message ('Template applied successfully');
|
||||
//return true;
|
||||
} else {
|
||||
ui_print_error_message ('An error has ocurred apllying template');
|
||||
}
|
||||
} else {
|
||||
ui_print_error_message ('Agent must be selected');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -907,7 +907,8 @@ CREATE TABLE tgraph (
|
|||
private NUMBER(5, 0) default 0 NOT NULL,
|
||||
events NUMBER(5, 0) default 0 NOT NULL,
|
||||
stacked NUMBER(5, 0) default 0 NOT NULL,
|
||||
id_group NUMBER(19, 0) default 0 NOT NULL
|
||||
id_group NUMBER(19, 0) default 0 NOT NULL,
|
||||
id_graph_template NUMBER(11, 0) default 0 NOT NULL
|
||||
);
|
||||
|
||||
CREATE SEQUENCE tgraph_s INCREMENT BY 1 START WITH 1;
|
||||
|
|
|
@ -729,7 +729,8 @@ CREATE TABLE "tgraph" (
|
|||
"private" SMALLINT NOT NULL default 0,
|
||||
"events" SMALLINT NOT NULL default 0,
|
||||
"stacked" SMALLINT NOT NULL default 0,
|
||||
"id_group" BIGINT NOT NULL default 0
|
||||
"id_group" BIGINT NOT NULL default 0,
|
||||
"id_graph_template" INTEGER NOT NULL default 0
|
||||
);
|
||||
|
||||
CREATE TABLE "tgraph_source" (
|
||||
|
|
|
@ -809,6 +809,7 @@ CREATE TABLE IF NOT EXISTS `tgraph` (
|
|||
`events` tinyint(1) UNSIGNED NOT NULL default 0,
|
||||
`stacked` tinyint(1) UNSIGNED NOT NULL default 0,
|
||||
`id_group` mediumint(8) unsigned NULL default 0,
|
||||
`id_graph_template` int(11) NOT NULL default 0,
|
||||
PRIMARY KEY(`id_graph`)
|
||||
) ENGINE = InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
|
|
Loading…
Reference in New Issue