'.__('Not deleted. Error deleting data').''; } else { echo '

'.__('Successfully deleted').'

'; } } // UPDATE OR CREATE A DOWNTIME (MAIN DATA, NOT AGENT ASSOCIATION) if ($create_downtime || $update_downtime) { $description = (string) get_parameter ('description'); $name = (string) get_parameter ('name'); $datetime_from = strtotime ($date_from.' '.$time_from); $datetime_to = strtotime ($date_to.' '.$time_to); if ($datetime_from > $datetime_to) { echo '

'.__('Not created. Error inserting data').': START > END

'; } else { $sql = ''; if ($create_downtime) { $sql = sprintf ("INSERT INTO tplanned_downtime (`name`, `description`, `date_from`, `date_to`, `id_group`) VALUES ('%s','%s',%d,%d, %d)", $name, $description, $datetime_from, $datetime_to, $id_group); } else if ($update_downtime) { $sql = sprintf ("UPDATE tplanned_downtime SET `name`='%s', `description`='%s', `date_from`=%d, `date_to`=%d, `id_group`=%d WHERE `id` = '%d'", $name, $description, $datetime_from, $datetime_to, $id_group, $id_downtime); } $result = process_sql ($sql); if ($result === false) { echo '

'.__('Could not be created').'

'; } else { echo '

'.__('Successfully created').'

'; } } } echo '

'.__('Agent configuration').' » '; echo __('Planned Downtime').'

'; // Show create / update form if (($first_create != 0) OR ($first_update != 0)){ // Have any data to show ? if ($id_downtime > 0) { $sql = sprintf ("SELECT `id`, `name`, `description`, `date_from`, `date_to`, `id_group` FROM `tplanned_downtime` WHERE `id` = %d", $id_downtime); $result = get_db_row_sql ($sql); $name = $result["name"]; $description = $result["description"]; $date_from = strftime ('%Y-%m-%d', $result["date_from"]); $date_to = strftime ('%Y-%m-%d', $result["date_to"]); if ($id_group == 1) $id_group = $result['id_group']; } $table->class = 'databox_color'; $table->width = '90%'; $table->data = array (); $table->data[0][0] = __('Name'); $table->data[0][1] = print_input_text ('name', $name, '', 25, 40, true); $table->data[2][0] = __('Description'); $table->data[2][1] = print_textarea ('description', 3, 35, $description, '', true); $table->data[3][0] = __('Timestamp from'); $table->data[3][1] = print_input_text ('date_from', $date_from, '', 10, 10, true); $table->data[3][1] .= print_input_text ('time_from', $time_from, '', 7, 7, true); $table->data[4][0] = __('Timestamp to'); $table->data[4][1] = print_input_text ('date_to', $date_to, '', 10, 10, true); $table->data[4][1] .= print_input_text ('time_to', $time_to, '', 7, 7, true); $table->data[5][0] = __('Group'); $table->data[5][1] = print_select ($groups, 'id_group', $id_group, '', '', 0, true); echo '
'; if ($id_downtime > 0){ echo ""; echo "
"; } //Editor form echo '

'.__('Planned Downtime Form').' '.print_help_icon ('planned_downtime', true).'

'; print_table ($table); print_input_hidden ('id_agent', $id_agent); echo '
'; if ($id_downtime) { print_input_hidden ('update_downtime', 1); print_input_hidden ('id_downtime', $id_downtime); print_submit_button (__('Update'), 'updbutton', false, 'class="sub upd"'); } else { print_input_hidden ('create_downtime', 1); print_submit_button (__('Add'), 'crtbutton', false, 'class="sub wand"'); } echo '
'; echo ''; if ($id_downtime > 0) { echo "
"; // Show available agents to include into downtime echo '

'.__('Available agents').':

'; $filter_group = get_parameter("filter_group", $result['id_group']); $filter_cond = " AND id_grupo = $filter_group "; $sql = sprintf ("SELECT tagente.id_agente, tagente.nombre, tagente.id_grupo FROM tagente WHERE tagente.id_agente NOT IN (SELECT tagente.id_agente FROM tagente, tplanned_downtime_agents WHERE tplanned_downtime_agents.id_agent = tagente.id_agente AND tplanned_downtime_agents.id_downtime = %d) AND disabled = 0 $filter_cond ORDER by tagente.nombre", $id_downtime); $downtimes = get_db_all_rows_sql ($sql); $data = array (); if ($downtimes) foreach ($downtimes as $downtime) { if (give_acl ($config["id_user"], $downtime['id_grupo'], "AR")) { $data[$downtime['id_agente']] = $downtime['nombre']; } } echo "
"; print_select ($groups, 'filter_group', $filter_group); echo "

