]> _ Git - fluidbook-toolbox.git/commitdiff
wip #4600 @3
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 20 Jul 2021 09:38:31 +0000 (11:38 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 20 Jul 2021 09:38:31 +0000 (11:38 +0200)
app/Models/FluidbookTheme.php
resources/views/fluidbook_theme/preview.blade.php

index 6960c3a468b7f5bf54d903f0083c9c713d0c35e1..c97a479f9f33605b2d6f4682bbc79244fe5654c4 100644 (file)
@@ -224,20 +224,13 @@ class FluidbookTheme extends CubistMagicAbstractModel
         $this->addField([
             'name' => 'section_effects',
             'type' => 'FormSection',
-            'label' => __('Reflets, ombres et bordures'),
+            'label' => __('Ombres et bordures'),
         ]);
 
-        $this->addField([
-            'name' => 'pageReflection',
-            'type' => 'Checkbox',
-            'label' => __('Afficher le reflet sur la page'),
-            'default' => false,
-            'translatable' => false,
-        ]);
         $this->addField([
             'name' => 'shadeAlpha',
             'type' => 'Integer',
-            'label' => __('Transparence des ombres et reflets sur les pages'),
+            'label' => __('Transparence des ombres sur les pages'),
             'min' => 0,
             'max' => 100,
             'default' => 100,
@@ -382,17 +375,6 @@ class FluidbookTheme extends CubistMagicAbstractModel
             'type' => 'FormSection',
             'label' => __('Fond d\'écran'),
         ]);
-        $this->addField([
-            'name' => 'transparentBackground',
-            'type' => 'Checkbox',
-            'label' => __('Fond transparent'),
-            'hint' => __('Si cette option est cochée, aucun fond ne sera pris en compte (ni l\'image, ni la couleur)'),
-            'default' => false,
-            'translatable' => false,
-        ]);
-        $this->addField([
-            'type' => 'FormSeparator',
-        ]);
         $this->addField([
             'name' => 'backgroundColor',
             'type' => 'Color',
@@ -583,13 +565,6 @@ class FluidbookTheme extends CubistMagicAbstractModel
             'label' => __('Logo affiché au chargement'),
             'translatable' => false,
         ]);
-        $this->addField([
-            'name' => 'loaderPosition',
-            'type' => 'Checkbox',
-            'label' => __('Placer le logo à gauche et le loader à droite'),
-            'default' => false,
-            'translatable' => false,
-        ]);
         $this->addField([
             'name' => 'section_pagesbar',
             'type' => 'FormSection',
@@ -883,15 +858,15 @@ class FluidbookTheme extends CubistMagicAbstractModel
     public function getPreviewURL($params = [], $page = 2)
     {
         if (count($params) > 0) {
-            $get = [];
+            $g = [];
             foreach ($params as $k => $v) {
-                $get = [$k . '=' . urlencode($v)];
+                $g[] = $k . '=' . urlencode($v);
             }
-            $get = '?' . implode('&', $get);
+            $get = '?' . implode('&', $g);
         } else {
             $get = '';
         }
-        return 'https://workshop.fluidbook.com/viewerh/20098-' . $this->getIdValue() . '_f2e0452eed6dba9878016ce5603fdc54_' . time() . '/' . $get . '#/page/' . $page;
+        return 'https://workshop.fluidbook.com/viewerh/20098-' . $this->getIdValue() . '_f2e0452eed6dba9878016ce5603fdc54/' . $get . '#/page/' . $page;
     }
 
 
index 39927c3a09fec9f9c02aeab91fa014551427ea91..d2f7da535dea2e06147f08cf061dc2f4c06584c9 100644 (file)
@@ -1,5 +1,5 @@
 @php
-    $previewURL=$crud->entry->getPreviewURL(['widget'=>1,'action'=>'fullscreen'],0)
+    $previewURL=$crud->entry->getPreviewURL(['widget'=>'1','action'=>'fullscreen','theme'=>''],0)
 @endphp
 
 @push('after_scripts')
@@ -7,10 +7,40 @@
         (function ($) {
             $(function () {
                 $(document).on('change', 'form input,select,textarea', function () {
-                    var json=JSON.stringify($(this).closest('form').serialize());
-                    console.log(json);
+                    var previewURL = "{!! $previewURL !!}";
+                    var variables = {};
+                    var ignore = ['http_referrer', '_method', '_token', 'slug', 'save_action'];
+                    var form = $(this).closest('form');
+                    $.each($(this).closest('form').serializeArray(), function (k, v) {
+                        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;
+                    });
+                    console.log(variables);
+
+                    var json = JSON.stringify(variables);
+                    var url = previewURL.replace('&theme=', '&theme=' + encodeURIComponent(json));
+                    document.getElementById('themePreviewIframe').src = url;
+
                 });
-            })
+            });
         })(jQuery);
     </script>
 @endpush
@@ -34,6 +64,7 @@
     </style>
 
     <div class="card" id="themePreview">
-        <iframe src="{{$previewURL}}" width="100%" height="100%" frameborder="0" allowfullscreen></iframe>
+        <iframe id="themePreviewIframe" src="{{$previewURL}}" width="100%" height="100%" frameborder="0"
+                allowfullscreen></iframe>
     </div>
 @endsection