]> _ Git - fluidbook-toolbox.git/commitdiff
wait #6572 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 15 Dec 2023 09:56:43 +0000 (10:56 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 15 Dec 2023 09:56:43 +0000 (10:56 +0100)
app/Fields/FluidbookExtranetTask.php
app/Fluidbook/Compiler/Stats.php

index 4ab046e076c968bd200d74e5ab95f27ea359f284..f65b0f77eac5a9cfbdacbbb775cb745ded732b2b 100644 (file)
@@ -3,49 +3,66 @@
 namespace App\Fields;
 
 use Cubist\Backpack\Magic\Fields\SelectFromArray;
+use Illuminate\Support\Facades\Cache;
 use Illuminate\Support\Facades\DB;
 
 class FluidbookExtranetTask extends SelectFromArray
 {
+    protected static $_projects = null;
+    protected static $_projectTasks = null;
+
+    protected static $_taskOptions = null;
+
     public function getOptions()
     {
-        $res = [];
-        $projects = static::_getProjects();
-        $projectTasks = static::_getTasks();
 
-        foreach ($projectTasks as $project => $tasks) {
-            if(!isset($projects[$project])){
-                continue;
+        if (null === static::$_taskOptions) {
+            $_taskOptions = [];
+            if (null === static::$_projects) {
+                static::$_projects = static::_getProjects();
             }
-            $t = [];
-            foreach ($tasks as $id => $task) {
-                $t[$id] = $task->nom;
+            if (null === static::$_projectTasks) {
+                static::$_projectTasks = static::_getTasks();
+            }
+
+            foreach (static::$_projectTasks as $project => $tasks) {
+                if (!isset(static::$_projects[$project])) {
+                    continue;
+                }
+                $t = [];
+                foreach ($tasks as $id => $task) {
+                    $t[$id] = $task->nom;
+                }
+                //   $res['project_' . $project] = ["text" => $projects[$project]->nom, 'children' => $t];
             }
-         //   $res['project_' . $project] = ["text" => $projects[$project]->nom, 'children' => $t];
         }
 
-        return $res;
+        return static::$_taskOptions;
     }
 
     protected static function _getProjects()
     {
-        $projects = [];
-        foreach (DB::connection('extranet')->table('projets')->orderBy('projet_id', 'DESC')->get()->all() as $project) {
-            $projects[$project->projet_id] = $project;
-        }
+        return Cache::remember('fluidbook_extranet_tasks_projects', 360, function () {
+            $projects = [];
+            foreach (DB::connection('extranet')->table('projets')->orderBy('projet_id', 'DESC')->get()->all() as $project) {
+                $projects[$project->projet_id] = $project;
+            }
 
-        return $projects;
+            return $projects;
+        });
     }
 
     protected static function _getTasks()
     {
-        $tasks = [];
-        foreach (DB::connection('extranet')->table('taches')->orderBy('tache_id', 'ASC')->get()->all() as $task) {
-            if (!isset($tasks[$task->projet])) {
-                $tasks[$task->projet] = [];
+        return Cache::remember('fluidbook_extranet_tasks', 360, function () {
+            $tasks = [];
+            foreach (DB::connection('extranet')->table('taches')->orderBy('tache_id', 'ASC')->get()->all() as $task) {
+                if (!isset($tasks[$task->projet])) {
+                    $tasks[$task->projet] = [];
+                }
+                $tasks[$task->projet][$task->tache_id] = $task;
             }
-            $tasks[$task->projet][$task->tache_id] = $task;
-        }
-        return $tasks;
+            return $tasks;
+        });
     }
 }
index 2df8e5ff7be09cd3e7338aa9e1ea24eb24ce9c03..6d6b705f91ddfa4837290ec3874bbb06dd850244 100644 (file)
@@ -62,7 +62,7 @@ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
 
                 $scriptNames = explode(',', $this->config->tagcommander_scriptname);
 
-                $headScripts = array_shift($scriptNames);
+                $headScripts = [array_shift($scriptNames)];
                 $bodyScripts = $scriptNames;
 
                 if ($this->fluidbookSettings->tagcommander_plan) {