From 898526eeb23b1a10e852c666242149f44b673fcb Mon Sep 17 00:00:00 2001
From: Cristiano Magro <cristiano.magro@vola.it>
Date: Tue, 27 Aug 2019 11:21:42 +0200
Subject: [PATCH] Refactor creazione nuovo filtro o aggiunta estensione a filtro precedente

---
 src/Vola/UploadFile/FilesFilter.class.php |   40 ++++++++++++++++++++++++++++++++++------
 1 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/src/Vola/UploadFile/FilesFilter.class.php b/src/Vola/UploadFile/FilesFilter.class.php
index 6172a18..4d6d962 100644
--- a/src/Vola/UploadFile/FilesFilter.class.php
+++ b/src/Vola/UploadFile/FilesFilter.class.php
@@ -11,16 +11,25 @@
 
     public function toJson()
     {
-        return json_encode($this->filtro);
+
+        $temp = array();
+
+        /** @var FilterExt $filtro */
+        foreach ($this->filtro as $filtro) {
+            $temp[] = $filtro->getFilterObj();
+        }
+
+        return json_encode($temp);
     }
 
     public function addExt($extension = '')
     {
-        if ($extension != '') {
-            $titolo = $this->decodeTitolo($extension);
-            if ($titolo != null) {
-                $filtro = new FilterExt($titolo, $extension);
-                $this->filtro[] = json_decode($filtro->getFilter());
+        $titolo = $this->decodeTitolo($extension);
+        if ($titolo != null) {
+            if ($this->filtro[$titolo] instanceof FilterExt) {
+                $this->addExtensionToFilter($titolo, $extension);
+            } else {
+                $this->createFilter($titolo, $extension);
             }
         }
         return $this;
@@ -47,4 +56,23 @@
         return $titolo;
     }
 
+    /**
+     * @param $titolo
+     * @param $extension
+     */
+    private function createFilter($titolo, $extension)
+    {
+        $filtro = new FilterExt($titolo, $extension);
+        $this->filtro[$titolo] = $filtro;
+    }
+
+    /**
+     * @param $titolo
+     * @param $extension
+     */
+    private function addExtensionToFilter($titolo, $extension)
+    {
+        $this->filtro[$titolo]->addExt($extension);
+    }
+
 }
\ No newline at end of file

--
Gitblit v1.8.0