app_defaults.php 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <?php
  2. if ($domains_processed == 1) {
  3. //clear the array if it exists
  4. if (isset($array)) {
  5. unset($array);
  6. }
  7. //make the default groups exist
  8. $group = new groups;
  9. $group->defaults();
  10. //get the groups
  11. $sql = "select * from v_groups ";
  12. $sql .= "where domain_uuid is null ";
  13. $groups = $database->select($sql, null, 'all');
  14. //get the dashboard
  15. $sql = "select ";
  16. $sql .= "dashboard_uuid, ";
  17. $sql .= "dashboard_name, ";
  18. $sql .= "dashboard_path, ";
  19. $sql .= "dashboard_order, ";
  20. $sql .= "cast(dashboard_enabled as text), ";
  21. $sql .= "dashboard_description ";
  22. $sql .= "from v_dashboard ";
  23. $dashboard_widgets = $database->select($sql, null, 'all');
  24. unset($sql, $parameters);
  25. //add the dashboard widgets
  26. $config_files = glob($_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/*/*/resources/dashboard/config.php');
  27. $x = 0;
  28. foreach($config_files as $file) {
  29. include ($file);
  30. $x++;
  31. }
  32. $widgets = $array;
  33. unset($array);
  34. //build the array
  35. $x = 0;
  36. foreach($widgets['dashboard'] as $row) {
  37. //check if the dashboard widget is already in the database
  38. $dashboard_found = false;
  39. foreach($dashboard_widgets as $dashboard_widget) {
  40. if ($dashboard_widget['dashboard_uuid'] == $row['dashboard_uuid']) {
  41. $dashboard_found = true;
  42. }
  43. }
  44. //add the dashboard widget to the array
  45. if (!$dashboard_found) {
  46. $array['dashboard'][$x]['dashboard_uuid'] = $row['dashboard_uuid'];
  47. $array['dashboard'][$x]['dashboard_name'] = $row['dashboard_name'];
  48. $array['dashboard'][$x]['dashboard_path'] = $row['dashboard_path'];
  49. $array['dashboard'][$x]['dashboard_chart_type'] = $row['dashboard_chart_type'] ?? "doughnut";
  50. $array['dashboard'][$x]['dashboard_column_span'] = $row['dashboard_column_span'] ?? 1;
  51. $array['dashboard'][$x]['dashboard_row_span'] = $row['dashboard_row_span'] ?? 2;
  52. $array['dashboard'][$x]['dashboard_details_state'] = $row['dashboard_details_state'] ?? "expanded";
  53. $array['dashboard'][$x]['dashboard_order'] = $row['dashboard_order'];
  54. $array['dashboard'][$x]['dashboard_enabled'] = $row['dashboard_enabled'];
  55. $array['dashboard'][$x]['dashboard_description'] = $row['dashboard_description'];
  56. $array['dashboard'][$x]['dashboard_label_enabled'] = $row['dashboard_label_enabled'] ?? 'true';
  57. if (!empty($row['dashboard_label_text_color'])) { $array['dashboard'][$x]['dashboard_label_text_color'] = $row['dashboard_label_text_color']; }
  58. if (!empty($row['dashboard_label_text_color_hover'])) { $array['dashboard'][$x]['dashboard_label_text_color_hover'] = $row['dashboard_label_text_color_hover']; }
  59. if (!empty($row['dashboard_number_text_color'])) { $array['dashboard'][$x]['dashboard_number_text_color'] = $row['dashboard_number_text_color']; }
  60. if (!empty($row['dashboard_number_text_color_hover'])) { $array['dashboard'][$x]['dashboard_number_text_color_hover'] = $row['dashboard_number_text_color_hover']; }
  61. if (!empty($row['dashboard_icon'])) { $array['dashboard'][$x]['dashboard_icon'] = $row['dashboard_icon']; }
  62. if (!empty($row['dashboard_url'])) { $array['dashboard'][$x]['dashboard_url'] = $row['dashboard_url']; }
  63. if (!empty($row['dashboard_width'])) { $array['dashboard'][$x]['dashboard_width'] = $row['dashboard_width']; }
  64. if (!empty($row['dashboard_height'])) { $array['dashboard'][$x]['dashboard_height'] = $row['dashboard_height']; }
  65. if (!empty($row['dashboard_target'])) { $array['dashboard'][$x]['dashboard_target'] = $row['dashboard_target']; }
  66. if (!empty($row['dashboard_label_background_color'])) { $array['dashboard'][$x]['dashboard_label_background_color'] = $row['dashboard_label_background_color']; }
  67. if (!empty($row['dashboard_label_background_color_hover'])) { $array['dashboard'][$x]['dashboard_label_background_color'] = $row['dashboard_label_background_color_hover']; }
  68. if (!empty($row['dashboard_background_color'])) { $array['dashboard'][$x]['dashboard_background_color'] = $row['dashboard_background_color']; }
  69. if (!empty($row['dashboard_background_color_hover'])) { $array['dashboard'][$x]['dashboard_background_color_hover'] = $row['dashboard_background_color_hover']; }
  70. if (!empty($row['dashboard_detail_background_color'])) { $array['dashboard'][$x]['dashboard_detail_background_color'] = $row['dashboard_detail_background_color']; }
  71. if (!empty($row['dashboard_content'])) { $array['dashboard'][$x]['dashboard_content'] = $row['dashboard_content']; }
  72. if (!empty($row['dashboard_content_details'])) { $array['dashboard'][$x]['dashboard_content_details'] = $row['dashboard_content_details']; }
  73. $y = 0;
  74. if (!empty($row['dashboard_groups'])) {
  75. foreach ($row['dashboard_groups'] as $row) {
  76. if (isset($row['group_name'])) {
  77. foreach($groups as $field) {
  78. if ($row['group_name'] == $field['group_name']) {
  79. $array['dashboard'][$x]['dashboard_groups'][$y]['dashboard_group_uuid'] = $row['dashboard_group_uuid'];
  80. $array['dashboard'][$x]['dashboard_groups'][$y]['dashboard_uuid'] = $row['dashboard_uuid'];
  81. $array['dashboard'][$x]['dashboard_groups'][$y]['group_uuid'] = $field['group_uuid'];
  82. }
  83. }
  84. $y++;
  85. }
  86. }
  87. }
  88. $x++;
  89. }
  90. }
  91. //add the temporary permissions
  92. $p = permissions::new();
  93. $p->add('dashboard_add', 'temp');
  94. $p->add('dashboard_group_add', 'temp');
  95. //save the data
  96. if (!empty($array)) {
  97. $database->app_name = 'dashboard';
  98. $database->app_uuid = '55533bef-4f04-434a-92af-999c1e9927f7';
  99. $database->save($array, false);
  100. //$result = $database->message;
  101. //view_array($result);
  102. }
  103. //delete the temporary permissions
  104. $p->delete('dashboard_add', 'temp');
  105. $p->delete('dashboard_group_add', 'temp');
  106. //update dashboard icons to be prefixed with v6.x font awesome style class name (e.g. 'fa-solid ')
  107. $queries[] = "update v_dashboard set dashboard_icon = concat('fa-solid ', dashboard_icon) where dashboard_icon is not null and dashboard_icon not like 'fa-solid fa-%' and dashboard_icon not like 'fa-regular fa-%' and dashboard_icon not like 'fa-brands fa-%' ";
  108. //simplify the dashboard path
  109. $queries[] = "update v_dashboard set dashboard_path = regexp_replace(dashboard_path, 'app/|core/|resources/dashboard/|\.php', '', 'g') where dashboard_path like '%.php';";
  110. //execute array of queries
  111. foreach ($queries as $sql) {
  112. $database->execute($sql);
  113. }
  114. unset($queries, $sql);
  115. }
  116. ?>