From 012b8b7588bb90be57df7186dbee15d49eae16f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Mon, 15 Feb 2016 10:26:39 +0100 Subject: [PATCH] FEATURE #1419: add admin for creating new widget area --- .../Controllers/Admin/CreateNewWidgetArea.php | 43 ++++++++++++ app/Http/Requests/NewWidgetAreaRequest.php | 19 ++++++ ..._234544_FixAutoIncrementForWidgetAreas.php | 67 +++++++++++++++++++ resources/lang/en/admin/mainMenu.php | 4 +- resources/lang/en/admin/widgetAreas.php | 17 +++++ .../views/admin/widgets/area/new.blade.php | 10 +++ .../admin/widgets/area/newForm.blade.php | 55 +++++++++++++++ 7 files changed, 214 insertions(+), 1 deletion(-) create mode 100644 app/Http/Controllers/Admin/CreateNewWidgetArea.php create mode 100644 app/Http/Requests/NewWidgetAreaRequest.php create mode 100644 database/migrations/2016_02_08_234544_FixAutoIncrementForWidgetAreas.php create mode 100644 resources/lang/en/admin/widgetAreas.php create mode 100644 resources/views/admin/widgets/area/new.blade.php create mode 100644 resources/views/admin/widgets/area/newForm.blade.php diff --git a/app/Http/Controllers/Admin/CreateNewWidgetArea.php b/app/Http/Controllers/Admin/CreateNewWidgetArea.php new file mode 100644 index 00000000..f4965cd0 --- /dev/null +++ b/app/Http/Controllers/Admin/CreateNewWidgetArea.php @@ -0,0 +1,43 @@ + $request->code, + 'name' => $request->name, + 'description' => $request->description + ]; + + WidgetArea::create($parameters); + + + // redirect with success notification + return redirect() + ->route('widgetareas.overview') + ->with('success', trans('admin/widgetAreas.successfullyCreated')); + } +} diff --git a/app/Http/Requests/NewWidgetAreaRequest.php b/app/Http/Requests/NewWidgetAreaRequest.php new file mode 100644 index 00000000..c52d9aed --- /dev/null +++ b/app/Http/Requests/NewWidgetAreaRequest.php @@ -0,0 +1,19 @@ + 'required|unique:widget_areas,code', + 'name' => 'required' + ]; + } +} diff --git a/database/migrations/2016_02_08_234544_FixAutoIncrementForWidgetAreas.php b/database/migrations/2016_02_08_234544_FixAutoIncrementForWidgetAreas.php new file mode 100644 index 00000000..d090d6d7 --- /dev/null +++ b/database/migrations/2016_02_08_234544_FixAutoIncrementForWidgetAreas.php @@ -0,0 +1,67 @@ +dropForeign('fk_widget_has_widget_area_widget_area1'); + }); + } catch (\Illuminate\Database\QueryException $e) { + // probably foreign does not exist, try to remove one from migration + + try { + Schema::table('widget_in_widget_area', function (Blueprint $table) { + $table->dropForeign('widget_in_widget_area_widget_area_id_foreign'); + }); + } catch (\Illuminate\Database\QueryException $ex) { + // ignore this error + } + } + + Schema::table('widget_areas', function (Blueprint $table) { + $table->integer('id', true)->change(); + }); + + Schema::table('widget_in_widget_area', function(Blueprint $table) { + $table->foreign('widget_area_id') + ->references('id') + ->on('widget_areas') + ->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('widget_in_widget_area', function (Blueprint $table) { + $table->dropForeign('widget_in_widget_area_widget_area_id_foreign'); + }); + + Schema::table('widget_areas', function (Blueprint $table) { + $table->integer('id', false)->change(); + }); + + Schema::table('widget_in_widget_area', function(Blueprint $table) { + $table->foreign('widget_area_id') + ->references('id') + ->on('widget_areas') + ->onDelete('cascade'); + }); + + } +} diff --git a/resources/lang/en/admin/mainMenu.php b/resources/lang/en/admin/mainMenu.php index 2d001cdb..c17c0b59 100644 --- a/resources/lang/en/admin/mainMenu.php +++ b/resources/lang/en/admin/mainMenu.php @@ -14,5 +14,7 @@ return [ 'uploadFile' => 'New file', 'uploadImage' => 'New image', 'uploadedFiles' => 'Overview', - 'actionLog' => 'Log' + 'actionLog' => 'Log', + 'widgets' => 'Widgets', + 'newWidgetArea' => 'New area', ]; \ No newline at end of file diff --git a/resources/lang/en/admin/widgetAreas.php b/resources/lang/en/admin/widgetAreas.php new file mode 100644 index 00000000..f971810d --- /dev/null +++ b/resources/lang/en/admin/widgetAreas.php @@ -0,0 +1,17 @@ + 'New widget area', + 'name' => 'Widget area name', + 'code' => 'Unique code', + 'description' => 'Description', + 'createNew' => 'Create new widget area', + 'successfullyCreated' => 'Widget area successfully created', + 'overview' => 'List of all widget areas', + 'successfullyDeleted' => 'Successfully deleted', + 'invalidArea' => 'Specified widget area is not valid. Try to choose a valid one.', + 'actions' => 'Actions', + 'noEntries' => 'No widget areas defined yet. Try to create some first.', + 'editButton' => 'Edit', + 'edit' => 'Editing widget area :name', + 'editSuccessfull' => 'Successfully edited' +]; \ No newline at end of file diff --git a/resources/views/admin/widgets/area/new.blade.php b/resources/views/admin/widgets/area/new.blade.php new file mode 100644 index 00000000..ad6328a9 --- /dev/null +++ b/resources/views/admin/widgets/area/new.blade.php @@ -0,0 +1,10 @@ +@extends('admin.layout') + +@section('pageName', @trans('admin/widgetAreas.new')) + +@section('content') +

@lang('admin/widgetAreas.new')

+ + @include('admin.widgets.area.newForm') +@stop + diff --git a/resources/views/admin/widgets/area/newForm.blade.php b/resources/views/admin/widgets/area/newForm.blade.php new file mode 100644 index 00000000..ead346a3 --- /dev/null +++ b/resources/views/admin/widgets/area/newForm.blade.php @@ -0,0 +1,55 @@ +@if (!isset($hideMessages)) + @if (session('success')) +
+ {{ session('success') }} +
+ @endif + + @if (session('error')) +
+ {{ session('error') }} +
+ @endif +@endif + +
+ {!! csrf_field() !!} + + + + + + + +
\ No newline at end of file