From 9dc47d00d5b2e1e6a06603c61842b006c6d9d7e0 Mon Sep 17 00:00:00 2001
From: "Hahn Axel (hahn)" <axel.hahn@iml.unibe.ch>
Date: Thu, 15 Dec 2022 13:38:29 +0100
Subject: [PATCH] loop over all params

---
 public_html/pages/component.php | 51 +++++++++++++++++++--------------
 1 file changed, 30 insertions(+), 21 deletions(-)

diff --git a/public_html/pages/component.php b/public_html/pages/component.php
index e3b820a..22b0209 100644
--- a/public_html/pages/component.php
+++ b/public_html/pages/component.php
@@ -108,6 +108,7 @@ if(!$renderAdminLTE->getComponent($sComponent)) {
         <tr><td colspan="2">
             <button class="btn btn-primary">Submit</button> 
             <a href="?id='.$sComponent.'" class="btn btn-secondary">Reset</a>
+            <a href="?id='.$sComponent.'&doloop=1" class="btn btn-secondary">Loop all</a>
         </td></tr>
     </tbody></table>
     </form>
@@ -115,21 +116,34 @@ if(!$renderAdminLTE->getComponent($sComponent)) {
 
     // --------- loop over a single var
     $sLooper='';
-    if(
-        isset($_GET['doloop']) 
-        && $renderAdminLTE->getComponentParamkey($sComponent, $_GET['doloop'])
-    ){
-        $sLoopvar=$_GET['doloop'];
-        
-        foreach($renderAdminLTE->getValidParamValues($sComponent, $sLoopvar) as $sLoopValue){
-            $aLoopoptions=$aWidgetOptions;
-            $aLoopoptions[$sLoopvar]=$sLoopValue;
-
-            $sLooper.=$renderAdminLTE->addCol(
-                '<h4>"'.$sLoopvar.'" => "'.$sLoopValue.'"</h4>'
-                    .getOutput('$renderAdminLTE->'.$aComp['method'].'('.var_export($aLoopoptions, 1).')'),
-                3
-            );
+    $sLoopvar=isset($_GET['doloop']) ? $_GET['doloop'] : '';
+    $aLoopvars=[];
+
+    if ($sLoopvar==1){
+        $aLoopvars=$renderAdminLTE->getComponentParamkeys($sComponent);
+    } elseif($renderAdminLTE->getComponentParamkey($sComponent, $sLoopvar)) {
+        $aLoopvars=[$sLoopvar];
+    }
+
+    if(count($aLoopvars)){
+        foreach($aLoopvars as $sLoopvar){
+            $sLoop4Var='';
+            foreach($renderAdminLTE->getValidParamValues($sComponent, $sLoopvar) as $sLoopValue){
+                $aLoopoptions=$aWidgetOptions;
+                $aLoopoptions[$sLoopvar]=$sLoopValue;
+
+                $sLoop4Var.=$renderAdminLTE->addCol(
+                    '<br><code>"'.$sLoopvar.'" => "'.$sLoopValue.'"</code><br>'
+                        .getOutput('$renderAdminLTE->'.$aComp['method'].'('.var_export($aLoopoptions, 1).')'),
+                    3
+                );
+            }
+            $sLooper.=$sLoop4Var
+                ? $renderAdminLTE->addRow('<h4>Loop over values of key "'.$sLoopvar.'"</h4>')
+                    .$renderAdminLTE->addRow($sLoop4Var)
+                    .'<hr>'
+                : ''
+                ;
         }
     }
 
@@ -157,11 +171,6 @@ if(!$renderAdminLTE->getComponent($sComponent)) {
             8
         )
     )
-    .(
-        $sLooper 
-        ? $renderAdminLTE->addRow($sLooper)
-        
-        : ''
-    )
+    .$sLooper 
     ;
 }
\ No newline at end of file
-- 
GitLab