]> _ Git - fluidbook-toolbox.git/commitdiff
wip #4216 @1
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 30 Aug 2022 19:32:41 +0000 (21:32 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 30 Aug 2022 19:32:41 +0000 (21:32 +0200)
app/Http/Controllers/Admin/Operations/FluidbookPublication/PreviewOperation.php
app/Models/FluidbookTheme.php
resources/views/fluidbook_theme/preview.blade.php

index 107205a8f5e06dda1a6d47ccba56040ecb948133..25dd8b202e0539cdaeb6d5969d3641fd604b3833 100644 (file)
@@ -176,7 +176,7 @@ html,body{height:100%;cursor: wait;font-family: "Open Sans", Arial;background-co
         $ee = explode('-', $id);
         $forceThemeData = request('theme', false);
         if ($forceThemeData) {
-            $theme = FluidbookTheme::fromArray(json_decode($forceThemeData, true));
+            $theme = FluidbookTheme::fromArray(json_decode($forceThemeData, true), (count($ee) == 2 ? $ee[1] : null));
         } else if (count($ee) == 2) {
             $theme = FluidbookTheme::find($ee[1]);
             $id = $ee[0];
index 536817caca21d9fe5db8d02cbbce0700d78c5985..761e4677832485045120e931899ee799b8111cc4 100644 (file)
@@ -745,10 +745,15 @@ class FluidbookTheme extends ToolboxSettingsModel
      * @param array $a
      * @return FluidbookTheme
      */
-    public static function fromArray(array $a)
+    public static function fromArray(array $a, $base = null)
     {
-        $res = new FluidbookTheme();
-        $res->id = self::hashThemeArray($a);
+        if (null === $base) {
+            $res = new FluidbookTheme();
+            $res->id = self::hashThemeArray($a);
+        } else {
+            $res = FluidbookTheme::find($base);
+        }
+
         foreach ($a as $k => $v) {
             $res->setAttribute($k, $v);
         }
index c3c0b50f640657feb651ee26c74c0ec12d790edf..caf1ef585c720c56b44091f725eaa3ba51d2a4f3 100644 (file)
@@ -6,7 +6,7 @@
     <script>
         (function ($) {
             $(function () {
-                $(document).on('change', 'form input,select,textarea', function () {
+                $(document).on('change', 'form input,select,textarea,.dropzone', function () {
                     var previewURL = "{!! $previewURL !!}";
                     var variables = {};
                     var ignore = ['http_referrer', '_method', '_token', 'slug', 'save_action'];
                         if (ignore.indexOf(v.name) >= 0) {
                             return;
                         }
-                        if ($(form).find(':hidden[name="' + v.name + '"]').nextAll('.dropzone').length > 0) {
-                            return;
-                        }
                         variables[v.name] = v.value;
                     });
-                    $('.dropzone').each(function () {
-                        var file = $(this).find('span[data-dz-name]');
-                        var filename = '';
-                        if ($(file).length > 0) {
-                            filename = $(file).text();
-                        }
-                        var k = $(this).closest('.dropzone').prevAll(':hidden');
-                        if ($(k).length === 0) {
-                            return;
-                        }
-                        var name = $(k).val();
-                        variables[name] = filename;
-                    });
-
+                    // $('.dropzone').each(function () {
+                    //     var file = $(this).find('span[data-dz-name]');
+                    //     var filename = '';
+                    //     if ($(file).length > 0) {
+                    //         filename = $(file).text();
+                    //     }
+                    //     var k = $(this).closest('.dropzone').prevAll(':hidden');
+                    //     if ($(k).length === 0) {
+                    //         return;
+                    //     }
+                    //     var name = $(k).val();
+                    //     variables[name] = filename;
+                    // });
+                    console.log(variables);
                     var json = JSON.stringify(variables);
                     var url = previewURL.replace('&theme=', '&theme=' + encodeURIComponent(json));
                     document.getElementById('themePreviewIframe').src = url;