From ed1d87a7d187f2b5907b74d216fd1042b7c0da47 Mon Sep 17 00:00:00 2001 From: Ludovic CANDELLIER Date: Tue, 25 Jan 2022 22:25:18 +0100 Subject: [PATCH] Fixes on tag_Groups and variations, add migrations --- Gruntfile.js | 6 ++ app/Datatables/Shop/TagGroupsDataTable.php | 5 +- app/Models/Shop/Tag.php | 12 ++- app/Repositories/Shop/Tags.php | 5 +- app/Repositories/Shop/Variations.php | 4 +- ...04_20_212813_create_activity_log_table.php | 42 ++++++++++ ...0_04_20_212813_create_categories_table.php | 41 +++++++++ ..._20_212813_create_categorizables_table.php | 37 +++++++++ ..._04_20_212813_create_failed_jobs_table.php | 37 +++++++++ ...20_04_20_212813_create_mail_logs_table.php | 37 +++++++++ ...20_212813_create_password_resets_table.php | 34 ++++++++ ...20_212813_create_permission_role_table.php | 34 ++++++++ ...20_212813_create_permission_user_table.php | 35 ++++++++ ...13_create_permissions_categories_table.php | 34 ++++++++ ..._04_20_212813_create_permissions_table.php | 37 +++++++++ ...20_04_20_212813_create_role_user_table.php | 35 ++++++++ .../2020_04_20_212813_create_roles_table.php | 36 ++++++++ ...212813_create_tagging_tag_groups_table.php | 34 ++++++++ ..._20_212813_create_tagging_tagged_table.php | 36 ++++++++ ...04_20_212813_create_tagging_tags_table.php | 37 +++++++++ ...04_20_212813_create_team_invites_table.php | 39 +++++++++ ...20_04_20_212813_create_team_user_table.php | 34 ++++++++ .../2020_04_20_212813_create_teams_table.php | 35 ++++++++ .../2020_04_20_212813_create_users_table.php | 45 ++++++++++ ...d_foreign_keys_to_categorizables_table.php | 35 ++++++++ ..._foreign_keys_to_permission_role_table.php | 37 +++++++++ ..._foreign_keys_to_permission_user_table.php | 35 ++++++++ ..._add_foreign_keys_to_permissions_table.php | 35 ++++++++ ...17_add_foreign_keys_to_role_user_table.php | 37 +++++++++ ...add_foreign_keys_to_tagging_tags_table.php | 35 ++++++++ ...add_foreign_keys_to_team_invites_table.php | 35 ++++++++ ...17_add_foreign_keys_to_team_user_table.php | 37 +++++++++ ...021_06_05_192053_teamwork_setup_tables.php | 83 +++++++++++++++++++ package.json | 1 + resources/lang/fr/shop.php | 13 +++ .../Admin/Shop/TagGroups/create.blade.php | 6 +- .../views/Admin/Shop/TagGroups/edit.blade.php | 4 +- .../views/Admin/Shop/TagGroups/form.blade.php | 16 +++- .../views/Admin/Shop/TagGroups/list.blade.php | 6 +- 39 files changed, 1125 insertions(+), 21 deletions(-) create mode 100644 database/migrations/2020_04_20_212813_create_activity_log_table.php create mode 100644 database/migrations/2020_04_20_212813_create_categories_table.php create mode 100644 database/migrations/2020_04_20_212813_create_categorizables_table.php create mode 100644 database/migrations/2020_04_20_212813_create_failed_jobs_table.php create mode 100644 database/migrations/2020_04_20_212813_create_mail_logs_table.php create mode 100644 database/migrations/2020_04_20_212813_create_password_resets_table.php create mode 100644 database/migrations/2020_04_20_212813_create_permission_role_table.php create mode 100644 database/migrations/2020_04_20_212813_create_permission_user_table.php create mode 100644 database/migrations/2020_04_20_212813_create_permissions_categories_table.php create mode 100644 database/migrations/2020_04_20_212813_create_permissions_table.php create mode 100644 database/migrations/2020_04_20_212813_create_role_user_table.php create mode 100644 database/migrations/2020_04_20_212813_create_roles_table.php create mode 100644 database/migrations/2020_04_20_212813_create_tagging_tag_groups_table.php create mode 100644 database/migrations/2020_04_20_212813_create_tagging_tagged_table.php create mode 100644 database/migrations/2020_04_20_212813_create_tagging_tags_table.php create mode 100644 database/migrations/2020_04_20_212813_create_team_invites_table.php create mode 100644 database/migrations/2020_04_20_212813_create_team_user_table.php create mode 100644 database/migrations/2020_04_20_212813_create_teams_table.php create mode 100644 database/migrations/2020_04_20_212813_create_users_table.php create mode 100644 database/migrations/2020_04_20_212817_add_foreign_keys_to_categorizables_table.php create mode 100644 database/migrations/2020_04_20_212817_add_foreign_keys_to_permission_role_table.php create mode 100644 database/migrations/2020_04_20_212817_add_foreign_keys_to_permission_user_table.php create mode 100644 database/migrations/2020_04_20_212817_add_foreign_keys_to_permissions_table.php create mode 100644 database/migrations/2020_04_20_212817_add_foreign_keys_to_role_user_table.php create mode 100644 database/migrations/2020_04_20_212817_add_foreign_keys_to_tagging_tags_table.php create mode 100644 database/migrations/2020_04_20_212817_add_foreign_keys_to_team_invites_table.php create mode 100644 database/migrations/2020_04_20_212817_add_foreign_keys_to_team_user_table.php create mode 100644 database/migrations/2021_06_05_192053_teamwork_setup_tables.php diff --git a/Gruntfile.js b/Gruntfile.js index e020f183..12d04719 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -539,6 +539,12 @@ module.exports = function(grunt) { src: ['jqtree.css'], dest: 'public/assets/plugins/jqtree' }, + { + expand: true, + cwd: 'node_modules/sidr/dist/', + src: ['**'], + dest: 'public/assets/plugins/sidr' + }, { expand: true, cwd: 'build/js/include/', diff --git a/app/Datatables/Shop/TagGroupsDataTable.php b/app/Datatables/Shop/TagGroupsDataTable.php index 51a7c196..1130d75c 100644 --- a/app/Datatables/Shop/TagGroupsDataTable.php +++ b/app/Datatables/Shop/TagGroupsDataTable.php @@ -12,14 +12,15 @@ class TagGroupsDataTable extends DataTable public function query(TagGroup $model) { - $model = $model::withCount('tags'); + $model = $model::with('article_family')->withCount('tags'); return $this->buildQuery($model); } protected function getColumns() { return [ - Column::make('name'), + Column::make('code')->title('Code'), + Column::make('name')->title('Nom'), Column::make('tags_count')->title('#Tags')->searchable(false)->addClass('text-right')->width(60), $this->makeColumnButtons(), ]; diff --git a/app/Models/Shop/Tag.php b/app/Models/Shop/Tag.php index 7ae397b2..b8341ad4 100644 --- a/app/Models/Shop/Tag.php +++ b/app/Models/Shop/Tag.php @@ -2,9 +2,6 @@ namespace App\Models\Shop; -use Illuminate\Database\Eloquent\Model; - -// use Spatie\Translatable\HasTranslations; use Rinvex\Tags\Models\Tag as parentTag; use App\Models\Botanic\Specie; @@ -12,9 +9,16 @@ use App\Models\Botanic\Variety; class Tag extends parentTag { - // use HasTranslations; protected $guarded = ['id']; + protected $fillable = [ + 'slug', + 'name', + 'description', + 'sort_order', + 'group', + 'tag_group_id', + ]; public $translatable = ['name']; /* diff --git a/app/Repositories/Shop/Tags.php b/app/Repositories/Shop/Tags.php index dfa9178d..3dcb8c03 100644 --- a/app/Repositories/Shop/Tags.php +++ b/app/Repositories/Shop/Tags.php @@ -12,7 +12,7 @@ class Tags public static function getOptions() { - return Tag::get()->pluck('name', 'id')->toArray(); + return Tag::pluck('name', 'id')->toArray(); } public static function getWithCountOffers() @@ -52,8 +52,7 @@ class Tags public static function store($data) { - $id = isset($data['id']) ? $data['id'] : false; - $item = $id ? self::update($data) : self::create($data); + $item = ($data['id'] ?? false) ? self::update($data) : self::create($data); return $item->id; } diff --git a/app/Repositories/Shop/Variations.php b/app/Repositories/Shop/Variations.php index 3c0a1b49..6151a8b2 100644 --- a/app/Repositories/Shop/Variations.php +++ b/app/Repositories/Shop/Variations.php @@ -2,6 +2,8 @@ namespace App\Repositories\Shop; +use Illuminate\Support\Str; + use App\Models\Shop\Variation; class Variations @@ -33,7 +35,7 @@ class Variations public static function getName($variation) { - return $variation->package->value . ' ' . $variation->quantity . ' ' . ($variation->unity->value ?? null); + return $variation->package->value . ' ' . $variation->quantity . ' ' . ($variation->unity->value ?? null) . ' ' . Str::limit($variation->description, 15, ' (...)'); } public static function buildName($data) diff --git a/database/migrations/2020_04_20_212813_create_activity_log_table.php b/database/migrations/2020_04_20_212813_create_activity_log_table.php new file mode 100644 index 00000000..1c5d4777 --- /dev/null +++ b/database/migrations/2020_04_20_212813_create_activity_log_table.php @@ -0,0 +1,42 @@ +bigInteger('id', true)->unsigned(); + $table->string('log_name')->nullable()->index(); + $table->text('description', 65535); + $table->bigInteger('subject_id')->unsigned()->nullable(); + $table->string('subject_type')->nullable(); + $table->bigInteger('causer_id')->unsigned()->nullable(); + $table->string('causer_type')->nullable(); + $table->text('properties', 65535)->nullable(); + $table->timestamps(); + $table->index(['subject_id','subject_type'], 'subject'); + $table->index(['causer_id','causer_type'], 'causer'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('activity_log'); + } + +} diff --git a/database/migrations/2020_04_20_212813_create_categories_table.php b/database/migrations/2020_04_20_212813_create_categories_table.php new file mode 100644 index 00000000..db9a36b3 --- /dev/null +++ b/database/migrations/2020_04_20_212813_create_categories_table.php @@ -0,0 +1,41 @@ +increments('id'); + $table->string('slug')->unique(); + $table->text('name', 65535); + $table->text('description', 65535)->nullable(); + $table->integer('_lft')->unsigned()->default(0); + $table->integer('_rgt')->unsigned()->default(0); + $table->integer('parent_id')->unsigned()->nullable(); + $table->timestamps(); + $table->softDeletes(); + $table->index(['_lft','_rgt','parent_id']); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('categories'); + } + +} diff --git a/database/migrations/2020_04_20_212813_create_categorizables_table.php b/database/migrations/2020_04_20_212813_create_categorizables_table.php new file mode 100644 index 00000000..1f447817 --- /dev/null +++ b/database/migrations/2020_04_20_212813_create_categorizables_table.php @@ -0,0 +1,37 @@ +integer('category_id')->unsigned(); + $table->string('categorizable_type'); + $table->bigInteger('categorizable_id')->unsigned(); + $table->timestamps(); + $table->unique(['category_id','categorizable_id','categorizable_type'], 'categorizables_ids_type_unique'); + $table->index(['categorizable_type','categorizable_id']); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('categorizables'); + } + +} diff --git a/database/migrations/2020_04_20_212813_create_failed_jobs_table.php b/database/migrations/2020_04_20_212813_create_failed_jobs_table.php new file mode 100644 index 00000000..547aa370 --- /dev/null +++ b/database/migrations/2020_04_20_212813_create_failed_jobs_table.php @@ -0,0 +1,37 @@ +bigInteger('id', true)->unsigned(); + $table->text('connection', 65535); + $table->text('queue', 65535); + $table->text('payload'); + $table->text('exception'); + $table->timestamp('failed_at')->default(DB::raw('CURRENT_TIMESTAMP')); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('failed_jobs'); + } + +} diff --git a/database/migrations/2020_04_20_212813_create_mail_logs_table.php b/database/migrations/2020_04_20_212813_create_mail_logs_table.php new file mode 100644 index 00000000..1be1a777 --- /dev/null +++ b/database/migrations/2020_04_20_212813_create_mail_logs_table.php @@ -0,0 +1,37 @@ +increments('id'); + $table->string('sent_to')->nullable(); + $table->text('data', 65535); + $table->text('route', 65535); + $table->text('event', 65535); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('mail_logs'); + } + +} diff --git a/database/migrations/2020_04_20_212813_create_password_resets_table.php b/database/migrations/2020_04_20_212813_create_password_resets_table.php new file mode 100644 index 00000000..2fcab1ae --- /dev/null +++ b/database/migrations/2020_04_20_212813_create_password_resets_table.php @@ -0,0 +1,34 @@ +string('email')->index(); + $table->string('token'); + $table->dateTime('created_at')->nullable(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('password_resets'); + } + +} diff --git a/database/migrations/2020_04_20_212813_create_permission_role_table.php b/database/migrations/2020_04_20_212813_create_permission_role_table.php new file mode 100644 index 00000000..eecec240 --- /dev/null +++ b/database/migrations/2020_04_20_212813_create_permission_role_table.php @@ -0,0 +1,34 @@ +integer('permission_id')->unsigned(); + $table->integer('role_id')->unsigned()->index('permission_role_role_id_foreign'); + $table->primary(['permission_id','role_id']); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('permission_role'); + } + +} diff --git a/database/migrations/2020_04_20_212813_create_permission_user_table.php b/database/migrations/2020_04_20_212813_create_permission_user_table.php new file mode 100644 index 00000000..6b34fa11 --- /dev/null +++ b/database/migrations/2020_04_20_212813_create_permission_user_table.php @@ -0,0 +1,35 @@ +integer('permission_id')->unsigned(); + $table->integer('user_id')->unsigned(); + $table->string('user_type'); + $table->primary(['permission_id','user_id','user_type']); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('permission_user'); + } + +} diff --git a/database/migrations/2020_04_20_212813_create_permissions_categories_table.php b/database/migrations/2020_04_20_212813_create_permissions_categories_table.php new file mode 100644 index 00000000..f714a73e --- /dev/null +++ b/database/migrations/2020_04_20_212813_create_permissions_categories_table.php @@ -0,0 +1,34 @@ +increments('id'); + $table->string('name')->unique(); + $table->string('display_name'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('permissions_categories'); + } + +} diff --git a/database/migrations/2020_04_20_212813_create_permissions_table.php b/database/migrations/2020_04_20_212813_create_permissions_table.php new file mode 100644 index 00000000..1c0628bf --- /dev/null +++ b/database/migrations/2020_04_20_212813_create_permissions_table.php @@ -0,0 +1,37 @@ +increments('id'); + $table->integer('category_id')->unsigned()->nullable()->index('permissions_category_id_foreign'); + $table->string('name')->unique(); + $table->string('display_name')->nullable(); + $table->string('description')->nullable(); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('permissions'); + } + +} diff --git a/database/migrations/2020_04_20_212813_create_role_user_table.php b/database/migrations/2020_04_20_212813_create_role_user_table.php new file mode 100644 index 00000000..6b64a4b3 --- /dev/null +++ b/database/migrations/2020_04_20_212813_create_role_user_table.php @@ -0,0 +1,35 @@ +bigInteger('user_id')->unsigned(); + $table->integer('role_id')->unsigned()->index('role_user_role_id_foreign'); + $table->string('user_type'); + $table->primary(['user_id','role_id','user_type']); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('role_user'); + } + +} diff --git a/database/migrations/2020_04_20_212813_create_roles_table.php b/database/migrations/2020_04_20_212813_create_roles_table.php new file mode 100644 index 00000000..0aa40741 --- /dev/null +++ b/database/migrations/2020_04_20_212813_create_roles_table.php @@ -0,0 +1,36 @@ +increments('id'); + $table->string('name')->unique(); + $table->string('display_name')->nullable(); + $table->string('description')->nullable(); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('roles'); + } + +} diff --git a/database/migrations/2020_04_20_212813_create_tagging_tag_groups_table.php b/database/migrations/2020_04_20_212813_create_tagging_tag_groups_table.php new file mode 100644 index 00000000..12390172 --- /dev/null +++ b/database/migrations/2020_04_20_212813_create_tagging_tag_groups_table.php @@ -0,0 +1,34 @@ +increments('id'); + $table->string('slug', 125)->index(); + $table->string('name', 125); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('tagging_tag_groups'); + } + +} diff --git a/database/migrations/2020_04_20_212813_create_tagging_tagged_table.php b/database/migrations/2020_04_20_212813_create_tagging_tagged_table.php new file mode 100644 index 00000000..11681ff1 --- /dev/null +++ b/database/migrations/2020_04_20_212813_create_tagging_tagged_table.php @@ -0,0 +1,36 @@ +increments('id'); + $table->integer('taggable_id')->unsigned()->index(); + $table->string('taggable_type', 125)->index(); + $table->string('tag_name', 125); + $table->string('tag_slug', 125)->index(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('tagging_tagged'); + } + +} diff --git a/database/migrations/2020_04_20_212813_create_tagging_tags_table.php b/database/migrations/2020_04_20_212813_create_tagging_tags_table.php new file mode 100644 index 00000000..a26141f9 --- /dev/null +++ b/database/migrations/2020_04_20_212813_create_tagging_tags_table.php @@ -0,0 +1,37 @@ +increments('id'); + $table->string('slug', 125)->index(); + $table->string('name', 125); + $table->boolean('suggest')->default(0); + $table->integer('count')->unsigned()->default(0); + $table->integer('tag_group_id')->unsigned()->nullable()->index('tagging_tags_tag_group_id_foreign'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('tagging_tags'); + } + +} diff --git a/database/migrations/2020_04_20_212813_create_team_invites_table.php b/database/migrations/2020_04_20_212813_create_team_invites_table.php new file mode 100644 index 00000000..2cf3c8a9 --- /dev/null +++ b/database/migrations/2020_04_20_212813_create_team_invites_table.php @@ -0,0 +1,39 @@ +increments('id'); + $table->bigInteger('user_id')->unsigned(); + $table->integer('team_id')->unsigned()->index('team_invites_team_id_foreign'); + $table->enum('type', array('invite','request')); + $table->string('email'); + $table->string('accept_token'); + $table->string('deny_token'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('team_invites'); + } + +} diff --git a/database/migrations/2020_04_20_212813_create_team_user_table.php b/database/migrations/2020_04_20_212813_create_team_user_table.php new file mode 100644 index 00000000..921a85d2 --- /dev/null +++ b/database/migrations/2020_04_20_212813_create_team_user_table.php @@ -0,0 +1,34 @@ +bigInteger('user_id')->unsigned()->index('team_user_user_id_foreign'); + $table->integer('team_id')->unsigned()->index('team_user_team_id_foreign'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('team_user'); + } + +} diff --git a/database/migrations/2020_04_20_212813_create_teams_table.php b/database/migrations/2020_04_20_212813_create_teams_table.php new file mode 100644 index 00000000..7e09e69a --- /dev/null +++ b/database/migrations/2020_04_20_212813_create_teams_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->integer('owner_id')->unsigned()->nullable(); + $table->string('name'); + $table->timestamps(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('teams'); + } + +} diff --git a/database/migrations/2020_04_20_212813_create_users_table.php b/database/migrations/2020_04_20_212813_create_users_table.php new file mode 100644 index 00000000..16208513 --- /dev/null +++ b/database/migrations/2020_04_20_212813_create_users_table.php @@ -0,0 +1,45 @@ +bigInteger('id', true)->unsigned(); + $table->boolean('active')->default(0); + $table->string('first_name')->nullable(); + $table->string('last_name')->nullable(); + $table->string('email')->unique(); + $table->dateTime('email_verified_at')->nullable(); + $table->string('password'); + $table->string('remember_token', 100)->nullable(); + $table->timestamps(); + $table->softDeletes(); + $table->dateTime('last_login')->nullable(); + $table->boolean('verified')->default(0); + $table->string('verification_token')->nullable(); + $table->integer('current_team_id')->unsigned()->nullable(); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('users'); + } + +} diff --git a/database/migrations/2020_04_20_212817_add_foreign_keys_to_categorizables_table.php b/database/migrations/2020_04_20_212817_add_foreign_keys_to_categorizables_table.php new file mode 100644 index 00000000..887bf833 --- /dev/null +++ b/database/migrations/2020_04_20_212817_add_foreign_keys_to_categorizables_table.php @@ -0,0 +1,35 @@ +foreign('category_id')->references('id')->on('categories')->onUpdate('CASCADE')->onDelete('CASCADE'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('categorizables', function(Blueprint $table) + { + $table->dropForeign('categorizables_category_id_foreign'); + }); + } + +} diff --git a/database/migrations/2020_04_20_212817_add_foreign_keys_to_permission_role_table.php b/database/migrations/2020_04_20_212817_add_foreign_keys_to_permission_role_table.php new file mode 100644 index 00000000..be06b508 --- /dev/null +++ b/database/migrations/2020_04_20_212817_add_foreign_keys_to_permission_role_table.php @@ -0,0 +1,37 @@ +foreign('permission_id')->references('id')->on('permissions')->onUpdate('CASCADE')->onDelete('CASCADE'); + $table->foreign('role_id')->references('id')->on('roles')->onUpdate('CASCADE')->onDelete('CASCADE'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('permission_role', function(Blueprint $table) + { + $table->dropForeign('permission_role_permission_id_foreign'); + $table->dropForeign('permission_role_role_id_foreign'); + }); + } + +} diff --git a/database/migrations/2020_04_20_212817_add_foreign_keys_to_permission_user_table.php b/database/migrations/2020_04_20_212817_add_foreign_keys_to_permission_user_table.php new file mode 100644 index 00000000..7f76d0c9 --- /dev/null +++ b/database/migrations/2020_04_20_212817_add_foreign_keys_to_permission_user_table.php @@ -0,0 +1,35 @@ +foreign('permission_id')->references('id')->on('permissions')->onUpdate('CASCADE')->onDelete('CASCADE'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('permission_user', function(Blueprint $table) + { + $table->dropForeign('permission_user_permission_id_foreign'); + }); + } + +} diff --git a/database/migrations/2020_04_20_212817_add_foreign_keys_to_permissions_table.php b/database/migrations/2020_04_20_212817_add_foreign_keys_to_permissions_table.php new file mode 100644 index 00000000..ac305150 --- /dev/null +++ b/database/migrations/2020_04_20_212817_add_foreign_keys_to_permissions_table.php @@ -0,0 +1,35 @@ +foreign('category_id')->references('id')->on('permissions_categories')->onUpdate('RESTRICT')->onDelete('SET NULL'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('permissions', function(Blueprint $table) + { + $table->dropForeign('permissions_category_id_foreign'); + }); + } + +} diff --git a/database/migrations/2020_04_20_212817_add_foreign_keys_to_role_user_table.php b/database/migrations/2020_04_20_212817_add_foreign_keys_to_role_user_table.php new file mode 100644 index 00000000..c16eff1d --- /dev/null +++ b/database/migrations/2020_04_20_212817_add_foreign_keys_to_role_user_table.php @@ -0,0 +1,37 @@ +foreign('role_id')->references('id')->on('roles')->onUpdate('CASCADE')->onDelete('CASCADE'); + $table->foreign('user_id')->references('id')->on('users')->onUpdate('CASCADE')->onDelete('CASCADE'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('role_user', function(Blueprint $table) + { + $table->dropForeign('role_user_role_id_foreign'); + $table->dropForeign('role_user_user_id_foreign'); + }); + } + +} diff --git a/database/migrations/2020_04_20_212817_add_foreign_keys_to_tagging_tags_table.php b/database/migrations/2020_04_20_212817_add_foreign_keys_to_tagging_tags_table.php new file mode 100644 index 00000000..34d32ebe --- /dev/null +++ b/database/migrations/2020_04_20_212817_add_foreign_keys_to_tagging_tags_table.php @@ -0,0 +1,35 @@ +foreign('tag_group_id')->references('id')->on('tagging_tag_groups')->onUpdate('RESTRICT')->onDelete('RESTRICT'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('tagging_tags', function(Blueprint $table) + { + $table->dropForeign('tagging_tags_tag_group_id_foreign'); + }); + } + +} diff --git a/database/migrations/2020_04_20_212817_add_foreign_keys_to_team_invites_table.php b/database/migrations/2020_04_20_212817_add_foreign_keys_to_team_invites_table.php new file mode 100644 index 00000000..174af6ec --- /dev/null +++ b/database/migrations/2020_04_20_212817_add_foreign_keys_to_team_invites_table.php @@ -0,0 +1,35 @@ +foreign('team_id')->references('id')->on('teams')->onUpdate('RESTRICT')->onDelete('CASCADE'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('team_invites', function(Blueprint $table) + { + $table->dropForeign('team_invites_team_id_foreign'); + }); + } + +} diff --git a/database/migrations/2020_04_20_212817_add_foreign_keys_to_team_user_table.php b/database/migrations/2020_04_20_212817_add_foreign_keys_to_team_user_table.php new file mode 100644 index 00000000..91a364ba --- /dev/null +++ b/database/migrations/2020_04_20_212817_add_foreign_keys_to_team_user_table.php @@ -0,0 +1,37 @@ +foreign('team_id')->references('id')->on('teams')->onUpdate('RESTRICT')->onDelete('CASCADE'); + $table->foreign('user_id')->references('id')->on('users')->onUpdate('CASCADE')->onDelete('CASCADE'); + }); + } + + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('team_user', function(Blueprint $table) + { + $table->dropForeign('team_user_team_id_foreign'); + $table->dropForeign('team_user_user_id_foreign'); + }); + } + +} diff --git a/database/migrations/2021_06_05_192053_teamwork_setup_tables.php b/database/migrations/2021_06_05_192053_teamwork_setup_tables.php new file mode 100644 index 00000000..144f40c9 --- /dev/null +++ b/database/migrations/2021_06_05_192053_teamwork_setup_tables.php @@ -0,0 +1,83 @@ +integer('current_team_id')->unsigned()->nullable(); + }); + + Schema::create(\Config::get('teamwork.teams_table'), function (Blueprint $table) { + $table->increments('id')->unsigned(); + $table->integer('owner_id')->unsigned()->nullable(); + $table->string('name'); + $table->timestamps(); + }); + + Schema::create(\Config::get('teamwork.team_user_table'), function (Blueprint $table) { + $table->bigInteger('user_id')->unsigned(); + $table->integer('team_id')->unsigned(); + $table->timestamps(); + + $table->foreign('user_id') + ->references(\Config::get('teamwork.user_foreign_key')) + ->on(\Config::get('teamwork.users_table')) + ->onUpdate('cascade') + ->onDelete('cascade'); + + $table->foreign('team_id') + ->references('id') + ->on(\Config::get('teamwork.teams_table')) + ->onDelete('cascade'); + }); + + Schema::create(\Config::get('teamwork.team_invites_table'), function (Blueprint $table) { + $table->increments('id'); + $table->bigInteger('user_id')->unsigned(); + $table->integer('team_id')->unsigned(); + $table->enum('type', ['invite', 'request']); + $table->string('email'); + $table->string('accept_token'); + $table->string('deny_token'); + $table->timestamps(); + $table->foreign('team_id') + ->references('id') + ->on(\Config::get('teamwork.teams_table')) + ->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table(\Config::get('teamwork.users_table'), function (Blueprint $table) { + $table->dropColumn('current_team_id'); + }); + + Schema::table(\Config::get('teamwork.team_user_table'), function (Blueprint $table) { + if (DB::getDriverName() !== 'sqlite') { + $table->dropForeign(\Config::get('teamwork.team_user_table').'_user_id_foreign'); + } + if (DB::getDriverName() !== 'sqlite') { + $table->dropForeign(\Config::get('teamwork.team_user_table').'_team_id_foreign'); + } + }); + + Schema::drop(\Config::get('teamwork.team_user_table')); + Schema::drop(\Config::get('teamwork.team_invites_table')); + Schema::drop(\Config::get('teamwork.teams_table')); + } +} diff --git a/package.json b/package.json index af775772..65f47053 100644 --- a/package.json +++ b/package.json @@ -143,6 +143,7 @@ "screenfull": "^5.1.0", "select2": "^4.0.13", "selectize": "^0.12.6", + "sidr": "^2.2.1", "simple-peer": "^9.9.3", "sizzle": "^2.3.6", "slick-carousel": "^1.8.1", diff --git a/resources/lang/fr/shop.php b/resources/lang/fr/shop.php index 2ecb492f..9dedf4e6 100644 --- a/resources/lang/fr/shop.php +++ b/resources/lang/fr/shop.php @@ -195,6 +195,19 @@ return [ 'successdel' => 'La famille de tag a été correctement effacée', 'confirmdelete' => 'Confirmez-vous la suppression de la famille de tag ?', ], + 'tag_groups' => [ + 'title' => 'Groupes de tags', + 'name' => 'Groupe de tag', + 'description' => 'Gérer les groupes de tags', + 'add' => 'Ajouter un groupe de tag', + 'edit' => 'Editer un groupe de tag', + 'del' => 'Effacer un groupe de tag', + 'list' => 'Liste des groupes de tags', + 'successadd' => 'Le groupe de tag été correctement ajoutée', + 'successmod' => 'Le groupe de tag a été correctement modifiée', + 'successdel' => 'Le groupe de tag a été correctement effacée', + 'confirmdelete' => 'Confirmez-vous la suppression du groupe de tag ?', + ], 'tariffs' => [ 'title' => 'Tarifs', 'name' => 'Tarif', diff --git a/resources/views/Admin/Shop/TagGroups/create.blade.php b/resources/views/Admin/Shop/TagGroups/create.blade.php index 57d07462..d88338b5 100644 --- a/resources/views/Admin/Shop/TagGroups/create.blade.php +++ b/resources/views/Admin/Shop/TagGroups/create.blade.php @@ -1,7 +1,7 @@ @extends('layout.index', [ - 'title' => __('tag_groups.title'), - 'subtitle' => __('tag_groups.create.title'), - 'breadcrumb' => [__('tag_groups.title'), __('tag_groups.create.title')] + 'title' => __('shop.tag_groups.title'), + 'subtitle' => __('shop.tag_groups.add'), + 'breadcrumb' => [__('shop.tag_groups.title'), __('shop.tag_groups.add')] ]) @include('boilerplate::load.fileinput') diff --git a/resources/views/Admin/Shop/TagGroups/edit.blade.php b/resources/views/Admin/Shop/TagGroups/edit.blade.php index f8f476f4..75db9c52 100644 --- a/resources/views/Admin/Shop/TagGroups/edit.blade.php +++ b/resources/views/Admin/Shop/TagGroups/edit.blade.php @@ -1,7 +1,7 @@ @extends('layout.index', [ 'title' => __('tag_groups.title'), - 'subtitle' => __('tag_groups.edit.title'), - 'breadcrumb' => [__('tag_groups.title'), __('tag_groups.edit.title')] + 'subtitle' => __('tag_groups.edit'), + 'breadcrumb' => [__('tag_groups.title'), __('tag_groups.edit')] ]) @section('content') diff --git a/resources/views/Admin/Shop/TagGroups/form.blade.php b/resources/views/Admin/Shop/TagGroups/form.blade.php index 90dd0c0e..8f79c5e2 100644 --- a/resources/views/Admin/Shop/TagGroups/form.blade.php +++ b/resources/views/Admin/Shop/TagGroups/form.blade.php @@ -1,15 +1,25 @@
- {{ Form::label('name', 'Famille d\'articles') }} - @include('components.form.select', ['name' => 'article_family_id', 'value' => $article_family_id ?? null, 'list' => $article_families ?? [], 'required' => true, 'with_empty' => '']) + {{ Form::label('name', 'Code') }} + @include('components.form.input', ['name' => 'code', 'value' => $code ?? null])
{{ Form::label('name', 'Nom') }} - @include('components.form.input', ['name' => 'name', 'value' => isset($name) ? $name : null, 'required' => true]) + @include('components.form.input', ['name' => 'name', 'value' => $name ?? null, 'required' => true])
@include('components.save') + +@include('load.form.save') + +@push('js') + +@endpush \ No newline at end of file diff --git a/resources/views/Admin/Shop/TagGroups/list.blade.php b/resources/views/Admin/Shop/TagGroups/list.blade.php index d666ba03..ccfca74c 100644 --- a/resources/views/Admin/Shop/TagGroups/list.blade.php +++ b/resources/views/Admin/Shop/TagGroups/list.blade.php @@ -1,7 +1,7 @@ @extends('layout.index', [ - 'title' => __('shop.tag_families.title'), - 'subtitle' => __('shop.tag_families.list'), - 'breadcrumb' => [__('shop.tag_families.title')] + 'title' => __('shop.tag_groups.title'), + 'subtitle' => __('shop.tag_groups.list'), + 'breadcrumb' => [__('shop.tag_groups.title')] ]) @section('content')