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 ]); 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 * 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 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 = []; 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' ]; 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'); + }); + } +} 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')
- {{trans(call_user_func([$widget->widget_type_handler, 'getName']))}} -
-- {{str_limit($widget->description, 150)}} -
- - -@@ -63,11 +17,11 @@