*/
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);
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)
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();
})();
], 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');
+
});