]> _ Git - fluidbook-toolbox.git/commitdiff
wait #5363 @1
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 19 Jul 2022 15:34:46 +0000 (17:34 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 19 Jul 2022 15:34:46 +0000 (17:34 +0200)
app/Models/FluidbookPublication.php
resources/views/fields/fluidbook_composition.blade.php

index adbb93657c2037e28812e8ca130aad44cf9da5b7..956094359421a5e0675533724330f95aa6cd28f1 100644 (file)
@@ -37,6 +37,8 @@ class FluidbookPublication extends ToolboxModel
 
     protected $_operations = [CompositionOperation::class];
 
+    protected $casts = ['composition' => 'array'];
+
     use PublicationSettings;
     use SCORMVersionTrait;
 
@@ -192,4 +194,17 @@ class FluidbookPublication extends ToolboxModel
         ]);
 
     }
+
+    public function getDocumentSizes()
+    {
+        $res = [];
+        foreach ($this->composition as $page => $data) {
+            if (isset($res[$data[0]])) {
+                continue;
+            }
+            $doc = self::_getDocument($data[0]);
+            $res[$data[0]] = $doc->pdf_data['size'];
+        }
+        return $res;
+    }
 }
index 49e367f6654b93db7f34e3745d97b41628350b4c..1eb0f8b8f4314db993bfa22092ef540755b91f2a 100644 (file)
@@ -1,14 +1,14 @@
 @if (!isset($seenFluidbookComposition))
     @php $seenFluidbookComposition=true;@endphp
     @push('crud_fields_scripts')
-
         <script>
             $(function () {
                 function initPages() {
                     var data = JSON.parse($("#compositionField").val());
                     var numbers = $('input[name="page_numbers"]').val().split(',');
+                    var sizes = $("#compositionField").data('doc-sizes');
                     $.each(data, function (pageNr, page) {
-                        addPage(page[0], page[1], numbers[pageNr - 1]);
+                        addPage(page[0], page[1], numbers[pageNr - 1], sizes[page[0]]);
                     });
 
                     var composition = $('#composition_pages').get(0);
                     return $("#composition_pages .page.selected").length > 0;
                 }
 
-                function addPage(document_id, document_page, pageNumber) {
-                    $("#composition_pages").append('<div class="page" data-id="[' + document_id + ',' + document_page + ']"><img src="/fluidbook-publication/docs/' + document_id + '/thumb_' + document_page + '.jpg" /><span>' + pageNumber + '</span></div>');
+                function addPage(document_id, document_page, pageNumber, size) {
+                    $("#composition_pages").append('<div class="page" data-id="[' + document_id + ',' + document_page + ']"><img width="' + size[0] + '" height="' + size[1] + '" src="/fluidbook-publication/docs/' + document_id + '/thumb_' + document_page + '.jpg" /><span>' + pageNumber + '</span></div>');
                 }
 
                 function compositionContextMulti() {
                             }
                         },
                         sep3: "---------",
-                        nonum:{
-                            name:"{{__('Pas de numérotation à partir de cette page')}}",
-                            callback:function(){
+                        nonum: {
+                            name: "{{__('Pas de numérotation à partir de cette page')}}",
+                            callback: function () {
 
                             },
                         },
-                        decnum:{
-                            name:"{{__("Numérotation décimale à partir de cette page")}}",
-                            callback:function(){
+                        decnum: {
+                            name: "{{__("Numérotation décimale à partir de cette page")}}",
+                            callback: function () {
 
                             },
                         },
-                        romannum:{
-                            name:"{{__("Numérotation romaine à partir de cette page")}}",
-                            callback:function(){
+                        romannum: {
+                            name: "{{__("Numérotation romaine à partir de cette page")}}",
+                            callback: function () {
 
                             },
                         }
 
     @endpush
 @endif
+@php
+    $v=old(square_brackets_to_dots($field['name'])) ?? $field['value'] ?? $field['default'] ?? '';
+    if(!is_string($v)){
+        $v=json_encode($v);
+    }
+@endphp
 <div id="composition">
     <input
         id="compositionField"
         type="hidden"
         name="{{ $field['name'] }}"
-        value="{{ old(square_brackets_to_dots($field['name'])) ?? $field['value'] ?? $field['default'] ?? '' }}"
+        value="{{ $v }}"
+        data-doc-sizes="{{  json_encode($entry->getDocumentSizes()) }}"
         @include('crud::fields.inc.attributes')
     >
     <div id="composition_uploader"></div>