From 7a9e29ff933388d96355a49b9a4a1964e107d387 Mon Sep 17 00:00:00 2001
From: Henning Leutz <leutz@pcsg.de>
Date: Wed, 30 Mar 2016 12:22:19 +0200
Subject: [PATCH] =?UTF-8?q?Issue=20#32=20=20In=20den=20Bausteinen=20werden?=
 =?UTF-8?q?=20keine=20CSS-Klassen=20=C3=BCbernommen?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 bin/BrickEdit.js           |  4 ++--
 src/QUI/Bricks/Brick.php   | 46 ++++++++++++++++++++++++++++++--------
 src/QUI/Bricks/Manager.php |  3 +--
 3 files changed, 40 insertions(+), 13 deletions(-)

diff --git a/bin/BrickEdit.js b/bin/BrickEdit.js
index 14b4ab6..e6a52e2 100644
--- a/bin/BrickEdit.js
+++ b/bin/BrickEdit.js
@@ -298,7 +298,7 @@ define('package/quiqqer/bricks/bin/BrickEdit', [
                 var data = this.getAttribute('data');
 
                 this.$unload();
-
+                console.log(data);
                 this.setAttribute('data', data);
                 this.$Active = Button;
 
@@ -354,7 +354,7 @@ define('package/quiqqer/bricks/bin/BrickEdit', [
             var Form   = this.getContent().getElement('form'),
                 unload = this.$Active.getAttribute('name'),
                 data   = this.getAttribute('data');
-
+            console.log(unload);
             if (unload == 'information') {
                 data.attributes = Object.merge(
                     data.attributes,
diff --git a/src/QUI/Bricks/Brick.php b/src/QUI/Bricks/Brick.php
index a6022fc..d15990a 100644
--- a/src/QUI/Bricks/Brick.php
+++ b/src/QUI/Bricks/Brick.php
@@ -69,15 +69,15 @@ public function __construct($params = array())
     {
         // default
         $default = array(
-            'type'        => 'content',
-            'content'     => '',
-            'title'       => '',
+            'type' => 'content',
+            'content' => '',
+            'title' => '',
             'description' => '',
-            'project'     => '',
-            'areas'       => '',
-            'height'      => '',
-            'width'       => '',
-            'classes'     => ''
+            'project' => '',
+            'areas' => '',
+            'height' => '',
+            'width' => '',
+            'classes' => ''
         );
 
         $this->setAttributes($default);
@@ -96,6 +96,16 @@ public function __construct($params = array())
             $this->uniqueId = $params['uniqueId'];
         }
 
+        if (isset($params['classes'])) {
+            $cssClasses = json_decode($params['classes'], true);
+
+            foreach ($cssClasses as $cssClass) {
+                $this->addCSSClass($cssClass);
+            }
+
+            unset($params['classes']);
+        }
+
         // default settings from control
         $Control = $this->getControl();
         $Manager = Manager::init();
@@ -326,6 +336,8 @@ protected function getControl()
      */
     public function getSettings()
     {
+        $this->settings['classes'] = $this->getCSSClasses();
+
         return $this->settings;
     }
 
@@ -356,6 +368,10 @@ public function setSettings($settings)
      */
     public function getSetting($name)
     {
+        if ($name === 'classes') {
+            return $this->getCSSClasses();
+        }
+
         if (isset($this->settings[$name])) {
             return $this->settings[$name];
         }
@@ -397,7 +413,19 @@ public function getCustomFields()
      */
     public function addCSSClass($cssClass)
     {
-        $this->cssClasses[] = $cssClass;
+        if (!empty($cssClass)) {
+            $this->cssClasses[] = $cssClass;
+        }
+    }
+
+    /**
+     * Return all css classes
+     *
+     * @return array
+     */
+    public function getCSSClasses()
+    {
+        return $this->cssClasses;
     }
 
     /**
diff --git a/src/QUI/Bricks/Manager.php b/src/QUI/Bricks/Manager.php
index 0f2dcc8..1672264 100644
--- a/src/QUI/Bricks/Manager.php
+++ b/src/QUI/Bricks/Manager.php
@@ -615,7 +615,6 @@ public function saveBrick($brickId, array $brickData)
             }
         }
 
-
         // update
         QUI::getDataBase()->update($this->getTable(), array(
             'title' => $Brick->getAttribute('title'),
@@ -627,7 +626,7 @@ public function saveBrick($brickId, array $brickData)
             'areas' => $areaString,
             'height' => $Brick->getAttribute('height'),
             'width' => $Brick->getAttribute('width'),
-            'classes' => $Brick->getAttribute('classes')
+            'classes' => json_encode($Brick->getCSSClasses())
         ), array(
             'id' => (int)$brickId
         ));
-- 
GitLab