"; print_submit_button (__('Filter by group'), '', false, 'class="sub next"',false); echo "
"; echo "
"; echo print_select ($data, "id_agent[]", '', '', '', 0, false, true); echo "


"; print_submit_button (__('Add'), '', false, 'class="sub next"',false); echo "
"; echo "
"; //Start Overview of existing planned downtime echo '

'.__('Agents planned for this downtime').':

'; $table->class = 'databox'; $table->width = '80%'; $table->data = array (); $table->head = array (); $table->head[0] = __('Name'); $table->head[1] = __('Group'); $table->head[2] = __('OS'); $table->head[3] = __('Last contact'); $table->head[4] = __('Remove'); $sql = sprintf ("SELECT tagente.nombre, tplanned_downtime_agents.id, tagente.id_os, tagente.id_agente, tagente.id_grupo, tagente.ultimo_contacto FROM tagente, tplanned_downtime_agents WHERE tplanned_downtime_agents.id_agent = tagente.id_agente AND tplanned_downtime_agents.id_downtime = %d ",$id_downtime); $downtimes = get_db_all_rows_sql ($sql); if ($downtimes === false) { $table->colspan[0][0] = 5; $table->data[0][0] = __('There are no scheduled downtimes'); $downtimes = array(); } foreach ($downtimes as $downtime) { $data = array (); $data[0] = $downtime['nombre']; $data[1] = get_db_sql ("SELECT nombre FROM tgrupo WHERE id_grupo = ". $downtime["id_grupo"]); $data[2] = print_os_icon ($downtime["id_os"], true, true); $data[3] = $downtime["ultimo_contacto"]; $data[4] = ' '.__('Delete').''; array_push ($table->data, $data); } print_table ($table); } } else { // View available downtimes present in database (if any of them) $table->class = 'databox'; //Start Overview of existing planned downtime $table->width = '90%'; $table->data = array (); $table->head = array (); $table->head[0] = __('Name #Ag.'); $table->head[1] = __('Description'); $table->head[2] = __('Group'); $table->head[3] = __('From'); $table->head[4] = __('To'); $table->head[5] = __('Delete'); $table->head[6] = __('Update'); $table->head[7] = __('Running'); $sql = "SELECT * FROM tplanned_downtime WHERE id_group IN (" . implode (",", array_keys ($groups)) . ")"; $downtimes = get_db_all_rows_sql ($sql); if (!$downtimes) { echo '
'.__('No planned downtime').'
'; } else { echo '

'.__('Planned Downtime present on system').':

'; foreach ($downtimes as $downtime) { $data = array(); $total = get_db_sql ("SELECT COUNT(id_agent) FROM tplanned_downtime_agents WHERE id_downtime = ".$downtime["id"]); $data[0] = $downtime['name']. " ($total)"; $data[1] = $downtime['description']; $data[2] = print_group_icon ($downtime['id_group'], true); $data[3] = date ("Y-m-d H:i", $downtime['date_from']); $data[4] = date ("Y-m-d H:i", $downtime['date_to']); if ($downtime["executed"] == 0){ $data[5] = ' '.__('Delete').''; $data[6] = ' '.__('Update').''; } else { $data[5]= "N/A"; $data[6]= "N/A"; } if ($downtime["executed"] == 0) $data[7] = print_image ("images/pixel_green.png", true, array ('width' => 20, 'height' => 20, 'alt' => __('Executed'))); else $data[7] = print_image ("images/pixel_red.png", true, array ('width' => 20, 'height' => 20, 'alt' => __('Not executed'))); array_push ($table->data, $data); } print_table ($table); } echo '
'; echo '
'; print_input_hidden ("first_create", 1); print_submit_button (__('Create'), 'create', false, 'class="sub next"'); echo '
'; echo '
'; } require_css_file ('datepicker'); require_jquery_file ('ui.core'); require_jquery_file ('ui.datepicker'); require_jquery_file ('timeentry'); ?>