]> _ Git - fluidbook-toolbox.git/commitdiff
wip #4210 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 16 Jun 2022 14:41:30 +0000 (16:41 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 16 Jun 2022 14:41:30 +0000 (16:41 +0200)
app/Http/Controllers/Admin/FluidbookThemePreviewController.php
app/Jobs/GenerateThemePreview.php
resources/js/theme_preview/theme_preview.js
routes/web.php

index 80dd93e38c979299e47d549f2812f78ceb6026f0..1f8643b2287eb30a2c7f5f48d3c53404776b4f7b 100644 (file)
@@ -25,4 +25,9 @@ class FluidbookThemePreviewController extends XSendFileController
     {
         return $this->preview($id, 'menu');
     }
+
+    public function previewLoader($id)
+    {
+        return $this->preview($id, 'loader');
+    }
 }
index 914965475e067db25872139e45f5aa7dee79e2ae..1ebfbb227c200675a37c80f305560811c57d1a59 100644 (file)
@@ -34,17 +34,15 @@ class GenerateThemePreview extends Base
      */
     public function handle()
     {
-        $path = self::getPreviewPath($this->theme->getIdValue());
-        $pathmenu = self::getPreviewPath($this->theme->getIdValue(), 'menu');
-
         $cl = new CommandLine('node');
         $cl->setArg(null, resource_path('js/theme_preview/theme_preview.js'));
         $cl->setArg('width', 1024);
         $cl->setArg('height', 768);
         $cl->setArg('delay', 2);
         $cl->setArg('scale', 1);
-        $cl->setArg('dest', $path);
-        $cl->setArg('destmenu', $pathmenu);
+        $cl->setArg('dest', self::getPreviewPath($this->theme->getIdValue()));
+        $cl->setArg('destmenu', self::getPreviewPath($this->theme->getIdValue(), 'menu'));
+        $cl->setArg('destloader', self::getPreviewPath($this->theme->getIdValue(), 'loader'));
         $cl->setArg('page', 2);
         $url = $this->theme->getPreviewURL(['shortLoading' => 1, 'transition' => 1]);
         $cl->setArg('url', $url);
index 95defa8886019609b2547bdcd1f82707ba5b5e7d..858f6249aa2099412e7607cf5a1ff50b9e023406 100644 (file)
@@ -3,26 +3,35 @@ const commandLineArgs = require('command-line-args');
 const optionDefinitions = [{name: 'url', type: String}, {name: 'dest', type: String}, {
     name: 'destmenu',
     type: String
-}, {name: 'delay', type: Number, defaultOption: 10}, {name: 'scale', type: Number, defaultOption: 1}, {
-    name: 'width',
+}, {name: 'destloader', type: String}, {name: 'delay', type: Number, defaultOption: 10}, {
+    name: 'scale',
     type: Number,
-    defaultOption: 1920
-}, {name: 'height', type: Number, defaultOption: 1080}, {name: 'page', type: Number, defaultOption: 2}];
+    defaultOption: 1
+}, {name: 'width', type: Number, defaultOption: 1920}, {
+    name: 'height',
+    type: Number,
+    defaultOption: 1080
+}, {name: 'page', type: Number, defaultOption: 2}];
 
 (async () => {
     const {installMouseHelper} = require('./install-mouse-helper');
     const options = commandLineArgs(optionDefinitions);
     const browser = await puppeteer.launch({headless: true});
+
     const page = await browser.newPage();
     await page.setViewport({
         width: options.width / options.scale, height: options.height / options.scale, deviceScaleFactor: options.scale,
     });
     await installMouseHelper(page);
+
     await page.goto(options.url, {waitUntil: 'networkidle2'});
+    await page.screenshot({path: options.destloader, type: 'jpeg', quality: 95});
     await new Promise(r => setTimeout(r, 1000 * (options.delay - 1)));
 
     // Show slider and thumbs
     await page.evaluate(() => fluidbook.slider.hover(512));
+    // Set bookmark on page 3
+    await page.evaluate(() => fluidbook.bookmarks.addBookmark(3));
     // Move to page 2
     await page.evaluate(() => fluidbook.setCurrentPage(2));
     // Move mouse to hover a link (show tooltip and link)
@@ -32,8 +41,10 @@ const optionDefinitions = [{name: 'url', type: String}, {name: 'dest', type: Str
     await page.screenshot({path: options.dest, type: 'jpeg', quality: 95});
 
     // // Open share menu and take a screenshot
-    // await page.evaluate(() => fluidbook.menu.openView('share'));
-    // await new Promise(r => setTimeout(r, 500));
-    // await page.screenshot({path: options.destmenu, type: 'jpeg', quality: 95});
+    await page.evaluate(() => fluidbook.nav.menuAPI.open());
+    await new Promise(r => setTimeout(r, 500));
+    await page.mouse.move(60, 400);
+    await page.screenshot({path: options.destmenu, type: 'jpeg', quality: 95});
+
     await browser.close();
 })();
index ccba5f0d1e86299af44d50c96d48b7cc4cc79a98..b92957e6fd78e523a5d725d594671e4d57eff3bb 100644 (file)
@@ -9,6 +9,8 @@ Route::group([
 ], function () { // custom admin routes
     Route::any('tools/{tool}/{args?}', 'ToolsController@index')->where(['args' => '.*']);
     Route::post('toolbox_setting', 'ToolboxSettingsController@set');
-    Route::get('fluidbookthemepreview/{id}.jpg', 'FluidbookThemePreviewController@preview');
+    Route::get('fluidbookthemepreview/{id}-loader.jpg', 'FluidbookThemePreviewController@previewLoader');
     Route::get('fluidbookthemepreview/{id}-menu.jpg', 'FluidbookThemePreviewController@previewMenu');
+    Route::get('fluidbookthemepreview/{id}.jpg', 'FluidbookThemePreviewController@preview');
+
 });