Commit 8de0354752f13a42cee695de578d97b9140e6585

Authored by Андрей Ларионов
1 parent 02a1ed535c

Создание: Структура БД и админки

Showing 23 changed files with 1456 additions and 47 deletions Inline Diff

app/Http/Controllers/Admin/AdminController.php
1 <?php 1 <?php
2 2
3 namespace App\Http\Controllers\Admin; 3 namespace App\Http\Controllers\Admin;
4 4
5 use App\Http\Controllers\Controller; 5 use App\Http\Controllers\Controller;
6 use App\Models\Employer; 6 use App\Models\Employer;
7 use App\Models\User; 7 use App\Models\User;
8 use Illuminate\Http\Request; 8 use Illuminate\Http\Request;
9 use Illuminate\Support\Facades\Auth; 9 use Illuminate\Support\Facades\Auth;
10 use Illuminate\Support\Facades\Hash; 10 use Illuminate\Support\Facades\Hash;
11 use Illuminate\Support\Facades\Validator;
11 12
12 class AdminController extends Controller 13 class AdminController extends Controller
13 { 14 {
14 /** 15 /**
15 * Handle the incoming request. 16 * Handle the incoming request.
16 * 17 *
17 * @param \Illuminate\Http\Request $request 18 * @param \Illuminate\Http\Request $request
18 * @return \Illuminate\Http\Response 19 * @return \Illuminate\Http\Response
19 */ 20 */
20 public function __invoke(Request $request) 21 public function __invoke(Request $request)
21 { 22 {
22 // 23 //
23 } 24 }
24 25
25 public function register() { 26 public function register() {
26 return view('admin.register'); 27 return view('admin.register');
27 } 28 }
28 29
29 public function create(Request $request) { 30 public function create(Request $request) {
30 $request->validate([ 31
32 $rules = [
31 'name' => 'required|string|max:255', 33 'name' => 'required|string|max:255',
32 'email' => 'required|string|email|max:255|unique:users', 34 'email' => 'required|string|email|max:255|unique:users',
33 'password' => 'required|string|min:8|confirmed', 35 'password' => 'required|string|min:8|confirmed',
34 ]); 36 ];
35 37
36 User::create([ 38 $messages = [
37 'name' => $request->name, 39 'required' => 'Укажите обязательное поле «:attribute»',
38 'email' => $request->email, 40 'confirmed' => 'Пароли не совпадают',
39 'password' => Hash::make($request->password), 41 'email' => 'Введите корректный email',
40 ]); 42 'min' => [
41 43 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
42 return redirect() 44 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
43 ->route('admin.login') 45 ],
44 ->with('success', 'Вы успешно зарегистрировались'); 46 'max' => [
47 'string' => 'Поле «:attribute» должно быть не больше :max символов',
48 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
49 ],
50 ];
51
52 $validator = Validator::make($request->all(), $rules, $messages);
53
54 if ($validator->fails()) {
55 return back()->withErrors($validator)->withInput(); //->route('admin.register')
56
57 } else {
58 $params = $request->all();
59
60 User::create([
61 'name' => $request->name,
62 'email' => $request->email,
63 'password' => Hash::make($request->password),
64 ]);
65 return redirect()
66 ->route('admin.login')
67 ->with('success', 'Вы успешно зарегистрировались');
68 }
45 } 69 }
46 70
47 public function login() { 71 public function login() {
48 return view('admin.login'); 72 return view('admin.login');
49 } 73 }
50 74
51 // Аутентификация 75 // Аутентификация
52 public function autenticate(Request $request) { 76 public function autenticate(Request $request) {
53 $request->validate([ 77 //$request->validate(
78 $rules = [
54 'email' => 'required|string|email', 79 'email' => 'required|string|email',
55 'password' => 'required|string', 80 'password' => 'required|string',
56 ]); 81 ];
57 82
58 $credentials = $request->only('email', 'password'); 83 $messages = [
84 'required' => 'Укажите обязательное поле «:attribute»',
85 'email' => 'Введите корректный email',
86 'min' => [
87 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
88 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
89 ],
90 'max' => [
91 'string' => 'Поле «:attribute» должно быть не больше :max символов',
92 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
93 ],
94 ];
59 95
60 if (Auth::attempt($credentials, $request->has('remember'))) {
61 96
62 if (is_null(Auth::user()->email_verified_at)) 97 $validator = Validator::make($request->all(), $rules, $messages);
63 {
64 Auth::logout();
65 return redirect()
66 ->route('admin.login')
67 ->withErrors('Адрес почты не подтвержден');
68 }
69 98
70 if (!Auth::user()->admin) { 99 if ($validator->fails()) {
71 Auth::logout(); 100 return back()->withErrors($validator)->withInput();
72 return redirect()
73 ->route('admin.login')
74 ->withErrors('Вы не являетесь админом!');
75 101
76 } 102 } else {
77 103
78 return redirect() 104 $credentials = $request->only('email', 'password');
79 ->route('admin.index') 105
80 ->with('success', 'Вы вошли в личный кабинет.'); 106 if (Auth::attempt($credentials, $request->has('remember'))) {
107
108 if (is_null(Auth::user()->email_verified_at)) {
109 Auth::logout();
110 return back()->withErrors('Адрес почты не подтвержден')->withInput();
111 }
112
113 if (!Auth::user()->admin) {
114 Auth::logout();
115 return //redirect()->route('admin.login')
116 back()->withErrors('Вы не являетесь админом!')->withInput();;
117
118 }
119
120 return redirect()
121 ->route('admin.index')
122 ->with('success', 'Вы вошли в личный кабинет.');
123 }
81 } 124 }
82 125
83 return redirect() 126 return redirect()
84 ->route('admin.login') 127 ->route('admin.login')
85 ->withErrors('Неверный логин или пароль!'); 128 ->withErrors('Неверный логин или пароль!')->withInput();
129
86 } 130 }
87 131
88 public function logout() { 132 public function logout() {
89 Auth::logout(); 133 Auth::logout();
90 return redirect()->route('index') 134 return redirect()->route('index')
91 ->with('success', 'Вы вышли из личного кабинета'); 135 ->with('success', 'Вы вышли из личного кабинета');
92 } 136 }
93 137
94 public function index() { 138 public function index() {
95 $all_user = User::query()->count(); 139 $all_user = User::query()->count();
96 $all_employer = User::where('is_worker', '0')->count(); 140 $all_employer = User::where('is_worker', '0')->count();
97 $all_worker = User::where('is_worker', '1')->count(); 141 $all_worker = User::where('is_worker', '1')->count();
98 $all_admin = User::where('admin', '1')->count(); 142 $all_admin = User::where('admin', '1')->count();
99 return view('admin.index', compact('all_employer', 'all_user', 'all_worker', 'all_admin')); 143 return view('admin.index', compact('all_employer', 'all_user', 'all_worker', 'all_admin'));
100 } 144 }
101 145
146 public function index_admin(Request $request) {
147 if ($request->ajax()) {
148 $user = User::find($request->id);
149 $request->offsetUnset('id');
150 $user->update($request->all());
151 }
152
153 $users = User::where('admin', '1')->paginate(15);
app/Http/Controllers/Admin/EmployersController.php
File was created 1 <?php
2
3 namespace App\Http\Controllers\Admin;
4
5 use App\Http\Controllers\Controller;
6 use App\Models\User;
7 use Illuminate\Http\Request;
8
9 class EmployersController extends Controller
10 {
11 public function index(Request $request) {
12 if ($request->ajax()) {
13 $user = User::find($request->id);
14 $request->offsetUnset('id');
15 $user->update($request->all());
16 }
17
18 $users = User::where('is_worker', '0')->paginate(15);
19 if ($request->ajax()) {
20 return view('admin.employer.index_ajax', compact('users'));
21 } else {
22 return view('admin.employer.index', compact('users'));
23 }
24 }
25 }
26
app/Http/Controllers/Admin/UsersController.php
File was created 1 <?php
2
3 namespace App\Http\Controllers\Admin;
4
5 use App\Http\Controllers\Controller;
6 use App\Models\User;
7 use Illuminate\Http\Request;
8
9 class UsersController extends Controller
10 {
11 public function index(Request $request) {
12 if ($request->ajax()) {
13 $user = User::find($request->id);
14 $request->offsetUnset('id');
15 $user->update($request->all());
16 }
17
18 $users = User::query()->paginate(15);
19
20 if ($request->ajax()) {
21 return view('admin.users.index_ajax', compact('users'));
22 } else {
23 return view('admin.users.index', compact('users'));
24 }
25 }
26
27 }
28
app/Http/Controllers/Admin/WorkersController.php
File was created 1 <?php
2
3 namespace App\Http\Controllers\Admin;
4
5 use App\Http\Controllers\Controller;
6 use App\Models\User;
7 use Illuminate\Http\Request;
8
9 class WorkersController extends Controller
10 {
11 public function index(Request $request) {
12 if ($request->ajax()) {
13 $user = User::find($request->id);
14 $request->offsetUnset('id');
15 $user->update($request->all());
16 }
17
18 $users = User::where('is_worker', '1')->paginate(15);
19
20 if ($request->ajax()) {
21 return view('admin.worker.index_ajax', compact('users'));
22 } else {
23 return view('admin.worker.index', compact('users'));
24 }
25 }
26 }
27
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
12 protected $fillable = [
13 'name_company',
14 'email',
15 'telephone',
16 'logo',
17 'rate',
18 'user_id',
19 'sort',
20 'text',
21 'address',
22 'map',
23 'site',
24 ];
25
26 /*
27 * Связь таблицы users с таблицей employers
28 */
29 public function users() {
30 return $this->belongsTo(User::class, 'user_id');
31 }
32
11 } 33 }
12 34
1 <?php 1 <?php
2 2
3 namespace App\Models; 3 namespace App\Models;
4 4
5 // use Illuminate\Contracts\Auth\MustVerifyEmail; 5 // use Illuminate\Contracts\Auth\MustVerifyEmail;
6 use Illuminate\Database\Eloquent\Factories\HasFactory; 6 use Illuminate\Database\Eloquent\Factories\HasFactory;
7 use Illuminate\Foundation\Auth\User as Authenticatable; 7 use Illuminate\Foundation\Auth\User as Authenticatable;
8 use Illuminate\Notifications\Notifiable; 8 use Illuminate\Notifications\Notifiable;
9 use Laravel\Sanctum\HasApiTokens; 9 use Laravel\Sanctum\HasApiTokens;
10 10
11 class User extends Authenticatable 11 class User extends Authenticatable
12 { 12 {
13 use HasApiTokens, HasFactory, Notifiable; 13 use HasApiTokens, HasFactory, Notifiable;
14 14
15 /** 15 /**
16 * The attributes that are mass assignable. 16 * The attributes that are mass assignable.
17 * 17 *
18 * @var array<int, string> 18 * @var array<int, string>
19 */ 19 */
20 protected $fillable = [ 20 protected $fillable = [
21 'name', 21 'name',
22 'email', 22 'email',
23 'password', 23 'password',
24 'admin',
25 'telephone',
26 'surname',
27 'name_man',
28 'surname2',
29 'is_worker',
30 'is_lookin',
31 'is_message',
32 'is_public',
33 'is_remove',
34 'is_ban',
35 'is_new',
24 ]; 36 ];
25 37
26 /** 38 /**
27 * The attributes that should be hidden for serialization. 39 * The attributes that should be hidden for serialization.
28 * 40 *
29 * @var array<int, string> 41 * @var array<int, string>
30 */ 42 */
31 protected $hidden = [ 43 protected $hidden = [
32 'password', 44 'password',
33 'remember_token', 45 'remember_token',
34 ]; 46 ];
35 47
36 /** 48 /**
37 * The attributes that should be cast. 49 * The attributes that should be cast.
38 * 50 *
39 * @var array<string, string> 51 * @var array<string, string>
40 */ 52 */
41 protected $casts = [ 53 protected $casts = [
42 'email_verified_at' => 'datetime', 54 'email_verified_at' => 'datetime',
43 ]; 55 ];
56
57 /*
58 * Связь Пользователей системы с работодателями
59 * users - employers
60 */
61 public function employers() {
62 return $this->hasMany(Employer::class);
63 }
64
65 /*
66 * Связь Пользователей системы с работниками
67 * users - workers
68 */
69 public function workers() {
70 return $this->hasMany(Worker::class);
71 }
72
73 /*
74 * Связь Пользователей системы с группами юзеров
75 * users - group_users
76 */
77 public function groups() {
78 return $this->hasMany(Group_user::class);
79 }
80
81 /*
82 * Связь Пользователей системы с ссобщениями
83 * users - messages
84 */
85 public function messages() {
86 return $this->hasMany(Message::class);
87 }
88
89 /*
90 * Связь Пользователей системы с статистика
91 * users - static_workers
92 */
93 public function static_user() {
94 return $this->hasMany(Static_worker::class);
95 }
96
97
44 } 98 }
45 99
app/Models/Worker.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 Worker extends Model 8 class Worker extends Model
9 { 9 {
10 use HasFactory; 10 use HasFactory;
11
12 protected $fillable = [
13 'user_id',
14 'status_work',
15 'position_work',
16 'telephone',
17 'telephone2',
18 'persent_anketa',
19 'photo',
20 'email_data',
21 'status_profile',
22 'old_year',
23 'experience',
24 'en_is',
25 'education',
26 'email',
27 'interpassport',
28 'mk',
29 'vvp',
30 'vlm',
31 'reka_diplom',
32 'more_diplom',
33 'mpss',
34 'tanker',
35 'gmssb',
36 'resume',
37 'sort',
38 'updated_at',
39 'text',
40 'address',
41 'city',
42 ];
43
44 /*
45 * Связь таблицы users с таблицей workers
46 */
47 public function users() {
48 return $this->belongsTo(User::class, 'user_id');
49 }
11 } 50 }
12 51
database/migrations/2023_05_17_090650_alter_group_users_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('group_users', function (Blueprint $table) {
17 $table->bigInteger('user_id')->nullable(false);
18 });
19 }
20
21 /**
22 * Reverse the migrations.
23 *
24 * @return void
25 */
26 public function down()
27 {
28 Schema::table('group_users', function (Blueprint $table) {
29 $table->dropColumn('user_id');
30 });
31 }
32 };
33
database/migrations/2023_05_17_090749_alter_messages_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('messages', function (Blueprint $table) {
17 $table->string('title', 255)->nullable(true);
18 $table->string('file', 255)->nullable(true);
19 });
20 }
21
22 /**
23 * Reverse the migrations.
24 *
25 * @return void
26 */
27 public function down()
28 {
29 Schema::table('messages', function (Blueprint $table) {
30 $table->dropColumn('title');
31 $table->dropColumn('file');
32 });
33 }
34 };
35
database/migrations/2023_05_17_090923_alter_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('employers', function (Blueprint $table) {
17 $table->string('address', 255)->nullable(true);
18 $table->string('map', 255)->nullable(true);
19 $table->string('site', 255)->nullable(true);
20 });
21 }
22
23 /**
24 * Reverse the migrations.
25 *
26 * @return void
27 */
28 public function down()
29 {
30 Schema::table('employers', function (Blueprint $table) {
31 $table->dropColumn('address');
32 $table->dropColumn('map');
33 $table->dropColumn('site');
34 });
35 }
36 };
37
database/migrations/2023_05_17_090944_alter_workers_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('workers', function (Blueprint $table) {
17 $table->string('address', 255)->nullable(true);
18 $table->string('city', 255)->nullable(true);
19 $table->text('text')->nullable(true);
20 });
21 }
22
23 /**
24 * Reverse the migrations.
25 *
26 * @return void
27 */
28 public function down()
29 {
30 Schema::table('workers', function (Blueprint $table) {
31 $table->dropColumn('address');
32 $table->dropColumn('city');
33 $table->dropColumn('text');
34 });
35 }
36 };
37
database/migrations/2023_05_17_095512_alter_users_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('users', function (Blueprint $table) {
17 $table->boolean('is_remove')->default(false);
18 $table->boolean('is_ban')->default(false);
19 $table->boolean('is_new')->default(true);
20 });
21 }
22
23 /**
24 * Reverse the migrations.
25 *
26 * @return void
27 */
28 public function down()
29 {
30 Schema::table('users', function (Blueprint $table) {
31 $table->dropColumn('is_remove');
32 $table->dropColumn('is_ban');
33 $table->dropColumn('is_new');
34 });
35 }
36 };
37
resources/views/admin/employer/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('content')
42 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block">
43 <div class="w-full overflow-x-auto">
44 <table class="w-full whitespace-no-wrap">
45 <thead>
46 <tr
47 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"
48 >
49 <th class="px-4 py-3">№</th>
50 <th class="px-4 py-3">Название компании</th>
51 <th class="px-4 py-3">Email/Телефон</th>
52 <th class="px-4 py-3">Имя</th>
53 <th class="px-4 py-3">Дата регистрации</th>
54 <th class="px-4 py-3">Изменить</th>
55 <th class="px-4 py-3">Блокировать</th>
56 </tr>
57 </thead>
58 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
59 @foreach($users as $user)
60 <tr class="text-gray-700 dark:text-gray-400">
61 <td class="px-4 py-3">
62 {{$user->id}}
63 </td>
64 <td class="px-4 py-3">
65 {{$user->name}}
66 </td>
67 <td class="px-4 py-3">
68 <div class="flex items-center text-sm">
69 <!--<div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
70 <div
71 class="absolute inset-0 rounded-full shadow-inner"
72 aria-hidden="true"
73 ></div>
74 </div>-->
75 <div>
76 <p class="font-semibold">{{ empty($user->employers->email) ? $user->email : $user->employers->email }}</p>
77 <p class="text-xs text-gray-600 dark:text-gray-400">
78 {{ empty($user->employers->telephone) ? $user->telephone : $user->employers->telephone }}
79 </p>
80 </div>
81 </div>
82
83 </td>
84 <td class="px-4 py-3 text-sm">
85 {{ $user->name_man }}
86 </td>
87 <td class="px-4 py-3 text-sm">
88 {{ $user->created_at }}
89 </td>
90 <td class="px-4 py-3 text-sm">
91 <a href="">Изменить</a>
92 </td>
93 <td class="px-4 py-3 text-sm">
94 <input type="checkbox" class="checkban" value="{{$user->id}}" name="ban_{{$user->id}}" {{ ($user->is_ban) ? "checked" : "" }}/>
95 </td>
96 </tr>
97 @endforeach
98 </tbody>
99 </table>
100 </div>
101
102 <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">
103 <?=$users->appends($_GET)->links('admin.pagginate'); ?>
104 </div>
105 </div>
106 @endsection
107
resources/views/admin/employer/index_ajax.blade.php
File was created 1 <div class="w-full overflow-x-auto">
2 <table class="w-full whitespace-no-wrap">
3 <thead>
4 <tr
5 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"
6 >
7 <th class="px-4 py-3">№</th>
8 <th class="px-4 py-3">Название компании</th>
9 <th class="px-4 py-3">Email/Телефон</th>
10 <th class="px-4 py-3">Имя</th>
11 <th class="px-4 py-3">Дата регистрации</th>
12 <th class="px-4 py-3">Изменить</th>
13 <th class="px-4 py-3">Блокировать</th>
14 </tr>
15 </thead>
16 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
17 @foreach($users as $user)
18 <tr class="text-gray-700 dark:text-gray-400">
19 <td class="px-4 py-3">
20 {{$user->id}}
21 </td>
22 <td class="px-4 py-3">
23 {{$user->name}}
24 </td>
25 <td class="px-4 py-3">
26 <div class="flex items-center text-sm">
27 <!--<div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
28 <div
29 class="absolute inset-0 rounded-full shadow-inner"
30 aria-hidden="true"
31 ></div>
32 </div>-->
33 <div>
34 <p class="font-semibold">{{ empty($user->employers->email) ? $user->email : $user->employers->email }}</p>
35 <p class="text-xs text-gray-600 dark:text-gray-400">
36 {{ empty($user->employers->telephone) ? $user->telephone : $user->employers->telephone }}
37 </p>
38 </div>
39 </div>
40
41 </td>
42 <td class="px-4 py-3 text-sm">
43 {{ $user->name_man }}
44 </td>
45 <td class="px-4 py-3 text-sm">
46 {{ $user->created_at }}
47 </td>
48 <td class="px-4 py-3 text-sm">
49 <a href="">Изменить</a>
50 </td>
51 <td class="px-4 py-3 text-sm">
52 <input type="checkbox" class="checkban" value="{{$user->id}}" name="ban_{{$user->id}}" {{ ($user->is_ban) ? "checked" : "" }}/>
53 </td>
54 </tr>
55 @endforeach
56 </tbody>
57 </table>
58 </div>
59
60 <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">
61 <?//=$users->appends($_GET)->links('admin.pagginate'); ?>
62 <?=$users->links('admin.pagginate'); ?>
63 </div>
64
65
resources/views/admin/login.blade.php
1 @extends('layout.authorize', ['title' => 'Вход в административную панель']) 1 @extends('layout.authorize', ['title' => 'Вход в административную панель'])
2 2
3 @section('image') 3 @section('image')
4 <img 4 <img
5 aria-hidden="true" 5 aria-hidden="true"
6 class="object-cover w-full h-full dark:hidden" 6 class="object-cover w-full h-full dark:hidden"
7 src="{{ asset('assets/img/login-office.jpeg') }}" 7 src="{{ asset('assets/img/login-office.jpeg') }}"
8 alt="Office" 8 alt="Office"
9 /> 9 />
10 <img 10 <img
11 aria-hidden="true" 11 aria-hidden="true"
12 class="hidden object-cover w-full h-full dark:block" 12 class="hidden object-cover w-full h-full dark:block"
13 src="{{ asset('assets/img/login-office-dark.jpeg') }}" 13 src="{{ asset('assets/img/login-office-dark.jpeg') }}"
14 alt="Office" 14 alt="Office"
15 /> 15 />
16 @endsection 16 @endsection
17 17
18 @section('content') 18 @section('content')
19 <h1 class="mb-4 text-xl font-semibold text-gray-700 dark:text-gray-200"> 19 <h1 class="mb-4 text-xl font-semibold text-gray-700 dark:text-gray-200">
20 Авторизация 20 Авторизация
21 </h1> 21 </h1>
22 22
23 <form method="post" action="{{ route('admin.auth') }}"> 23 <form method="post" action="{{ route('admin.auth') }}">
24 @csrf 24 @csrf
25 <label class="block text-sm"> 25 <label class="block text-sm">
26 <span class="text-gray-700 dark:text-gray-400">Email</span> 26 <span class="text-gray-700 dark:text-gray-400">Email</span>
27 <input name="email" 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" 27 <input name="email" 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"
28 placeholder="Email пользователя"/> 28 placeholder="Email пользователя" value="{{ old('email') }}"/>
29 </label> 29 </label>
30 <label class="block mt-4 text-sm"> 30 <label class="block mt-4 text-sm">
31 <span class="text-gray-700 dark:text-gray-400">Пароль</span> 31 <span class="text-gray-700 dark:text-gray-400">Пароль</span>
32 <input 32 <input
33 name="password" 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" 33 name="password" 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"
34 placeholder="Пароль" 34 placeholder="Пароль"
35 type="password" 35 type="password"
36 /> 36 />
37 </label> 37 </label>
38 <div class="form-group form-check"> 38 <div class="form-group form-check">
39 <input type="checkbox" class="form-check-input" name="remember" id="remember"> 39 <input type="checkbox" class="form-check-input" name="remember" id="remember">
40 <label class="form-check-label" for="remember"> 40 <label class="form-check-label" for="remember">
41 Запомнить меня 41 Запомнить меня
42 </label> 42 </label>
43 </div> 43 </div>
44 44
45 <!-- You should use a button here, as the anchor is only used for the example --> 45 <!-- You should use a button here, as the anchor is only used for the example -->
46 <button type="submit" 46 <button type="submit"
47 class="block w-full px-4 py-2 mt-4 text-sm font-medium leading-5 text-center 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" 47 class="block w-full px-4 py-2 mt-4 text-sm font-medium leading-5 text-center 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"
48 > 48 >
49 Войти 49 Войти
50 </button> 50 </button>
51 </form> 51 </form>
52 <hr class="my-8" /> 52 <hr class="my-8" />
53 <!-- 53 <!--
54 <button 54 <button
55 class="flex items-center justify-center w-full px-4 py-2 text-sm font-medium leading-5 text-white text-gray-700 transition-colors duration-150 border border-gray-300 rounded-lg dark:text-gray-400 active:bg-transparent hover:border-gray-500 focus:border-gray-500 active:text-gray-500 focus:outline-none focus:shadow-outline-gray" 55 class="flex items-center justify-center w-full px-4 py-2 text-sm font-medium leading-5 text-white text-gray-700 transition-colors duration-150 border border-gray-300 rounded-lg dark:text-gray-400 active:bg-transparent hover:border-gray-500 focus:border-gray-500 active:text-gray-500 focus:outline-none focus:shadow-outline-gray"
56 > 56 >
57 <svg 57 <svg
58 class="w-4 h-4 mr-2" 58 class="w-4 h-4 mr-2"
59 aria-hidden="true" 59 aria-hidden="true"
60 viewBox="0 0 24 24" 60 viewBox="0 0 24 24"
61 fill="currentColor" 61 fill="currentColor"
62 > 62 >
63 <path 63 <path
64 d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" 64 d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"
65 /> 65 />
66 </svg> 66 </svg>
67 Github 67 Github
68 </button> 68 </button>
69 <button 69 <button
70 class="flex items-center justify-center w-full px-4 py-2 mt-4 text-sm font-medium leading-5 text-white text-gray-700 transition-colors duration-150 border border-gray-300 rounded-lg dark:text-gray-400 active:bg-transparent hover:border-gray-500 focus:border-gray-500 active:text-gray-500 focus:outline-none focus:shadow-outline-gray" 70 class="flex items-center justify-center w-full px-4 py-2 mt-4 text-sm font-medium leading-5 text-white text-gray-700 transition-colors duration-150 border border-gray-300 rounded-lg dark:text-gray-400 active:bg-transparent hover:border-gray-500 focus:border-gray-500 active:text-gray-500 focus:outline-none focus:shadow-outline-gray"
71 > 71 >
72 <svg 72 <svg
73 class="w-4 h-4 mr-2" 73 class="w-4 h-4 mr-2"
74 aria-hidden="true" 74 aria-hidden="true"
75 viewBox="0 0 24 24" 75 viewBox="0 0 24 24"
76 fill="currentColor" 76 fill="currentColor"
77 > 77 >
78 <path 78 <path
79 d="M23.954 4.569c-.885.389-1.83.654-2.825.775 1.014-.611 1.794-1.574 2.163-2.723-.951.555-2.005.959-3.127 1.184-.896-.959-2.173-1.559-3.591-1.559-2.717 0-4.92 2.203-4.92 4.917 0 .39.045.765.127 1.124C7.691 8.094 4.066 6.13 1.64 3.161c-.427.722-.666 1.561-.666 2.475 0 1.71.87 3.213 2.188 4.096-.807-.026-1.566-.248-2.228-.616v.061c0 2.385 1.693 4.374 3.946 4.827-.413.111-.849.171-1.296.171-.314 0-.615-.03-.916-.086.631 1.953 2.445 3.377 4.604 3.417-1.68 1.319-3.809 2.105-6.102 2.105-.39 0-.779-.023-1.17-.067 2.189 1.394 4.768 2.209 7.557 2.209 9.054 0 13.999-7.496 13.999-13.986 0-.209 0-.42-.015-.63.961-.689 1.8-1.56 2.46-2.548l-.047-.02z" 79 d="M23.954 4.569c-.885.389-1.83.654-2.825.775 1.014-.611 1.794-1.574 2.163-2.723-.951.555-2.005.959-3.127 1.184-.896-.959-2.173-1.559-3.591-1.559-2.717 0-4.92 2.203-4.92 4.917 0 .39.045.765.127 1.124C7.691 8.094 4.066 6.13 1.64 3.161c-.427.722-.666 1.561-.666 2.475 0 1.71.87 3.213 2.188 4.096-.807-.026-1.566-.248-2.228-.616v.061c0 2.385 1.693 4.374 3.946 4.827-.413.111-.849.171-1.296.171-.314 0-.615-.03-.916-.086.631 1.953 2.445 3.377 4.604 3.417-1.68 1.319-3.809 2.105-6.102 2.105-.39 0-.779-.023-1.17-.067 2.189 1.394 4.768 2.209 7.557 2.209 9.054 0 13.999-7.496 13.999-13.986 0-.209 0-.42-.015-.63.961-.689 1.8-1.56 2.46-2.548l-.047-.02z"
80 /> 80 />
81 </svg> 81 </svg>
82 Twitter 82 Twitter
83 </button> 83 </button>
84 --> 84 -->
85 <!-- <p class="mt-4"> 85 <!-- <p class="mt-4">
86 <a 86 <a
87 class="text-sm font-medium text-purple-600 dark:text-purple-400 hover:underline" 87 class="text-sm font-medium text-purple-600 dark:text-purple-400 hover:underline"
88 href="./forgot-password.html" 88 href="./forgot-password.html"
89 > 89 >
90 Forgot your password? 90 Forgot your password?
91 </a> 91 </a>
92 </p>--> 92 </p>-->
93 <p class="mt-1"> 93 <p class="mt-1">
94 <a 94 <a
95 class="text-sm font-medium text-purple-600 dark:text-purple-400 hover:underline" 95 class="text-sm font-medium text-purple-600 dark:text-purple-400 hover:underline"
96 href="{{ route('admin.register') }}" 96 href="{{ route('admin.register') }}"
97 > 97 >
98 Создание аккаунта 98 Создание аккаунта
99 </a> 99 </a>
100 </p> 100 </p>
101 @endsection 101 @endsection
102 102
resources/views/admin/pagginate.blade.php
File was created 1 @if ($paginator->hasPages())
2 <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end">
3 <nav aria-label="Table navigation">
4 <ul class="inline-flex items-center">
5 @if ($paginator->onFirstPage())
6 <li>
7 <button
8 class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple"
9 aria-label="Previous"
10 >
11 <svg
12 aria-hidden="true"
13 class="w-4 h-4 fill-current"
14 viewBox="0 0 20 20"
15 >
16 <path
17 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"
18 clip-rule="evenodd"
19 fill-rule="evenodd"
20 ></path>
21 </svg>
22 </button>
23 </li>
24 @else
25 <li>
26 <a href="{{ $paginator->previousPageUrl() }}"
27 class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple"
28 aria-label="Previous"
29 >
30 <svg
31 aria-hidden="true"
32 class="w-4 h-4 fill-current"
33 viewBox="0 0 20 20"
34 >
35 <path
36 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"
37 clip-rule="evenodd"
38 fill-rule="evenodd"
39 ></path>
40 </svg>
41 </a>
42 </li>
43 @endif
44
45 @foreach ($elements as $element)
46 @if (is_string($element))
47
48 <li class="disabled pagination__item"><span>{{ $element }}</span></li>
49
50 @endif
51 @if (is_array($element))
52 @foreach ($element as $page => $url)
53 @if ($page == $paginator->currentPage())
54 <li>
55 <button 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">
56 {{$page}}
57 </button>
58 </li>
59 @else
60 <li>
61 <a href="{{$url}}" class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">
62 {{$page}}
63 </a>
64 </li>
65 @endif
66 @endforeach
67 @endif
68 @endforeach
69
70 @if ($paginator->hasMorePages())
71 <li>
72 <a href="{{ $paginator->nextPageUrl() }}"
73 class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple"
74 aria-label="Next"
75 >
76 <svg
77 class="w-4 h-4 fill-current"
78 aria-hidden="true"
79 viewBox="0 0 20 20"
80 >
81 <path
82 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"
83 clip-rule="evenodd"
84 fill-rule="evenodd"
85 ></path>
86 </svg>
87 </a>
88 </li>
89 @else
90 <li>
91 <button
92 class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple"
93 aria-label="Next"
94 >
95 <svg
96 class="w-4 h-4 fill-current"
97 aria-hidden="true"
98 viewBox="0 0 20 20"
99 >
100 <path
101 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"
102 clip-rule="evenodd"
103 fill-rule="evenodd"
104 ></path>
105 </svg>
106 </button>
107 </li>
108 @endif
109 </ul>
110 </nav>
111 </span>
112 @endif
113
resources/views/admin/register.blade.php
1 @extends('layout.authorize', ['title' => 'Регистрация в административной панели']) 1 @extends('layout.authorize', ['title' => 'Регистрация в административной панели'])
2 2
3 @section('image') 3 @section('image')
4 <img 4 <img
5 aria-hidden="true" 5 aria-hidden="true"
6 class="object-cover w-full h-full dark:hidden" 6 class="object-cover w-full h-full dark:hidden"
7 src="{{ asset('assets/img/create-account-office.jpeg') }}" 7 src="{{ asset('assets/img/create-account-office.jpeg') }}"
8 alt="Office" 8 alt="Office"
9 /> 9 />
10 <img 10 <img
11 aria-hidden="true" 11 aria-hidden="true"
12 class="hidden object-cover w-full h-full dark:block" 12 class="hidden object-cover w-full h-full dark:block"
13 src="{{ asset('assets/img/create-account-office-dark.jpeg') }}" 13 src="{{ asset('assets/img/create-account-office-dark.jpeg') }}"
14 alt="Office" 14 alt="Office"
15 /> 15 />
16 @endsection 16 @endsection
17 17
18 @section('content') 18 @section('content')
19 <h1 19 <h1
20 class="mb-4 text-xl font-semibold text-gray-700 dark:text-gray-200" 20 class="mb-4 text-xl font-semibold text-gray-700 dark:text-gray-200"
21 > 21 >
22 Создание аккаунта 22 Создание аккаунта
23 </h1> 23 </h1>
24 <form method="POST" action="{{ route('admin.create') }}"> 24 <form method="POST" action="{{ route('admin.create') }}">
25 @csrf 25 @csrf
26 <label class="block text-sm"> 26 <label class="block text-sm">
27 <span class="text-gray-700 dark:text-gray-400">Имя</span> 27 <span class="text-gray-700 dark:text-gray-400">Имя</span>
28 <input id="name" name="name" 28 <input id="name" name="name"
29 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" 29 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"
30 placeholder="Введите имя" value="{{ old('name') }}" 30 placeholder="Введите имя" value="{{ old('name') }}"
31 /> 31 />
32 @error('name') 32 @error('name')
33 <span class="invalid-feedback" role="alert"> 33 <span class="invalid-feedback" role="alert">
34 <strong>{{ $message }}</strong> 34 <strong>{{ $message }}</strong>
35 </span> 35 </span>
36 @enderror 36 @enderror
37 </label> 37 </label>
38 38
39 <label class="block text-sm"> 39 <label class="block text-sm">
40 <span class="text-gray-700 dark:text-gray-400">Email</span> 40 <span class="text-gray-700 dark:text-gray-400">Email</span>
41 <input id="email" name="email" type="email" 41 <input id="email" name="email" type="email"
42 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" 42 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"
43 placeholder="Введите email" value="{{ old('email') }}" 43 placeholder="Введите email" value="{{ old('email') }}" autocomplete="email"
44 /> 44 />
45 @error('email') 45 @error('email')
46 <span class="invalid-feedback" role="alert"> 46 <span class="invalid-feedback" role="alert">
47 <strong>{{ $message }}</strong> 47 <strong>{{ $message }}</strong>
48 </span> 48 </span>
49 @enderror 49 @enderror
50 </label> 50 </label>
51 51
52 <label class="block mt-4 text-sm"> 52 <label class="block mt-4 text-sm">
53 <span class="text-gray-700 dark:text-gray-400">Пароль</span> 53 <span class="text-gray-700 dark:text-gray-400">Пароль</span>
54 <input id="password" name="password" 54 <input id="password" name="password"
55 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" 55 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"
56 placeholder="Пароль" 56 placeholder="Пароль"
57 type="password" 57 type="password"
58 /> 58 />
59 @error('password') 59 @error('password')
60 <span class="invalid-feedback" role="alert"> 60 <span class="invalid-feedback" role="alert">
61 <strong>{{ $message }}</strong> 61 <strong>{{ $message }}</strong>
62 </span> 62 </span>
63 @enderror 63 @enderror
64 </label> 64 </label>
65 65
66 <label class="block mt-4 text-sm"> 66 <label class="block mt-4 text-sm">
67 <span class="text-gray-700 dark:text-gray-400"> 67 <span class="text-gray-700 dark:text-gray-400">
68 Подтверждение пароля 68 Подтверждение пароля
69 </span> 69 </span>
70 <input id="password-confirm" name="password_confirmation" 70 <input id="password-confirm" name="password_confirmation"
71 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" 71 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"
72 placeholder="Подтверждение пароля" 72 placeholder="Подтверждение пароля"
73 type="password" 73 type="password"
74 /> 74 />
75 </label> 75 </label>
76 76
77 <div class="flex mt-6 text-sm"> 77 <div class="flex mt-6 text-sm">
78 <label class="flex items-center dark:text-gray-400"> 78 <label class="flex items-center dark:text-gray-400">
79 <input 79 <input
80 type="checkbox" 80 type="checkbox"
81 class="text-purple-600 form-checkbox focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" 81 class="text-purple-600 form-checkbox focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
82 /> 82 />
83 <span class="ml-2"> 83 <span class="ml-2">
84 Я принимаю условия 84 Я принимаю условия
85 <span class="underline">политики безопасности</span> 85 <span class="underline">политики безопасности</span>
86 </span> 86 </span>
87 </label> 87 </label>
88 </div> 88 </div>
89 89
90 <!-- You should use a button here, as the anchor is only used for the example --> 90 <!-- You should use a button here, as the anchor is only used for the example -->
91 <button 91 <button
92 class="block w-full px-4 py-2 mt-4 text-sm font-medium leading-5 text-center 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" 92 class="block w-full px-4 py-2 mt-4 text-sm font-medium leading-5 text-center 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"
93 type="submit" 93 type="submit"
94 > 94 >
95 Создать пользователя 95 Создать пользователя
96 </button> 96 </button>
97 </form> 97 </form>
98 <hr class="my-8" /> 98 <hr class="my-8" />
99 99
100 <!--<button 100 <!--<button
101 class="flex items-center justify-center w-full px-4 py-2 text-sm font-medium leading-5 text-white text-gray-700 transition-colors duration-150 border border-gray-300 rounded-lg dark:text-gray-400 active:bg-transparent hover:border-gray-500 focus:border-gray-500 active:text-gray-500 focus:outline-none focus:shadow-outline-gray" 101 class="flex items-center justify-center w-full px-4 py-2 text-sm font-medium leading-5 text-white text-gray-700 transition-colors duration-150 border border-gray-300 rounded-lg dark:text-gray-400 active:bg-transparent hover:border-gray-500 focus:border-gray-500 active:text-gray-500 focus:outline-none focus:shadow-outline-gray"
102 > 102 >
103 <svg 103 <svg
104 class="w-4 h-4 mr-2" 104 class="w-4 h-4 mr-2"
105 aria-hidden="true" 105 aria-hidden="true"
106 viewBox="0 0 24 24" 106 viewBox="0 0 24 24"
107 fill="currentColor" 107 fill="currentColor"
108 > 108 >
109 <path 109 <path
110 d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" 110 d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"
111 /> 111 />
112 </svg> 112 </svg>
113 Github 113 Github
114 </button> 114 </button>
115 <button 115 <button
116 class="flex items-center justify-center w-full px-4 py-2 mt-4 text-sm font-medium leading-5 text-white text-gray-700 transition-colors duration-150 border border-gray-300 rounded-lg dark:text-gray-400 active:bg-transparent hover:border-gray-500 focus:border-gray-500 active:text-gray-500 focus:outline-none focus:shadow-outline-gray" 116 class="flex items-center justify-center w-full px-4 py-2 mt-4 text-sm font-medium leading-5 text-white text-gray-700 transition-colors duration-150 border border-gray-300 rounded-lg dark:text-gray-400 active:bg-transparent hover:border-gray-500 focus:border-gray-500 active:text-gray-500 focus:outline-none focus:shadow-outline-gray"
117 > 117 >
118 <svg 118 <svg
119 class="w-4 h-4 mr-2" 119 class="w-4 h-4 mr-2"
120 aria-hidden="true" 120 aria-hidden="true"
121 viewBox="0 0 24 24" 121 viewBox="0 0 24 24"
122 fill="currentColor" 122 fill="currentColor"
123 > 123 >
124 <path 124 <path
125 d="M23.954 4.569c-.885.389-1.83.654-2.825.775 1.014-.611 1.794-1.574 2.163-2.723-.951.555-2.005.959-3.127 1.184-.896-.959-2.173-1.559-3.591-1.559-2.717 0-4.92 2.203-4.92 4.917 0 .39.045.765.127 1.124C7.691 8.094 4.066 6.13 1.64 3.161c-.427.722-.666 1.561-.666 2.475 0 1.71.87 3.213 2.188 4.096-.807-.026-1.566-.248-2.228-.616v.061c0 2.385 1.693 4.374 3.946 4.827-.413.111-.849.171-1.296.171-.314 0-.615-.03-.916-.086.631 1.953 2.445 3.377 4.604 3.417-1.68 1.319-3.809 2.105-6.102 2.105-.39 0-.779-.023-1.17-.067 2.189 1.394 4.768 2.209 7.557 2.209 9.054 0 13.999-7.496 13.999-13.986 0-.209 0-.42-.015-.63.961-.689 1.8-1.56 2.46-2.548l-.047-.02z" 125 d="M23.954 4.569c-.885.389-1.83.654-2.825.775 1.014-.611 1.794-1.574 2.163-2.723-.951.555-2.005.959-3.127 1.184-.896-.959-2.173-1.559-3.591-1.559-2.717 0-4.92 2.203-4.92 4.917 0 .39.045.765.127 1.124C7.691 8.094 4.066 6.13 1.64 3.161c-.427.722-.666 1.561-.666 2.475 0 1.71.87 3.213 2.188 4.096-.807-.026-1.566-.248-2.228-.616v.061c0 2.385 1.693 4.374 3.946 4.827-.413.111-.849.171-1.296.171-.314 0-.615-.03-.916-.086.631 1.953 2.445 3.377 4.604 3.417-1.68 1.319-3.809 2.105-6.102 2.105-.39 0-.779-.023-1.17-.067 2.189 1.394 4.768 2.209 7.557 2.209 9.054 0 13.999-7.496 13.999-13.986 0-.209 0-.42-.015-.63.961-.689 1.8-1.56 2.46-2.548l-.047-.02z"
126 /> 126 />
127 </svg> 127 </svg>
128 Twitter 128 Twitter
129 </button>--> 129 </button>-->
130 130
131 <p class="mt-4"> 131 <p class="mt-4">
132 <a 132 <a
133 class="text-sm font-medium text-purple-600 dark:text-purple-400 hover:underline" 133 class="text-sm font-medium text-purple-600 dark:text-purple-400 hover:underline"
134 href="./login.html" 134 href="./login.html"
135 > 135 >
136 Already have an account? Login 136 Already have an account? Login
137 </a> 137 </a>
138 </p> 138 </p>
139 @endsection 139 @endsection
140 140
resources/views/admin/users/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 $(document).on('click', '.checknew', function () {
38 var this_ = $(this);
39 var value = this_.val();
40 var ajax_block = $('#ajax_block');
41 var bool = 0;
42
43 if(this.checked){
44 bool = 1;
45 } else {
46 bool = 0;
47 }
48
49 $.ajax({
50 type: "GET",
51 url: "{{ url()->full()}}",
52 data: "id=" + value + "&is_new=" + bool,
53 success: function (data) {
54 console.log('Обновление таблицы пользователей ');
55 //data = JSON.parse(data);
56 console.log(data);
57 ajax_block.html(data);
58 },
59 headers: {
60 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
61 },
62 error: function (data) {
63 console.log('Error: ' + data);
64 }
65 });
66 });
67 });
68 </script>
69 @endsection
70
71 @section('content')
72 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block">
73 <div class="w-full overflow-x-auto">
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">Email/логин</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 <th class="px-4 py-3">Дата регистрации</th>
86 </tr>
87 </thead>
88 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
89 @foreach($users as $user)
90 <tr class="text-gray-700 dark:text-gray-400">
91 <td class="px-4 py-3">
92 {{$user->id}}
93 </td>
94 <td class="px-4 py-3">
95 <!--<div class="flex items-center text-sm">
96 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
97 <div
98 class="absolute inset-0 rounded-full shadow-inner"
99 aria-hidden="true"
100 ></div>
101 </div>
102 <div>
103 <p class="font-semibold"><a href="{{ route('admin.users') }}">Пользователи</a></p>
104 <p class="text-xs text-gray-600 dark:text-gray-400">
105 Все пользователи сайта
106 </p>
107 </div>
108 </div>
109 -->
110 {{ $user->name }}
111 </td>
112 <td class="px-4 py-3 text-sm">
113 {{ $user->email }}
114 </td>
115 <td class="px-4 py-3 text-xs">
116 <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 @if ($user->is_worker)
118 Работник
119 @else
120 Работодатель
121 @endif
122 </span>
123 @if ($user->admin)
124 <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">
125 Администратор
126 </span>
127 @endif
128 </td>
129 <td class="px-4 py-3 text-sm">
130 <input type="checkbox" class="checkban" value="{{$user->id}}" name="ban_{{$user->id}}" {{ ($user->is_ban) ? "checked" : "" }}/>
131 </td>
132 <td class="px-4 py-3 text-sm">
133 <input type="checkbox" class="checknew" value="{{$user->id}}" name="new_{{$user->id}}" {{ ($user->is_new) ? "checked" : "" }}/>
134 </td>
135 <td class="px-4 py-3 text-sm">
136 {{ $user->created_at }}
137 </td>
138 </tr>
139 @endforeach
140 </tbody>
141 </table>
142 </div>
143
144 <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">
145 <?//=$users->appends($_GET)->links('admin.pagginate'); ?>
146 <?=$users->links('admin.pagginate'); ?>
147 </div>
148
149
150 <!--<div
151 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"
152 >
153 <span class="flex items-center col-span-3">
154 Showing 21-30 of 100
155 </span>
156 <span class="col-span-2"></span>
157
158 <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end">
159 <nav aria-label="Table navigation">
160 <ul class="inline-flex items-center">
161 <li>
162 <button
163 class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple"
164 aria-label="Previous"
165 >
166 <svg
167 aria-hidden="true"
168 class="w-4 h-4 fill-current"
169 viewBox="0 0 20 20"
170 >
171 <path
172 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"
173 clip-rule="evenodd"
174 fill-rule="evenodd"
175 ></path>
176 </svg>
177 </button>
178 </li>
179 <li>
180 <button
181 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
182 >
183 1
184 </button>
185 </li>
186 <li>
187 <button
188 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
189 >
190 2
191 </button>
192 </li>
193 <li>
194 <button
195 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"
196 >
197 3
198 </button>
199 </li>
200 <li>
201 <button
202 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
203 >
204 4
205 </button>
206 </li>
207 <li>
208 <span class="px-3 py-1">...</span>
209 </li>
210 <li>
211 <button
212 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
213 >
214 8
215 </button>
216 </li>
217 <li>
218 <button
219 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
220 >
221 9
222 </button>
223 </li>
224 <li>
225 <button
226 class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple"
227 aria-label="Next"
228 >
229 <svg
230 class="w-4 h-4 fill-current"
231 aria-hidden="true"
232 viewBox="0 0 20 20"
233 >
234 <path
235 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"
236 clip-rule="evenodd"
237 fill-rule="evenodd"
238 ></path>
239 </svg>
240 </button>
241 </li>
242 </ul>
243 </nav>
244 </span>
245 </div>-->
246 </div>
247
248 <?//=$users->appends($_GET)->links('catalogs.paginate'); ?>
249
250
251 @endsection
252
resources/views/admin/users/index_ajax.blade.php
File was created 1 <div class="w-full overflow-x-auto">
2 <table class="w-full whitespace-no-wrap">
3 <thead>
4 <tr
5 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"
6 >
7 <th class="px-4 py-3">№</th>
8 <th class="px-4 py-3">Имя</th>
9 <th class="px-4 py-3">Email/логин</th>
10 <th class="px-4 py-3">Работодатель/работник/администратор</th>
11 <th class="px-4 py-3">Заблокированный</th>
12 <th class="px-4 py-3">Новый</th>
13 <th class="px-4 py-3">Дата регистрации</th>
14 </tr>
15 </thead>
16 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
17 @foreach($users as $user)
18 <tr class="text-gray-700 dark:text-gray-400">
19 <td class="px-4 py-3">
20 {{$user->id}}
21 </td>
22 <td class="px-4 py-3">
23 {{ $user->name }}
24 </td>
25 <td class="px-4 py-3 text-sm">
26 {{ $user->email }}
27 </td>
28 <td class="px-4 py-3 text-xs">
29 <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">
30 @if ($user->is_worker)
31 Работник
32 @else
33 Работодатель
34 @endif
35 </span>
36 @if ($user->admin)
37 <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">
38 Администратор
39 </span>
40 @endif
41 </td>
42 <td class="px-4 py-3 text-sm">
43 <input type="checkbox" class="checkban" value="{{$user->id}}" name="ban_{{$user->id}}" {{ ($user->is_ban) ? "checked" : "" }}/>
44 </td>
45 <td class="px-4 py-3 text-sm">
46 <input type="checkbox" class="checknew" value="{{$user->id}}" name="new_{{$user->id}}" {{ ($user->is_new) ? "checked" : "" }}/>
47 </td>
48 <td class="px-4 py-3 text-sm">
49 {{ $user->created_at }}
50 </td>
51 </tr>
52 @endforeach
53 </tbody>
54 </table>
55 </div>
56
57 <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">
58 <?//=$users->appends($_GET)->links('admin.pagginate'); ?>
59 <?=$users->links('admin.pagginate'); ?>
60 </div>
61
resources/views/admin/worker/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('content')
42 <div class="w-full overflow-hidden rounded-lg shadow-xs">
43 <div class="w-full overflow-x-auto">
44 <table class="w-full whitespace-no-wrap">
45 <thead>
46 <tr
47 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"
48 >
49 <th class="px-4 py-3">№</th>
50 <th class="px-4 py-3">Имя</th>
51 <th class="px-4 py-3">Email/Телефон</th>
52 <th class="px-4 py-3">% заполнения анкеты</th>
53 <th class="px-4 py-3">Дата регистрации</th>
54 <th class="px-4 py-3">Изменить</th>
55 <th class="px-4 py-3">Блокировать</th>
56 </tr>
57 </thead>
58 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
59 @foreach($users as $user)
60 <tr class="text-gray-700 dark:text-gray-400">
61 <td class="px-4 py-3">
62 {{$user->id}}
63 </td>
64 <td class="px-4 py-3">
65 {{ !empty($user->name_man) ? $user->name_man : $user->name }}
66 </td>
67 <td class="px-4 py-3 text-sm">
68 <div class="flex items-center text-sm">
69 <div>
70 <p class="font-semibold">{{ empty($user->workers->email) ? $user->email : $user->workers->email }}</p>
71 <p class="text-xs text-gray-600 dark:text-gray-400">
72 {{ empty($user->workers->telephone) ? $user->telephone : $user->workers->telephone }}
73 </p>
74 </div>
75 </div>
76 </td>
77 <td class="px-4 py-3 text-xs">
78 @if (!empty($user->workers->persent_anketa))
79 @if ($user->workers->persent_anketa > 40)
80 <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">
81 {{$user->workers->persent_anketa}}%
82 </span>
83 @else
84 <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">
85 {{$user->workers->persent_anketa}}%
86 </span>
87 @endif
88 @else
89 <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">
90 10%
91 </span>
92 @endif
93 </td>
94 <td class="px-4 py-3 text-sm">
95 {{ $user->created_at }}
96 </td>
97 <td class="px-4 py-3 text-sm">
98 <a href="">Изменить</a>
99 </td>
100 <td class="px-4 py-3 text-sm">
101 <input type="checkbox" class="checkban" value="{{$user->id}}" name="ban_{{$user->id}}" {{ ($user->is_ban) ? "checked" : "" }}/>
102 </td>
103 </tr>
104 @endforeach
105 </tbody>
106 </table>
107 </div>
108
109 <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">
110 <?=$users->appends($_GET)->links('admin.pagginate'); ?>
111 </div>
112
113
114 <!--<div
115 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"
116 >
117 <span class="flex items-center col-span-3">
118 Showing 21-30 of 100
119 </span>
120 <span class="col-span-2"></span>
121
122 <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end">
123 <nav aria-label="Table navigation">
124 <ul class="inline-flex items-center">
125 <li>
126 <button
127 class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple"
128 aria-label="Previous"
129 >
130 <svg
131 aria-hidden="true"
132 class="w-4 h-4 fill-current"
133 viewBox="0 0 20 20"
134 >
135 <path
136 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"
137 clip-rule="evenodd"
138 fill-rule="evenodd"
139 ></path>
140 </svg>
141 </button>
142 </li>
143 <li>
144 <button
145 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
146 >
147 1
148 </button>
149 </li>
150 <li>
151 <button
152 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
153 >
154 2
155 </button>
156 </li>
157 <li>
158 <button
159 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"
160 >
161 3
162 </button>
163 </li>
164 <li>
165 <button
166 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
167 >
168 4
169 </button>
170 </li>
171 <li>
172 <span class="px-3 py-1">...</span>
173 </li>
174 <li>
175 <button
176 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
177 >
178 8
179 </button>
180 </li>
181 <li>
182 <button
183 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
184 >
185 9
186 </button>
187 </li>
188 <li>
189 <button
190 class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple"
191 aria-label="Next"
192 >
193 <svg
194 class="w-4 h-4 fill-current"
195 aria-hidden="true"
196 viewBox="0 0 20 20"
197 >
198 <path
199 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"
200 clip-rule="evenodd"
201 fill-rule="evenodd"
202 ></path>
203 </svg>
204 </button>
205 </li>
206 </ul>
207 </nav>
208 </span>
209 </div>-->
210 </div>
211
212 <?//=$users->appends($_GET)->links('catalogs.paginate'); ?>
213
214
215 @endsection
216
resources/views/admin/worker/index_ajax.blade.php
File was created 1 @extends('layout.admin', ['title' => 'Админка - Работники'])
2
3 @section('content')
4 <div class="w-full overflow-hidden rounded-lg shadow-xs">
5 <div class="w-full overflow-x-auto">
6 <table class="w-full whitespace-no-wrap">
7 <thead>
8 <tr
9 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"
10 >
11 <th class="px-4 py-3">№</th>
12 <th class="px-4 py-3">Имя</th>
13 <th class="px-4 py-3">Email/логин</th>
14 <th class="px-4 py-3">Работодатель/работник</th>
15 <th class="px-4 py-3">Дата регистрации</th>
16 </tr>
17 </thead>
18 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
19 @foreach($users as $user)
20 <tr class="text-gray-700 dark:text-gray-400">
21 <td class="px-4 py-3">
22 {{$user->id}}
23 </td>
24 <td class="px-4 py-3">
25 <!--<div class="flex items-center text-sm">
26 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
27 <div
28 class="absolute inset-0 rounded-full shadow-inner"
29 aria-hidden="true"
30 ></div>
31 </div>
32 <div>
33 <p class="font-semibold"><a href="{{ route('admin.users') }}">Пользователи</a></p>
34 <p class="text-xs text-gray-600 dark:text-gray-400">
35 Все пользователи сайта
36 </p>
37 </div>
38 </div>
39 -->
40 {{ $user->name }}
41 </td>
42 <td class="px-4 py-3 text-sm">
43 {{ $user->email }}
44 </td>
45 <td class="px-4 py-3 text-xs">
46 <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">
47 @if ($user->is_worker)
48 Работник
49 @else
50 Работодатель
51 @endif
52 </span>
53 @if ($user->admin)
54 <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">
55 Администратор
56 </span>
57 @endif
58 </td>
59 <td class="px-4 py-3 text-sm">
60 {{ $user->created_at }}
61 </td>
62 </tr>
63 @endforeach
64 </tbody>
65 </table>
66 </div>
67
68 <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">
69 <?=$users->appends($_GET)->links('admin.pagginate'); ?>
70 </div>
71
72
73 <!--<div
74 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"
75 >
76 <span class="flex items-center col-span-3">
77 Showing 21-30 of 100
78 </span>
79 <span class="col-span-2"></span>
80
81 <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end">
82 <nav aria-label="Table navigation">
83 <ul class="inline-flex items-center">
84 <li>
85 <button
86 class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple"
87 aria-label="Previous"
88 >
89 <svg
90 aria-hidden="true"
91 class="w-4 h-4 fill-current"
92 viewBox="0 0 20 20"
93 >
94 <path
95 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"
96 clip-rule="evenodd"
97 fill-rule="evenodd"
98 ></path>
99 </svg>
100 </button>
101 </li>
102 <li>
103 <button
104 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
105 >
106 1
107 </button>
108 </li>
109 <li>
110 <button
111 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
112 >
113 2
114 </button>
115 </li>
116 <li>
117 <button
118 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"
119 >
120 3
121 </button>
122 </li>
123 <li>
124 <button
125 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
126 >
127 4
128 </button>
129 </li>
130 <li>
131 <span class="px-3 py-1">...</span>
132 </li>
133 <li>
134 <button
135 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
136 >
137 8
138 </button>
139 </li>
140 <li>
141 <button
142 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
143 >
144 9
145 </button>
146 </li>
147 <li>
148 <button
149 class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple"
150 aria-label="Next"
151 >
152 <svg
153 class="w-4 h-4 fill-current"
154 aria-hidden="true"
155 viewBox="0 0 20 20"
156 >
157 <path
158 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"
159 clip-rule="evenodd"
160 fill-rule="evenodd"
161 ></path>
162 </svg>
163 </button>
164 </li>
165 </ul>
166 </nav>
167 </span>
168 </div>-->
169 </div>
170
171 <?//=$users->appends($_GET)->links('catalogs.paginate'); ?>
172
173
174 @endsection
175
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 17 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"/>
18 rel="stylesheet" 18 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js" defer></script>
19 href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css" 19 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
20 />
21 <script
22 src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"
23 defer
24 ></script>
25 <script src="{{ asset('./assets/js/charts-lines.js') }}" defer></script> 20 <script src="{{ asset('./assets/js/charts-lines.js') }}" defer></script>
26 <script src="{{ asset('./assets/js/charts-pie.js') }}" defer></script> 21 <script src="{{ asset('./assets/js/charts-pie.js') }}" defer></script>
27 </head> 22 </head>
28 <body> 23 <body>
29 <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 }">
30 <!-- Desktop sidebar --> 25 <!-- Desktop sidebar -->
31 <aside 26 <aside
32 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"
33 > 28 >
34 <div class="py-4 text-gray-500 dark:text-gray-400"> 29 <div class="py-4 text-gray-500 dark:text-gray-400">
35 <a 30 <a
36 class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" 31 class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
37 href="{{ route('admin.index') }}" 32 href="{{ route('admin.index') }}"
38 > 33 >
39 Админка 34 Админка
40 </a> 35 </a>
41 <ul class="mt-6"> 36 <ul class="mt-6">
42 <li class="relative px-6 py-3"> 37 <li class="relative px-6 py-3">
43 <span 38 <span
44 class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" 39 class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
45 aria-hidden="true" 40 aria-hidden="true"
46 ></span> 41 ></span>
47 <a 42 <a
48 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" 43 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"
49 href="{{ route('admin.index') }}" 44 href="{{ route('admin.index') }}"
50 > 45 >
51 <svg 46 <svg
52 class="w-5 h-5" 47 class="w-5 h-5"
53 aria-hidden="true" 48 aria-hidden="true"
54 fill="none" 49 fill="none"
55 stroke-linecap="round" 50 stroke-linecap="round"
56 stroke-linejoin="round" 51 stroke-linejoin="round"
57 stroke-width="2" 52 stroke-width="2"
58 viewBox="0 0 24 24" 53 viewBox="0 0 24 24"
59 stroke="currentColor" 54 stroke="currentColor"
60 > 55 >
61 <path 56 <path
62 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" 57 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"
63 ></path> 58 ></path>
64 </svg> 59 </svg>
65 <span class="ml-4">Главная страница</span> 60 <span class="ml-4">Главная страница</span>
66 </a> 61 </a>
67 </li> 62 </li>
68 </ul> 63 </ul>
69 <ul> 64 <ul>
70 <li class="relative px-6 py-3"> 65 <li class="relative px-6 py-3">
71 <a 66 <a
72 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 67 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
73 href="{{ route('admin.users') }}" 68 href="{{ route('admin.users') }}"
74 > 69 >
75 <svg 70 <svg
76 class="w-5 h-5" 71 class="w-5 h-5"
77 aria-hidden="true" 72 aria-hidden="true"
78 fill="none" 73 fill="none"
79 stroke-linecap="round" 74 stroke-linecap="round"
80 stroke-linejoin="round" 75 stroke-linejoin="round"
81 stroke-width="2" 76 stroke-width="2"
82 viewBox="0 0 24 24" 77 viewBox="0 0 24 24"
83 stroke="currentColor" 78 stroke="currentColor"
84 > 79 >
85 <path 80 <path
86 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" 81 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"
87 ></path> 82 ></path>
88 </svg> 83 </svg>
89 <span class="ml-4">Пользователи</span> 84 <span class="ml-4">Пользователи</span>
90 </a> 85 </a>
91 </li> 86 </li>
92 <li class="relative px-6 py-3"> 87 <li class="relative px-6 py-3">
93 <a 88 <a
94 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 89 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
95 href="{{ route('admin.employers') }}" 90 href="{{ route('admin.employers') }}"
96 > 91 >
97 <svg 92 <svg
98 class="w-5 h-5" 93 class="w-5 h-5"
99 aria-hidden="true" 94 aria-hidden="true"
100 fill="none" 95 fill="none"
101 stroke-linecap="round" 96 stroke-linecap="round"
102 stroke-linejoin="round" 97 stroke-linejoin="round"
103 stroke-width="2" 98 stroke-width="2"
104 viewBox="0 0 24 24" 99 viewBox="0 0 24 24"
105 stroke="currentColor" 100 stroke="currentColor"
106 > 101 >
107 <path 102 <path
108 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" 103 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"
109 ></path> 104 ></path>
110 </svg> 105 </svg>
111 <span class="ml-4">Работодатели</span> 106 <span class="ml-4">Работодатели</span>
112 </a> 107 </a>
113 </li> 108 </li>
114 <li class="relative px-6 py-3"> 109 <li class="relative px-6 py-3">
115 <a 110 <a
116 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 111 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
117 href="{{ route('admin.workers') }}" 112 href="{{ route('admin.workers') }}"
118 > 113 >
119 <svg 114 <svg
120 class="w-5 h-5" 115 class="w-5 h-5"
121 aria-hidden="true" 116 aria-hidden="true"
122 fill="none" 117 fill="none"
123 stroke-linecap="round" 118 stroke-linecap="round"
124 stroke-linejoin="round" 119 stroke-linejoin="round"
125 stroke-width="2" 120 stroke-width="2"
126 viewBox="0 0 24 24" 121 viewBox="0 0 24 24"
127 stroke="currentColor" 122 stroke="currentColor"
128 > 123 >
129 <path 124 <path
130 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" 125 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
131 ></path> 126 ></path>
132 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> 127 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
133 </svg> 128 </svg>
134 <span class="ml-4">Соискатели</span> 129 <span class="ml-4">Соискатели</span>
135 </a> 130 </a>
136 </li> 131 </li>
137 <li class="relative px-6 py-3"> 132 <li class="relative px-6 py-3">
138 <a 133 <a
139 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 134 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
140 href="{{ route('admin.ad-employers') }}" 135 href="{{ route('admin.ad-employers') }}"
141 > 136 >
142 <svg 137 <svg
143 class="w-5 h-5" 138 class="w-5 h-5"
144 aria-hidden="true" 139 aria-hidden="true"
145 fill="none" 140 fill="none"
146 stroke-linecap="round" 141 stroke-linecap="round"
147 stroke-linejoin="round" 142 stroke-linejoin="round"
148 stroke-width="2" 143 stroke-width="2"
149 viewBox="0 0 24 24" 144 viewBox="0 0 24 24"
150 stroke="currentColor" 145 stroke="currentColor"
151 > 146 >
152 <path 147 <path
153 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" 148 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"
154 ></path> 149 ></path>
155 </svg> 150 </svg>
156 <span class="ml-4">Вакансии</span> 151 <span class="ml-4">Вакансии</span>
157 </a> 152 </a>
158 </li> 153 </li>
159 <li class="relative px-6 py-3"> 154 <li class="relative px-6 py-3">
160 <a 155 <a
161 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 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
162 href="{{ route('admin.categories') }}" 157 href="{{ route('admin.categories') }}"
163 > 158 >
164 <svg 159 <svg
165 class="w-5 h-5" 160 class="w-5 h-5"
166 aria-hidden="true" 161 aria-hidden="true"
167 fill="none" 162 fill="none"
168 stroke-linecap="round" 163 stroke-linecap="round"
169 stroke-linejoin="round" 164 stroke-linejoin="round"
170 stroke-width="2" 165 stroke-width="2"
171 viewBox="0 0 24 24" 166 viewBox="0 0 24 24"
172 stroke="currentColor" 167 stroke="currentColor"
173 > 168 >
174 <path 169 <path
175 d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" 170 d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
176 ></path> 171 ></path>
177 </svg> 172 </svg>
178 <span class="ml-4">Категории</span> 173 <span class="ml-4">Категории</span>
179 </a> 174 </a>
180 </li> 175 </li>
181 <li class="relative px-6 py-3"> 176 <li class="relative px-6 py-3">
182 <a 177 <a
183 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 178 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
184 href="{{ route('admin.job-titles') }}" 179 href="{{ route('admin.job-titles') }}"
185 > 180 >
186 <svg 181 <svg
187 class="w-5 h-5" 182 class="w-5 h-5"
188 aria-hidden="true" 183 aria-hidden="true"
189 fill="none" 184 fill="none"
190 stroke-linecap="round" 185 stroke-linecap="round"
191 stroke-linejoin="round" 186 stroke-linejoin="round"
192 stroke-width="2" 187 stroke-width="2"
193 viewBox="0 0 24 24" 188 viewBox="0 0 24 24"
194 stroke="currentColor" 189 stroke="currentColor"
195 > 190 >
196 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 191 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
197 </svg> 192 </svg>
198 <span class="ml-4">Должности</span> 193 <span class="ml-4">Должности</span>
199 </a> 194 </a>
200 </li> 195 </li>
201 <li class="relative px-6 py-3"> 196 <li class="relative px-6 py-3">
202 <a 197 <a
203 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 198 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
204 href="{{ route('admin.messages') }}" 199 href="{{ route('admin.messages') }}"
205 > 200 >
206 <svg 201 <svg
207 class="w-5 h-5" 202 class="w-5 h-5"
208 aria-hidden="true" 203 aria-hidden="true"
209 fill="none" 204 fill="none"
210 stroke-linecap="round" 205 stroke-linecap="round"
211 stroke-linejoin="round" 206 stroke-linejoin="round"
212 stroke-width="2" 207 stroke-width="2"
213 viewBox="0 0 24 24" 208 viewBox="0 0 24 24"
214 stroke="currentColor" 209 stroke="currentColor"
215 > 210 >
216 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 211 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
217 </svg> 212 </svg>
218 <span class="ml-4">Сообщения</span> 213 <span class="ml-4">Сообщения</span>
219 </a> 214 </a>
220 </li> 215 </li>
221 <li class="relative px-6 py-3"> 216 <li class="relative px-6 py-3">
222 <a 217 <a
223 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 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
224 href="{{ route('admin.groups') }}" 219 href="{{ route('admin.groups') }}"
225 > 220 >
226 <svg 221 <svg
227 class="w-5 h-5" 222 class="w-5 h-5"
228 aria-hidden="true" 223 aria-hidden="true"
229 fill="none" 224 fill="none"
230 stroke-linecap="round" 225 stroke-linecap="round"
231 stroke-linejoin="round" 226 stroke-linejoin="round"
232 stroke-width="2" 227 stroke-width="2"
233 viewBox="0 0 24 24" 228 viewBox="0 0 24 24"
234 stroke="currentColor" 229 stroke="currentColor"
235 > 230 >
236 <path 231 <path
237 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" 232 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"
238 ></path> 233 ></path>
239 </svg> 234 </svg>
240 <span class="ml-4">Группы пользователей</span> 235 <span class="ml-4">Группы пользователей</span>
241 </a> 236 </a>
242 </li> 237 </li>
243 <li class="relative px-6 py-3"> 238 <li class="relative px-6 py-3">
244 <button 239 <button
245 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" 240 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"
246 @click="togglePagesMenu" 241 @click="togglePagesMenu"
247 aria-haspopup="true" 242 aria-haspopup="true"
248 > 243 >
249 <span class="inline-flex items-center"> 244 <span class="inline-flex items-center">
250 <svg 245 <svg
251 class="w-5 h-5" 246 class="w-5 h-5"
252 aria-hidden="true" 247 aria-hidden="true"
253 fill="none" 248 fill="none"
254 stroke-linecap="round" 249 stroke-linecap="round"
255 stroke-linejoin="round" 250 stroke-linejoin="round"
256 stroke-width="2" 251 stroke-width="2"
257 viewBox="0 0 24 24" 252 viewBox="0 0 24 24"
258 stroke="currentColor" 253 stroke="currentColor"
259 > 254 >
260 <path 255 <path
261 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 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"
262 ></path> 257 ></path>
263 </svg> 258 </svg>
264 <span class="ml-4">Страницы</span> 259 <span class="ml-4">Страницы</span>
265 </span> 260 </span>
266 <svg 261 <svg
267 class="w-4 h-4" 262 class="w-4 h-4"
268 aria-hidden="true" 263 aria-hidden="true"
269 fill="currentColor" 264 fill="currentColor"
270 viewBox="0 0 20 20" 265 viewBox="0 0 20 20"
271 > 266 >
272 <path 267 <path
273 fill-rule="evenodd" 268 fill-rule="evenodd"
274 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 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"
275 clip-rule="evenodd" 270 clip-rule="evenodd"
276 ></path> 271 ></path>
277 </svg> 272 </svg>
278 </button> 273 </button>
279 <template x-if="isPagesMenuOpen"> 274 <template x-if="isPagesMenuOpen">
280 <ul 275 <ul
281 x-transition:enter="transition-all ease-in-out duration-300" 276 x-transition:enter="transition-all ease-in-out duration-300"
282 x-transition:enter-start="opacity-25 max-h-0" 277 x-transition:enter-start="opacity-25 max-h-0"
283 x-transition:enter-end="opacity-100 max-h-xl" 278 x-transition:enter-end="opacity-100 max-h-xl"
284 x-transition:leave="transition-all ease-in-out duration-300" 279 x-transition:leave="transition-all ease-in-out duration-300"
285 x-transition:leave-start="opacity-100 max-h-xl" 280 x-transition:leave-start="opacity-100 max-h-xl"
286 x-transition:leave-end="opacity-0 max-h-0" 281 x-transition:leave-end="opacity-0 max-h-0"
287 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 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"
288 aria-label="submenu" 283 aria-label="submenu"
289 > 284 >
290 <li 285 <li
291 class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 286 class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
292 > 287 >
293 <a class="w-full" href="pages/login.html">Login</a> 288 <a class="w-full" href="pages/login.html">Login</a>
294 </li> 289 </li>
295 <li 290 <li
296 class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 291 class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
297 > 292 >
298 <a class="w-full" href="pages/create-account.html"> 293 <a class="w-full" href="pages/create-account.html">
299 Create account 294 Create account
300 </a> 295 </a>
301 </li> 296 </li>
302 <li 297 <li
303 class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 298 class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
304 > 299 >
305 <a class="w-full" href="pages/forgot-password.html"> 300 <a class="w-full" href="pages/forgot-password.html">
306 Forgot password 301 Forgot password
307 </a> 302 </a>
308 </li> 303 </li>
309 <li 304 <li
310 class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 305 class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
311 > 306 >
312 <a class="w-full" href="pages/404.html">404</a> 307 <a class="w-full" href="pages/404.html">404</a>
313 </li> 308 </li>
314 <li 309 <li
315 class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 310 class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
316 > 311 >
317 <a class="w-full" href="pages/blank.html">Blank</a> 312 <a class="w-full" href="pages/blank.html">Blank</a>
318 </li> 313 </li>
319 </ul> 314 </ul>
320 </template> 315 </template>
321 </li> 316 </li>
322 </ul> 317 </ul>
323 <!--<div class="px-6 my-6"> 318 <!--<div class="px-6 my-6">
324 <button 319 <button
325 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" 320 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"
326 > 321 >
327 Create account 322 Create account
328 <span class="ml-2" aria-hidden="true">+</span> 323 <span class="ml-2" aria-hidden="true">+</span>
329 </button> 324 </button>
330 </div>--> 325 </div>-->
331 </div> 326 </div>
332 </aside> 327 </aside>
333 <!-- Mobile sidebar --> 328 <!-- Mobile sidebar -->
334 <!-- Backdrop --> 329 <!-- Backdrop -->
335 <div 330 <div
336 x-show="isSideMenuOpen" 331 x-show="isSideMenuOpen"
337 x-transition:enter="transition ease-in-out duration-150" 332 x-transition:enter="transition ease-in-out duration-150"
338 x-transition:enter-start="opacity-0" 333 x-transition:enter-start="opacity-0"
339 x-transition:enter-end="opacity-100" 334 x-transition:enter-end="opacity-100"
340 x-transition:leave="transition ease-in-out duration-150" 335 x-transition:leave="transition ease-in-out duration-150"
341 x-transition:leave-start="opacity-100" 336 x-transition:leave-start="opacity-100"
342 x-transition:leave-end="opacity-0" 337 x-transition:leave-end="opacity-0"
343 class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center" 338 class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center"
344 ></div> 339 ></div>
345 <aside 340 <aside
346 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" 341 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"
347 x-show="isSideMenuOpen" 342 x-show="isSideMenuOpen"
348 x-transition:enter="transition ease-in-out duration-150" 343 x-transition:enter="transition ease-in-out duration-150"
349 x-transition:enter-start="opacity-0 transform -translate-x-20" 344 x-transition:enter-start="opacity-0 transform -translate-x-20"
350 x-transition:enter-end="opacity-100" 345 x-transition:enter-end="opacity-100"
351 x-transition:leave="transition ease-in-out duration-150" 346 x-transition:leave="transition ease-in-out duration-150"
352 x-transition:leave-start="opacity-100" 347 x-transition:leave-start="opacity-100"
353 x-transition:leave-end="opacity-0 transform -translate-x-20" 348 x-transition:leave-end="opacity-0 transform -translate-x-20"
354 @click.away="closeSideMenu" 349 @click.away="closeSideMenu"
355 @keydown.escape="closeSideMenu" 350 @keydown.escape="closeSideMenu"
356 > 351 >
357 <div class="py-4 text-gray-500 dark:text-gray-400"> 352 <div class="py-4 text-gray-500 dark:text-gray-400">
358 <a 353 <a
359 class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" 354 class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
360 href="{{ route('admin.index') }}" 355 href="{{ route('admin.index') }}"
361 > 356 >
362 Админка 357 Админка
363 </a> 358 </a>
364 <ul class="mt-6"> 359 <ul class="mt-6">
365 <li class="relative px-6 py-3"> 360 <li class="relative px-6 py-3">
366 <span 361 <span
367 class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" 362 class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
368 aria-hidden="true" 363 aria-hidden="true"
369 ></span> 364 ></span>
370 <a 365 <a
371 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" 366 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"
372 href="{{ route('admin.index') }}" 367 href="{{ route('admin.index') }}"
373 > 368 >
374 <svg 369 <svg
375 class="w-5 h-5" 370 class="w-5 h-5"
376 aria-hidden="true" 371 aria-hidden="true"
377 fill="none" 372 fill="none"
378 stroke-linecap="round" 373 stroke-linecap="round"
379 stroke-linejoin="round" 374 stroke-linejoin="round"
380 stroke-width="2" 375 stroke-width="2"
381 viewBox="0 0 24 24" 376 viewBox="0 0 24 24"
382 stroke="currentColor" 377 stroke="currentColor"
383 > 378 >
384 <path 379 <path
385 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" 380 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"
386 ></path> 381 ></path>
387 </svg> 382 </svg>
388 <span class="ml-4">Главная страница</span> 383 <span class="ml-4">Главная страница</span>
389 </a> 384 </a>
390 </li> 385 </li>
391 </ul> 386 </ul>
392 <ul> 387 <ul>
393 <li class="relative px-6 py-3"> 388 <li class="relative px-6 py-3">
394 <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" 389 <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"
395 href="{{ route('admin.users') }}"> 390 href="{{ route('admin.users') }}">
396 <svg 391 <svg
397 class="w-5 h-5" 392 class="w-5 h-5"
398 aria-hidden="true" 393 aria-hidden="true"
399 fill="none" 394 fill="none"
400 stroke-linecap="round" 395 stroke-linecap="round"
401 stroke-linejoin="round" 396 stroke-linejoin="round"
402 stroke-width="2" 397 stroke-width="2"
403 viewBox="0 0 24 24" 398 viewBox="0 0 24 24"
404 stroke="currentColor" 399 stroke="currentColor"
405 > 400 >
406 <path 401 <path
407 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" 402 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"
408 ></path> 403 ></path>
409 </svg> 404 </svg>
410 <span class="ml-4">Пользователи</span> 405 <span class="ml-4">Пользователи</span>
411 </a> 406 </a>
412 </li> 407 </li>
413 <li class="relative px-6 py-3"> 408 <li class="relative px-6 py-3">
414 <a 409 <a
415 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 410 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
416 href="{{ route('admin.employers') }}" 411 href="{{ route('admin.employers') }}"
417 > 412 >
418 <svg 413 <svg
419 class="w-5 h-5" 414 class="w-5 h-5"
420 aria-hidden="true" 415 aria-hidden="true"
421 fill="none" 416 fill="none"
422 stroke-linecap="round" 417 stroke-linecap="round"
423 stroke-linejoin="round" 418 stroke-linejoin="round"
424 stroke-width="2" 419 stroke-width="2"
425 viewBox="0 0 24 24" 420 viewBox="0 0 24 24"
426 stroke="currentColor" 421 stroke="currentColor"
427 > 422 >
428 <path 423 <path
429 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" 424 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"
430 ></path> 425 ></path>
431 </svg> 426 </svg>
432 <span class="ml-4">Работодатели</span> 427 <span class="ml-4">Работодатели</span>
433 </a> 428 </a>
434 </li> 429 </li>
435 <li class="relative px-6 py-3"> 430 <li class="relative px-6 py-3">
436 <a 431 <a
437 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 432 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
438 href="{{ route('admin.workers') }}" 433 href="{{ route('admin.workers') }}"
439 > 434 >
440 <svg 435 <svg
441 class="w-5 h-5" 436 class="w-5 h-5"
442 aria-hidden="true" 437 aria-hidden="true"
443 fill="none" 438 fill="none"
444 stroke-linecap="round" 439 stroke-linecap="round"
445 stroke-linejoin="round" 440 stroke-linejoin="round"
446 stroke-width="2" 441 stroke-width="2"
447 viewBox="0 0 24 24" 442 viewBox="0 0 24 24"
448 stroke="currentColor" 443 stroke="currentColor"
449 > 444 >
450 <path 445 <path
451 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" 446 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
452 ></path> 447 ></path>
453 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> 448 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
454 </svg> 449 </svg>
455 <span class="ml-4">Соискатели</span> 450 <span class="ml-4">Соискатели</span>
456 </a> 451 </a>
457 </li> 452 </li>
458 <li class="relative px-6 py-3"> 453 <li class="relative px-6 py-3">
459 <a 454 <a
460 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 455 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
461 href="{{ route('admin.ad-employers') }}" 456 href="{{ route('admin.ad-employers') }}"
462 > 457 >
463 <svg 458 <svg
464 class="w-5 h-5" 459 class="w-5 h-5"
465 aria-hidden="true" 460 aria-hidden="true"
466 fill="none" 461 fill="none"
467 stroke-linecap="round" 462 stroke-linecap="round"
468 stroke-linejoin="round" 463 stroke-linejoin="round"
469 stroke-width="2" 464 stroke-width="2"
470 viewBox="0 0 24 24" 465 viewBox="0 0 24 24"
471 stroke="currentColor" 466 stroke="currentColor"
472 > 467 >
473 <path 468 <path
474 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" 469 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"
475 ></path> 470 ></path>
476 </svg> 471 </svg>
477 <span class="ml-4">Вакансии</span> 472 <span class="ml-4">Вакансии</span>
478 </a> 473 </a>
479 </li> 474 </li>
480 <li class="relative px-6 py-3"> 475 <li class="relative px-6 py-3">
481 <a 476 <a
482 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 477 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 href="{{ route('admin.categories') }}" 478 href="{{ route('admin.categories') }}"
484 > 479 >
485 <svg 480 <svg
486 class="w-5 h-5" 481 class="w-5 h-5"
487 aria-hidden="true" 482 aria-hidden="true"
488 fill="none" 483 fill="none"
489 stroke-linecap="round" 484 stroke-linecap="round"
490 stroke-linejoin="round" 485 stroke-linejoin="round"
491 stroke-width="2" 486 stroke-width="2"
492 viewBox="0 0 24 24" 487 viewBox="0 0 24 24"
493 stroke="currentColor" 488 stroke="currentColor"
494 > 489 >
495 <path 490 <path
496 d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" 491 d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
497 ></path> 492 ></path>
498 </svg> 493 </svg>
499 <span class="ml-4">Категории</span> 494 <span class="ml-4">Категории</span>
500 </a> 495 </a>
501 </li> 496 </li>
502 <li class="relative px-6 py-3"> 497 <li class="relative px-6 py-3">
503 <a 498 <a
504 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 499 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 href="{{ route('admin.job-titles') }}" 500 href="{{ route('admin.job-titles') }}"
506 > 501 >
507 <svg 502 <svg
508 class="w-5 h-5" 503 class="w-5 h-5"
509 aria-hidden="true" 504 aria-hidden="true"
510 fill="none" 505 fill="none"
511 stroke-linecap="round" 506 stroke-linecap="round"
512 stroke-linejoin="round" 507 stroke-linejoin="round"
513 stroke-width="2" 508 stroke-width="2"
514 viewBox="0 0 24 24" 509 viewBox="0 0 24 24"
515 stroke="currentColor" 510 stroke="currentColor"
516 > 511 >
517 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 512 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
518 </svg> 513 </svg>
519 <span class="ml-4">Должности</span> 514 <span class="ml-4">Должности</span>
520 </a> 515 </a>
521 </li> 516 </li>
522 <li class="relative px-6 py-3"> 517 <li class="relative px-6 py-3">
523 <a 518 <a
524 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 519 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
525 href="{{ route('admin.messages') }}" 520 href="{{ route('admin.messages') }}"
526 > 521 >
527 <svg 522 <svg
528 class="w-5 h-5" 523 class="w-5 h-5"
529 aria-hidden="true" 524 aria-hidden="true"
530 fill="none" 525 fill="none"
531 stroke-linecap="round" 526 stroke-linecap="round"
532 stroke-linejoin="round" 527 stroke-linejoin="round"
533 stroke-width="2" 528 stroke-width="2"
534 viewBox="0 0 24 24" 529 viewBox="0 0 24 24"
535 stroke="currentColor" 530 stroke="currentColor"
536 > 531 >
537 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 532 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
538 </svg> 533 </svg>
539 <span class="ml-4">Сообщения</span> 534 <span class="ml-4">Сообщения</span>
540 </a> 535 </a>
541 </li> 536 </li>
542 <li class="relative px-6 py-3"> 537 <li class="relative px-6 py-3">
543 <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" 538 <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"
544 href="{{ route('admin.groups') }}"> 539 href="{{ route('admin.groups') }}">
545 <svg 540 <svg
546 class="w-5 h-5" 541 class="w-5 h-5"
547 aria-hidden="true" 542 aria-hidden="true"
548 fill="none" 543 fill="none"
549 stroke-linecap="round" 544 stroke-linecap="round"
550 stroke-linejoin="round" 545 stroke-linejoin="round"
551 stroke-width="2" 546 stroke-width="2"
552 viewBox="0 0 24 24" 547 viewBox="0 0 24 24"
553 stroke="currentColor" 548 stroke="currentColor"
554 > 549 >
555 <path 550 <path
556 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" 551 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"
557 ></path> 552 ></path>
558 </svg> 553 </svg>
559 <span class="ml-4">Группы пользователей</span> 554 <span class="ml-4">Группы пользователей</span>
560 </a> 555 </a>
561 </li> 556 </li>
562 <li class="relative px-6 py-3"> 557 <li class="relative px-6 py-3">
563 <button 558 <button
564 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" 559 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"
565 @click="togglePagesMenu" 560 @click="togglePagesMenu"
566 aria-haspopup="true" 561 aria-haspopup="true"
567 > 562 >
568 <span class="inline-flex items-center"> 563 <span class="inline-flex items-center">
569 <svg 564 <svg
570 class="w-5 h-5" 565 class="w-5 h-5"
571 aria-hidden="true" 566 aria-hidden="true"
572 fill="none" 567 fill="none"
573 stroke-linecap="round" 568 stroke-linecap="round"
574 stroke-linejoin="round" 569 stroke-linejoin="round"
575 stroke-width="2" 570 stroke-width="2"
576 viewBox="0 0 24 24" 571 viewBox="0 0 24 24"
577 stroke="currentColor" 572 stroke="currentColor"
578 > 573 >
579 <path 574 <path
580 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" 575 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"
581 ></path> 576 ></path>
582 </svg> 577 </svg>
583 <span class="ml-4">Страницы</span> 578 <span class="ml-4">Страницы</span>
584 </span> 579 </span>
585 <svg 580 <svg
586 class="w-4 h-4" 581 class="w-4 h-4"
587 aria-hidden="true" 582 aria-hidden="true"
588 fill="currentColor" 583 fill="currentColor"
589 viewBox="0 0 20 20" 584 viewBox="0 0 20 20"
590 > 585 >
591 <path 586 <path
592 fill-rule="evenodd" 587 fill-rule="evenodd"
593 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" 588 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"
594 clip-rule="evenodd" 589 clip-rule="evenodd"
595 ></path> 590 ></path>
596 </svg> 591 </svg>
597 </button> 592 </button>
598 <template x-if="isPagesMenuOpen"> 593 <template x-if="isPagesMenuOpen">
599 <ul 594 <ul
600 x-transition:enter="transition-all ease-in-out duration-300" 595 x-transition:enter="transition-all ease-in-out duration-300"
601 x-transition:enter-start="opacity-25 max-h-0" 596 x-transition:enter-start="opacity-25 max-h-0"
602 x-transition:enter-end="opacity-100 max-h-xl" 597 x-transition:enter-end="opacity-100 max-h-xl"
603 x-transition:leave="transition-all ease-in-out duration-300" 598 x-transition:leave="transition-all ease-in-out duration-300"
604 x-transition:leave-start="opacity-100 max-h-xl" 599 x-transition:leave-start="opacity-100 max-h-xl"
605 x-transition:leave-end="opacity-0 max-h-0" 600 x-transition:leave-end="opacity-0 max-h-0"
606 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" 601 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"
607 aria-label="submenu" 602 aria-label="submenu"
608 > 603 >
609 <li 604 <li
610 class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 605 class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
611 > 606 >
612 <a class="w-full" href="pages/login.html">Login</a> 607 <a class="w-full" href="pages/login.html">Login</a>
613 </li> 608 </li>
614 <li 609 <li
615 class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 610 class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
616 > 611 >
617 <a class="w-full" href="pages/create-account.html"> 612 <a class="w-full" href="pages/create-account.html">
618 Create account 613 Create account
619 </a> 614 </a>
620 </li> 615 </li>
621 <li 616 <li
622 class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 617 class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
623 > 618 >
624 <a class="w-full" href="pages/forgot-password.html"> 619 <a class="w-full" href="pages/forgot-password.html">
625 Forgot password 620 Forgot password
626 </a> 621 </a>
627 </li> 622 </li>
628 <li 623 <li
629 class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 624 class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
630 > 625 >
631 <a class="w-full" href="pages/404.html">404</a> 626 <a class="w-full" href="pages/404.html">404</a>
632 </li> 627 </li>
633 <li 628 <li
634 class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 629 class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
635 > 630 >
636 <a class="w-full" href="pages/blank.html">Blank</a> 631 <a class="w-full" href="pages/blank.html">Blank</a>
637 </li> 632 </li>
638 </ul> 633 </ul>
639 </template> 634 </template>
640 </li> 635 </li>
641 </ul> 636 </ul>
642 <!--<div class="px-6 my-6"> 637 <!--<div class="px-6 my-6">
643 <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"> 638 <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">
644 Create account 639 Create account
645 <span class="ml-2" aria-hidden="true">+</span> 640 <span class="ml-2" aria-hidden="true">+</span>
646 </button> 641 </button>
647 </div>--> 642 </div>-->
648 </div> 643 </div>
649 </aside> 644 </aside>
650 <div class="flex flex-col flex-1 w-full"> 645 <div class="flex flex-col flex-1 w-full">
651 <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800"> 646 <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800">
652 <div 647 <div
653 class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300" 648 class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300"
654 > 649 >
655 <!-- Mobile hamburger --> 650 <!-- Mobile hamburger -->
656 <button 651 <button
657 class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple" 652 class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple"
658 @click="toggleSideMenu" 653 @click="toggleSideMenu"
659 aria-label="Menu" 654 aria-label="Menu"
660 > 655 >
661 <svg 656 <svg
662 class="w-6 h-6" 657 class="w-6 h-6"
663 aria-hidden="true" 658 aria-hidden="true"
664 fill="currentColor" 659 fill="currentColor"
665 viewBox="0 0 20 20" 660 viewBox="0 0 20 20"
666 > 661 >
667 <path 662 <path
668 fill-rule="evenodd" 663 fill-rule="evenodd"
669 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" 664 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"
670 clip-rule="evenodd" 665 clip-rule="evenodd"
671 ></path> 666 ></path>
672 </svg> 667 </svg>
673 </button> 668 </button>
674 <!-- Search input --> 669 <!-- Search input -->
675 <div class="flex justify-center flex-1 lg:mr-32"> 670 <div class="flex justify-center flex-1 lg:mr-32">
676 <div 671 <div
677 class="relative w-full max-w-xl mr-6 focus-within:text-purple-500" 672 class="relative w-full max-w-xl mr-6 focus-within:text-purple-500"
678 > 673 >
679 <div class="absolute inset-y-0 flex items-center pl-2"> 674 <div class="absolute inset-y-0 flex items-center pl-2">
680 <svg 675 <svg
681 class="w-4 h-4" 676 class="w-4 h-4"
682 aria-hidden="true" 677 aria-hidden="true"
683 fill="currentColor" 678 fill="currentColor"
684 viewBox="0 0 20 20" 679 viewBox="0 0 20 20"
685 > 680 >
686 <path 681 <path
687 fill-rule="evenodd" 682 fill-rule="evenodd"
688 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" 683 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"
689 clip-rule="evenodd" 684 clip-rule="evenodd"
690 ></path> 685 ></path>
691 </svg> 686 </svg>
692 </div> 687 </div>
693 <input 688 <input
694 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" 689 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"
695 type="text" 690 type="text"
696 placeholder="Искать..." 691 placeholder="Искать..."
697 aria-label="Search" 692 aria-label="Search"
698 /> 693 />
699 </div> 694 </div>
700 </div> 695 </div>
701 <ul class="flex items-center flex-shrink-0 space-x-6"> 696 <ul class="flex items-center flex-shrink-0 space-x-6">
702 <!-- Theme toggler --> 697 <!-- Theme toggler -->
703 <li class="flex"> 698 <li class="flex">
704 <button 699 <button
705 class="rounded-md focus:outline-none focus:shadow-outline-purple" 700 class="rounded-md focus:outline-none focus:shadow-outline-purple"
706 @click="toggleTheme" 701 @click="toggleTheme"
707 aria-label="Toggle color mode" 702 aria-label="Toggle color mode"
708 > 703 >
709 <template x-if="!dark"> 704 <template x-if="!dark">
710 <svg 705 <svg
711 class="w-5 h-5" 706 class="w-5 h-5"
712 aria-hidden="true" 707 aria-hidden="true"
713 fill="currentColor" 708 fill="currentColor"
714 viewBox="0 0 20 20" 709 viewBox="0 0 20 20"
715 > 710 >
716 <path 711 <path
717 d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z" 712 d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"
718 ></path> 713 ></path>
719 </svg> 714 </svg>
720 </template> 715 </template>
721 <template x-if="dark"> 716 <template x-if="dark">
722 <svg 717 <svg
723 class="w-5 h-5" 718 class="w-5 h-5"
724 aria-hidden="true" 719 aria-hidden="true"
725 fill="currentColor" 720 fill="currentColor"
726 viewBox="0 0 20 20" 721 viewBox="0 0 20 20"
727 > 722 >
728 <path 723 <path
729 fill-rule="evenodd" 724 fill-rule="evenodd"
730 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" 725 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"
731 clip-rule="evenodd" 726 clip-rule="evenodd"
732 ></path> 727 ></path>
733 </svg> 728 </svg>
734 </template> 729 </template>
735 </button> 730 </button>
736 </li> 731 </li>
737 <!-- Notifications menu --> 732 <!-- Notifications menu -->
738 <li class="relative"> 733 <li class="relative">
739 <button 734 <button
740 class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple" 735 class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple"
741 @click="toggleNotificationsMenu" 736 @click="toggleNotificationsMenu"
742 @keydown.escape="closeNotificationsMenu" 737 @keydown.escape="closeNotificationsMenu"
743 aria-label="Notifications" 738 aria-label="Notifications"
744 aria-haspopup="true" 739 aria-haspopup="true"
745 > 740 >
746 <svg 741 <svg
747 class="w-5 h-5" 742 class="w-5 h-5"
748 aria-hidden="true" 743 aria-hidden="true"
749 fill="currentColor" 744 fill="currentColor"
750 viewBox="0 0 20 20" 745 viewBox="0 0 20 20"
751 > 746 >
752 <path 747 <path
753 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" 748 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"
754 ></path> 749 ></path>
755 </svg> 750 </svg>
756 <!-- Notification badge --> 751 <!-- Notification badge -->
757 <span 752 <span
758 aria-hidden="true" 753 aria-hidden="true"
759 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" 754 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"
760 ></span> 755 ></span>
761 </button> 756 </button>
762 <template x-if="isNotificationsMenuOpen"> 757 <template x-if="isNotificationsMenuOpen">
763 <ul 758 <ul
764 x-transition:leave="transition ease-in duration-150" 759 x-transition:leave="transition ease-in duration-150"
765 x-transition:leave-start="opacity-100" 760 x-transition:leave-start="opacity-100"
766 x-transition:leave-end="opacity-0" 761 x-transition:leave-end="opacity-0"
767 @click.away="closeNotificationsMenu" 762 @click.away="closeNotificationsMenu"
768 @keydown.escape="closeNotificationsMenu" 763 @keydown.escape="closeNotificationsMenu"
769 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" 764 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"
770 > 765 >
771 <li class="flex"> 766 <li class="flex">
772 <a 767 <a
773 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" 768 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"
774 href="#" 769 href="#"
775 > 770 >
776 <span>Сообщения</span> 771 <span>Сообщения</span>
777 <span 772 <span
778 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" 773 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"
779 > 774 >
780 13 775 13
781 </span> 776 </span>
782 </a> 777 </a>
783 </li> 778 </li>
784 <li class="flex"> 779 <li class="flex">
785 <a 780 <a
786 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" 781 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"
787 href="#" 782 href="#"
788 > 783 >
789 <span>Логи</span> 784 <span>Логи</span>
790 </a> 785 </a>
791 </li> 786 </li>
792 </ul> 787 </ul>
793 </template> 788 </template>
794 </li> 789 </li>
795 <!-- Profile menu --> 790 <!-- Profile menu -->
796 <li class="relative"> 791 <li class="relative">
797 <button 792 <button
798 class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none" 793 class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none"
799 @click="toggleProfileMenu" 794 @click="toggleProfileMenu"
800 @keydown.escape="closeProfileMenu" 795 @keydown.escape="closeProfileMenu"
801 aria-label="Account" 796 aria-label="Account"
802 aria-haspopup="true" 797 aria-haspopup="true"
803 > 798 >
804 <img 799 <img
805 class="object-cover w-8 h-8 rounded-full" 800 class="object-cover w-8 h-8 rounded-full"
806 src="{{ asset('assets/img/profile.jpg') }}" 801 src="{{ asset('assets/img/profile.jpg') }}"
807 alt="" 802 alt=""
808 aria-hidden="true" 803 aria-hidden="true"
809 /> 804 />
810 </button> 805 </button>
811 <template x-if="isProfileMenuOpen"> 806 <template x-if="isProfileMenuOpen">
812 <ul 807 <ul
813 x-transition:leave="transition ease-in duration-150" 808 x-transition:leave="transition ease-in duration-150"
814 x-transition:leave-start="opacity-100" 809 x-transition:leave-start="opacity-100"
815 x-transition:leave-end="opacity-0" 810 x-transition:leave-end="opacity-0"
816 @click.away="closeProfileMenu" 811 @click.away="closeProfileMenu"
817 @keydown.escape="closeProfileMenu" 812 @keydown.escape="closeProfileMenu"
818 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" 813 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"
819 aria-label="submenu" 814 aria-label="submenu"
820 > 815 >
821 <li class="flex"> 816 <li class="flex">
822 <a 817 <a
823 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" 818 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"
824 href="#" 819 href="#"
825 > 820 >
826 <svg 821 <svg
827 class="w-4 h-4 mr-3" 822 class="w-4 h-4 mr-3"
828 aria-hidden="true" 823 aria-hidden="true"
829 fill="none" 824 fill="none"
830 stroke-linecap="round" 825 stroke-linecap="round"
831 stroke-linejoin="round" 826 stroke-linejoin="round"
832 stroke-width="2" 827 stroke-width="2"
833 viewBox="0 0 24 24" 828 viewBox="0 0 24 24"
834 stroke="currentColor" 829 stroke="currentColor"
835 > 830 >
836 <path 831 <path
837 d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" 832 d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
838 ></path> 833 ></path>
839 </svg> 834 </svg>
840 <span>Профиль</span> 835 <span>Профиль</span>
841 </a> 836 </a>
842 </li> 837 </li>
843 <li class="flex"> 838 <li class="flex">
844 <a 839 <a
845 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" 840 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"
846 href="#" 841 href="#"
847 > 842 >
848 <svg 843 <svg
849 class="w-4 h-4 mr-3" 844 class="w-4 h-4 mr-3"
850 aria-hidden="true" 845 aria-hidden="true"
851 fill="none" 846 fill="none"
852 stroke-linecap="round" 847 stroke-linecap="round"
853 stroke-linejoin="round" 848 stroke-linejoin="round"
854 stroke-width="2" 849 stroke-width="2"
855 viewBox="0 0 24 24" 850 viewBox="0 0 24 24"
856 stroke="currentColor" 851 stroke="currentColor"
857 > 852 >
858 <path 853 <path
859 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" 854 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"
860 ></path> 855 ></path>
861 <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path> 856 <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
862 </svg> 857 </svg>
863 <span>Настройки</span> 858 <span>Настройки</span>
864 </a> 859 </a>
865 </li> 860 </li>
866 <li class="flex"> 861 <li class="flex">
867 <a 862 <a
868 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" 863 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"
869 href="{{ route('admin.logout') }}" 864 href="{{ route('admin.logout') }}"
870 > 865 >
871 <svg 866 <svg
872 class="w-4 h-4 mr-3" 867 class="w-4 h-4 mr-3"
873 aria-hidden="true" 868 aria-hidden="true"
874 fill="none" 869 fill="none"
875 stroke-linecap="round" 870 stroke-linecap="round"
876 stroke-linejoin="round" 871 stroke-linejoin="round"
877 stroke-width="2" 872 stroke-width="2"
878 viewBox="0 0 24 24" 873 viewBox="0 0 24 24"
879 stroke="currentColor" 874 stroke="currentColor"
880 > 875 >
881 <path 876 <path
882 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" 877 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"
883 ></path> 878 ></path>
884 </svg> 879 </svg>
885 <span>Выход</span> 880 <span>Выход</span>
886 </a> 881 </a>
887 </li> 882 </li>
888 </ul> 883 </ul>
889 </template> 884 </template>
890 </li> 885 </li>
891 </ul> 886 </ul>
892 </div> 887 </div>
893 </header> 888 </header>
894 <main class="h-full overflow-y-auto"> 889 <main class="h-full overflow-y-auto">
895 <div class="container px-6 mx-auto grid"> 890 <div class="container px-6 mx-auto grid">
896 <h2 891 <h2
897 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200" 892 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"
898 > 893 >
899 {{$title}} 894 {{$title}}
900 </h2> 895 </h2>
901 <!-- CTA --> 896 <!-- CTA -->
902 <a 897 <a
903 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" 898 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"
904 href="https://github.com/estevanmaito/windmill-dashboard" 899 href="{{ route('admin.admin-users') }}"
905 > 900 >
906 <div class="flex items-center"> 901 <div class="flex items-center">
907 <svg 902 <svg
908 class="w-5 h-5 mr-2" 903 class="w-5 h-5 mr-2"
909 fill="currentColor" 904 fill="currentColor"
910 viewBox="0 0 20 20" 905 viewBox="0 0 20 20"
911 > 906 >
912 <path 907 <path
913 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" 908 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"
914 ></path> 909 ></path>
915 </svg> 910 </svg>
916 <span>Вход в админку только для пользователей-админов</span> 911 <span>Вход в админку только для пользователей-админов</span>
917 </div> 912 </div>
918 <span>Список админов &RightArrow;</span> 913 <span>Список админов &RightArrow;</span>
919 </a> 914 </a>
920 915
921 @yield('content') 916 @yield('content')
922 917
923 <!-- Cards 918 <!-- Cards
924 <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4"> 919 <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4">
925 920
926 <div 921 <div
927 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 922 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
928 > 923 >
929 <div 924 <div
930 class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500" 925 class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500"
931 > 926 >
932 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 927 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
933 <path 928 <path
934 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" 929 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"
935 ></path> 930 ></path>
936 </svg> 931 </svg>
937 </div> 932 </div>
938 <div> 933 <div>
939 <p 934 <p
940 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" 935 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
941 > 936 >
942 Total clients 937 Total clients
943 </p> 938 </p>
944 <p 939 <p
945 class="text-lg font-semibold text-gray-700 dark:text-gray-200" 940 class="text-lg font-semibold text-gray-700 dark:text-gray-200"
946 > 941 >
947 6389 942 6389
948 </p> 943 </p>
949 </div> 944 </div>
950 </div> 945 </div>
951 946
952 <div 947 <div
953 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 948 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
954 > 949 >
955 <div 950 <div
956 class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500" 951 class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500"
957 > 952 >
958 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 953 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
959 <path 954 <path
960 fill-rule="evenodd" 955 fill-rule="evenodd"
961 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" 956 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"
962 clip-rule="evenodd" 957 clip-rule="evenodd"
963 ></path> 958 ></path>
964 </svg> 959 </svg>
965 </div> 960 </div>
966 <div> 961 <div>
967 <p 962 <p
968 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" 963 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
969 > 964 >
970 Account balance 965 Account balance
971 </p> 966 </p>
972 <p 967 <p
973 class="text-lg font-semibold text-gray-700 dark:text-gray-200" 968 class="text-lg font-semibold text-gray-700 dark:text-gray-200"
974 > 969 >
975 $ 46,760.89 970 $ 46,760.89
976 </p> 971 </p>
977 </div> 972 </div>
978 </div> 973 </div>
979 974
980 <div 975 <div
981 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 976 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
982 > 977 >
983 <div 978 <div
984 class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500" 979 class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500"
985 > 980 >
986 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 981 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
987 <path 982 <path
988 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" 983 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"
989 ></path> 984 ></path>
990 </svg> 985 </svg>
991 </div> 986 </div>
992 <div> 987 <div>
993 <p 988 <p
994 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" 989 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
995 > 990 >
996 New sales 991 New sales
997 </p> 992 </p>
998 <p 993 <p
999 class="text-lg font-semibold text-gray-700 dark:text-gray-200" 994 class="text-lg font-semibold text-gray-700 dark:text-gray-200"
1000 > 995 >
1001 376 996 376
1002 </p> 997 </p>
1003 </div> 998 </div>
1004 </div> 999 </div>
1005 1000
1006 <div 1001 <div
1007 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1002 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1008 > 1003 >
1009 <div 1004 <div
1010 class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500" 1005 class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500"
1011 > 1006 >
1012 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 1007 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
1013 <path 1008 <path
1014 fill-rule="evenodd" 1009 fill-rule="evenodd"
1015 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" 1010 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"
1016 clip-rule="evenodd" 1011 clip-rule="evenodd"
1017 ></path> 1012 ></path>
1018 </svg> 1013 </svg>
1019 </div> 1014 </div>
1020 <div> 1015 <div>
1021 <p 1016 <p
1022 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" 1017 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
1023 > 1018 >
1024 Pending contacts 1019 Pending contacts
1025 </p> 1020 </p>
1026 <p 1021 <p
1027 class="text-lg font-semibold text-gray-700 dark:text-gray-200" 1022 class="text-lg font-semibold text-gray-700 dark:text-gray-200"
1028 > 1023 >
1029 35 1024 35
1030 </p> 1025 </p>
1031 </div> 1026 </div>
1032 </div> 1027 </div>
1033 </div> 1028 </div>
1034 --> 1029 -->
1035 <!-- New Table 1030 <!-- New Table
1036 <div class="w-full overflow-hidden rounded-lg shadow-xs"> 1031 <div class="w-full overflow-hidden rounded-lg shadow-xs">
1037 <div class="w-full overflow-x-auto"> 1032 <div class="w-full overflow-x-auto">
1038 <table class="w-full whitespace-no-wrap"> 1033 <table class="w-full whitespace-no-wrap">
1039 <thead> 1034 <thead>
1040 <tr 1035 <tr
1041 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" 1036 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"
1042 > 1037 >
1043 <th class="px-4 py-3">Client</th> 1038 <th class="px-4 py-3">Client</th>
1044 <th class="px-4 py-3">Amount</th> 1039 <th class="px-4 py-3">Amount</th>
1045 <th class="px-4 py-3">Status</th> 1040 <th class="px-4 py-3">Status</th>
1046 <th class="px-4 py-3">Date</th> 1041 <th class="px-4 py-3">Date</th>
1047 </tr> 1042 </tr>
1048 </thead> 1043 </thead>
1049 <tbody 1044 <tbody
1050 class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" 1045 class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"
1051 > 1046 >
1052 <tr class="text-gray-700 dark:text-gray-400"> 1047 <tr class="text-gray-700 dark:text-gray-400">
1053 <td class="px-4 py-3"> 1048 <td class="px-4 py-3">
1054 <div class="flex items-center text-sm"> 1049 <div class="flex items-center text-sm">
1055 1050
1056 <div 1051 <div
1057 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1052 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1058 > 1053 >
1059 <img 1054 <img
1060 class="object-cover w-full h-full rounded-full" 1055 class="object-cover w-full h-full rounded-full"
1061 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" 1056 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"
1062 alt="" 1057 alt=""
1063 loading="lazy" 1058 loading="lazy"
1064 /> 1059 />
1065 <div 1060 <div
1066 class="absolute inset-0 rounded-full shadow-inner" 1061 class="absolute inset-0 rounded-full shadow-inner"
1067 aria-hidden="true" 1062 aria-hidden="true"
1068 ></div> 1063 ></div>
1069 </div> 1064 </div>
1070 <div> 1065 <div>
1071 <p class="font-semibold">Hans Burger</p> 1066 <p class="font-semibold">Hans Burger</p>
1072 <p class="text-xs text-gray-600 dark:text-gray-400"> 1067 <p class="text-xs text-gray-600 dark:text-gray-400">
1073 10x Developer 1068 10x Developer
1074 </p> 1069 </p>
1075 </div> 1070 </div>
1076 </div> 1071 </div>
1077 </td> 1072 </td>
1078 <td class="px-4 py-3 text-sm"> 1073 <td class="px-4 py-3 text-sm">
1079 $ 863.45 1074 $ 863.45
1080 </td> 1075 </td>
1081 <td class="px-4 py-3 text-xs"> 1076 <td class="px-4 py-3 text-xs">
1082 <span 1077 <span
1083 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" 1078 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"
1084 > 1079 >
1085 Approved 1080 Approved
1086 </span> 1081 </span>
1087 </td> 1082 </td>
1088 <td class="px-4 py-3 text-sm"> 1083 <td class="px-4 py-3 text-sm">
1089 6/10/2020 1084 6/10/2020
1090 </td> 1085 </td>
1091 </tr> 1086 </tr>
1092 1087
1093 <tr class="text-gray-700 dark:text-gray-400"> 1088 <tr class="text-gray-700 dark:text-gray-400">
1094 <td class="px-4 py-3"> 1089 <td class="px-4 py-3">
1095 <div class="flex items-center text-sm"> 1090 <div class="flex items-center text-sm">
1096 1091
1097 <div 1092 <div
1098 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1093 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1099 > 1094 >
1100 <img 1095 <img
1101 class="object-cover w-full h-full rounded-full" 1096 class="object-cover w-full h-full rounded-full"
1102 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" 1097 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"
1103 alt="" 1098 alt=""
1104 loading="lazy" 1099 loading="lazy"
1105 /> 1100 />
1106 <div 1101 <div
1107 class="absolute inset-0 rounded-full shadow-inner" 1102 class="absolute inset-0 rounded-full shadow-inner"
1108 aria-hidden="true" 1103 aria-hidden="true"
1109 ></div> 1104 ></div>
1110 </div> 1105 </div>
1111 <div> 1106 <div>
1112 <p class="font-semibold">Jolina Angelie</p> 1107 <p class="font-semibold">Jolina Angelie</p>
1113 <p class="text-xs text-gray-600 dark:text-gray-400"> 1108 <p class="text-xs text-gray-600 dark:text-gray-400">
1114 Unemployed 1109 Unemployed
1115 </p> 1110 </p>
1116 </div> 1111 </div>
1117 </div> 1112 </div>
1118 </td> 1113 </td>
1119 <td class="px-4 py-3 text-sm"> 1114 <td class="px-4 py-3 text-sm">
1120 $ 369.95 1115 $ 369.95
1121 </td> 1116 </td>
1122 <td class="px-4 py-3 text-xs"> 1117 <td class="px-4 py-3 text-xs">
1123 <span 1118 <span
1124 class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600" 1119 class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"
1125 > 1120 >
1126 Pending 1121 Pending
1127 </span> 1122 </span>
1128 </td> 1123 </td>
1129 <td class="px-4 py-3 text-sm"> 1124 <td class="px-4 py-3 text-sm">
1130 6/10/2020 1125 6/10/2020
1131 </td> 1126 </td>
1132 </tr> 1127 </tr>
1133 1128
1134 <tr class="text-gray-700 dark:text-gray-400"> 1129 <tr class="text-gray-700 dark:text-gray-400">
1135 <td class="px-4 py-3"> 1130 <td class="px-4 py-3">
1136 <div class="flex items-center text-sm"> 1131 <div class="flex items-center text-sm">
1137 1132
1138 <div 1133 <div
1139 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1134 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1140 > 1135 >
1141 <img 1136 <img
1142 class="object-cover w-full h-full rounded-full" 1137 class="object-cover w-full h-full rounded-full"
1143 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" 1138 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"
1144 alt="" 1139 alt=""
1145 loading="lazy" 1140 loading="lazy"
1146 /> 1141 />
1147 <div 1142 <div
1148 class="absolute inset-0 rounded-full shadow-inner" 1143 class="absolute inset-0 rounded-full shadow-inner"
1149 aria-hidden="true" 1144 aria-hidden="true"
1150 ></div> 1145 ></div>
1151 </div> 1146 </div>
1152 <div> 1147 <div>
1153 <p class="font-semibold">Sarah Curry</p> 1148 <p class="font-semibold">Sarah Curry</p>
1154 <p class="text-xs text-gray-600 dark:text-gray-400"> 1149 <p class="text-xs text-gray-600 dark:text-gray-400">
1155 Designer 1150 Designer
1156 </p> 1151 </p>
1157 </div> 1152 </div>
1158 </div> 1153 </div>
1159 </td> 1154 </td>
1160 <td class="px-4 py-3 text-sm"> 1155 <td class="px-4 py-3 text-sm">
1161 $ 86.00 1156 $ 86.00
1162 </td> 1157 </td>
1163 <td class="px-4 py-3 text-xs"> 1158 <td class="px-4 py-3 text-xs">
1164 <span 1159 <span
1165 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" 1160 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"
1166 > 1161 >
1167 Denied 1162 Denied
1168 </span> 1163 </span>
1169 </td> 1164 </td>
1170 <td class="px-4 py-3 text-sm"> 1165 <td class="px-4 py-3 text-sm">
1171 6/10/2020 1166 6/10/2020
1172 </td> 1167 </td>
1173 </tr> 1168 </tr>
1174 1169
1175 <tr class="text-gray-700 dark:text-gray-400"> 1170 <tr class="text-gray-700 dark:text-gray-400">
1176 <td class="px-4 py-3"> 1171 <td class="px-4 py-3">
1177 <div class="flex items-center text-sm"> 1172 <div class="flex items-center text-sm">
1178 1173
1179 <div 1174 <div
1180 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1175 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1181 > 1176 >
1182 <img 1177 <img
1183 class="object-cover w-full h-full rounded-full" 1178 class="object-cover w-full h-full rounded-full"
1184 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" 1179 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"
1185 alt="" 1180 alt=""
1186 loading="lazy" 1181 loading="lazy"
1187 /> 1182 />
1188 <div 1183 <div
1189 class="absolute inset-0 rounded-full shadow-inner" 1184 class="absolute inset-0 rounded-full shadow-inner"
1190 aria-hidden="true" 1185 aria-hidden="true"
1191 ></div> 1186 ></div>
1192 </div> 1187 </div>
1193 <div> 1188 <div>
1194 <p class="font-semibold">Rulia Joberts</p> 1189 <p class="font-semibold">Rulia Joberts</p>
1195 <p class="text-xs text-gray-600 dark:text-gray-400"> 1190 <p class="text-xs text-gray-600 dark:text-gray-400">
1196 Actress 1191 Actress
1197 </p> 1192 </p>
1198 </div> 1193 </div>
1199 </div> 1194 </div>
1200 </td> 1195 </td>
1201 <td class="px-4 py-3 text-sm"> 1196 <td class="px-4 py-3 text-sm">
1202 $ 1276.45 1197 $ 1276.45
1203 </td> 1198 </td>
1204 <td class="px-4 py-3 text-xs"> 1199 <td class="px-4 py-3 text-xs">
1205 <span 1200 <span
1206 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" 1201 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"
1207 > 1202 >
1208 Approved 1203 Approved
1209 </span> 1204 </span>
1210 </td> 1205 </td>
1211 <td class="px-4 py-3 text-sm"> 1206 <td class="px-4 py-3 text-sm">
1212 6/10/2020 1207 6/10/2020
1213 </td> 1208 </td>
1214 </tr> 1209 </tr>
1215 1210
1216 <tr class="text-gray-700 dark:text-gray-400"> 1211 <tr class="text-gray-700 dark:text-gray-400">
1217 <td class="px-4 py-3"> 1212 <td class="px-4 py-3">
1218 <div class="flex items-center text-sm"> 1213 <div class="flex items-center text-sm">
1219 1214
1220 <div 1215 <div
1221 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1216 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1222 > 1217 >
1223 <img 1218 <img
1224 class="object-cover w-full h-full rounded-full" 1219 class="object-cover w-full h-full rounded-full"
1225 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" 1220 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"
1226 alt="" 1221 alt=""
1227 loading="lazy" 1222 loading="lazy"
1228 /> 1223 />
1229 <div 1224 <div
1230 class="absolute inset-0 rounded-full shadow-inner" 1225 class="absolute inset-0 rounded-full shadow-inner"
1231 aria-hidden="true" 1226 aria-hidden="true"
1232 ></div> 1227 ></div>
1233 </div> 1228 </div>
1234 <div> 1229 <div>
1235 <p class="font-semibold">Wenzel Dashington</p> 1230 <p class="font-semibold">Wenzel Dashington</p>
1236 <p class="text-xs text-gray-600 dark:text-gray-400"> 1231 <p class="text-xs text-gray-600 dark:text-gray-400">
1237 Actor 1232 Actor
1238 </p> 1233 </p>
1239 </div> 1234 </div>
1240 </div> 1235 </div>
1241 </td> 1236 </td>
1242 <td class="px-4 py-3 text-sm"> 1237 <td class="px-4 py-3 text-sm">
1243 $ 863.45 1238 $ 863.45
1244 </td> 1239 </td>
1245 <td class="px-4 py-3 text-xs"> 1240 <td class="px-4 py-3 text-xs">
1246 <span 1241 <span
1247 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" 1242 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"
1248 > 1243 >
1249 Expired 1244 Expired
1250 </span> 1245 </span>
1251 </td> 1246 </td>
1252 <td class="px-4 py-3 text-sm"> 1247 <td class="px-4 py-3 text-sm">
1253 6/10/2020 1248 6/10/2020
1254 </td> 1249 </td>
1255 </tr> 1250 </tr>
1256 1251
1257 <tr class="text-gray-700 dark:text-gray-400"> 1252 <tr class="text-gray-700 dark:text-gray-400">
1258 <td class="px-4 py-3"> 1253 <td class="px-4 py-3">
1259 <div class="flex items-center text-sm"> 1254 <div class="flex items-center text-sm">
1260 1255
1261 <div 1256 <div
1262 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1257 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1263 > 1258 >
1264 <img 1259 <img
1265 class="object-cover w-full h-full rounded-full" 1260 class="object-cover w-full h-full rounded-full"
1266 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" 1261 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"
1267 alt="" 1262 alt=""
1268 loading="lazy" 1263 loading="lazy"
1269 /> 1264 />
1270 <div 1265 <div
1271 class="absolute inset-0 rounded-full shadow-inner" 1266 class="absolute inset-0 rounded-full shadow-inner"
1272 aria-hidden="true" 1267 aria-hidden="true"
1273 ></div> 1268 ></div>
1274 </div> 1269 </div>
1275 <div> 1270 <div>
1276 <p class="font-semibold">Dave Li</p> 1271 <p class="font-semibold">Dave Li</p>
1277 <p class="text-xs text-gray-600 dark:text-gray-400"> 1272 <p class="text-xs text-gray-600 dark:text-gray-400">
1278 Influencer 1273 Influencer
1279 </p> 1274 </p>
1280 </div> 1275 </div>
1281 </div> 1276 </div>
1282 </td> 1277 </td>
1283 <td class="px-4 py-3 text-sm"> 1278 <td class="px-4 py-3 text-sm">
1284 $ 863.45 1279 $ 863.45
1285 </td> 1280 </td>
1286 <td class="px-4 py-3 text-xs"> 1281 <td class="px-4 py-3 text-xs">
1287 <span 1282 <span
1288 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" 1283 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"
1289 > 1284 >
1290 Approved 1285 Approved
1291 </span> 1286 </span>
1292 </td> 1287 </td>
1293 <td class="px-4 py-3 text-sm"> 1288 <td class="px-4 py-3 text-sm">
1294 6/10/2020 1289 6/10/2020
1295 </td> 1290 </td>
1296 </tr> 1291 </tr>
1297 1292
1298 <tr class="text-gray-700 dark:text-gray-400"> 1293 <tr class="text-gray-700 dark:text-gray-400">
1299 <td class="px-4 py-3"> 1294 <td class="px-4 py-3">
1300 <div class="flex items-center text-sm"> 1295 <div class="flex items-center text-sm">
1301 1296
1302 <div 1297 <div
1303 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1298 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1304 > 1299 >
1305 <img 1300 <img
1306 class="object-cover w-full h-full rounded-full" 1301 class="object-cover w-full h-full rounded-full"
1307 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" 1302 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"
1308 alt="" 1303 alt=""
1309 loading="lazy" 1304 loading="lazy"
1310 /> 1305 />
1311 <div 1306 <div
1312 class="absolute inset-0 rounded-full shadow-inner" 1307 class="absolute inset-0 rounded-full shadow-inner"
1313 aria-hidden="true" 1308 aria-hidden="true"
1314 ></div> 1309 ></div>
1315 </div> 1310 </div>
1316 <div> 1311 <div>
1317 <p class="font-semibold">Maria Ramovic</p> 1312 <p class="font-semibold">Maria Ramovic</p>
1318 <p class="text-xs text-gray-600 dark:text-gray-400"> 1313 <p class="text-xs text-gray-600 dark:text-gray-400">
1319 Runner 1314 Runner
1320 </p> 1315 </p>
1321 </div> 1316 </div>
1322 </div> 1317 </div>
1323 </td> 1318 </td>
1324 <td class="px-4 py-3 text-sm"> 1319 <td class="px-4 py-3 text-sm">
1325 $ 863.45 1320 $ 863.45
1326 </td> 1321 </td>
1327 <td class="px-4 py-3 text-xs"> 1322 <td class="px-4 py-3 text-xs">
1328 <span 1323 <span
1329 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" 1324 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"
1330 > 1325 >
1331 Approved 1326 Approved
1332 </span> 1327 </span>
1333 </td> 1328 </td>
1334 <td class="px-4 py-3 text-sm"> 1329 <td class="px-4 py-3 text-sm">
1335 6/10/2020 1330 6/10/2020
1336 </td> 1331 </td>
1337 </tr> 1332 </tr>
1338 1333
1339 <tr class="text-gray-700 dark:text-gray-400"> 1334 <tr class="text-gray-700 dark:text-gray-400">
1340 <td class="px-4 py-3"> 1335 <td class="px-4 py-3">
1341 <div class="flex items-center text-sm"> 1336 <div class="flex items-center text-sm">
1342 1337
1343 <div 1338 <div
1344 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1339 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1345 > 1340 >
1346 <img 1341 <img
1347 class="object-cover w-full h-full rounded-full" 1342 class="object-cover w-full h-full rounded-full"
1348 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" 1343 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"
1349 alt="" 1344 alt=""
1350 loading="lazy" 1345 loading="lazy"
1351 /> 1346 />
1352 <div 1347 <div
1353 class="absolute inset-0 rounded-full shadow-inner" 1348 class="absolute inset-0 rounded-full shadow-inner"
1354 aria-hidden="true" 1349 aria-hidden="true"
1355 ></div> 1350 ></div>
1356 </div> 1351 </div>
1357 <div> 1352 <div>
1358 <p class="font-semibold">Hitney Wouston</p> 1353 <p class="font-semibold">Hitney Wouston</p>
1359 <p class="text-xs text-gray-600 dark:text-gray-400"> 1354 <p class="text-xs text-gray-600 dark:text-gray-400">
1360 Singer 1355 Singer
1361 </p> 1356 </p>
1362 </div> 1357 </div>
1363 </div> 1358 </div>
1364 </td> 1359 </td>
1365 <td class="px-4 py-3 text-sm"> 1360 <td class="px-4 py-3 text-sm">
1366 $ 863.45 1361 $ 863.45
1367 </td> 1362 </td>
1368 <td class="px-4 py-3 text-xs"> 1363 <td class="px-4 py-3 text-xs">
1369 <span 1364 <span
1370 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" 1365 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"
1371 > 1366 >
1372 Approved 1367 Approved
1373 </span> 1368 </span>
1374 </td> 1369 </td>
1375 <td class="px-4 py-3 text-sm"> 1370 <td class="px-4 py-3 text-sm">
1376 6/10/2020 1371 6/10/2020
1377 </td> 1372 </td>
1378 </tr> 1373 </tr>
1379 1374
1380 <tr class="text-gray-700 dark:text-gray-400"> 1375 <tr class="text-gray-700 dark:text-gray-400">
1381 <td class="px-4 py-3"> 1376 <td class="px-4 py-3">
1382 <div class="flex items-center text-sm"> 1377 <div class="flex items-center text-sm">
1383 1378
1384 <div 1379 <div
1385 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1380 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1386 > 1381 >
1387 <img 1382 <img
1388 class="object-cover w-full h-full rounded-full" 1383 class="object-cover w-full h-full rounded-full"
1389 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" 1384 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"
1390 alt="" 1385 alt=""
1391 loading="lazy" 1386 loading="lazy"
1392 /> 1387 />
1393 <div 1388 <div
1394 class="absolute inset-0 rounded-full shadow-inner" 1389 class="absolute inset-0 rounded-full shadow-inner"
1395 aria-hidden="true" 1390 aria-hidden="true"
1396 ></div> 1391 ></div>
1397 </div> 1392 </div>
1398 <div> 1393 <div>
1399 <p class="font-semibold">Hans Burger</p> 1394 <p class="font-semibold">Hans Burger</p>
1400 <p class="text-xs text-gray-600 dark:text-gray-400"> 1395 <p class="text-xs text-gray-600 dark:text-gray-400">
1401 10x Developer 1396 10x Developer
1402 </p> 1397 </p>
1403 </div> 1398 </div>
1404 </div> 1399 </div>
1405 </td> 1400 </td>
1406 <td class="px-4 py-3 text-sm"> 1401 <td class="px-4 py-3 text-sm">
1407 $ 863.45 1402 $ 863.45
1408 </td> 1403 </td>
1409 <td class="px-4 py-3 text-xs"> 1404 <td class="px-4 py-3 text-xs">
1410 <span 1405 <span
1411 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" 1406 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"
1412 > 1407 >
1413 Approved 1408 Approved
1414 </span> 1409 </span>
1415 </td> 1410 </td>
1416 <td class="px-4 py-3 text-sm"> 1411 <td class="px-4 py-3 text-sm">
1417 6/10/2020 1412 6/10/2020
1418 </td> 1413 </td>
1419 </tr> 1414 </tr>
1420 </tbody> 1415 </tbody>
1421 </table> 1416 </table>
1422 </div> 1417 </div>
1423 <div 1418 <div
1424 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" 1419 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"
1425 > 1420 >
1426 <span class="flex items-center col-span-3"> 1421 <span class="flex items-center col-span-3">
1427 Showing 21-30 of 100 1422 Showing 21-30 of 100
1428 </span> 1423 </span>
1429 <span class="col-span-2"></span> 1424 <span class="col-span-2"></span>
1430 1425
1431 <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> 1426 <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end">
1432 <nav aria-label="Table navigation"> 1427 <nav aria-label="Table navigation">
1433 <ul class="inline-flex items-center"> 1428 <ul class="inline-flex items-center">
1434 <li> 1429 <li>
1435 <button 1430 <button
1436 class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" 1431 class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple"
1437 aria-label="Previous" 1432 aria-label="Previous"
1438 > 1433 >
1439 <svg 1434 <svg
1440 aria-hidden="true" 1435 aria-hidden="true"
1441 class="w-4 h-4 fill-current" 1436 class="w-4 h-4 fill-current"
1442 viewBox="0 0 20 20" 1437 viewBox="0 0 20 20"
1443 > 1438 >
1444 <path 1439 <path
1445 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" 1440 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"
1446 clip-rule="evenodd" 1441 clip-rule="evenodd"
1447 fill-rule="evenodd" 1442 fill-rule="evenodd"
1448 ></path> 1443 ></path>
1449 </svg> 1444 </svg>
1450 </button> 1445 </button>
1451 </li> 1446 </li>
1452 <li> 1447 <li>
1453 <button 1448 <button
1454 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1449 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1455 > 1450 >
1456 1 1451 1
1457 </button> 1452 </button>
1458 </li> 1453 </li>
1459 <li> 1454 <li>
1460 <button 1455 <button
1461 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1456 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1462 > 1457 >
1463 2 1458 2
1464 </button> 1459 </button>
1465 </li> 1460 </li>
1466 <li> 1461 <li>
1467 <button 1462 <button
1468 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" 1463 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"
1469 > 1464 >
1470 3 1465 3
1471 </button> 1466 </button>
1472 </li> 1467 </li>
1473 <li> 1468 <li>
1474 <button 1469 <button
1475 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1470 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1476 > 1471 >
1477 4 1472 4
1478 </button> 1473 </button>
1479 </li> 1474 </li>
1480 <li> 1475 <li>
1481 <span class="px-3 py-1">...</span> 1476 <span class="px-3 py-1">...</span>
1482 </li> 1477 </li>
1483 <li> 1478 <li>
1484 <button 1479 <button
1485 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1480 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1486 > 1481 >
1487 8 1482 8
1488 </button> 1483 </button>
1489 </li> 1484 </li>
1490 <li> 1485 <li>
1491 <button 1486 <button
1492 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1487 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1493 > 1488 >
1494 9 1489 9
1495 </button> 1490 </button>
1496 </li> 1491 </li>
1497 <li> 1492 <li>
1498 <button 1493 <button
1499 class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" 1494 class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple"
1500 aria-label="Next" 1495 aria-label="Next"
1501 > 1496 >
1502 <svg 1497 <svg
1503 class="w-4 h-4 fill-current" 1498 class="w-4 h-4 fill-current"
1504 aria-hidden="true" 1499 aria-hidden="true"
1505 viewBox="0 0 20 20" 1500 viewBox="0 0 20 20"
1506 > 1501 >
1507 <path 1502 <path
1508 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" 1503 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"
1509 clip-rule="evenodd" 1504 clip-rule="evenodd"
1510 fill-rule="evenodd" 1505 fill-rule="evenodd"
1511 ></path> 1506 ></path>
1512 </svg> 1507 </svg>
1513 </button> 1508 </button>
1514 </li> 1509 </li>
1515 </ul> 1510 </ul>
1516 </nav> 1511 </nav>
1517 </span> 1512 </span>
1518 </div> 1513 </div>
1519 </div> 1514 </div>
1520 --> 1515 -->
1521 <!-- Charts --> 1516 <!-- Charts -->
1522 <!-- 1517 <!--
1523 <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"> 1518 <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200">
1524 Графики 1519 Графики
1525 </h2> 1520 </h2>
1526 <div class="grid gap-6 mb-8 md:grid-cols-2"> 1521 <div class="grid gap-6 mb-8 md:grid-cols-2">
1527 <div 1522 <div
1528 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1523 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1529 > 1524 >
1530 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> 1525 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300">
1531 Revenue 1526 Revenue
1532 </h4> 1527 </h4>
1533 <canvas id="pie"></canvas> 1528 <canvas id="pie"></canvas>
1534 <div 1529 <div
1535 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" 1530 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400"
1536 > 1531 >
1537 1532
1538 <div class="flex items-center"> 1533 <div class="flex items-center">
1539 <span 1534 <span
1540 class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full" 1535 class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full"
1541 ></span> 1536 ></span>
1542 <span>Shirts</span> 1537 <span>Shirts</span>
1543 </div> 1538 </div>
1544 <div class="flex items-center"> 1539 <div class="flex items-center">
1545 <span 1540 <span
1546 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" 1541 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full"
1547 ></span> 1542 ></span>
1548 <span>Shoes</span> 1543 <span>Shoes</span>
1549 </div> 1544 </div>
1550 <div class="flex items-center"> 1545 <div class="flex items-center">
1551 <span 1546 <span
1552 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" 1547 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full"
1553 ></span> 1548 ></span>
1554 <span>Bags</span> 1549 <span>Bags</span>
1555 </div> 1550 </div>
1556 </div> 1551 </div>
1557 </div> 1552 </div>
1558 <div 1553 <div
1559 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1554 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1560 > 1555 >
1561 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> 1556 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300">
1562 Traffic 1557 Traffic
1563 </h4> 1558 </h4>
1564 <canvas id="line"></canvas> 1559 <canvas id="line"></canvas>
1565 <div 1560 <div
1566 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" 1561 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400"
1567 > 1562 >
1568 1563
1569 <div class="flex items-center"> 1564 <div class="flex items-center">
1570 <span 1565 <span
1571 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" 1566 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full"
1572 ></span> 1567 ></span>
1573 <span>Organic</span> 1568 <span>Organic</span>
1574 </div> 1569 </div>
1575 <div class="flex items-center"> 1570 <div class="flex items-center">
1576 <span 1571 <span
1577 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" 1572 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full"
1578 ></span> 1573 ></span>
1579 <span>Paid</span> 1574 <span>Paid</span>
1580 </div> 1575 </div>
1581 </div> 1576 </div>
1582 </div> 1577 </div>
1583 </div> 1578 </div>
1584 --> 1579 -->
1585 </div> 1580 </div>
1586 </main> 1581 </main>
1587 </div> 1582 </div>
1588 </div> 1583 </div>
1589 </body> 1584 </body>
1585 @yield('script')
1590 </html> 1586 </html>
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\EmployersController;
5 use App\Http\Controllers\Admin\UsersController;
6 use App\Http\Controllers\Admin\WorkersController;
4 use App\Http\Controllers\Auth\LoginController; 7 use App\Http\Controllers\Auth\LoginController;
5 use App\Http\Controllers\Auth\RegisterController; 8 use App\Http\Controllers\Auth\RegisterController;
6 use App\Models\User; 9 use App\Models\User;
7 use App\Http\Controllers\MainController; 10 use App\Http\Controllers\MainController;
8 use App\Http\Controllers\HomeController; 11 use App\Http\Controllers\HomeController;
9 use Illuminate\Support\Facades\Route; 12 use Illuminate\Support\Facades\Route;
10 13
11 /* 14 /*
12 |-------------------------------------------------------------------------- 15 |--------------------------------------------------------------------------
13 | Web Routes 16 | Web Routes
14 |-------------------------------------------------------------------------- 17 |--------------------------------------------------------------------------
15 | 18 |
16 | Here is where you can register web routes for your application. These 19 | Here is where you can register web routes for your application. These
17 | routes are loaded by the RouteServiceProvider within a group which 20 | routes are loaded by the RouteServiceProvider within a group which
18 | contains the "web" middleware group. Now create something great! 21 | contains the "web" middleware group. Now create something great!
19 | 22 |
20 */ 23 */
21 /* 24 /*
22 Route::get('/', function () { 25 Route::get('/', function () {
23 return view('welcome'); 26 return view('welcome');
24 })->name('index'); 27 })->name('index');
25 */ 28 */
26 Route::get('/', [MainController::class, 'index'])->name('index'); 29 Route::get('/', [MainController::class, 'index'])->name('index');
27 30
28 //Роуты авторизации, регистрации, восстановления, аутентификации 31 //Роуты авторизации, регистрации, восстановления, аутентификации
29 Auth::routes(['verify' => true]); 32 Auth::routes(['verify' => true]);
30 //Личный кабинет пользователя 33 //Личный кабинет пользователя
31 Route::get('/home', [HomeController::class, 'index'])->name('home'); 34 Route::get('/home', [HomeController::class, 'index'])->name('home');
32 35
33 /* 36 /*
34 Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) { 37 Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) {
35 $user = User::where('email',$request->input('email'))->first(); 38 $user = User::where('email',$request->input('email'))->first();
36 39
37 $user->sendEmailVerificationNotification(); 40 $user->sendEmailVerificationNotification();
38 41
39 return 'your response'; 42 return 'your response';
40 })->middleware('throttle:6,1')->name('verification.resend'); 43 })->middleware('throttle:6,1')->name('verification.resend');
41 */ 44 */
42 45
43 // Авторизация, регистрация в админку 46 // Авторизация, регистрация в админку
44 Route::group([ 47 Route::group([
45 'as' => 'admin.', // имя маршрута, например auth.index 48 'as' => 'admin.', // имя маршрута, например auth.index
46 'prefix' => 'admin', // префикс маршрута, например auth/index 49 'prefix' => 'admin', // префикс маршрута, например auth/index
47 'middleware' => ['guest'], 50 'middleware' => ['guest'],
48 ], function () { 51 ], function () {
49 // Форма регистрации 52 // Форма регистрации
50 Route::get('register', [AdminController::class, 'register'])->name('register'); 53 Route::get('register', [AdminController::class, 'register'])->name('register');
51 54
52 // Создание пользователя 55 // Создание пользователя
53 Route::post('register', [AdminController::class, 'create'])->name('create'); 56 Route::post('register', [AdminController::class, 'create'])->name('create');
54 //Форма входа 57 //Форма входа
55 Route::get('login', [AdminController::class, 'login'])->name('login'); 58 Route::get('login', [AdminController::class, 'login'])->name('login');
56 59
57 // аутентификация 60 // аутентификация
58 Route::post('login', [AdminController::class, 'autenticate'])->name('auth'); 61 Route::post('login', [AdminController::class, 'autenticate'])->name('auth');
59 62
60 }); 63 });
61 64
62 // Личный кабинет админки 65 // Личный кабинет админки
63 Route::group([ 66 Route::group([
64 'as' => 'admin.', // имя маршрута, например auth.index 67 'as' => 'admin.', // имя маршрута, например auth.index
65 'prefix' => 'admin', // префикс маршрута, например auth/index 68 'prefix' => 'admin', // префикс маршрута, например auth/index
66 'middleware' => ['auth'], ['admin'], 69 'middleware' => ['auth'], ['admin'],
67 ], function() { 70 ], function() {
68 71
69 // выход 72 // выход
70 Route::get('logout', [AdminController::class, 'logout'])->name('logout'); 73 Route::get('logout', [AdminController::class, 'logout'])->name('logout');
71 74
72 // кабинет главная страница 75 // кабинет главная страница
73 Route::get('cabinet', [AdminController::class, 'index'])->name('index'); 76 Route::get('cabinet', [AdminController::class, 'index'])->name('index');
74 77
75 // кабинет - пользователи 78 // кабинет - пользователи
76 Route::get('users', [AdminController::class, 'index'])->name('users'); 79 Route::get('users', [UsersController::class, 'index'])->name('users');
80
81 // кабинет - пользователи
82 Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users');
77 83
78 // кабинет - работодатели 84 // кабинет - работодатели
79 Route::get('employers', [AdminController::class, 'index'])->name('employers'); 85 Route::get('employers', [EmployersController::class, 'index'])->name('employers');
80 86
81 // кабинет - соискатели 87 // кабинет - соискатели
82 Route::get('workers', [AdminController::class, 'index'])->name('workers'); 88 Route::get('workers', [WorkersController::class, 'index'])->name('workers');
83 89
84 // кабинет - вакансии 90 // кабинет - вакансии
85 Route::get('ad-employers', [AdminController::class, 'index'])->name('ad-employers'); 91 Route::get('ad-employers', [AdminController::class, 'index'])->name('ad-employers');
86 92
87 // кабинет - категории 93 // кабинет - категории
88 Route::get('categories', [AdminController::class, 'index'])->name('categories'); 94 Route::get('categories', [AdminController::class, 'index'])->name('categories');
89 95
90 // кабинет - должности 96 // кабинет - должности
91 Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles'); 97 Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles');
92 98
93 // кабинет - сообщения 99 // кабинет - сообщения
94 Route::get('messages', [AdminController::class, 'index'])->name('messages'); 100 Route::get('messages', [AdminController::class, 'index'])->name('messages');
95 101
96 // кабинет - группы пользователей 102 // кабинет - группы пользователей
97 Route::get('groups', [AdminController::class, 'index'])->name('groups'); 103 Route::get('groups', [AdminController::class, 'index'])->name('groups');
98 104
99 // кабинет - список админов 105 // кабинет - список админов
100 Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin'); 106 Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin');
101 }); 107 });
102 108