From 3a78bf4dc1ceaeafe95b55454a8b442564e4d383 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Wed, 24 Aug 2022 13:56:06 +0200 Subject: [PATCH] wip #5414 --- .../Admin/Operations/Tools/JSON2Excel.php | 33 ++-- app/Util/Excel.php | 8 - composer.lock | 20 +-- .../views/fields/fluidbook_chapters.blade.php | 142 +++++++++--------- 4 files changed, 89 insertions(+), 114 deletions(-) delete mode 100644 app/Util/Excel.php diff --git a/app/Http/Controllers/Admin/Operations/Tools/JSON2Excel.php b/app/Http/Controllers/Admin/Operations/Tools/JSON2Excel.php index dbd320aa9..b8417bf20 100644 --- a/app/Http/Controllers/Admin/Operations/Tools/JSON2Excel.php +++ b/app/Http/Controllers/Admin/Operations/Tools/JSON2Excel.php @@ -5,11 +5,12 @@ namespace App\Http\Controllers\Admin\Operations\Tools; use Cubist\Backpack\Magic\Fields\Code; use Cubist\Backpack\Magic\Fields\Text; use Cubist\Backpack\Magic\Form; +use Cubist\Excel\Excel; use Cubist\Util\Files\Files; use Cubist\Util\Str; -use PhpOffice\PhpSpreadsheet\Spreadsheet; -use PhpOffice\PhpSpreadsheet\Style\Alignment; -use PhpOffice\PhpSpreadsheet\Writer\Xlsx; +use PhpOffice\PhpSpreadsheet\Exception; +use Psr\Container\ContainerExceptionInterface; +use Psr\Container\NotFoundExceptionInterface; trait JSON2Excel { @@ -19,15 +20,20 @@ trait JSON2Excel $form->setTitle(__('Convertir du JSON en excel')); $form->setSubmitLabel(__('Convertir')); $form->setSubmitIcon('la la-file-excel'); - $form->addField('name', Text::class, __('Nom du fichier'), ['placeholder' => 'json', 'suffix' => '.xlsx']); + $form->addField('filename', Text::class, __('Nom du fichier'), ['placeholder' => 'json', 'suffix' => '.xlsx']); $form->addField('json', Code::class, __('Contenu JSON'), ['language' => 'js']); return view('tools.form', ['form' => $form]); } + /** + * @throws NotFoundExceptionInterface + * @throws ContainerExceptionInterface + * @throws Exception + */ public function dojson2excel() { $json = request()->get('json'); - $name = request()->get('name', 'json'); + $name = request()->get('filename', 'json'); $safename = Str::slug($name); $data = json_decode($json, true); $first = true; @@ -41,22 +47,7 @@ trait JSON2Excel } $tmpfile = Files::tempnam() . '.xlsx'; - - $spreadsheet = new Spreadsheet(); - $sheet = $spreadsheet->getActiveSheet(); - $sheet->setTitle($name); - $sheet->fromArray($excelData); - - $highest = $sheet->getHighestRowAndColumn(); - $sheet->getStyle('A1:' . $highest['column'] . '1')->applyFromArray(['font' => ['bold' => true,]]); - - foreach ($sheet->getColumnIterator() as $column) { - $sheet->getColumnDimension($column->getColumnIndex())->setAutoSize(true); - } - $sheet->getStyle('A1:' . $highest['column'] . $highest['row'])->getAlignment()->setHorizontal(Alignment::HORIZONTAL_LEFT); - - $writer = new Xlsx($spreadsheet); - $writer->save($tmpfile); + Excel::fromArray($name, $excelData, null, $tmpfile); return response()->download($tmpfile, $safename . '.xlsx')->deleteFileAfterSend(true); diff --git a/app/Util/Excel.php b/app/Util/Excel.php deleted file mode 100644 index 83ef90f2f..000000000 --- a/app/Util/Excel.php +++ /dev/null @@ -1,8 +0,0 @@ - - $(function () { - $(document).trigger('fluidbook_chapters.level.change'); - $(document).on('click', '.chaptersExportExcel', function () { - var json = $(this).closest('.bunchmultiple[data-values]').find('.hiddenfield').eq(0).val(); - var form = $('
' + - '' + - '' + - '' + - '
' - ) - ; - $('body').append(form); - $(form).find('input[name="json"]').val(json); - $(form).find('input[name="name"]').val('chapters_' + $('input[name="id"]').val()); - form.submit(); - return false; - }); - $(document).on('click', '.chaptersImportExcel', function () { - var form = $('
' + - '' + - '' + - '' + - '' + - '
' - ) - ; - $('body').append(form); - var file = $(form).find('input[type="file"]'); - $(file).on('change', function () { - $(form).ajaxSubmit({ - success: function (data) { - var bm = $('[data-bunch-name="{{$field[' - name - ']}}"]' - ). - data('bunchmultiple'); - bm.replaceData(data[0].data); - } + @php $seenFluidbookChapters=true;@endphp + @push('crud_fields_scripts') + -@endpush + + @endpush -@push('crud_fields_styles') - -@endpush + .bunchmultiple_oneline .bunchmultiple__wrapper .item .legend .legendsize .form-group[data-name="decoration"] { + width: 160px; + } + + @endpush @endif @php -$additionalButtons=' - '.__('Remplacer par le contenu d\'un fichier excel').''; -$additionalButtons.=' - '.__('Exporter au format excel').''; + $additionalButtons=' + '.__('Remplacer par le contenu d\'un fichier excel').''; + $additionalButtons.=' + '.__('Exporter au format excel').''; @endphp @include('cubist_back::fields.bunch_oneline_multiple') @php -$additionalButtons=''; + $additionalButtons=''; @endphp -- 2.39.5