From 0f33d16de84e77ab90b03c9412b707ed5d51c70f Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Fri, 8 Jul 2022 19:59:17 +0200 Subject: [PATCH] wip #5351 @0.5 --- app/Fields/FluidbookChapters.php | 7 +++- .../Admin/Operations/Tools/JSON2Excel.php | 40 +++++++++++++++++++ .../Controllers/Admin/ToolsController.php | 2 + .../views/fields/fluidbook_chapters.blade.php | 19 +++++++++ resources/views/tools/sidebar.blade.php | 3 ++ 5 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 app/Http/Controllers/Admin/Operations/Tools/JSON2Excel.php diff --git a/app/Fields/FluidbookChapters.php b/app/Fields/FluidbookChapters.php index 981a2a999..0afd5aabb 100644 --- a/app/Fields/FluidbookChapters.php +++ b/app/Fields/FluidbookChapters.php @@ -8,7 +8,12 @@ use Cubist\Backpack\Magic\Fields\BunchOfFieldsMultiple; 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')]); + } } diff --git a/app/Http/Controllers/Admin/Operations/Tools/JSON2Excel.php b/app/Http/Controllers/Admin/Operations/Tools/JSON2Excel.php new file mode 100644 index 000000000..92ad98bff --- /dev/null +++ b/app/Http/Controllers/Admin/Operations/Tools/JSON2Excel.php @@ -0,0 +1,40 @@ +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); + + } + + +} diff --git a/app/Http/Controllers/Admin/ToolsController.php b/app/Http/Controllers/Admin/ToolsController.php index a8f49a796..7672c25a8 100644 --- a/app/Http/Controllers/Admin/ToolsController.php +++ b/app/Http/Controllers/Admin/ToolsController.php @@ -7,6 +7,7 @@ namespace App\Http\Controllers\Admin; 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; @@ -18,6 +19,7 @@ class ToolsController extends Controller use GitReposCreate; use TextToSpeech; use DockerWebContainer; + use JSON2Excel; protected function index($tool, $args = '') { diff --git a/resources/views/fields/fluidbook_chapters.blade.php b/resources/views/fields/fluidbook_chapters.blade.php index e0124f346..e0abff7f9 100644 --- a/resources/views/fields/fluidbook_chapters.blade.php +++ b/resources/views/fields/fluidbook_chapters.blade.php @@ -4,8 +4,18 @@ @endpush @@ -34,5 +44,14 @@ @endpush @endif +@php + $additionalButtons=' '.__('Remplacer par le contenu d\'un fichier excel').''; + $additionalButtons.=' '.__('Exporter au format excel').''; +@endphp @include('cubist_back::fields.bunch_oneline_multiple') +@php + $additionalButtons=''; +@endphp + + diff --git a/resources/views/tools/sidebar.blade.php b/resources/views/tools/sidebar.blade.php index 0b44f4292..0927b576d 100644 --- a/resources/views/tools/sidebar.blade.php +++ b/resources/views/tools/sidebar.blade.php @@ -14,6 +14,9 @@ + {{-- --}} -- 2.39.5