13148-Empty views

This commit is contained in:
Pablo Aragon 2024-04-04 18:35:56 +02:00
parent 0b137bee71
commit a1e9c20f0b
9 changed files with 154 additions and 153 deletions

View File

@ -41,39 +41,28 @@ ui_print_standard_header(
);
ui_require_css_file('first_task');
?>
<?php
ui_print_info_message(['no_close' => true, 'message' => __('There are no clusters defined yet.') ]);
?>
<div class="new_task">
<div class="image_task">
<?php echo html_print_image('images/first_task/icono-cluster-activo.png', true, ['title' => __('Clusters')]); ?>
</div>
<div class="text_task">
<h3> <?php echo __('Create Cluster'); ?></h3>
<p id="description_task">
<?php
echo __('A cluster is a group of devices that provide the same service in high availability.').'<br><br>';
$msg = __('A cluster is a group of devices that provide the same service in high availability.').'<br>';
echo __('Depending on how they provide that service, we can find two types:').'<br><br>';
$msg .= __('Depending on how they provide that service, we can find two types:').'<br><br>';
echo __('<b>Clusters to balance the service load</b>: these are active - active (A/A) mode clusters. It means that all the nodes (or machines that compose it) are working. They must be working because if one stops working, it will overload the others.').'<br><br>';
$msg .= __('Clusters to balance the service load: these are active - active (A/A) mode clusters. It means that all the nodes (or machines that compose it) are working. They must be working because if one stops working, it will overload the others.').'<br><br>';
echo __('<b>Clusters to guarantee service</b>: these are active - passive (A/P) mode clusters. It means that one of the nodes (or machines that make up the cluster) will be running (primary) and another won\'t (secondary). When the primary goes down, the secondary must take over and give the service instead. Although many of the elements of this cluster are active-passive, it will also have active elements in both of them that indicate that the passive node is "online", so that in the case of a service failure in the master, the active node collects this information.');
?>
</p>
<?php
if (check_acl($config['id_user'], 0, 'AW')) {
?>
<form action='index.php?sec=estado&sec2=operation/cluster/cluster&op=new' method="post">
<input type="submit" class="button_task ui_toggle" value="<?php echo __('Create Cluster'); ?>" />
</form>
<?php
}
?>
</div>
</div>
$msg .= __('Clusters to guarantee service: these are active - passive (A/P) mode clusters. It means that one of the nodes (or machines that make up the cluster) will be running (primary) and another won\'t (secondary). When the primary goes down, the secondary must take over and give the service instead. Although many of the elements of this cluster are active-passive, it will also have active elements in both of them that indicate that the passive node is "online", so that in the case of a service failure in the master, the active node collects this information.');
$button = false;
if (check_acl($config['id_user'], 0, 'AW')) {
$button = "
<form action='index.php?sec=estado&sec2=operation/cluster/cluster&op=new' method='post'>
<input type='submit' class='button_task button_task_mini mrgn_0px_imp' value='".__('Create cluster')."' />
</form>";
}
echo ui_print_empty_view(
__('There are no defined clusters'),
$msg,
'clusters.svg',
$button
);

View File

@ -14,36 +14,22 @@
global $config;
check_login();
ui_require_css_file('first_task');
?>
$msg = __(
'Graphs are designed to show the data collected by %s in a temporary scale defined by the user. %s Graphs display data in real time. They are generated every time the operator requires any of them and display the up-to-date state.',
get_product_name(),
get_product_name()
);
<div class="new_task">
<div class="image_task">
<?php echo html_print_image('images/first_task/icono_grande_custom_reporting.png', true, ['title' => __('Custom Graphs')]); ?>
</div>
<div class="text_task">
<h3> <?php echo __('Create Custom Graph'); ?></h3><p id="description_task">
<?php
echo __(
"Graphs are designed to show the data collected by %s in a temporary scale defined by the user.
%s Graphs display data in real time. They are generated every time the operator requires any of them and display the up-to-date state.
There are two types of graphs: The agent's automated graphs and the graphs the user customizes by using one or more modules to do so.",
get_product_name(),
get_product_name()
);
?>
</p>
<form action="index.php?sec=reporting&sec2=godmode/reporting/graph_builder" method="post">
<?php
html_print_action_buttons(
html_print_submit_button(
__('Create Custom Graph'),
'button_task',
false,
['icon' => 'wand'],
true
)
);
?>
</form>
</div>
</div>
$msg .= '<br><br>'.__("There are two types of graphs: The agent's automated graphs and the graphs the user customizes by using one or more modules to do so.");
$url_new = 'index.php?sec=reporting&sec2=godmode/reporting/graph_builder';
$button = '<form action="'.$url_new.'" method="post">
<input type="submit" class="button_task button_task_mini mrgn_0px_imp" value="'.__('Create custom graph').'" />
</form>';
echo ui_print_empty_view(
__('Create custom graph'),
$msg,
'custom-graph.svg',
$button
);

