--- /dev/null
+<?php
+
+namespace App\Http\Controllers\Admin;
+
+use App\Http\Controllers\Controller;
+use App\Models\FluidbookPublication;
+use Backpack\CRUD\app\Library\Widget;
+use Carbon\Carbon;
+use Chartisan\PHP\Chartisan;
+use Cubist\Matomo\Reporting;
+
+class FluidbookStatsController extends Controller
+{
+ // @see App\Http\Controllers\Admin\Operations\FluidbookPublication\StatsOperation
+}
--- /dev/null
+<?php
+
+namespace App\Http\Controllers\Admin;
+
+use App\Jobs\GenerateThemePreview;
+use App\Models\FluidbookTheme;
+use Cubist\Backpack\Http\Controllers\Base\XSendFileController;
+
+class FluidbookThemePreviewController extends XSendFileController
+{
+ public function preview($id, $variant = '')
+ {
+ /** @var FluidbookTheme $theme */
+ $theme = FluidbookTheme::find($id);
+ if (null === $theme) {
+ return response()->setStatusCode(404);
+ }
+ if (!$theme->canList(backpack_user())) {
+ return response()->setStatusCode(403);
+ }
+ return $this->xSendFile(GenerateThemePreview::getPreviewPath($theme->id, $variant));
+ }
+
+ public function previewMenu($id)
+ {
+ return $this->preview($id, 'menu');
+ }
+
+ public function previewBurger($id)
+ {
+ return $this->preview($id, 'burger');
+ }
+
+ public function previewLoader($id)
+ {
+ return $this->preview($id, 'loader');
+ }
+}
--- /dev/null
+<?php
+
+
+namespace App\Http\Controllers\Admin;
+
+
+use App\Http\Controllers\Admin\Operations\Tools\DockerWebContainer;
+use App\Http\Controllers\Admin\Operations\Tools\Excel2JSON;
+use App\Http\Controllers\Admin\Operations\Tools\FluidbookAssetsDownloader;
+use App\Http\Controllers\Admin\Operations\Tools\FluidbookBranchCreate;
+use App\Http\Controllers\Admin\Operations\Tools\FluidbookBranchRemove;
+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;
+
+class MaintenanceController extends Controller
+{
+ protected function index($function, $args = '')
+ {
+ if (!$args) {
+ $args = [];
+ } else {
+ $args = explode('/', $args);
+ }
+
+ if (!method_exists($this, $function)) {
+ return view('maintenance.' . $function, ['args' => $args]);
+ } else {
+ return $this->$function($args);
+ }
+ }
+}
--- /dev/null
+<?php
+
+
+namespace App\Http\Controllers\Admin;
+
+
+use App\Http\Controllers\Admin\Operations\Maintenance\UpdateSourcesOperation;
+use App\Http\Controllers\Controller;
+
+class OpenMaintenanceController extends Controller
+{
+ use UpdateSourcesOperation;
+
+ protected function index($function, $args = '')
+ {
+
+ if (!$args) {
+ $args = [];
+ } else {
+ $args = explode('/', $args);
+ }
+
+ if (!method_exists($this, $function)) {
+ return view('openmaintenance.' . $function, ['args' => $args]);
+ } else {
+ return $this->$function($args);
+ }
+
+ }
+
+
+}
--- /dev/null
+<?php
+
+
+namespace App\Http\Controllers\Admin;
+
+
+use App\Http\Controllers\Admin\Operations\Tools\Excel2JSON;
+use App\Http\Controllers\Controller;
+
+class OpenToolsController extends Controller
+{
+ use Excel2JSON;
+
+ protected function index($tool, $args = '')
+ {
+ if (!$args) {
+ $args = [];
+ } else {
+ $args = explode('/', $args);
+ }
+
+ if (!method_exists($this, $tool)) {
+ return view('opentools.' . $tool, ['args' => $args]);
+ } else {
+ return $this->$tool($args);
+ }
+
+ }
+
+
+}
--- /dev/null
+<?php
+
+namespace App\Http\Controllers\Admin;
+
+class ToolboxSettingsController
+{
+ public function set()
+ {
+ $user = backpack_user();
+ $user->setToolboxSetting(request()->get('key'), request()->get('value'));
+ $user->saveWithoutFlushingCache();
+ }
+}
--- /dev/null
+<?php
+
+
+namespace App\Http\Controllers\Admin;
+
+
+use App\Http\Controllers\Admin\Operations\Tools\DockerWebContainer;
+use App\Http\Controllers\Admin\Operations\Tools\Excel2JSON;
+use App\Http\Controllers\Admin\Operations\Tools\Favicon;
+use App\Http\Controllers\Admin\Operations\Tools\FluidbookAssetsDownloader;
+use App\Http\Controllers\Admin\Operations\Tools\FluidbookBranchCreate;
+use App\Http\Controllers\Admin\Operations\Tools\FluidbookBranchRemove;
+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;
+
+class ToolsController extends Controller
+{
+ use PDF2SVGOperation;
+ use FluidbookAssetsDownloader;
+ use GitReposCreate;
+ use TextToSpeech;
+ use DockerWebContainer;
+ use JSON2Excel;
+ use Excel2JSON;
+ use FluidbookBranchCreate;
+ use FluidbookBranchRemove;
+ use Favicon;
+
+ protected function index($tool, $args = '')
+ {
+
+ if (!$args) {
+ $args = [];
+ } else {
+ $args = explode('/', $args);
+ }
+
+ if (!method_exists($this, $tool)) {
+ return view('tools.' . $tool, ['args' => $args]);
+ } else {
+ return $this->$tool($args);
+ }
+
+ }
+
+
+}