mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Config option for global default dashboard (#4080)
* Config option for global default dashboard Add config option to set a global default dashbord. This will be used instead of the user's "Default" dashboard unless they have changed their default dashboard in their user settings. * Use a dropdown for the default_dashboard option Update generate_dynamic_config_panel to allow assoc arrays with `'value'` and `'description'` as keys and change to a select box. * Fix PHP style issues lost during merge
This commit is contained in:
committed by
Neil Lathwood
parent
0b57b1ef69
commit
787c4f09f7
@@ -18,12 +18,23 @@
|
||||
|
||||
$no_refresh = true;
|
||||
$default_dash = 0;
|
||||
if (($tmp = dbFetchCell('SELECT dashboard FROM users WHERE user_id=?', array($_SESSION['user_id']))) != 0) {
|
||||
$tmp = dbFetchCell(
|
||||
'SELECT dashboard FROM users WHERE user_id=?',
|
||||
array($_SESSION['user_id'])
|
||||
);
|
||||
if ($tmp != 0) {
|
||||
$default_dash = $tmp;
|
||||
} elseif (dbFetchCell('SELECT dashboard_id FROM dashboards WHERE user_id=?', array($_SESSION['user_id'])) == 0) {
|
||||
$vars['dashboard'] = dbInsert(array('dashboard_name'=>'Default','user_id'=>$_SESSION['user_id']), 'dashboards');
|
||||
} elseif ((int)$config['webui']['default_dashboard_id']) {
|
||||
// if the user hasn't set their default page, and there is a global default set
|
||||
$default_dash = (int)$config['webui']['default_dashboard_id'];
|
||||
}
|
||||
if ($default_dash == 0 && dbFetchCell(
|
||||
'SELECT dashboard_id FROM dashboards WHERE user_id=?',
|
||||
array($_SESSION['user_id'])
|
||||
) == 0) {
|
||||
$vars['dashboard'] = dbInsert(array('dashboard_name'=>'Default', 'user_id'=>$_SESSION['user_id']), 'dashboards');
|
||||
if (dbFetchCell('select 1 from users_widgets where user_id = ? && dashboard_id = ?', array($_SESSION['user_id'],0)) == 1) {
|
||||
dbUpdate(array('dashboard_id'=>$vars['dashboard']), 'users_widgets', 'user_id = ? && dashboard_id = ?', array($_SESSION['user_id'],0));
|
||||
dbUpdate(array('dashboard_id'=>$vars['dashboard']), 'users_widgets', 'user_id = ? && dashboard_id = ?', array($_SESSION['user_id'], 0));
|
||||
}
|
||||
}
|
||||
if (!empty($vars['dashboard'])) {
|
||||
|
@@ -25,6 +25,27 @@ $availability_map_conf = array(
|
||||
),
|
||||
);
|
||||
|
||||
$dashboard_conf = array(
|
||||
array('name' => 'webui.default_dashboard_id',
|
||||
'descr' => 'Set global default dashboard id',
|
||||
'type' => 'select',
|
||||
'options' => dbFetchRows(
|
||||
"SELECT 0 as `value`, 'no default dashboard' as `description`
|
||||
UNION ALL
|
||||
SELECT `dashboards`.`dashboard_id` as `value`,
|
||||
CONCAT( `users`.`username`, ':', `dashboards`.`dashboard_name`,
|
||||
CASE
|
||||
WHEN `dashboards`.`access` = 1 THEN ' (shared, read-only)'
|
||||
WHEN `dashboards`.`access` = 2 THEN ' (shared, read-write)'
|
||||
ELSE ''
|
||||
END
|
||||
) as `description`
|
||||
FROM `dashboards` JOIN `users` ON `users`.`user_id` = `dashboards`.`user_id`
|
||||
WHERE `dashboards`.`access` > 0;"
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
echo '
|
||||
<div class="panel-group" id="accordion">
|
||||
<form class="form-horizontal" role="form" action="" method="post">
|
||||
@@ -33,6 +54,7 @@ echo '
|
||||
echo generate_dynamic_config_panel('Graph settings', $config_groups, $graph_conf);
|
||||
echo generate_dynamic_config_panel('Search settings', $config_groups, $search_conf);
|
||||
echo generate_dynamic_config_panel('Availability map settings', $config_groups, $availability_map_conf);
|
||||
echo generate_dynamic_config_panel('Dashboard settings', $config_groups, $dashboard_conf);
|
||||
|
||||
echo '
|
||||
</form>
|
||||
|
Reference in New Issue
Block a user