add pause
Tests & Lint & Deploy to Railway / build (2.6.6, 20.x, 8.3) (push) Failing after 3m24s
Details
Tests & Lint & Deploy to Railway / build (2.6.6, 20.x, 8.3) (push) Failing after 3m24s
Details
This commit is contained in:
parent
efc0f88061
commit
f1b185ba59
|
@ -8,60 +8,39 @@ use App\Models\Label;
|
|||
|
||||
class LabelController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$labels = Label::all();
|
||||
return view('admin.labels.index', compact('labels'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(StorelabelRequest $request)
|
||||
{
|
||||
//
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*/
|
||||
public function show(Label $label)
|
||||
{
|
||||
//
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*/
|
||||
public function edit(Label $label)
|
||||
{
|
||||
//
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(UpdatelabelRequest $request, Label $label)
|
||||
{
|
||||
//
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy(Label $label)
|
||||
{
|
||||
//
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,16 +11,13 @@ class TaskController extends Controller
|
|||
{
|
||||
public function index()
|
||||
{
|
||||
$label = Label::all();
|
||||
return view('admin.tasks.index', compact('label'));
|
||||
$tasks = Task::paginate(7);
|
||||
return view('admin.tasks.index', compact('tasks'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
return view('admin.tasks.create');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -4,8 +4,56 @@ namespace App\Models;
|
|||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
|
||||
class Task extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $fillable = [
|
||||
'id',
|
||||
'name',
|
||||
'description',
|
||||
'parent_id',
|
||||
'status_id',
|
||||
'department_id',
|
||||
'created_by_id',
|
||||
];
|
||||
|
||||
public function creator(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(User::class, 'created_by_id');
|
||||
}
|
||||
|
||||
public function users(): BelongsToMany
|
||||
{
|
||||
return $this->belongsToMany(User::class);
|
||||
}
|
||||
|
||||
public function status(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(TaskStatus::class);
|
||||
}
|
||||
|
||||
public function labels(): BelongsToMany
|
||||
{
|
||||
return $this->belongsToMany(Label::class);
|
||||
}
|
||||
|
||||
public function department(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(Department::class);
|
||||
}
|
||||
|
||||
public function notes(): HasMany
|
||||
{
|
||||
return $this->hasMany('App\Models\Note', 'task_id');
|
||||
}
|
||||
|
||||
public function subTasks(): HasMany
|
||||
{
|
||||
return $this->hasMany('App\Models\Task', 'parent_id');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ namespace App\Models;
|
|||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class TaskStatuses extends Model
|
||||
class TaskStatus extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
}
|
|
@ -2,23 +2,18 @@
|
|||
|
||||
namespace App\Providers;
|
||||
|
||||
use Illuminate\Pagination\Paginator;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
|
||||
class AppServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
* Register any application services.
|
||||
*/
|
||||
public function register(): void
|
||||
{
|
||||
//
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Bootstrap any application services.
|
||||
*/
|
||||
public function boot(): void
|
||||
{
|
||||
//
|
||||
Paginator::useBootstrapFive();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,7 +13,6 @@ return new class extends Migration
|
|||
$table->string('name', 255);
|
||||
$table->bigInteger('parent_id');
|
||||
$table->text('description')->nullable();
|
||||
$table->string('file', 255)->nullable();
|
||||
$table->foreignId('status_id')->constrained('task_statuses');
|
||||
$table->foreignId('department_id')->constrained('departments');
|
||||
$table->foreignId('created_by_id')->constrained('users');
|
||||
|
|
|
@ -8,7 +8,7 @@ return new class extends Migration
|
|||
{
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('user_task', function (Blueprint $table) {
|
||||
Schema::create('task_user', function (Blueprint $table) {
|
||||
$table->foreignId('task_id')->constrained('tasks');
|
||||
$table->foreignId('user_id')->constrained('users');
|
||||
$table->timestamps();
|
||||
|
@ -17,6 +17,6 @@ return new class extends Migration
|
|||
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('label_task');
|
||||
Schema::dropIfExists('task_user');
|
||||
}
|
||||
};
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('files', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('url', 255);
|
||||
$table->foreignId('task_id')->constrained('tasks');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('files');
|
||||
}
|
||||
};
|
|
@ -9,17 +9,24 @@ use Illuminate\Support\Facades\Hash;
|
|||
|
||||
class DatabaseSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Seed the application's database.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
// User::factory(10)->create();
|
||||
User::factory(20)->create();
|
||||
|
||||
User::factory()->create([
|
||||
'name' => 'Test User',
|
||||
'email' => 'test@example.com',
|
||||
'password' => Hash::make('password'),
|
||||
]);
|
||||
|
||||
$this->call([
|
||||
DepartmentSeeder::class,
|
||||
LabelSeeder::class,
|
||||
TaskStatusSeeder::class,
|
||||
TaskSeeder::class,
|
||||
NoteSeeder::class,
|
||||
LabelTaskSeeder::class,
|
||||
TaskUserSeeder::class,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,19 +13,23 @@ class LabelSeeder extends Seeder
|
|||
{
|
||||
DB::table('labels')->insert([
|
||||
[
|
||||
'name' => 'разработка',
|
||||
'name' => 'ошибка',
|
||||
'description' => 'Какая-то ошибка в коде или проблема с функциональностью',
|
||||
'created_at' => Carbon::now(),
|
||||
],
|
||||
[
|
||||
'name' => 'приказ № 1000',
|
||||
'name' => 'документация',
|
||||
'description' => 'Задача которая касается документации',
|
||||
'created_at' => Carbon::now(),
|
||||
],
|
||||
[
|
||||
'name' => 'Срочно',
|
||||
'name' => 'дубликат',
|
||||
'description' => 'Повтор другой задачи',
|
||||
'created_at' => Carbon::now(),
|
||||
],
|
||||
[
|
||||
'name' => 'повышенный приоритет',
|
||||
'name' => 'доработка',
|
||||
'description' => 'Новая фича, которую нужно запилить',
|
||||
'created_at' => Carbon::now(),
|
||||
],
|
||||
]);
|
||||
|
|
|
@ -0,0 +1,156 @@
|
|||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class LabelTaskSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
DB::table('label_task')->insert([
|
||||
[
|
||||
'task_id' => 1,
|
||||
'label_id' => 2,
|
||||
],
|
||||
[
|
||||
'task_id' => 1,
|
||||
'label_id' => 4,
|
||||
],
|
||||
[
|
||||
'task_id' => 2,
|
||||
'label_id' => 1,
|
||||
],
|
||||
[
|
||||
'task_id' => 2,
|
||||
'label_id' => 3,
|
||||
],
|
||||
[
|
||||
'task_id' => 2,
|
||||
'label_id' => 4,
|
||||
],
|
||||
[
|
||||
'task_id' => 3,
|
||||
'label_id' => 1,
|
||||
],
|
||||
[
|
||||
'task_id' => 3,
|
||||
'label_id' => 2,
|
||||
],
|
||||
[
|
||||
'task_id' => 3,
|
||||
'label_id' => 3,
|
||||
],
|
||||
[
|
||||
'task_id' => 4,
|
||||
'label_id' => 2,
|
||||
],
|
||||
[
|
||||
'task_id' => 4,
|
||||
'label_id' => 4,
|
||||
],
|
||||
[
|
||||
'task_id' => 5,
|
||||
'label_id' => 3,
|
||||
],
|
||||
[
|
||||
'task_id' => 6,
|
||||
'label_id' => 1,
|
||||
],
|
||||
[
|
||||
'task_id' => 6,
|
||||
'label_id' => 4,
|
||||
],
|
||||
[
|
||||
'task_id' => 7,
|
||||
'label_id' => 1,
|
||||
],
|
||||
[
|
||||
'task_id' => 8,
|
||||
'label_id' => 1,
|
||||
],
|
||||
[
|
||||
'task_id' => 8,
|
||||
'label_id' => 2,
|
||||
],
|
||||
[
|
||||
'task_id' => 8,
|
||||
'label_id' => 3,
|
||||
],
|
||||
[
|
||||
'task_id' => 8,
|
||||
'label_id' => 4,
|
||||
],
|
||||
[
|
||||
'task_id' => 9,
|
||||
'label_id' => 1,
|
||||
],
|
||||
[
|
||||
'task_id' => 9,
|
||||
'label_id' => 2,
|
||||
],
|
||||
[
|
||||
'task_id' => 9,
|
||||
'label_id' => 4,
|
||||
],
|
||||
[
|
||||
'task_id' => 10,
|
||||
'label_id' => 2,
|
||||
],
|
||||
[
|
||||
'task_id' => 10,
|
||||
'label_id' => 3,
|
||||
],
|
||||
[
|
||||
'task_id' => 10,
|
||||
'label_id' => 4,
|
||||
],
|
||||
[
|
||||
'task_id' => 11,
|
||||
'label_id' => 2,
|
||||
],
|
||||
[
|
||||
'task_id' => 11,
|
||||
'label_id' => 4,
|
||||
],
|
||||
[
|
||||
'task_id' => 12,
|
||||
'label_id' => 1,
|
||||
],
|
||||
[
|
||||
'task_id' => 13,
|
||||
'label_id' => 4,
|
||||
],
|
||||
[
|
||||
'task_id' => 14,
|
||||
'label_id' => 2,
|
||||
],
|
||||
[
|
||||
'task_id' => 15,
|
||||
'label_id' => 1,
|
||||
],
|
||||
[
|
||||
'task_id' => 15,
|
||||
'label_id' => 2,
|
||||
],
|
||||
[
|
||||
'task_id' => 15,
|
||||
'label_id' => 3,
|
||||
],
|
||||
[
|
||||
'task_id' => 16,
|
||||
'label_id' => 1,
|
||||
],
|
||||
[
|
||||
'task_id' => 16,
|
||||
'label_id' => 2,
|
||||
],
|
||||
[
|
||||
'task_id' => 16,
|
||||
'label_id' => 3,
|
||||
],
|
||||
]);
|
||||
}
|
||||
}
|
|
@ -20,15 +20,24 @@ class NoteSeeder extends Seeder
|
|||
'created_at' => Carbon::now(),
|
||||
],
|
||||
[
|
||||
'name' => 'приказ № 1000',
|
||||
'name' => 'Добавлен исполнитель',
|
||||
'description' => 'Юзер 2',
|
||||
'file' => 'file2.pdf',
|
||||
'task_id' => 1,
|
||||
'created_at' => Carbon::now(),
|
||||
],
|
||||
[
|
||||
'name' => 'Срочно',
|
||||
'name' => 'приказ 255',
|
||||
'description' => 'обратить внимание',
|
||||
'file' => 'file3.pdf',
|
||||
'task_id' => 1,
|
||||
'created_at' => Carbon::now(),
|
||||
],
|
||||
[
|
||||
'name' => 'повышенный приоритет',
|
||||
'name' => 'работа на выходных',
|
||||
'description' => 'установка оборудвания',
|
||||
'file' => 'file4.pdf',
|
||||
'task_id' => 1,
|
||||
'created_at' => Carbon::now(),
|
||||
],
|
||||
]);
|
||||
|
|
|
@ -2,16 +2,160 @@
|
|||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class TaskSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
//
|
||||
DB::table('tasks')->insert([
|
||||
[
|
||||
'status_id' => 1,
|
||||
'name' => 'Исправить ошибку в какой-нибудь строке',
|
||||
'description' => 'Я тут ошибку нашёл, надо бы её исправить и так далее и так далее',
|
||||
'created_by_id' => 1,
|
||||
'created_at' => Carbon::now(),
|
||||
'parent_id' => 0,
|
||||
'department_id' => 1,
|
||||
],
|
||||
[
|
||||
'status_id' => 2,
|
||||
'name' => 'Допилить дизайн главной страницы',
|
||||
'description' => 'Вёрстка поехала в далёкие края. Нужно удалить бутстрап!',
|
||||
'created_by_id' => 2,
|
||||
'created_at' => Carbon::now(),
|
||||
'parent_id' => 0,
|
||||
'department_id' => 1,
|
||||
],
|
||||
[
|
||||
'status_id' => 3,
|
||||
'name' => 'Отрефакторить авторизацию',
|
||||
'description' => 'Выпилить всё легаси, которое найдёшь',
|
||||
'created_by_id' => 2,
|
||||
'created_at' => Carbon::now(),
|
||||
'parent_id' => 0,
|
||||
'department_id' => 1,
|
||||
],
|
||||
[
|
||||
'status_id' => 4,
|
||||
'name' => 'Доработать команду подготовки БД',
|
||||
'description' => 'За одно добавить тестовых данных',
|
||||
'created_by_id' => 1,
|
||||
'created_at' => Carbon::now(),
|
||||
'parent_id' => 0,
|
||||
'department_id' => 1,
|
||||
],
|
||||
[
|
||||
'status_id' => 1,
|
||||
'name' => 'Пофиксить вон ту кнопку',
|
||||
'description' => 'Кажется она не того цвета',
|
||||
'created_by_id' => 3,
|
||||
'created_at' => Carbon::now(),
|
||||
'parent_id' => 1,
|
||||
'department_id' => 1,
|
||||
],
|
||||
[
|
||||
'status_id' => 2,
|
||||
'name' => 'Исправить поиск',
|
||||
'description' => 'Не ищет то, что мне хочется',
|
||||
'created_by_id' => 5,
|
||||
'created_at' => Carbon::now(),
|
||||
'parent_id' => 1,
|
||||
'department_id' => 1,
|
||||
],
|
||||
[
|
||||
'status_id' => 3,
|
||||
'name' => 'Добавить интеграцию с облаками',
|
||||
'description' => 'Они такие мягкие и пушистые',
|
||||
'created_by_id' => 7,
|
||||
'created_at' => Carbon::now(),
|
||||
'parent_id' => 1,
|
||||
'department_id' => 1,
|
||||
],
|
||||
[
|
||||
'status_id' => 4,
|
||||
'name' => 'Выпилить лишние зависимости',
|
||||
'description' => '',
|
||||
'created_by_id' => 9,
|
||||
'created_at' => Carbon::now(),
|
||||
'parent_id' => 1,
|
||||
'department_id' => 1,
|
||||
],
|
||||
[
|
||||
'status_id' => 1,
|
||||
'name' => 'Запилить сертификаты',
|
||||
'description' => 'Кому-то же они нужны?',
|
||||
'created_by_id' => 11,
|
||||
'created_at' => Carbon::now(),
|
||||
'parent_id' => 1,
|
||||
'department_id' => 1,
|
||||
],
|
||||
[
|
||||
'status_id' => 2,
|
||||
'name' => 'Выпилить игру престолов',
|
||||
'description' => 'Этот сериал никому не нравится! :)',
|
||||
'created_by_id' => 13,
|
||||
'created_at' => Carbon::now(),
|
||||
'parent_id' => 1,
|
||||
'department_id' => 1,
|
||||
],
|
||||
[
|
||||
'status_id' => 4,
|
||||
'name' => 'Пофиксить спеку во всех репозиториях',
|
||||
'description' => 'Передать Олегу, чтобы больше не ронял прод',
|
||||
'created_by_id' => 2,
|
||||
'created_at' => Carbon::now(),
|
||||
'parent_id' => 1,
|
||||
'department_id' => 1,
|
||||
],
|
||||
[
|
||||
'status_id' => 1,
|
||||
'name' => 'Вернуть крошки',
|
||||
'description' => 'Андрей, это задача для тебя',
|
||||
'created_by_id' => 4,
|
||||
'created_at' => Carbon::now(),
|
||||
'parent_id' => 1,
|
||||
'department_id' => 1,
|
||||
],
|
||||
[
|
||||
'status_id' => 2,
|
||||
'name' => 'Установить Linux',
|
||||
'description' => 'Не забыть потестировать',
|
||||
'created_by_id' => 6,
|
||||
'created_at' => Carbon::now(),
|
||||
'parent_id' => 1,
|
||||
'department_id' => 1,
|
||||
],
|
||||
[
|
||||
'status_id' => 3,
|
||||
'name' => 'Потребовать прибавки к зарплате',
|
||||
'description' => 'Кризис это не время, чтобы молчать!',
|
||||
'created_by_id' => 8,
|
||||
'created_at' => Carbon::now(),
|
||||
'parent_id' => 1,
|
||||
'department_id' => 1,
|
||||
],
|
||||
[
|
||||
'status_id' => 4,
|
||||
'name' => 'Добавить поиск по фото',
|
||||
'description' => 'Только не по моему',
|
||||
'created_by_id' => 10,
|
||||
'created_at' => Carbon::now(),
|
||||
'parent_id' => 1,
|
||||
'department_id' => 1,
|
||||
],
|
||||
[
|
||||
'status_id' => 1,
|
||||
'name' => 'Съесть еще этих прекрасных французских булочек',
|
||||
'description' => '',
|
||||
'created_by_id' => 13,
|
||||
'created_at' => Carbon::now(),
|
||||
'parent_id' => 1,
|
||||
'department_id' => 1,
|
||||
],
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class TaskStatusSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
DB::table('task_statuses')->insert([
|
||||
[
|
||||
'name' => 'Создан',
|
||||
'created_at' => Carbon::now(),
|
||||
],
|
||||
[
|
||||
'name' => 'В работе',
|
||||
'created_at' => Carbon::now(),
|
||||
],
|
||||
[
|
||||
'name' => 'На проверке',
|
||||
'created_at' => Carbon::now(),
|
||||
],
|
||||
[
|
||||
'name' => 'Выполнен',
|
||||
'created_at' => Carbon::now(),
|
||||
],
|
||||
]);
|
||||
}
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class TaskStatusesSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
|
@ -0,0 +1,155 @@
|
|||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class TaskUserSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
DB::table('task_user')->insert([
|
||||
[
|
||||
'task_id' => 1,
|
||||
'user_id' => 2,
|
||||
],
|
||||
[
|
||||
'task_id' => 1,
|
||||
'user_id' => 4,
|
||||
],
|
||||
[
|
||||
'task_id' => 2,
|
||||
'user_id' => 1,
|
||||
],
|
||||
[
|
||||
'task_id' => 2,
|
||||
'user_id' => 3,
|
||||
],
|
||||
[
|
||||
'task_id' => 2,
|
||||
'user_id' => 4,
|
||||
],
|
||||
[
|
||||
'task_id' => 3,
|
||||
'user_id' => 1,
|
||||
],
|
||||
[
|
||||
'task_id' => 3,
|
||||
'user_id' => 2,
|
||||
],
|
||||
[
|
||||
'task_id' => 3,
|
||||
'user_id' => 3,
|
||||
],
|
||||
[
|
||||
'task_id' => 4,
|
||||
'user_id' => 2,
|
||||
],
|
||||
[
|
||||
'task_id' => 4,
|
||||
'user_id' => 4,
|
||||
],
|
||||
[
|
||||
'task_id' => 5,
|
||||
'user_id' => 3,
|
||||
],
|
||||
[
|
||||
'task_id' => 6,
|
||||
'user_id' => 1,
|
||||
],
|
||||
[
|
||||
'task_id' => 6,
|
||||
'user_id' => 4,
|
||||
],
|
||||
[
|
||||
'task_id' => 7,
|
||||
'user_id' => 1,
|
||||
],
|
||||
[
|
||||
'task_id' => 8,
|
||||
'user_id' => 1,
|
||||
],
|
||||
[
|
||||
'task_id' => 8,
|
||||
'user_id' => 2,
|
||||
],
|
||||
[
|
||||
'task_id' => 8,
|
||||
'user_id' => 3,
|
||||
],
|
||||
[
|
||||
'task_id' => 8,
|
||||
'user_id' => 4,
|
||||
],
|
||||
[
|
||||
'task_id' => 9,
|
||||
'user_id' => 1,
|
||||
],
|
||||
[
|
||||
'task_id' => 9,
|
||||
'user_id' => 2,
|
||||
],
|
||||
[
|
||||
'task_id' => 9,
|
||||
'user_id' => 4,
|
||||
],
|
||||
[
|
||||
'task_id' => 10,
|
||||
'user_id' => 2,
|
||||
],
|
||||
[
|
||||
'task_id' => 10,
|
||||
'user_id' => 3,
|
||||
],
|
||||
[
|
||||
'task_id' => 10,
|
||||
'user_id' => 4,
|
||||
],
|
||||
[
|
||||
'task_id' => 11,
|
||||
'user_id' => 2,
|
||||
],
|
||||
[
|
||||
'task_id' => 11,
|
||||
'user_id' => 4,
|
||||
],
|
||||
[
|
||||
'task_id' => 12,
|
||||
'user_id' => 1,
|
||||
],
|
||||
[
|
||||
'task_id' => 13,
|
||||
'user_id' => 4,
|
||||
],
|
||||
[
|
||||
'task_id' => 14,
|
||||
'user_id' => 2,
|
||||
],
|
||||
[
|
||||
'task_id' => 15,
|
||||
'user_id' => 1,
|
||||
],
|
||||
[
|
||||
'task_id' => 15,
|
||||
'user_id' => 2,
|
||||
],
|
||||
[
|
||||
'task_id' => 15,
|
||||
'user_id' => 3,
|
||||
],
|
||||
[
|
||||
'task_id' => 16,
|
||||
'user_id' => 1,
|
||||
],
|
||||
[
|
||||
'task_id' => 16,
|
||||
'user_id' => 2,
|
||||
],
|
||||
[
|
||||
'task_id' => 16,
|
||||
'user_id' => 3,
|
||||
],
|
||||
]);
|
||||
}
|
||||
}
|
|
@ -13,15 +13,16 @@
|
|||
"devDependencies": {
|
||||
"@popperjs/core": "^2.11.6",
|
||||
"@tailwindcss/forms": "^0.5.2",
|
||||
"@vitejs/plugin-vue": "^5.0.4",
|
||||
"alpinejs": "^3.4.2",
|
||||
"autoprefixer": "^10.4.2",
|
||||
"axios": "^1.6.4",
|
||||
"bootstrap": "^5.2.3",
|
||||
"laravel-vite-plugin": "^1.0",
|
||||
"laravel-vite-plugin": "^1.0.2",
|
||||
"postcss": "^8.4.31",
|
||||
"sass": "^1.56.1",
|
||||
"tailwindcss": "^3.1.0",
|
||||
"vite": "^5.0"
|
||||
"vite": "^5.2.11"
|
||||
}
|
||||
},
|
||||
"node_modules/@alloc/quick-lru": {
|
||||
|
@ -36,6 +37,19 @@
|
|||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.24.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz",
|
||||
"integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@colors/colors": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz",
|
||||
|
@ -773,6 +787,101 @@
|
|||
"resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz",
|
||||
"integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw=="
|
||||
},
|
||||
"node_modules/@vitejs/plugin-vue": {
|
||||
"version": "5.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz",
|
||||
"integrity": "sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "^18.0.0 || >=20.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vite": "^5.0.0",
|
||||
"vue": "^3.2.25"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-core": {
|
||||
"version": "3.4.26",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.26.tgz",
|
||||
"integrity": "sha512-N9Vil6Hvw7NaiyFUFBPXrAyETIGlQ8KcFMkyk6hW1Cl6NvoqvP+Y8p1Eqvx+UdqsnrnI9+HMUEJegzia3mhXmQ==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.24.4",
|
||||
"@vue/shared": "3.4.26",
|
||||
"entities": "^4.5.0",
|
||||
"estree-walker": "^2.0.2",
|
||||
"source-map-js": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-core/node_modules/@vue/shared": {
|
||||
"version": "3.4.26",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.26.tgz",
|
||||
"integrity": "sha512-Fg4zwR0GNnjzodMt3KRy2AWGMKQXByl56+4HjN87soxLNU9P5xcJkstAlIeEF3cU6UYOzmJl1tV0dVPGIljCnQ==",
|
||||
"dev": true,
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/@vue/compiler-dom": {
|
||||
"version": "3.4.26",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.26.tgz",
|
||||
"integrity": "sha512-4CWbR5vR9fMg23YqFOhr6t6WB1Fjt62d6xdFPyj8pxrYub7d+OgZaObMsoxaF9yBUHPMiPFK303v61PwAuGvZA==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-core": "3.4.26",
|
||||
"@vue/shared": "3.4.26"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-dom/node_modules/@vue/shared": {
|
||||
"version": "3.4.26",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.26.tgz",
|
||||
"integrity": "sha512-Fg4zwR0GNnjzodMt3KRy2AWGMKQXByl56+4HjN87soxLNU9P5xcJkstAlIeEF3cU6UYOzmJl1tV0dVPGIljCnQ==",
|
||||
"dev": true,
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/@vue/compiler-sfc": {
|
||||
"version": "3.4.26",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.26.tgz",
|
||||
"integrity": "sha512-It1dp+FAOCgluYSVYlDn5DtZBxk1NCiJJfu2mlQqa/b+k8GL6NG/3/zRbJnHdhV2VhxFghaDq5L4K+1dakW6cw==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.24.4",
|
||||
"@vue/compiler-core": "3.4.26",
|
||||
"@vue/compiler-dom": "3.4.26",
|
||||
"@vue/compiler-ssr": "3.4.26",
|
||||
"@vue/shared": "3.4.26",
|
||||
"estree-walker": "^2.0.2",
|
||||
"magic-string": "^0.30.10",
|
||||
"postcss": "^8.4.38",
|
||||
"source-map-js": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-sfc/node_modules/@vue/shared": {
|
||||
"version": "3.4.26",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.26.tgz",
|
||||
"integrity": "sha512-Fg4zwR0GNnjzodMt3KRy2AWGMKQXByl56+4HjN87soxLNU9P5xcJkstAlIeEF3cU6UYOzmJl1tV0dVPGIljCnQ==",
|
||||
"dev": true,
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/@vue/compiler-ssr": {
|
||||
"version": "3.4.26",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.26.tgz",
|
||||
"integrity": "sha512-FNwLfk7LlEPRY/g+nw2VqiDKcnDTVdCfBREekF8X74cPLiWHUX6oldktf/Vx28yh4STNy7t+/yuLoMBBF7YDiQ==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.4.26",
|
||||
"@vue/shared": "3.4.26"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-ssr/node_modules/@vue/shared": {
|
||||
"version": "3.4.26",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.26.tgz",
|
||||
"integrity": "sha512-Fg4zwR0GNnjzodMt3KRy2AWGMKQXByl56+4HjN87soxLNU9P5xcJkstAlIeEF3cU6UYOzmJl1tV0dVPGIljCnQ==",
|
||||
"dev": true,
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/@vue/reactivity": {
|
||||
"version": "3.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.1.5.tgz",
|
||||
|
@ -782,6 +891,74 @@
|
|||
"@vue/shared": "3.1.5"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/runtime-core": {
|
||||
"version": "3.4.26",
|
||||
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.26.tgz",
|
||||
"integrity": "sha512-AFJDLpZvhT4ujUgZSIL9pdNcO23qVFh7zWCsNdGQBw8ecLNxOOnPcK9wTTIYCmBJnuPHpukOwo62a2PPivihqw==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/reactivity": "3.4.26",
|
||||
"@vue/shared": "3.4.26"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/runtime-core/node_modules/@vue/reactivity": {
|
||||
"version": "3.4.26",
|
||||
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.26.tgz",
|
||||
"integrity": "sha512-E/ynEAu/pw0yotJeLdvZEsp5Olmxt+9/WqzvKff0gE67tw73gmbx6tRkiagE/eH0UCubzSlGRebCbidB1CpqZQ==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/shared": "3.4.26"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/runtime-core/node_modules/@vue/shared": {
|
||||
"version": "3.4.26",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.26.tgz",
|
||||
"integrity": "sha512-Fg4zwR0GNnjzodMt3KRy2AWGMKQXByl56+4HjN87soxLNU9P5xcJkstAlIeEF3cU6UYOzmJl1tV0dVPGIljCnQ==",
|
||||
"dev": true,
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/@vue/runtime-dom": {
|
||||
"version": "3.4.26",
|
||||
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.26.tgz",
|
||||
"integrity": "sha512-UftYA2hUXR2UOZD/Fc3IndZuCOOJgFxJsWOxDkhfVcwLbsfh2CdXE2tG4jWxBZuDAs9J9PzRTUFt1PgydEtItw==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/runtime-core": "3.4.26",
|
||||
"@vue/shared": "3.4.26",
|
||||
"csstype": "^3.1.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/runtime-dom/node_modules/@vue/shared": {
|
||||
"version": "3.4.26",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.26.tgz",
|
||||
"integrity": "sha512-Fg4zwR0GNnjzodMt3KRy2AWGMKQXByl56+4HjN87soxLNU9P5xcJkstAlIeEF3cU6UYOzmJl1tV0dVPGIljCnQ==",
|
||||
"dev": true,
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/@vue/server-renderer": {
|
||||
"version": "3.4.26",
|
||||
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.26.tgz",
|
||||
"integrity": "sha512-xoGAqSjYDPGAeRWxeoYwqJFD/gw7mpgzOvSxEmjWaFO2rE6qpbD1PC172YRpvKhrihkyHJkNDADFXTfCyVGhKw==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-ssr": "3.4.26",
|
||||
"@vue/shared": "3.4.26"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vue": "3.4.26"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/server-renderer/node_modules/@vue/shared": {
|
||||
"version": "3.4.26",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.26.tgz",
|
||||
"integrity": "sha512-Fg4zwR0GNnjzodMt3KRy2AWGMKQXByl56+4HjN87soxLNU9P5xcJkstAlIeEF3cU6UYOzmJl1tV0dVPGIljCnQ==",
|
||||
"dev": true,
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/@vue/shared": {
|
||||
"version": "3.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.1.5.tgz",
|
||||
|
@ -1176,6 +1353,13 @@
|
|||
"cssmin": "bin/cssmin"
|
||||
}
|
||||
},
|
||||
"node_modules/csstype": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
|
||||
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
|
||||
"dev": true,
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
|
@ -1220,6 +1404,19 @@
|
|||
"resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz",
|
||||
"integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="
|
||||
},
|
||||
"node_modules/entities": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
|
||||
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=0.12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/fb55/entities?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/esbuild": {
|
||||
"version": "0.20.2",
|
||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz",
|
||||
|
@ -1267,6 +1464,13 @@
|
|||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/estree-walker": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
|
||||
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
|
||||
"dev": true,
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/fast-glob": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
|
||||
|
@ -1666,6 +1870,16 @@
|
|||
"node": "14 || >=16.14"
|
||||
}
|
||||
},
|
||||
"node_modules/magic-string": {
|
||||
"version": "0.30.10",
|
||||
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz",
|
||||
"integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@jridgewell/sourcemap-codec": "^1.4.15"
|
||||
}
|
||||
},
|
||||
"node_modules/makeerror": {
|
||||
"version": "1.0.12",
|
||||
"resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
|
||||
|
@ -5042,9 +5256,9 @@
|
|||
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
|
||||
},
|
||||
"node_modules/vite": {
|
||||
"version": "5.2.10",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-5.2.10.tgz",
|
||||
"integrity": "sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==",
|
||||
"version": "5.2.11",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz",
|
||||
"integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"esbuild": "^0.20.1",
|
||||
|
@ -5106,6 +5320,35 @@
|
|||
"picomatch": "^2.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/vue": {
|
||||
"version": "3.4.26",
|
||||
"resolved": "https://registry.npmjs.org/vue/-/vue-3.4.26.tgz",
|
||||
"integrity": "sha512-bUIq/p+VB+0xrJubaemrfhk1/FiW9iX+pDV+62I/XJ6EkspAO9/DXEjbDFoe8pIfOZBqfk45i9BMc41ptP/uRg==",
|
||||
"dev": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.4.26",
|
||||
"@vue/compiler-sfc": "3.4.26",
|
||||
"@vue/runtime-dom": "3.4.26",
|
||||
"@vue/server-renderer": "3.4.26",
|
||||
"@vue/shared": "3.4.26"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"typescript": "*"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"typescript": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/vue/node_modules/@vue/shared": {
|
||||
"version": "3.4.26",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.26.tgz",
|
||||
"integrity": "sha512-Fg4zwR0GNnjzodMt3KRy2AWGMKQXByl56+4HjN87soxLNU9P5xcJkstAlIeEF3cU6UYOzmJl1tV0dVPGIljCnQ==",
|
||||
"dev": true,
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/walker": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
|
||||
|
|
|
@ -7,16 +7,15 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"@popperjs/core": "^2.11.6",
|
||||
"@tailwindcss/forms": "^0.5.2",
|
||||
"@vitejs/plugin-vue": "^5.0.4",
|
||||
"alpinejs": "^3.4.2",
|
||||
"autoprefixer": "^10.4.2",
|
||||
"axios": "^1.6.4",
|
||||
"bootstrap": "^5.2.3",
|
||||
"laravel-vite-plugin": "^1.0",
|
||||
"laravel-vite-plugin": "^1.0.2",
|
||||
"postcss": "^8.4.31",
|
||||
"sass": "^1.56.1",
|
||||
"tailwindcss": "^3.1.0",
|
||||
"vite": "^5.0"
|
||||
"vite": "^5.2.11"
|
||||
},
|
||||
"dependencies": {
|
||||
"bootstrap-icons": "^1.11.3",
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
/*@tailwind base;*/
|
||||
/*@tailwind components;*/
|
||||
/*@tailwind utilities;*/
|
||||
|
|
|
@ -6,8 +6,3 @@
|
|||
|
||||
// Bootstrap
|
||||
@import 'bootstrap/scss/bootstrap';
|
||||
|
||||
/* Fonts */ @import url('https://fonts.bunny.net/css?family=Nunito');
|
||||
/* Variables */ @import 'variables';
|
||||
/* Bootstrap */ @import 'bootstrap/scss/bootstrap';
|
||||
@import 'bootstrap-icons/font/bootstrap-icons.css';
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
@extends('layouts.layout')
|
||||
@section('content')
|
||||
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">#</th>
|
||||
<th scope="col">отдел</th>
|
||||
<th scope="col">Задача</th>
|
||||
<th scope="col">Статус</th>
|
||||
<th scope="col">Назначил</th>
|
||||
<th scope="col">Исполнители</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">1</th>
|
||||
<td>Mark</td>
|
||||
<td>Otto</td>
|
||||
<td>@mdo</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
@endsection
|
|
@ -5,7 +5,7 @@
|
|||
<thead>
|
||||
<tr>
|
||||
<th scope="col">#</th>
|
||||
<th scope="col">отдел</th>
|
||||
<th scope="col">Отдел</th>
|
||||
<th scope="col">Задача</th>
|
||||
<th scope="col">Статус</th>
|
||||
<th scope="col">Назначил</th>
|
||||
|
@ -13,13 +13,27 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">1</th>
|
||||
<td>Mark</td>
|
||||
<td>Otto</td>
|
||||
<td>@mdo</td>
|
||||
</tr>
|
||||
@foreach($tasks as $task)
|
||||
<tr>
|
||||
<th scope="row">{{ $task->id }}</th>
|
||||
<td>{{ $task->department->name }}</td>
|
||||
<td>{{ $task->name }}
|
||||
<br>
|
||||
@foreach($task->labels as $label)
|
||||
<span class="badge rounded-pill text-bg-warning">{{ $label->name }}</span>
|
||||
@endforeach
|
||||
</td>
|
||||
<td>{{ $task->status->name }}</td>
|
||||
<td>{{ $task->creator->name }}</td>
|
||||
<td>
|
||||
@foreach($task->users as $user)
|
||||
{{ $user->name }}<br>
|
||||
@endforeach
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</table>
|
||||
{{ $tasks->links() }}
|
||||
@endsection
|
||||
|
|
|
@ -6,7 +6,6 @@ export default defineConfig({
|
|||
laravel({
|
||||
input: [
|
||||
'resources/sass/app.scss',
|
||||
'resources/css/app.css',
|
||||
'resources/js/app.js',
|
||||
],
|
||||
refresh: true,
|
||||
|
|
Loading…
Reference in New Issue