Commit 82a9544dc9e201666cc245fce63bb786c74eddd7
1 parent
bb2fb443df
Exists in
master
and in
1 other branch
Связи моделей, группы и сообщения системы
Showing 23 changed files with 672 additions and 19 deletions Inline Diff
- app/Http/Controllers/Admin/GroupsController.php
- app/Http/Controllers/Admin/MsgAnswersController.php
- app/Models/Ad_employer.php
- app/Models/Employer.php
- app/Models/Group_user.php
- app/Models/Job_title.php
- app/Models/Message.php
- app/Models/ad_response.php
- composer.json
- database/migrations/2023_05_16_092746_alter_ad_jobs_table.php
- database/migrations/2023_09_01_135734_create_dop_info_table.php
- database/migrations/2023_09_06_090200_alter_dop_info_table.php
- database/migrations/2023_09_06_090312_alter_ad_jobs_table.php
- database/migrations/2023_09_06_100450_alter_ad_employers_table.php
- resources/views/admin/ad_employers/index.blade.php
- resources/views/admin/groups/add.blade.php
- resources/views/admin/groups/edit.blade.php
- resources/views/admin/groups/form.blade.php
- resources/views/admin/groups/index.blade.php
- resources/views/admin/index.blade.php
- resources/views/admin/messages.blade.php
- resources/views/layout/admin.blade.php
- routes/web.php
app/Http/Controllers/Admin/GroupsController.php
File was created | 1 | <?php | |
2 | |||
3 | namespace App\Http\Controllers\Admin; | ||
4 | |||
5 | use App\Http\Controllers\Controller; | ||
6 | use App\Models\Group_user; | ||
7 | use Illuminate\Http\Request; | ||
8 | use Illuminate\Support\Facades\Auth; | ||
9 | use Illuminate\Support\Facades\Validator; | ||
10 | |||
11 | class GroupsController extends Controller | ||
12 | { | ||
13 | // индексная страница | ||
14 | public function index() { | ||
15 | $groups = Group_user::query()->paginate(15); | ||
16 | return view('admin.groups.index', compact('groups')); | ||
17 | } | ||
18 | |||
19 | // форма добавления группы | ||
20 | public function add() { | ||
21 | $editor = Auth::user()->id; | ||
22 | return view('admin.groups.add', compact('editor')); | ||
23 | } | ||
24 | |||
25 | // форма сохранения добавленной группы | ||
26 | public function store(Request $request) { | ||
27 | $rules = [ | ||
28 | 'name_group' => 'required|min:3', | ||
29 | ]; | ||
30 | $messages = [ | ||
31 | 'required' => 'Укажите обязательное поле', | ||
32 | ]; | ||
33 | $validator = Validator::make($request->all(), $rules, $messages); | ||
34 | |||
35 | if ($validator->fails()) { | ||
36 | return redirect()->route('admin.add-group') | ||
37 | ->withErrors($validator); | ||
38 | } else { | ||
39 | Group_user::create($request->all()); | ||
40 | return redirect()->route('admin.groups') | ||
41 | ->with('success', 'Данные были успешно сохранены'); | ||
42 | } | ||
43 | return redirect()->route('admin.groups'); | ||
44 | } | ||
45 | |||
46 | // форма редактирования группы | ||
47 | public function edit(Group_user $group, Request $request) { | ||
48 | $editor = Auth::user()->id; | ||
49 | return view('admin.groups.edit', compact('editor', 'group')); | ||
50 | } | ||
51 | |||
52 | // форма сохранения редактированной группы | ||
53 | public function update(Group_user $group, Request $request) { | ||
54 | $rules = [ | ||
55 | 'name_group' => 'required|min:3', | ||
56 | ]; | ||
57 | $messages = [ | ||
58 | 'required' => 'Укажите обязательное поле', | ||
59 | ]; | ||
60 | $validator = Validator::make($request->all(), $rules, $messages); | ||
61 | |||
62 | if ($validator->fails()) { | ||
63 | return redirect()->route('admin.edit-group', ['group' => $group->id]) | ||
64 | ->withErrors($validator); | ||
65 | } else { | ||
66 | $group->update($request->all()); | ||
67 | return redirect()->route('admin.groups') | ||
68 | ->with('success', 'Данные были успешно сохранены'); | ||
69 | } | ||
70 | return redirect()->route('admin.groups'); | ||
71 | } | ||
72 | } | ||
73 |
app/Http/Controllers/Admin/MsgAnswersController.php
File was created | 1 | <?php | |
2 | |||
3 | namespace App\Http\Controllers\Admin; | ||
4 | |||
5 | use App\Http\Controllers\Controller; | ||
6 | use App\Models\Message; | ||
7 | use Illuminate\Http\Request; | ||
8 | |||
9 | class MsgAnswersController extends Controller | ||
10 | { | ||
11 | public function messages() { | ||
12 | $Msgs = Message::query()->orderByDesc('created_at')->paginate(25); | ||
13 | |||
14 | return view('admin.messages', compact('Msgs')); | ||
15 | } | ||
16 | } | ||
17 |
app/Models/Ad_employer.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace App\Models; | 3 | namespace App\Models; |
4 | 4 | ||
5 | use Illuminate\Database\Eloquent\Factories\HasFactory; | 5 | use Illuminate\Database\Eloquent\Factories\HasFactory; |
6 | use Illuminate\Database\Eloquent\Model; | 6 | use Illuminate\Database\Eloquent\Model; |
7 | 7 | ||
8 | class Ad_employer extends Model | 8 | class Ad_employer extends Model |
9 | { | 9 | { |
10 | use HasFactory; | 10 | use HasFactory; |
11 | 11 | ||
12 | /* | 12 | /* |
13 | * Связь таблицы employers с таблицей ad_employers | 13 | * Связь таблицы employers с таблицей ad_employers |
14 | многие-к-одному | ||
14 | */ | 15 | */ |
15 | public function employer() { | 16 | public function employer() { |
16 | return $this->belongsTo(Employer::class, 'employer_id'); | 17 | return $this->belongsTo(Employer::class, 'employer_id'); |
17 | } | 18 | } |
19 | |||
20 | /* | ||
21 | * Связь модели Вакансии (Ad_employer) с моделью Должности (Job_title) | ||
22 | многие-ко-многим | ||
23 | */ | ||
24 | public function jobs() { | ||
25 | return $this->belongsToMany(Job_title::class, 'ad_jobs'); | ||
26 | } | ||
27 | |||
28 | /* | ||
29 | * Связь модели Вакансия (Ad_employers) с моделью Отклик на Вакансию (Ad_response) | ||
30 | один-ко-многим | ||
31 | */ | ||
32 | public function response() { | ||
33 | return $this->hasMany(ad_response::class); | ||
34 | } | ||
18 | } | 35 | } |
19 | 36 |
app/Models/Employer.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace App\Models; | 3 | namespace App\Models; |
4 | 4 | ||
5 | use Illuminate\Database\Eloquent\Factories\HasFactory; | 5 | use Illuminate\Database\Eloquent\Factories\HasFactory; |
6 | use Illuminate\Database\Eloquent\Model; | 6 | use Illuminate\Database\Eloquent\Model; |
7 | 7 | ||
8 | class Employer extends Model | 8 | class Employer extends Model |
9 | { | 9 | { |
10 | use HasFactory; | 10 | use HasFactory; |
11 | 11 | ||
12 | protected $fillable = [ | 12 | protected $fillable = [ |
13 | 'name_company', | 13 | 'name_company', |
14 | 'email', | 14 | 'email', |
15 | 'telephone', | 15 | 'telephone', |
16 | 'logo', | 16 | 'logo', |
17 | 'rate', | 17 | 'rate', |
18 | 'user_id', | 18 | 'user_id', |
19 | 'sort', | 19 | 'sort', |
20 | 'text', | 20 | 'text', |
21 | 'address', | 21 | 'address', |
22 | 'map', | 22 | 'map', |
23 | 'site', | 23 | 'site', |
24 | ]; | 24 | ]; |
25 | 25 | ||
26 | /* | 26 | /* |
27 | * Связь таблицы users с таблицей employers | 27 | * Связь таблицы users с таблицей employers |
28 | */ | 28 | */ |
29 | public function users() { | 29 | public function users() { |
30 | return $this->belongsTo(User::class, 'user_id'); | 30 | return $this->belongsTo(User::class, 'user_id'); |
31 | } | 31 | } |
32 | 32 | ||
33 | /* | ||
34 | * Связь Работодателя с вакансиями | ||
35 | */ | ||
36 | public function ads() { | ||
37 | return $this->hasMany(Ad_employer::class); | ||
38 | } | ||
39 | |||
40 | |||
33 | } | 41 | } |
34 | 42 |
app/Models/Group_user.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace App\Models; | 3 | namespace App\Models; |
4 | 4 | ||
5 | use Illuminate\Database\Eloquent\Factories\HasFactory; | 5 | use Illuminate\Database\Eloquent\Factories\HasFactory; |
6 | use Illuminate\Database\Eloquent\Model; | 6 | use Illuminate\Database\Eloquent\Model; |
7 | 7 | ||
8 | class Group_user extends Model | 8 | class Group_user extends Model |
9 | { | 9 | { |
10 | use HasFactory; | 10 | use HasFactory; |
11 | |||
12 | protected $fillable = [ | ||
13 | 'name_group', | ||
14 | 'user_id', | ||
15 | ]; | ||
16 | |||
17 | /* | ||
18 | * Связь Модели Группы (Group_user) с Модели Юзеры (User) | ||
19 | многие-к-одному | ||
20 | */ | ||
21 | public function user() { | ||
22 | return $this->belongsTo(User::class, 'user_id'); | ||
23 | } | ||
24 | |||
25 | /* | ||
26 | * Связь модели Группы (Group_user) с Моделью Юзеры (User) - участники группы | ||
27 | многие-ко-многим | ||
28 | */ | ||
29 | public function ingroup() { | ||
30 | return $this->belongsToMany(User::class, 'group_works'); | ||
31 | } | ||
32 | |||
11 | } | 33 | } |
12 | 34 |
app/Models/Job_title.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace App\Models; | 3 | namespace App\Models; |
4 | 4 | ||
5 | use Illuminate\Database\Eloquent\Factories\HasFactory; | 5 | use Illuminate\Database\Eloquent\Factories\HasFactory; |
6 | use Illuminate\Database\Eloquent\Model; | 6 | use Illuminate\Database\Eloquent\Model; |
7 | 7 | ||
8 | class Job_title extends Model | 8 | class Job_title extends Model |
9 | { | 9 | { |
10 | use HasFactory; | 10 | use HasFactory; |
11 | |||
12 | /* | ||
13 | * Связь модели Вакансии (Ad_employer) с моделью Должности (Job_title) | ||
14 | */ | ||
15 | public function Ads() { | ||
16 | return $this->belongsToMany(Ad_employer::class, 'ad_jobs'); | ||
17 | } | ||
11 | } | 18 | } |
12 | 19 |
app/Models/Message.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace App\Models; | 3 | namespace App\Models; |
4 | 4 | ||
5 | use Illuminate\Database\Eloquent\Factories\HasFactory; | 5 | use Illuminate\Database\Eloquent\Factories\HasFactory; |
6 | use Illuminate\Database\Eloquent\Model; | 6 | use Illuminate\Database\Eloquent\Model; |
7 | 7 | ||
8 | class Message extends Model | 8 | class Message extends Model |
9 | { | 9 | { |
10 | use HasFactory; | 10 | use HasFactory; |
11 | |||
12 | /* | ||
13 | * Связь таблицы Message с таблицей User (Отправитель) | ||
14 | */ | ||
15 | public function user_from() { | ||
16 | return $this->belongsTo(User::class, 'user_id'); | ||
17 | } | ||
18 | |||
19 | /* | ||
20 | * Связь таблицы Message с таблицей User (Получатель) | ||
21 | */ | ||
22 | public function user_to() { | ||
23 | return $this->belongsTo(User::class, 'to_user_id'); | ||
24 | } | ||
25 | |||
26 | /* | ||
27 | * Связь модели Сообщения (Message) с моделью Отклик на Вакансию (Ad_response) | ||
28 | */ | ||
29 | public function response() { | ||
30 | return $this->hasMany(ad_response::class); | ||
31 | } | ||
11 | } | 32 | } |
12 | 33 |
app/Models/ad_response.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace App\Models; | 3 | namespace App\Models; |
4 | 4 | ||
5 | use Illuminate\Database\Eloquent\Factories\HasFactory; | 5 | use Illuminate\Database\Eloquent\Factories\HasFactory; |
6 | use Illuminate\Database\Eloquent\Model; | 6 | use Illuminate\Database\Eloquent\Model; |
7 | 7 | ||
8 | class ad_response extends Model | 8 | class ad_response extends Model |
9 | { | 9 | { |
10 | use HasFactory; | 10 | use HasFactory; |
11 | |||
12 | /* | ||
13 | * Связь таблицы Отклик на вакансию (ad_response) с таблицей Вакансия (ad_employer) | ||
14 | */ | ||
15 | public function ad_employer() { | ||
16 | return $this->belongsTo(Ad_employer::class, 'ad_employer_id'); | ||
17 | } | ||
18 | |||
19 | /* | ||
20 | * Связь таблицы Отклик на вакансию (ad_response) с таблицей Должность (job_title) | ||
21 | */ | ||
22 | public function job_title() { | ||
23 | return $this->belongsTo(Job_title::class, 'job_title_id'); | ||
24 | } | ||
25 | |||
26 | /* | ||
27 | * Связь таблицы Отклик на вакансию (ad_response) с таблицей Сообщение (messages) | ||
28 | */ | ||
29 | public function message() { | ||
30 | return $this->belongsTo(Message::class, 'message_id'); | ||
31 | } | ||
32 | |||
11 | } | 33 | } |
12 | 34 |
composer.json
1 | { | 1 | { |
2 | "name": "laravel/laravel", | 2 | "name": "laravel/laravel", |
3 | "type": "project", | 3 | "type": "project", |
4 | "description": "The Laravel Framework.", | 4 | "description": "The Laravel Framework.", |
5 | "keywords": ["framework", "laravel"], | 5 | "keywords": ["framework", "laravel"], |
6 | "license": "MIT", | 6 | "license": "MIT", |
7 | "require": { | 7 | "require": { |
8 | "php": "^8.0.2", | 8 | "php": "^8.0.2", |
9 | "filament/forms": "^2.17", | 9 | "filament/forms": "^2.17", |
10 | "filament/notifications": "^2.17", | 10 | "filament/notifications": "^2.17", |
11 | "filament/tables": "^2.17", | 11 | "filament/tables": "^2.17", |
12 | "guzzlehttp/guzzle": "^7.2", | 12 | "guzzlehttp/guzzle": "^7.2", |
13 | "laravel-lang/lang": "^12.17", | 13 | "laravel-lang/lang": "^12.17", |
14 | "laravel/framework": "^9.19", | 14 | "laravel/framework": "^9.19", |
15 | "laravel/sanctum": "^3.0", | 15 | "laravel/sanctum": "^3.0", |
16 | "laravel/tinker": "^2.7", | 16 | "laravel/tinker": "^2.7", |
17 | "laravel/ui": "^4.2" | 17 | "laravel/ui": "^4.2", |
18 | "ext-http": "*" | ||
18 | }, | 19 | }, |
19 | "require-dev": { | 20 | "require-dev": { |
20 | "fakerphp/faker": "^1.9.1", | 21 | "fakerphp/faker": "^1.9.1", |
21 | "laravel/pint": "^1.0", | 22 | "laravel/pint": "^1.0", |
22 | "laravel/sail": "^1.0.1", | 23 | "laravel/sail": "^1.0.1", |
23 | "mockery/mockery": "^1.4.4", | 24 | "mockery/mockery": "^1.4.4", |
24 | "nunomaduro/collision": "^6.1", | 25 | "nunomaduro/collision": "^6.1", |
25 | "phpunit/phpunit": "^9.5.10", | 26 | "phpunit/phpunit": "^9.5.10", |
26 | "spatie/laravel-ignition": "^1.0" | 27 | "spatie/laravel-ignition": "^1.0" |
27 | }, | 28 | }, |
28 | "autoload": { | 29 | "autoload": { |
29 | "psr-4": { | 30 | "psr-4": { |
30 | "App\\": "app/", | 31 | "App\\": "app/", |
31 | "Database\\Factories\\": "database/factories/", | 32 | "Database\\Factories\\": "database/factories/", |
32 | "Database\\Seeders\\": "database/seeders/" | 33 | "Database\\Seeders\\": "database/seeders/" |
33 | } | 34 | } |
34 | }, | 35 | }, |
35 | "autoload-dev": { | 36 | "autoload-dev": { |
36 | "psr-4": { | 37 | "psr-4": { |
37 | "Tests\\": "tests/" | 38 | "Tests\\": "tests/" |
38 | } | 39 | } |
39 | }, | 40 | }, |
40 | "scripts": { | 41 | "scripts": { |
41 | "post-autoload-dump": [ | 42 | "post-autoload-dump": [ |
42 | "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", | 43 | "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", |
43 | "@php artisan package:discover --ansi" | 44 | "@php artisan package:discover --ansi" |
44 | ], | 45 | ], |
45 | "post-update-cmd": [ | 46 | "post-update-cmd": [ |
46 | "@php artisan vendor:publish --tag=laravel-assets --ansi --force" | 47 | "@php artisan vendor:publish --tag=laravel-assets --ansi --force" |
47 | ], | 48 | ], |
48 | "post-root-package-install": [ | 49 | "post-root-package-install": [ |
49 | "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" | 50 | "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" |
50 | ], | 51 | ], |
51 | "post-create-project-cmd": [ | 52 | "post-create-project-cmd": [ |
52 | "@php artisan key:generate --ansi" | 53 | "@php artisan key:generate --ansi" |
53 | ] | 54 | ] |
54 | }, | 55 | }, |
55 | "extra": { | 56 | "extra": { |
56 | "laravel": { | 57 | "laravel": { |
57 | "dont-discover": [] | 58 | "dont-discover": [] |
58 | } | 59 | } |
59 | }, | 60 | }, |
60 | "config": { | 61 | "config": { |
61 | "optimize-autoloader": true, | 62 | "optimize-autoloader": true, |
62 | "preferred-install": "dist", | 63 | "preferred-install": "dist", |
63 | "sort-packages": true, | 64 | "sort-packages": true, |
64 | "allow-plugins": { | 65 | "allow-plugins": { |
65 | "pestphp/pest-plugin": true | 66 | "pestphp/pest-plugin": true |
66 | } | 67 | } |
67 | }, | 68 | }, |
68 | "minimum-stability": "stable", | 69 | "minimum-stability": "stable", |
69 | "prefer-stable": true | 70 | "prefer-stable": true |
70 | } | 71 | } |
71 | 72 |
database/migrations/2023_05_16_092746_alter_ad_jobs_table.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | use Illuminate\Database\Migrations\Migration; | 3 | use Illuminate\Database\Migrations\Migration; |
4 | use Illuminate\Database\Schema\Blueprint; | 4 | use Illuminate\Database\Schema\Blueprint; |
5 | use Illuminate\Support\Facades\Schema; | 5 | use Illuminate\Support\Facades\Schema; |
6 | 6 | ||
7 | return new class extends Migration | 7 | return new class extends Migration |
8 | { | 8 | { |
9 | /** | 9 | /** |
10 | * Run the migrations. | 10 | * Run the migrations. |
11 | * | 11 | * |
12 | * @return void | 12 | * @return void |
13 | */ | 13 | */ |
14 | public function up() | 14 | public function up() |
15 | { | 15 | { |
16 | Schema::create('ad_jobs', function (Blueprint $table) { | 16 | Schema::create('ad_jobs', function (Blueprint $table) { |
17 | $table->id(); | 17 | $table->id(); |
18 | $table->bigInteger('ad_employer_id')->nullable(false); | ||
19 | $table->bigInteger('job_title_id')->nullable(false); | ||
20 | $table->timestamps(); | 18 | $table->timestamps(); |
21 | }); | 19 | }); |
22 | } | 20 | } |
23 | 21 | ||
24 | /** | 22 | /** |
25 | * Reverse the migrations. | 23 | * Reverse the migrations. |
26 | * | 24 | * |
27 | * @return void | 25 | * @return void |
28 | */ | 26 | */ |
29 | public function down() | 27 | public function down() |
30 | { | 28 | { |
31 | Schema::dropIfExists('ad_jobs'); | 29 | Schema::dropIfExists('ad_jobs'); |
32 | } | 30 | } |
33 | }; | 31 | }; |
34 | 32 |
database/migrations/2023_09_01_135734_create_dop_info_table.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | use Illuminate\Database\Migrations\Migration; | 3 | use Illuminate\Database\Migrations\Migration; |
4 | use Illuminate\Database\Schema\Blueprint; | 4 | use Illuminate\Database\Schema\Blueprint; |
5 | use Illuminate\Support\Facades\Schema; | 5 | use Illuminate\Support\Facades\Schema; |
6 | 6 | ||
7 | return new class extends Migration | 7 | return new class extends Migration |
8 | { | 8 | { |
9 | /** | 9 | /** |
10 | * Run the migrations. | 10 | * Run the migrations. |
11 | * | 11 | * |
12 | * @return void | 12 | * @return void |
13 | */ | 13 | */ |
14 | public function up() | 14 | public function up() |
15 | { | 15 | { |
16 | Schema::create('dop_info', function (Blueprint $table) { | 16 | Schema::create('dop_info', function (Blueprint $table) { |
17 | $table->id(); | 17 | $table->id(); |
18 | $table->bigInteger('worker_id')->nullable(false); | ||
19 | $table->bigInteger('infoblok_id')->nullable(false); | ||
20 | $table->text('text')->nullable(); | 18 | $table->text('text')->nullable(); |
21 | $table->timestamps(); | 19 | $table->timestamps(); |
22 | }); | 20 | }); |
23 | } | 21 | } |
24 | 22 | ||
25 | /** | 23 | /** |
26 | * Reverse the migrations. | 24 | * Reverse the migrations. |
27 | * | 25 | * |
28 | * @return void | 26 | * @return void |
29 | */ | 27 | */ |
30 | public function down() | 28 | public function down() |
31 | { | 29 | { |
32 | Schema::dropIfExists('dop_info'); | 30 | Schema::dropIfExists('dop_info'); |
33 | } | 31 | } |
34 | }; | 32 | }; |
35 | 33 |
database/migrations/2023_09_06_090200_alter_dop_info_table.php
File was created | 1 | <?php | |
2 | |||
3 | use Illuminate\Database\Migrations\Migration; | ||
4 | use Illuminate\Database\Schema\Blueprint; | ||
5 | use Illuminate\Support\Facades\Schema; | ||
6 | |||
7 | return new class extends Migration | ||
8 | { | ||
9 | /** | ||
10 | * Run the migrations. | ||
11 | * | ||
12 | * @return void | ||
13 | */ | ||
14 | public function up() | ||
15 | { | ||
16 | Schema::table('dop_info', function (Blueprint $table) { | ||
17 | |||
18 | $table->unsignedBigInteger('infoblok_id')->nullable(); | ||
19 | //внешний ключ, ссылается на поле id таблицы infobloks | ||
20 | $table->foreign('infoblok_id', 'key_infoblok_id') | ||
21 | ->references('id') | ||
22 | ->on('infobloks') | ||
23 | ->onDelete('cascade'); | ||
24 | |||
25 | $table->unsignedBigInteger('worker_id')->nullable(); | ||
26 | //внешний ключ, ссылается на поле id таблицы workers | ||
27 | $table->foreign('worker_id', 'key_worker_id') | ||
28 | ->references('id') | ||
29 | ->on('workers') | ||
30 | ->onDelete('cascade'); | ||
31 | }); | ||
32 | } | ||
33 | |||
34 | /** | ||
35 | * Reverse the migrations. | ||
36 | * | ||
37 | * @return void | ||
38 | */ | ||
39 | public function down() | ||
40 | { | ||
41 | Schema::table('dop_info', function (Blueprint $table) { | ||
42 | $table->dropIndex(['key_infoblok_id']); | ||
43 | $table->dropIndex(['key_worker_id']); | ||
44 | }); | ||
45 | } | ||
46 | }; | ||
47 |
database/migrations/2023_09_06_090312_alter_ad_jobs_table.php
File was created | 1 | <?php | |
2 | |||
3 | use Illuminate\Database\Migrations\Migration; | ||
4 | use Illuminate\Database\Schema\Blueprint; | ||
5 | use Illuminate\Support\Facades\Schema; | ||
6 | |||
7 | return new class extends Migration | ||
8 | { | ||
9 | /** | ||
10 | * Run the migrations. | ||
11 | * | ||
12 | * @return void | ||
13 | */ | ||
14 | public function up() | ||
15 | { | ||
16 | Schema::table('ad_jobs', function (Blueprint $table) { | ||
17 | $table->unsignedBigInteger('ad_employer_id')->nullable(); | ||
18 | //внешний ключ, ссылается на поле id таблицы ad_employers | ||
19 | $table->foreign('ad_employer_id', 'key_ad_employer_id') | ||
20 | ->references('id') | ||
21 | ->on('ad_employers') | ||
22 | ->onDelete('cascade'); | ||
23 | |||
24 | $table->unsignedBigInteger('job_title_id')->nullable(); | ||
25 | //внешний ключ, ссылается на поле id таблицы job_titles | ||
26 | $table->foreign('job_title_id', 'key_job_title_id') | ||
27 | ->references('id') | ||
28 | ->on('job_titles') | ||
29 | ->onDelete('cascade'); | ||
30 | }); | ||
31 | } | ||
32 | |||
33 | /** | ||
34 | * Reverse the migrations. | ||
35 | * | ||
36 | * @return void | ||
37 | */ | ||
38 | public function down() | ||
39 | { | ||
40 | Schema::table('ad_jobs', function (Blueprint $table) { | ||
41 | $table->dropIndex(['key_ad_employer_id']); | ||
42 | $table->dropIndex(['key_job_title_id']); | ||
43 | $table->dropColumn('job_title_id'); | ||
44 | $table->dropColumn('ad_employer_id'); | ||
45 | }); | ||
46 | } | ||
47 | }; | ||
48 |
database/migrations/2023_09_06_100450_alter_ad_employers_table.php
File was created | 1 | <?php | |
2 | |||
3 | use Illuminate\Database\Migrations\Migration; | ||
4 | use Illuminate\Database\Schema\Blueprint; | ||
5 | use Illuminate\Support\Facades\Schema; | ||
6 | |||
7 | return new class extends Migration | ||
8 | { | ||
9 | /** | ||
10 | * Run the migrations. | ||
11 | * | ||
12 | * @return void | ||
13 | */ | ||
14 | public function up() | ||
15 | { | ||
16 | Schema::table('ad_employers', function (Blueprint $table) { | ||
17 | $table->string('name', 255)->nullable(); | ||
18 | }); | ||
19 | } | ||
20 | |||
21 | /** | ||
22 | * Reverse the migrations. | ||
23 | * | ||
24 | * @return void | ||
25 | */ | ||
26 | public function down() | ||
27 | { | ||
28 | Schema::table('ad_employers', function (Blueprint $table) { | ||
29 | $table->dropColumn('name'); | ||
30 | }); | ||
31 | } | ||
32 | }; | ||
33 |
resources/views/admin/ad_employers/index.blade.php
1 | @extends('layout.admin', ['title' => 'Админка - Работодатели']) | 1 | @extends('layout.admin', ['title' => 'Админка - Вакансии']) |
2 | 2 | ||
3 | @section('script') | 3 | @section('script') |
4 | @endsection | 4 | @endsection |
5 | 5 | ||
6 | @section('search') | 6 | @section('search') |
7 | <div class="absolute inset-y-0 flex items-center pl-2"> | 7 | <!--<div class="absolute inset-y-0 flex items-center pl-2"> |
8 | <svg | 8 | <svg |
9 | class="w-4 h-4" | 9 | class="w-4 h-4" |
10 | aria-hidden="true" | 10 | aria-hidden="true" |
11 | fill="currentColor" | 11 | fill="currentColor" |
12 | viewBox="0 0 20 20" | 12 | viewBox="0 0 20 20" |
13 | > | 13 | > |
14 | <path | 14 | <path |
15 | fill-rule="evenodd" | 15 | fill-rule="evenodd" |
16 | d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z" | 16 | d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z" |
17 | clip-rule="evenodd" | 17 | clip-rule="evenodd" |
18 | ></path> | 18 | ></path> |
19 | </svg> | 19 | </svg> |
20 | </div> | 20 | </div> |
21 | <form action="" method="POST"> | 21 | <form action="" method="POST"> |
22 | <div style="float:left;"><input | 22 | <div style="float:left;"><input |
23 | class="w-full pl-8 pr-2 text-sm text-gray-700 placeholder-gray-600 bg-gray-100 border-0 rounded-md dark:placeholder-gray-500 dark:focus:shadow-outline-gray dark:focus:placeholder-gray-600 dark:bg-gray-700 dark:text-gray-200 focus:placeholder-gray-500 focus:bg-white focus:border-purple-300 focus:outline-none focus:shadow-outline-purple form-input" | 23 | class="w-full pl-8 pr-2 text-sm text-gray-700 placeholder-gray-600 bg-gray-100 border-0 rounded-md dark:placeholder-gray-500 dark:focus:shadow-outline-gray dark:focus:placeholder-gray-600 dark:bg-gray-700 dark:text-gray-200 focus:placeholder-gray-500 focus:bg-white focus:border-purple-300 focus:outline-none focus:shadow-outline-purple form-input" |
24 | style="width: 400px" | 24 | style="width: 400px" |
25 | type="text" | 25 | type="text" |
26 | placeholder="Искать..." | 26 | placeholder="Искать компанию или вакансию" |
27 | aria-label="Search" | 27 | aria-label="Search" |
28 | /></div> | 28 | /></div> |
29 | <div style="float: left"> | 29 | <div style="float: left"> |
30 | <button type="submit" class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">Искать</button> | 30 | <button type="submit" class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">Поиск</button> |
31 | </div> | 31 | </div> |
32 | </form> | 32 | </form>--> |
33 | @endsection | 33 | @endsection |
34 | 34 | ||
35 | @section('content') | 35 | @section('content') |
36 | <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block"> | 36 | <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block"> |
37 | <div class="w-full overflow-x-auto"> | 37 | <div class="w-full overflow-x-auto"> |
38 | <table class="w-full whitespace-no-wrap"> | 38 | <table class="w-full whitespace-no-wrap"> |
39 | <thead> | 39 | <thead> |
40 | <tr | 40 | <tr |
41 | class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800" | 41 | class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800" |
42 | > | 42 | > |
43 | <th class="px-4 py-3">№</th> | 43 | <th class="px-4 py-3">№</th> |
44 | <th class="px-4 py-3">Название объявления</th> | ||
44 | <th class="px-4 py-3">Название компании</th> | 45 | <th class="px-4 py-3">Название компании</th> |
45 | <th class="px-4 py-3">Вакансии</th> | 46 | <th class="px-4 py-3">Вакансии</th> |
46 | <th class="px-4 py-3">Город</th> | 47 | <th class="px-4 py-3">Город</th> |
48 | <th class="px-4 py-3">З/п</th> | ||
47 | <th class="px-4 py-3">Дата</th> | 49 | <th class="px-4 py-3">Дата</th> |
48 | </tr> | 50 | </tr> |
49 | </thead> | 51 | </thead> |
50 | <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> | 52 | <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> |
51 | @foreach($ad_employers as $ad) | 53 | @foreach($ad_employers as $ad) |
52 | <tr class="text-gray-700 dark:text-gray-400"> | 54 | <tr class="text-gray-700 dark:text-gray-400"> |
53 | <td class="px-4 py-3"> | 55 | <td class="px-4 py-3"> |
54 | {{$ad->id}} | 56 | {{$ad->id}} |
55 | </td> | 57 | </td> |
56 | <td class="px-4 py-3"> | 58 | <td class="px-4 py-3"> |
57 | {{$ad->employers->name_company}} | 59 | {{$ad->name}} |
60 | </td> | ||
61 | <td class="px-4 py-3"> | ||
62 | {{$ad->employer->name_company}} | ||
58 | </td> | 63 | </td> |
59 | <td class="px-4 py-3"> | 64 | <td class="px-4 py-3"> |
60 | <div class="flex items-center text-sm"> | 65 | <div class="flex items-center text-sm"> |
66 | @if ($ad->jobs->count()) | ||
61 | <div> | 67 | <div> |
62 | 68 | <?php $i = 0;?> | |
63 | <p class="font-semibold"></p> | 69 | @foreach ($ad->jobs as $title) |
64 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 70 | <?php if ($i==0) {?> |
65 | </p> | 71 | <p class="font-semibold">{{$title->name}}</p> |
66 | 72 | <?php } else {?> | |
73 | <p class="font-semibold">/ {{$title->name}}</p> | ||
74 | <?php } | ||
75 | $i++; | ||
76 | ?> | ||
77 | @endforeach | ||
67 | </div> | 78 | </div> |
79 | @endif | ||
68 | </div> | 80 | </div> |
69 | 81 | ||
70 | </td> | 82 | </td> |
71 | <td class="px-4 py-3 text-sm"> | 83 | <td class="px-4 py-3 text-sm"> |
72 | {{ $ad->city }} | 84 | {{ $ad->city }} |
73 | </td> | 85 | </td> |
74 | <td class="px-4 py-3 text-sm"> | 86 | <td class="px-4 py-3 text-sm"> |
87 | {{ $ad->salary }} | ||
88 | </td> | ||
89 | <td class="px-4 py-3 text-sm"> | ||
75 | {{ $ad->created_at }} | 90 | {{ $ad->created_at }} |
76 | </td> | 91 | </td> |
77 | </tr> | 92 | </tr> |
78 | @endforeach | 93 | @endforeach |
79 | </tbody> | 94 | </tbody> |
80 | </table> | 95 | </table> |
81 | </div> | 96 | </div> |
82 | 97 | ||
83 | <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800"> | 98 | <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800"> |
84 | <?=$ad->appends($_GET)->links('admin.pagginate'); ?> | 99 | <?=$ad_employers->appends($_GET)->links('admin.pagginate'); ?> |
85 | </div> | 100 | </div> |
86 | </div> | 101 | </div> |
87 | @endsection | 102 | @endsection |
88 | 103 |
resources/views/admin/groups/add.blade.php
File was created | 1 | @extends('layout.admin', ['title' => 'Админка - Добавление новой группы']) | |
2 | |||
3 | @section('content') | ||
4 | <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"> | ||
5 | Добавление новой группы | ||
6 | </h4> | ||
7 | <form method="POST" action="{{ route('admin.add-group-store') }}"> | ||
8 | @csrf | ||
9 | @include('admin.groups.form') | ||
10 | </form> | ||
11 | @endsection | ||
12 |
resources/views/admin/groups/edit.blade.php
File was created | 1 | @extends('layout.admin', ['title' => 'Админка - Редактирование группы']) | |
2 | |||
3 | @section('content') | ||
4 | <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"> | ||
5 | Редактирование группы | ||
6 | </h4> | ||
7 | <form method="POST" action="{{ route('admin.update-group', ['group' => $group->id]) }}"> | ||
8 | @csrf | ||
9 | @include('admin.groups.form') | ||
10 | </form> | ||
11 | @endsection | ||
12 |
resources/views/admin/groups/form.blade.php
File was created | 1 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | |
2 | <label class="block text-sm"> | ||
3 | <span class="text-gray-700 dark:text-gray-400">Имя группы</span> | ||
4 | <input name="name_group" id="name_group" | ||
5 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | ||
6 | placeholder="Название группы" value="{{ old('name_group') ?? $group->name_group ?? '' }}" | ||
7 | /> | ||
8 | @error('name_group') | ||
9 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
10 | {{ $message }} | ||
11 | </span> | ||
12 | @enderror | ||
13 | </label><br> | ||
14 | |||
15 | <input type="hidden" name="user_id" id="user_id" value="{{ $editor }}"/> | ||
16 | |||
17 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | ||
18 | <div> | ||
19 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | ||
20 | Сохранить | ||
21 | </button> | ||
22 | </div> | ||
23 | </div> | ||
24 | </div> | ||
25 | |||
26 |
resources/views/admin/groups/index.blade.php
File was created | 1 | @extends('layout.admin', ['title' => 'Админка - Группы пользователей']) | |
2 | |||
3 | @section('script') | ||
4 | <script> | ||
5 | $(document).ready(function() { | ||
6 | $(document).on('click', '.checkban', function () { | ||
7 | var this_ = $(this); | ||
8 | var value = this_.val(); | ||
9 | var ajax_block = $('#ajax_block'); | ||
10 | var bool = 0; | ||
11 | |||
12 | if(this.checked){ | ||
13 | bool = 1; | ||
14 | } else { | ||
15 | bool = 0; | ||
16 | } | ||
17 | |||
18 | $.ajax({ | ||
19 | type: "GET", | ||
20 | url: "{{ url()->full()}}", | ||
21 | data: "id=" + value + "&is_ban=" + bool, | ||
22 | success: function (data) { | ||
23 | console.log('Обновление таблицы пользователей '); | ||
24 | //data = JSON.parse(data); | ||
25 | //console.log(data); | ||
26 | ajax_block.html(data); | ||
27 | }, | ||
28 | headers: { | ||
29 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | ||
30 | }, | ||
31 | error: function (data) { | ||
32 | console.log('Error: ' + data); | ||
33 | } | ||
34 | }); | ||
35 | }); | ||
36 | |||
37 | }); | ||
38 | </script> | ||
39 | @endsection | ||
40 | |||
41 | @section('search') | ||
42 | <!--<div class="absolute inset-y-0 flex items-center pl-2"> | ||
43 | <svg | ||
44 | class="w-4 h-4" | ||
45 | aria-hidden="true" | ||
46 | fill="currentColor" | ||
47 | viewBox="0 0 20 20" | ||
48 | > | ||
49 | <path | ||
50 | fill-rule="evenodd" | ||
51 | d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z" | ||
52 | clip-rule="evenodd" | ||
53 | ></path> | ||
54 | </svg> | ||
55 | </div> | ||
56 | <form action="" method="POST"> | ||
57 | <div style="float:left;"><input | ||
58 | class="w-full pl-8 pr-2 text-sm text-gray-700 placeholder-gray-600 bg-gray-100 border-0 rounded-md dark:placeholder-gray-500 dark:focus:shadow-outline-gray dark:focus:placeholder-gray-600 dark:bg-gray-700 dark:text-gray-200 focus:placeholder-gray-500 focus:bg-white focus:border-purple-300 focus:outline-none focus:shadow-outline-purple form-input" | ||
59 | style="width: 400px" | ||
60 | type="text" | ||
61 | placeholder="Искать..." | ||
62 | aria-label="Search" | ||
63 | /></div> | ||
64 | <div style="float: left"> | ||
65 | <button type="submit" class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">Искать</button> | ||
66 | </div> | ||
67 | </form>--> | ||
68 | @endsection | ||
69 | |||
70 | @section('content') | ||
71 | <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block"> | ||
72 | <div class="w-full overflow-x-auto"> | ||
73 | <a class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" href="{{ route('admin.add-group') }}">Создать группу</a><br><br> | ||
74 | <table class="w-full whitespace-no-wrap"> | ||
75 | <thead> | ||
76 | <tr | ||
77 | class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800" | ||
78 | > | ||
79 | <th class="px-4 py-3">№</th> | ||
80 | <th class="px-4 py-3">Название группы</th> | ||
81 | <th class="px-4 py-3">Создатель группы</th> | ||
82 | <th class="px-4 py-3">Кол-во участников</th> | ||
83 | <th class="px-4 py-3">Дата регистрации</th> | ||
84 | <th class="px-4 py-3">Изменить</th> | ||
85 | </tr> | ||
86 | </thead> | ||
87 | <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> | ||
88 | @foreach($groups as $group) | ||
89 | <tr class="text-gray-700 dark:text-gray-400"> | ||
90 | <td class="px-4 py-3"> | ||
91 | {{$group->id}} | ||
92 | </td> | ||
93 | <td class="px-4 py-3"> | ||
94 | {{$group->name_group}} | ||
95 | </td> | ||
96 | <td class="px-4 py-3"> | ||
97 | {{$group->user->name}} | ||
98 | </td> | ||
99 | <td class="px-4 py-3"> | ||
100 | {{$group->ingroup->count()}} | ||
101 | </td> | ||
102 | <td class="px-4 py-3 text-sm"> | ||
103 | {{ $group->created_at }} | ||
104 | </td> | ||
105 | <td class="px-4 py-3 text-sm"> | ||
106 | <a href="{{ route('admin.edit-group', ['group' => $group->id]) }}">Изменить</a> | ||
107 | </td> | ||
108 | </tr> | ||
109 | @endforeach | ||
110 | </tbody> | ||
111 | </table> | ||
112 | </div> | ||
113 | |||
114 | <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800"> | ||
115 | <?=$groups->appends($_GET)->links('admin.pagginate'); ?> | ||
116 | </div> | ||
117 | </div> | ||
118 | @endsection | ||
119 |
resources/views/admin/index.blade.php
1 | @extends('layout.admin', ['title' => 'Админка - Главная страница']) | 1 | @extends('layout.admin', ['title' => 'Админка - Главная страница']) |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4"> | 4 | <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4"> |
5 | 5 | ||
6 | <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"> | 6 | <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"> |
7 | <div class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500"> | 7 | <div class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500"> |
8 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 8 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
9 | <path | 9 | <path |
10 | d="M13 6a3 3 0 11-6 0 3 3 0 016 0zM18 8a2 2 0 11-4 0 2 2 0 014 0zM14 15a4 4 0 00-8 0v3h8v-3zM6 8a2 2 0 11-4 0 2 2 0 014 0zM16 18v-3a5.972 5.972 0 00-.75-2.906A3.005 3.005 0 0119 15v3h-3zM4.75 12.094A5.973 5.973 0 004 15v3H1v-3a3 3 0 013.75-2.906z"></path> | 10 | d="M13 6a3 3 0 11-6 0 3 3 0 016 0zM18 8a2 2 0 11-4 0 2 2 0 014 0zM14 15a4 4 0 00-8 0v3h8v-3zM6 8a2 2 0 11-4 0 2 2 0 014 0zM16 18v-3a5.972 5.972 0 00-.75-2.906A3.005 3.005 0 0119 15v3h-3zM4.75 12.094A5.973 5.973 0 004 15v3H1v-3a3 3 0 013.75-2.906z"></path> |
11 | </svg> | 11 | </svg> |
12 | </div> | 12 | </div> |
13 | <div> | 13 | <div> |
14 | <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"> | 14 | <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"> |
15 | Всего пользователей | 15 | Всего пользователей |
16 | </p> | 16 | </p> |
17 | <p class="text-lg font-semibold text-gray-700 dark:text-gray-200"> | 17 | <p class="text-lg font-semibold text-gray-700 dark:text-gray-200"> |
18 | {{ $all_user }} | 18 | {{ $all_user }} |
19 | </p> | 19 | </p> |
20 | </div> | 20 | </div> |
21 | </div> | 21 | </div> |
22 | 22 | ||
23 | <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"> | 23 | <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"> |
24 | <div class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500"> | 24 | <div class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500"> |
25 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 25 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
26 | <path | 26 | <path |
27 | fill-rule="evenodd" | 27 | fill-rule="evenodd" |
28 | d="M4 4a2 2 0 00-2 2v4a2 2 0 002 2V6h10a2 2 0 00-2-2H4zm2 6a2 2 0 012-2h8a2 2 0 012 2v4a2 2 0 01-2 2H8a2 2 0 01-2-2v-4zm6 4a2 2 0 100-4 2 2 0 000 4z" | 28 | d="M4 4a2 2 0 00-2 2v4a2 2 0 002 2V6h10a2 2 0 00-2-2H4zm2 6a2 2 0 012-2h8a2 2 0 012 2v4a2 2 0 01-2 2H8a2 2 0 01-2-2v-4zm6 4a2 2 0 100-4 2 2 0 000 4z" |
29 | clip-rule="evenodd" | 29 | clip-rule="evenodd" |
30 | ></path> | 30 | ></path> |
31 | </svg> | 31 | </svg> |
32 | </div> | 32 | </div> |
33 | <div> | 33 | <div> |
34 | <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"> | 34 | <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"> |
35 | Работодателей | 35 | Работодателей |
36 | </p> | 36 | </p> |
37 | <p class="text-lg font-semibold text-gray-700 dark:text-gray-200"> | 37 | <p class="text-lg font-semibold text-gray-700 dark:text-gray-200"> |
38 | {{ $all_employer }} | 38 | {{ $all_employer }} |
39 | </p> | 39 | </p> |
40 | </div> | 40 | </div> |
41 | </div> | 41 | </div> |
42 | 42 | ||
43 | <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"> | 43 | <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"> |
44 | <div class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500"> | 44 | <div class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500"> |
45 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 45 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
46 | <path d="M3 1a1 1 0 000 2h1.22l.305 1.222a.997.997 0 00.01.042l1.358 5.43-.893.892C3.74 11.846 4.632 14 6.414 14H15a1 1 0 000-2H6.414l1-1H14a1 1 0 00.894-.553l3-6A1 1 0 0017 3H6.28l-.31-1.243A1 1 0 005 1H3zM16 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM6.5 18a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path> | 46 | <path d="M3 1a1 1 0 000 2h1.22l.305 1.222a.997.997 0 00.01.042l1.358 5.43-.893.892C3.74 11.846 4.632 14 6.414 14H15a1 1 0 000-2H6.414l1-1H14a1 1 0 00.894-.553l3-6A1 1 0 0017 3H6.28l-.31-1.243A1 1 0 005 1H3zM16 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM6.5 18a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path> |
47 | </svg> | 47 | </svg> |
48 | </div> | 48 | </div> |
49 | <div> | 49 | <div> |
50 | <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"> | 50 | <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"> |
51 | Соискателей | 51 | Соискателей |
52 | </p> | 52 | </p> |
53 | <p class="text-lg font-semibold text-gray-700 dark:text-gray-200"> | 53 | <p class="text-lg font-semibold text-gray-700 dark:text-gray-200"> |
54 | {{$all_worker}} | 54 | {{$all_worker}} |
55 | </p> | 55 | </p> |
56 | </div> | 56 | </div> |
57 | </div> | 57 | </div> |
58 | 58 | ||
59 | <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"> | 59 | <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"> |
60 | <div class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500"> | 60 | <div class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500"> |
61 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 61 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
62 | <path | 62 | <path |
63 | fill-rule="evenodd" | 63 | fill-rule="evenodd" |
64 | d="M18 5v8a2 2 0 01-2 2h-5l-5 4v-4H4a2 2 0 01-2-2V5a2 2 0 012-2h12a2 2 0 012 2zM7 8H5v2h2V8zm2 0h2v2H9V8zm6 0h-2v2h2V8z" | 64 | d="M18 5v8a2 2 0 01-2 2h-5l-5 4v-4H4a2 2 0 01-2-2V5a2 2 0 012-2h12a2 2 0 012 2zM7 8H5v2h2V8zm2 0h2v2H9V8zm6 0h-2v2h2V8z" |
65 | clip-rule="evenodd" | 65 | clip-rule="evenodd" |
66 | ></path> | 66 | ></path> |
67 | </svg> | 67 | </svg> |
68 | </div> | 68 | </div> |
69 | <div> | 69 | <div> |
70 | <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"> | 70 | <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"> |
71 | Администраторы | 71 | Администраторы |
72 | </p> | 72 | </p> |
73 | <p class="text-lg font-semibold text-gray-700 dark:text-gray-200"> | 73 | <p class="text-lg font-semibold text-gray-700 dark:text-gray-200"> |
74 | {{$all_admin}} | 74 | {{$all_admin}} |
75 | </p> | 75 | </p> |
76 | </div> | 76 | </div> |
77 | </div> | 77 | </div> |
78 | </div> | 78 | </div> |
79 | 79 | ||
80 | <!-- Таблицы --> | 80 | <!-- Таблицы --> |
81 | 81 | ||
82 | <div class="w-full overflow-hidden rounded-lg shadow-xs"> | 82 | <div class="w-full overflow-hidden rounded-lg shadow-xs"> |
83 | <div class="w-full overflow-x-auto"> | 83 | <div class="w-full overflow-x-auto"> |
84 | <table class="w-full whitespace-no-wrap"> | 84 | <table class="w-full whitespace-no-wrap"> |
85 | <thead> | 85 | <thead> |
86 | <tr | 86 | <tr |
87 | class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800" | 87 | class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800" |
88 | > | 88 | > |
89 | <th class="px-4 py-3">Название</th> | 89 | <th class="px-4 py-3">Название</th> |
90 | <th class="px-4 py-3">Таблица</th> | 90 | <th class="px-4 py-3">Таблица</th> |
91 | <th class="px-4 py-3">Редактирование</th> | 91 | <th class="px-4 py-3">Редактирование</th> |
92 | <th class="px-4 py-3">Дата</th> | 92 | <th class="px-4 py-3">Дата</th> |
93 | </tr> | 93 | </tr> |
94 | </thead> | 94 | </thead> |
95 | <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> | 95 | <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> |
96 | <tr class="text-gray-700 dark:text-gray-400"> | 96 | <tr class="text-gray-700 dark:text-gray-400"> |
97 | <td class="px-4 py-3"> | 97 | <td class="px-4 py-3"> |
98 | <div class="flex items-center text-sm"> | 98 | <div class="flex items-center text-sm"> |
99 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> | 99 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> |
100 | <div | 100 | <div |
101 | class="absolute inset-0 rounded-full shadow-inner" | 101 | class="absolute inset-0 rounded-full shadow-inner" |
102 | aria-hidden="true" | 102 | aria-hidden="true" |
103 | ></div> | 103 | ></div> |
104 | </div> | 104 | </div> |
105 | <div> | 105 | <div> |
106 | <p class="font-semibold"><a href="{{ route('admin.users') }}">Пользователи</a></p> | 106 | <p class="font-semibold"><a href="{{ route('admin.users') }}">Пользователи</a></p> |
107 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 107 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
108 | Все пользователи сайта | 108 | Все пользователи сайта |
109 | </p> | 109 | </p> |
110 | </div> | 110 | </div> |
111 | </div> | 111 | </div> |
112 | </td> | 112 | </td> |
113 | <td class="px-4 py-3 text-sm"> | 113 | <td class="px-4 py-3 text-sm"> |
114 | users | 114 | users |
115 | </td> | 115 | </td> |
116 | <td class="px-4 py-3 text-xs"> | 116 | <td class="px-4 py-3 text-xs"> |
117 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> | 117 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> |
118 | Доступно | 118 | Доступно |
119 | </span> | 119 | </span> |
120 | <!--<span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> | 120 | <!--<span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> |
121 | Недоступно | 121 | Недоступно |
122 | </span>--> | 122 | </span>--> |
123 | </td> | 123 | </td> |
124 | <td class="px-4 py-3 text-sm"> | 124 | <td class="px-4 py-3 text-sm"> |
125 | май 2023 | 125 | май 2023 |
126 | </td> | 126 | </td> |
127 | </tr> | 127 | </tr> |
128 | 128 | ||
129 | <tr class="text-gray-700 dark:text-gray-400"> | 129 | <tr class="text-gray-700 dark:text-gray-400"> |
130 | <td class="px-4 py-3"> | 130 | <td class="px-4 py-3"> |
131 | <div class="flex items-center text-sm"> | 131 | <div class="flex items-center text-sm"> |
132 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> | 132 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> |
133 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> | 133 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> |
134 | </div> | 134 | </div> |
135 | <div> | 135 | <div> |
136 | <p class="font-semibold"><a href="{{ route('admin.employers') }}">Работодатели</a></p> | 136 | <p class="font-semibold"><a href="{{ route('admin.employers') }}">Работодатели</a></p> |
137 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 137 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
138 | Все работодатели сайта | 138 | Все работодатели сайта |
139 | </p> | 139 | </p> |
140 | </div> | 140 | </div> |
141 | </div> | 141 | </div> |
142 | </td> | 142 | </td> |
143 | <td class="px-4 py-3 text-sm"> | 143 | <td class="px-4 py-3 text-sm"> |
144 | employers | 144 | employers |
145 | </td> | 145 | </td> |
146 | <td class="px-4 py-3 text-xs"> | 146 | <td class="px-4 py-3 text-xs"> |
147 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> | 147 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> |
148 | Доступно | 148 | Доступно |
149 | </span> | 149 | </span> |
150 | </td> | 150 | </td> |
151 | <td class="px-4 py-3 text-sm"> | 151 | <td class="px-4 py-3 text-sm"> |
152 | май 2023 | 152 | май 2023 |
153 | </td> | 153 | </td> |
154 | </tr> | 154 | </tr> |
155 | 155 | ||
156 | <tr class="text-gray-700 dark:text-gray-400"> | 156 | <tr class="text-gray-700 dark:text-gray-400"> |
157 | <td class="px-4 py-3"> | 157 | <td class="px-4 py-3"> |
158 | <div class="flex items-center text-sm"> | 158 | <div class="flex items-center text-sm"> |
159 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> | 159 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> |
160 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> | 160 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> |
161 | </div> | 161 | </div> |
162 | <div> | 162 | <div> |
163 | <p class="font-semibold"><a href="{{ route('admin.workers') }}">Соискатели</a></p> | 163 | <p class="font-semibold"><a href="{{ route('admin.workers') }}">Соискатели</a></p> |
164 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 164 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
165 | Все работники сайта | 165 | Все работники сайта |
166 | </p> | 166 | </p> |
167 | </div> | 167 | </div> |
168 | </div> | 168 | </div> |
169 | </td> | 169 | </td> |
170 | <td class="px-4 py-3 text-sm"> | 170 | <td class="px-4 py-3 text-sm"> |
171 | workers | 171 | workers |
172 | </td> | 172 | </td> |
173 | <td class="px-4 py-3 text-xs"> | 173 | <td class="px-4 py-3 text-xs"> |
174 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> | 174 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> |
175 | Доступно | 175 | Доступно |
176 | </span> | 176 | </span> |
177 | </td> | 177 | </td> |
178 | <td class="px-4 py-3 text-sm"> | 178 | <td class="px-4 py-3 text-sm"> |
179 | май 2023 | 179 | май 2023 |
180 | </td> | 180 | </td> |
181 | </tr> | 181 | </tr> |
182 | 182 | ||
183 | <tr class="text-gray-700 dark:text-gray-400"> | 183 | <tr class="text-gray-700 dark:text-gray-400"> |
184 | <td class="px-4 py-3"> | 184 | <td class="px-4 py-3"> |
185 | <div class="flex items-center text-sm"> | 185 | <div class="flex items-center text-sm"> |
186 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> | 186 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> |
187 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> | 187 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> |
188 | </div> | 188 | </div> |
189 | <div> | 189 | <div> |
190 | <p class="font-semibold"><a href="{{ route('admin.ad-employers') }}">Вакансии</a></p> | 190 | <p class="font-semibold"><a href="{{ route('admin.ad-employers') }}">Вакансии</a></p> |
191 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 191 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
192 | Все вакансии сайта | 192 | Все вакансии сайта |
193 | </p> | 193 | </p> |
194 | </div> | 194 | </div> |
195 | </div> | 195 | </div> |
196 | </td> | 196 | </td> |
197 | <td class="px-4 py-3 text-sm"> | 197 | <td class="px-4 py-3 text-sm"> |
198 | ad_employers | 198 | ad_employers |
199 | </td> | 199 | </td> |
200 | <td class="px-4 py-3 text-xs"> | 200 | <td class="px-4 py-3 text-xs"> |
201 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> | 201 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> |
202 | Доступно | 202 | Доступно |
203 | </span> | 203 | </span> |
204 | </td> | 204 | </td> |
205 | <td class="px-4 py-3 text-sm"> | 205 | <td class="px-4 py-3 text-sm"> |
206 | май 2023 | 206 | май 2023 |
207 | </td> | 207 | </td> |
208 | </tr> | 208 | </tr> |
209 | 209 | ||
210 | <tr class="text-gray-700 dark:text-gray-400"> | 210 | <tr class="text-gray-700 dark:text-gray-400"> |
211 | <td class="px-4 py-3"> | 211 | <td class="px-4 py-3"> |
212 | <div class="flex items-center text-sm"> | 212 | <div class="flex items-center text-sm"> |
213 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> | 213 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> |
214 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> | 214 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> |
215 | </div> | 215 | </div> |
216 | <div> | 216 | <div> |
217 | <p class="font-semibold"><a href="{{ route('admin.categories.index') }}">Категории</a></p> | 217 | <p class="font-semibold"><a href="{{ route('admin.categories.index') }}">Категории</a></p> |
218 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 218 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
219 | Справочник категории (по умолчанию: река, море, река-море) | 219 | Справочник категории (по умолчанию: река, море, река-море) |
220 | </p> | 220 | </p> |
221 | </div> | 221 | </div> |
222 | </div> | 222 | </div> |
223 | </td> | 223 | </td> |
224 | <td class="px-4 py-3 text-sm"> | 224 | <td class="px-4 py-3 text-sm"> |
225 | category | 225 | category |
226 | </td> | 226 | </td> |
227 | <td class="px-4 py-3 text-xs"> | 227 | <td class="px-4 py-3 text-xs"> |
228 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> | 228 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> |
229 | Доступно | 229 | Доступно |
230 | </span> | 230 | </span> |
231 | </td> | 231 | </td> |
232 | <td class="px-4 py-3 text-sm"> | 232 | <td class="px-4 py-3 text-sm"> |
233 | май 2023 | 233 | май 2023 |
234 | </td> | 234 | </td> |
235 | </tr> | 235 | </tr> |
236 | 236 | ||
237 | <tr class="text-gray-700 dark:text-gray-400"> | 237 | <tr class="text-gray-700 dark:text-gray-400"> |
238 | <td class="px-4 py-3"> | 238 | <td class="px-4 py-3"> |
239 | <div class="flex items-center text-sm"> | 239 | <div class="flex items-center text-sm"> |
240 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> | 240 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> |
241 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> | 241 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> |
242 | </div> | 242 | </div> |
243 | <div> | 243 | <div> |
244 | <p class="font-semibold"><a href="{{ route('admin.job-titles') }}">Должности</a></p> | 244 | <p class="font-semibold"><a href="{{ route('admin.job-titles') }}">Должности</a></p> |
245 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 245 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
246 | Справочник должности (все должности проекта) | 246 | Справочник должности (все должности проекта) |
247 | </p> | 247 | </p> |
248 | </div> | 248 | </div> |
249 | </div> | 249 | </div> |
250 | </td> | 250 | </td> |
251 | <td class="px-4 py-3 text-sm"> | 251 | <td class="px-4 py-3 text-sm"> |
252 | job_titles | 252 | job_titles |
253 | </td> | 253 | </td> |
254 | <td class="px-4 py-3 text-xs"> | 254 | <td class="px-4 py-3 text-xs"> |
255 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> | 255 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> |
256 | Доступно | 256 | Доступно |
257 | </span> | 257 | </span> |
258 | </td> | 258 | </td> |
259 | <td class="px-4 py-3 text-sm"> | 259 | <td class="px-4 py-3 text-sm"> |
260 | май 2023 | 260 | май 2023 |
261 | </td> | 261 | </td> |
262 | </tr> | 262 | </tr> |
263 | 263 | ||
264 | <tr class="text-gray-700 dark:text-gray-400"> | 264 | <tr class="text-gray-700 dark:text-gray-400"> |
265 | <td class="px-4 py-3"> | 265 | <td class="px-4 py-3"> |
266 | <div class="flex items-center text-sm"> | 266 | <div class="flex items-center text-sm"> |
267 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> | 267 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> |
268 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> | 268 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> |
269 | </div> | 269 | </div> |
270 | <div> | 270 | <div> |
271 | <p class="font-semibold"><a href="{{ route('admin.infobloks') }}">Документы-Дипломы</a></p> | 271 | <p class="font-semibold"><a href="{{ route('admin.infobloks') }}">Документы-Дипломы</a></p> |
272 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 272 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
273 | Справочник документы-дипломы (все блоки-документы необходимые соискателю) | 273 | Справочник документы-дипломы (все блоки-документы необходимые соискателю) |
274 | </p> | 274 | </p> |
275 | </div> | 275 | </div> |
276 | </div> | 276 | </div> |
277 | </td> | 277 | </td> |
278 | <td class="px-4 py-3 text-sm"> | 278 | <td class="px-4 py-3 text-sm"> |
279 | infobloks | 279 | infobloks |
280 | </td> | 280 | </td> |
281 | <td class="px-4 py-3 text-xs"> | 281 | <td class="px-4 py-3 text-xs"> |
282 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> | 282 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> |
283 | Доступно | 283 | Доступно |
284 | </span> | 284 | </span> |
285 | </td> | 285 | </td> |
286 | <td class="px-4 py-3 text-sm"> | 286 | <td class="px-4 py-3 text-sm"> |
287 | сентябрь 2023 | 287 | сентябрь 2023 |
288 | </td> | 288 | </td> |
289 | </tr> | 289 | </tr> |
290 | 290 | ||
291 | <tr class="text-gray-700 dark:text-gray-400"> | 291 | <tr class="text-gray-700 dark:text-gray-400"> |
292 | <td class="px-4 py-3"> | 292 | <td class="px-4 py-3"> |
293 | <div class="flex items-center text-sm"> | 293 | <div class="flex items-center text-sm"> |
294 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> | 294 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> |
295 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> | 295 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> |
296 | </div> | 296 | </div> |
297 | <div> | 297 | <div> |
298 | <p class="font-semibold"><a href="{{ route('admin.messages') }}">Сообщения</a></p> | 298 | <p class="font-semibold"><a href="{{ route('admin.messages') }}">Сообщения</a></p> |
299 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 299 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
300 | Все сообщения сайта | 300 | Все сообщения сайта |
301 | </p> | 301 | </p> |
302 | </div> | 302 | </div> |
303 | </div> | 303 | </div> |
304 | </td> | 304 | </td> |
305 | <td class="px-4 py-3 text-sm"> | 305 | <td class="px-4 py-3 text-sm"> |
306 | messages | 306 | messages |
307 | </td> | 307 | </td> |
308 | <td class="px-4 py-3 text-xs"> | 308 | <td class="px-4 py-3 text-xs"> |
309 | <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> | 309 | <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> |
310 | Недоступно | 310 | Недоступно |
311 | </span> | 311 | </span> |
312 | </td> | 312 | </td> |
313 | <td class="px-4 py-3 text-sm"> | 313 | <td class="px-4 py-3 text-sm"> |
314 | май 2023 | 314 | май 2023 |
315 | </td> | 315 | </td> |
316 | </tr> | 316 | </tr> |
317 | 317 | ||
318 | <tr class="text-gray-700 dark:text-gray-400"> | 318 | <tr class="text-gray-700 dark:text-gray-400"> |
319 | <td class="px-4 py-3"> | 319 | <td class="px-4 py-3"> |
320 | <div class="flex items-center text-sm"> | 320 | <div class="flex items-center text-sm"> |
321 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> | 321 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> |
322 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> | 322 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> |
323 | </div> | 323 | </div> |
324 | <div> | 324 | <div> |
325 | <p class="font-semibold"><a href="{{ route('admin.groups') }}">Группы пользователей</a></p> | 325 | <p class="font-semibold"><a href="{{ route('admin.groups') }}">Группы пользователей</a></p> |
326 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 326 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
327 | Группировка людей в именованные группы | 327 | Группировка людей в именованные группы |
328 | </p> | 328 | </p> |
329 | </div> | 329 | </div> |
330 | </div> | 330 | </div> |
331 | </td> | 331 | </td> |
332 | <td class="px-4 py-3 text-sm"> | 332 | <td class="px-4 py-3 text-sm"> |
333 | group_users | 333 | group_users |
334 | </td> | 334 | </td> |
335 | <td class="px-4 py-3 text-xs"> | 335 | <td class="px-4 py-3 text-xs"> |
336 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> | 336 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> |
337 | Доступно | 337 | Доступно |
338 | </span> | 338 | </span> |
339 | </td> | 339 | </td> |
340 | <td class="px-4 py-3 text-sm"> | 340 | <td class="px-4 py-3 text-sm"> |
341 | май 2023 | 341 | май 2023 |
342 | </td> | 342 | </td> |
343 | </tr> | 343 | </tr> |
344 | 344 | ||
345 | <tr class="text-gray-700 dark:text-gray-400"> | 345 | <tr class="text-gray-700 dark:text-gray-400"> |
346 | <td class="px-4 py-3"> | 346 | <td class="px-4 py-3"> |
347 | <div class="flex items-center text-sm"> | 347 | <div class="flex items-center text-sm"> |
348 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> | 348 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> |
349 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> | 349 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> |
350 | </div> | 350 | </div> |
351 | <div> | 351 | <div> |
352 | <p class="font-semibold"><a href="{{ route('admin.roles') }}">Роли пользователей</a></p> | 352 | <p class="font-semibold"><a href="{{ route('admin.roles') }}">Роли пользователей</a></p> |
353 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 353 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
354 | Роли людей (запреты и доступы) в системе | 354 | Роли людей (запреты и доступы) в системе |
355 | </p> | 355 | </p> |
356 | </div> | 356 | </div> |
357 | </div> | 357 | </div> |
358 | </td> | 358 | </td> |
359 | <td class="px-4 py-3 text-sm"> | 359 | <td class="px-4 py-3 text-sm"> |
360 | users | 360 | users |
361 | </td> | 361 | </td> |
362 | <td class="px-4 py-3 text-xs"> | 362 | <td class="px-4 py-3 text-xs"> |
363 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> | 363 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> |
364 | Доступно | 364 | Доступно |
365 | </span> | 365 | </span> |
366 | </td> | 366 | </td> |
367 | <td class="px-4 py-3 text-sm"> | 367 | <td class="px-4 py-3 text-sm"> |
368 | сентябрь 2023 | 368 | сентябрь 2023 |
369 | </td> | 369 | </td> |
370 | </tr> | 370 | </tr> |
371 | 371 | ||
372 | <tr class="text-gray-700 dark:text-gray-400"> | 372 | <tr class="text-gray-700 dark:text-gray-400"> |
373 | <td class="px-4 py-3"> | 373 | <td class="px-4 py-3"> |
374 | <div class="flex items-center text-sm"> | 374 | <div class="flex items-center text-sm"> |
375 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> | 375 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> |
376 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> | 376 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> |
377 | </div> | 377 | </div> |
378 | <div> | 378 | <div> |
379 | <p class="font-semibold"><a href="{{ route('admin.statics') }}">Статистика</a></p> | 379 | <p class="font-semibold"><a href="{{ route('admin.statics') }}">Статистика</a></p> |
380 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 380 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
381 | Статистика соискателей и работодателей | 381 | Статистика соискателей и работодателей |
382 | </p> | 382 | </p> |
383 | </div> | 383 | </div> |
384 | </div> | 384 | </div> |
385 | </td> | 385 | </td> |
386 | <td class="px-4 py-3 text-sm"> | 386 | <td class="px-4 py-3 text-sm"> |
387 | static_workers, static_ads | 387 | static_workers, static_ads |
388 | </td> | 388 | </td> |
389 | <td class="px-4 py-3 text-xs"> | 389 | <td class="px-4 py-3 text-xs"> |
390 | <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> | 390 | <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> |
391 | Недоступно | 391 | Недоступно |
392 | </span> | 392 | </span> |
393 | </td> | 393 | </td> |
394 | <td class="px-4 py-3 text-sm"> | 394 | <td class="px-4 py-3 text-sm"> |
395 | сентябрь 2023 | 395 | сентябрь 2023 |
396 | </td> | 396 | </td> |
397 | </tr> | 397 | </tr> |
398 | 398 | ||
399 | <tr class="text-gray-700 dark:text-gray-400"> | 399 | <tr class="text-gray-700 dark:text-gray-400"> |
400 | <td class="px-4 py-3"> | 400 | <td class="px-4 py-3"> |
401 | <div class="flex items-center text-sm"> | 401 | <div class="flex items-center text-sm"> |
402 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> | 402 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> |
403 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> | 403 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> |
404 | </div> | 404 | </div> |
405 | <div> | 405 | <div> |
406 | <p class="font-semibold"><a href="{{ route('admin.editor-site') }}">Редактор сайта</a></p> | 406 | <p class="font-semibold"><a href="{{ route('admin.editor-site') }}">Редактор сайта</a></p> |
407 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 407 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
408 | Все редакторы системы | 408 | Все редакторы системы |
409 | </p> | 409 | </p> |
410 | </div> | 410 | </div> |
411 | </div> | 411 | </div> |
412 | </td> | 412 | </td> |
413 | <td class="px-4 py-3 text-sm"> | 413 | <td class="px-4 py-3 text-sm"> |
414 | header_footer, job_titles_mains, employers_mains,<br> pages, seo, reclames, companies | 414 | header_footer, job_titles_mains, employers_mains,<br> pages, seo, reclames, companies |
415 | </td> | 415 | </td> |
416 | <td class="px-4 py-3 text-xs"> | 416 | <td class="px-4 py-3 text-xs"> |
417 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> | 417 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> |
418 | Доступно | 418 | Доступно |
419 | </span> | 419 | </span> |
420 | </td> | 420 | </td> |
421 | <td class="px-4 py-3 text-sm"> | 421 | <td class="px-4 py-3 text-sm"> |
422 | сентябрь 2023 | 422 | сентябрь 2023 |
423 | </td> | 423 | </td> |
424 | </tr> | 424 | </tr> |
425 | <tr class="text-gray-700 dark:text-gray-400"> | ||
426 | <td class="px-4 py-3"> | ||
427 | <div class="flex items-center text-sm"> | ||
428 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> | ||
429 | <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> | ||
430 | </div> | ||
431 | <div> | ||
432 | <p class="font-semibold"><a href="{{ route('admin.answers') }}">Модерация</a></p> | ||
433 | <p class="text-xs text-gray-600 dark:text-gray-400"> | ||
434 | Модерация отзывов о работодателе | ||
435 | </p> | ||
436 | </div> | ||
437 | </div> | ||
438 | </td> | ||
439 | <td class="px-4 py-3 text-sm"> | ||
440 | answers | ||
441 | </td> | ||
442 | <td class="px-4 py-3 text-xs"> | ||
443 | <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> | ||
444 | Доступно | ||
445 | </span> | ||
446 | </td> | ||
447 | <td class="px-4 py-3 text-sm"> | ||
448 | сентябрь 2023 | ||
449 | </td> | ||
450 | </tr> | ||
425 | 451 | ||
426 | <!--<tr class="text-gray-700 dark:text-gray-400"> | 452 | <!--<tr class="text-gray-700 dark:text-gray-400"> |
427 | <td class="px-4 py-3"> | 453 | <td class="px-4 py-3"> |
428 | <div class="flex items-center text-sm"> | 454 | <div class="flex items-center text-sm"> |
429 | 455 | ||
430 | <div | 456 | <div |
431 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 457 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
432 | > | 458 | > |
433 | <img | 459 | <img |
434 | class="object-cover w-full h-full rounded-full" | 460 | class="object-cover w-full h-full rounded-full" |
435 | src="https://images.unsplash.com/photo-1551069613-1904dbdcda11?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" | 461 | src="https://images.unsplash.com/photo-1551069613-1904dbdcda11?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" |
436 | alt="" | 462 | alt="" |
437 | loading="lazy" | 463 | loading="lazy" |
438 | /> | 464 | /> |
439 | <div | 465 | <div |
440 | class="absolute inset-0 rounded-full shadow-inner" | 466 | class="absolute inset-0 rounded-full shadow-inner" |
441 | aria-hidden="true" | 467 | aria-hidden="true" |
442 | ></div> | 468 | ></div> |
443 | </div> | 469 | </div> |
444 | <div> | 470 | <div> |
445 | <p class="font-semibold">Sarah Curry</p> | 471 | <p class="font-semibold">Sarah Curry</p> |
446 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 472 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
447 | Designer | 473 | Designer |
448 | </p> | 474 | </p> |
449 | </div> | 475 | </div> |
450 | </div> | 476 | </div> |
451 | </td> | 477 | </td> |
452 | <td class="px-4 py-3 text-sm"> | 478 | <td class="px-4 py-3 text-sm"> |
453 | $ 86.00 | 479 | $ 86.00 |
454 | </td> | 480 | </td> |
455 | <td class="px-4 py-3 text-xs"> | 481 | <td class="px-4 py-3 text-xs"> |
456 | <span | 482 | <span |
457 | class="px-2 py-1 font-semibold leading-tight text-red-700 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-700" | 483 | class="px-2 py-1 font-semibold leading-tight text-red-700 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-700" |
458 | > | 484 | > |
459 | Denied | 485 | Denied |
460 | </span> | 486 | </span> |
461 | </td> | 487 | </td> |
462 | <td class="px-4 py-3 text-sm"> | 488 | <td class="px-4 py-3 text-sm"> |
463 | 6/10/2020 | 489 | 6/10/2020 |
464 | </td> | 490 | </td> |
465 | </tr> | 491 | </tr> |
466 | 492 | ||
467 | <tr class="text-gray-700 dark:text-gray-400"> | 493 | <tr class="text-gray-700 dark:text-gray-400"> |
468 | <td class="px-4 py-3"> | 494 | <td class="px-4 py-3"> |
469 | <div class="flex items-center text-sm"> | 495 | <div class="flex items-center text-sm"> |
470 | 496 | ||
471 | <div | 497 | <div |
472 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 498 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
473 | > | 499 | > |
474 | <img | 500 | <img |
475 | class="object-cover w-full h-full rounded-full" | 501 | class="object-cover w-full h-full rounded-full" |
476 | src="https://images.unsplash.com/photo-1551006917-3b4c078c47c9?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" | 502 | src="https://images.unsplash.com/photo-1551006917-3b4c078c47c9?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" |
477 | alt="" | 503 | alt="" |
478 | loading="lazy" | 504 | loading="lazy" |
479 | /> | 505 | /> |
480 | <div | 506 | <div |
481 | class="absolute inset-0 rounded-full shadow-inner" | 507 | class="absolute inset-0 rounded-full shadow-inner" |
482 | aria-hidden="true" | 508 | aria-hidden="true" |
483 | ></div> | 509 | ></div> |
484 | </div> | 510 | </div> |
485 | <div> | 511 | <div> |
486 | <p class="font-semibold">Rulia Joberts</p> | 512 | <p class="font-semibold">Rulia Joberts</p> |
487 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 513 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
488 | Actress | 514 | Actress |
489 | </p> | 515 | </p> |
490 | </div> | 516 | </div> |
491 | </div> | 517 | </div> |
492 | </td> | 518 | </td> |
493 | <td class="px-4 py-3 text-sm"> | 519 | <td class="px-4 py-3 text-sm"> |
494 | $ 1276.45 | 520 | $ 1276.45 |
495 | </td> | 521 | </td> |
496 | <td class="px-4 py-3 text-xs"> | 522 | <td class="px-4 py-3 text-xs"> |
497 | <span | 523 | <span |
498 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" | 524 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" |
499 | > | 525 | > |
500 | Approved | 526 | Approved |
501 | </span> | 527 | </span> |
502 | </td> | 528 | </td> |
503 | <td class="px-4 py-3 text-sm"> | 529 | <td class="px-4 py-3 text-sm"> |
504 | 6/10/2020 | 530 | 6/10/2020 |
505 | </td> | 531 | </td> |
506 | </tr> | 532 | </tr> |
507 | 533 | ||
508 | <tr class="text-gray-700 dark:text-gray-400"> | 534 | <tr class="text-gray-700 dark:text-gray-400"> |
509 | <td class="px-4 py-3"> | 535 | <td class="px-4 py-3"> |
510 | <div class="flex items-center text-sm"> | 536 | <div class="flex items-center text-sm"> |
511 | 537 | ||
512 | <div | 538 | <div |
513 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 539 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
514 | > | 540 | > |
515 | <img | 541 | <img |
516 | class="object-cover w-full h-full rounded-full" | 542 | class="object-cover w-full h-full rounded-full" |
517 | src="https://images.unsplash.com/photo-1546456073-6712f79251bb?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" | 543 | src="https://images.unsplash.com/photo-1546456073-6712f79251bb?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" |
518 | alt="" | 544 | alt="" |
519 | loading="lazy" | 545 | loading="lazy" |
520 | /> | 546 | /> |
521 | <div | 547 | <div |
522 | class="absolute inset-0 rounded-full shadow-inner" | 548 | class="absolute inset-0 rounded-full shadow-inner" |
523 | aria-hidden="true" | 549 | aria-hidden="true" |
524 | ></div> | 550 | ></div> |
525 | </div> | 551 | </div> |
526 | <div> | 552 | <div> |
527 | <p class="font-semibold">Wenzel Dashington</p> | 553 | <p class="font-semibold">Wenzel Dashington</p> |
528 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 554 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
529 | Actor | 555 | Actor |
530 | </p> | 556 | </p> |
531 | </div> | 557 | </div> |
532 | </div> | 558 | </div> |
533 | </td> | 559 | </td> |
534 | <td class="px-4 py-3 text-sm"> | 560 | <td class="px-4 py-3 text-sm"> |
535 | $ 863.45 | 561 | $ 863.45 |
536 | </td> | 562 | </td> |
537 | <td class="px-4 py-3 text-xs"> | 563 | <td class="px-4 py-3 text-xs"> |
538 | <span | 564 | <span |
539 | class="px-2 py-1 font-semibold leading-tight text-gray-700 bg-gray-100 rounded-full dark:text-gray-100 dark:bg-gray-700" | 565 | class="px-2 py-1 font-semibold leading-tight text-gray-700 bg-gray-100 rounded-full dark:text-gray-100 dark:bg-gray-700" |
540 | > | 566 | > |
541 | Expired | 567 | Expired |
542 | </span> | 568 | </span> |
543 | </td> | 569 | </td> |
544 | <td class="px-4 py-3 text-sm"> | 570 | <td class="px-4 py-3 text-sm"> |
545 | 6/10/2020 | 571 | 6/10/2020 |
546 | </td> | 572 | </td> |
547 | </tr> | 573 | </tr> |
548 | 574 | ||
549 | <tr class="text-gray-700 dark:text-gray-400"> | 575 | <tr class="text-gray-700 dark:text-gray-400"> |
550 | <td class="px-4 py-3"> | 576 | <td class="px-4 py-3"> |
551 | <div class="flex items-center text-sm"> | 577 | <div class="flex items-center text-sm"> |
552 | 578 | ||
553 | <div | 579 | <div |
554 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 580 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
555 | > | 581 | > |
556 | <img | 582 | <img |
557 | class="object-cover w-full h-full rounded-full" | 583 | class="object-cover w-full h-full rounded-full" |
558 | src="https://images.unsplash.com/photo-1502720705749-871143f0e671?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&s=b8377ca9f985d80264279f277f3a67f5" | 584 | src="https://images.unsplash.com/photo-1502720705749-871143f0e671?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&s=b8377ca9f985d80264279f277f3a67f5" |
559 | alt="" | 585 | alt="" |
560 | loading="lazy" | 586 | loading="lazy" |
561 | /> | 587 | /> |
562 | <div | 588 | <div |
563 | class="absolute inset-0 rounded-full shadow-inner" | 589 | class="absolute inset-0 rounded-full shadow-inner" |
564 | aria-hidden="true" | 590 | aria-hidden="true" |
565 | ></div> | 591 | ></div> |
566 | </div> | 592 | </div> |
567 | <div> | 593 | <div> |
568 | <p class="font-semibold">Dave Li</p> | 594 | <p class="font-semibold">Dave Li</p> |
569 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 595 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
570 | Influencer | 596 | Influencer |
571 | </p> | 597 | </p> |
572 | </div> | 598 | </div> |
573 | </div> | 599 | </div> |
574 | </td> | 600 | </td> |
575 | <td class="px-4 py-3 text-sm"> | 601 | <td class="px-4 py-3 text-sm"> |
576 | $ 863.45 | 602 | $ 863.45 |
577 | </td> | 603 | </td> |
578 | <td class="px-4 py-3 text-xs"> | 604 | <td class="px-4 py-3 text-xs"> |
579 | <span | 605 | <span |
580 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" | 606 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" |
581 | > | 607 | > |
582 | Approved | 608 | Approved |
583 | </span> | 609 | </span> |
584 | </td> | 610 | </td> |
585 | <td class="px-4 py-3 text-sm"> | 611 | <td class="px-4 py-3 text-sm"> |
586 | 6/10/2020 | 612 | 6/10/2020 |
587 | </td> | 613 | </td> |
588 | </tr> | 614 | </tr> |
589 | 615 | ||
590 | <tr class="text-gray-700 dark:text-gray-400"> | 616 | <tr class="text-gray-700 dark:text-gray-400"> |
591 | <td class="px-4 py-3"> | 617 | <td class="px-4 py-3"> |
592 | <div class="flex items-center text-sm"> | 618 | <div class="flex items-center text-sm"> |
593 | 619 | ||
594 | <div | 620 | <div |
595 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 621 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
596 | > | 622 | > |
597 | <img | 623 | <img |
598 | class="object-cover w-full h-full rounded-full" | 624 | class="object-cover w-full h-full rounded-full" |
599 | src="https://images.unsplash.com/photo-1531746020798-e6953c6e8e04?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" | 625 | src="https://images.unsplash.com/photo-1531746020798-e6953c6e8e04?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" |
600 | alt="" | 626 | alt="" |
601 | loading="lazy" | 627 | loading="lazy" |
602 | /> | 628 | /> |
603 | <div | 629 | <div |
604 | class="absolute inset-0 rounded-full shadow-inner" | 630 | class="absolute inset-0 rounded-full shadow-inner" |
605 | aria-hidden="true" | 631 | aria-hidden="true" |
606 | ></div> | 632 | ></div> |
607 | </div> | 633 | </div> |
608 | <div> | 634 | <div> |
609 | <p class="font-semibold">Maria Ramovic</p> | 635 | <p class="font-semibold">Maria Ramovic</p> |
610 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 636 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
611 | Runner | 637 | Runner |
612 | </p> | 638 | </p> |
613 | </div> | 639 | </div> |
614 | </div> | 640 | </div> |
615 | </td> | 641 | </td> |
616 | <td class="px-4 py-3 text-sm"> | 642 | <td class="px-4 py-3 text-sm"> |
617 | $ 863.45 | 643 | $ 863.45 |
618 | </td> | 644 | </td> |
619 | <td class="px-4 py-3 text-xs"> | 645 | <td class="px-4 py-3 text-xs"> |
620 | <span | 646 | <span |
621 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" | 647 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" |
622 | > | 648 | > |
623 | Approved | 649 | Approved |
624 | </span> | 650 | </span> |
625 | </td> | 651 | </td> |
626 | <td class="px-4 py-3 text-sm"> | 652 | <td class="px-4 py-3 text-sm"> |
627 | 6/10/2020 | 653 | 6/10/2020 |
628 | </td> | 654 | </td> |
629 | </tr> | 655 | </tr> |
630 | 656 | ||
631 | <tr class="text-gray-700 dark:text-gray-400"> | 657 | <tr class="text-gray-700 dark:text-gray-400"> |
632 | <td class="px-4 py-3"> | 658 | <td class="px-4 py-3"> |
633 | <div class="flex items-center text-sm"> | 659 | <div class="flex items-center text-sm"> |
634 | 660 | ||
635 | <div | 661 | <div |
636 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 662 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
637 | > | 663 | > |
638 | <img | 664 | <img |
639 | class="object-cover w-full h-full rounded-full" | 665 | class="object-cover w-full h-full rounded-full" |
640 | src="https://images.unsplash.com/photo-1566411520896-01e7ca4726af?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" | 666 | src="https://images.unsplash.com/photo-1566411520896-01e7ca4726af?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" |
641 | alt="" | 667 | alt="" |
642 | loading="lazy" | 668 | loading="lazy" |
643 | /> | 669 | /> |
644 | <div | 670 | <div |
645 | class="absolute inset-0 rounded-full shadow-inner" | 671 | class="absolute inset-0 rounded-full shadow-inner" |
646 | aria-hidden="true" | 672 | aria-hidden="true" |
647 | ></div> | 673 | ></div> |
648 | </div> | 674 | </div> |
649 | <div> | 675 | <div> |
650 | <p class="font-semibold">Hitney Wouston</p> | 676 | <p class="font-semibold">Hitney Wouston</p> |
651 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 677 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
652 | Singer | 678 | Singer |
653 | </p> | 679 | </p> |
654 | </div> | 680 | </div> |
655 | </div> | 681 | </div> |
656 | </td> | 682 | </td> |
657 | <td class="px-4 py-3 text-sm"> | 683 | <td class="px-4 py-3 text-sm"> |
658 | $ 863.45 | 684 | $ 863.45 |
659 | </td> | 685 | </td> |
660 | <td class="px-4 py-3 text-xs"> | 686 | <td class="px-4 py-3 text-xs"> |
661 | <span | 687 | <span |
662 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" | 688 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" |
663 | > | 689 | > |
664 | Approved | 690 | Approved |
665 | </span> | 691 | </span> |
666 | </td> | 692 | </td> |
667 | <td class="px-4 py-3 text-sm"> | 693 | <td class="px-4 py-3 text-sm"> |
668 | 6/10/2020 | 694 | 6/10/2020 |
669 | </td> | 695 | </td> |
670 | </tr> | 696 | </tr> |
671 | 697 | ||
672 | <tr class="text-gray-700 dark:text-gray-400"> | 698 | <tr class="text-gray-700 dark:text-gray-400"> |
673 | <td class="px-4 py-3"> | 699 | <td class="px-4 py-3"> |
674 | <div class="flex items-center text-sm"> | 700 | <div class="flex items-center text-sm"> |
675 | 701 | ||
676 | <div | 702 | <div |
677 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 703 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
678 | > | 704 | > |
679 | <img | 705 | <img |
680 | class="object-cover w-full h-full rounded-full" | 706 | class="object-cover w-full h-full rounded-full" |
681 | src="https://images.unsplash.com/flagged/photo-1570612861542-284f4c12e75f?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" | 707 | src="https://images.unsplash.com/flagged/photo-1570612861542-284f4c12e75f?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" |
682 | alt="" | 708 | alt="" |
683 | loading="lazy" | 709 | loading="lazy" |
684 | /> | 710 | /> |
685 | <div | 711 | <div |
686 | class="absolute inset-0 rounded-full shadow-inner" | 712 | class="absolute inset-0 rounded-full shadow-inner" |
687 | aria-hidden="true" | 713 | aria-hidden="true" |
688 | ></div> | 714 | ></div> |
689 | </div> | 715 | </div> |
690 | <div> | 716 | <div> |
691 | <p class="font-semibold">Hans Burger</p> | 717 | <p class="font-semibold">Hans Burger</p> |
692 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 718 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
693 | 10x Developer | 719 | 10x Developer |
694 | </p> | 720 | </p> |
695 | </div> | 721 | </div> |
696 | </div> | 722 | </div> |
697 | </td> | 723 | </td> |
698 | <td class="px-4 py-3 text-sm"> | 724 | <td class="px-4 py-3 text-sm"> |
699 | $ 863.45 | 725 | $ 863.45 |
700 | </td> | 726 | </td> |
701 | <td class="px-4 py-3 text-xs"> | 727 | <td class="px-4 py-3 text-xs"> |
702 | <span | 728 | <span |
703 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" | 729 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" |
704 | > | 730 | > |
705 | Approved | 731 | Approved |
706 | </span> | 732 | </span> |
707 | </td> | 733 | </td> |
708 | <td class="px-4 py-3 text-sm"> | 734 | <td class="px-4 py-3 text-sm"> |
709 | 6/10/2020 | 735 | 6/10/2020 |
710 | </td> | 736 | </td> |
711 | </tr>--> | 737 | </tr>--> |
712 | </tbody> | 738 | </tbody> |
713 | </table> | 739 | </table> |
714 | </div> | 740 | </div> |
715 | </div> | 741 | </div> |
716 | 742 | ||
717 | 743 | ||
718 | <!-- Charts --> | 744 | <!-- Charts --> |
719 | 745 | ||
720 | <!--<h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"> | 746 | <!--<h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"> |
721 | Графики | 747 | Графики |
722 | </h2> | 748 | </h2> |
723 | <div class="grid gap-6 mb-8 md:grid-cols-2"> | 749 | <div class="grid gap-6 mb-8 md:grid-cols-2"> |
724 | <div | 750 | <div |
725 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 751 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
726 | > | 752 | > |
727 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> | 753 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> |
728 | Revenue | 754 | Revenue |
729 | </h4> | 755 | </h4> |
730 | <canvas id="pie"></canvas> | 756 | <canvas id="pie"></canvas> |
731 | <div | 757 | <div |
732 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" | 758 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" |
733 | > | 759 | > |
734 | 760 | ||
735 | <div class="flex items-center"> | 761 | <div class="flex items-center"> |
736 | <span | 762 | <span |
737 | class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full" | 763 | class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full" |
738 | ></span> | 764 | ></span> |
739 | <span>Shirts</span> | 765 | <span>Shirts</span> |
740 | </div> | 766 | </div> |
741 | <div class="flex items-center"> | 767 | <div class="flex items-center"> |
742 | <span | 768 | <span |
743 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" | 769 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" |
744 | ></span> | 770 | ></span> |
745 | <span>Shoes</span> | 771 | <span>Shoes</span> |
746 | </div> | 772 | </div> |
747 | <div class="flex items-center"> | 773 | <div class="flex items-center"> |
748 | <span | 774 | <span |
749 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" | 775 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" |
750 | ></span> | 776 | ></span> |
751 | <span>Bags</span> | 777 | <span>Bags</span> |
752 | </div> | 778 | </div> |
753 | </div> | 779 | </div> |
754 | </div> | 780 | </div> |
755 | <div | 781 | <div |
756 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 782 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
757 | > | 783 | > |
758 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> | 784 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> |
759 | Посещаемость сайта | 785 | Посещаемость сайта |
760 | </h4> | 786 | </h4> |
761 | <canvas id="line"></canvas> | 787 | <canvas id="line"></canvas> |
762 | <div | 788 | <div |
763 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" | 789 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" |
764 | > | 790 | > |
765 | 791 | ||
766 | <div class="flex items-center"> | 792 | <div class="flex items-center"> |
767 | <span | 793 | <span |
768 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" | 794 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" |
769 | ></span> | 795 | ></span> |
770 | <span>Organic</span> | 796 | <span>Organic</span> |
771 | </div> | 797 | </div> |
772 | <div class="flex items-center"> | 798 | <div class="flex items-center"> |
773 | <span | 799 | <span |
774 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" | 800 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" |
775 | ></span> | 801 | ></span> |
776 | <span>Paid</span> | 802 | <span>Paid</span> |
777 | </div> | 803 | </div> |
778 | </div> | 804 | </div> |
779 | </div> | 805 | </div> |
780 | </div>--> | 806 | </div>--> |
781 | 807 | ||
782 | @endsection | 808 | @endsection |
783 | 809 |
resources/views/admin/messages.blade.php
File was created | 1 | @extends('layout.admin', ['title' => 'Админка - Вакансии']) | |
2 | |||
3 | @section('script') | ||
4 | @endsection | ||
5 | |||
6 | @section('search') | ||
7 | <!--<div class="absolute inset-y-0 flex items-center pl-2"> | ||
8 | <svg | ||
9 | class="w-4 h-4" | ||
10 | aria-hidden="true" | ||
11 | fill="currentColor" | ||
12 | viewBox="0 0 20 20" | ||
13 | > | ||
14 | <path | ||
15 | fill-rule="evenodd" | ||
16 | d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z" | ||
17 | clip-rule="evenodd" | ||
18 | ></path> | ||
19 | </svg> | ||
20 | </div> | ||
21 | <form action="" method="POST"> | ||
22 | <div style="float:left;"><input | ||
23 | class="w-full pl-8 pr-2 text-sm text-gray-700 placeholder-gray-600 bg-gray-100 border-0 rounded-md dark:placeholder-gray-500 dark:focus:shadow-outline-gray dark:focus:placeholder-gray-600 dark:bg-gray-700 dark:text-gray-200 focus:placeholder-gray-500 focus:bg-white focus:border-purple-300 focus:outline-none focus:shadow-outline-purple form-input" | ||
24 | style="width: 400px" | ||
25 | type="text" | ||
26 | placeholder="Искать компанию или вакансию" | ||
27 | aria-label="Search" | ||
28 | /></div> | ||
29 | <div style="float: left"> | ||
30 | <button type="submit" class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">Поиск</button> | ||
31 | </div> | ||
32 | </form>--> | ||
33 | @endsection | ||
34 | |||
35 | @section('content') | ||
36 | <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block"> | ||
37 | <div class="w-full overflow-x-auto"> | ||
38 | <table class="w-full whitespace-no-wrap"> | ||
39 | <thead> | ||
40 | <tr | ||
41 | class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800" | ||
42 | > | ||
43 | <th class="px-4 py-3">№</th> | ||
44 | <th class="px-4 py-3">От юзера</th> | ||
45 | <th class="px-4 py-3">К юзеру</th> | ||
46 | <th class="px-4 py-3">Заголовок</th> | ||
47 | <th class="px-4 py-3">Отклик</th> | ||
48 | <th class="px-4 py-3">Дата</th> | ||
49 | </tr> | ||
50 | </thead> | ||
51 | <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> | ||
52 | @foreach($Msgs as $msg) | ||
53 | <tr class="text-gray-700 dark:text-gray-400"> | ||
54 | <td class="px-4 py-3"> | ||
55 | {{$msg->id}} | ||
56 | </td> | ||
57 | <td class="px-4 py-3"> | ||
58 | {{$msg->user_from->name}} ({{$msg->user_from->id}}) | ||
59 | </td> | ||
60 | <td class="px-4 py-3"> | ||
61 | {{$msg->user_to->name}} ({{$msg->user_to->id}}) | ||
62 | </td> | ||
63 | <td class="px-4 py-3"> | ||
64 | {{$msg->title}} | ||
65 | </td> | ||
66 | <td class="px-4 py-3"> | ||
67 | <div class="flex items-center text-sm"> | ||
68 | <div> | ||
69 | @if ($msg->response->count()) | ||
70 | Да | ||
71 | @else | ||
72 | Нет | ||
73 | @endif | ||
74 | </div> | ||
75 | </div> | ||
76 | </td> | ||
77 | <td class="px-4 py-3 text-sm"> | ||
78 | {{ $msg->created_at }} | ||
79 | </td> | ||
80 | </tr> | ||
81 | @endforeach | ||
82 | </tbody> | ||
83 | </table> | ||
84 | </div> | ||
85 | |||
86 | <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800"> | ||
87 | <?=$Msgs->appends($_GET)->links('admin.pagginate'); ?> | ||
88 | </div> | ||
89 | </div> | ||
90 | @endsection | ||
91 |
resources/views/layout/admin.blade.php
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html :class="{ 'theme-dark': dark }" x-data="data()" lang="{{ str_replace('_', '-', app()->getLocale()) }}"> | 2 | <html :class="{ 'theme-dark': dark }" x-data="data()" lang="{{ str_replace('_', '-', app()->getLocale()) }}"> |
3 | <head> | 3 | <head> |
4 | <meta charset="UTF-8" /> | 4 | <meta charset="UTF-8" /> |
5 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | 5 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
6 | <title>{{$title}}</title> | 6 | <title>{{$title}}</title> |
7 | <link | 7 | <link |
8 | href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" | 8 | href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" |
9 | rel="stylesheet" | 9 | rel="stylesheet" |
10 | /> | 10 | /> |
11 | <link rel="stylesheet" href="{{ asset('./assets/css/tailwind.output.css')}}" /> | 11 | <link rel="stylesheet" href="{{ asset('./assets/css/tailwind.output.css')}}" /> |
12 | <script | 12 | <script |
13 | src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js" | 13 | src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js" |
14 | defer | 14 | defer |
15 | ></script> | 15 | ></script> |
16 | <script src="{{ asset('./assets/js/init-alpine.js') }}"></script> | 16 | <script src="{{ asset('./assets/js/init-alpine.js') }}"></script> |
17 | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"/> | 17 | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"/> |
18 | <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js" defer></script> | 18 | <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js" defer></script> |
19 | <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> | 19 | <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> |
20 | <script src="{{ asset('./assets/js/charts-lines.js') }}" defer></script> | 20 | <script src="{{ asset('./assets/js/charts-lines.js') }}" defer></script> |
21 | <script src="{{ asset('./assets/js/charts-pie.js') }}" defer></script> | 21 | <script src="{{ asset('./assets/js/charts-pie.js') }}" defer></script> |
22 | </head> | 22 | </head> |
23 | <body> | 23 | <body> |
24 | <div class="flex h-screen bg-gray-50 dark:bg-gray-900" :class="{ 'overflow-hidden': isSideMenuOpen }"> | 24 | <div class="flex h-screen bg-gray-50 dark:bg-gray-900" :class="{ 'overflow-hidden': isSideMenuOpen }"> |
25 | <!-- Desktop sidebar --> | 25 | <!-- Desktop sidebar --> |
26 | <aside | 26 | <aside |
27 | class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0" | 27 | class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0" |
28 | > | 28 | > |
29 | <div class="py-4 text-gray-500 dark:text-gray-400"> | 29 | <div class="py-4 text-gray-500 dark:text-gray-400"> |
30 | <a class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" | 30 | <a class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" |
31 | href="{{ route('admin.index') }}"> | 31 | href="{{ route('admin.index') }}"> |
32 | Админка | 32 | Админка |
33 | </a> | 33 | </a> |
34 | <ul class="mt-6"> | 34 | <ul class="mt-6"> |
35 | <li class="relative px-6 py-3"> | 35 | <li class="relative px-6 py-3"> |
36 | <span | 36 | <span |
37 | class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" | 37 | class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" |
38 | aria-hidden="true" | 38 | aria-hidden="true" |
39 | ></span> | 39 | ></span> |
40 | <a | 40 | <a |
41 | class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100" | 41 | class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100" |
42 | href="{{ route('admin.index') }}" | 42 | href="{{ route('admin.index') }}" |
43 | > | 43 | > |
44 | <svg | 44 | <svg |
45 | class="w-5 h-5" | 45 | class="w-5 h-5" |
46 | aria-hidden="true" | 46 | aria-hidden="true" |
47 | fill="none" | 47 | fill="none" |
48 | stroke-linecap="round" | 48 | stroke-linecap="round" |
49 | stroke-linejoin="round" | 49 | stroke-linejoin="round" |
50 | stroke-width="2" | 50 | stroke-width="2" |
51 | viewBox="0 0 24 24" | 51 | viewBox="0 0 24 24" |
52 | stroke="currentColor" | 52 | stroke="currentColor" |
53 | > | 53 | > |
54 | <path | 54 | <path |
55 | d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" | 55 | d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" |
56 | ></path> | 56 | ></path> |
57 | </svg> | 57 | </svg> |
58 | <span class="ml-4">Главная страница</span> | 58 | <span class="ml-4">Главная страница</span> |
59 | </a> | 59 | </a> |
60 | </li> | 60 | </li> |
61 | </ul> | 61 | </ul> |
62 | <ul> | 62 | <ul> |
63 | <li class="relative px-6 py-3"> | 63 | <li class="relative px-6 py-3"> |
64 | <a | 64 | <a |
65 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 65 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
66 | href="{{ route('admin.users') }}" | 66 | href="{{ route('admin.users') }}" |
67 | > | 67 | > |
68 | <svg | 68 | <svg |
69 | class="w-5 h-5" | 69 | class="w-5 h-5" |
70 | aria-hidden="true" | 70 | aria-hidden="true" |
71 | fill="none" | 71 | fill="none" |
72 | stroke-linecap="round" | 72 | stroke-linecap="round" |
73 | stroke-linejoin="round" | 73 | stroke-linejoin="round" |
74 | stroke-width="2" | 74 | stroke-width="2" |
75 | viewBox="0 0 24 24" | 75 | viewBox="0 0 24 24" |
76 | stroke="currentColor" | 76 | stroke="currentColor" |
77 | > | 77 | > |
78 | <path | 78 | <path |
79 | d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" | 79 | d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" |
80 | ></path> | 80 | ></path> |
81 | </svg> | 81 | </svg> |
82 | <span class="ml-4">Пользователи</span> | 82 | <span class="ml-4">Пользователи</span> |
83 | </a> | 83 | </a> |
84 | </li> | 84 | </li> |
85 | <li class="relative px-6 py-3"> | 85 | <li class="relative px-6 py-3"> |
86 | <a | 86 | <a |
87 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 87 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
88 | href="{{ route('admin.employers') }}" | 88 | href="{{ route('admin.employers') }}" |
89 | > | 89 | > |
90 | <svg | 90 | <svg |
91 | class="w-5 h-5" | 91 | class="w-5 h-5" |
92 | aria-hidden="true" | 92 | aria-hidden="true" |
93 | fill="none" | 93 | fill="none" |
94 | stroke-linecap="round" | 94 | stroke-linecap="round" |
95 | stroke-linejoin="round" | 95 | stroke-linejoin="round" |
96 | stroke-width="2" | 96 | stroke-width="2" |
97 | viewBox="0 0 24 24" | 97 | viewBox="0 0 24 24" |
98 | stroke="currentColor" | 98 | stroke="currentColor" |
99 | > | 99 | > |
100 | <path | 100 | <path |
101 | d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10" | 101 | d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10" |
102 | ></path> | 102 | ></path> |
103 | </svg> | 103 | </svg> |
104 | <span class="ml-4">Работодатели</span> | 104 | <span class="ml-4">Работодатели</span> |
105 | </a> | 105 | </a> |
106 | </li> | 106 | </li> |
107 | <li class="relative px-6 py-3"> | 107 | <li class="relative px-6 py-3"> |
108 | <a | 108 | <a |
109 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 109 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
110 | href="{{ route('admin.workers') }}" | 110 | href="{{ route('admin.workers') }}" |
111 | > | 111 | > |
112 | <svg | 112 | <svg |
113 | class="w-5 h-5" | 113 | class="w-5 h-5" |
114 | aria-hidden="true" | 114 | aria-hidden="true" |
115 | fill="none" | 115 | fill="none" |
116 | stroke-linecap="round" | 116 | stroke-linecap="round" |
117 | stroke-linejoin="round" | 117 | stroke-linejoin="round" |
118 | stroke-width="2" | 118 | stroke-width="2" |
119 | viewBox="0 0 24 24" | 119 | viewBox="0 0 24 24" |
120 | stroke="currentColor" | 120 | stroke="currentColor" |
121 | > | 121 | > |
122 | <path | 122 | <path |
123 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" | 123 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" |
124 | ></path> | 124 | ></path> |
125 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> | 125 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> |
126 | </svg> | 126 | </svg> |
127 | <span class="ml-4">Соискатели</span> | 127 | <span class="ml-4">Соискатели</span> |
128 | </a> | 128 | </a> |
129 | </li> | 129 | </li> |
130 | <li class="relative px-6 py-3"> | 130 | <li class="relative px-6 py-3"> |
131 | <a | 131 | <a |
132 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 132 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
133 | href="{{ route('admin.ad-employers') }}" | 133 | href="{{ route('admin.ad-employers') }}" |
134 | > | 134 | > |
135 | <svg | 135 | <svg |
136 | class="w-5 h-5" | 136 | class="w-5 h-5" |
137 | aria-hidden="true" | 137 | aria-hidden="true" |
138 | fill="none" | 138 | fill="none" |
139 | stroke-linecap="round" | 139 | stroke-linecap="round" |
140 | stroke-linejoin="round" | 140 | stroke-linejoin="round" |
141 | stroke-width="2" | 141 | stroke-width="2" |
142 | viewBox="0 0 24 24" | 142 | viewBox="0 0 24 24" |
143 | stroke="currentColor" | 143 | stroke="currentColor" |
144 | > | 144 | > |
145 | <path | 145 | <path |
146 | d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122" | 146 | d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122" |
147 | ></path> | 147 | ></path> |
148 | </svg> | 148 | </svg> |
149 | <span class="ml-4">Вакансии</span> | 149 | <span class="ml-4">Вакансии</span> |
150 | </a> | 150 | </a> |
151 | </li> | 151 | </li> |
152 | 152 | ||
153 | <li class="relative px-6 py-3"> | 153 | <li class="relative px-6 py-3"> |
154 | <a | 154 | <a |
155 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 155 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
156 | href="{{ route('admin.messages') }}" | 156 | href="{{ route('admin.messages') }}" |
157 | > | 157 | > |
158 | <svg | 158 | <svg |
159 | class="w-5 h-5" | 159 | class="w-5 h-5" |
160 | aria-hidden="true" | 160 | aria-hidden="true" |
161 | fill="none" | 161 | fill="none" |
162 | stroke-linecap="round" | 162 | stroke-linecap="round" |
163 | stroke-linejoin="round" | 163 | stroke-linejoin="round" |
164 | stroke-width="2" | 164 | stroke-width="2" |
165 | viewBox="0 0 24 24" | 165 | viewBox="0 0 24 24" |
166 | stroke="currentColor" | 166 | stroke="currentColor" |
167 | > | 167 | > |
168 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 168 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
169 | </svg> | 169 | </svg> |
170 | <span class="ml-4">Сообщения</span> | 170 | <span class="ml-4">Сообщения</span> |
171 | </a> | 171 | </a> |
172 | </li> | 172 | </li> |
173 | <li class="relative px-6 py-3"> | 173 | <li class="relative px-6 py-3"> |
174 | <a | 174 | <a |
175 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 175 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
176 | href="{{ route('admin.groups') }}" | 176 | href="{{ route('admin.groups') }}" |
177 | > | 177 | > |
178 | <svg | 178 | <svg |
179 | class="w-5 h-5" | 179 | class="w-5 h-5" |
180 | aria-hidden="true" | 180 | aria-hidden="true" |
181 | fill="none" | 181 | fill="none" |
182 | stroke-linecap="round" | 182 | stroke-linecap="round" |
183 | stroke-linejoin="round" | 183 | stroke-linejoin="round" |
184 | stroke-width="2" | 184 | stroke-width="2" |
185 | viewBox="0 0 24 24" | 185 | viewBox="0 0 24 24" |
186 | stroke="currentColor" | 186 | stroke="currentColor" |
187 | > | 187 | > |
188 | <path | 188 | <path |
189 | d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" | 189 | d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" |
190 | ></path> | 190 | ></path> |
191 | </svg> | 191 | </svg> |
192 | <span class="ml-4">Группы пользователей</span> | 192 | <span class="ml-4">Группы пользователей</span> |
193 | </a> | 193 | </a> |
194 | </li> | 194 | </li> |
195 | <li class="relative px-6 py-3"> | 195 | <li class="relative px-6 py-3"> |
196 | <a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 196 | <a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
197 | href="{{ route('admin.roles') }}"> | 197 | href="{{ route('admin.roles') }}"> |
198 | <svg | 198 | <svg |
199 | class="w-5 h-5" | 199 | class="w-5 h-5" |
200 | aria-hidden="true" | 200 | aria-hidden="true" |
201 | fill="none" | 201 | fill="none" |
202 | stroke-linecap="round" | 202 | stroke-linecap="round" |
203 | stroke-linejoin="round" | 203 | stroke-linejoin="round" |
204 | stroke-width="2" | 204 | stroke-width="2" |
205 | viewBox="0 0 24 24" | 205 | viewBox="0 0 24 24" |
206 | stroke="currentColor" | 206 | stroke="currentColor" |
207 | > | 207 | > |
208 | <path | 208 | <path |
209 | d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" | 209 | d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" |
210 | ></path> | 210 | ></path> |
211 | </svg> | 211 | </svg> |
212 | <span class="ml-4">Роли пользователей</span> | 212 | <span class="ml-4">Роли пользователей</span> |
213 | </a> | 213 | </a> |
214 | </li> | 214 | </li> |
215 | <li class="relative px-6 py-3"> | 215 | <li class="relative px-6 py-3"> |
216 | <a | 216 | <a |
217 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 217 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
218 | href="{{ route('admin.statics') }}" | 218 | href="{{ route('admin.statics') }}" |
219 | > | 219 | > |
220 | <svg | 220 | <svg |
221 | class="w-5 h-5" | 221 | class="w-5 h-5" |
222 | aria-hidden="true" | 222 | aria-hidden="true" |
223 | fill="none" | 223 | fill="none" |
224 | stroke-linecap="round" | 224 | stroke-linecap="round" |
225 | stroke-linejoin="round" | 225 | stroke-linejoin="round" |
226 | stroke-width="2" | 226 | stroke-width="2" |
227 | viewBox="0 0 24 24" | 227 | viewBox="0 0 24 24" |
228 | stroke="currentColor" | 228 | stroke="currentColor" |
229 | > | 229 | > |
230 | <path | 230 | <path |
231 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" | 231 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" |
232 | ></path> | 232 | ></path> |
233 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> | 233 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> |
234 | </svg> | 234 | </svg> |
235 | <span class="ml-4">Статистика</span> | 235 | <span class="ml-4">Статистика</span> |
236 | </a> | 236 | </a> |
237 | </li> | 237 | </li> |
238 | <li class="relative px-6 py-3"> | ||
239 | <a | ||
240 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | ||
241 | href="{{ route('admin.answers') }}" | ||
242 | > | ||
243 | <svg | ||
244 | class="w-5 h-5" | ||
245 | aria-hidden="true" | ||
246 | fill="none" | ||
247 | stroke-linecap="round" | ||
248 | stroke-linejoin="round" | ||
249 | stroke-width="2" | ||
250 | viewBox="0 0 24 24" | ||
251 | stroke="currentColor" | ||
252 | > | ||
253 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | ||
254 | </svg> | ||
255 | <span class="ml-4">Модерация</span> | ||
256 | </a> | ||
257 | </li> | ||
238 | <!-- Справочники --> | 258 | <!-- Справочники --> |
239 | <li class="relative px-6 py-3" x-data="{ open1: false }"> | 259 | <li class="relative px-6 py-3" x-data="{ open1: false }"> |
240 | <button | 260 | <button |
241 | class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 261 | class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
242 | @click="open1=!open1" | 262 | @click="open1=!open1" |
243 | aria-haspopup="true"> | 263 | aria-haspopup="true"> |
244 | <span class="inline-flex items-center"> | 264 | <span class="inline-flex items-center"> |
245 | <svg | 265 | <svg |
246 | class="w-5 h-5" | 266 | class="w-5 h-5" |
247 | aria-hidden="true" | 267 | aria-hidden="true" |
248 | fill="none" | 268 | fill="none" |
249 | stroke-linecap="round" | 269 | stroke-linecap="round" |
250 | stroke-linejoin="round" | 270 | stroke-linejoin="round" |
251 | stroke-width="2" | 271 | stroke-width="2" |
252 | viewBox="0 0 24 24" | 272 | viewBox="0 0 24 24" |
253 | stroke="currentColor"> | 273 | stroke="currentColor"> |
254 | <path | 274 | <path |
255 | d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z" | 275 | d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z" |
256 | ></path> | 276 | ></path> |
257 | </svg> | 277 | </svg> |
258 | <span class="ml-4">Справочники</span> | 278 | <span class="ml-4">Справочники</span> |
259 | </span> | 279 | </span> |
260 | <svg | 280 | <svg |
261 | class="w-4 h-4" | 281 | class="w-4 h-4" |
262 | aria-hidden="true" | 282 | aria-hidden="true" |
263 | fill="currentColor" | 283 | fill="currentColor" |
264 | viewBox="0 0 20 20" | 284 | viewBox="0 0 20 20" |
265 | > | 285 | > |
266 | <path | 286 | <path |
267 | fill-rule="evenodd" | 287 | fill-rule="evenodd" |
268 | d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" | 288 | d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" |
269 | clip-rule="evenodd" | 289 | clip-rule="evenodd" |
270 | ></path> | 290 | ></path> |
271 | </svg> | 291 | </svg> |
272 | </button> | 292 | </button> |
273 | <template x-if="open1"> | 293 | <template x-if="open1"> |
274 | <ul | 294 | <ul |
275 | x-transition:enter="transition-all ease-in-out duration-300" | 295 | x-transition:enter="transition-all ease-in-out duration-300" |
276 | x-transition:enter-start="opacity-25 max-h-0" | 296 | x-transition:enter-start="opacity-25 max-h-0" |
277 | x-transition:enter-end="opacity-100 max-h-xl" | 297 | x-transition:enter-end="opacity-100 max-h-xl" |
278 | x-transition:leave="transition-all ease-in-out duration-300" | 298 | x-transition:leave="transition-all ease-in-out duration-300" |
279 | x-transition:leave-start="opacity-100 max-h-xl" | 299 | x-transition:leave-start="opacity-100 max-h-xl" |
280 | x-transition:leave-end="opacity-0 max-h-0" | 300 | x-transition:leave-end="opacity-0 max-h-0" |
281 | class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900" | 301 | class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900" |
282 | aria-label="submenu" | 302 | aria-label="submenu" |
283 | > | 303 | > |
284 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 304 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
285 | <a class="w-full" href="{{ route('admin.job-titles') }}">Должности</a> | 305 | <a class="w-full" href="{{ route('admin.job-titles') }}">Должности</a> |
286 | </li> | 306 | </li> |
287 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 307 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
288 | <a class="w-full" href="{{ route('admin.categories.index') }}">Категории</a> | 308 | <a class="w-full" href="{{ route('admin.categories.index') }}">Категории</a> |
289 | </li> | 309 | </li> |
290 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 310 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
291 | <a class="w-full" href="{{ route('admin.infobloks') }}">Блоки-Дипломы</a> | 311 | <a class="w-full" href="{{ route('admin.infobloks') }}">Блоки-Дипломы</a> |
292 | </li> | 312 | </li> |
293 | 313 | ||
294 | </ul> | 314 | </ul> |
295 | </template> | 315 | </template> |
296 | </li> | 316 | </li> |
297 | 317 | ||
298 | 318 | ||
299 | <!-- Редактор --> | 319 | <!-- Редактор --> |
300 | <li class="relative px-6 py-3"> | 320 | <li class="relative px-6 py-3"> |
301 | <button | 321 | <button |
302 | class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 322 | class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
303 | @click="togglePagesMenu" | 323 | @click="togglePagesMenu" |
304 | aria-haspopup="true"> | 324 | aria-haspopup="true"> |
305 | <span class="inline-flex items-center"> | 325 | <span class="inline-flex items-center"> |
306 | <svg | 326 | <svg |
307 | class="w-5 h-5" | 327 | class="w-5 h-5" |
308 | aria-hidden="true" | 328 | aria-hidden="true" |
309 | fill="none" | 329 | fill="none" |
310 | stroke-linecap="round" | 330 | stroke-linecap="round" |
311 | stroke-linejoin="round" | 331 | stroke-linejoin="round" |
312 | stroke-width="2" | 332 | stroke-width="2" |
313 | viewBox="0 0 24 24" | 333 | viewBox="0 0 24 24" |
314 | stroke="currentColor"> | 334 | stroke="currentColor"> |
315 | <path | 335 | <path |
316 | d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z" | 336 | d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z" |
317 | ></path> | 337 | ></path> |
318 | </svg> | 338 | </svg> |
319 | <span class="ml-4">Редактор</span> | 339 | <span class="ml-4">Редактор</span> |
320 | </span> | 340 | </span> |
321 | <svg | 341 | <svg |
322 | class="w-4 h-4" | 342 | class="w-4 h-4" |
323 | aria-hidden="true" | 343 | aria-hidden="true" |
324 | fill="currentColor" | 344 | fill="currentColor" |
325 | viewBox="0 0 20 20" | 345 | viewBox="0 0 20 20" |
326 | > | 346 | > |
327 | <path | 347 | <path |
328 | fill-rule="evenodd" | 348 | fill-rule="evenodd" |
329 | d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" | 349 | d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" |
330 | clip-rule="evenodd" | 350 | clip-rule="evenodd" |
331 | ></path> | 351 | ></path> |
332 | </svg> | 352 | </svg> |
333 | </button> | 353 | </button> |
334 | <template x-if="isPagesMenuOpen"> | 354 | <template x-if="isPagesMenuOpen"> |
335 | <ul | 355 | <ul |
336 | x-transition:enter="transition-all ease-in-out duration-300" | 356 | x-transition:enter="transition-all ease-in-out duration-300" |
337 | x-transition:enter-start="opacity-25 max-h-0" | 357 | x-transition:enter-start="opacity-25 max-h-0" |
338 | x-transition:enter-end="opacity-100 max-h-xl" | 358 | x-transition:enter-end="opacity-100 max-h-xl" |
339 | x-transition:leave="transition-all ease-in-out duration-300" | 359 | x-transition:leave="transition-all ease-in-out duration-300" |
340 | x-transition:leave-start="opacity-100 max-h-xl" | 360 | x-transition:leave-start="opacity-100 max-h-xl" |
341 | x-transition:leave-end="opacity-0 max-h-0" | 361 | x-transition:leave-end="opacity-0 max-h-0" |
342 | class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900" | 362 | class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900" |
343 | aria-label="submenu" | 363 | aria-label="submenu" |
344 | > | 364 | > |
345 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 365 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
346 | <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> | 366 | <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> |
347 | </li> | 367 | </li> |
348 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 368 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
349 | <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> | 369 | <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> |
350 | </li> | 370 | </li> |
351 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 371 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
352 | <a class="w-full" href="{{ route('admin.reclames') }}">Реклама</a> | 372 | <a class="w-full" href="{{ route('admin.reclames') }}">Реклама</a> |
353 | </li> | 373 | </li> |
354 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 374 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
355 | <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> | 375 | <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> |
356 | </li> | 376 | </li> |
357 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 377 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
358 | <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> | 378 | <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> |
359 | </li> | 379 | </li> |
360 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 380 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
361 | <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> | 381 | <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> |
362 | </li> | 382 | </li> |
363 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 383 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
364 | <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> | 384 | <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> |
365 | </li> | 385 | </li> |
366 | </ul> | 386 | </ul> |
367 | </template> | 387 | </template> |
368 | </li> | 388 | </li> |
369 | 389 | ||
370 | </ul> | 390 | </ul> |
371 | <!--<div class="px-6 my-6"> | 391 | <!--<div class="px-6 my-6"> |
372 | <button | 392 | <button |
373 | class="flex items-center justify-between w-full px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" | 393 | class="flex items-center justify-between w-full px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" |
374 | > | 394 | > |
375 | Create account | 395 | Create account |
376 | <span class="ml-2" aria-hidden="true">+</span> | 396 | <span class="ml-2" aria-hidden="true">+</span> |
377 | </button> | 397 | </button> |
378 | </div>--> | 398 | </div>--> |
379 | </div> | 399 | </div> |
380 | </aside> | 400 | </aside> |
381 | <!-- Mobile sidebar --> | 401 | <!-- Mobile sidebar --> |
382 | <!-- Backdrop --> | 402 | <!-- Backdrop --> |
383 | <div | 403 | <div |
384 | x-show="isSideMenuOpen" | 404 | x-show="isSideMenuOpen" |
385 | x-transition:enter="transition ease-in-out duration-150" | 405 | x-transition:enter="transition ease-in-out duration-150" |
386 | x-transition:enter-start="opacity-0" | 406 | x-transition:enter-start="opacity-0" |
387 | x-transition:enter-end="opacity-100" | 407 | x-transition:enter-end="opacity-100" |
388 | x-transition:leave="transition ease-in-out duration-150" | 408 | x-transition:leave="transition ease-in-out duration-150" |
389 | x-transition:leave-start="opacity-100" | 409 | x-transition:leave-start="opacity-100" |
390 | x-transition:leave-end="opacity-0" | 410 | x-transition:leave-end="opacity-0" |
391 | class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center" | 411 | class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center" |
392 | ></div> | 412 | ></div> |
393 | <aside | 413 | <aside |
394 | class="fixed inset-y-0 z-20 flex-shrink-0 w-64 mt-16 overflow-y-auto bg-white dark:bg-gray-800 md:hidden" | 414 | class="fixed inset-y-0 z-20 flex-shrink-0 w-64 mt-16 overflow-y-auto bg-white dark:bg-gray-800 md:hidden" |
395 | x-show="isSideMenuOpen" | 415 | x-show="isSideMenuOpen" |
396 | x-transition:enter="transition ease-in-out duration-150" | 416 | x-transition:enter="transition ease-in-out duration-150" |
397 | x-transition:enter-start="opacity-0 transform -translate-x-20" | 417 | x-transition:enter-start="opacity-0 transform -translate-x-20" |
398 | x-transition:enter-end="opacity-100" | 418 | x-transition:enter-end="opacity-100" |
399 | x-transition:leave="transition ease-in-out duration-150" | 419 | x-transition:leave="transition ease-in-out duration-150" |
400 | x-transition:leave-start="opacity-100" | 420 | x-transition:leave-start="opacity-100" |
401 | x-transition:leave-end="opacity-0 transform -translate-x-20" | 421 | x-transition:leave-end="opacity-0 transform -translate-x-20" |
402 | @click.away="closeSideMenu" | 422 | @click.away="closeSideMenu" |
403 | @keydown.escape="closeSideMenu" | 423 | @keydown.escape="closeSideMenu" |
404 | > | 424 | > |
405 | <div class="py-4 text-gray-500 dark:text-gray-400"> | 425 | <div class="py-4 text-gray-500 dark:text-gray-400"> |
406 | <a | 426 | <a |
407 | class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" | 427 | class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" |
408 | href="{{ route('admin.index') }}" | 428 | href="{{ route('admin.index') }}" |
409 | > | 429 | > |
410 | Админка | 430 | Админка |
411 | </a> | 431 | </a> |
412 | <ul class="mt-6"> | 432 | <ul class="mt-6"> |
413 | <li class="relative px-6 py-3"> | 433 | <li class="relative px-6 py-3"> |
414 | <span | 434 | <span |
415 | class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" | 435 | class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" |
416 | aria-hidden="true" | 436 | aria-hidden="true" |
417 | ></span> | 437 | ></span> |
418 | <a | 438 | <a |
419 | class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100" | 439 | class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100" |
420 | href="{{ route('admin.index') }}" | 440 | href="{{ route('admin.index') }}" |
421 | > | 441 | > |
422 | <svg | 442 | <svg |
423 | class="w-5 h-5" | 443 | class="w-5 h-5" |
424 | aria-hidden="true" | 444 | aria-hidden="true" |
425 | fill="none" | 445 | fill="none" |
426 | stroke-linecap="round" | 446 | stroke-linecap="round" |
427 | stroke-linejoin="round" | 447 | stroke-linejoin="round" |
428 | stroke-width="2" | 448 | stroke-width="2" |
429 | viewBox="0 0 24 24" | 449 | viewBox="0 0 24 24" |
430 | stroke="currentColor" | 450 | stroke="currentColor" |
431 | > | 451 | > |
432 | <path | 452 | <path |
433 | d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" | 453 | d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" |
434 | ></path> | 454 | ></path> |
435 | </svg> | 455 | </svg> |
436 | <span class="ml-4">Главная страница</span> | 456 | <span class="ml-4">Главная страница</span> |
437 | </a> | 457 | </a> |
438 | </li> | 458 | </li> |
439 | </ul> | 459 | </ul> |
440 | <ul> | 460 | <ul> |
441 | <li class="relative px-6 py-3"> | 461 | <li class="relative px-6 py-3"> |
442 | <a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 462 | <a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
443 | href="{{ route('admin.users') }}"> | 463 | href="{{ route('admin.users') }}"> |
444 | <svg | 464 | <svg |
445 | class="w-5 h-5" | 465 | class="w-5 h-5" |
446 | aria-hidden="true" | 466 | aria-hidden="true" |
447 | fill="none" | 467 | fill="none" |
448 | stroke-linecap="round" | 468 | stroke-linecap="round" |
449 | stroke-linejoin="round" | 469 | stroke-linejoin="round" |
450 | stroke-width="2" | 470 | stroke-width="2" |
451 | viewBox="0 0 24 24" | 471 | viewBox="0 0 24 24" |
452 | stroke="currentColor" | 472 | stroke="currentColor" |
453 | > | 473 | > |
454 | <path | 474 | <path |
455 | d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" | 475 | d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" |
456 | ></path> | 476 | ></path> |
457 | </svg> | 477 | </svg> |
458 | <span class="ml-4">Пользователи</span> | 478 | <span class="ml-4">Пользователи</span> |
459 | </a> | 479 | </a> |
460 | </li> | 480 | </li> |
461 | <li class="relative px-6 py-3"> | 481 | <li class="relative px-6 py-3"> |
462 | <a | 482 | <a |
463 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 483 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
464 | href="{{ route('admin.employers') }}" | 484 | href="{{ route('admin.employers') }}" |
465 | > | 485 | > |
466 | <svg | 486 | <svg |
467 | class="w-5 h-5" | 487 | class="w-5 h-5" |
468 | aria-hidden="true" | 488 | aria-hidden="true" |
469 | fill="none" | 489 | fill="none" |
470 | stroke-linecap="round" | 490 | stroke-linecap="round" |
471 | stroke-linejoin="round" | 491 | stroke-linejoin="round" |
472 | stroke-width="2" | 492 | stroke-width="2" |
473 | viewBox="0 0 24 24" | 493 | viewBox="0 0 24 24" |
474 | stroke="currentColor" | 494 | stroke="currentColor" |
475 | > | 495 | > |
476 | <path | 496 | <path |
477 | d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10" | 497 | d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10" |
478 | ></path> | 498 | ></path> |
479 | </svg> | 499 | </svg> |
480 | <span class="ml-4">Работодатели</span> | 500 | <span class="ml-4">Работодатели</span> |
481 | </a> | 501 | </a> |
482 | </li> | 502 | </li> |
483 | <li class="relative px-6 py-3"> | 503 | <li class="relative px-6 py-3"> |
484 | <a | 504 | <a |
485 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 505 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
486 | href="{{ route('admin.workers') }}" | 506 | href="{{ route('admin.workers') }}" |
487 | > | 507 | > |
488 | <svg | 508 | <svg |
489 | class="w-5 h-5" | 509 | class="w-5 h-5" |
490 | aria-hidden="true" | 510 | aria-hidden="true" |
491 | fill="none" | 511 | fill="none" |
492 | stroke-linecap="round" | 512 | stroke-linecap="round" |
493 | stroke-linejoin="round" | 513 | stroke-linejoin="round" |
494 | stroke-width="2" | 514 | stroke-width="2" |
495 | viewBox="0 0 24 24" | 515 | viewBox="0 0 24 24" |
496 | stroke="currentColor" | 516 | stroke="currentColor" |
497 | > | 517 | > |
498 | <path | 518 | <path |
499 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" | 519 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" |
500 | ></path> | 520 | ></path> |
501 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> | 521 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> |
502 | </svg> | 522 | </svg> |
503 | <span class="ml-4">Соискатели</span> | 523 | <span class="ml-4">Соискатели</span> |
504 | </a> | 524 | </a> |
505 | </li> | 525 | </li> |
506 | <li class="relative px-6 py-3"> | 526 | <li class="relative px-6 py-3"> |
507 | <a | 527 | <a |
508 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 528 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
509 | href="{{ route('admin.ad-employers') }}" | 529 | href="{{ route('admin.ad-employers') }}" |
510 | > | 530 | > |
511 | <svg | 531 | <svg |
512 | class="w-5 h-5" | 532 | class="w-5 h-5" |
513 | aria-hidden="true" | 533 | aria-hidden="true" |
514 | fill="none" | 534 | fill="none" |
515 | stroke-linecap="round" | 535 | stroke-linecap="round" |
516 | stroke-linejoin="round" | 536 | stroke-linejoin="round" |
517 | stroke-width="2" | 537 | stroke-width="2" |
518 | viewBox="0 0 24 24" | 538 | viewBox="0 0 24 24" |
519 | stroke="currentColor" | 539 | stroke="currentColor" |
520 | > | 540 | > |
521 | <path | 541 | <path |
522 | d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122" | 542 | d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122" |
523 | ></path> | 543 | ></path> |
524 | </svg> | 544 | </svg> |
525 | <span class="ml-4">Вакансии</span> | 545 | <span class="ml-4">Вакансии</span> |
526 | </a> | 546 | </a> |
527 | </li> | 547 | </li> |
528 | <li class="relative px-6 py-3"> | 548 | <li class="relative px-6 py-3"> |
529 | <a | 549 | <a |
530 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 550 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
531 | href="{{ route('admin.messages') }}" | 551 | href="{{ route('admin.messages') }}" |
532 | > | 552 | > |
533 | <svg | 553 | <svg |
534 | class="w-5 h-5" | 554 | class="w-5 h-5" |
535 | aria-hidden="true" | 555 | aria-hidden="true" |
536 | fill="none" | 556 | fill="none" |
537 | stroke-linecap="round" | 557 | stroke-linecap="round" |
538 | stroke-linejoin="round" | 558 | stroke-linejoin="round" |
539 | stroke-width="2" | 559 | stroke-width="2" |
540 | viewBox="0 0 24 24" | 560 | viewBox="0 0 24 24" |
541 | stroke="currentColor" | 561 | stroke="currentColor" |
542 | > | 562 | > |
543 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 563 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
544 | </svg> | 564 | </svg> |
545 | <span class="ml-4">Сообщения</span> | 565 | <span class="ml-4">Сообщения</span> |
546 | </a> | 566 | </a> |
547 | </li> | 567 | </li> |
548 | <li class="relative px-6 py-3"> | 568 | <li class="relative px-6 py-3"> |
549 | <a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 569 | <a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
550 | href="{{ route('admin.groups') }}"> | 570 | href="{{ route('admin.groups') }}"> |
551 | <svg | 571 | <svg |
552 | class="w-5 h-5" | 572 | class="w-5 h-5" |
553 | aria-hidden="true" | 573 | aria-hidden="true" |
554 | fill="none" | 574 | fill="none" |
555 | stroke-linecap="round" | 575 | stroke-linecap="round" |
556 | stroke-linejoin="round" | 576 | stroke-linejoin="round" |
557 | stroke-width="2" | 577 | stroke-width="2" |
558 | viewBox="0 0 24 24" | 578 | viewBox="0 0 24 24" |
559 | stroke="currentColor" | 579 | stroke="currentColor" |
560 | > | 580 | > |
561 | <path | 581 | <path |
562 | d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" | 582 | d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" |
563 | ></path> | 583 | ></path> |
564 | </svg> | 584 | </svg> |
565 | <span class="ml-4">Группы пользователей</span> | 585 | <span class="ml-4">Группы пользователей</span> |
566 | </a> | 586 | </a> |
567 | </li> | 587 | </li> |
568 | <li class="relative px-6 py-3"> | 588 | <li class="relative px-6 py-3"> |
569 | <a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 589 | <a class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
570 | href="{{ route('admin.roles') }}"> | 590 | href="{{ route('admin.roles') }}"> |
571 | <svg | 591 | <svg |
572 | class="w-5 h-5" | 592 | class="w-5 h-5" |
573 | aria-hidden="true" | 593 | aria-hidden="true" |
574 | fill="none" | 594 | fill="none" |
575 | stroke-linecap="round" | 595 | stroke-linecap="round" |
576 | stroke-linejoin="round" | 596 | stroke-linejoin="round" |
577 | stroke-width="2" | 597 | stroke-width="2" |
578 | viewBox="0 0 24 24" | 598 | viewBox="0 0 24 24" |
579 | stroke="currentColor" | 599 | stroke="currentColor" |
580 | > | 600 | > |
581 | <path | 601 | <path |
582 | d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" | 602 | d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" |
583 | ></path> | 603 | ></path> |
584 | </svg> | 604 | </svg> |
585 | <span class="ml-4">Роли пользователей</span> | 605 | <span class="ml-4">Роли пользователей</span> |
586 | </a> | 606 | </a> |
587 | </li> | 607 | </li> |
588 | <li class="relative px-6 py-3"> | 608 | <li class="relative px-6 py-3"> |
589 | <a | 609 | <a |
590 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 610 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
591 | href="{{ route('admin.statics') }}" | 611 | href="{{ route('admin.statics') }}" |
592 | > | 612 | > |
593 | <svg | 613 | <svg |
594 | class="w-5 h-5" | 614 | class="w-5 h-5" |
595 | aria-hidden="true" | 615 | aria-hidden="true" |
596 | fill="none" | 616 | fill="none" |
597 | stroke-linecap="round" | 617 | stroke-linecap="round" |
598 | stroke-linejoin="round" | 618 | stroke-linejoin="round" |
599 | stroke-width="2" | 619 | stroke-width="2" |
600 | viewBox="0 0 24 24" | 620 | viewBox="0 0 24 24" |
601 | stroke="currentColor" | 621 | stroke="currentColor" |
602 | > | 622 | > |
603 | <path | 623 | <path |
604 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" | 624 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" |
605 | ></path> | 625 | ></path> |
606 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> | 626 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> |
607 | </svg> | 627 | </svg> |
608 | <span class="ml-4">Статистика</span> | 628 | <span class="ml-4">Статистика</span> |
609 | </a> | 629 | </a> |
610 | </li> | 630 | </li> |
631 | <li class="relative px-6 py-3"> | ||
632 | <a | ||
633 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | ||
634 | href="{{ route('admin.messages') }}" | ||
635 | > | ||
636 | <svg | ||
637 | class="w-5 h-5" | ||
638 | aria-hidden="true" | ||
639 | fill="none" | ||
640 | stroke-linecap="round" | ||
641 | stroke-linejoin="round" | ||
642 | stroke-width="2" | ||
643 | viewBox="0 0 24 24" | ||
644 | stroke="currentColor" | ||
645 | > | ||
646 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | ||
647 | </svg> | ||
648 | <span class="ml-4">Сообщения</span> | ||
649 | </a> | ||
650 | </li> | ||
611 | <!-- Справочники --> | 651 | <!-- Справочники --> |
612 | <li class="relative px-6 py-3" x-data="{ open2: false }"> | 652 | <li class="relative px-6 py-3" x-data="{ open2: false }"> |
613 | <button | 653 | <button |
614 | class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 654 | class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
615 | @click="open2=!open2" | 655 | @click="open2=!open2" |
616 | aria-haspopup="true"> | 656 | aria-haspopup="true"> |
617 | <span class="inline-flex items-center"> | 657 | <span class="inline-flex items-center"> |
618 | <svg | 658 | <svg |
619 | class="w-5 h-5" | 659 | class="w-5 h-5" |
620 | aria-hidden="true" | 660 | aria-hidden="true" |
621 | fill="none" | 661 | fill="none" |
622 | stroke-linecap="round" | 662 | stroke-linecap="round" |
623 | stroke-linejoin="round" | 663 | stroke-linejoin="round" |
624 | stroke-width="2" | 664 | stroke-width="2" |
625 | viewBox="0 0 24 24" | 665 | viewBox="0 0 24 24" |
626 | stroke="currentColor"> | 666 | stroke="currentColor"> |
627 | <path | 667 | <path |
628 | d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z" | 668 | d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z" |
629 | ></path> | 669 | ></path> |
630 | </svg> | 670 | </svg> |
631 | <span class="ml-4">Справочники</span> | 671 | <span class="ml-4">Справочники</span> |
632 | </span> | 672 | </span> |
633 | <svg | 673 | <svg |
634 | class="w-4 h-4" | 674 | class="w-4 h-4" |
635 | aria-hidden="true" | 675 | aria-hidden="true" |
636 | fill="currentColor" | 676 | fill="currentColor" |
637 | viewBox="0 0 20 20" | 677 | viewBox="0 0 20 20" |
638 | > | 678 | > |
639 | <path | 679 | <path |
640 | fill-rule="evenodd" | 680 | fill-rule="evenodd" |
641 | d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" | 681 | d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" |
642 | clip-rule="evenodd" | 682 | clip-rule="evenodd" |
643 | ></path> | 683 | ></path> |
644 | </svg> | 684 | </svg> |
645 | </button> | 685 | </button> |
646 | <template x-if="open2"> | 686 | <template x-if="open2"> |
647 | <ul | 687 | <ul |
648 | x-transition:enter="transition-all ease-in-out duration-300" | 688 | x-transition:enter="transition-all ease-in-out duration-300" |
649 | x-transition:enter-start="opacity-25 max-h-0" | 689 | x-transition:enter-start="opacity-25 max-h-0" |
650 | x-transition:enter-end="opacity-100 max-h-xl" | 690 | x-transition:enter-end="opacity-100 max-h-xl" |
651 | x-transition:leave="transition-all ease-in-out duration-300" | 691 | x-transition:leave="transition-all ease-in-out duration-300" |
652 | x-transition:leave-start="opacity-100 max-h-xl" | 692 | x-transition:leave-start="opacity-100 max-h-xl" |
653 | x-transition:leave-end="opacity-0 max-h-0" | 693 | x-transition:leave-end="opacity-0 max-h-0" |
654 | class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900" | 694 | class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900" |
655 | aria-label="submenu" | 695 | aria-label="submenu" |
656 | > | 696 | > |
657 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 697 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
658 | <a class="w-full" href="{{ route('admin.job-titles') }}">Должности</a> | 698 | <a class="w-full" href="{{ route('admin.job-titles') }}">Должности</a> |
659 | </li> | 699 | </li> |
660 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 700 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
661 | <a class="w-full" href="{{ route('admin.categories.index') }}">Категории</a> | 701 | <a class="w-full" href="{{ route('admin.categories.index') }}">Категории</a> |
662 | </li> | 702 | </li> |
663 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 703 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
664 | <a class="w-full" href="{{ route('admin.infobloks') }}">Блоки-Дипломы</a> | 704 | <a class="w-full" href="{{ route('admin.infobloks') }}">Блоки-Дипломы</a> |
665 | </li> | 705 | </li> |
666 | 706 | ||
667 | </ul> | 707 | </ul> |
668 | </template> | 708 | </template> |
669 | </li> | 709 | </li> |
670 | 710 | ||
671 | 711 | ||
672 | <!-- Редактор --> | 712 | <!-- Редактор --> |
673 | <li class="relative px-6 py-3"> | 713 | <li class="relative px-6 py-3"> |
674 | <button | 714 | <button |
675 | class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 715 | class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" |
676 | @click="togglePagesMenu" | 716 | @click="togglePagesMenu" |
677 | aria-haspopup="true" | 717 | aria-haspopup="true" |
678 | > | 718 | > |
679 | <span class="inline-flex items-center"> | 719 | <span class="inline-flex items-center"> |
680 | <svg | 720 | <svg |
681 | class="w-5 h-5" | 721 | class="w-5 h-5" |
682 | aria-hidden="true" | 722 | aria-hidden="true" |
683 | fill="none" | 723 | fill="none" |
684 | stroke-linecap="round" | 724 | stroke-linecap="round" |
685 | stroke-linejoin="round" | 725 | stroke-linejoin="round" |
686 | stroke-width="2" | 726 | stroke-width="2" |
687 | viewBox="0 0 24 24" | 727 | viewBox="0 0 24 24" |
688 | stroke="currentColor" | 728 | stroke="currentColor" |
689 | > | 729 | > |
690 | <path | 730 | <path |
691 | d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z" | 731 | d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z" |
692 | ></path> | 732 | ></path> |
693 | </svg> | 733 | </svg> |
694 | <span class="ml-4">Редактор</span> | 734 | <span class="ml-4">Редактор</span> |
695 | </span> | 735 | </span> |
696 | <svg | 736 | <svg |
697 | class="w-4 h-4" | 737 | class="w-4 h-4" |
698 | aria-hidden="true" | 738 | aria-hidden="true" |
699 | fill="currentColor" | 739 | fill="currentColor" |
700 | viewBox="0 0 20 20" | 740 | viewBox="0 0 20 20" |
701 | > | 741 | > |
702 | <path | 742 | <path |
703 | fill-rule="evenodd" | 743 | fill-rule="evenodd" |
704 | d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" | 744 | d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" |
705 | clip-rule="evenodd" | 745 | clip-rule="evenodd" |
706 | ></path> | 746 | ></path> |
707 | </svg> | 747 | </svg> |
708 | </button> | 748 | </button> |
709 | <template x-if="isPagesMenuOpen"> | 749 | <template x-if="isPagesMenuOpen"> |
710 | <ul | 750 | <ul |
711 | x-transition:enter="transition-all ease-in-out duration-300" | 751 | x-transition:enter="transition-all ease-in-out duration-300" |
712 | x-transition:enter-start="opacity-25 max-h-0" | 752 | x-transition:enter-start="opacity-25 max-h-0" |
713 | x-transition:enter-end="opacity-100 max-h-xl" | 753 | x-transition:enter-end="opacity-100 max-h-xl" |
714 | x-transition:leave="transition-all ease-in-out duration-300" | 754 | x-transition:leave="transition-all ease-in-out duration-300" |
715 | x-transition:leave-start="opacity-100 max-h-xl" | 755 | x-transition:leave-start="opacity-100 max-h-xl" |
716 | x-transition:leave-end="opacity-0 max-h-0" | 756 | x-transition:leave-end="opacity-0 max-h-0" |
717 | class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900" | 757 | class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900" |
718 | aria-label="submenu" | 758 | aria-label="submenu" |
719 | > | 759 | > |
720 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 760 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
721 | <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> | 761 | <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> |
722 | </li> | 762 | </li> |
723 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 763 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
724 | <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> | 764 | <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> |
725 | </li> | 765 | </li> |
726 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 766 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
727 | <a class="w-full" href="{{ route('admin.reclames') }}">Реклама</a> | 767 | <a class="w-full" href="{{ route('admin.reclames') }}">Реклама</a> |
728 | </li> | 768 | </li> |
729 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 769 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
730 | <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> | 770 | <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> |
731 | </li> | 771 | </li> |
732 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 772 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
733 | <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> | 773 | <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> |
734 | </li> | 774 | </li> |
735 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 775 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
736 | <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> | 776 | <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> |
737 | </li> | 777 | </li> |
738 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> | 778 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> |
739 | <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> | 779 | <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> |
740 | </li> | 780 | </li> |
741 | 781 | ||
742 | </ul> | 782 | </ul> |
743 | </template> | 783 | </template> |
744 | </li> | 784 | </li> |
745 | </ul> | 785 | </ul> |
746 | <!--<div class="px-6 my-6"> | 786 | <!--<div class="px-6 my-6"> |
747 | <button class="flex items-center justify-between px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | 787 | <button class="flex items-center justify-between px-4 py-2 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-lg active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> |
748 | Create account | 788 | Create account |
749 | <span class="ml-2" aria-hidden="true">+</span> | 789 | <span class="ml-2" aria-hidden="true">+</span> |
750 | </button> | 790 | </button> |
751 | </div>--> | 791 | </div>--> |
752 | </div> | 792 | </div> |
753 | </aside> | 793 | </aside> |
754 | <div class="flex flex-col flex-1 w-full"> | 794 | <div class="flex flex-col flex-1 w-full"> |
755 | <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800"> | 795 | <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800"> |
756 | <div | 796 | <div |
757 | class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300" | 797 | class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300" |
758 | > | 798 | > |
759 | <!-- Mobile hamburger --> | 799 | <!-- Mobile hamburger --> |
760 | <button | 800 | <button |
761 | class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple" | 801 | class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple" |
762 | @click="toggleSideMenu" | 802 | @click="toggleSideMenu" |
763 | aria-label="Menu" | 803 | aria-label="Menu" |
764 | > | 804 | > |
765 | <svg | 805 | <svg |
766 | class="w-6 h-6" | 806 | class="w-6 h-6" |
767 | aria-hidden="true" | 807 | aria-hidden="true" |
768 | fill="currentColor" | 808 | fill="currentColor" |
769 | viewBox="0 0 20 20" | 809 | viewBox="0 0 20 20" |
770 | > | 810 | > |
771 | <path | 811 | <path |
772 | fill-rule="evenodd" | 812 | fill-rule="evenodd" |
773 | d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z" | 813 | d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z" |
774 | clip-rule="evenodd" | 814 | clip-rule="evenodd" |
775 | ></path> | 815 | ></path> |
776 | </svg> | 816 | </svg> |
777 | </button> | 817 | </button> |
778 | <!-- Search input --> | 818 | <!-- Search input --> |
779 | <div class="flex justify-center flex-1 lg:mr-32"> | 819 | <div class="flex justify-center flex-1 lg:mr-32"> |
780 | <div | 820 | <div |
781 | class="relative w-full max-w-xl mr-6 focus-within:text-purple-500" | 821 | class="relative w-full max-w-xl mr-6 focus-within:text-purple-500" |
782 | > | 822 | > |
783 | 823 | ||
784 | @yield('search') | 824 | @yield('search') |
785 | </div> | 825 | </div> |
786 | </div> | 826 | </div> |
787 | <ul class="flex items-center flex-shrink-0 space-x-6"> | 827 | <ul class="flex items-center flex-shrink-0 space-x-6"> |
788 | <!-- Theme toggler --> | 828 | <!-- Theme toggler --> |
789 | <li class="flex"> | 829 | <li class="flex"> |
790 | <button | 830 | <button |
791 | class="rounded-md focus:outline-none focus:shadow-outline-purple" | 831 | class="rounded-md focus:outline-none focus:shadow-outline-purple" |
792 | @click="toggleTheme" | 832 | @click="toggleTheme" |
793 | aria-label="Toggle color mode" | 833 | aria-label="Toggle color mode" |
794 | > | 834 | > |
795 | <template x-if="!dark"> | 835 | <template x-if="!dark"> |
796 | <svg | 836 | <svg |
797 | class="w-5 h-5" | 837 | class="w-5 h-5" |
798 | aria-hidden="true" | 838 | aria-hidden="true" |
799 | fill="currentColor" | 839 | fill="currentColor" |
800 | viewBox="0 0 20 20" | 840 | viewBox="0 0 20 20" |
801 | > | 841 | > |
802 | <path | 842 | <path |
803 | d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z" | 843 | d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z" |
804 | ></path> | 844 | ></path> |
805 | </svg> | 845 | </svg> |
806 | </template> | 846 | </template> |
807 | <template x-if="dark"> | 847 | <template x-if="dark"> |
808 | <svg | 848 | <svg |
809 | class="w-5 h-5" | 849 | class="w-5 h-5" |
810 | aria-hidden="true" | 850 | aria-hidden="true" |
811 | fill="currentColor" | 851 | fill="currentColor" |
812 | viewBox="0 0 20 20" | 852 | viewBox="0 0 20 20" |
813 | > | 853 | > |
814 | <path | 854 | <path |
815 | fill-rule="evenodd" | 855 | fill-rule="evenodd" |
816 | d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z" | 856 | d="M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z" |
817 | clip-rule="evenodd" | 857 | clip-rule="evenodd" |
818 | ></path> | 858 | ></path> |
819 | </svg> | 859 | </svg> |
820 | </template> | 860 | </template> |
821 | </button> | 861 | </button> |
822 | </li> | 862 | </li> |
823 | <!-- Notifications menu --> | 863 | <!-- Notifications menu --> |
824 | <li class="relative"> | 864 | <li class="relative"> |
825 | <button | 865 | <button |
826 | class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple" | 866 | class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple" |
827 | @click="toggleNotificationsMenu" | 867 | @click="toggleNotificationsMenu" |
828 | @keydown.escape="closeNotificationsMenu" | 868 | @keydown.escape="closeNotificationsMenu" |
829 | aria-label="Notifications" | 869 | aria-label="Notifications" |
830 | aria-haspopup="true" | 870 | aria-haspopup="true" |
831 | > | 871 | > |
832 | <svg | 872 | <svg |
833 | class="w-5 h-5" | 873 | class="w-5 h-5" |
834 | aria-hidden="true" | 874 | aria-hidden="true" |
835 | fill="currentColor" | 875 | fill="currentColor" |
836 | viewBox="0 0 20 20" | 876 | viewBox="0 0 20 20" |
837 | > | 877 | > |
838 | <path | 878 | <path |
839 | d="M10 2a6 6 0 00-6 6v3.586l-.707.707A1 1 0 004 14h12a1 1 0 00.707-1.707L16 11.586V8a6 6 0 00-6-6zM10 18a3 3 0 01-3-3h6a3 3 0 01-3 3z" | 879 | d="M10 2a6 6 0 00-6 6v3.586l-.707.707A1 1 0 004 14h12a1 1 0 00.707-1.707L16 11.586V8a6 6 0 00-6-6zM10 18a3 3 0 01-3-3h6a3 3 0 01-3 3z" |
840 | ></path> | 880 | ></path> |
841 | </svg> | 881 | </svg> |
842 | <!-- Notification badge --> | 882 | <!-- Notification badge --> |
843 | <span | 883 | <span |
844 | aria-hidden="true" | 884 | aria-hidden="true" |
845 | class="absolute top-0 right-0 inline-block w-3 h-3 transform translate-x-1 -translate-y-1 bg-red-600 border-2 border-white rounded-full dark:border-gray-800" | 885 | class="absolute top-0 right-0 inline-block w-3 h-3 transform translate-x-1 -translate-y-1 bg-red-600 border-2 border-white rounded-full dark:border-gray-800" |
846 | ></span> | 886 | ></span> |
847 | </button> | 887 | </button> |
848 | <template x-if="isNotificationsMenuOpen"> | 888 | <template x-if="isNotificationsMenuOpen"> |
849 | <ul | 889 | <ul |
850 | x-transition:leave="transition ease-in duration-150" | 890 | x-transition:leave="transition ease-in duration-150" |
851 | x-transition:leave-start="opacity-100" | 891 | x-transition:leave-start="opacity-100" |
852 | x-transition:leave-end="opacity-0" | 892 | x-transition:leave-end="opacity-0" |
853 | @click.away="closeNotificationsMenu" | 893 | @click.away="closeNotificationsMenu" |
854 | @keydown.escape="closeNotificationsMenu" | 894 | @keydown.escape="closeNotificationsMenu" |
855 | class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:text-gray-300 dark:border-gray-700 dark:bg-gray-700" | 895 | class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:text-gray-300 dark:border-gray-700 dark:bg-gray-700" |
856 | > | 896 | > |
857 | <li class="flex"> | 897 | <li class="flex"> |
858 | <a | 898 | <a |
859 | class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200" | 899 | class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200" |
860 | href="#" | 900 | href="#" |
861 | > | 901 | > |
862 | <span>Сообщения</span> | 902 | <span>Сообщения</span> |
863 | <span | 903 | <span |
864 | class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600" | 904 | class="inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-red-600 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-600" |
865 | > | 905 | > |
866 | 13 | 906 | 13 |
867 | </span> | 907 | </span> |
868 | </a> | 908 | </a> |
869 | </li> | 909 | </li> |
870 | <li class="flex"> | 910 | <li class="flex"> |
871 | <a | 911 | <a |
872 | class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200" | 912 | class="inline-flex items-center justify-between w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200" |
873 | href="#" | 913 | href="#" |
874 | > | 914 | > |
875 | <span>Логи</span> | 915 | <span>Логи</span> |
876 | </a> | 916 | </a> |
877 | </li> | 917 | </li> |
878 | </ul> | 918 | </ul> |
879 | </template> | 919 | </template> |
880 | </li> | 920 | </li> |
881 | <!-- Profile menu --> | 921 | <!-- Profile menu --> |
882 | <li class="relative"> | 922 | <li class="relative"> |
883 | <button | 923 | <button |
884 | class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none" | 924 | class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none" |
885 | @click="toggleProfileMenu" | 925 | @click="toggleProfileMenu" |
886 | @keydown.escape="closeProfileMenu" | 926 | @keydown.escape="closeProfileMenu" |
887 | aria-label="Account" | 927 | aria-label="Account" |
888 | aria-haspopup="true" | 928 | aria-haspopup="true" |
889 | > | 929 | > |
890 | <img | 930 | <img |
891 | class="object-cover w-8 h-8 rounded-full" | 931 | class="object-cover w-8 h-8 rounded-full" |
892 | src="{{ asset('assets/img/profile.jpg') }}" | 932 | src="{{ asset('assets/img/profile.jpg') }}" |
893 | alt="" | 933 | alt="" |
894 | aria-hidden="true" | 934 | aria-hidden="true" |
895 | /> | 935 | /> |
896 | </button> | 936 | </button> |
897 | <template x-if="isProfileMenuOpen"> | 937 | <template x-if="isProfileMenuOpen"> |
898 | <ul | 938 | <ul |
899 | x-transition:leave="transition ease-in duration-150" | 939 | x-transition:leave="transition ease-in duration-150" |
900 | x-transition:leave-start="opacity-100" | 940 | x-transition:leave-start="opacity-100" |
901 | x-transition:leave-end="opacity-0" | 941 | x-transition:leave-end="opacity-0" |
902 | @click.away="closeProfileMenu" | 942 | @click.away="closeProfileMenu" |
903 | @keydown.escape="closeProfileMenu" | 943 | @keydown.escape="closeProfileMenu" |
904 | class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:border-gray-700 dark:text-gray-300 dark:bg-gray-700" | 944 | class="absolute right-0 w-56 p-2 mt-2 space-y-2 text-gray-600 bg-white border border-gray-100 rounded-md shadow-md dark:border-gray-700 dark:text-gray-300 dark:bg-gray-700" |
905 | aria-label="submenu" | 945 | aria-label="submenu" |
906 | > | 946 | > |
907 | <li class="flex"> | 947 | <li class="flex"> |
908 | <a | 948 | <a |
909 | class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200" | 949 | class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200" |
910 | href="{{ route('admin.profile') }}" | 950 | href="{{ route('admin.profile') }}" |
911 | > | 951 | > |
912 | <svg | 952 | <svg |
913 | class="w-4 h-4 mr-3" | 953 | class="w-4 h-4 mr-3" |
914 | aria-hidden="true" | 954 | aria-hidden="true" |
915 | fill="none" | 955 | fill="none" |
916 | stroke-linecap="round" | 956 | stroke-linecap="round" |
917 | stroke-linejoin="round" | 957 | stroke-linejoin="round" |
918 | stroke-width="2" | 958 | stroke-width="2" |
919 | viewBox="0 0 24 24" | 959 | viewBox="0 0 24 24" |
920 | stroke="currentColor" | 960 | stroke="currentColor" |
921 | > | 961 | > |
922 | <path | 962 | <path |
923 | d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" | 963 | d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" |
924 | ></path> | 964 | ></path> |
925 | </svg> | 965 | </svg> |
926 | <span>Профиль</span> | 966 | <span>Профиль</span> |
927 | </a> | 967 | </a> |
928 | </li> | 968 | </li> |
929 | <li class="flex"> | 969 | <li class="flex"> |
930 | <a | 970 | <a |
931 | class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200" | 971 | class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200" |
932 | href="{{ route('admin.config') }}" | 972 | href="{{ route('admin.config') }}" |
933 | > | 973 | > |
934 | <svg | 974 | <svg |
935 | class="w-4 h-4 mr-3" | 975 | class="w-4 h-4 mr-3" |
936 | aria-hidden="true" | 976 | aria-hidden="true" |
937 | fill="none" | 977 | fill="none" |
938 | stroke-linecap="round" | 978 | stroke-linecap="round" |
939 | stroke-linejoin="round" | 979 | stroke-linejoin="round" |
940 | stroke-width="2" | 980 | stroke-width="2" |
941 | viewBox="0 0 24 24" | 981 | viewBox="0 0 24 24" |
942 | stroke="currentColor" | 982 | stroke="currentColor" |
943 | > | 983 | > |
944 | <path | 984 | <path |
945 | d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" | 985 | d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" |
946 | ></path> | 986 | ></path> |
947 | <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path> | 987 | <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path> |
948 | </svg> | 988 | </svg> |
949 | <span>Настройки</span> | 989 | <span>Настройки</span> |
950 | </a> | 990 | </a> |
951 | </li> | 991 | </li> |
952 | <li class="flex"> | 992 | <li class="flex"> |
953 | <a | 993 | <a |
954 | class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200" | 994 | class="inline-flex items-center w-full px-2 py-1 text-sm font-semibold transition-colors duration-150 rounded-md hover:bg-gray-100 hover:text-gray-800 dark:hover:bg-gray-800 dark:hover:text-gray-200" |
955 | href="{{ route('admin.logout') }}" | 995 | href="{{ route('admin.logout') }}" |
956 | > | 996 | > |
957 | <svg | 997 | <svg |
958 | class="w-4 h-4 mr-3" | 998 | class="w-4 h-4 mr-3" |
959 | aria-hidden="true" | 999 | aria-hidden="true" |
960 | fill="none" | 1000 | fill="none" |
961 | stroke-linecap="round" | 1001 | stroke-linecap="round" |
962 | stroke-linejoin="round" | 1002 | stroke-linejoin="round" |
963 | stroke-width="2" | 1003 | stroke-width="2" |
964 | viewBox="0 0 24 24" | 1004 | viewBox="0 0 24 24" |
965 | stroke="currentColor" | 1005 | stroke="currentColor" |
966 | > | 1006 | > |
967 | <path | 1007 | <path |
968 | d="M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1" | 1008 | d="M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1" |
969 | ></path> | 1009 | ></path> |
970 | </svg> | 1010 | </svg> |
971 | <span>Выход</span> | 1011 | <span>Выход</span> |
972 | </a> | 1012 | </a> |
973 | </li> | 1013 | </li> |
974 | </ul> | 1014 | </ul> |
975 | </template> | 1015 | </template> |
976 | </li> | 1016 | </li> |
977 | </ul> | 1017 | </ul> |
978 | </div> | 1018 | </div> |
979 | </header> | 1019 | </header> |
980 | <main class="h-full overflow-y-auto"> | 1020 | <main class="h-full overflow-y-auto"> |
981 | <div class="container px-6 mx-auto grid"> | 1021 | <div class="container px-6 mx-auto grid"> |
982 | <h2 | 1022 | <h2 |
983 | class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200" | 1023 | class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200" |
984 | > | 1024 | > |
985 | {{$title}} | 1025 | {{$title}} |
986 | </h2> | 1026 | </h2> |
987 | <!-- CTA --> | 1027 | <!-- CTA --> |
988 | <a | 1028 | <a |
989 | class="flex items-center justify-between p-4 mb-8 text-sm font-semibold text-purple-100 bg-purple-600 rounded-lg shadow-md focus:outline-none focus:shadow-outline-purple" | 1029 | class="flex items-center justify-between p-4 mb-8 text-sm font-semibold text-purple-100 bg-purple-600 rounded-lg shadow-md focus:outline-none focus:shadow-outline-purple" |
990 | href="{{ route('admin.admin-users') }}" | 1030 | href="{{ route('admin.admin-users') }}" |
991 | > | 1031 | > |
992 | <div class="flex items-center"> | 1032 | <div class="flex items-center"> |
993 | <svg | 1033 | <svg |
994 | class="w-5 h-5 mr-2" | 1034 | class="w-5 h-5 mr-2" |
995 | fill="currentColor" | 1035 | fill="currentColor" |
996 | viewBox="0 0 20 20" | 1036 | viewBox="0 0 20 20" |
997 | > | 1037 | > |
998 | <path | 1038 | <path |
999 | d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z" | 1039 | d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z" |
1000 | ></path> | 1040 | ></path> |
1001 | </svg> | 1041 | </svg> |
1002 | <span>Вход в админку только для пользователей-админов</span> | 1042 | <span>Вход в админку только для пользователей-админов</span> |
1003 | </div> | 1043 | </div> |
1004 | <span>Список админов →</span> | 1044 | <span>Список админов →</span> |
1005 | </a> | 1045 | </a> |
1006 | 1046 | ||
1007 | @if ($message = Session::get('success')) | 1047 | @if ($message = Session::get('success')) |
1008 | <section> | 1048 | <section> |
1009 | <div class="alert alert-success alert-dismissible mt-0" role="alert"> | 1049 | <div class="alert alert-success alert-dismissible mt-0" role="alert"> |
1010 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> | 1050 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> |
1011 | <span aria-hidden="true">×</span> | 1051 | <span aria-hidden="true">×</span> |
1012 | </button> | 1052 | </button> |
1013 | {{ $message }} | 1053 | {{ $message }} |
1014 | </div> | 1054 | </div> |
1015 | </section> | 1055 | </section> |
1016 | @endif | 1056 | @endif |
1017 | 1057 | ||
1018 | @if ($errors->any()) | 1058 | @if ($errors->any()) |
1019 | <section> | 1059 | <section> |
1020 | <div class="alert alert-danger alert-dismissible mt-4" role="alert"> | 1060 | <div class="alert alert-danger alert-dismissible mt-4" role="alert"> |
1021 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> | 1061 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> |
1022 | <span aria-hidden="true">×</span> | 1062 | <span aria-hidden="true">×</span> |
1023 | </button> | 1063 | </button> |
1024 | <ul class="mb-0"> | 1064 | <ul class="mb-0"> |
1025 | @foreach ($errors->all() as $error) | 1065 | @foreach ($errors->all() as $error) |
1026 | <li>{{ $error }}</li> | 1066 | <li>{{ $error }}</li> |
1027 | @endforeach | 1067 | @endforeach |
1028 | </ul> | 1068 | </ul> |
1029 | </div> | 1069 | </div> |
1030 | </section> | 1070 | </section> |
1031 | @endif | 1071 | @endif |
1032 | 1072 | ||
1033 | @yield('content') | 1073 | @yield('content') |
1034 | 1074 | ||
1035 | <!-- Cards | 1075 | <!-- Cards |
1036 | <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4"> | 1076 | <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4"> |
1037 | 1077 | ||
1038 | <div | 1078 | <div |
1039 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1079 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1040 | > | 1080 | > |
1041 | <div | 1081 | <div |
1042 | class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500" | 1082 | class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500" |
1043 | > | 1083 | > |
1044 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 1084 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
1045 | <path | 1085 | <path |
1046 | d="M13 6a3 3 0 11-6 0 3 3 0 016 0zM18 8a2 2 0 11-4 0 2 2 0 014 0zM14 15a4 4 0 00-8 0v3h8v-3zM6 8a2 2 0 11-4 0 2 2 0 014 0zM16 18v-3a5.972 5.972 0 00-.75-2.906A3.005 3.005 0 0119 15v3h-3zM4.75 12.094A5.973 5.973 0 004 15v3H1v-3a3 3 0 013.75-2.906z" | 1086 | d="M13 6a3 3 0 11-6 0 3 3 0 016 0zM18 8a2 2 0 11-4 0 2 2 0 014 0zM14 15a4 4 0 00-8 0v3h8v-3zM6 8a2 2 0 11-4 0 2 2 0 014 0zM16 18v-3a5.972 5.972 0 00-.75-2.906A3.005 3.005 0 0119 15v3h-3zM4.75 12.094A5.973 5.973 0 004 15v3H1v-3a3 3 0 013.75-2.906z" |
1047 | ></path> | 1087 | ></path> |
1048 | </svg> | 1088 | </svg> |
1049 | </div> | 1089 | </div> |
1050 | <div> | 1090 | <div> |
1051 | <p | 1091 | <p |
1052 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" | 1092 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" |
1053 | > | 1093 | > |
1054 | Total clients | 1094 | Total clients |
1055 | </p> | 1095 | </p> |
1056 | <p | 1096 | <p |
1057 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" | 1097 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" |
1058 | > | 1098 | > |
1059 | 6389 | 1099 | 6389 |
1060 | </p> | 1100 | </p> |
1061 | </div> | 1101 | </div> |
1062 | </div> | 1102 | </div> |
1063 | 1103 | ||
1064 | <div | 1104 | <div |
1065 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1105 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1066 | > | 1106 | > |
1067 | <div | 1107 | <div |
1068 | class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500" | 1108 | class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500" |
1069 | > | 1109 | > |
1070 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 1110 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
1071 | <path | 1111 | <path |
1072 | fill-rule="evenodd" | 1112 | fill-rule="evenodd" |
1073 | d="M4 4a2 2 0 00-2 2v4a2 2 0 002 2V6h10a2 2 0 00-2-2H4zm2 6a2 2 0 012-2h8a2 2 0 012 2v4a2 2 0 01-2 2H8a2 2 0 01-2-2v-4zm6 4a2 2 0 100-4 2 2 0 000 4z" | 1113 | d="M4 4a2 2 0 00-2 2v4a2 2 0 002 2V6h10a2 2 0 00-2-2H4zm2 6a2 2 0 012-2h8a2 2 0 012 2v4a2 2 0 01-2 2H8a2 2 0 01-2-2v-4zm6 4a2 2 0 100-4 2 2 0 000 4z" |
1074 | clip-rule="evenodd" | 1114 | clip-rule="evenodd" |
1075 | ></path> | 1115 | ></path> |
1076 | </svg> | 1116 | </svg> |
1077 | </div> | 1117 | </div> |
1078 | <div> | 1118 | <div> |
1079 | <p | 1119 | <p |
1080 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" | 1120 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" |
1081 | > | 1121 | > |
1082 | Account balance | 1122 | Account balance |
1083 | </p> | 1123 | </p> |
1084 | <p | 1124 | <p |
1085 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" | 1125 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" |
1086 | > | 1126 | > |
1087 | $ 46,760.89 | 1127 | $ 46,760.89 |
1088 | </p> | 1128 | </p> |
1089 | </div> | 1129 | </div> |
1090 | </div> | 1130 | </div> |
1091 | 1131 | ||
1092 | <div | 1132 | <div |
1093 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1133 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1094 | > | 1134 | > |
1095 | <div | 1135 | <div |
1096 | class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500" | 1136 | class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500" |
1097 | > | 1137 | > |
1098 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 1138 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
1099 | <path | 1139 | <path |
1100 | d="M3 1a1 1 0 000 2h1.22l.305 1.222a.997.997 0 00.01.042l1.358 5.43-.893.892C3.74 11.846 4.632 14 6.414 14H15a1 1 0 000-2H6.414l1-1H14a1 1 0 00.894-.553l3-6A1 1 0 0017 3H6.28l-.31-1.243A1 1 0 005 1H3zM16 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM6.5 18a1.5 1.5 0 100-3 1.5 1.5 0 000 3z" | 1140 | d="M3 1a1 1 0 000 2h1.22l.305 1.222a.997.997 0 00.01.042l1.358 5.43-.893.892C3.74 11.846 4.632 14 6.414 14H15a1 1 0 000-2H6.414l1-1H14a1 1 0 00.894-.553l3-6A1 1 0 0017 3H6.28l-.31-1.243A1 1 0 005 1H3zM16 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM6.5 18a1.5 1.5 0 100-3 1.5 1.5 0 000 3z" |
1101 | ></path> | 1141 | ></path> |
1102 | </svg> | 1142 | </svg> |
1103 | </div> | 1143 | </div> |
1104 | <div> | 1144 | <div> |
1105 | <p | 1145 | <p |
1106 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" | 1146 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" |
1107 | > | 1147 | > |
1108 | New sales | 1148 | New sales |
1109 | </p> | 1149 | </p> |
1110 | <p | 1150 | <p |
1111 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" | 1151 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" |
1112 | > | 1152 | > |
1113 | 376 | 1153 | 376 |
1114 | </p> | 1154 | </p> |
1115 | </div> | 1155 | </div> |
1116 | </div> | 1156 | </div> |
1117 | 1157 | ||
1118 | <div | 1158 | <div |
1119 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1159 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1120 | > | 1160 | > |
1121 | <div | 1161 | <div |
1122 | class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500" | 1162 | class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500" |
1123 | > | 1163 | > |
1124 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 1164 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
1125 | <path | 1165 | <path |
1126 | fill-rule="evenodd" | 1166 | fill-rule="evenodd" |
1127 | d="M18 5v8a2 2 0 01-2 2h-5l-5 4v-4H4a2 2 0 01-2-2V5a2 2 0 012-2h12a2 2 0 012 2zM7 8H5v2h2V8zm2 0h2v2H9V8zm6 0h-2v2h2V8z" | 1167 | d="M18 5v8a2 2 0 01-2 2h-5l-5 4v-4H4a2 2 0 01-2-2V5a2 2 0 012-2h12a2 2 0 012 2zM7 8H5v2h2V8zm2 0h2v2H9V8zm6 0h-2v2h2V8z" |
1128 | clip-rule="evenodd" | 1168 | clip-rule="evenodd" |
1129 | ></path> | 1169 | ></path> |
1130 | </svg> | 1170 | </svg> |
1131 | </div> | 1171 | </div> |
1132 | <div> | 1172 | <div> |
1133 | <p | 1173 | <p |
1134 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" | 1174 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" |
1135 | > | 1175 | > |
1136 | Pending contacts | 1176 | Pending contacts |
1137 | </p> | 1177 | </p> |
1138 | <p | 1178 | <p |
1139 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" | 1179 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" |
1140 | > | 1180 | > |
1141 | 35 | 1181 | 35 |
1142 | </p> | 1182 | </p> |
1143 | </div> | 1183 | </div> |
1144 | </div> | 1184 | </div> |
1145 | </div> | 1185 | </div> |
1146 | --> | 1186 | --> |
1147 | <!-- New Table | 1187 | <!-- New Table |
1148 | <div class="w-full overflow-hidden rounded-lg shadow-xs"> | 1188 | <div class="w-full overflow-hidden rounded-lg shadow-xs"> |
1149 | <div class="w-full overflow-x-auto"> | 1189 | <div class="w-full overflow-x-auto"> |
1150 | <table class="w-full whitespace-no-wrap"> | 1190 | <table class="w-full whitespace-no-wrap"> |
1151 | <thead> | 1191 | <thead> |
1152 | <tr | 1192 | <tr |
1153 | class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800" | 1193 | class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800" |
1154 | > | 1194 | > |
1155 | <th class="px-4 py-3">Client</th> | 1195 | <th class="px-4 py-3">Client</th> |
1156 | <th class="px-4 py-3">Amount</th> | 1196 | <th class="px-4 py-3">Amount</th> |
1157 | <th class="px-4 py-3">Status</th> | 1197 | <th class="px-4 py-3">Status</th> |
1158 | <th class="px-4 py-3">Date</th> | 1198 | <th class="px-4 py-3">Date</th> |
1159 | </tr> | 1199 | </tr> |
1160 | </thead> | 1200 | </thead> |
1161 | <tbody | 1201 | <tbody |
1162 | class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" | 1202 | class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" |
1163 | > | 1203 | > |
1164 | <tr class="text-gray-700 dark:text-gray-400"> | 1204 | <tr class="text-gray-700 dark:text-gray-400"> |
1165 | <td class="px-4 py-3"> | 1205 | <td class="px-4 py-3"> |
1166 | <div class="flex items-center text-sm"> | 1206 | <div class="flex items-center text-sm"> |
1167 | 1207 | ||
1168 | <div | 1208 | <div |
1169 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1209 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1170 | > | 1210 | > |
1171 | <img | 1211 | <img |
1172 | class="object-cover w-full h-full rounded-full" | 1212 | class="object-cover w-full h-full rounded-full" |
1173 | src="https://images.unsplash.com/flagged/photo-1570612861542-284f4c12e75f?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" | 1213 | src="https://images.unsplash.com/flagged/photo-1570612861542-284f4c12e75f?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" |
1174 | alt="" | 1214 | alt="" |
1175 | loading="lazy" | 1215 | loading="lazy" |
1176 | /> | 1216 | /> |
1177 | <div | 1217 | <div |
1178 | class="absolute inset-0 rounded-full shadow-inner" | 1218 | class="absolute inset-0 rounded-full shadow-inner" |
1179 | aria-hidden="true" | 1219 | aria-hidden="true" |
1180 | ></div> | 1220 | ></div> |
1181 | </div> | 1221 | </div> |
1182 | <div> | 1222 | <div> |
1183 | <p class="font-semibold">Hans Burger</p> | 1223 | <p class="font-semibold">Hans Burger</p> |
1184 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1224 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1185 | 10x Developer | 1225 | 10x Developer |
1186 | </p> | 1226 | </p> |
1187 | </div> | 1227 | </div> |
1188 | </div> | 1228 | </div> |
1189 | </td> | 1229 | </td> |
1190 | <td class="px-4 py-3 text-sm"> | 1230 | <td class="px-4 py-3 text-sm"> |
1191 | $ 863.45 | 1231 | $ 863.45 |
1192 | </td> | 1232 | </td> |
1193 | <td class="px-4 py-3 text-xs"> | 1233 | <td class="px-4 py-3 text-xs"> |
1194 | <span | 1234 | <span |
1195 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" | 1235 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" |
1196 | > | 1236 | > |
1197 | Approved | 1237 | Approved |
1198 | </span> | 1238 | </span> |
1199 | </td> | 1239 | </td> |
1200 | <td class="px-4 py-3 text-sm"> | 1240 | <td class="px-4 py-3 text-sm"> |
1201 | 6/10/2020 | 1241 | 6/10/2020 |
1202 | </td> | 1242 | </td> |
1203 | </tr> | 1243 | </tr> |
1204 | 1244 | ||
1205 | <tr class="text-gray-700 dark:text-gray-400"> | 1245 | <tr class="text-gray-700 dark:text-gray-400"> |
1206 | <td class="px-4 py-3"> | 1246 | <td class="px-4 py-3"> |
1207 | <div class="flex items-center text-sm"> | 1247 | <div class="flex items-center text-sm"> |
1208 | 1248 | ||
1209 | <div | 1249 | <div |
1210 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1250 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1211 | > | 1251 | > |
1212 | <img | 1252 | <img |
1213 | class="object-cover w-full h-full rounded-full" | 1253 | class="object-cover w-full h-full rounded-full" |
1214 | src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&facepad=3&fit=facearea&s=707b9c33066bf8808c934c8ab394dff6" | 1254 | src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&facepad=3&fit=facearea&s=707b9c33066bf8808c934c8ab394dff6" |
1215 | alt="" | 1255 | alt="" |
1216 | loading="lazy" | 1256 | loading="lazy" |
1217 | /> | 1257 | /> |
1218 | <div | 1258 | <div |
1219 | class="absolute inset-0 rounded-full shadow-inner" | 1259 | class="absolute inset-0 rounded-full shadow-inner" |
1220 | aria-hidden="true" | 1260 | aria-hidden="true" |
1221 | ></div> | 1261 | ></div> |
1222 | </div> | 1262 | </div> |
1223 | <div> | 1263 | <div> |
1224 | <p class="font-semibold">Jolina Angelie</p> | 1264 | <p class="font-semibold">Jolina Angelie</p> |
1225 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1265 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1226 | Unemployed | 1266 | Unemployed |
1227 | </p> | 1267 | </p> |
1228 | </div> | 1268 | </div> |
1229 | </div> | 1269 | </div> |
1230 | </td> | 1270 | </td> |
1231 | <td class="px-4 py-3 text-sm"> | 1271 | <td class="px-4 py-3 text-sm"> |
1232 | $ 369.95 | 1272 | $ 369.95 |
1233 | </td> | 1273 | </td> |
1234 | <td class="px-4 py-3 text-xs"> | 1274 | <td class="px-4 py-3 text-xs"> |
1235 | <span | 1275 | <span |
1236 | class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600" | 1276 | class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600" |
1237 | > | 1277 | > |
1238 | Pending | 1278 | Pending |
1239 | </span> | 1279 | </span> |
1240 | </td> | 1280 | </td> |
1241 | <td class="px-4 py-3 text-sm"> | 1281 | <td class="px-4 py-3 text-sm"> |
1242 | 6/10/2020 | 1282 | 6/10/2020 |
1243 | </td> | 1283 | </td> |
1244 | </tr> | 1284 | </tr> |
1245 | 1285 | ||
1246 | <tr class="text-gray-700 dark:text-gray-400"> | 1286 | <tr class="text-gray-700 dark:text-gray-400"> |
1247 | <td class="px-4 py-3"> | 1287 | <td class="px-4 py-3"> |
1248 | <div class="flex items-center text-sm"> | 1288 | <div class="flex items-center text-sm"> |
1249 | 1289 | ||
1250 | <div | 1290 | <div |
1251 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1291 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1252 | > | 1292 | > |
1253 | <img | 1293 | <img |
1254 | class="object-cover w-full h-full rounded-full" | 1294 | class="object-cover w-full h-full rounded-full" |
1255 | src="https://images.unsplash.com/photo-1551069613-1904dbdcda11?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" | 1295 | src="https://images.unsplash.com/photo-1551069613-1904dbdcda11?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" |
1256 | alt="" | 1296 | alt="" |
1257 | loading="lazy" | 1297 | loading="lazy" |
1258 | /> | 1298 | /> |
1259 | <div | 1299 | <div |
1260 | class="absolute inset-0 rounded-full shadow-inner" | 1300 | class="absolute inset-0 rounded-full shadow-inner" |
1261 | aria-hidden="true" | 1301 | aria-hidden="true" |
1262 | ></div> | 1302 | ></div> |
1263 | </div> | 1303 | </div> |
1264 | <div> | 1304 | <div> |
1265 | <p class="font-semibold">Sarah Curry</p> | 1305 | <p class="font-semibold">Sarah Curry</p> |
1266 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1306 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1267 | Designer | 1307 | Designer |
1268 | </p> | 1308 | </p> |
1269 | </div> | 1309 | </div> |
1270 | </div> | 1310 | </div> |
1271 | </td> | 1311 | </td> |
1272 | <td class="px-4 py-3 text-sm"> | 1312 | <td class="px-4 py-3 text-sm"> |
1273 | $ 86.00 | 1313 | $ 86.00 |
1274 | </td> | 1314 | </td> |
1275 | <td class="px-4 py-3 text-xs"> | 1315 | <td class="px-4 py-3 text-xs"> |
1276 | <span | 1316 | <span |
1277 | class="px-2 py-1 font-semibold leading-tight text-red-700 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-700" | 1317 | class="px-2 py-1 font-semibold leading-tight text-red-700 bg-red-100 rounded-full dark:text-red-100 dark:bg-red-700" |
1278 | > | 1318 | > |
1279 | Denied | 1319 | Denied |
1280 | </span> | 1320 | </span> |
1281 | </td> | 1321 | </td> |
1282 | <td class="px-4 py-3 text-sm"> | 1322 | <td class="px-4 py-3 text-sm"> |
1283 | 6/10/2020 | 1323 | 6/10/2020 |
1284 | </td> | 1324 | </td> |
1285 | </tr> | 1325 | </tr> |
1286 | 1326 | ||
1287 | <tr class="text-gray-700 dark:text-gray-400"> | 1327 | <tr class="text-gray-700 dark:text-gray-400"> |
1288 | <td class="px-4 py-3"> | 1328 | <td class="px-4 py-3"> |
1289 | <div class="flex items-center text-sm"> | 1329 | <div class="flex items-center text-sm"> |
1290 | 1330 | ||
1291 | <div | 1331 | <div |
1292 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1332 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1293 | > | 1333 | > |
1294 | <img | 1334 | <img |
1295 | class="object-cover w-full h-full rounded-full" | 1335 | class="object-cover w-full h-full rounded-full" |
1296 | src="https://images.unsplash.com/photo-1551006917-3b4c078c47c9?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" | 1336 | src="https://images.unsplash.com/photo-1551006917-3b4c078c47c9?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" |
1297 | alt="" | 1337 | alt="" |
1298 | loading="lazy" | 1338 | loading="lazy" |
1299 | /> | 1339 | /> |
1300 | <div | 1340 | <div |
1301 | class="absolute inset-0 rounded-full shadow-inner" | 1341 | class="absolute inset-0 rounded-full shadow-inner" |
1302 | aria-hidden="true" | 1342 | aria-hidden="true" |
1303 | ></div> | 1343 | ></div> |
1304 | </div> | 1344 | </div> |
1305 | <div> | 1345 | <div> |
1306 | <p class="font-semibold">Rulia Joberts</p> | 1346 | <p class="font-semibold">Rulia Joberts</p> |
1307 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1347 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1308 | Actress | 1348 | Actress |
1309 | </p> | 1349 | </p> |
1310 | </div> | 1350 | </div> |
1311 | </div> | 1351 | </div> |
1312 | </td> | 1352 | </td> |
1313 | <td class="px-4 py-3 text-sm"> | 1353 | <td class="px-4 py-3 text-sm"> |
1314 | $ 1276.45 | 1354 | $ 1276.45 |
1315 | </td> | 1355 | </td> |
1316 | <td class="px-4 py-3 text-xs"> | 1356 | <td class="px-4 py-3 text-xs"> |
1317 | <span | 1357 | <span |
1318 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" | 1358 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" |
1319 | > | 1359 | > |
1320 | Approved | 1360 | Approved |
1321 | </span> | 1361 | </span> |
1322 | </td> | 1362 | </td> |
1323 | <td class="px-4 py-3 text-sm"> | 1363 | <td class="px-4 py-3 text-sm"> |
1324 | 6/10/2020 | 1364 | 6/10/2020 |
1325 | </td> | 1365 | </td> |
1326 | </tr> | 1366 | </tr> |
1327 | 1367 | ||
1328 | <tr class="text-gray-700 dark:text-gray-400"> | 1368 | <tr class="text-gray-700 dark:text-gray-400"> |
1329 | <td class="px-4 py-3"> | 1369 | <td class="px-4 py-3"> |
1330 | <div class="flex items-center text-sm"> | 1370 | <div class="flex items-center text-sm"> |
1331 | 1371 | ||
1332 | <div | 1372 | <div |
1333 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1373 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1334 | > | 1374 | > |
1335 | <img | 1375 | <img |
1336 | class="object-cover w-full h-full rounded-full" | 1376 | class="object-cover w-full h-full rounded-full" |
1337 | src="https://images.unsplash.com/photo-1546456073-6712f79251bb?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" | 1377 | src="https://images.unsplash.com/photo-1546456073-6712f79251bb?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" |
1338 | alt="" | 1378 | alt="" |
1339 | loading="lazy" | 1379 | loading="lazy" |
1340 | /> | 1380 | /> |
1341 | <div | 1381 | <div |
1342 | class="absolute inset-0 rounded-full shadow-inner" | 1382 | class="absolute inset-0 rounded-full shadow-inner" |
1343 | aria-hidden="true" | 1383 | aria-hidden="true" |
1344 | ></div> | 1384 | ></div> |
1345 | </div> | 1385 | </div> |
1346 | <div> | 1386 | <div> |
1347 | <p class="font-semibold">Wenzel Dashington</p> | 1387 | <p class="font-semibold">Wenzel Dashington</p> |
1348 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1388 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1349 | Actor | 1389 | Actor |
1350 | </p> | 1390 | </p> |
1351 | </div> | 1391 | </div> |
1352 | </div> | 1392 | </div> |
1353 | </td> | 1393 | </td> |
1354 | <td class="px-4 py-3 text-sm"> | 1394 | <td class="px-4 py-3 text-sm"> |
1355 | $ 863.45 | 1395 | $ 863.45 |
1356 | </td> | 1396 | </td> |
1357 | <td class="px-4 py-3 text-xs"> | 1397 | <td class="px-4 py-3 text-xs"> |
1358 | <span | 1398 | <span |
1359 | class="px-2 py-1 font-semibold leading-tight text-gray-700 bg-gray-100 rounded-full dark:text-gray-100 dark:bg-gray-700" | 1399 | class="px-2 py-1 font-semibold leading-tight text-gray-700 bg-gray-100 rounded-full dark:text-gray-100 dark:bg-gray-700" |
1360 | > | 1400 | > |
1361 | Expired | 1401 | Expired |
1362 | </span> | 1402 | </span> |
1363 | </td> | 1403 | </td> |
1364 | <td class="px-4 py-3 text-sm"> | 1404 | <td class="px-4 py-3 text-sm"> |
1365 | 6/10/2020 | 1405 | 6/10/2020 |
1366 | </td> | 1406 | </td> |
1367 | </tr> | 1407 | </tr> |
1368 | 1408 | ||
1369 | <tr class="text-gray-700 dark:text-gray-400"> | 1409 | <tr class="text-gray-700 dark:text-gray-400"> |
1370 | <td class="px-4 py-3"> | 1410 | <td class="px-4 py-3"> |
1371 | <div class="flex items-center text-sm"> | 1411 | <div class="flex items-center text-sm"> |
1372 | 1412 | ||
1373 | <div | 1413 | <div |
1374 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1414 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1375 | > | 1415 | > |
1376 | <img | 1416 | <img |
1377 | class="object-cover w-full h-full rounded-full" | 1417 | class="object-cover w-full h-full rounded-full" |
1378 | src="https://images.unsplash.com/photo-1502720705749-871143f0e671?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&s=b8377ca9f985d80264279f277f3a67f5" | 1418 | src="https://images.unsplash.com/photo-1502720705749-871143f0e671?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&s=b8377ca9f985d80264279f277f3a67f5" |
1379 | alt="" | 1419 | alt="" |
1380 | loading="lazy" | 1420 | loading="lazy" |
1381 | /> | 1421 | /> |
1382 | <div | 1422 | <div |
1383 | class="absolute inset-0 rounded-full shadow-inner" | 1423 | class="absolute inset-0 rounded-full shadow-inner" |
1384 | aria-hidden="true" | 1424 | aria-hidden="true" |
1385 | ></div> | 1425 | ></div> |
1386 | </div> | 1426 | </div> |
1387 | <div> | 1427 | <div> |
1388 | <p class="font-semibold">Dave Li</p> | 1428 | <p class="font-semibold">Dave Li</p> |
1389 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1429 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1390 | Influencer | 1430 | Influencer |
1391 | </p> | 1431 | </p> |
1392 | </div> | 1432 | </div> |
1393 | </div> | 1433 | </div> |
1394 | </td> | 1434 | </td> |
1395 | <td class="px-4 py-3 text-sm"> | 1435 | <td class="px-4 py-3 text-sm"> |
1396 | $ 863.45 | 1436 | $ 863.45 |
1397 | </td> | 1437 | </td> |
1398 | <td class="px-4 py-3 text-xs"> | 1438 | <td class="px-4 py-3 text-xs"> |
1399 | <span | 1439 | <span |
1400 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" | 1440 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" |
1401 | > | 1441 | > |
1402 | Approved | 1442 | Approved |
1403 | </span> | 1443 | </span> |
1404 | </td> | 1444 | </td> |
1405 | <td class="px-4 py-3 text-sm"> | 1445 | <td class="px-4 py-3 text-sm"> |
1406 | 6/10/2020 | 1446 | 6/10/2020 |
1407 | </td> | 1447 | </td> |
1408 | </tr> | 1448 | </tr> |
1409 | 1449 | ||
1410 | <tr class="text-gray-700 dark:text-gray-400"> | 1450 | <tr class="text-gray-700 dark:text-gray-400"> |
1411 | <td class="px-4 py-3"> | 1451 | <td class="px-4 py-3"> |
1412 | <div class="flex items-center text-sm"> | 1452 | <div class="flex items-center text-sm"> |
1413 | 1453 | ||
1414 | <div | 1454 | <div |
1415 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1455 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1416 | > | 1456 | > |
1417 | <img | 1457 | <img |
1418 | class="object-cover w-full h-full rounded-full" | 1458 | class="object-cover w-full h-full rounded-full" |
1419 | src="https://images.unsplash.com/photo-1531746020798-e6953c6e8e04?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" | 1459 | src="https://images.unsplash.com/photo-1531746020798-e6953c6e8e04?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" |
1420 | alt="" | 1460 | alt="" |
1421 | loading="lazy" | 1461 | loading="lazy" |
1422 | /> | 1462 | /> |
1423 | <div | 1463 | <div |
1424 | class="absolute inset-0 rounded-full shadow-inner" | 1464 | class="absolute inset-0 rounded-full shadow-inner" |
1425 | aria-hidden="true" | 1465 | aria-hidden="true" |
1426 | ></div> | 1466 | ></div> |
1427 | </div> | 1467 | </div> |
1428 | <div> | 1468 | <div> |
1429 | <p class="font-semibold">Maria Ramovic</p> | 1469 | <p class="font-semibold">Maria Ramovic</p> |
1430 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1470 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1431 | Runner | 1471 | Runner |
1432 | </p> | 1472 | </p> |
1433 | </div> | 1473 | </div> |
1434 | </div> | 1474 | </div> |
1435 | </td> | 1475 | </td> |
1436 | <td class="px-4 py-3 text-sm"> | 1476 | <td class="px-4 py-3 text-sm"> |
1437 | $ 863.45 | 1477 | $ 863.45 |
1438 | </td> | 1478 | </td> |
1439 | <td class="px-4 py-3 text-xs"> | 1479 | <td class="px-4 py-3 text-xs"> |
1440 | <span | 1480 | <span |
1441 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" | 1481 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" |
1442 | > | 1482 | > |
1443 | Approved | 1483 | Approved |
1444 | </span> | 1484 | </span> |
1445 | </td> | 1485 | </td> |
1446 | <td class="px-4 py-3 text-sm"> | 1486 | <td class="px-4 py-3 text-sm"> |
1447 | 6/10/2020 | 1487 | 6/10/2020 |
1448 | </td> | 1488 | </td> |
1449 | </tr> | 1489 | </tr> |
1450 | 1490 | ||
1451 | <tr class="text-gray-700 dark:text-gray-400"> | 1491 | <tr class="text-gray-700 dark:text-gray-400"> |
1452 | <td class="px-4 py-3"> | 1492 | <td class="px-4 py-3"> |
1453 | <div class="flex items-center text-sm"> | 1493 | <div class="flex items-center text-sm"> |
1454 | 1494 | ||
1455 | <div | 1495 | <div |
1456 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1496 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1457 | > | 1497 | > |
1458 | <img | 1498 | <img |
1459 | class="object-cover w-full h-full rounded-full" | 1499 | class="object-cover w-full h-full rounded-full" |
1460 | src="https://images.unsplash.com/photo-1566411520896-01e7ca4726af?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" | 1500 | src="https://images.unsplash.com/photo-1566411520896-01e7ca4726af?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" |
1461 | alt="" | 1501 | alt="" |
1462 | loading="lazy" | 1502 | loading="lazy" |
1463 | /> | 1503 | /> |
1464 | <div | 1504 | <div |
1465 | class="absolute inset-0 rounded-full shadow-inner" | 1505 | class="absolute inset-0 rounded-full shadow-inner" |
1466 | aria-hidden="true" | 1506 | aria-hidden="true" |
1467 | ></div> | 1507 | ></div> |
1468 | </div> | 1508 | </div> |
1469 | <div> | 1509 | <div> |
1470 | <p class="font-semibold">Hitney Wouston</p> | 1510 | <p class="font-semibold">Hitney Wouston</p> |
1471 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1511 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1472 | Singer | 1512 | Singer |
1473 | </p> | 1513 | </p> |
1474 | </div> | 1514 | </div> |
1475 | </div> | 1515 | </div> |
1476 | </td> | 1516 | </td> |
1477 | <td class="px-4 py-3 text-sm"> | 1517 | <td class="px-4 py-3 text-sm"> |
1478 | $ 863.45 | 1518 | $ 863.45 |
1479 | </td> | 1519 | </td> |
1480 | <td class="px-4 py-3 text-xs"> | 1520 | <td class="px-4 py-3 text-xs"> |
1481 | <span | 1521 | <span |
1482 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" | 1522 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" |
1483 | > | 1523 | > |
1484 | Approved | 1524 | Approved |
1485 | </span> | 1525 | </span> |
1486 | </td> | 1526 | </td> |
1487 | <td class="px-4 py-3 text-sm"> | 1527 | <td class="px-4 py-3 text-sm"> |
1488 | 6/10/2020 | 1528 | 6/10/2020 |
1489 | </td> | 1529 | </td> |
1490 | </tr> | 1530 | </tr> |
1491 | 1531 | ||
1492 | <tr class="text-gray-700 dark:text-gray-400"> | 1532 | <tr class="text-gray-700 dark:text-gray-400"> |
1493 | <td class="px-4 py-3"> | 1533 | <td class="px-4 py-3"> |
1494 | <div class="flex items-center text-sm"> | 1534 | <div class="flex items-center text-sm"> |
1495 | 1535 | ||
1496 | <div | 1536 | <div |
1497 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1537 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1498 | > | 1538 | > |
1499 | <img | 1539 | <img |
1500 | class="object-cover w-full h-full rounded-full" | 1540 | class="object-cover w-full h-full rounded-full" |
1501 | src="https://images.unsplash.com/flagged/photo-1570612861542-284f4c12e75f?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" | 1541 | src="https://images.unsplash.com/flagged/photo-1570612861542-284f4c12e75f?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=200&fit=max&ixid=eyJhcHBfaWQiOjE3Nzg0fQ" |
1502 | alt="" | 1542 | alt="" |
1503 | loading="lazy" | 1543 | loading="lazy" |
1504 | /> | 1544 | /> |
1505 | <div | 1545 | <div |
1506 | class="absolute inset-0 rounded-full shadow-inner" | 1546 | class="absolute inset-0 rounded-full shadow-inner" |
1507 | aria-hidden="true" | 1547 | aria-hidden="true" |
1508 | ></div> | 1548 | ></div> |
1509 | </div> | 1549 | </div> |
1510 | <div> | 1550 | <div> |
1511 | <p class="font-semibold">Hans Burger</p> | 1551 | <p class="font-semibold">Hans Burger</p> |
1512 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1552 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1513 | 10x Developer | 1553 | 10x Developer |
1514 | </p> | 1554 | </p> |
1515 | </div> | 1555 | </div> |
1516 | </div> | 1556 | </div> |
1517 | </td> | 1557 | </td> |
1518 | <td class="px-4 py-3 text-sm"> | 1558 | <td class="px-4 py-3 text-sm"> |
1519 | $ 863.45 | 1559 | $ 863.45 |
1520 | </td> | 1560 | </td> |
1521 | <td class="px-4 py-3 text-xs"> | 1561 | <td class="px-4 py-3 text-xs"> |
1522 | <span | 1562 | <span |
1523 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" | 1563 | class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" |
1524 | > | 1564 | > |
1525 | Approved | 1565 | Approved |
1526 | </span> | 1566 | </span> |
1527 | </td> | 1567 | </td> |
1528 | <td class="px-4 py-3 text-sm"> | 1568 | <td class="px-4 py-3 text-sm"> |
1529 | 6/10/2020 | 1569 | 6/10/2020 |
1530 | </td> | 1570 | </td> |
1531 | </tr> | 1571 | </tr> |
1532 | </tbody> | 1572 | </tbody> |
1533 | </table> | 1573 | </table> |
1534 | </div> | 1574 | </div> |
1535 | <div | 1575 | <div |
1536 | class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800" | 1576 | class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800" |
1537 | > | 1577 | > |
1538 | <span class="flex items-center col-span-3"> | 1578 | <span class="flex items-center col-span-3"> |
1539 | Showing 21-30 of 100 | 1579 | Showing 21-30 of 100 |
1540 | </span> | 1580 | </span> |
1541 | <span class="col-span-2"></span> | 1581 | <span class="col-span-2"></span> |
1542 | 1582 | ||
1543 | <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> | 1583 | <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> |
1544 | <nav aria-label="Table navigation"> | 1584 | <nav aria-label="Table navigation"> |
1545 | <ul class="inline-flex items-center"> | 1585 | <ul class="inline-flex items-center"> |
1546 | <li> | 1586 | <li> |
1547 | <button | 1587 | <button |
1548 | class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" | 1588 | class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" |
1549 | aria-label="Previous" | 1589 | aria-label="Previous" |
1550 | > | 1590 | > |
1551 | <svg | 1591 | <svg |
1552 | aria-hidden="true" | 1592 | aria-hidden="true" |
1553 | class="w-4 h-4 fill-current" | 1593 | class="w-4 h-4 fill-current" |
1554 | viewBox="0 0 20 20" | 1594 | viewBox="0 0 20 20" |
1555 | > | 1595 | > |
1556 | <path | 1596 | <path |
1557 | d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z" | 1597 | d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z" |
1558 | clip-rule="evenodd" | 1598 | clip-rule="evenodd" |
1559 | fill-rule="evenodd" | 1599 | fill-rule="evenodd" |
1560 | ></path> | 1600 | ></path> |
1561 | </svg> | 1601 | </svg> |
1562 | </button> | 1602 | </button> |
1563 | </li> | 1603 | </li> |
1564 | <li> | 1604 | <li> |
1565 | <button | 1605 | <button |
1566 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 1606 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
1567 | > | 1607 | > |
1568 | 1 | 1608 | 1 |
1569 | </button> | 1609 | </button> |
1570 | </li> | 1610 | </li> |
1571 | <li> | 1611 | <li> |
1572 | <button | 1612 | <button |
1573 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 1613 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
1574 | > | 1614 | > |
1575 | 2 | 1615 | 2 |
1576 | </button> | 1616 | </button> |
1577 | </li> | 1617 | </li> |
1578 | <li> | 1618 | <li> |
1579 | <button | 1619 | <button |
1580 | class="px-3 py-1 text-white transition-colors duration-150 bg-purple-600 border border-r-0 border-purple-600 rounded-md focus:outline-none focus:shadow-outline-purple" | 1620 | class="px-3 py-1 text-white transition-colors duration-150 bg-purple-600 border border-r-0 border-purple-600 rounded-md focus:outline-none focus:shadow-outline-purple" |
1581 | > | 1621 | > |
1582 | 3 | 1622 | 3 |
1583 | </button> | 1623 | </button> |
1584 | </li> | 1624 | </li> |
1585 | <li> | 1625 | <li> |
1586 | <button | 1626 | <button |
1587 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 1627 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
1588 | > | 1628 | > |
1589 | 4 | 1629 | 4 |
1590 | </button> | 1630 | </button> |
1591 | </li> | 1631 | </li> |
1592 | <li> | 1632 | <li> |
1593 | <span class="px-3 py-1">...</span> | 1633 | <span class="px-3 py-1">...</span> |
1594 | </li> | 1634 | </li> |
1595 | <li> | 1635 | <li> |
1596 | <button | 1636 | <button |
1597 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 1637 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
1598 | > | 1638 | > |
1599 | 8 | 1639 | 8 |
1600 | </button> | 1640 | </button> |
1601 | </li> | 1641 | </li> |
1602 | <li> | 1642 | <li> |
1603 | <button | 1643 | <button |
1604 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 1644 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
1605 | > | 1645 | > |
1606 | 9 | 1646 | 9 |
1607 | </button> | 1647 | </button> |
1608 | </li> | 1648 | </li> |
1609 | <li> | 1649 | <li> |
1610 | <button | 1650 | <button |
1611 | class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" | 1651 | class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" |
1612 | aria-label="Next" | 1652 | aria-label="Next" |
1613 | > | 1653 | > |
1614 | <svg | 1654 | <svg |
1615 | class="w-4 h-4 fill-current" | 1655 | class="w-4 h-4 fill-current" |
1616 | aria-hidden="true" | 1656 | aria-hidden="true" |
1617 | viewBox="0 0 20 20" | 1657 | viewBox="0 0 20 20" |
1618 | > | 1658 | > |
1619 | <path | 1659 | <path |
1620 | d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" | 1660 | d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" |
1621 | clip-rule="evenodd" | 1661 | clip-rule="evenodd" |
1622 | fill-rule="evenodd" | 1662 | fill-rule="evenodd" |
1623 | ></path> | 1663 | ></path> |
1624 | </svg> | 1664 | </svg> |
1625 | </button> | 1665 | </button> |
1626 | </li> | 1666 | </li> |
1627 | </ul> | 1667 | </ul> |
1628 | </nav> | 1668 | </nav> |
1629 | </span> | 1669 | </span> |
1630 | </div> | 1670 | </div> |
1631 | </div> | 1671 | </div> |
1632 | --> | 1672 | --> |
1633 | <!-- Charts --> | 1673 | <!-- Charts --> |
1634 | <!-- | 1674 | <!-- |
1635 | <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"> | 1675 | <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"> |
1636 | Графики | 1676 | Графики |
1637 | </h2> | 1677 | </h2> |
1638 | <div class="grid gap-6 mb-8 md:grid-cols-2"> | 1678 | <div class="grid gap-6 mb-8 md:grid-cols-2"> |
1639 | <div | 1679 | <div |
1640 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1680 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1641 | > | 1681 | > |
1642 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> | 1682 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> |
1643 | Revenue | 1683 | Revenue |
1644 | </h4> | 1684 | </h4> |
1645 | <canvas id="pie"></canvas> | 1685 | <canvas id="pie"></canvas> |
1646 | <div | 1686 | <div |
1647 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" | 1687 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" |
1648 | > | 1688 | > |
1649 | 1689 | ||
1650 | <div class="flex items-center"> | 1690 | <div class="flex items-center"> |
1651 | <span | 1691 | <span |
1652 | class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full" | 1692 | class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full" |
1653 | ></span> | 1693 | ></span> |
1654 | <span>Shirts</span> | 1694 | <span>Shirts</span> |
1655 | </div> | 1695 | </div> |
1656 | <div class="flex items-center"> | 1696 | <div class="flex items-center"> |
1657 | <span | 1697 | <span |
1658 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" | 1698 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" |
1659 | ></span> | 1699 | ></span> |
1660 | <span>Shoes</span> | 1700 | <span>Shoes</span> |
1661 | </div> | 1701 | </div> |
1662 | <div class="flex items-center"> | 1702 | <div class="flex items-center"> |
1663 | <span | 1703 | <span |
1664 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" | 1704 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" |
1665 | ></span> | 1705 | ></span> |
1666 | <span>Bags</span> | 1706 | <span>Bags</span> |
1667 | </div> | 1707 | </div> |
1668 | </div> | 1708 | </div> |
1669 | </div> | 1709 | </div> |
1670 | <div | 1710 | <div |
1671 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1711 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1672 | > | 1712 | > |
1673 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> | 1713 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> |
1674 | Traffic | 1714 | Traffic |
1675 | </h4> | 1715 | </h4> |
1676 | <canvas id="line"></canvas> | 1716 | <canvas id="line"></canvas> |
1677 | <div | 1717 | <div |
1678 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" | 1718 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" |
1679 | > | 1719 | > |
1680 | 1720 | ||
1681 | <div class="flex items-center"> | 1721 | <div class="flex items-center"> |
1682 | <span | 1722 | <span |
1683 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" | 1723 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" |
1684 | ></span> | 1724 | ></span> |
1685 | <span>Organic</span> | 1725 | <span>Organic</span> |
1686 | </div> | 1726 | </div> |
1687 | <div class="flex items-center"> | 1727 | <div class="flex items-center"> |
1688 | <span | 1728 | <span |
1689 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" | 1729 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" |
1690 | ></span> | 1730 | ></span> |
1691 | <span>Paid</span> | 1731 | <span>Paid</span> |
1692 | </div> | 1732 | </div> |
1693 | </div> | 1733 | </div> |
1694 | </div> | 1734 | </div> |
1695 | </div> | 1735 | </div> |
1696 | --> | 1736 | --> |
1697 | </div> | 1737 | </div> |
1698 | </main> | 1738 | </main> |
1699 | </div> | 1739 | </div> |
1700 | </div> | 1740 | </div> |
1701 | </body> | 1741 | </body> |
1702 | @yield('script') | 1742 | @yield('script') |
1703 | </html> | 1743 | </html> |
1704 | 1744 |
routes/web.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | use App\Http\Controllers\Admin\AdminController; | 3 | use App\Http\Controllers\Admin\AdminController; |
4 | use App\Http\Controllers\Admin\CategoryController; | 4 | use App\Http\Controllers\Admin\CategoryController; |
5 | use App\Http\Controllers\Admin\EmployersController; | 5 | use App\Http\Controllers\Admin\EmployersController; |
6 | use App\Http\Controllers\Admin\UsersController; | 6 | use App\Http\Controllers\Admin\UsersController; |
7 | use App\Http\Controllers\Admin\WorkersController; | 7 | use App\Http\Controllers\Admin\WorkersController; |
8 | use App\Http\Controllers\Auth\LoginController; | 8 | use App\Http\Controllers\Auth\LoginController; |
9 | use App\Http\Controllers\Auth\RegisterController; | 9 | use App\Http\Controllers\Auth\RegisterController; |
10 | use App\Models\User; | 10 | use App\Models\User; |
11 | use App\Http\Controllers\MainController; | 11 | use App\Http\Controllers\MainController; |
12 | use App\Http\Controllers\HomeController; | 12 | use App\Http\Controllers\HomeController; |
13 | use Illuminate\Support\Facades\Route; | 13 | use Illuminate\Support\Facades\Route; |
14 | use App\Http\Controllers\Admin\CompanyController; | 14 | use App\Http\Controllers\Admin\CompanyController; |
15 | use App\Http\Controllers\Admin\Ad_EmployersController; | 15 | use App\Http\Controllers\Admin\Ad_EmployersController; |
16 | use App\Http\Controllers\Admin\MsgAnswersController; | ||
17 | use App\Http\Controllers\Admin\GroupsController; | ||
16 | 18 | ||
17 | 19 | ||
18 | /* | 20 | /* |
19 | |-------------------------------------------------------------------------- | 21 | |-------------------------------------------------------------------------- |
20 | | Web Routes | 22 | | Web Routes |
21 | |-------------------------------------------------------------------------- | 23 | |-------------------------------------------------------------------------- |
22 | | | 24 | | |
23 | | Here is where you can register web routes for your application. These | 25 | | Here is where you can register web routes for your application. These |
24 | | routes are loaded by the RouteServiceProvider within a group which | 26 | | routes are loaded by the RouteServiceProvider within a group which |
25 | | contains the "web" middleware group. Now create something great! | 27 | | contains the "web" middleware group. Now create something great! |
26 | | | 28 | | |
27 | */ | 29 | */ |
28 | /* | 30 | /* |
29 | Route::get('/', function () { | 31 | Route::get('/', function () { |
30 | return view('welcome'); | 32 | return view('welcome'); |
31 | })->name('index'); | 33 | })->name('index'); |
32 | */ | 34 | */ |
33 | Route::get('/', [MainController::class, 'index'])->name('index'); | 35 | Route::get('/', [MainController::class, 'index'])->name('index'); |
34 | 36 | ||
35 | //Роуты авторизации, регистрации, восстановления, аутентификации | 37 | //Роуты авторизации, регистрации, восстановления, аутентификации |
36 | Auth::routes(['verify' => true]); | 38 | Auth::routes(['verify' => true]); |
37 | //Личный кабинет пользователя | 39 | //Личный кабинет пользователя |
38 | Route::get('/home', [HomeController::class, 'index'])->name('home'); | 40 | Route::get('/home', [HomeController::class, 'index'])->name('home'); |
39 | 41 | ||
40 | /* | 42 | /* |
41 | Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) { | 43 | Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) { |
42 | $user = User::where('email',$request->input('email'))->first(); | 44 | $user = User::where('email',$request->input('email'))->first(); |
43 | 45 | ||
44 | $user->sendEmailVerificationNotification(); | 46 | $user->sendEmailVerificationNotification(); |
45 | 47 | ||
46 | return 'your response'; | 48 | return 'your response'; |
47 | })->middleware('throttle:6,1')->name('verification.resend'); | 49 | })->middleware('throttle:6,1')->name('verification.resend'); |
48 | */ | 50 | */ |
49 | 51 | ||
50 | // Авторизация, регистрация в админку | 52 | // Авторизация, регистрация в админку |
51 | Route::group([ | 53 | Route::group([ |
52 | 'as' => 'admin.', // имя маршрута, например auth.index | 54 | 'as' => 'admin.', // имя маршрута, например auth.index |
53 | 'prefix' => 'admin', // префикс маршрута, например auth/index | 55 | 'prefix' => 'admin', // префикс маршрута, например auth/index |
54 | 'middleware' => ['guest'], | 56 | 'middleware' => ['guest'], |
55 | ], function () { | 57 | ], function () { |
56 | // Форма регистрации | 58 | // Форма регистрации |
57 | Route::get('register', [AdminController::class, 'register'])->name('register'); | 59 | Route::get('register', [AdminController::class, 'register'])->name('register'); |
58 | 60 | ||
59 | // Создание пользователя | 61 | // Создание пользователя |
60 | Route::post('register', [AdminController::class, 'create'])->name('create'); | 62 | Route::post('register', [AdminController::class, 'create'])->name('create'); |
61 | //Форма входа | 63 | //Форма входа |
62 | Route::get('login', [AdminController::class, 'login'])->name('login'); | 64 | Route::get('login', [AdminController::class, 'login'])->name('login'); |
63 | 65 | ||
64 | // аутентификация | 66 | // аутентификация |
65 | Route::post('login', [AdminController::class, 'autenticate'])->name('auth'); | 67 | Route::post('login', [AdminController::class, 'autenticate'])->name('auth'); |
66 | 68 | ||
67 | }); | 69 | }); |
68 | 70 | ||
69 | // Личный кабинет админки | 71 | // Личный кабинет админки |
70 | Route::group([ | 72 | Route::group([ |
71 | 'as' => 'admin.', // имя маршрута, например auth.index | 73 | 'as' => 'admin.', // имя маршрута, например auth.index |
72 | 'prefix' => 'admin', // префикс маршрута, например auth/index | 74 | 'prefix' => 'admin', // префикс маршрута, например auth/index |
73 | 'middleware' => ['auth'], ['admin'], | 75 | 'middleware' => ['auth'], ['admin'], |
74 | ], function() { | 76 | ], function() { |
75 | 77 | ||
76 | // выход | 78 | // выход |
77 | Route::get('logout', [AdminController::class, 'logout'])->name('logout'); | 79 | Route::get('logout', [AdminController::class, 'logout'])->name('logout'); |
78 | 80 | ||
79 | // кабинет главная страница | 81 | // кабинет главная страница |
80 | Route::get('cabinet', [AdminController::class, 'index'])->name('index'); | 82 | Route::get('cabinet', [AdminController::class, 'index'])->name('index'); |
81 | 83 | ||
82 | // кабинет профиль админа - форма | 84 | // кабинет профиль админа - форма |
83 | Route::get('profile', [AdminController::class, 'profile'])->name('profile'); | 85 | Route::get('profile', [AdminController::class, 'profile'])->name('profile'); |
84 | // кабинет профиль админа - сохранение формы | 86 | // кабинет профиль админа - сохранение формы |
85 | Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile'); | 87 | Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile'); |
86 | 88 | ||
87 | // кабинет профиль - форма пароли | 89 | // кабинет профиль - форма пароли |
88 | Route::get('password', [AdminController::class, 'profile_password'])->name('password'); | 90 | Route::get('password', [AdminController::class, 'profile_password'])->name('password'); |
89 | // кабинет профиль - сохранение формы пароля | 91 | // кабинет профиль - сохранение формы пароля |
90 | Route::post('password', [AdminController::class, 'profile_password_new'])->name('password'); | 92 | Route::post('password', [AdminController::class, 'profile_password_new'])->name('password'); |
91 | 93 | ||
92 | 94 | ||
93 | // кабинет профиль пользователя - форма | 95 | // кабинет профиль пользователя - форма |
94 | Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile'); | 96 | Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile'); |
95 | // кабинет профиль пользователя - сохранение формы | 97 | // кабинет профиль пользователя - сохранение формы |
96 | Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile'); | 98 | Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile'); |
97 | 99 | ||
98 | // кабинет профиль работодатель - форма | 100 | // кабинет профиль работодатель - форма |
99 | Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile'); | 101 | Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile'); |
100 | // кабинет профиль работодатель - сохранение формы | 102 | // кабинет профиль работодатель - сохранение формы |
101 | Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile'); | 103 | Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile'); |
102 | 104 | ||
103 | // кабинет профиль работник - форма | 105 | // кабинет профиль работник - форма |
104 | Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile'); | 106 | Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile'); |
105 | 107 | ||
106 | // кабинет настройки сайта - форма | 108 | // кабинет настройки сайта - форма |
107 | Route::get('config', [AdminController::class, 'config_form'])->name('config'); | 109 | Route::get('config', [AdminController::class, 'config_form'])->name('config'); |
108 | // кабинет настройки сайта сохранение формы | 110 | // кабинет настройки сайта сохранение формы |
109 | Route::post('config', [AdminController::class, 'store_config'])->name('store_config'); | 111 | Route::post('config', [AdminController::class, 'store_config'])->name('store_config'); |
110 | 112 | ||
111 | // кабинет - пользователи | 113 | // кабинет - пользователи |
112 | Route::get('users', [UsersController::class, 'index'])->name('users'); | 114 | Route::get('users', [UsersController::class, 'index'])->name('users'); |
113 | 115 | ||
114 | // кабинет - пользователи | 116 | // кабинет - пользователи |
115 | Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users'); | 117 | Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users'); |
116 | 118 | ||
117 | // кабинет - работодатели | 119 | // кабинет - работодатели |
118 | Route::get('employers', [EmployersController::class, 'index'])->name('employers'); | 120 | Route::get('employers', [EmployersController::class, 'index'])->name('employers'); |
119 | 121 | ||
120 | // кабинет - соискатели | 122 | // кабинет - соискатели |
121 | Route::get('workers', [WorkersController::class, 'index'])->name('workers'); | 123 | Route::get('workers', [WorkersController::class, 'index'])->name('workers'); |
122 | 124 | ||
123 | // кабинет - вакансии | 125 | // кабинет - вакансии |
124 | Route::get('ad-employers', [Ad_EmployersController::class, 'index'])->name('ad-employers'); | 126 | Route::get('ad-employers', [Ad_EmployersController::class, 'index'])->name('ad-employers'); |
125 | 127 | ||
126 | // кабинет - категории | 128 | // кабинет - категории |
127 | //Route::get('categories', [AdminController::class, 'index'])->name('categories'); | 129 | //Route::get('categories', [AdminController::class, 'index'])->name('categories'); |
128 | /* | 130 | /* |
129 | * CRUD-операции над настройками Компании | 131 | * CRUD-операции над настройками Компании |
130 | */ | 132 | */ |
131 | Route::resource('categories', CategoryController::class, ['except' => ['show']]); | 133 | Route::resource('categories', CategoryController::class, ['except' => ['show']]); |
132 | 134 | ||
133 | 135 | ||
134 | // кабинет - должности | 136 | // кабинет - должности |
135 | Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles'); | 137 | Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles'); |
136 | 138 | ||
137 | // кабинет - сообщения | 139 | // кабинет - сообщения |
138 | Route::get('messages', [AdminController::class, 'index'])->name('messages'); | 140 | Route::get('messages', [MsgAnswersController::class, 'messages'])->name('messages'); |
139 | 141 | ||
140 | // кабинет - группы пользователей | 142 | // кабинет - группы пользователей |
141 | Route::get('groups', [AdminController::class, 'index'])->name('groups'); | 143 | Route::get('groups', [GroupsController::class, 'index'])->name('groups'); |
144 | // кабинет - добавление форма группы пользователей | ||
145 | Route::get('groups/add', [GroupsController::class, 'add'])->name('add-group'); | ||
146 | // кабинет - сохранение формы группы пользователей | ||
147 | Route::post('groups/add', [GroupsController::class, 'store'])->name('add-group-store'); | ||
148 | // кабинет - редактирование форма группы пользователей | ||
149 | Route::get('groups/edit/{group}', [GroupsController::class, 'edit'])->name('edit-group'); | ||
150 | // кабинет - сохранение редактированной формы группы пользователей | ||
151 | Route::post('groups/edit/{group}', [GroupsController::class, 'update'])->name('update-group'); | ||
142 | 152 | ||
143 | // кабинет - список админов | 153 | // кабинет - список админов |
144 | Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin'); | 154 | Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin'); |
145 | 155 | ||
146 | /////редактор////// кабинет - редактор сайта//////////////////////// | 156 | /////редактор////// кабинет - редактор сайта//////////////////////// |
147 | Route::get('editor-site', [CompanyController::class, 'editor'])->name('editor-site'); | 157 | Route::get('editor-site', [CompanyController::class, 'editor'])->name('editor-site'); |
148 | 158 | ||
149 | // кабинет - редактор шапки-футера сайта | 159 | // кабинет - редактор шапки-футера сайта |
150 | Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks'); | 160 | Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks'); |
151 | 161 | ||
152 | // кабинет - редактор должности на главной | 162 | // кабинет - редактор должности на главной |
153 | Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main'); | 163 | Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main'); |
154 | 164 | ||
155 | // кабинет - редактор работодатели на главной | 165 | // кабинет - редактор работодатели на главной |
156 | Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main'); | 166 | Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main'); |
157 | 167 | ||
158 | // кабинет - редактор seo-сайта | 168 | // кабинет - редактор seo-сайта |
159 | Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo'); | 169 | Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo'); |
160 | 170 | ||
161 | // кабинет - редактор страниц | 171 | // кабинет - редактор страниц |
162 | Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages'); | 172 | Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages'); |
163 | 173 | ||
164 | // кабинет - реклама сайта | 174 | // кабинет - реклама сайта |
165 | Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames'); | 175 | Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames'); |
166 | //////////////////////////////////////////////////////////////////////// | 176 | //////////////////////////////////////////////////////////////////////// |
167 | 177 | ||
168 | // кабинет - отзывы о работодателе для модерации | 178 | // кабинет - отзывы о работодателе для модерации |
169 | Route::get('answers', [EmployersController::class, 'answers'])->name('answers'); | 179 | Route::get('answers', [EmployersController::class, 'answers'])->name('answers'); |
170 | 180 | ||
171 | // Общая страница статистики | 181 | // Общая страница статистики |
172 | Route::get('statics', function () { | 182 | Route::get('statics', function () { |
173 | return view('admin.static.index'); | 183 | return view('admin.static.index'); |
174 | })->name('statics'); | 184 | })->name('statics'); |
175 | 185 | ||
176 | // кабинет - статистика работников | 186 | // кабинет - статистика работников |
177 | Route::get('static-workers', [WorkersController::class, 'static_workers'])->name('static-workers'); | 187 | Route::get('static-workers', [WorkersController::class, 'static_workers'])->name('static-workers'); |
178 | 188 | ||
179 | // кабинет - статистика вакансий работодателя | 189 | // кабинет - статистика вакансий работодателя |
180 | Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads'); | 190 | Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads'); |
181 | 191 | ||
182 | // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника | 192 | // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника |
183 | Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks'); | 193 | Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks'); |
184 | 194 | ||
185 | // кабинет - роли пользователя | 195 | // кабинет - роли пользователя |
186 | Route::get('roles', [UsersController::class, 'roles'])->name('roles'); | 196 | Route::get('roles', [UsersController::class, 'roles'])->name('roles'); |
187 | 197 | ||
188 | }); | 198 | }); |
189 | 199 |