View File

@ -34,37 +34,30 @@ check_login();
ui_require_css_file('first_task');
if ($vconsoles_write || $vconsoles_manage) {
?>
$msg = __(
"%s allows users to create visual maps on which each user is able to create his or her own monitoring map. The new visual console editor is much more practical, although the prior 'visual console editor had its advantages.",
get_product_name()
);
<div class="new_task">
<div class="image_task">
<?php echo html_print_image('images/first_task/icono_grande_visualconsole.png', true, ['title' => __('Visual Console')]); ?>
</div>
<div class="text_task">
<h3> <?php echo __('Visual Consoles'); ?></h3><p id="description_task">
<?php
echo __(
'%s allows users to create visual maps on which each user is able to create his or her '.'own monitoring map. The new visual console editor is much more practical, although the prior '."visual console editor had its advantages. On the new visual console, we've been successful in "."imitating the sensation and touch of a drawing application like GIMP. We've also simplified the "."editor by dividing it into several subject-divided tabs named 'Data', 'Preview', 'Wizard', 'List of "."Elements' and 'Editor'. The items the %s Visual Map was designed to handle are "."'static images', 'percentage bars', 'module graphs' and 'simple values'.",
get_product_name(),
get_product_name()
);
?>
</p>
<form action="index.php?sec=network&amp;sec2=godmode/reporting/visual_console_builder" method="post">
<?php
html_print_input_hidden('edit_layout', 1);
html_print_action_buttons(
html_print_submit_button(
__('Create a Visual Console'),
'button_task',
false,
['icon' => 'wand'],
true
)
);
?>
</form>
</div>
</div>
<?php
$msg .= '<br><br>'.__(
"On the new visual console, we've been successful in imitating the sensation and touch of a drawing application like GIMP. We've also simplified the editor by dividing it into several subject-divided tabs named 'Data', 'Preview', 'Wizard', 'List of Elements' and 'Editor'."
);
$msg .= '<br><br>'.__(
" The items the %s Visual Map was designed to handle are 'static images', 'percentage bars', 'module graphs' and 'simple values'",
get_product_name()
);
$url_new = 'index.php?sec=network&amp;sec2=godmode/reporting/visual_console_builder';
$button = '<form action="'.$url_new.'" method="post">';
$button .= html_print_input_hidden('edit_layout', 1);
$button .= '<input type="submit" class="button_task button_task_mini mrgn_0px_imp" value="'.__('Create visual console').'" />';
$button .= '</form>';
echo ui_print_empty_view(
__('There are no customized visual consoles'),
$msg,
'visual-console.svg',
$button
);
}

View File

