From 62f73c51e66fc25fbc58d098dcac8099137386e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Tue, 19 Sep 2017 14:18:15 +0200 Subject: [PATCH] FEATURE: add input for setting preview size and quality --- .../Registrators/Items/SettingExtension.php | 14 +++- .../SettingsExtensionRegistrator.php | 20 +++-- app/Listeners/CreateImageThumbnail.php | 2 +- app/Providers/AppServiceProvider.php | 2 +- resources/lang/cs/admin/settings.php | 18 ++++- .../admin/settings/parts/advanced.blade.php | 81 +++++++++++++++++++ .../admin/settings/parts/widgets.blade.php | 49 ----------- routes/admin/fileManager.php | 2 +- 8 files changed, 124 insertions(+), 64 deletions(-) create mode 100644 resources/views/admin/settings/parts/advanced.blade.php delete mode 100644 resources/views/admin/settings/parts/widgets.blade.php diff --git a/app/CMS/Handlers/Registrators/Items/SettingExtension.php b/app/CMS/Handlers/Registrators/Items/SettingExtension.php index f4d29bf1..c9d73335 100644 --- a/app/CMS/Handlers/Registrators/Items/SettingExtension.php +++ b/app/CMS/Handlers/Registrators/Items/SettingExtension.php @@ -15,6 +15,7 @@ class SettingExtension * @var string view used for rendering given settings part */ protected $view; + protected $order; /** * SettingExtension constructor. @@ -23,11 +24,12 @@ class SettingExtension * @param string $name * @param string $view */ - public function __construct($id, $name, $view) + public function __construct($id, $name, $view, $order) { $this->id = $id; $this->name = $name; $this->view = $view; + $this->order = $order; } /** @@ -53,4 +55,14 @@ class SettingExtension { return $this->view; } + + /** + * @return mixed + */ + public function getOrder() + { + return $this->order; + } + + } \ No newline at end of file diff --git a/app/CMS/Handlers/Registrators/SettingsExtensionRegistrator.php b/app/CMS/Handlers/Registrators/SettingsExtensionRegistrator.php index 8784be22..2befc672 100644 --- a/app/CMS/Handlers/Registrators/SettingsExtensionRegistrator.php +++ b/app/CMS/Handlers/Registrators/SettingsExtensionRegistrator.php @@ -1,7 +1,8 @@ checkIfRegistered($sectionId); + if (is_null($order)) { + $order = count($this->settingsExtensions); + } + // register new extension - $this->settingsExtensions[$sectionId] = new SettingExtension($sectionId, $sectionName, $sectionView); + $this->settingsExtensions[$sectionId] = new SettingExtension($sectionId, $sectionName, $sectionView, $order); } /** @@ -44,14 +49,15 @@ class SettingsExtensionRegistrator /** * Getter for all registered extensions - * * @return array */ public function get() { - // sort registered extensions by key - ksort($this->settingsExtensions); - + // sort registered extensions + uasort($this->settingsExtensions, function (SettingExtension $a, SettingExtension $b) { + return $a->getOrder() - $b->getOrder(); + }); + return $this->settingsExtensions; } diff --git a/app/Listeners/CreateImageThumbnail.php b/app/Listeners/CreateImageThumbnail.php index 14f9f236..c569645c 100644 --- a/app/Listeners/CreateImageThumbnail.php +++ b/app/Listeners/CreateImageThumbnail.php @@ -56,6 +56,6 @@ class CreateImageThumbnail implements ShouldQueue }); // save thumbnail with lower quality - $image->save(config('app.thumbnail_path') . DIRECTORY_SEPARATOR . $file->getFilename(), 75); + $image->save(config('app.thumbnail_path') . DIRECTORY_SEPARATOR . $file->getFilename(), setting('previewQuality', 75)); } } diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 0043e829..39c11cbb 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -119,7 +119,7 @@ class AppServiceProvider extends ServiceProvider $registrator->register('basic', 'admin/settings.basic', 'admin.settings.parts.basic'); $registrator->register('meta', 'admin/settings.meta', 'admin.settings.parts.meta'); $registrator->register('social', 'admin/settings.socialSites', 'admin.settings.parts.social'); - $registrator->register('widgets', 'admin/settings.widgets.title', 'admin.settings.parts.widgets'); + $registrator->register('advanced', 'admin/settings.advanced.title', 'admin.settings.parts.advanced', 999); } /** diff --git a/resources/lang/cs/admin/settings.php b/resources/lang/cs/admin/settings.php index 8ea55fe2..e4043ed2 100644 --- a/resources/lang/cs/admin/settings.php +++ b/resources/lang/cs/admin/settings.php @@ -21,11 +21,21 @@ return [ ], "socialSites" => "Sociální sítě", "successfullySaved" => "Nastavení úspěšně změněno", - 'widgets' => [ - "title" => 'Widgety', - 'useWidgetPreloading' => 'Používat přednačítání widgetů?', + 'advanced' => [ + "title" => 'Pokročilé', + ], + + 'previews' => [ + 'title' => 'Nastavení obrázkových náhledů', + 'quality' => 'Kvalita', + 'size' => 'Velikost (v pixelech)' + ], + + 'widgets' => [ + 'title' => 'Widgety', + 'useWidgetPreloading' => 'Používat přednačítání widgetů?', 'preloadFrequentedWidgetAreasTreshold' => 'Práh pro přednačtení widgetů', - 'widgetCacheLifetime' => 'Platnost cache pro widgety' + 'widgetCacheLifetime' => 'Platnost cache pro widgety' ] ]; diff --git a/resources/views/admin/settings/parts/advanced.blade.php b/resources/views/admin/settings/parts/advanced.blade.php new file mode 100644 index 00000000..00a3b319 --- /dev/null +++ b/resources/views/admin/settings/parts/advanced.blade.php @@ -0,0 +1,81 @@ + +

