From 863c47ae38a60c644838790be8b760bfa7c6df43 Mon Sep 17 00:00:00 2001
From: Henning Leutz <leutz@pcsg.de>
Date: Thu, 1 Sep 2022 13:44:09 +0200
Subject: [PATCH] fix: check if areas has been changed, trigger the save only
 if areas changed

---
 src/QUI/Bricks/Events.php | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/QUI/Bricks/Events.php b/src/QUI/Bricks/Events.php
index 5ee59e6..bdf35e6 100644
--- a/src/QUI/Bricks/Events.php
+++ b/src/QUI/Bricks/Events.php
@@ -44,8 +44,9 @@ public static function onSiteSave($Site)
 
         QUI\Permissions\Permission::checkPermission('quiqqer.bricks.assign');
 
-        $areas = $Site->getAttribute('quiqqer.bricks.areas');
-        $areas = json_decode($areas, true);
+        $areas         = $Site->getAttribute('quiqqer.bricks.areas');
+        $oldAreaString = $areas;
+        $areas         = json_decode($areas, true);
 
         if (empty($areas)) {
             return;
@@ -166,8 +167,10 @@ public static function onSiteSave($Site)
         self::$saved[$Site->getId()] = true;
 
         // save bricks with unique ids
-        $Site->setAttribute('quiqqer.bricks.areas', json_encode($areas));
-        $Site->save();
+        if ($oldAreaString !== json_encode($areas)) {
+            $Site->setAttribute('quiqqer.bricks.areas', json_encode($areas));
+            $Site->save();
+        }
     }
 
     /**
-- 
GitLab