From: Vincent Vanwaelscappel Date: Tue, 14 Sep 2021 15:18:48 +0000 (+0200) Subject: wip #4666 @1 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=ea4fde228b0ba30fbf60941f1803d110b76246cf;p=odl.git wip #4666 @1 --- diff --git a/app/Http/Controllers/Admin/ToolsController.php b/app/Http/Controllers/Admin/ToolsController.php index 9aa6a68..6863ee4 100644 --- a/app/Http/Controllers/Admin/ToolsController.php +++ b/app/Http/Controllers/Admin/ToolsController.php @@ -4,10 +4,12 @@ namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Http\Controllers\Tools\FluidbookConvert; +use App\Http\Controllers\Tools\FluidbookPreview; class ToolsController extends Controller { use FluidbookConvert; + use FluidbookPreview; protected function index($tool, $args = '') { diff --git a/app/Http/Controllers/Tools/FluidbookPreview.php b/app/Http/Controllers/Tools/FluidbookPreview.php new file mode 100644 index 0000000..319b59d --- /dev/null +++ b/app/Http/Controllers/Tools/FluidbookPreview.php @@ -0,0 +1,22 @@ + 0) { + $path = implode('/', $args); + } + $path = storage_path('fluidbook/out') . '/' . $path; + if(file_exists($path)){ + return response(null)->header('Content-Type', Files::_getMimeType($path))->header('X-Sendfile', $path); + }else{ + return response(null)->setStatusCode(404); + } + } +} diff --git a/app/Jobs/ProcessFluidbook.php b/app/Jobs/ProcessFluidbook.php index a870bc4..742b514 100644 --- a/app/Jobs/ProcessFluidbook.php +++ b/app/Jobs/ProcessFluidbook.php @@ -17,6 +17,7 @@ use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\Jobs\SyncJob; use Illuminate\Queue\SerializesModels; +use JsonException; class ProcessFluidbook implements ShouldQueue, ShouldBeUnique { @@ -27,6 +28,7 @@ class ProcessFluidbook implements ShouldQueue, ShouldBeUnique */ protected $in; protected $out; + protected $stub; /** @var VirtualDirectory */ protected $vdir; @@ -40,6 +42,8 @@ class ProcessFluidbook implements ShouldQueue, ShouldBeUnique { $this->in = new Document(storage_path('fluidbook/in/in.pdf')); $this->out = storage_path('fluidbook/out/'); + + $this->stub = resource_path('fluidbook/'); } /** @@ -98,10 +102,9 @@ class ProcessFluidbook implements ShouldQueue, ShouldBeUnique start_measure('Compile fluidbook'); $this->vdir = new VirtualDirectory($this->out); - $this->vdir->copyDirectory(resource_path('fluidbook/'), '/'); + $this->vdir->copyDirectory($this->stub, '/'); $this->compileContents(); - $this->compileLinks(); $this->compileSearch(); $this->compileConfig(); @@ -114,7 +117,7 @@ class ProcessFluidbook implements ShouldQueue, ShouldBeUnique { $cp = $this->getConvertPath(); for ($i = 1; $i <= $this->in->getPages(); $i++) { - $this->vdir->copy($cp . 'html/t' . $i . '-150.jpg', 'data/background/150/t' . $i . '.jpg'); + $this->vdir->copy($cp . 'html/t' . $i . '-150.jpg', 'data/background/150/p' . $i . '.jpg'); $this->vdir->copy($cp . 'html/to' . $i . '.svg', 'data/contents/p' . $i . '.svg'); $this->vdir->copy($cp . 'html/p' . $i . '.jpg', 'data/thumbnails/p' . $i . '.jpg'); } @@ -122,7 +125,7 @@ class ProcessFluidbook implements ShouldQueue, ShouldBeUnique public function compileLinks() { - + return []; } public function compileSearch() @@ -136,9 +139,26 @@ class ProcessFluidbook implements ShouldQueue, ShouldBeUnique $this->vdir->file_put_contents('data/search.index.js', 'var INDEX=' . json_encode($index->compileIndex()) . ';'); } + /** + * @throws JsonException + */ public function compileConfig() { + $settings = mb_substr(file_get_contents($this->stub . '/data/datas.js'), 13, -2); + $config = json_decode($settings, false, 512, JSON_THROW_ON_ERROR); + $w = $this->in->getWidth(); + $h = $this->in->getHeight(); + + $config->pages = $this->in->getPages(); + $config->width = $w; + $config->height = $h; + $config->pagesDimensions = []; + for ($i = 1; $i <= $this->in->getPages(); $i++) { + $config->pagesDimensions[$i] = [$w, $h]; + } + $config->links = $this->compileLinks(); + $this->vdir->file_put_contents('data/datas.js', 'var SETTINGS=' . json_encode($config, JSON_THROW_ON_ERROR) . ';'); } diff --git a/resources/views/tools/fluidbookconvert.blade.php b/resources/views/tools/fluidbookconvert.blade.php index c62a2be..294f8e8 100644 --- a/resources/views/tools/fluidbookconvert.blade.php +++ b/resources/views/tools/fluidbookconvert.blade.php @@ -1,4 +1,5 @@ @extends(backpack_view('blank')) @section('content') + @endsection