cambios semi finales

This commit is contained in:
marcos 2019-10-24 16:56:13 +02:00
parent b35c9dd96d
commit e725a0185b
6 changed files with 288 additions and 278 deletions

View File

@ -2,7 +2,7 @@
/**
* Credential store
*
* @category NewInstallationWelcomeWindow
* @category WelcomeWindow
* @package Pandora FMS
* @subpackage New Installation Welcome Window
* @version 1.0.0
@ -29,25 +29,25 @@
// Begin.
/**
* Class NewInstallationWelcomeWindow.
* Class WelcomeWindow.
*/
global $config;
require_once $config['homedir'].'/include/class/NewInstallationWelcomeWindow.class.php';
require_once $config['homedir'].'/include/class/WelcomeWindow.class.php';
$ajaxPage = 'general/new_installation_welcome_window';
// Control call flow.
try {
// User access and validation is being processed on class constructor.
$welcome_actions = new NewInstallationWelcomeWindow($ajaxPage);
$welcome_actions = new WelcomeWindow($ajaxPage);
} catch (Exception $e) {
if (is_ajax()) {
echo json_encode(['error' => '[NewInstallationWelcomeWindow]'.$e->getMessage() ]);
echo json_encode(['error' => '[WelcomeWindow]'.$e->getMessage() ]);
exit;
} else {
echo '[NewInstallationWelcomeWindow]'.$e->getMessage();
echo '[WelcomeWindow]'.$e->getMessage();
}
// Stop this execution, but continue 'globally'.

View File

@ -30,7 +30,7 @@
global $config;
require_once $config['homedir'].'/include/functions_update_manager.php';
require_once $config['homedir'].'/include/class/NewInstallationWelcomeWindow.class.php';
require_once $config['homedir'].'/include/class/WelcomeWindow.class.php';
if (is_ajax()) {
@ -173,9 +173,10 @@ if (!$config['disabled_newsletter']) {
}
}
$welcome = !$registration && !$initial;
if ($welcome) {
$welcome = NewInstallationWelcomeWindow::actions_done($welcome);
$welcome = !$registration && !$show_newsletter && !$initial;
$welcome_window = WelcomeWindow::initialize($welcome);
if ($welcome_window && $config['welcome_started'] === 1) {
$welcome_window->run();
}
$newsletter = null;

View File

@ -0,0 +1,63 @@
<?php
/**
* Welcome window ajax controller.
*
* @category WelcomeWindow
* @package Pandora FMS
* @subpackage New Installation Welcome Window
* @version 1.0.0
* @license See below
*
* ______ ___ _______ _______ ________
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
*
* ============================================================================
* Copyright (c) 2005-2019 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.
* ============================================================================
*/
// Begin.
global $config;
require_once $config['homedir'].'/include/class/WelcomeWindow.class.php';
if (is_ajax() === false) {
exit;
}
$ajaxPage = 'include/ajax/welcome_window';
// Control call flow.
try {
// User access and validation is being processed on class constructor.
$welcome_actions = new WelcomeWindow($ajaxPage);
} catch (Exception $e) {
echo json_encode(['error' => '[WelcomeWindow]'.$e->getMessage() ]);
exit;
}
// Ajax controller.
$method = get_parameter('method', '');
if (method_exists($welcome_actions, $method) === true) {
if ($welcome_actions->ajaxMethod($method) === true) {
$welcome_actions->{$method}();
} else {
$welcome_actions->error('Unavailable method.');
}
} else {
$welcome_actions->error('Method not found. ['.$method.']');
}
// Stop any execution.
exit;

View File

@ -29,12 +29,18 @@
// Begin.
global $config;
defined('WELCOME_STARTED') || define('WELCOME_STARTED', 1);
defined('WELCOME_FINISHED') || define('WELCOME_FINISHED', 2);
require_once $config['homedir'].'/godmode/wizards/Wizard.main.php';
ui_require_css_file('pandora');
/**
* Class NewInstallationWelcomeWindow.
* Class WelcomeWindow.
*/
class NewInstallationWelcomeWindow extends Wizard
class WelcomeWindow extends Wizard
{
/**
@ -51,6 +57,14 @@ class NewInstallationWelcomeWindow extends Wizard
*/
public $ajaxController;
/**
* Current step.
*
* @var string
*/
public $step;
/**
* Checks if target method is available to be called using AJAX.
*
@ -58,8 +72,6 @@ class NewInstallationWelcomeWindow extends Wizard
*
* @return boolean True allowed, false not.
*/
public function ajaxMethod($method)
{
global $config;
@ -92,8 +104,9 @@ class NewInstallationWelcomeWindow extends Wizard
*
* @return object
*/
public function __construct($ajax_controller)
{
public function __construct(
$ajax_controller='include/ajax/welcome_window'
) {
$this->ajaxController = $ajax_controller;
return $this;
}
@ -120,6 +133,7 @@ class NewInstallationWelcomeWindow extends Wizard
modal: {
title: "<?php echo __('Welcome to Pandora FMS'); ?>",
ok: '<?php echo __('OK'); ?>',
cancel: '<?php echo __('Cancel'); ?>',
},
onshow: {
page: '<?php echo $this->ajaxController; ?>',
@ -143,6 +157,43 @@ class NewInstallationWelcomeWindow extends Wizard
public function loadWelcomeWindow()
{
global $config;
$btn_configure_mail_class = '';
$btn_create_agent_class = '';
$btn_create_module_class = '';
$btn_create_alert_class = '';
$btn_create_discovery_class = '';
$action = '';
if (($_SESSION['step'] === 'create_mail') || $_SESSION['step'] === null) {
// Pending mail.
$btn_configure_mail_class = ' pending';
} else if ($_SESSION['step'] === 'create_agent') {
$this->step = 'create_agent';
$btn_configure_mail_class = ' completed';
$btn_create_agent_class = ' pending';
} else if ($_SESSION['step'] === 'create_module') {
$btn_configure_mail_class = ' completed';
$btn_create_agent_class = ' completed';
$btn_create_module_class = ' pending';
} else if ($_SESSION['step'] === 'create_alert') {
$btn_configure_mail_class = ' completed';
$btn_create_agent_class = ' completed';
$btn_create_module_class = ' completed';
$btn_create_alert_class = ' pending';
} else if ($_SESSION['step'] === 'create_discovery') {
$btn_configure_mail_class = ' completed';
$btn_create_agent_class = ' completed';
$btn_create_module_class = ' completed';
$btn_create_alert_class = ' completed';
$btn_create_discovery_class = ' pending';
} else if ($_SESSION['step'] === 'end') {
// Nothing left to do.
$btn_configure_mail_class = ' completed';
$btn_create_agent_class = ' completed';
$btn_create_module_class = ' completed';
$btn_create_alert_class = ' completed';
$btn_create_discovery_class = ' completed';
}
$form = [
'action' => '#',
@ -155,7 +206,7 @@ class NewInstallationWelcomeWindow extends Wizard
[
'wrapper' => 'div',
'block_id' => 'div_configure_mail',
'class' => 'content_position',
'class' => 'flex-row w100p',
'direct' => 1,
'block_content' => [
[
@ -168,19 +219,18 @@ class NewInstallationWelcomeWindow extends Wizard
],
[
'arguments' => [
'label' => __(''),
'label' => '',
'type' => 'button',
'attributes' => 'class="btn_email_conf"',
'attributes' => 'class="go '.$btn_configure_mail_class.'"',
'name' => 'btn_email_conf',
'id' => 'btn_email_conf',
'script' => 'configureEmail()',
],
],
],
],[
'wrapper' => 'div',
'block_id' => 'div_create_agent',
'class' => 'content_position',
'class' => 'flex-row w100p',
'direct' => 1,
'block_content' => [
[
@ -193,12 +243,11 @@ class NewInstallationWelcomeWindow extends Wizard
],
[
'arguments' => [
'label' => __(''),
'label' => '',
'type' => 'button',
'attributes' => 'class="btn_agent"',
'attributes' => 'class="go '.$btn_create_agent_class.'"',
'name' => 'btn_create_agent',
'id' => 'btn_create_agent',
'script' => 'createNewAgent()',
],
],
],
@ -214,7 +263,7 @@ class NewInstallationWelcomeWindow extends Wizard
[
'wrapper' => 'div',
'block_id' => 'div_monitor_actions',
'class' => 'learn_content_position',
'class' => 'learn_content_indented flex-row w100p',
'direct' => 1,
'block_content' => [
[
@ -227,12 +276,11 @@ class NewInstallationWelcomeWindow extends Wizard
],
[
'arguments' => [
'label' => __(''),
'label' => '',
'type' => 'button',
'attributes' => 'class="btn_agent_online"',
'name' => 'btn_check_agent',
'id' => 'btn_check_agent',
'script' => 'checkAgentOnline()',
'attributes' => 'class="go '.$btn_create_module_class.'"',
'name' => 'btn_create_module',
'id' => 'btn_create_module',
],
],
],
@ -240,7 +288,7 @@ class NewInstallationWelcomeWindow extends Wizard
[
'wrapper' => 'div',
'block_id' => 'div_monitor_actions',
'class' => 'learn_content_position',
'class' => 'learn_content_indented flex-row w100p',
'direct' => 1,
'block_content' => [
[
@ -253,12 +301,11 @@ class NewInstallationWelcomeWindow extends Wizard
],
[
'arguments' => [
'label' => __(''),
'label' => '',
'type' => 'button',
'attributes' => 'class="btn_alert_module"',
'attributes' => 'class="go '.$btn_create_alert_class.'"',
'name' => 'btn_create_alert',
'id' => 'btn_create_alert',
'script' => 'createAlertModule()',
],
],
],
@ -267,7 +314,7 @@ class NewInstallationWelcomeWindow extends Wizard
[
'wrapper' => 'div',
'block_id' => 'div_monitor_actions',
'class' => 'learn_content_position',
'class' => 'learn_content_indented flex-row w100p',
'direct' => 1,
'block_content' => [
[
@ -280,12 +327,11 @@ class NewInstallationWelcomeWindow extends Wizard
],
[
'arguments' => [
'label' => __(''),
'label' => '',
'type' => 'button',
'attributes' => 'class="btn_remote-command"',
'attributes' => 'class="go '.$btn_create.'"',
'name' => 'btn_monitor_commmands',
'id' => 'btn_monitor_commmands',
'script' => 'monitorRemoteCommands()',
],
],
],
@ -293,7 +339,7 @@ class NewInstallationWelcomeWindow extends Wizard
[
'wrapper' => 'div',
'block_id' => 'div_discover',
'class' => 'content_position',
'class' => 'flex-row w100p',
'direct' => 1,
'block_content' => [
[
@ -306,12 +352,11 @@ class NewInstallationWelcomeWindow extends Wizard
],
[
'arguments' => [
'label' => __(''),
'label' => '',
'type' => 'button',
'attributes' => 'class="btn_discover"',
'attributes' => 'class="go '.$btn_create_discovery_class.'"',
'name' => 'btn_discover_devices',
'id' => 'btn_discover_devices',
'script' => 'discoverDevicesNetwork()',
],
],
],
@ -320,7 +365,7 @@ class NewInstallationWelcomeWindow extends Wizard
[
'wrapper' => 'div',
'block_id' => 'div_not_working',
'class' => 'content_position',
'class' => 'flex-row w100p',
'direct' => 1,
'block_content' => [
[
@ -333,12 +378,11 @@ class NewInstallationWelcomeWindow extends Wizard
],
[
'arguments' => [
'label' => __(''),
'label' => '',
'type' => 'button',
'attributes' => 'class="btn_is_not_ok"',
'attributes' => 'class="go pending '.$btn_create.'"',
'name' => 'btn_not_working',
'id' => 'btn_not_working',
'script' => 'reportIsNotWorking()',
],
],
],
@ -361,162 +405,171 @@ class NewInstallationWelcomeWindow extends Wizard
}
public static function actions_done()
/**
* Esto es un constructor realmente...
* se llama desde la navegación normal , no ajax
*/
public static function initialize($must_run)
{
global $config;
if ($must_run === false) {
// Do not start unless already started.
if ($config['welcome_started'] != WELCOME_STARTED) {
return false;
}
}
// Calculate steps.
$sec2 = get_parameter('sec2', '');
$mail_user = get_parameter('email_username', '');
$mail_configured = db_get_value('value', 'tconfig', 'token', 'email_username');
$_SESSION['agente'] = '';
if ($sec2 == '' && $config['initial_wizard'] == false) {
$welcome = new NewInstallationWelcomeWindow(
'general/new_installation_welcome_window'
);
$welcome->run();
}
if (($mail_user !== '' || $mail_configured ) && $sec2 === 'godmode/setup/setup') {
$welcome = new NewInstallationWelcomeWindow(
'general/new_installation_welcome_window'
);
$welcome->run();
$_SESSION['mail_configured'] = true;
}
$create_agent = (bool) get_parameter('create_agent');
if ($create_agent && $sec2 === 'godmode/agentes/configurar_agente') {
$welcome = new NewInstallationWelcomeWindow(
'general/new_installation_welcome_window'
);
$create_module = (bool) get_parameter('create_module');
$sec2_url = explode('&', ui_get_full_url());
$create_alert = (int) get_parameter('create_alert', 0);
$task_id = get_parameter('task', null);
$_SESSION['agent'] = db_get_value(
'MAX(id_agente)',
'tagente'
);
if ($sec2 === '') {
$welcome = new WelcomeWindow();
$welcome->run();
// Nothing done yet. Launch mail.
$_SESSION['step'] = null;
} else if (($mail_user !== ''
|| $mail_configured )
&& $sec2 === 'godmode/setup/setup'
) {
$welcome = new WelcomeWindow();
$welcome->run();
$_SESSION['create_agent'] = true;
}
$create_module = (bool) get_parameter('create_module');
$sec2_module = explode('&', ui_get_full_url());
if ($create_module && $sec2_module[2] == 'tab=module') {
$welcome = new NewInstallationWelcomeWindow(
'general/new_installation_welcome_window'
);
$_SESSION['step'] = 'create_agent';
// Mail configured.
} else if ($create_agent
&& $sec2 === 'godmode/agentes/configurar_agente'
) {
$welcome = new WelcomeWindow();
$welcome->run();
// Agent created.
// Store id_agent created.
$_SESSION['create_module'] = true;
}
$sec2_alert = explode('&', ui_get_full_url());
$create_alert = (int) get_parameter('create_alert', 0);
// $check_module = db_get_value('MAX(id_module)', 'tmodule');
if ($create_alert && $sec2_alert[2] == 'tab=alert') {
$welcome = new NewInstallationWelcomeWindow(
'general/new_installation_welcome_window'
);
$_SESSION['step'] = 'create_module';
} else if ($create_module
&& $sec2_url[2] == 'tab=module'
) {
$welcome = new WelcomeWindow();
$welcome->run();
// Module created.
$_SESSION['create_alert'] = true;
}
$sec2_discover = explode('&', ui_get_full_url());
$task_id = get_parameter('task', null);
if ($sec2_discover[4] === 'mode=netscan') {
$welcome = new NewInstallationWelcomeWindow(
'general/new_installation_welcome_window'
);
$_SESSION['step'] = 'create_alert';
} else if ($create_alert && $sec2_url[2] == 'tab=alert') {
$welcome = new WelcomeWindow();
$welcome->run();
$_SESSION['discover'] = true;
// Alert created.
$_SESSION['create_discovery'];
$_SESSION['step'] = 'create_discovery';
} else if ($sec2_url[3] === 'mode=netscan') {
// Discovery task created.
$_SESSION['step'] = 'end';
// Welcome is finished.
config_update_value('welcome_started', WELCOME_FINISHED);
// No more 'welcomes' to show.
return false;
} else {
// No step found. Retrieve from session.
$_SESSION['step'] = null;
if (empty($_SESSION['create_mail'] === true)) {
$_SESSION['step'] = 'create_mail';
}
if (empty($_SESSION['create_mail']) === false) {
$_SESSION['step'] = 'create_agent';
}
if (empty($_SESSION['create_agent']) === false) {
$_SESSION['step'] = 'create_module';
}
if (empty($_SESSION['create_module']) === false) {
$_SESSION['step'] = 'create_alert';
}
if (empty($_SESSION['create_alert']) === false) {
$_SESSION['step'] = 'create_discovery';
}
if (empty($_SESSION['create_discovery']) === false) {
// No more 'welcomes' to show.
return false;
}
}
// Return a reference to the new object.
return $welcome;
}
/**
* DOCUMENTA!!!
*/
public function loadJS()
{
ob_start();
?>
<script type="text/javascript">
if( '.<?php echo $_SESSION['mail_configured']; ?>.') {
document.getElementById("button-btn_email_conf").className = "btn_email_conf_ok";
document.getElementById("button-btn_email_conf").onclick = "";
document.getElementById("button-btn_create_agent").className = "btn_agent_on";
console.log('vale');
if('.<?php echo $_SESSION['step'] == 'create_mail'; ?>.'){
document.getElementById("button-btn_email_conf").setAttribute('onclick', 'configureEmail()');
console.log('mail');
}
if( '.<?php echo $_SESSION['step'] == 'create_agent'; ?>.') {
document.getElementById("button-btn_create_agent").setAttribute('onclick', 'createNewAgent()');
<?php $_SESSION['mail_configured'] = false; ?>
console.log('agente true');
}
if( '.<?php echo $_SESSION['create_agent']; ?>.') {
document.getElementById("button-btn_create_agent").className = "btn_agent_ok";
document.getElementById("button-btn_create_agent").onclick = "";
document.getElementById("button-btn_check_agent").className = "btn_agent_online_on";
document.getElementById("button-btn_check_agent").setAttribute('onclick', 'checkAgentOnline()');
<?php $_SESSION['create_agent'] = false; ?>
if( '.<?php echo $_SESSION['step'] == 'create_module'; ?>.') {
document.getElementById("button-btn_create_module").setAttribute('onclick', 'checkAgentOnline()');
console.log('modulo entra true');
}
if( '.<?php echo $_SESSION['create_module']; ?>.') {
document.getElementById("button-btn_check_agent").className = "btn_agent_online_ok";
document.getElementById("button-btn_check_agent").onclick = "";
document.getElementById("button-btn_create_alert").className = "btn_alert_module_on";
if( '.<?php echo $_SESSION['step'] == 'create_alert'; ?>.') {
document.getElementById("button-btn_create_alert").setAttribute('onclick', 'createAlertModule()');
<?php $_SESSION['create_module'] = false; ?>
}
if( '.<?php echo $_SESSION['create_alert']; ?>.') {
document.getElementById("button-btn_create_alert").className = "btn_alert_module_ok";
document.getElementById("button-btn_create_alert").onclick = "";
document.getElementById("button-btn_discover_devices").className = "btn_discover_on";
if( '.<?php echo $_SESSION['step'] == 'create_discover'; ?>.') {
document.getElementById("button-btn_discover_devices").setAttribute('onclick', 'discoverDevicesNetwork()');
<?php $_SESSION['create_alert'] = false; ?>
}
if('.<?php echo $_SESSION['discover']; ?>.'){
document.getElementById("button-btn_discover_devices").className = "btn_discover_ok";
document.getElementById("button-btn_discover_devices").onclick = "";
}else if('.<?php echo $_SESSION['create_discovery']; ?>.'){
document.getElementById("button-btn_discover_devices").onclick= '';
}
function configureEmail() {
window.open('<?php echo ui_get_full_url('index.php?sec=general&sec2=godmode/setup/setup&section=general#table3'); ?>');
window.location = '<?php echo ui_get_full_url('index.php?sec=general&sec2=godmode/setup/setup&section=general#table3'); ?>';
}
function createNewAgent()
{
window.open('<?php echo ui_get_full_url('index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&new_agent=1&crt-2=Create+agent'); ?>');
function createNewAgent() {
window.location = '<?php echo ui_get_full_url('index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&new_agent=1&crt-2=Create+agent'); ?>';
}
function checkAgentOnline()
{
<?php $_SESSION['agente'] = db_get_value('MAX(id_agente)', 'tagente'); ?>
window.open('<?php echo ui_get_full_url('index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=module&id_agente='.$_SESSION['agente'].''); ?>');
function checkAgentOnline() {
window.location = '<?php echo ui_get_full_url('index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=module&id_agente='.$_SESSION['agent'].''); ?>';
}
function createAlertModule()
{
<?php $_SESSION['agente'] = db_get_value('MAX(id_agente)', 'tagente'); ?>
window.open('<?php echo ui_get_full_url('index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=alert&id_agente='.$_SESSION['agente'].''); ?>');
function createAlertModule() {
window.location = '<?php echo ui_get_full_url('index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=alert&id_agente='.$_SESSION['agent'].''); ?>';
}
function monitorRemoteCommands()
{
window.open('<?php echo ui_get_full_url(''); ?>');
function monitorRemoteCommands() {
window.location = '<?php echo ui_get_full_url(''); ?>';
}
function discoverDevicesNetwork()
{
window.open('<?php echo ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=hd&mode=netscan'); ?>');
<?php $_SESSION['discover'] = true; ?>
function discoverDevicesNetwork() {
window.location = '<?php echo ui_get_full_url('index.php?sec=gservers&sec2=godmode/servers/discovery&wiz=hd&mode=netscan'); ?>';
}
function reportIsNotWorking()
{
function reportIsNotWorking() {
}

View File

@ -1883,6 +1883,10 @@ function config_process_config()
config_update_value('unique_ip', 0);
}
if (!isset($config['welcome_started'])) {
config_update_value('welcome_started', 2);
}
/*
* Parse the ACL IP list for access API
*/

View File

@ -38,9 +38,9 @@ label {
font-weight: 800;
}
.learn_content_position {
display: flex;
margin-left: 50px;
.learn_content_indented {
margin-top: 0.5em;
text-indent: 2em;
font-family: "lato-lighter", "Open Sans", sans-serif;
letter-spacing: 0.03pt;
font-size: 8pt;
@ -54,129 +54,18 @@ label {
font-weight: 800;
}
.btn_email_conf {
background-image: url(../../images/darrowright.png);
margin-left: 269px;
width: 25px;
border: none;
}
.btn_agent {
.go {
background-image: url(../../images/go_next_g.png);
margin-left: 469px;
width: 25px;
border: none;
}
.btn_agent_online {
background-image: url(../../images/go_next_g.png);
margin-left: 213px;
width: 25px;
border: none;
}
.btn_alert_module {
background-image: url(../../images/go_next_g.png);
margin-left: 115px;
width: 25px;
border: none;
}
.btn_remote-command {
background-image: url(../../images/go_next_g.png);
margin-left: 295px;
background-repeat: no-repeat;
width: 25px;
height: 25px;
border: none;
}
.btn_discover {
background-image: url(../../images/go_next_g.png);
margin-left: 323px;
width: 25px;
border: none;
}
.btn_agent_on {
.pending {
background-image: url(../../images/darrowright.png);
margin-left: 469px;
width: 25px;
border: none;
}
.btn_agent_online_on {
background-image: url(../../images/darrowright.png);
margin-left: 213px;
width: 25px;
border: none;
}
.btn_alert_module_on {
background-image: url(../../images/darrowright.png);
margin-left: 115px;
width: 25px;
border: none;
}
.btn_remote-command_on {
background-image: url(../../images/darrowright.png);
margin-left: 295px;
width: 25px;
border: none;
}
.btn_discover_on {
background-image: url(../../images/darrowright.png);
margin-left: 323px;
width: 25px;
border: none;
}
.btn_is_not_ok {
background-image: url(../../images/icono_warning.png);
margin-left: 288px;
width: 25px;
border: none;
background-size: 20px;
background-repeat: no-repeat;
}
.btn_agent_ok {
.completed {
background-image: url(../../images/input_tick.png);
background-repeat: no-repeat;
margin-left: 469px;
width: 20px;
border: none;
}
.btn_agent_online_ok {
background-image: url(../../images/input_tick.png);
background-repeat: no-repeat;
margin-left: 213px;
width: 20px;
border: none;
}
.btn_alert_module_ok {
background-image: url(../../images/input_tick.png);
background-repeat: no-repeat;
margin-left: 115px;
width: 20px;
border: none;
}
.btn_remote-command_ok {
background-image: url(../../images/input_tick.png);
background-repeat: no-repeat;
margin-left: 295px;
width: 20px;
border: none;
}
.btn_discover_ok {
background-image: url(../../images/input_tick.png);
background-repeat: no-repeat;
margin-left: 323px;
width: 25px;
border: none;
}
.btn_email_conf_ok {
background-image: url(../../images/input_tick.png);
background-repeat: no-repeat;
margin-left: 269px;
width: 20px;
border: none;
}