Selaa lähdekoodia

Add missing dashboard widgets.

FusionPBX 3 vuotta sitten
vanhempi
commit
d1b372d967
1 muutettua tiedostoa jossa 49 lisäystä ja 24 poistoa
  1. 49 24
      core/dashboard/app_defaults.php

+ 49 - 24
core/dashboard/app_defaults.php

@@ -13,6 +13,19 @@ if ($domains_processed == 1) {
 		$database = new database;
 		$groups = $database->select($sql, $parameters, 'all');
 
+	//get the dashboard
+		$sql = "select ";
+		$sql .= "dashboard_uuid, ";
+		$sql .= "dashboard_name, ";
+		$sql .= "dashboard_path, ";
+		$sql .= "dashboard_order, ";
+		$sql .= "cast(dashboard_enabled as text), ";
+		$sql .= "dashboard_description ";
+		$sql .= "from v_dashboard ";
+		$database = new database;
+		$dashboard_widgets = $database->select($sql, $parameters, 'all');
+		unset($sql, $parameters);
+
 	//add the dashboard widgets
 		$config_files = glob($_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/*/*/resources/dashboard/config.php');
 		$x = 0;
@@ -26,28 +39,39 @@ if ($domains_processed == 1) {
 	//build the array
 		$x = 0;
 		foreach($widgets['dashboard'] as $row) {
-			$array['dashboard'][$x]['dashboard_uuid'] = $row['dashboard_uuid'];
-			$array['dashboard'][$x]['dashboard_name'] = $row['dashboard_name'];
-			$array['dashboard'][$x]['dashboard_path'] = $row['dashboard_path'];
-			$array['dashboard'][$x]['dashboard_order'] = $row['dashboard_order'];
-			$array['dashboard'][$x]['dashboard_enabled'] = $row['dashboard_enabled'];
-			$array['dashboard'][$x]['dashboard_description'] = $row['dashboard_description'];
-			$y = 0;
-			if (is_array($row['dashboard_groups'])) {
-				foreach ($row['dashboard_groups'] as $row) {
-					if (isset($row['group_name'])) {
-						foreach($groups as $field) {
-							if ($row['group_name'] == $field['group_name']) {
-								$array['dashboard'][$x]['dashboard_groups'][$y]['dashboard_group_uuid'] = $row['dashboard_group_uuid'];
-								$array['dashboard'][$x]['dashboard_groups'][$y]['dashboard_uuid'] = $row['dashboard_uuid'];
-								$array['dashboard'][$x]['dashboard_groups'][$y]['group_uuid'] = $field['group_uuid'];
+			//check if the dashboard widget is already in the database
+			$dashboard_found = false;
+			foreach($dashboard_widgets as $dashboard_widget) {
+				if ($dashboard_widget['dashboard_uuid'] == $row['dashboard_uuid']) {
+					$dashboard_found = true;
+				}
+			}
+
+			//add the dashboard widget to the array
+			if (!$dashboard_found) {
+				$array['dashboard'][$x]['dashboard_uuid'] = $row['dashboard_uuid'];
+				$array['dashboard'][$x]['dashboard_name'] = $row['dashboard_name'];
+				$array['dashboard'][$x]['dashboard_path'] = $row['dashboard_path'];
+				$array['dashboard'][$x]['dashboard_order'] = $row['dashboard_order'];
+				$array['dashboard'][$x]['dashboard_enabled'] = $row['dashboard_enabled'];
+				$array['dashboard'][$x]['dashboard_description'] = $row['dashboard_description'];
+				$y = 0;
+				if (is_array($row['dashboard_groups'])) {
+					foreach ($row['dashboard_groups'] as $row) {
+						if (isset($row['group_name'])) {
+							foreach($groups as $field) {
+								if ($row['group_name'] == $field['group_name']) {
+									$array['dashboard'][$x]['dashboard_groups'][$y]['dashboard_group_uuid'] = $row['dashboard_group_uuid'];
+									$array['dashboard'][$x]['dashboard_groups'][$y]['dashboard_uuid'] = $row['dashboard_uuid'];
+									$array['dashboard'][$x]['dashboard_groups'][$y]['group_uuid'] = $field['group_uuid'];
+								}
 							}
+							$y++;
 						}
-						$y++;
 					}
 				}
-			}
 			$x++;
+			}
 		}
 
 	//add the temporary permissions
@@ -56,13 +80,14 @@ if ($domains_processed == 1) {
 		$p->add('dashboard_group_add', 'temp');
 
 	//save the data
-		$database = new database;
-		$database->app_name = 'dashboard';
-		$database->app_uuid = '55533bef-4f04-434a-92af-999c1e9927f7';
-		$database->save($array);
-		//$result = $database->message;
-		//view_array($result);
-		//exit;
+		if (is_array($array)) {
+			$database = new database;
+			$database->app_name = 'dashboard';
+			$database->app_uuid = '55533bef-4f04-434a-92af-999c1e9927f7';
+			$database->save($array);
+			//$result = $database->message;
+			//view_array($result);
+		}
 
 	//delete the temporary permissions
 		$p->delete('dashboard_add', 'temp');