From f89e11b5fb0ad93e7177349b304e03cc322173be Mon Sep 17 00:00:00 2001 From: Peter Hrdlica Date: Thu, 3 Nov 2016 22:06:55 +0100 Subject: [PATCH 01/14] FEATURE: dobrotyzpece stylings --- .../Resources/assets/css/style.css | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/templates/DobrotyZPece/Resources/assets/css/style.css b/templates/DobrotyZPece/Resources/assets/css/style.css index 2aa93a7b..e3411c1a 100644 --- a/templates/DobrotyZPece/Resources/assets/css/style.css +++ b/templates/DobrotyZPece/Resources/assets/css/style.css @@ -80,8 +80,31 @@ textarea.materialize-textarea.valid:not([readonly]){ #index-banner .section { top: 0; } + + .parallax-container .section { + position: absolute; + top: 20%; + } + + .contact-form-widget { + margin-bottom: 25px; + } + + .company-data { + text-align: center; + } + .company-data span { + display: block; + } + + .section .row div.col.s12 img { + display: block; + margin: 15px auto; + } } +.section .row>div {font-size: 1.4em; margin-bottom: 20px;} + .icon-block { padding: 0 15px; } From 84b290261372ca9c2b91ea45b6695afc8860d673 Mon Sep 17 00:00:00 2001 From: Michal Kvacek Date: Mon, 21 Nov 2016 11:13:39 +0100 Subject: [PATCH 02/14] FIX: fix one page menu widget --- templates/Base/OnePage/Widgets/OnePageMenu/Presenter.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/Base/OnePage/Widgets/OnePageMenu/Presenter.php b/templates/Base/OnePage/Widgets/OnePageMenu/Presenter.php index 55222397..bc06f949 100644 --- a/templates/Base/OnePage/Widgets/OnePageMenu/Presenter.php +++ b/templates/Base/OnePage/Widgets/OnePageMenu/Presenter.php @@ -59,7 +59,7 @@ class Presenter implements WidgetRenderer */ public static function renderEditForm(Widget $widget) { - $settings = json_decode($widget->settings); + $settings = $widget->settings; return view('template::admin.widgets.onePageMenu.edit', ['widget' => $widget, 'settings' => $settings]); } -} \ No newline at end of file +} From 7584491ff51e7d227bbc818392d5fcaa8631ea1e Mon Sep 17 00:00:00 2001 From: Michal Kvacek Date: Mon, 21 Nov 2016 11:16:44 +0100 Subject: [PATCH 03/14] FIX: fix html widget --- app/Widgets/HtmlCode/Presenters/HtmlCode.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Widgets/HtmlCode/Presenters/HtmlCode.php b/app/Widgets/HtmlCode/Presenters/HtmlCode.php index 06bec4b7..b8f84184 100644 --- a/app/Widgets/HtmlCode/Presenters/HtmlCode.php +++ b/app/Widgets/HtmlCode/Presenters/HtmlCode.php @@ -52,7 +52,7 @@ class HtmlCode implements WidgetRenderer */ public static function renderEditForm(Widget $widget) { - $settings = json_decode($widget->settings); + $settings = $widget->settings; return view('admin.widgets.htmlCode.edit', ['widget' => $widget, 'settings' => $settings]); } -} \ No newline at end of file +} From 2fffea39fac6f6704ac716c1716c65f8b786c6b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Wed, 23 Nov 2016 00:49:55 +0100 Subject: [PATCH 04/14] FIX: fix content observer - ignore viewed --- app/CMS/Observers/Content.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/CMS/Observers/Content.php b/app/CMS/Observers/Content.php index 4f81bf98..c5cca5d7 100644 --- a/app/CMS/Observers/Content.php +++ b/app/CMS/Observers/Content.php @@ -42,6 +42,9 @@ class Content $normalFieldsEdited = 0; foreach ($fields as $field => $change) { + if ($field == 'viewed') + continue; + $history = [ 'user_id' => \Auth::user()->id, 'content_id' => $content->id, From 3aabb8fa7b23fe87b2d5b322c8688e8599d41977 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Wed, 23 Nov 2016 01:03:37 +0100 Subject: [PATCH 05/14] REFACTORING #1880 @20m: move action log logic into repository --- .../Repositories/ActionLog/Actions.php} | 29 +++++++++++++-- .../Controllers/Admin/ActionLog/Overview.php | 37 +++---------------- .../Controllers/Admin/Dashboard/Dashboard.php | 2 +- app/Http/routes.php | 4 +- app/Models/ActionLog/ActionLog.php | 6 ++- 5 files changed, 37 insertions(+), 41 deletions(-) rename app/{Models/ActionLog/ModelTraits/ActionLog.php => CMS/Repositories/ActionLog/Actions.php} (79%) diff --git a/app/Models/ActionLog/ModelTraits/ActionLog.php b/app/CMS/Repositories/ActionLog/Actions.php similarity index 79% rename from app/Models/ActionLog/ModelTraits/ActionLog.php rename to app/CMS/Repositories/ActionLog/Actions.php index 376fcb97..acbd3ac4 100644 --- a/app/Models/ActionLog/ModelTraits/ActionLog.php +++ b/app/CMS/Repositories/ActionLog/Actions.php @@ -1,10 +1,33 @@ getLogActionsQuery(true); + + $user = null; + if ($userId) { + $user = User::findOrFail($userId); + $actions->where('users.id', $userId); + } + + $actions = $actions->paginate(25); + + $this->translateLogMessages($actions); + + return [$user, $actions]; + } + /** * Query factory for loading action logs with their type (therefore with name and value) * @@ -58,8 +81,6 @@ trait ActionLog * Method used for translating and filling parameters into value of log. * * @param $messages - * - * @return array */ public function translateLogMessages(&$messages) { diff --git a/app/Http/Controllers/Admin/ActionLog/Overview.php b/app/Http/Controllers/Admin/ActionLog/Overview.php index 1d13ad24..57eb6485 100644 --- a/app/Http/Controllers/Admin/ActionLog/Overview.php +++ b/app/Http/Controllers/Admin/ActionLog/Overview.php @@ -2,49 +2,22 @@ namespace App\Http\Controllers\Admin\ActionLog; +use App\Cms\Repositories\ActionLog\Actions; use App\Http\Controllers\Admin\Controller; -use App\Models\ActionLog\ActionLog; -use App\Models\User; use Illuminate\Support\Facades\Input; class Overview extends Controller { - /** - * @var ActionLog - */ - private $log; - - /** - * ActionLog constructor. - * - * @param ActionLog $log - */ - public function __construct(ActionLog $log) - { - parent::__construct(); - $this->log = $log; - } - /** * Get overview of logged actions * + * @param Actions $repository + * * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ - public function getOverview() + public function index(Actions $repository) { - $user = null; - $userId = Input::get('userId'); - - $actions = $this->log->getLogActionsQuery(true); - - if ($userId) { - $user = User::findOrFail($userId); - $actions->where('users.id', $userId); - } - - $actions = $actions->paginate(25); - - $this->log->translateLogMessages($actions); + list($user, $actions) = $repository->getLoggedActions(Input::get('userId')); return view('admin.actionLog.overview', ['actions' => $actions, 'user' => $user]); } diff --git a/app/Http/Controllers/Admin/Dashboard/Dashboard.php b/app/Http/Controllers/Admin/Dashboard/Dashboard.php index 3e666127..bad941c3 100644 --- a/app/Http/Controllers/Admin/Dashboard/Dashboard.php +++ b/app/Http/Controllers/Admin/Dashboard/Dashboard.php @@ -7,7 +7,7 @@ use Illuminate\Http\Request; class Dashboard extends Controller { - public function getIndex(Request $request) + public function index(Request $request) { return redirect()->route('content.overview'); } diff --git a/app/Http/routes.php b/app/Http/routes.php index 9edfdf89..c648aaf7 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -28,11 +28,11 @@ Route::group(['prefix' => LaravelLocalization::setLocale()], function () { } // display dashboard with some usefull information - Route::get('/', 'Dashboard\Dashboard@getIndex') + Route::get('/', 'Dashboard\Dashboard@index') ->name('admin.dashboard'); // list of all actions - Route::get('actions', 'ActionLog\Overview@getOverview') + Route::get('actions', 'ActionLog\Overview@index') ->name('log.overview'); // search form with results diff --git a/app/Models/ActionLog/ActionLog.php b/app/Models/ActionLog/ActionLog.php index cbdb19ae..dceb76f2 100644 --- a/app/Models/ActionLog/ActionLog.php +++ b/app/Models/ActionLog/ActionLog.php @@ -9,8 +9,6 @@ use Illuminate\Database\Eloquent\Model; */ class ActionLog extends Model { - use ModelTraits\ActionLog; - protected $table = 'action_log'; public $timestamps = false; protected $fillable = [ @@ -20,4 +18,8 @@ class ActionLog extends Model 'user_agent', 'parameters' ]; + + protected $casts = [ + 'parameters' => 'array' + ]; } \ No newline at end of file From 675aec669b7a2a115c9f2f004c3f875e15cae3e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Wed, 23 Nov 2016 01:30:28 +0100 Subject: [PATCH 06/14] REFACTORING #1880 @40m: move creating new directory into interaction --- .../SubdirectoryExistsInDirectory.php | 6 ++ app/CMS/Handlers/Interaction.php | 2 +- .../Admin/FileManager/CreateDirectory.php | 65 +++++++++++++++++ .../Repositories/FileManager/Directory.php | 14 ++++ .../Admin/FileManager/CreateNewDirectory.php | 72 +++++++++---------- .../Requests/CreateNewDirectoryRequest.php | 9 +-- 6 files changed, 123 insertions(+), 45 deletions(-) create mode 100644 app/CMS/Exceptions/FileManager/SubdirectoryExistsInDirectory.php create mode 100644 app/CMS/Repositories/FileManager/Directory.php diff --git a/app/CMS/Exceptions/FileManager/SubdirectoryExistsInDirectory.php b/app/CMS/Exceptions/FileManager/SubdirectoryExistsInDirectory.php new file mode 100644 index 00000000..c66527da --- /dev/null +++ b/app/CMS/Exceptions/FileManager/SubdirectoryExistsInDirectory.php @@ -0,0 +1,6 @@ +getValidationRules($extraParameters)); diff --git a/app/CMS/Interactions/Admin/FileManager/CreateDirectory.php b/app/CMS/Interactions/Admin/FileManager/CreateDirectory.php index e69de29b..db6069cc 100644 --- a/app/CMS/Interactions/Admin/FileManager/CreateDirectory.php +++ b/app/CMS/Interactions/Admin/FileManager/CreateDirectory.php @@ -0,0 +1,65 @@ +repository = $repository; + } + + /** + * Perform given action + * + * @param $data array input data + * @param $parameters array parameters + * + * @return Directory + * @throws SubdirectoryExistsInDirectory + */ + public function handle($data, $parameters) + { + $data['parentDirectory'] = isset($data['parentDirectory']) ? $data['parentDirectory'] : null; + + // todo this should probably go into validation, but we are not able to get $data in getValidationRules + // check if created folder does not exist in current directory + if ($this->repository->checkIfNameExists($data['name'], $data['parentDirectory'])) { + throw new SubdirectoryExistsInDirectory(); + } + + // todo use Directory::create() and rename columns/fields in request + // create new database entry + $directory = new Directory(); + $directory->name = $data['name']; + $directory->parent_id = $data['parentDirectory']; + $directory->user_id = \Auth::user()->id; + $directory->description = $data['description']; + $directory->save(); + + return $directory; + } + + /** + * @param $data array input data + * + * @return array + * @throws SubdirectoryExistsInDirectory + */ + public function getValidationRules($data = []) + { + return [ + 'name' => 'required|max:255', + 'parentDirectory' => 'exists:directories,id' + ]; + } +} \ No newline at end of file diff --git a/app/CMS/Repositories/FileManager/Directory.php b/app/CMS/Repositories/FileManager/Directory.php new file mode 100644 index 00000000..0a262fdd --- /dev/null +++ b/app/CMS/Repositories/FileManager/Directory.php @@ -0,0 +1,14 @@ +where('parent_id', $directoryId) + ->exists(); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Admin/FileManager/CreateNewDirectory.php b/app/Http/Controllers/Admin/FileManager/CreateNewDirectory.php index 6341e58d..8fb67771 100644 --- a/app/Http/Controllers/Admin/FileManager/CreateNewDirectory.php +++ b/app/Http/Controllers/Admin/FileManager/CreateNewDirectory.php @@ -2,12 +2,31 @@ namespace App\Http\Controllers\Admin\FileManager; +use App\CMS\Exceptions\FileManager\SubdirectoryExistsInDirectory; +use App\Cms\Handlers\Interactions\Interaction; +use App\CMS\Interactions\Admin\FileManager\CreateDirectory; +use App\CMS\Repositories\FileManager\Directory as DirectoryRepository; use App\Http\Controllers\Admin\Controller; use App\Http\Requests; -use App\Models\FileManager\Directory; +use Illuminate\Http\Request; class CreateNewDirectory extends Controller { + /** + * @var DirectoryRepository + */ + private $repository; + + /** + * CreateNewDirectory constructor. + * + * @param DirectoryRepository $repository + */ + public function __construct(DirectoryRepository $repository) + { + $this->repository = $repository; + } + /** * Create new directory * @@ -15,48 +34,21 @@ class CreateNewDirectory extends Controller * * @return $this|\Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse */ - public function postNew(Requests\CreateNewDirectoryRequest $request) + public function postNew(Request $request) { - // check if created folder does not exist in current directory - $exists = Directory::where('name', $request->name) - ->where('parent_id', $request->parentDirectory) - ->exists(); - if ($exists) { - if ($request->ajax()) { - return response()->json([ - 'status' => 'failed', - 'message' => trans('admin/fileManager.subdirectoryExists') - ]); - } else { - return redirect() - ->route('upload.overview', ['id' => $request->parentDirectory]) - ->withInput() - ->with('error', trans('admin/fileManager.subdirectoryExists')); - } + // create new directory + try { + Interaction::handle(CreateDirectory::class, $request->all()); + } catch (SubdirectoryExistsInDirectory $e) { + return redirect() + ->back() + ->withInput() + ->with('error', trans('admin/fileManager.subdirectoryExists')); } - // create new database entry - $directory = new Directory(); - $directory->name = $request->name; - $directory->parent_id = $request->parentDirectory; - $directory->user_id = \Auth::user()->id; - $directory->description = $request->description; - - $directory->save(); - $message = trans('admin/fileManager.newDirectorySuccess'); - if (!$request->ajax()) { - return redirect() - ->route('upload.overview', ['id' => $request->parentDirectory]) - ->with('success', $message); - } else { - $payload = [ - 'status' => 'success', - 'message' => $message, - 'parentDirectory' => $request->parentDirectory - ]; - - return response()->json($payload); - } + return redirect() + ->route('upload.overview', ['id' => $request->parentDirectory]) + ->with('success', $message); } } diff --git a/app/Http/Requests/CreateNewDirectoryRequest.php b/app/Http/Requests/CreateNewDirectoryRequest.php index a35650d9..7fda8d5b 100644 --- a/app/Http/Requests/CreateNewDirectoryRequest.php +++ b/app/Http/Requests/CreateNewDirectoryRequest.php @@ -2,6 +2,8 @@ namespace App\Http\Requests; +use App\CMS\Interactions\Admin\FileManager\CreateDirectory; + class CreateNewDirectoryRequest extends Request { /** @@ -11,9 +13,8 @@ class CreateNewDirectoryRequest extends Request */ public function rules() { - return [ - 'name' => 'required|max:255', - 'parentDirectory' => 'exists:directories,id' - ]; + $interaction = app(CreateDirectory::class); + + return $interaction->getValidationRules(); } } From d0fbce13fb056210d65e003cdb2e1f0052c96c15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Wed, 23 Nov 2016 03:21:23 +0100 Subject: [PATCH 07/14] REFACTORING #1880 @15m: remove custom fields --- app/CMS/CustomFields/BaseField.php | 6 - app/CMS/CustomFields/Date.php | 6 - app/CMS/CustomFields/Number.php | 6 - app/CMS/CustomFields/SelectboxList.php | 6 - app/CMS/CustomFields/String.php | 6 - app/CMS/Enumerations/CustomFieldResources.php | 20 ---- app/CMS/Enumerations/CustomFieldTypes.php | 21 ---- app/Events/CreateNewCustomField.php | 27 ----- app/Events/DeleteCustomField.php | 27 ----- app/Events/EditCustomField.php | 27 ----- .../CustomFields/CreateNewCustomField.php | 72 ------------ .../CustomFields/CustomFieldsOverview.php | 24 ---- .../Admin/CustomFields/EditCustomField.php | 105 ------------------ app/Http/Requests/EditCustomFieldRequest.php | 20 ---- app/Http/Requests/NewCustomFieldRequest.php | 22 ---- .../Loggers/LogCreateCustomField.php | 37 ------ app/Listeners/Loggers/LogDeleteField.php | 36 ------ app/Listeners/Loggers/LogEditCustomField.php | 36 ------ .../CustomFields/ContentHasCustomField.php | 24 ---- app/Models/CustomFields/CustomField.php | 45 -------- .../CustomFields/CustomFieldResource.php | 22 ---- app/Models/CustomFields/CustomFieldType.php | 23 ---- .../CustomFields/ModuleHasCustomField.php | 23 ---- .../CustomFields/UserHasCustomField.php | 24 ---- app/Providers/EventServiceProvider.php | 10 +- database/seeds/DatabaseSeeder.php | 2 - database/seeds/SeedCustomFieldResources.php | 24 ---- database/seeds/SeedCustomFieldTypes.php | 27 ----- 28 files changed, 1 insertion(+), 727 deletions(-) delete mode 100644 app/CMS/CustomFields/BaseField.php delete mode 100644 app/CMS/CustomFields/Date.php delete mode 100644 app/CMS/CustomFields/Number.php delete mode 100644 app/CMS/CustomFields/SelectboxList.php delete mode 100644 app/CMS/CustomFields/String.php delete mode 100644 app/CMS/Enumerations/CustomFieldResources.php delete mode 100644 app/CMS/Enumerations/CustomFieldTypes.php delete mode 100644 app/Events/CreateNewCustomField.php delete mode 100644 app/Events/DeleteCustomField.php delete mode 100644 app/Events/EditCustomField.php delete mode 100644 app/Http/Controllers/Admin/CustomFields/CreateNewCustomField.php delete mode 100644 app/Http/Controllers/Admin/CustomFields/CustomFieldsOverview.php delete mode 100644 app/Http/Controllers/Admin/CustomFields/EditCustomField.php delete mode 100644 app/Http/Requests/EditCustomFieldRequest.php delete mode 100644 app/Http/Requests/NewCustomFieldRequest.php delete mode 100644 app/Listeners/Loggers/LogCreateCustomField.php delete mode 100644 app/Listeners/Loggers/LogDeleteField.php delete mode 100644 app/Listeners/Loggers/LogEditCustomField.php delete mode 100644 app/Models/CustomFields/ContentHasCustomField.php delete mode 100644 app/Models/CustomFields/CustomField.php delete mode 100644 app/Models/CustomFields/CustomFieldResource.php delete mode 100644 app/Models/CustomFields/CustomFieldType.php delete mode 100644 app/Models/CustomFields/ModuleHasCustomField.php delete mode 100644 app/Models/CustomFields/UserHasCustomField.php delete mode 100644 database/seeds/SeedCustomFieldResources.php delete mode 100644 database/seeds/SeedCustomFieldTypes.php diff --git a/app/CMS/CustomFields/BaseField.php b/app/CMS/CustomFields/BaseField.php deleted file mode 100644 index 88a174fe..00000000 --- a/app/CMS/CustomFields/BaseField.php +++ /dev/null @@ -1,6 +0,0 @@ -id, $type->name); - } - } -} \ No newline at end of file diff --git a/app/CMS/Enumerations/CustomFieldTypes.php b/app/CMS/Enumerations/CustomFieldTypes.php deleted file mode 100644 index a2761761..00000000 --- a/app/CMS/Enumerations/CustomFieldTypes.php +++ /dev/null @@ -1,21 +0,0 @@ -id, $type->name); - } - } -} \ No newline at end of file diff --git a/app/Events/CreateNewCustomField.php b/app/Events/CreateNewCustomField.php deleted file mode 100644 index b1bbf9bd..00000000 --- a/app/Events/CreateNewCustomField.php +++ /dev/null @@ -1,27 +0,0 @@ -customField = $customField; - } -} diff --git a/app/Events/DeleteCustomField.php b/app/Events/DeleteCustomField.php deleted file mode 100644 index 38d22fa3..00000000 --- a/app/Events/DeleteCustomField.php +++ /dev/null @@ -1,27 +0,0 @@ -customField = $customField; - } -} diff --git a/app/Events/EditCustomField.php b/app/Events/EditCustomField.php deleted file mode 100644 index 9bb15320..00000000 --- a/app/Events/EditCustomField.php +++ /dev/null @@ -1,27 +0,0 @@ -customField = $customField; - } -} diff --git a/app/Http/Controllers/Admin/CustomFields/CreateNewCustomField.php b/app/Http/Controllers/Admin/CustomFields/CreateNewCustomField.php deleted file mode 100644 index c7d142be..00000000 --- a/app/Http/Controllers/Admin/CustomFields/CreateNewCustomField.php +++ /dev/null @@ -1,72 +0,0 @@ - $types, - 'resources' => $resources - ]); - } - - public function postNew(NewCustomFieldRequest $request) - { - $customField = new CustomField(); - - // set mandatory fields - - $customField->name = $request->name; - $customField->type_id = $request->type; - $customField->resource_id = $request->resource; - $customField->required = $request->has('required'); - - // set non-mandatory fields - - if ($request->description) { - $customField->description = $request->description; - } - - if ($request->possibleValues) { - $customField->possible_values = trim(preg_replace('~[\r\n]+~', '|', $request->possibleValues)); - } - - if ($request->defaultValue) { - $customField->default_value = $request->defaultValue; - } - - if ($request->regExp) { - $customField->regexp = $request->regExp; - } - - if ($request->minLength) { - $customField->min_length = $request->minLength; - } - - if ($request->maxLength) { - $customField->max_length = $request->maxLength; - } - - $customField->save(); - - // fire event about creating new custom field - Event::fire(new CreateNewCustomFieldEvent($customField)); - - return redirect() - ->route('customfields.new') - ->with('success', trans('admin/customFields.successfullyCreated')); - } -} diff --git a/app/Http/Controllers/Admin/CustomFields/CustomFieldsOverview.php b/app/Http/Controllers/Admin/CustomFields/CustomFieldsOverview.php deleted file mode 100644 index 9ff19ed3..00000000 --- a/app/Http/Controllers/Admin/CustomFields/CustomFieldsOverview.php +++ /dev/null @@ -1,24 +0,0 @@ -getIndexedByResource(); - - return view('admin.customFields.overview', [ - 'customFields' => $fields, - 'usedResources' => array_keys($fields), - 'resources' => CustomFieldResources::getWithTranslations(), - 'types' => CustomFieldTypes::getWithTranslations() - ]); - } -} \ No newline at end of file diff --git a/app/Http/Controllers/Admin/CustomFields/EditCustomField.php b/app/Http/Controllers/Admin/CustomFields/EditCustomField.php deleted file mode 100644 index d0aabbf7..00000000 --- a/app/Http/Controllers/Admin/CustomFields/EditCustomField.php +++ /dev/null @@ -1,105 +0,0 @@ - $field, - 'types' => CustomFieldTypes::getWithTranslations(), - 'resources' => CustomFieldResources::getWithTranslations() - ]); - } - - public function postEditCustomField(EditCustomFieldRequest $request, $id) - { - $customField = CustomField::findOrFail($id); - - // setup fields - - $customField->name = $request->name; - $customField->required = $request->has('required'); - - // set non-mandatory fields - - if ($request->description) { - $customField->description = $request->description; - } - - if ($request->possibleValues) { - $customField->possible_values = trim(preg_replace('~[\r\n]+~', '|', $request->possibleValues)); - } - - if ($request->defaultValue) { - $customField->default_value = $request->defaultValue; - } - - if ($request->regExp) { - $customField->regexp = $request->regExp; - } - - if ($request->minLength) { - $customField->min_length = $request->minLength; - } - - if ($request->maxLength) { - $customField->max_length = $request->maxLength; - } - - // save changes into database - $customField->save(); - - // fire event about editing custom field - Event::fire(new EditCustomFieldEvent($customField)); - - return redirect() - ->route('customfields.edit', ['id' => $id]) - ->with('success', trans('admin/customFields.successfullyEdited')); - } - - /** - * Deletes custom field given by id. - * - * This method deletes given custom field. It is in this method because deleting is somehow editing the item. - * - * @param $id - * - * @return \Illuminate\Http\RedirectResponse - */ - public function deleteCustomField($id) - { - // find and delete field - try { - $field = CustomField::findOrFail($id); - } catch (\Exception $e) { - // field does not exist, redirect to overview and inform user - return redirect() - ->route('customfields.overview') - ->with('error', trans('admin/customFields.fieldNotExist')); - } - - // delete item - $field->delete(); - - // fire event about editing custom field - Event::fire(new DeleteCustomField($field)); - - // redirect back to overview - return redirect() - ->route('customfields.overview') - ->with('success', trans('admin/customFields.successfullyDeleted')); - } -} \ No newline at end of file diff --git a/app/Http/Requests/EditCustomFieldRequest.php b/app/Http/Requests/EditCustomFieldRequest.php deleted file mode 100644 index a02917d6..00000000 --- a/app/Http/Requests/EditCustomFieldRequest.php +++ /dev/null @@ -1,20 +0,0 @@ - 'required', - 'minLength' => 'numeric|min:0', - 'maxLength' => 'numeric|min:0', - ]; - } -} diff --git a/app/Http/Requests/NewCustomFieldRequest.php b/app/Http/Requests/NewCustomFieldRequest.php deleted file mode 100644 index 562d68f9..00000000 --- a/app/Http/Requests/NewCustomFieldRequest.php +++ /dev/null @@ -1,22 +0,0 @@ - 'required', - 'type' => 'required|exists:custom_field_types,id', - 'resource' => 'required|exists:custom_field_resources,id', - 'minLength' => 'numeric|min:0', - 'maxLength' => 'numeric|min:0', - ]; - } -} diff --git a/app/Listeners/Loggers/LogCreateCustomField.php b/app/Listeners/Loggers/LogCreateCustomField.php deleted file mode 100644 index 6edcdcff..00000000 --- a/app/Listeners/Loggers/LogCreateCustomField.php +++ /dev/null @@ -1,37 +0,0 @@ - $event->customField->id, - 'name' => $event->customField->name - ]; - - $this->saveLog($parameters); - } - - /** - * Getter for action name. Used only internally - * - * @return mixed - */ - protected function getName() - { - return 'newCustomField'; - } -} diff --git a/app/Listeners/Loggers/LogDeleteField.php b/app/Listeners/Loggers/LogDeleteField.php deleted file mode 100644 index c03f6853..00000000 --- a/app/Listeners/Loggers/LogDeleteField.php +++ /dev/null @@ -1,36 +0,0 @@ - $event->customField->id, - 'name' => $event->customField->name - ]; - - $this->saveLog($parameters); - } - - /** - * Getter for action name. Used only internally - * - * @return mixed - */ - protected function getName() - { - return 'deleteCustomField'; - } -} diff --git a/app/Listeners/Loggers/LogEditCustomField.php b/app/Listeners/Loggers/LogEditCustomField.php deleted file mode 100644 index db62c517..00000000 --- a/app/Listeners/Loggers/LogEditCustomField.php +++ /dev/null @@ -1,36 +0,0 @@ - $event->customField->id, - 'name' => $event->customField->name - ]; - - $this->saveLog($parameters); - } - - /** - * Getter for action name. Used only internally - * - * @return mixed - */ - protected function getName() - { - return 'editCustomField'; - } -} diff --git a/app/Models/CustomFields/ContentHasCustomField.php b/app/Models/CustomFields/ContentHasCustomField.php deleted file mode 100644 index faab0bce..00000000 --- a/app/Models/CustomFields/ContentHasCustomField.php +++ /dev/null @@ -1,24 +0,0 @@ -resource_id][] = $field; - } - - return $customFields; - } -} \ No newline at end of file diff --git a/app/Models/CustomFields/CustomFieldResource.php b/app/Models/CustomFields/CustomFieldResource.php deleted file mode 100644 index 7701a257..00000000 --- a/app/Models/CustomFields/CustomFieldResource.php +++ /dev/null @@ -1,22 +0,0 @@ - [ 'App\Listeners\Loggers\LogDeleteContent' ], - 'App\Events\CreateNewCustomField' => [ - 'App\Listeners\Loggers\LogCreateCustomField', - ], - 'App\Events\EditCustomField' => [ - 'App\Listeners\Loggers\LogEditCustomField', - ], - 'App\Events\DeleteCustomField' => [ - 'App\Listeners\Loggers\LogDeleteField', - ], + 'App\Events\ChangeSettings' => [ 'App\Listeners\Loggers\LogChangeSettings', ], diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index 15606e81..743fd45a 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -12,8 +12,6 @@ class DatabaseSeeder extends Seeder public function run() { // fill up custom field types - $this->call(SeedCustomFieldTypes::class); - $this->call(SeedCustomFieldResources::class); $this->call(SeedActionLogTypes::class); $this->call(SeedSettings::class); } diff --git a/database/seeds/SeedCustomFieldResources.php b/database/seeds/SeedCustomFieldResources.php deleted file mode 100644 index 001fc4ad..00000000 --- a/database/seeds/SeedCustomFieldResources.php +++ /dev/null @@ -1,24 +0,0 @@ - 'admin/customFields.resource_user'], - ['name' => 'admin/customFields.resource_content'] - ]; - - foreach ($types as $type) { - \DB::table('custom_field_resource') - ->insert($type); - } - } -} diff --git a/database/seeds/SeedCustomFieldTypes.php b/database/seeds/SeedCustomFieldTypes.php deleted file mode 100644 index f2d11873..00000000 --- a/database/seeds/SeedCustomFieldTypes.php +++ /dev/null @@ -1,27 +0,0 @@ - 'admin/customFields.date', 'handler' => '\\App\\CustomFields\\Date'], - ['name' => 'admin/customFields.number', 'handler' => '\\App\\CustomFields\\Number'], - ['name' => 'admin/customFields.selectboxList', 'handler' => '\\App\\CustomFields\\SelectboxList'], - ['name' => 'admin/customFields.string', 'handler' => '\\App\\CustomFields\\String'] - ]; - - foreach ($types as $type) { - \DB::table('custom_field_types') - ->insert($type); - } - } -} From 99ed8806da71e9f716527e4efd8fa8f2f4884f78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Mon, 28 Nov 2016 01:46:05 +0100 Subject: [PATCH 08/14] REFACTORING #2039 @1h: clean a little bit file manager --- app/CMS/Helpers/FileManager.php | 2 +- .../Admin/FileManager/EditDirectory.php | 40 +++++----------- .../Admin/FileManager/EditUploadedFile.php | 46 ++++--------------- .../Admin/FileManager/UploadFile.php | 2 +- .../FileManager/UploadedFilesOverview.php | 28 ++--------- app/Http/routes/admin/fileManager.php | 18 ++++---- app/Models/FileManager/Directory.php | 27 +++++++---- .../directories/subdirectoriesTiles.blade.php | 4 +- .../admin/fileManager/overview.blade.php | 4 +- 9 files changed, 60 insertions(+), 111 deletions(-) diff --git a/app/CMS/Helpers/FileManager.php b/app/CMS/Helpers/FileManager.php index 845ec787..63c01e48 100644 --- a/app/CMS/Helpers/FileManager.php +++ b/app/CMS/Helpers/FileManager.php @@ -98,7 +98,7 @@ class FileManager return $string; break; case 'application': - return ''; + return ''; break; default: return self::getPreview($file); diff --git a/app/Http/Controllers/Admin/FileManager/EditDirectory.php b/app/Http/Controllers/Admin/FileManager/EditDirectory.php index 565749dc..fb19c5be 100644 --- a/app/Http/Controllers/Admin/FileManager/EditDirectory.php +++ b/app/Http/Controllers/Admin/FileManager/EditDirectory.php @@ -10,33 +10,26 @@ class EditDirectory extends Controller { /** * @param Requests\EditDirectoryRequest $request - * @param $directoryId + * @param Directory $directory * * @return $this|\Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse + * @internal param $directoryId + * */ - public function postEdit(Requests\EditDirectoryRequest $request, $directoryId) + public function postEdit(Requests\EditDirectoryRequest $request, Directory $directory) { - $directory = Directory::findOrFail($directoryId); - // check if given name is not used in parent directory $exists = Directory::where('parent_id', $directory->parent_id) ->where('name', $request->name) - ->where('id', '!=', $directoryId) + ->where('id', '!=', $directory->id) ->exists(); if ($exists) { - if ($request->ajax()) { - return response()->json([ - 'status' => 'failed', - 'message' => trans('admin/fileManager.subdirectoryExists') - ]); - } else { - return redirect() - ->route('upload.overview', ['id' => $directoryId]) - ->withInput() - ->with('error', trans('admin/fileManager.subdirectoryExists')); - } + return redirect() + ->route('upload.overview', ['id' => $directory->id]) + ->withInput() + ->with('error', trans('admin/fileManager.subdirectoryExists')); } $directory->name = $request->name; @@ -45,17 +38,8 @@ class EditDirectory extends Controller $directory->save(); $message = trans('admin/fileManager.editDirectorySuccess'); - if (!$request->ajax()) { - return redirect() - ->route('upload.overview', ['id' => $directory->id]) - ->with('success', $message); - } else { - $payload = [ - 'status' => 'success', - 'message' => $message - ]; - - return response()->json($payload); - } + return redirect() + ->route('upload.overview', ['id' => $directory->id]) + ->with('success', $message); } } diff --git a/app/Http/Controllers/Admin/FileManager/EditUploadedFile.php b/app/Http/Controllers/Admin/FileManager/EditUploadedFile.php index 6d80163a..78886163 100644 --- a/app/Http/Controllers/Admin/FileManager/EditUploadedFile.php +++ b/app/Http/Controllers/Admin/FileManager/EditUploadedFile.php @@ -21,14 +21,8 @@ class EditUploadedFile extends Controller * * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\View\View */ - public function getDetail($id) + public function show(File $file) { - try { - $file = File::findOrFail($id); - } catch (NotFoundHttpException $e) { - return $this->fileNotFound(); - } - return view('admin.fileManager.edit', [ 'file' => $file, 'extraInfo' => FileManager::getAdditionalInfo($file) @@ -42,18 +36,14 @@ class EditUploadedFile extends Controller * unchanged * * @param EditUploadedFileRequest $request - * @param $id + * @param File $file * * @return \Illuminate\Http\RedirectResponse + * @internal param $id + * */ - public function postEdit(EditUploadedFileRequest $request, $id) + public function update(EditUploadedFileRequest $request, File $file) { - try { - $file = File::findOrFail($id); - } catch (NotFoundHttpException $e) { - return $this->fileNotFound(); - } - // set values from form $file->name = $request->name; $file->keywords = $request->keywords; @@ -65,23 +55,19 @@ class EditUploadedFile extends Controller // update successfull return redirect() - ->route('upload.detail', ['id' => $id]) + ->route('upload.detail', ['file' => $file]) ->with('success', trans('admin/fileManager.successfullyChanged')); } /** * Deletes file * - * @param $id + * @param File $file + * + * @return \Illuminate\Http\RedirectResponse */ - public function deleteFile($id) + public function delete(File $file) { - try { - $file = File::findOrFail($id); - } catch (NotFoundHttpException $e) { - return $this->fileNotFound(); - } - $directoryId = $file->directory_id; $file->delete(); @@ -89,16 +75,4 @@ class EditUploadedFile extends Controller ->route('upload.overview', ['id' => $directoryId]) ->with('success', trans('admin/fileManager.fileDeleted')); } - - /** - * Redirects user to files overview - * - * @return \Illuminate\Http\RedirectResponse - */ - private function fileNotFound() - { - return redirect() - ->route('upload.overview') - ->with('error', trans('admin/fileManager.fileNotFound')); - } } diff --git a/app/Http/Controllers/Admin/FileManager/UploadFile.php b/app/Http/Controllers/Admin/FileManager/UploadFile.php index 70d9f5fb..645bd027 100644 --- a/app/Http/Controllers/Admin/FileManager/UploadFile.php +++ b/app/Http/Controllers/Admin/FileManager/UploadFile.php @@ -28,7 +28,7 @@ class UploadFile extends Controller * * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse */ - public function postFile(Request $request) + public function store(Request $request) { if (Input::get('CKEditor')) { return $this->ckEditorUpload($request); diff --git a/app/Http/Controllers/Admin/FileManager/UploadedFilesOverview.php b/app/Http/Controllers/Admin/FileManager/UploadedFilesOverview.php index fda05484..9363e192 100644 --- a/app/Http/Controllers/Admin/FileManager/UploadedFilesOverview.php +++ b/app/Http/Controllers/Admin/FileManager/UploadedFilesOverview.php @@ -3,7 +3,6 @@ namespace App\Http\Controllers\Admin\FileManager; use App\Http\Controllers\Admin\Controller; use App\Models\FileManager\Directory; -use App\Models\FileManager\File; use Illuminate\Support\Facades\Input; class UploadedFilesOverview extends Controller @@ -11,37 +10,20 @@ class UploadedFilesOverview extends Controller /** * List of all files and directories * - * @param null $directoryId - * @param null $fileType - * @param null $fileSubtype + * @param Directory $directory * * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ - public function getOverview($directoryId = null, $fileType = null, $fileSubtype = null) + public function index(Directory $directory =null) { - // get directory information - $directory = is_null($directoryId) ? new Directory() : Directory::findOrFail($directoryId); - - // get all files in this directory - $files = File::orderBy('updated_at', 'DESC') - ->where('directory_id', $directory->id); - - // try to filter by given type - if (!is_null($fileType)) { - if (is_null($fileSubtype)) { - $files = $files->where('mime_type', 'LIKE', $fileType . '%'); - } else { - $files = $files->where('mime_type', $fileType . '/' . $fileSubtype); - } - } - // include hidden directories? $includeHidden = Input::get('hidden'); + $subdirectories = $includeHidden ? $directory->allSubdirectories : $directory->subdirectories; + return view('admin.fileManager.overview', [ 'directory' => $directory, - 'subdirectories' => $directory->subdirectories($includeHidden), - 'files' => $files->get(), + 'subdirectories' => $subdirectories, 'newDirectory' => new Directory() ]); } diff --git a/app/Http/routes/admin/fileManager.php b/app/Http/routes/admin/fileManager.php index 58eecfaf..ec85fc37 100644 --- a/app/Http/routes/admin/fileManager.php +++ b/app/Http/routes/admin/fileManager.php @@ -1,32 +1,32 @@ 'FileManager'], function () { - Route::get('files/overview/{id?}/{type?}/{subtype?}', 'UploadedFilesOverview@getOverview') + Route::get('files/overview/{directory?}', 'UploadedFilesOverview@index') ->name('upload.overview'); // uploader methods - Route::get('directories/new/{id?}', 'CreateNewDirectory@getNew') + Route::get('directories/new/{parentDirectory?}', 'CreateNewDirectory@create') ->name('upload.newDirectory'); - Route::get('directories/edit/{id}', 'EditDirectory@getEdit') + Route::get('directories/edit/{directory}', 'EditDirectory@edit') ->name('upload.editDirectory'); - Route::post('directories/edit/{id}', 'EditDirectory@postEdit') + Route::post('directories/edit/{directory}', 'EditDirectory@update') ->name('upload.postEditDirectory'); - route::post('directories/new', 'CreateNewDirectory@postNew') + route::post('directories/new', 'CreateNewDirectory@store') ->name('upload.postNewDirectory'); - Route::get('upload/detail/{id}', 'EditUploadedFile@getDetail') + Route::get('upload/detail/{file}', 'EditUploadedFile@show') ->name('upload.detail'); - Route::post('upload/detail/{id}', 'EditUploadedFile@postEdit') + Route::post('upload/detail/{file}', 'EditUploadedFile@update') ->name('upload.postEdit'); - Route::get('upload/delete/{id}', 'EditUploadedFile@deleteFile') + Route::get('upload/delete/{file}', 'EditUploadedFile@delete') ->name('upload.delete'); // uploader methods - Route::post('upload', 'UploadFile@postFile') + Route::post('upload', 'UploadFile@store') ->name('upload.postFile'); }); diff --git a/app/Models/FileManager/Directory.php b/app/Models/FileManager/Directory.php index ba52b4bc..e98fdd07 100644 --- a/app/Models/FileManager/Directory.php +++ b/app/Models/FileManager/Directory.php @@ -18,24 +18,33 @@ class Directory extends Model 'hidden' ]; + public function files() + { + return $this->hasMany(File::class); + } + /** * Relationship with parent/sub directories * - * @param bool $includeHidden - * * @return \Illuminate\Database\Eloquent\Relations\HasMany */ - public function subdirectories($includeHidden = false) + public function allSubdirectories() { + $subdirectories = $this->hasMany(Directory::class, 'parent_id', 'id'); - $subdirectories = Directory::where('parent_id', $this->id); - - if (!$includeHidden) { - $subdirectories = $subdirectories->where('hidden', 0); - + // todo fix this ugly hack! statement above produces WHERE parent_id IS NOT NULL and parent_id IS NULL when selecting subdirectories from root/none directory + if (is_null($this->id)) { + $subdirectories = $subdirectories->orWhereNull('parent_id'); } - return $subdirectories->get(); + return $subdirectories; + } + public function subdirectories() + { + $subdirectories = $this->allSubdirectories() + ->where('hidden', false); + + return $subdirectories; } } diff --git a/resources/views/admin/fileManager/directories/subdirectoriesTiles.blade.php b/resources/views/admin/fileManager/directories/subdirectoriesTiles.blade.php index 541818aa..9957b44f 100644 --- a/resources/views/admin/fileManager/directories/subdirectoriesTiles.blade.php +++ b/resources/views/admin/fileManager/directories/subdirectoriesTiles.blade.php @@ -1,7 +1,7 @@ @if($directory->id)
@include('admin.snippets.card', [ - 'body' => '


'.trans('admin/fileManager.parentDirectory').'

', + 'body' => '


'.trans('admin/fileManager.parentDirectory').'

', 'cardClass' => 'file-preview', ])
@@ -10,7 +10,7 @@ @foreach($subdirectories as $dir)
@include('admin.snippets.card', [ - 'body' => '


'.e(str_limit($dir->name, 15)).'

', + 'body' => '


'.e(str_limit($dir->name, 15)).'

', 'cardClass' => 'file-preview', ])
diff --git a/resources/views/admin/fileManager/overview.blade.php b/resources/views/admin/fileManager/overview.blade.php index 6fe41c95..a5cd2d0c 100644 --- a/resources/views/admin/fileManager/overview.blade.php +++ b/resources/views/admin/fileManager/overview.blade.php @@ -11,7 +11,7 @@
@include('admin.fileManager.directories.subdirectoriesTiles') - @include('admin.fileManager.filesTiles') + @include('admin.fileManager.filesTiles', ['files' => $directory->files])
@@ -31,7 +31,7 @@
- @if ($directory->id) + @if ($directory->exists)
- @if ($directory->exists) + @if (!$directory->is_root)