@lang('admin/settings.previews.title')

+ +
+
+ + + +
+ + px +
+
+
+ @include('admin.settings.snippets.commonSettings', ['field' => 'previewSize']) +
+ +
+ + + +
+ + % +
+
+
+ @include('admin.settings.snippets.commonSettings', ['field' => 'previewQuality']) +
+
+ +

@lang('admin/settings.widgets.title')

+ +
+
+ +
+
+ @include('admin.settings.snippets.commonSettings', ['field' => 'useWidgetPreloading']) +
+
+ + +
+
+ + +
+ + @lang('common.views') +
+
+
+ @include('admin.settings.snippets.commonSettings', ['field' => 'author']) +
+
+ + +
+
+ + +
+ + @lang('common.minutes') +
+
+
+ @include('admin.settings.snippets.commonSettings', ['field' => 'author']) +
+
diff --git a/resources/views/admin/settings/parts/widgets.blade.php b/resources/views/admin/settings/parts/widgets.blade.php deleted file mode 100644 index cb9a980a..00000000 --- a/resources/views/admin/settings/parts/widgets.blade.php +++ /dev/null @@ -1,49 +0,0 @@ - -
-
- -
-
- @include('admin.settings.snippets.commonSettings', ['field' => 'useWidgetPreloading']) -
-
- - -
-
- - -
- - @lang('common.views') -
-
-
- @include('admin.settings.snippets.commonSettings', ['field' => 'author']) -
-
- - -
-
- - -
- - @lang('common.minutes') -
-
-
- @include('admin.settings.snippets.commonSettings', ['field' => 'author']) -
-
diff --git a/routes/admin/fileManager.php b/routes/admin/fileManager.php index 9455e926..8cbb3f3c 100644 --- a/routes/admin/fileManager.php +++ b/routes/admin/fileManager.php @@ -16,7 +16,7 @@ Route::group(['namespace' => 'FileManager'], function () { route::post('directories/new', 'CreateNewDirectory@store') ->name('upload.postNewDirectory') - ->middleware('can:create,directory'); + ->middleware('can:create,'.\App\Models\FileManager\Directory::class); Route::get('upload/detail/{file}', 'EditUploadedFile@show') ->name('upload.detail')