@ -31,40 +31,25 @@ global $config;
check_login();
ui_require_css_file('first_task');
?>
<?php if ((bool) $agent_w === true) { ?>
<div class="new_task">
<div class="image_task">
<?php echo html_print_image('images/item-service.svg', true, ['title' => __('Services'), 'class' => 'w120px']); ?>
</div>
<div class="text_task">
<h3> <?php echo __('Services'); ?></h3>
<p id="description_task">
<?php
echo __(
"A service is a way to group your IT resources based on their functionalities.
if ((bool) $agent_w === true) {
$msg = __(
"A service is a way to group your IT resources based on their functionalities.
A service could be e.g. your official website, your CRM system, your support application, or even your printers.
Services are logical groups which can include hosts, routers, switches, firewalls, CRMs, ERPs, websites and numerous other services.
By the following example, you're able to see more clearly what a service is:
A chip manufacturer sells computers by its website all around the world.
His company consists of three big departments: A management, an on-line shop and support."
);
?>
</p>
<form action="index.php?sec=estado&sec2=enterprise/godmode/services/services.service&action=new_service" method="post">
<?php
html_print_action_buttons(
html_print_submit_button(
__('Create a service'),
'button_task',
false,
['icon' => 'wand'],
true
)
);
?>
</form>
</div>
</div>
<?php
);
$url_new = 'index.php?sec=estado&sec2=enterprise/godmode/services/services.service&action=new_service';
$button = '<form action="'.$url_new.'" method="post">
<input type="submit" class="button_task button_task_mini mrgn_0px_imp" value="'.__('Configure services').'" />
</form>';
echo ui_print_empty_view(
__('No services found'),
$msg,
'services.svg',
$button
);
}

View File

@ -93,33 +93,26 @@ if (is_metaconsole() === true) {
}
}
$output = '<div class="new_task">';
$output .= '<div class="image_task">';
$output .= html_print_image(
'images/first_task/icono_grande_import.png',
true,
['title' => __('Plugin Registration') ]
);
$output .= '</div>';
$output .= '<div class="text_task">';
$output .= '<h3>'.__('Plugin registration').'</h3>';
$output .= '<p id="description_task">';
$output .= __('This extension makes registering server plugins an easier task. Here you can upload a server plugin in .pspz zipped format. Please refer to the official documentation on how to obtain and use Server Plugins.');
$output .= '<br><br>';
$output .= __('You can get more plugins in our');
$output .= '<a href="https://pandorafms.com/Library/Library/">';
$output .= ' '.__('Public Resource Library');
$output .= '</a>';
$output .= '</p>';
$msg = __('This extension makes registering server plugins an easier task. Here you can upload a server plugin in .pspz zipped format. Please refer to the official documentation on how to obtain and use Server Plugins.');
$msg .= '<br><br>';
$msg .= __('You can get more plugins in our');
$msg .= '<a href="https://pandorafms.com/Library/Library/">';
$msg .= ' '.__('Public Resource Library');
$msg .= '</a>';
// Upload form.
$output .= "<form name='submit_plugin' method='post' enctype='multipart/form-data'>";
$output .= '<table class="" id="table1" width="100%" border="0" cellpadding="4" cellspacing="4">';
$output .= "<tr><td class='datos'><input type='file' name='plugin_upload' />";
$output .= "<td class='datos'><input type='submit' class='sub next' value='".__('Upload')."' />";
$output .= '</form></table>';
$output .= '</div>';
$output .= '</div>';
$button = "<form name='submit_plugin' id='submit-plugin' method='post' enctype='multipart/form-data'>";
$button .= "<input type='file' class='w100p' name='plugin_upload' />";
$button .= "<input type='submit' class='button_task button_task_mini mrgn_0px_imp' value='".__('Upload file')."' />";
$button .= '</form>';
$output = ui_print_empty_view(
__('Register plugins'),
$msg,
'plugins.svg',
$button
);
echo $output;

View File

@ -5441,6 +5441,7 @@ function ui_print_page_header(
$buffer .= '</li>';
}
$tabs_class = '';
foreach ($options as $key => $option) {
if (empty($option)) {
continue;

View File

@ -56,6 +56,15 @@
color: #82b92e;
border: none;
}
.button_task_mini {
height: 38px !important;
line-height: 0px;
}
.empty-view input.button_task {
width: unset;
}
#description_task {
line-height: 1.8em;
}
@ -66,3 +75,7 @@
.flex-row-baseline * {
margin-right: 1em;
}
input.button_task:not([type="image"]):focus {
border: 0;
}

View File

@ -7127,6 +7127,10 @@ div.graph div.legend table {
margin: 0px;
}
.mrgn_0px_imp {
margin: 0px !important;
}
.mrgn_10px {
margin: 10px;
}
@ -13947,7 +13951,8 @@ button.disabled {
margin-bottom: 10px;
}
.empty-view-text > span:nth-child(2) {
.empty-view-text > span:nth-child(2),
.empty-view-text > span:nth-child(2) * {
color: var(--text-color-3);
font-size: 15px;
line-height: 24px;
@ -13971,3 +13976,18 @@ button.disabled {
.empty-view-buttons > *:not(:last-child) {
margin-right: 0;
}
form#submit-plugin {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: flex-end;
align-items: center;
width: 100%;
gap: 15px;
}
form#submit-plugin > input[type="file"] {
line-height: 34px;
padding-top: 0;
}

View File

@ -25,6 +25,8 @@ Description: The default Pandora FMS theme layout
--secondary-color: #222;
--text-color: #fff;
--text-color-2: #ededed;
--text-color-3: #d5d5d5;
--background-main-color: #f6f7fb;
--background-2: #95a3bf;
@ -1913,3 +1915,22 @@ div#dashboard-controls-slides
.select2-selection__rendered {
color: var(--text-color) !important;
}
.empty-view-buttons {
border-color: #94a1bb14;
}
input.button_task:not(div.login_pass > input):not(div.login_nick
> input):not([src$=".svg"]) {
background-color: var(--primary-color) !important;
box-shadow: unset;
}
input.button_task:not(div.login_pass > input):not(div.login_nick
> input):not([src$=".svg"]):hover {
filter: brightness(1.1);
}
.empty-view > .empty-view-img-text > img {
filter: brightness(0.85);
}