From a63ea7844102b634bd0735a93220bc62ef35608e Mon Sep 17 00:00:00 2001 From: Daniel Preussker Date: Sun, 13 Dec 2015 19:39:12 +0000 Subject: [PATCH] First Draft in Per-User default dashboards --- html/pages/edituser.inc.php | 16 ++++++++++++++++ html/pages/front/tiles.php | 16 +++++++++++++--- sql-schema/084.sql | 1 + 3 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 sql-schema/084.sql diff --git a/html/pages/edituser.inc.php b/html/pages/edituser.inc.php index 61bc615f9b..c07c48037b 100644 --- a/html/pages/edituser.inc.php +++ b/html/pages/edituser.inc.php @@ -312,6 +312,10 @@ else { } } + if (!empty($vars['dashboard'])) { + dbUpdate(array('dashboard'=>$vars['dashboard']),'users','user_id = ?',array($vars['user_id'])); + } + echo "
@@ -374,6 +378,18 @@ if (passwordscanchange($users_details['username'])) { "; } + echo " +
+ +
+
+
+ "; echo "
diff --git a/html/pages/front/tiles.php b/html/pages/front/tiles.php index f847d41c1d..67b1b8f591 100644 --- a/html/pages/front/tiles.php +++ b/html/pages/front/tiles.php @@ -16,8 +16,13 @@ * Code for Gridster.sort_by_row_and_col_asc(serialization) call is from http://gridster.net/demos/grid-from-serialize.html */ -$no_refresh = true; -if (dbFetchCell('SELECT dashboard_id FROM dashboards WHERE user_id=?',array($_SESSION['user_id'])) == 0) { +$no_refresh = true; +$default_dash = 0; +if (($tmp = dbFetchCell('SELECT dashboard FROM users WHERE user_id=?',array($_SESSION['user_id']))) != 0) { + $default_dash = $tmp; +} +else if (dbFetchCell('SELECT dashboard_id FROM dashboards WHERE user_id=?',array($_SESSION['user_id'])) == 0) { + $tmp = dbInsert(array('dashboard_name'=>'Default','user_id'=>$_SESSION['user_id']),'dashboards'); $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)); @@ -31,7 +36,12 @@ if (!empty($vars['dashboard'])) { } } if (empty($vars['dashboard'])) { - $vars['dashboard'] = dbFetchRow('select * from dashboards where user_id = ? order by dashboard_id limit 1',array($_SESSION['user_id'])); + if ($default_dash != 0) { + $vars['dashboard'] = dbFetchRow('select * from dashboards where dashboard_id = ?',array($default_dash)); + } + else { + $vars['dashboard'] = dbFetchRow('select * from dashboards where user_id = ? order by dashboard_id limit 1',array($_SESSION['user_id'])); + } if (isset($orig)) { $msg_box[] = array('type' => 'error', 'message' => 'Dashboard #'.$orig.' does not exist! Loaded '.$vars['dashboard']['dashboard_name'].' instead.','title' => 'Requested Dashboard Not Found!'); } diff --git a/sql-schema/084.sql b/sql-schema/084.sql new file mode 100644 index 0000000000..b9df6c3d26 --- /dev/null +++ b/sql-schema/084.sql @@ -0,0 +1 @@ +ALTER TABLE `users` ADD `dashboard` INT( 11 ) DEFAULT 0 NOT NULL;