Form::flatten_variables: Array Serialisierung gefixt
authorSven Schöling <s.schoeling@linet-services.de>
Tue, 9 Oct 2018 15:58:30 +0000 (17:58 +0200)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Fri, 9 Nov 2018 09:17:41 +0000 (10:17 +0100)
Durch einen 11 Jahren alten Bug wurden Top-Level Arrays nicht
serialisiert sondern jeweils nur das letzte Element zurückgegeben.

Die gefixte Version schafft alle relevanten Tests der t/helper/flatten
suite bis auf nested arrays, die sind von dieser Variante nicht
unterstützt.

(cherry picked from commit e7f489be84347d8e8571c2459e4afda8fb3d978a)

SL/Form.pm

index 0ecb221..da46843 100644 (file)
@@ -150,7 +150,7 @@ sub _flatten_variables_rec {
           $first_array_entry = 0;
         }
       } else {
-        @result = ({ 'key' => $prefix . $key . ($first_array_entry ? '[+]' : '[]'), 'value' => $element });
+        push @result, { 'key' => $prefix . $key . '[]', 'value' => $element };
       }
     }
   }