class FluidbookChapters extends BunchOfFieldsMultiple
{
protected $_adminType = 'fluidbook_chapters';
- protected $_viewNamespace='fields';
+ protected $_viewNamespace = 'fields';
protected $_bunch = FluidbookChapter::class;
protected $_show_empty = false;
+
+ public function getDefaultAttributes()
+ {
+ return array_merge(parent::getDefaultAttributes(), ["add_label" => __('Nouveau chapître')]);
+ }
}
--- /dev/null
+<?php
+
+namespace App\Http\Controllers\Admin\Operations\Tools;
+
+use Cubist\Backpack\Magic\Fields\Code;
+use Cubist\Backpack\Magic\Form;
+use Cubist\Util\Files\Files;
+
+trait JSON2Excel
+{
+ public function json2excel()
+ {
+ $form = new Form(backpack_url('tools/dojson2excel'));
+ $form->setTitle(__('Convertir du JSON en excel'));
+ $form->setSubmitLabel(__('Convertir'));
+ $form->setSubmitIcon('la la-file-excel');
+ $form->addField('json', Code::class, __('Contenu JSON'), ['language' => 'js']);
+ return view('tools.form', ['form' => $form]);
+ }
+
+ public function dojson2excel()
+ {
+ $json = request()->get('json');
+ $data = json_decode($json, true);
+ $first = true;
+ $excelData = [];
+ foreach ($data as $line) {
+ if ($first) {
+ $excelData[] = array_keys($line);
+ }
+ $excelData[] = array_values($line);
+ }
+
+ $tmpfile = Files::tempnam() . '.xlsx';
+ return response()->download($tmpfile, 'json.xlsx')->deleteFileAfterSend(true);
+
+ }
+
+
+}
use App\Http\Controllers\Admin\Operations\Tools\DockerWebContainer;
use App\Http\Controllers\Admin\Operations\Tools\FluidbookAssetsDownloader;
use App\Http\Controllers\Admin\Operations\Tools\GitReposCreate;
+use App\Http\Controllers\Admin\Operations\Tools\JSON2Excel;
use App\Http\Controllers\Admin\Operations\Tools\PDF2SVGOperation;
use App\Http\Controllers\Admin\Operations\Tools\TextToSpeech;
use App\Http\Controllers\Controller;
use GitReposCreate;
use TextToSpeech;
use DockerWebContainer;
+ use JSON2Excel;
protected function index($tool, $args = '')
{
<script>
$(function () {
$(document).trigger('fluidbook_chapters.level.change');
+ $(document).on('click', '.chaptersExportExcel', function () {
+ var json = $(this).closest('.bunchmultiple[data-values]').attr('data-values');
+ var form = $('<form action="{{backpack_url('tools/dojson2excel')}}" method="post">' +
+ '<input type="hidden" name="json" value="" />' +
+ '</form>');
+ $('body').append(form);
+ $(form).find('input').val(json);
+ form.submit();
+ });
});
+
</script>
@endpush
@endpush
@endif
+@php
+ $additionalButtons='<a href="#" class="btn btn-sm btn-secondary"><i class="la la-file-excel"></i> '.__('Remplacer par le contenu d\'un fichier excel').'</a>';
+ $additionalButtons.='<a href="#" class="btn btn-sm btn-success chaptersExportExcel"><i class="la la-file-excel"></i> '.__('Exporter au format excel').'</a>';
+@endphp
@include('cubist_back::fields.bunch_oneline_multiple')
+@php
+ $additionalButtons='';
+@endphp
+
+
<li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/tts') }}'><i
class='nav-icon la la-volume-up'></i>
<span>{{__('Text to speech')}}</span></a></li>
+ <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/json2excel') }}'><i
+ class='nav-icon la la-file-excel'></i>
+ <span>{{__('JSON to Excel')}}</span></a></li>
{{-- <li class='nav-item'><a class='nav-link' href='{{ backpack_url('tools/securehosting') }}'><i--}}
{{-- class='nav-icon la la-lock'></i>--}}
{{-- <span>{{__('Sécuriser hosting')}}</span></a></li>--}}