From 2087bff4ea64535630062b86bbebdbfc155530b6 Mon Sep 17 00:00:00 2001
From: Jan Wennrich <jan@pcsg.de>
Date: Wed, 15 Nov 2017 12:25:47 +0100
Subject: [PATCH] feat: ContentSwitcher parses media-input-control on entry
 added (#73)

---
 bin/Controls/ContentSwitcher.js | 75 +++++++++++++++++++++------------
 1 file changed, 48 insertions(+), 27 deletions(-)

diff --git a/bin/Controls/ContentSwitcher.js b/bin/Controls/ContentSwitcher.js
index cf6a607..338acd2 100644
--- a/bin/Controls/ContentSwitcher.js
+++ b/bin/Controls/ContentSwitcher.js
@@ -1,4 +1,3 @@
-
 /**
  *
  * @module package/quiqqer/bricks/bin/Controls/ContentSwitcher
@@ -10,47 +9,69 @@ define('package/quiqqer/bricks/bin/Controls/ContentSwitcher', [
 
     'qui/controls/elements/FormList',
 
+    'utils/Controls',
+
     'Locale',
 
     'css!package/quiqqer/bricks/bin/Controls/ContentSwitcher.css'
 
-], function (QUIFormList, QUILocale) {
+], function (QUIFormList, QUIControls, QUILocale) {
     "use strict";
 
     var lg = 'quiqqer/bricks';
 
     return new Class({
 
-        Extends : QUIFormList,
-        Type    : 'package/quiqqer/bricks/bin/Controls/ContentSwitcher',
+        Extends: QUIFormList,
+        Type   : 'package/quiqqer/bricks/bin/Controls/ContentSwitcher',
 
-        initialize : function (options) {
+        initialize: function (options) {
             this.parent(options);
 
+            this.addEvents({
+                parsed: this.onParsed
+            });
+
             this.setAttribute(
-            'entry',
-
-            '<div class="quiqqer-bricks-ContentSwitcher-entry">' +
-                '<label>' +
-                    '<span class="entry-title">'+
-                        QUILocale.get(lg, 'contentSwitcher.entries.entry.picture') +
-                    '</span>' +
-                    '<input type="text" class="media-image" name="img" />' +
-                '</label>' +
-                '<label>' +
-                    '<span class="entry-title">'+
-                        QUILocale.get(lg, 'contentSwitcher.entries.entry.title') +
-                    '</span>' +
-                    '<input type="text" name="title" />' +
-                '</label>' +
-                '<label>' +
-                    '<span class="entry-title">'+
-                        QUILocale.get(lg, 'contentSwitcher.entries.entry.content') +
-                    '</span>' +
-                    '<textarea name="content" rows="10"></textarea>' +
-                '</label>' +
-            '</div>'
+                'entry',
+
+                '<div class="quiqqer-bricks-ContentSwitcher-entry" style="display: none;">' +
+                    '<label class="entry-image">' +
+                        '<span class="entry-title">' +
+                            QUILocale.get(lg, 'contentSwitcher.entries.entry.picture') +
+                        '</span>' +
+                        '<input class="media-image" data-qui-options-selectable_types="image" name="img"/>' +
+                    '</label>' +
+                    '<label>' +
+                        '<span class="entry-title">' +
+                             QUILocale.get(lg, 'contentSwitcher.entries.entry.title') +
+                        '</span>' +
+                        '<input type="text" name="title" />' +
+                    '</label>' +
+                    '<label>' +
+                        '<span class="entry-title">' +
+                            QUILocale.get(lg, 'contentSwitcher.entries.entry.content') +
+                        '</span>' +
+                        '<textarea name="content" rows="10"></textarea>' +
+                    '</label>' +
+                '</div>'
             );
+        },
+
+
+        /**
+         * Parses QUI controls when a new entry is created
+         *
+         * Fired after (inherited) FormList has parsed the content
+         *
+         * @param event
+         * @param Element - The element that was previously parsed by (inherited) FormList
+         */
+        onParsed: function (event, Element) {
+            QUIControls.parse(Element).then(function () {
+                // Element is fully parsed so we can finally show it
+                Element.getElement('.quiqqer-bricks-ContentSwitcher-entry').show();
+            });
         }
     });
 });
-- 
GitLab