From 00d7bd562c0e7774376b9399a36ae037267eb3fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Sun, 25 Sep 2016 00:19:20 +0200 Subject: [PATCH 1/7] FEATURE: make user id not mandatory in widgets table --- ..._24_220747_MakeUserIdNullableAtWidgets.php | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 database/migrations/2016_09_24_220747_MakeUserIdNullableAtWidgets.php diff --git a/database/migrations/2016_09_24_220747_MakeUserIdNullableAtWidgets.php b/database/migrations/2016_09_24_220747_MakeUserIdNullableAtWidgets.php new file mode 100644 index 00000000..2c1e7c95 --- /dev/null +++ b/database/migrations/2016_09_24_220747_MakeUserIdNullableAtWidgets.php @@ -0,0 +1,55 @@ +dropForeign(['user_id']); + + $table->integer('user_id') + ->nullable(true) + ->default(null) + ->comment('User ID who created this widget. NULL for widget created by template.')->change(); + + $table->foreign('user_id') + ->references('id') + ->on('users') + ->onDelete('cascade') + ->onUpdate('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('widgets', function (Blueprint $table) { + $table->dropForeign(['user_id']); + }); + + Schema::table('widgets', function (Blueprint $table) { + $table->integer('user_id') + ->nullable(false) + ->comment('User ID who created this widget. ')->change(); + + $table->foreign('user_id') + ->references('id') + ->on('users') + ->onDelete('no action') + ->onUpdate('no action'); + }); + } +} From 9802161af187ec598003b5109bd70a50e14e7bdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Sun, 25 Sep 2016 00:21:18 +0200 Subject: [PATCH 2/7] FIX: add deletable fields into in widgets and widget area models --- app/Models/Widget.php | 5 +++-- app/Models/WidgetArea.php | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/Models/Widget.php b/app/Models/Widget.php index 5ed96c28..dc0d14bf 100644 --- a/app/Models/Widget.php +++ b/app/Models/Widget.php @@ -17,7 +17,9 @@ class Widget extends Model 'user_id', 'name', 'settings', - 'description' + 'language', + 'description', + 'deletable' ]; protected $guarded = []; @@ -31,7 +33,6 @@ class Widget extends Model */ public function createNew(WidgetType $widgetType, $data) { - // convert array or whatever into object if (!is_object($data)) { $data = (object)$data; diff --git a/app/Models/WidgetArea.php b/app/Models/WidgetArea.php index 009e5f32..1eaf2592 100644 --- a/app/Models/WidgetArea.php +++ b/app/Models/WidgetArea.php @@ -15,7 +15,8 @@ class WidgetArea extends Model protected $fillable = [ 'name', 'code', - 'description' + 'description', + 'deletable' ]; protected $guarded = []; From 80105c857e69f4e320aa4589aee1ce0d3f02c07a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Sun, 25 Sep 2016 01:35:39 +0200 Subject: [PATCH 3/7] FEATURE: extend registering widgets by setting template and module ID --- app/Handlers/Registrators/WidgetRegistrator.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/Handlers/Registrators/WidgetRegistrator.php b/app/Handlers/Registrators/WidgetRegistrator.php index e70cf9ee..d3b68a3a 100644 --- a/app/Handlers/Registrators/WidgetRegistrator.php +++ b/app/Handlers/Registrators/WidgetRegistrator.php @@ -18,9 +18,11 @@ class WidgetRegistrator /** * Method used for registering new widgets * - * @param $classname + * @param $classname + * @param null $templateId + * @param null $moduleId */ - public function register($classname) + public function register($classname, $templateId = null, $moduleId = null) { $class = new $classname; if (!$class instanceof PublicWidget) { @@ -36,6 +38,8 @@ class WidgetRegistrator WidgetType::create([ 'handler' => $classname, 'name' => $widgetName, + 'module_id' => $moduleId, + 'template_id' => $templateId, 'description' => $widgetDescription ]); From 85bbc384a7da702e27313ca302ede85a3b8b9421 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Sun, 25 Sep 2016 01:35:52 +0200 Subject: [PATCH 4/7] FEATURE: add getJson method to Settings helper --- app/Helpers/Settings.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/Helpers/Settings.php b/app/Helpers/Settings.php index cac5e30d..56882328 100644 --- a/app/Helpers/Settings.php +++ b/app/Helpers/Settings.php @@ -45,6 +45,18 @@ class Settings return $default; } + /** + * Shortcut for obtaining settings saved as JSON + * + * @param $key + * + * @return mixed + */ + public static function getJson($key) + { + return json_decode(self::get($key, '{}')); + } + /** * Get all settings * From d6a441cb96501ac5fb7edf63c7cc8d228cf68fa5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Sun, 25 Sep 2016 01:36:18 +0200 Subject: [PATCH 5/7] FEATURE: add template_id and module_id into in WidgetType model --- app/Models/WidgetType.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/Models/WidgetType.php b/app/Models/WidgetType.php index 07330dc1..caa38892 100644 --- a/app/Models/WidgetType.php +++ b/app/Models/WidgetType.php @@ -15,6 +15,8 @@ class WidgetType extends Model protected $fillable = [ 'handler', 'name', + 'template_id', + 'module_id', 'description' ]; From 52394c62890bea6c918ec24e6e1e6818fd283646 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Sun, 25 Sep 2016 01:57:45 +0200 Subject: [PATCH 6/7] FEATURE: add widget association in new admin layout - hopefully last try of doing this --- .../views/admin/widgets/association.blade.php | 60 +++---------------- .../widgets/widgetsToAssociate.blade.php | 2 +- 2 files changed, 8 insertions(+), 54 deletions(-) diff --git a/resources/views/admin/widgets/association.blade.php b/resources/views/admin/widgets/association.blade.php index 5ac74f6f..67679ad5 100644 --- a/resources/views/admin/widgets/association.blade.php +++ b/resources/views/admin/widgets/association.blade.php @@ -1,61 +1,15 @@ -@extends('admin.layout') +@extends('admin.layoutWithNavigation') @section('pageName', @trans('admin/widgets.overview')) @section('content')
- - @if (session('success')) -
- {{ session('success') }} -
- @endif - - @if (session('error')) -
- {{ session('error') }} -
- @endif - -
- +

@lang('admin/widgets.overview')

- @forelse($widgets as $widget) -
-
-

{{str_limit($widget->name, 20)}}

-

- {{trans(call_user_func([$widget->widget_type_handler, 'getName']))}} -

-

- {{str_limit($widget->description, 150)}} -

- -
- - - @if (in_array($widget->id, $associatedWidgetIds)) - - - - @else - - @endif -
-
-
- @empty - @lang('admin/widgets.noEntries') - @endforelse - -
- {!! $widgets->render() !!} -
+ @include('admin.widgets.widgetsToAssociate', ['tileClass' => 'col-lg-3 col-md-4 col-sm-6 col-xs-12'])
-
+

{{$widgetArea->name}}

@@ -63,11 +17,11 @@

    -
  • @lang('admin/widgets.createdAt'): {{$widgetArea->created_at}}
  • -
  • @lang('admin/widgets.updatedAt'): {{$widgetArea->updated_at}}
  • +
  • @lang('admin/widgets.createdAt'): @date($widgetArea->created_at)
  • +
  • @lang('admin/widgets.updatedAt'): @date($widgetArea->updated_at)
- @lang('admin/widgetAreas.editButton') + @lang('admin/widgetAreas.editButton') @if (!empty($associatedWidgetIds))

@lang('admin/widgets.preview')

diff --git a/resources/views/admin/widgets/widgetsToAssociate.blade.php b/resources/views/admin/widgets/widgetsToAssociate.blade.php index b54fc505..81671c3f 100644 --- a/resources/views/admin/widgets/widgetsToAssociate.blade.php +++ b/resources/views/admin/widgets/widgetsToAssociate.blade.php @@ -2,7 +2,7 @@
-
+

{{str_limit($widget->name, 15)}}

From ff4585327e5f415d079970da7c5fcf605dd2581a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Sun, 25 Sep 2016 02:00:50 +0200 Subject: [PATCH 7/7] FEATURE: add helper function asset_path() --- app/Helpers/functions.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/Helpers/functions.php b/app/Helpers/functions.php index 938ae77e..8a163000 100644 --- a/app/Helpers/functions.php +++ b/app/Helpers/functions.php @@ -23,4 +23,8 @@ function e($value) */ function setting($key, $default = null) { return \App\Helpers\Settings::get($key, $default); +} + +function asset_path($path) { + return env('SITE_URL').'/assets/'.$path; } \ No newline at end of file