Commit 8c73c7b41010936aae7382e57998d5a922571670
1 parent
c84db52439
Exists in
master
and in
1 other branch
Категории вакансий и резюме. Модель. Контроллер.
Showing 12 changed files with 751 additions and 8 deletions Inline Diff
- app/Http/Controllers/Admin/CategoryController.php
- app/Http/Controllers/Admin/EmployersController.php
- app/Http/Requests/CategoryRequest.php
- app/Models/Category.php
- resources/views/admin/category/add.blade.php
- resources/views/admin/category/edit.blade.php
- resources/views/admin/category/form.blade.php
- resources/views/admin/category/index.blade.php
- resources/views/admin/employer/edit.blade.php
- resources/views/admin/worker/edit.blade.php
- resources/views/layout/admin.blade.php
- routes/web.php
app/Http/Controllers/Admin/CategoryController.php
File was created | 1 | <?php | |
2 | |||
3 | namespace App\Http\Controllers\Admin; | ||
4 | |||
5 | use App\Http\Controllers\Controller; | ||
6 | use App\Http\Requests\CategoryRequest; | ||
7 | use App\Models\Category; | ||
8 | use Illuminate\Http\Request; | ||
9 | use Illuminate\Support\Facades\Auth; | ||
10 | use Illuminate\Support\Facades\Storage; | ||
11 | |||
12 | class CategoryController extends Controller | ||
13 | { | ||
14 | /** | ||
15 | * Display a listing of the resource. | ||
16 | * | ||
17 | * @return \Illuminate\Http\Response | ||
18 | */ | ||
19 | public function index() | ||
20 | { | ||
21 | $category = Category::query()->paginate(15); | ||
22 | return view('admin.category.index', compact('category')); | ||
23 | } | ||
24 | |||
25 | /** | ||
26 | * Show the form for creating a new resource. | ||
27 | * | ||
28 | * @return \Illuminate\Http\Response | ||
29 | */ | ||
30 | public function create() | ||
31 | { | ||
32 | return view('admin.category.add'); | ||
33 | } | ||
34 | |||
35 | /** | ||
36 | * Store a newly created resource in storage. | ||
37 | * | ||
38 | * @param \Illuminate\Http\Request $request | ||
39 | * @return \Illuminate\Http\Response | ||
40 | */ | ||
41 | public function store(CategoryRequest $request) | ||
42 | { | ||
43 | Category::create($request->all()); | ||
44 | return redirect()->route('admin.categories.index'); | ||
45 | } | ||
46 | |||
47 | /** | ||
48 | * Display the specified resource. | ||
49 | * | ||
50 | * @param \App\Models\Category $category | ||
51 | * @return \Illuminate\Http\Response | ||
52 | */ | ||
53 | public function show(Category $category) | ||
54 | { | ||
55 | // | ||
56 | } | ||
57 | |||
58 | /** | ||
59 | * Show the form for editing the specified resource. | ||
60 | * | ||
61 | * @param \App\Models\Category $category | ||
62 | * @return \Illuminate\Http\Response | ||
63 | */ | ||
64 | public function edit(Category $category) | ||
65 | { | ||
66 | return view('admin.category.edit', compact('category')); | ||
67 | } | ||
68 | |||
69 | /** | ||
70 | * Update the specified resource in storage. | ||
71 | * | ||
72 | * @param \Illuminate\Http\Request $request | ||
73 | * @param \App\Models\Category $category | ||
74 | * @return \Illuminate\Http\Response | ||
75 | */ | ||
76 | public function update(CategoryRequest $request, Category $category) | ||
77 | { | ||
78 | $category->update($request->all()); | ||
79 | return redirect()->route('admin.categories.index'); | ||
80 | } | ||
81 | |||
82 | /** | ||
83 | * Remove the specified resource from storage. | ||
84 | * | ||
85 | * @param \App\Models\Category $category | ||
86 | * @return \Illuminate\Http\Response | ||
87 | */ | ||
88 | public function destroy(Category $category) | ||
89 | { | ||
90 | if (Auth::user()->id == 1) { | ||
91 | $category->delete(); | ||
92 | } | ||
93 | return redirect()->route('admin.categories.index'); | ||
94 | } | ||
95 | } | ||
96 |
app/Http/Controllers/Admin/EmployersController.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\Storage; | ||
10 | use Illuminate\Support\Facades\Validator; | ||
9 | 11 | ||
10 | class EmployersController extends Controller | 12 | class EmployersController extends Controller |
11 | { | 13 | { |
12 | public function index(Request $request) { | 14 | public function index(Request $request) { |
13 | if ($request->ajax()) { | 15 | if ($request->ajax()) { |
14 | $user = User::find($request->id); | 16 | $user = User::find($request->id); |
15 | $request->offsetUnset('id'); | 17 | $request->offsetUnset('id'); |
16 | $user->update($request->all()); | 18 | $user->update($request->all()); |
17 | } | 19 | } |
18 | 20 | ||
19 | $users = User::where('is_worker', '0')->paginate(15); | 21 | $users = User::where('is_worker', '0')->paginate(15); |
20 | if ($request->ajax()) { | 22 | if ($request->ajax()) { |
21 | return view('admin.employer.index_ajax', compact('users')); | 23 | return view('admin.employer.index_ajax', compact('users')); |
22 | } else { | 24 | } else { |
23 | return view('admin.employer.index', compact('users')); | 25 | return view('admin.employer.index', compact('users')); |
24 | } | 26 | } |
25 | } | 27 | } |
26 | 28 | ||
27 | public function form_update_employer(Employer $employer) { | 29 | public function form_update_employer(Employer $employer) { |
28 | return view('admin.employer.edit', compact('employer')); | 30 | return view('admin.employer.edit', compact('employer')); |
29 | } | 31 | } |
32 | |||
33 | public function update_employer(Employer $employer, Request $request) | ||
34 | { | ||
35 | $params = $request->all(); | ||
36 | unset($params['logo']); | ||
37 | unset($params['telephone']); | ||
38 | unset($params['email']); | ||
39 | unset($params['address']); | ||
40 | unset($params['site']); | ||
41 | |||
42 | $rules = [ | ||
43 | 'name' => 'required|string|max:255', | ||
44 | ]; | ||
45 | |||
46 | $messages = [ | ||
47 | 'required' => 'Укажите обязательное поле «:attribute»', | ||
48 | 'confirmed' => 'Пароли не совпадают', | ||
49 | 'email' => 'Введите корректный email', | ||
50 | 'min' => [ | ||
51 | 'string' => 'Поле «:attribute» должно быть не меньше :min символов', | ||
52 | 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' | ||
53 | ], | ||
54 | 'max' => [ | ||
55 | 'string' => 'Поле «:attribute» должно быть не больше :max символов', | ||
56 | 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' | ||
57 | ], | ||
58 | ]; | ||
59 | |||
60 | $validator = Validator::make($params, $rules, $messages); | ||
61 | |||
62 | if ($validator->fails()) { | ||
63 | return back()->withErrors($validator)->withInput(); //->route('admin.register') | ||
64 | |||
65 | } else { | ||
66 | |||
67 | //$user = User::find($employer->user_id); | ||
68 | $user_id = $employer->user_id; | ||
69 | $employer->telephone = $request->telephone; | ||
70 | $employer->email = $request->email; | ||
71 | $employer->address = $request->address; | ||
72 | $employer->site = $request->site; | ||
73 | $employer->text = $request->text; | ||
74 | |||
75 | if ($request->has('logo')) { | ||
76 | if (!empty($employer->logo)) { | ||
77 | Storage::delete($employer->logo); | ||
78 | } | ||
79 | $employer->logo = $request->file('logo')->store("employer/$user_id", 'public'); | ||
80 | } | ||
81 | $employer->save(); | ||
82 | |||
83 | $user = User::find($user_id); | ||
84 | $user->update($params); | ||
85 | |||
86 | return redirect()->route('admin.employer-profile', ['employer' => $employer->id]) | ||
87 | ->with('success', 'Данные были успешно сохранены'); | ||
88 | } | ||
89 | } | ||
30 | } | 90 | } |
31 | 91 |
app/Http/Requests/CategoryRequest.php
File was created | 1 | <?php | |
2 | |||
3 | namespace App\Http\Requests; | ||
4 | |||
5 | use Illuminate\Foundation\Http\FormRequest; | ||
6 | |||
7 | class CategoryRequest extends FormRequest | ||
8 | { | ||
9 | /** | ||
10 | * Determine if the user is authorized to make this request. | ||
11 | * | ||
12 | * @return bool | ||
13 | */ | ||
14 | public function authorize() | ||
15 | { | ||
16 | return true; | ||
17 | } | ||
18 | |||
19 | /** | ||
20 | * Get the validation rules that apply to the request. | ||
21 | * | ||
22 | * @return array<string, mixed> | ||
23 | */ | ||
24 | public function rules() | ||
25 | { | ||
26 | return [ | ||
27 | 'name' => 'required|min:3|max:255', | ||
28 | ]; | ||
29 | } | ||
30 | |||
31 | public function messages() { | ||
32 | return [ | ||
33 | 'required' => 'Поле :attribute обязательно для ввода', | ||
34 | 'min' => [ | ||
35 | 'string' => 'Поле «:attribute» должно быть не меньше :min символов', | ||
36 | 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' | ||
37 | ], | ||
38 | 'max' => [ | ||
39 | 'string' => 'Поле «:attribute» должно быть не больше :max символов', | ||
40 | 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' | ||
41 | ], | ||
42 | |||
43 | ]; | ||
44 | } | ||
45 | } | ||
46 |
app/Models/Category.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 Category extends Model | 8 | class Category extends Model |
9 | { | 9 | { |
10 | use HasFactory; | 10 | use HasFactory; |
11 | |||
12 | protected $fillable = [ | ||
13 | 'name', | ||
14 | ]; | ||
11 | } | 15 | } |
12 | 16 |
resources/views/admin/category/add.blade.php
File was created | 1 | @extends('layout.admin', ['title' => 'Админка - Добавление категории']) | |
2 | |||
3 | @section('content') | ||
4 | <form method="POST" action="{{ route('admin.categories.store') }}"> | ||
5 | @include('admin.category.form') | ||
6 | </form> | ||
7 | @endsection | ||
8 |
resources/views/admin/category/edit.blade.php
File was created | 1 | @extends('layout.admin', ['title' => 'Админка - Редактирование категории']) | |
2 | |||
3 | @section('content') | ||
4 | <form method="POST" action="{{ route('admin.categories.update', ['category' => $category->id]) }}"> | ||
5 | @include('admin.category.form') | ||
6 | </form> | ||
7 | @endsection | ||
8 |
resources/views/admin/category/form.blade.php
File was created | 1 | @csrf | |
2 | |||
3 | @isset($category) | ||
4 | @method('PUT') | ||
5 | @endisset | ||
6 | |||
7 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | ||
8 | <label class="block text-sm"> | ||
9 | <span class="text-gray-700 dark:text-gray-400">Имя категории</span> | ||
10 | <input name="name" id="name" | ||
11 | 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" | ||
12 | placeholder="Имя категории" value="{{ old('name') ?? $category->name ?? '' }}" | ||
13 | /> | ||
14 | @error('name') | ||
15 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
16 | {{ $message }} | ||
17 | </span> | ||
18 | @enderror | ||
19 | </label><br> | ||
20 | |||
21 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | ||
22 | <div> | ||
23 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | ||
24 | Сохранить | ||
25 | </button> | ||
26 | </div> | ||
27 | </div> | ||
28 | </div> | ||
29 |
resources/views/admin/category/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 | |||
43 | <a href="{{ route('admin.categories.create') }}" style="width: 210px" class="px-5 py-3 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"> | ||
44 | Добавить категорию | ||
45 | </a> | ||
46 | <br> | ||
47 | <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block"> | ||
48 | |||
49 | <div class="w-full overflow-x-auto"> | ||
50 | <table class="w-full whitespace-no-wrap"> | ||
51 | <thead> | ||
52 | <tr | ||
53 | 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" | ||
54 | > | ||
55 | <th class="px-4 py-3">№</th> | ||
56 | <th class="px-4 py-3">Название категории</th> | ||
57 | <th class="px-4 py-3">Дата создания</th> | ||
58 | <th class="px-4 py-3">Редактировать</th> | ||
59 | </tr> | ||
60 | </thead> | ||
61 | <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> | ||
62 | @foreach($category as $cat) | ||
63 | <tr class="text-gray-700 dark:text-gray-400"> | ||
64 | <td class="px-4 py-3"> | ||
65 | {{$cat->id}} | ||
66 | </td> | ||
67 | <td class="px-4 py-3"> | ||
68 | {{$cat->name}} | ||
69 | </td> | ||
70 | <td class="px-4 py-3"> | ||
71 | {{$cat->created_at}} | ||
72 | </td> | ||
73 | <td class="px-4 py-3 text-sm"> | ||
74 | <form action="{{ route('admin.categories.destroy', ['category' => $cat->id]) }}" method="POST"> | ||
75 | <a href="{{ route('admin.categories.edit', ['category' => $cat->id]) }}">Изменить</a> | | ||
76 | @csrf | ||
77 | @method('DELETE') | ||
78 | <input class=" btn-danger" type="submit" value="Удалить"> | ||
79 | </form> | ||
80 | </td> | ||
81 | </tr> | ||
82 | @endforeach | ||
83 | </tbody> | ||
84 | </table> | ||
85 | </div> | ||
86 | |||
87 | <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"> | ||
88 | <?=$category->appends($_GET)->links('admin.pagginate'); ?> | ||
89 | </div> | ||
90 | </div> | ||
91 | @endsection | ||
92 |
resources/views/admin/employer/edit.blade.php
1 | @extends('layout.admin', ['title' => 'Админка - Редактирование работодателя']) | 1 | @extends('layout.admin', ['title' => 'Админка - Редактирование работодателя']) |
2 | 2 | ||
3 | @section('content') | 3 | @section('content') |
4 | <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"> | 4 | <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"> |
5 | Работодатель-пользователь: "{{$employer->users->name_man}} ({{$employer->user_id}})" | 5 | Работодатель-пользователь: "{{$employer->users->name_man}} ({{$employer->user_id}})" |
6 | </h4> | 6 | </h4> |
7 | <form method="POST" action=""> | 7 | <form method="POST" action="" enctype="multipart/form-data"> |
8 | @csrf | 8 | @csrf |
9 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | 9 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> |
10 | <label class="block text-sm"> | 10 | <label class="block text-sm"> |
11 | <span class="text-gray-700 dark:text-gray-400">Имя компании</span> | 11 | <span class="text-gray-700 dark:text-gray-400">Имя компании</span> |
12 | <input name="name_company" id="name_company" | 12 | <input name="name" id="name" |
13 | 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" | 13 | 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" |
14 | placeholder="Имя компании" value="{{ old('name_company') ?? $employer->name_company ?? '' }}" | 14 | placeholder="Имя компании" value="{{ old('name') ?? $employer->users->name ?? '' }}" |
15 | /> | 15 | /> |
16 | @error('name_company') | 16 | @error('name') |
17 | <span class="text-xs text-red-600 dark:text-red-400"> | 17 | <span class="text-xs text-red-600 dark:text-red-400"> |
18 | {{ $message }} | 18 | {{ $message }} |
19 | </span> | 19 | </span> |
20 | @enderror | 20 | @enderror |
21 | </label><br> | 21 | </label><br> |
22 | 22 | ||
23 | <label class="block text-sm"> | 23 | <label class="block text-sm"> |
24 | <span class="text-gray-700 dark:text-gray-400">Email</span> | 24 | <span class="text-gray-700 dark:text-gray-400">Email</span> |
25 | <input name="email" id="email" | 25 | <input name="email" id="email" |
26 | 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" | 26 | 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 | placeholder="Почта" value="{{ old('email') ?? $employer->email ?? '' }}" | 27 | placeholder="Почта" value="{{ old('email') ?? $employer->email ?? '' }}" |
28 | /> | 28 | /> |
29 | @error('email') | 29 | @error('email') |
30 | <span class="text-xs text-red-600 dark:text-red-400"> | 30 | <span class="text-xs text-red-600 dark:text-red-400"> |
31 | {{ $message }} | 31 | {{ $message }} |
32 | </span> | 32 | </span> |
33 | @enderror | 33 | @enderror |
34 | </label><br> | 34 | </label><br> |
35 | 35 | ||
36 | <label class="block text-sm"> | 36 | <label class="block text-sm"> |
37 | <span class="text-gray-700 dark:text-gray-400">Телефон</span> | 37 | <span class="text-gray-700 dark:text-gray-400">Телефон</span> |
38 | <input name="telephone" id="telephone" | 38 | <input name="telephone" id="telephone" |
39 | 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" | 39 | 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" |
40 | placeholder="Телефон" value="{{ old('telephone') ?? $employer->telephone ?? '' }}" | 40 | placeholder="Телефон" value="{{ old('telephone') ?? $employer->telephone ?? '' }}" |
41 | /> | 41 | /> |
42 | @error('telephone') | 42 | @error('telephone') |
43 | <span class="text-xs text-red-600 dark:text-red-400"> | 43 | <span class="text-xs text-red-600 dark:text-red-400"> |
44 | {{ $message }} | 44 | {{ $message }} |
45 | </span> | 45 | </span> |
46 | @enderror | 46 | @enderror |
47 | </label><br> | 47 | </label><br> |
48 | 48 | ||
49 | <label class="block text-sm"> | 49 | <label class="block text-sm"> |
50 | <span class="text-gray-700 dark:text-gray-400">Адрес</span> | 50 | <span class="text-gray-700 dark:text-gray-400">Адрес</span> |
51 | <input name="address" id="address" | 51 | <input name="address" id="address" |
52 | 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" | 52 | 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" |
53 | placeholder="Адрес" value="{{ old('address') ?? $employer->address ?? '' }}" | 53 | placeholder="Адрес" value="{{ old('address') ?? $employer->address ?? '' }}" |
54 | /> | 54 | /> |
55 | @error('address') | 55 | @error('address') |
56 | <span class="text-xs text-red-600 dark:text-red-400"> | 56 | <span class="text-xs text-red-600 dark:text-red-400"> |
57 | {{ $message }} | 57 | {{ $message }} |
58 | </span> | 58 | </span> |
59 | @enderror | 59 | @enderror |
60 | </label><br> | 60 | </label><br> |
61 | 61 | ||
62 | <label class="block text-sm"> | 62 | <label class="block text-sm"> |
63 | <span class="text-gray-700 dark:text-gray-400">Сайт</span> | 63 | <span class="text-gray-700 dark:text-gray-400">Сайт</span> |
64 | <input name="site" id="site" | 64 | <input name="site" id="site" |
65 | 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" | 65 | 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" |
66 | placeholder="Сайт" value="{{ old('site') ?? $employer->site ?? '' }}" | 66 | placeholder="Сайт" value="{{ old('site') ?? $employer->site ?? '' }}" |
67 | /> | 67 | /> |
68 | @error('site') | 68 | @error('site') |
69 | <span class="text-xs text-red-600 dark:text-red-400"> | 69 | <span class="text-xs text-red-600 dark:text-red-400"> |
70 | {{ $message }} | 70 | {{ $message }} |
71 | </span> | 71 | </span> |
72 | @enderror | 72 | @enderror |
73 | </label><br> | 73 | </label><br> |
74 | 74 | ||
75 | <label class="block text-sm"> | 75 | <label class="block text-sm"> |
76 | <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"> | ||
77 | Права работодателя: | ||
78 | </h4> | ||
79 | <p style="float:left; margin-right: 10px">Просмотр базы резюме </p> | ||
80 | <input type="hidden" name="is_lookin" value="0" /> | ||
81 | <input name="is_lookin" <? if ($employer->users->is_lookin) echo "checked";?> | ||
82 | class="block 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 " | ||
83 | placeholder="" type="checkbox" value="1" | ||
84 | /><br> | ||
85 | |||
86 | <p style="float:left; margin-right: 10px">Отправка сообщений</p> | ||
87 | <input type="hidden" name="is_message" value="0" /> | ||
88 | <input name="is_message" id="is_message" <? if ($employer->users->is_message) echo "checked";?> | ||
89 | class="block 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 " | ||
90 | placeholder="" type="checkbox" value="1" | ||
91 | /><br> | ||
92 | |||
93 | <p style="float:left; margin-right: 10px">Публикация вакансий</p> | ||
94 | <input type="hidden" name="is_public" value="0" /> | ||
95 | <input name="is_public" id="is_public" <? if ($employer->users->is_public) echo "checked";?> | ||
96 | class="block 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 " | ||
97 | placeholder="" type="checkbox" value="1" | ||
98 | /><br> | ||
99 | |||
100 | </label> | ||
101 | |||
102 | <label class="block text-sm"> | ||
76 | <span class="text-gray-700 dark:text-gray-400">Лого</span> | 103 | <span class="text-gray-700 dark:text-gray-400">Лого</span> |
77 | <input name="logo" id="logo" | 104 | |
105 | <input name="logo" id="logo" type="file" | ||
78 | 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" | 106 | 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" |
79 | placeholder="Лого" value="" | 107 | placeholder="Лого" value="" |
80 | /> | 108 | /> |
109 | @isset($employer->logo) | ||
110 | <img src="<?=asset(Storage::url($employer->logo))?>" width="150"/> | ||
111 | @endisset | ||
81 | @error('logo') | 112 | @error('logo') |
82 | <span class="text-xs text-red-600 dark:text-red-400"> | 113 | <span class="text-xs text-red-600 dark:text-red-400"> |
83 | {{ $message }} | 114 | {{ $message }} |
84 | </span> | 115 | </span> |
85 | @enderror | 116 | @enderror |
86 | </label><br> | 117 | </label><br> |
87 | 118 | ||
119 | <label class="block mt-4 text-sm"> | ||
120 | <span class="text-gray-700 dark:text-gray-400">Описание</span> | ||
121 | <textarea name="text" id="text" | ||
122 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | ||
123 | rows="3" | ||
124 | placeholder="Описание компании" | ||
125 | >{{ old('text') ?? $employer->text ?? '' }}</textarea> | ||
126 | </label> | ||
127 | |||
128 | |||
88 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | 129 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> |
89 | <div> | 130 | <div> |
90 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | 131 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> |
91 | Сохранить | 132 | Сохранить |
92 | </button> | 133 | </button> |
93 | </div> | 134 | </div> |
135 | <div> | ||
136 | <a href="">Флот</a> | ||
137 | </div> | ||
138 | <div> | ||
139 | <a href="">Вакансии</a> | ||
140 | </div> | ||
141 | <div> | ||
142 | <a href="">Контакты</a> | ||
143 | </div> | ||
94 | </div> | 144 | </div> |
95 | </div> | 145 | </div> |
96 | </form> | 146 | </form> |
97 | <!-- | 147 | <!-- |
98 | <label class="block mt-4 text-sm"> | 148 | <label class="block mt-4 text-sm"> |
99 | <span class="text-gray-700 dark:text-gray-400"> | 149 | <span class="text-gray-700 dark:text-gray-400"> |
100 | Requested Limit | 150 | Requested Limit |
101 | </span> | 151 | </span> |
102 | <select | 152 | <select |
103 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 153 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
104 | > | 154 | > |
105 | <option>$1,000</option> | 155 | <option>$1,000</option> |
106 | <option>$5,000</option> | 156 | <option>$5,000</option> |
107 | <option>$10,000</option> | 157 | <option>$10,000</option> |
108 | <option>$25,000</option> | 158 | <option>$25,000</option> |
109 | </select> | 159 | </select> |
110 | </label> | 160 | </label> |
111 | 161 | ||
112 | <label class="block mt-4 text-sm"> | 162 | <label class="block mt-4 text-sm"> |
113 | <span class="text-gray-700 dark:text-gray-400"> | 163 | <span class="text-gray-700 dark:text-gray-400"> |
114 | Multiselect | 164 | Multiselect |
115 | </span> | 165 | </span> |
116 | <select | 166 | <select |
117 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-multiselect focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 167 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-multiselect focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
118 | multiple | 168 | multiple |
119 | > | 169 | > |
120 | <option>Option 1</option> | 170 | <option>Option 1</option> |
121 | <option>Option 2</option> | 171 | <option>Option 2</option> |
122 | <option>Option 3</option> | 172 | <option>Option 3</option> |
123 | <option>Option 4</option> | 173 | <option>Option 4</option> |
124 | <option>Option 5</option> | 174 | <option>Option 5</option> |
125 | </select> | 175 | </select> |
126 | </label> | 176 | </label> |
127 | 177 | ||
128 | <label class="block mt-4 text-sm"> | 178 | <label class="block mt-4 text-sm"> |
129 | <span class="text-gray-700 dark:text-gray-400">Message</span> | 179 | <span class="text-gray-700 dark:text-gray-400">Message</span> |
130 | <textarea | 180 | <textarea |
131 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 181 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
132 | rows="3" | 182 | rows="3" |
133 | placeholder="Enter some long form content." | 183 | placeholder="Enter some long form content." |
134 | ></textarea> | 184 | ></textarea> |
135 | </label> | 185 | </label> |
136 | 186 | ||
137 | <div class="flex mt-6 text-sm"> | 187 | <div class="flex mt-6 text-sm"> |
138 | <label class="flex items-center dark:text-gray-400"> | 188 | <label class="flex items-center dark:text-gray-400"> |
139 | <input | 189 | <input |
140 | type="checkbox" | 190 | type="checkbox" |
141 | class="text-purple-600 form-checkbox focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 191 | class="text-purple-600 form-checkbox focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
142 | /> | 192 | /> |
143 | <span class="ml-2"> | 193 | <span class="ml-2"> |
144 | I agree to the | 194 | I agree to the |
145 | <span class="underline">privacy policy</span> | 195 | <span class="underline">privacy policy</span> |
146 | </span> | 196 | </span> |
147 | </label> | 197 | </label> |
148 | </div> | 198 | </div> |
149 | </div> | 199 | </div> |
150 | 200 | ||
151 | <!-- Validation inputs --> | 201 | <!-- Validation inputs --> |
152 | <!--<h4 | 202 | <!--<h4 |
153 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" | 203 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" |
154 | > | 204 | > |
155 | Validation | 205 | Validation |
156 | </h4> | 206 | </h4> |
157 | <div | 207 | <div |
158 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" | 208 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" |
159 | > | 209 | > |
160 | <!-- Invalid input --> | 210 | <!-- Invalid input --> |
161 | <!--<label class="block text-sm"> | 211 | <!--<label class="block text-sm"> |
162 | <span class="text-gray-700 dark:text-gray-400"> | 212 | <span class="text-gray-700 dark:text-gray-400"> |
163 | Invalid input | 213 | Invalid input |
164 | </span> | 214 | </span> |
165 | <input | 215 | <input |
166 | class="block w-full mt-1 text-sm border-red-600 dark:text-gray-300 dark:bg-gray-700 focus:border-red-400 focus:outline-none focus:shadow-outline-red form-input" | 216 | class="block w-full mt-1 text-sm border-red-600 dark:text-gray-300 dark:bg-gray-700 focus:border-red-400 focus:outline-none focus:shadow-outline-red form-input" |
167 | placeholder="Jane Doe" | 217 | placeholder="Jane Doe" |
168 | /> | 218 | /> |
169 | <span class="text-xs text-red-600 dark:text-red-400"> | 219 | <span class="text-xs text-red-600 dark:text-red-400"> |
170 | Your password is too short. | 220 | Your password is too short. |
171 | </span> | 221 | </span> |
172 | </label> | 222 | </label> |
173 | 223 | ||
174 | <!-- Valid input --> | 224 | <!-- Valid input --> |
175 | <!--<label class="block mt-4 text-sm"> | 225 | <!--<label class="block mt-4 text-sm"> |
176 | <span class="text-gray-700 dark:text-gray-400"> | 226 | <span class="text-gray-700 dark:text-gray-400"> |
177 | Valid input | 227 | Valid input |
178 | </span> | 228 | </span> |
179 | <input | 229 | <input |
180 | class="block w-full mt-1 text-sm border-green-600 dark:text-gray-300 dark:bg-gray-700 focus:border-green-400 focus:outline-none focus:shadow-outline-green form-input" | 230 | class="block w-full mt-1 text-sm border-green-600 dark:text-gray-300 dark:bg-gray-700 focus:border-green-400 focus:outline-none focus:shadow-outline-green form-input" |
181 | placeholder="Jane Doe" | 231 | placeholder="Jane Doe" |
182 | /> | 232 | /> |
183 | <span class="text-xs text-green-600 dark:text-green-400"> | 233 | <span class="text-xs text-green-600 dark:text-green-400"> |
184 | Your password is strong. | 234 | Your password is strong. |
185 | </span> | 235 | </span> |
186 | </label> | 236 | </label> |
187 | 237 | ||
188 | <!-- Helper text --> | 238 | <!-- Helper text --> |
189 | <!--<label class="block mt-4 text-sm"> | 239 | <!--<label class="block mt-4 text-sm"> |
190 | <span class="text-gray-700 dark:text-gray-400"> | 240 | <span class="text-gray-700 dark:text-gray-400"> |
191 | Helper text | 241 | Helper text |
192 | </span> | 242 | </span> |
193 | <input | 243 | <input |
194 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | 244 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" |
195 | placeholder="Jane Doe" | 245 | placeholder="Jane Doe" |
196 | /> | 246 | /> |
197 | <span class="text-xs text-gray-600 dark:text-gray-400"> | 247 | <span class="text-xs text-gray-600 dark:text-gray-400"> |
198 | Your password must be at least 6 characters long. | 248 | Your password must be at least 6 characters long. |
199 | </span> | 249 | </span> |
200 | </label> | 250 | </label> |
201 | </div> | 251 | </div> |
202 | 252 | ||
203 | <!-- Inputs with icons --> | 253 | <!-- Inputs with icons --> |
204 | <!--<h4 | 254 | <!--<h4 |
205 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" | 255 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" |
206 | > | 256 | > |
207 | Icons | 257 | Icons |
208 | </h4> | 258 | </h4> |
209 | <div | 259 | <div |
210 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" | 260 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" |
211 | > | 261 | > |
212 | <label class="block text-sm"> | 262 | <label class="block text-sm"> |
213 | <span class="text-gray-700 dark:text-gray-400">Icon left</span> | 263 | <span class="text-gray-700 dark:text-gray-400">Icon left</span> |
214 | <!-- focus-within sets the color for the icon when input is focused --> | 264 | <!-- focus-within sets the color for the icon when input is focused --> |
215 | <!--<div | 265 | <!--<div |
216 | class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" | 266 | class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" |
217 | > | 267 | > |
218 | <input | 268 | <input |
219 | class="block w-full pl-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | 269 | class="block w-full pl-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" |
220 | placeholder="Jane Doe" | 270 | placeholder="Jane Doe" |
221 | /> | 271 | /> |
222 | <div | 272 | <div |
223 | class="absolute inset-y-0 flex items-center ml-3 pointer-events-none" | 273 | class="absolute inset-y-0 flex items-center ml-3 pointer-events-none" |
224 | > | 274 | > |
225 | <svg | 275 | <svg |
226 | class="w-5 h-5" | 276 | class="w-5 h-5" |
227 | aria-hidden="true" | 277 | aria-hidden="true" |
228 | fill="none" | 278 | fill="none" |
229 | stroke-linecap="round" | 279 | stroke-linecap="round" |
230 | stroke-linejoin="round" | 280 | stroke-linejoin="round" |
231 | stroke-width="2" | 281 | stroke-width="2" |
232 | viewBox="0 0 24 24" | 282 | viewBox="0 0 24 24" |
233 | stroke="currentColor" | 283 | stroke="currentColor" |
234 | > | 284 | > |
235 | <path | 285 | <path |
236 | d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" | 286 | d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" |
237 | ></path> | 287 | ></path> |
238 | </svg> | 288 | </svg> |
239 | </div> | 289 | </div> |
240 | </div> | 290 | </div> |
241 | </label> | 291 | </label> |
242 | 292 | ||
243 | <label class="block mt-4 text-sm"> | 293 | <label class="block mt-4 text-sm"> |
244 | <span class="text-gray-700 dark:text-gray-400">Icon right</span> | 294 | <span class="text-gray-700 dark:text-gray-400">Icon right</span> |
245 | <!-- focus-within sets the color for the icon when input is focused --> | 295 | <!-- focus-within sets the color for the icon when input is focused --> |
246 | <!--<div | 296 | <!--<div |
247 | class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" | 297 | class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" |
248 | > | 298 | > |
249 | <input | 299 | <input |
250 | class="block w-full pr-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | 300 | class="block w-full pr-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" |
251 | placeholder="Jane Doe" | 301 | placeholder="Jane Doe" |
252 | /> | 302 | /> |
253 | <div | 303 | <div |
254 | class="absolute inset-y-0 right-0 flex items-center mr-3 pointer-events-none" | 304 | class="absolute inset-y-0 right-0 flex items-center mr-3 pointer-events-none" |
255 | > | 305 | > |
256 | <svg | 306 | <svg |
257 | class="w-5 h-5" | 307 | class="w-5 h-5" |
258 | aria-hidden="true" | 308 | aria-hidden="true" |
259 | fill="none" | 309 | fill="none" |
260 | stroke-linecap="round" | 310 | stroke-linecap="round" |
261 | stroke-linejoin="round" | 311 | stroke-linejoin="round" |
262 | stroke-width="2" | 312 | stroke-width="2" |
263 | viewBox="0 0 24 24" | 313 | viewBox="0 0 24 24" |
264 | stroke="currentColor" | 314 | stroke="currentColor" |
265 | > | 315 | > |
266 | <path | 316 | <path |
267 | d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" | 317 | d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" |
268 | ></path> | 318 | ></path> |
269 | </svg> | 319 | </svg> |
270 | </div> | 320 | </div> |
271 | </div> | 321 | </div> |
272 | </label> | 322 | </label> |
273 | </div> | 323 | </div> |
274 | 324 | ||
275 | <!-- Inputs with buttons --> | 325 | <!-- Inputs with buttons --> |
276 | <!--<h4 | 326 | <!--<h4 |
277 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" | 327 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" |
278 | > | 328 | > |
279 | Buttons | 329 | Buttons |
280 | </h4> | 330 | </h4> |
281 | <div | 331 | <div |
282 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" | 332 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" |
283 | > | 333 | > |
284 | <label class="block text-sm"> | 334 | <label class="block text-sm"> |
285 | <span class="text-gray-700 dark:text-gray-400"> | 335 | <span class="text-gray-700 dark:text-gray-400"> |
286 | Button left | 336 | Button left |
287 | </span> | 337 | </span> |
288 | <div class="relative"> | 338 | <div class="relative"> |
289 | <input | 339 | <input |
290 | class="block w-full pl-20 mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | 340 | class="block w-full pl-20 mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" |
291 | placeholder="Jane Doe" | 341 | placeholder="Jane Doe" |
292 | /> | 342 | /> |
293 | <button | 343 | <button |
294 | class="absolute inset-y-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-l-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | 344 | class="absolute inset-y-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-l-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" |
295 | > | 345 | > |
296 | Click | 346 | Click |
297 | </button> | 347 | </button> |
298 | </div> | 348 | </div> |
299 | </label> | 349 | </label> |
300 | 350 | ||
301 | <label class="block mt-4 text-sm"> | 351 | <label class="block mt-4 text-sm"> |
302 | <span class="text-gray-700 dark:text-gray-400"> | 352 | <span class="text-gray-700 dark:text-gray-400"> |
303 | Button right | 353 | Button right |
304 | </span> | 354 | </span> |
305 | <div | 355 | <div |
306 | class="relative text-gray-500 focus-within:text-purple-600" | 356 | class="relative text-gray-500 focus-within:text-purple-600" |
307 | > | 357 | > |
308 | <input | 358 | <input |
309 | class="block w-full pr-20 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | 359 | class="block w-full pr-20 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" |
310 | placeholder="Jane Doe" | 360 | placeholder="Jane Doe" |
311 | /> | 361 | /> |
312 | <button | 362 | <button |
313 | class="absolute inset-y-0 right-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-r-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" | 363 | class="absolute inset-y-0 right-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-r-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" |
314 | > | 364 | > |
315 | Click | 365 | Click |
316 | </button> | 366 | </button> |
317 | </div> | 367 | </div> |
318 | </label> | 368 | </label> |
319 | </div>--> | 369 | </div>--> |
320 | @endsection | 370 | @endsection |
321 | 371 |
resources/views/admin/worker/edit.blade.php
1 | @extends('layout.admin', ['title' => 'Админка - Редактирование соискателя']) | ||
2 | |||
3 | @section('content') | ||
4 | <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"> | ||
5 | Соискатель-пользователь: "{{$worker->users->name_man}} ({{$worker->user_id}})" | ||
6 | </h4> | ||
7 | <form method="POST" action=""> | ||
8 | @csrf | ||
9 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | ||
10 | <label class="block text-sm"> | ||
11 | <span class="text-gray-700 dark:text-gray-400">Имя компании</span> | ||
12 | <input name="name_company" id="name_company" | ||
13 | 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" | ||
14 | placeholder="Имя компании" value="{{ old('name_company') ?? $employer->name_company ?? '' }}" | ||
15 | /> | ||
16 | @error('name_company') | ||
17 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
18 | {{ $message }} | ||
19 | </span> | ||
20 | @enderror | ||
21 | </label><br> | ||
22 | |||
23 | <label class="block text-sm"> | ||
24 | <span class="text-gray-700 dark:text-gray-400">Email</span> | ||
25 | <input name="email" id="email" | ||
26 | 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 | placeholder="Почта" value="{{ old('email') ?? $worker->email ?? '' }}" | ||
28 | /> | ||
29 | @error('email') | ||
30 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
31 | {{ $message }} | ||
32 | </span> | ||
33 | @enderror | ||
34 | </label><br> | ||
35 | |||
36 | <label class="block text-sm"> | ||
37 | <span class="text-gray-700 dark:text-gray-400">Телефон</span> | ||
38 | <input name="telephone" id="telephone" | ||
39 | 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" | ||
40 | placeholder="Телефон" value="{{ old('telephone') ?? $worker->telephone ?? '' }}" | ||
41 | /> | ||
42 | @error('telephone') | ||
43 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
44 | {{ $message }} | ||
45 | </span> | ||
46 | @enderror | ||
47 | </label><br> | ||
48 | |||
49 | <label class="block text-sm"> | ||
50 | <span class="text-gray-700 dark:text-gray-400">Адрес</span> | ||
51 | <input name="address" id="address" | ||
52 | 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" | ||
53 | placeholder="Адрес" value="{{ old('address') ?? $worker->address ?? '' }}" | ||
54 | /> | ||
55 | @error('address') | ||
56 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
57 | {{ $message }} | ||
58 | </span> | ||
59 | @enderror | ||
60 | </label><br> | ||
61 | |||
62 | <label class="block text-sm"> | ||
63 | <span class="text-gray-700 dark:text-gray-400">Город</span> | ||
64 | <input name="city" id="city" | ||
65 | 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" | ||
66 | placeholder="Город" value="{{ old('city') ?? $worker->site ?? '' }}" | ||
67 | /> | ||
68 | @error('city') | ||
69 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
70 | {{ $message }} | ||
71 | </span> | ||
72 | @enderror | ||
73 | </label><br> | ||
74 | |||
75 | <label class="block text-sm"> | ||
76 | <span class="text-gray-700 dark:text-gray-400">Фото</span> | ||
77 | |||
78 | <input name="photo" id="photo" type="file" | ||
79 | 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" | ||
80 | placeholder="Фото" value="" | ||
81 | /> | ||
82 | @isset('photo') | ||
83 | <img src="<?=asset(Storage::url($worker->photo))?>" width="150"/> | ||
84 | @endisset | ||
85 | @error('logo') | ||
86 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
87 | {{ $message }} | ||
88 | </span> | ||
89 | @enderror | ||
90 | </label><br> | ||
91 | |||
92 | <label class="block text-sm"> | ||
93 | <span class="text-gray-700 dark:text-gray-400">Согласие на обработку данных</span> | ||
94 | <input name="email_data" id="email_data" <? if ($worker->email_data) echo "checked"; ?> | ||
95 | 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" | ||
96 | placeholder="" | ||
97 | /> | ||
98 | @error('email_data') | ||
99 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
100 | {{ $message }} | ||
101 | </span> | ||
102 | @enderror | ||
103 | </label><br> | ||
104 | |||
105 | <label class="block mt-4 text-sm"> | ||
106 | <span class="text-gray-700 dark:text-gray-400">Описание</span> | ||
107 | <textarea name="text" id="text" | ||
108 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | ||
109 | rows="3" | ||
110 | placeholder="Описание компании" | ||
111 | >{{ old('text') ?? $worker->text ?? '' }}</textarea> | ||
112 | </label> | ||
113 | |||
114 | |||
115 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | ||
116 | <div> | ||
117 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> | ||
118 | Сохранить | ||
119 | </button> | ||
120 | </div> | ||
121 | </div> | ||
122 | </div> | ||
123 | </form> | ||
124 | <!-- | ||
125 | <label class="block mt-4 text-sm"> | ||
126 | <span class="text-gray-700 dark:text-gray-400"> | ||
127 | Requested Limit | ||
128 | </span> | ||
129 | <select | ||
130 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | ||
131 | > | ||
132 | <option>$1,000</option> | ||
133 | <option>$5,000</option> | ||
134 | <option>$10,000</option> | ||
135 | <option>$25,000</option> | ||
136 | </select> | ||
137 | </label> | ||
138 | |||
139 | <label class="block mt-4 text-sm"> | ||
140 | <span class="text-gray-700 dark:text-gray-400"> | ||
141 | Multiselect | ||
142 | </span> | ||
143 | <select | ||
144 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-multiselect focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | ||
145 | multiple | ||
146 | > | ||
147 | <option>Option 1</option> | ||
148 | <option>Option 2</option> | ||
149 | <option>Option 3</option> | ||
150 | <option>Option 4</option> | ||
151 | <option>Option 5</option> | ||
152 | </select> | ||
153 | </label> | ||
154 | |||
155 | <label class="block mt-4 text-sm"> | ||
156 | <span class="text-gray-700 dark:text-gray-400">Message</span> | ||
157 | <textarea | ||
158 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | ||
159 | rows="3" | ||
160 | placeholder="Enter some long form content." | ||
161 | ></textarea> | ||
162 | </label> | ||
163 | |||
164 | <div class="flex mt-6 text-sm"> | ||
165 | <label class="flex items-center dark:text-gray-400"> | ||
166 | <input | ||
167 | type="checkbox" | ||
168 | class="text-purple-600 form-checkbox focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | ||
169 | /> | ||
170 | <span class="ml-2"> | ||
171 | I agree to the | ||
172 | <span class="underline">privacy policy</span> | ||
173 | </span> | ||
174 | </label> | ||
175 | </div> | ||
176 | </div> | ||
177 | |||
178 | <!-- Validation inputs --> | ||
179 | <!--<h4 | ||
180 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" | ||
181 | > | ||
182 | Validation | ||
183 | </h4> | ||
184 | <div | ||
185 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" | ||
186 | > | ||
187 | <!-- Invalid input --> | ||
188 | <!--<label class="block text-sm"> | ||
189 | <span class="text-gray-700 dark:text-gray-400"> | ||
190 | Invalid input | ||
191 | </span> | ||
192 | <input | ||
193 | class="block w-full mt-1 text-sm border-red-600 dark:text-gray-300 dark:bg-gray-700 focus:border-red-400 focus:outline-none focus:shadow-outline-red form-input" | ||
194 | placeholder="Jane Doe" | ||
195 | /> | ||
196 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
197 | Your password is too short. | ||
198 | </span> | ||
199 | </label> | ||
200 | |||
201 | <!-- Valid input --> | ||
202 | <!--<label class="block mt-4 text-sm"> | ||
203 | <span class="text-gray-700 dark:text-gray-400"> | ||
204 | Valid input | ||
205 | </span> | ||
206 | <input | ||
207 | class="block w-full mt-1 text-sm border-green-600 dark:text-gray-300 dark:bg-gray-700 focus:border-green-400 focus:outline-none focus:shadow-outline-green form-input" | ||
208 | placeholder="Jane Doe" | ||
209 | /> | ||
210 | <span class="text-xs text-green-600 dark:text-green-400"> | ||
211 | Your password is strong. | ||
212 | </span> | ||
213 | </label> | ||
214 | |||
215 | <!-- Helper text --> | ||
216 | <!--<label class="block mt-4 text-sm"> | ||
217 | <span class="text-gray-700 dark:text-gray-400"> | ||
218 | Helper text | ||
219 | </span> | ||
220 | <input | ||
221 | class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | ||
222 | placeholder="Jane Doe" | ||
223 | /> | ||
224 | <span class="text-xs text-gray-600 dark:text-gray-400"> | ||
225 | Your password must be at least 6 characters long. | ||
226 | </span> | ||
227 | </label> | ||
228 | </div> | ||
229 | |||
230 | <!-- Inputs with icons --> | ||
231 | <!--<h4 | ||
232 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" | ||
233 | > | ||
234 | Icons | ||
235 | </h4> | ||
236 | <div | ||
237 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" | ||
238 | > | ||
239 | <label class="block text-sm"> | ||
240 | <span class="text-gray-700 dark:text-gray-400">Icon left</span> | ||
241 | <!-- focus-within sets the color for the icon when input is focused --> | ||
242 | <!--<div | ||
243 | class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" | ||
244 | > | ||
245 | <input | ||
246 | class="block w-full pl-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | ||
247 | placeholder="Jane Doe" | ||
248 | /> | ||
249 | <div | ||
250 | class="absolute inset-y-0 flex items-center ml-3 pointer-events-none" | ||
251 | > | ||
252 | <svg | ||
253 | class="w-5 h-5" | ||
254 | aria-hidden="true" | ||
255 | fill="none" | ||
256 | stroke-linecap="round" | ||
257 | stroke-linejoin="round" | ||
258 | stroke-width="2" | ||
259 | viewBox="0 0 24 24" | ||
260 | stroke="currentColor" | ||
261 | > | ||
262 | <path | ||
263 | d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" | ||
264 | ></path> | ||
265 | </svg> | ||
266 | </div> | ||
267 | </div> | ||
268 | </label> | ||
269 | |||
270 | <label class="block mt-4 text-sm"> | ||
271 | <span class="text-gray-700 dark:text-gray-400">Icon right</span> | ||
272 | <!-- focus-within sets the color for the icon when input is focused --> | ||
273 | <!--<div | ||
274 | class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" | ||
275 | > | ||
276 | <input | ||
277 | class="block w-full pr-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | ||
278 | placeholder="Jane Doe" | ||
279 | /> | ||
280 | <div | ||
281 | class="absolute inset-y-0 right-0 flex items-center mr-3 pointer-events-none" | ||
282 | > | ||
283 | <svg | ||
284 | class="w-5 h-5" | ||
285 | aria-hidden="true" | ||
286 | fill="none" | ||
287 | stroke-linecap="round" | ||
288 | stroke-linejoin="round" | ||
289 | stroke-width="2" | ||
290 | viewBox="0 0 24 24" | ||
291 | stroke="currentColor" | ||
292 | > | ||
293 | <path | ||
294 | d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" | ||
295 | ></path> | ||
296 | </svg> | ||
297 | </div> | ||
298 | </div> | ||
299 | </label> | ||
300 | </div> | ||
301 | |||
302 | <!-- Inputs with buttons --> | ||
303 | <!--<h4 | ||
304 | class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" | ||
305 | > | ||
306 | Buttons | ||
307 | </h4> | ||
308 | <div | ||
309 | class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" | ||
310 | > | ||
311 | <label class="block text-sm"> | ||
312 | <span class="text-gray-700 dark:text-gray-400"> | ||
313 | Button left | ||
314 | </span> | ||
315 | <div class="relative"> | ||
316 | <input | ||
317 | class="block w-full pl-20 mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | ||
318 | placeholder="Jane Doe" | ||
319 | /> | ||
320 | <button | ||
321 | class="absolute inset-y-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-l-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" | ||
322 | > | ||
323 | Click | ||
324 | </button> | ||
325 | </div> | ||
326 | </label> | ||
327 | |||
328 | <label class="block mt-4 text-sm"> | ||
329 | <span class="text-gray-700 dark:text-gray-400"> | ||
330 | Button right | ||
331 | </span> | ||
332 | <div | ||
333 | class="relative text-gray-500 focus-within:text-purple-600" | ||
334 | > | ||
335 | <input | ||
336 | class="block w-full pr-20 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" | ||
337 | placeholder="Jane Doe" | ||
338 | /> | ||
339 | <button | ||
340 | class="absolute inset-y-0 right-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-r-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" | ||
341 | > | ||
342 | Click | ||
343 | </button> | ||
344 | </div> | ||
345 | </label> | ||
346 | </div>--> | ||
347 | @endsection | ||
348 |
resources/views/layout/admin.blade.php
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html :class="{ 'theme-dark': dark }" x-data="data()" lang="{{ str_replace('_', '-', app()->getLocale()) }}"> | 2 | <html :class="{ 'theme-dark': dark }" x-data="data()" lang="{{ str_replace('_', '-', app()->getLocale()) }}"> |
3 | <head> | 3 | <head> |
4 | <meta charset="UTF-8" /> | 4 | <meta charset="UTF-8" /> |
5 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | 5 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
6 | <title>{{$title}}</title> | 6 | <title>{{$title}}</title> |
7 | <link | 7 | <link |
8 | href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" | 8 | href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" |
9 | rel="stylesheet" | 9 | rel="stylesheet" |
10 | /> | 10 | /> |
11 | <link rel="stylesheet" href="{{ asset('./assets/css/tailwind.output.css')}}" /> | 11 | <link rel="stylesheet" href="{{ asset('./assets/css/tailwind.output.css')}}" /> |
12 | <script | 12 | <script |
13 | src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js" | 13 | src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js" |
14 | defer | 14 | defer |
15 | ></script> | 15 | ></script> |
16 | <script src="{{ asset('./assets/js/init-alpine.js') }}"></script> | 16 | <script src="{{ asset('./assets/js/init-alpine.js') }}"></script> |
17 | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"/> | 17 | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"/> |
18 | <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js" defer></script> | 18 | <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js" defer></script> |
19 | <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> | 19 | <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> |
20 | <script src="{{ asset('./assets/js/charts-lines.js') }}" defer></script> | 20 | <script src="{{ asset('./assets/js/charts-lines.js') }}" defer></script> |
21 | <script src="{{ asset('./assets/js/charts-pie.js') }}" defer></script> | 21 | <script src="{{ asset('./assets/js/charts-pie.js') }}" defer></script> |
22 | </head> | 22 | </head> |
23 | <body> | 23 | <body> |
24 | <div class="flex h-screen bg-gray-50 dark:bg-gray-900" :class="{ 'overflow-hidden': isSideMenuOpen }"> | 24 | <div class="flex h-screen bg-gray-50 dark:bg-gray-900" :class="{ 'overflow-hidden': isSideMenuOpen }"> |
25 | <!-- Desktop sidebar --> | 25 | <!-- Desktop sidebar --> |
26 | <aside | 26 | <aside |
27 | class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0" | 27 | class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0" |
28 | > | 28 | > |
29 | <div class="py-4 text-gray-500 dark:text-gray-400"> | 29 | <div class="py-4 text-gray-500 dark:text-gray-400"> |
30 | <a | 30 | <a |
31 | 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" |
32 | href="{{ route('admin.index') }}" | 32 | href="{{ route('admin.index') }}" |
33 | > | 33 | > |
34 | Админка | 34 | Админка |
35 | </a> | 35 | </a> |
36 | <ul class="mt-6"> | 36 | <ul class="mt-6"> |
37 | <li class="relative px-6 py-3"> | 37 | <li class="relative px-6 py-3"> |
38 | <span | 38 | <span |
39 | 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" |
40 | aria-hidden="true" | 40 | aria-hidden="true" |
41 | ></span> | 41 | ></span> |
42 | <a | 42 | <a |
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" | 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" |
44 | href="{{ route('admin.index') }}" | 44 | href="{{ route('admin.index') }}" |
45 | > | 45 | > |
46 | <svg | 46 | <svg |
47 | class="w-5 h-5" | 47 | class="w-5 h-5" |
48 | aria-hidden="true" | 48 | aria-hidden="true" |
49 | fill="none" | 49 | fill="none" |
50 | stroke-linecap="round" | 50 | stroke-linecap="round" |
51 | stroke-linejoin="round" | 51 | stroke-linejoin="round" |
52 | stroke-width="2" | 52 | stroke-width="2" |
53 | viewBox="0 0 24 24" | 53 | viewBox="0 0 24 24" |
54 | stroke="currentColor" | 54 | stroke="currentColor" |
55 | > | 55 | > |
56 | <path | 56 | <path |
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" | 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" |
58 | ></path> | 58 | ></path> |
59 | </svg> | 59 | </svg> |
60 | <span class="ml-4">Главная страница</span> | 60 | <span class="ml-4">Главная страница</span> |
61 | </a> | 61 | </a> |
62 | </li> | 62 | </li> |
63 | </ul> | 63 | </ul> |
64 | <ul> | 64 | <ul> |
65 | <li class="relative px-6 py-3"> | 65 | <li class="relative px-6 py-3"> |
66 | <a | 66 | <a |
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" | 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" |
68 | href="{{ route('admin.users') }}" | 68 | href="{{ route('admin.users') }}" |
69 | > | 69 | > |
70 | <svg | 70 | <svg |
71 | class="w-5 h-5" | 71 | class="w-5 h-5" |
72 | aria-hidden="true" | 72 | aria-hidden="true" |
73 | fill="none" | 73 | fill="none" |
74 | stroke-linecap="round" | 74 | stroke-linecap="round" |
75 | stroke-linejoin="round" | 75 | stroke-linejoin="round" |
76 | stroke-width="2" | 76 | stroke-width="2" |
77 | viewBox="0 0 24 24" | 77 | viewBox="0 0 24 24" |
78 | stroke="currentColor" | 78 | stroke="currentColor" |
79 | > | 79 | > |
80 | <path | 80 | <path |
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" | 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" |
82 | ></path> | 82 | ></path> |
83 | </svg> | 83 | </svg> |
84 | <span class="ml-4">Пользователи</span> | 84 | <span class="ml-4">Пользователи</span> |
85 | </a> | 85 | </a> |
86 | </li> | 86 | </li> |
87 | <li class="relative px-6 py-3"> | 87 | <li class="relative px-6 py-3"> |
88 | <a | 88 | <a |
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" | 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" |
90 | href="{{ route('admin.employers') }}" | 90 | href="{{ route('admin.employers') }}" |
91 | > | 91 | > |
92 | <svg | 92 | <svg |
93 | class="w-5 h-5" | 93 | class="w-5 h-5" |
94 | aria-hidden="true" | 94 | aria-hidden="true" |
95 | fill="none" | 95 | fill="none" |
96 | stroke-linecap="round" | 96 | stroke-linecap="round" |
97 | stroke-linejoin="round" | 97 | stroke-linejoin="round" |
98 | stroke-width="2" | 98 | stroke-width="2" |
99 | viewBox="0 0 24 24" | 99 | viewBox="0 0 24 24" |
100 | stroke="currentColor" | 100 | stroke="currentColor" |
101 | > | 101 | > |
102 | <path | 102 | <path |
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" | 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" |
104 | ></path> | 104 | ></path> |
105 | </svg> | 105 | </svg> |
106 | <span class="ml-4">Работодатели</span> | 106 | <span class="ml-4">Работодатели</span> |
107 | </a> | 107 | </a> |
108 | </li> | 108 | </li> |
109 | <li class="relative px-6 py-3"> | 109 | <li class="relative px-6 py-3"> |
110 | <a | 110 | <a |
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" | 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" |
112 | href="{{ route('admin.workers') }}" | 112 | href="{{ route('admin.workers') }}" |
113 | > | 113 | > |
114 | <svg | 114 | <svg |
115 | class="w-5 h-5" | 115 | class="w-5 h-5" |
116 | aria-hidden="true" | 116 | aria-hidden="true" |
117 | fill="none" | 117 | fill="none" |
118 | stroke-linecap="round" | 118 | stroke-linecap="round" |
119 | stroke-linejoin="round" | 119 | stroke-linejoin="round" |
120 | stroke-width="2" | 120 | stroke-width="2" |
121 | viewBox="0 0 24 24" | 121 | viewBox="0 0 24 24" |
122 | stroke="currentColor" | 122 | stroke="currentColor" |
123 | > | 123 | > |
124 | <path | 124 | <path |
125 | 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" |
126 | ></path> | 126 | ></path> |
127 | <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> |
128 | </svg> | 128 | </svg> |
129 | <span class="ml-4">Соискатели</span> | 129 | <span class="ml-4">Соискатели</span> |
130 | </a> | 130 | </a> |
131 | </li> | 131 | </li> |
132 | <li class="relative px-6 py-3"> | 132 | <li class="relative px-6 py-3"> |
133 | <a | 133 | <a |
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" | 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" |
135 | href="{{ route('admin.ad-employers') }}" | 135 | href="{{ route('admin.ad-employers') }}" |
136 | > | 136 | > |
137 | <svg | 137 | <svg |
138 | class="w-5 h-5" | 138 | class="w-5 h-5" |
139 | aria-hidden="true" | 139 | aria-hidden="true" |
140 | fill="none" | 140 | fill="none" |
141 | stroke-linecap="round" | 141 | stroke-linecap="round" |
142 | stroke-linejoin="round" | 142 | stroke-linejoin="round" |
143 | stroke-width="2" | 143 | stroke-width="2" |
144 | viewBox="0 0 24 24" | 144 | viewBox="0 0 24 24" |
145 | stroke="currentColor" | 145 | stroke="currentColor" |
146 | > | 146 | > |
147 | <path | 147 | <path |
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" | 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" |
149 | ></path> | 149 | ></path> |
150 | </svg> | 150 | </svg> |
151 | <span class="ml-4">Вакансии</span> | 151 | <span class="ml-4">Вакансии</span> |
152 | </a> | 152 | </a> |
153 | </li> | 153 | </li> |
154 | <li class="relative px-6 py-3"> | 154 | <li class="relative px-6 py-3"> |
155 | <a | 155 | <a |
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" | 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" |
157 | href="{{ route('admin.categories') }}" | 157 | href="{{ route('admin.categories.index') }}" |
158 | > | 158 | > |
159 | <svg | 159 | <svg |
160 | class="w-5 h-5" | 160 | class="w-5 h-5" |
161 | aria-hidden="true" | 161 | aria-hidden="true" |
162 | fill="none" | 162 | fill="none" |
163 | stroke-linecap="round" | 163 | stroke-linecap="round" |
164 | stroke-linejoin="round" | 164 | stroke-linejoin="round" |
165 | stroke-width="2" | 165 | stroke-width="2" |
166 | viewBox="0 0 24 24" | 166 | viewBox="0 0 24 24" |
167 | stroke="currentColor" | 167 | stroke="currentColor" |
168 | > | 168 | > |
169 | <path | 169 | <path |
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" | 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" |
171 | ></path> | 171 | ></path> |
172 | </svg> | 172 | </svg> |
173 | <span class="ml-4">Категории</span> | 173 | <span class="ml-4">Категории</span> |
174 | </a> | 174 | </a> |
175 | </li> | 175 | </li> |
176 | <li class="relative px-6 py-3"> | 176 | <li class="relative px-6 py-3"> |
177 | <a | 177 | <a |
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" | 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" |
179 | href="{{ route('admin.job-titles') }}" | 179 | href="{{ route('admin.job-titles') }}" |
180 | > | 180 | > |
181 | <svg | 181 | <svg |
182 | class="w-5 h-5" | 182 | class="w-5 h-5" |
183 | aria-hidden="true" | 183 | aria-hidden="true" |
184 | fill="none" | 184 | fill="none" |
185 | stroke-linecap="round" | 185 | stroke-linecap="round" |
186 | stroke-linejoin="round" | 186 | stroke-linejoin="round" |
187 | stroke-width="2" | 187 | stroke-width="2" |
188 | viewBox="0 0 24 24" | 188 | viewBox="0 0 24 24" |
189 | stroke="currentColor" | 189 | stroke="currentColor" |
190 | > | 190 | > |
191 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 191 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
192 | </svg> | 192 | </svg> |
193 | <span class="ml-4">Должности</span> | 193 | <span class="ml-4">Должности</span> |
194 | </a> | 194 | </a> |
195 | </li> | 195 | </li> |
196 | <li class="relative px-6 py-3"> | 196 | <li class="relative px-6 py-3"> |
197 | <a | 197 | <a |
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" | 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" |
199 | href="{{ route('admin.messages') }}" | 199 | href="{{ route('admin.messages') }}" |
200 | > | 200 | > |
201 | <svg | 201 | <svg |
202 | class="w-5 h-5" | 202 | class="w-5 h-5" |
203 | aria-hidden="true" | 203 | aria-hidden="true" |
204 | fill="none" | 204 | fill="none" |
205 | stroke-linecap="round" | 205 | stroke-linecap="round" |
206 | stroke-linejoin="round" | 206 | stroke-linejoin="round" |
207 | stroke-width="2" | 207 | stroke-width="2" |
208 | viewBox="0 0 24 24" | 208 | viewBox="0 0 24 24" |
209 | stroke="currentColor" | 209 | stroke="currentColor" |
210 | > | 210 | > |
211 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 211 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
212 | </svg> | 212 | </svg> |
213 | <span class="ml-4">Сообщения</span> | 213 | <span class="ml-4">Сообщения</span> |
214 | </a> | 214 | </a> |
215 | </li> | 215 | </li> |
216 | <li class="relative px-6 py-3"> | 216 | <li class="relative px-6 py-3"> |
217 | <a | 217 | <a |
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" | 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" |
219 | href="{{ route('admin.groups') }}" | 219 | href="{{ route('admin.groups') }}" |
220 | > | 220 | > |
221 | <svg | 221 | <svg |
222 | class="w-5 h-5" | 222 | class="w-5 h-5" |
223 | aria-hidden="true" | 223 | aria-hidden="true" |
224 | fill="none" | 224 | fill="none" |
225 | stroke-linecap="round" | 225 | stroke-linecap="round" |
226 | stroke-linejoin="round" | 226 | stroke-linejoin="round" |
227 | stroke-width="2" | 227 | stroke-width="2" |
228 | viewBox="0 0 24 24" | 228 | viewBox="0 0 24 24" |
229 | stroke="currentColor" | 229 | stroke="currentColor" |
230 | > | 230 | > |
231 | <path | 231 | <path |
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" | 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" |
233 | ></path> | 233 | ></path> |
234 | </svg> | 234 | </svg> |
235 | <span class="ml-4">Группы пользователей</span> | 235 | <span class="ml-4">Группы пользователей</span> |
236 | </a> | 236 | </a> |
237 | </li> | 237 | </li> |
238 | <li class="relative px-6 py-3"> | 238 | <li class="relative px-6 py-3"> |
239 | <button | 239 | <button |
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" | 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" |
241 | @click="togglePagesMenu" | 241 | @click="togglePagesMenu" |
242 | aria-haspopup="true" | 242 | aria-haspopup="true" |
243 | > | 243 | > |
244 | <span class="inline-flex items-center"> | 244 | <span class="inline-flex items-center"> |
245 | <svg | 245 | <svg |
246 | class="w-5 h-5" | 246 | class="w-5 h-5" |
247 | aria-hidden="true" | 247 | aria-hidden="true" |
248 | fill="none" | 248 | fill="none" |
249 | stroke-linecap="round" | 249 | stroke-linecap="round" |
250 | stroke-linejoin="round" | 250 | stroke-linejoin="round" |
251 | stroke-width="2" | 251 | stroke-width="2" |
252 | viewBox="0 0 24 24" | 252 | viewBox="0 0 24 24" |
253 | stroke="currentColor" | 253 | stroke="currentColor" |
254 | > | 254 | > |
255 | <path | 255 | <path |
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" | 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" |
257 | ></path> | 257 | ></path> |
258 | </svg> | 258 | </svg> |
259 | <span class="ml-4">Страницы</span> | 259 | <span class="ml-4">Страницы</span> |
260 | </span> | 260 | </span> |
261 | <svg | 261 | <svg |
262 | class="w-4 h-4" | 262 | class="w-4 h-4" |
263 | aria-hidden="true" | 263 | aria-hidden="true" |
264 | fill="currentColor" | 264 | fill="currentColor" |
265 | viewBox="0 0 20 20" | 265 | viewBox="0 0 20 20" |
266 | > | 266 | > |
267 | <path | 267 | <path |
268 | fill-rule="evenodd" | 268 | fill-rule="evenodd" |
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" | 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" |
270 | clip-rule="evenodd" | 270 | clip-rule="evenodd" |
271 | ></path> | 271 | ></path> |
272 | </svg> | 272 | </svg> |
273 | </button> | 273 | </button> |
274 | <template x-if="isPagesMenuOpen"> | 274 | <template x-if="isPagesMenuOpen"> |
275 | <ul | 275 | <ul |
276 | x-transition:enter="transition-all ease-in-out duration-300" | 276 | x-transition:enter="transition-all ease-in-out duration-300" |
277 | x-transition:enter-start="opacity-25 max-h-0" | 277 | x-transition:enter-start="opacity-25 max-h-0" |
278 | x-transition:enter-end="opacity-100 max-h-xl" | 278 | x-transition:enter-end="opacity-100 max-h-xl" |
279 | x-transition:leave="transition-all ease-in-out duration-300" | 279 | x-transition:leave="transition-all ease-in-out duration-300" |
280 | x-transition:leave-start="opacity-100 max-h-xl" | 280 | x-transition:leave-start="opacity-100 max-h-xl" |
281 | x-transition:leave-end="opacity-0 max-h-0" | 281 | x-transition:leave-end="opacity-0 max-h-0" |
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" | 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" |
283 | aria-label="submenu" | 283 | aria-label="submenu" |
284 | > | 284 | > |
285 | <li | 285 | <li |
286 | 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" |
287 | > | 287 | > |
288 | <a class="w-full" href="pages/login.html">Login</a> | 288 | <a class="w-full" href="pages/login.html">Login</a> |
289 | </li> | 289 | </li> |
290 | <li | 290 | <li |
291 | 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" |
292 | > | 292 | > |
293 | <a class="w-full" href="pages/create-account.html"> | 293 | <a class="w-full" href="pages/create-account.html"> |
294 | Create account | 294 | Create account |
295 | </a> | 295 | </a> |
296 | </li> | 296 | </li> |
297 | <li | 297 | <li |
298 | 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" |
299 | > | 299 | > |
300 | <a class="w-full" href="pages/forgot-password.html"> | 300 | <a class="w-full" href="pages/forgot-password.html"> |
301 | Forgot password | 301 | Forgot password |
302 | </a> | 302 | </a> |
303 | </li> | 303 | </li> |
304 | <li | 304 | <li |
305 | 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" |
306 | > | 306 | > |
307 | <a class="w-full" href="pages/404.html">404</a> | 307 | <a class="w-full" href="pages/404.html">404</a> |
308 | </li> | 308 | </li> |
309 | <li | 309 | <li |
310 | 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" |
311 | > | 311 | > |
312 | <a class="w-full" href="pages/blank.html">Blank</a> | 312 | <a class="w-full" href="pages/blank.html">Blank</a> |
313 | </li> | 313 | </li> |
314 | </ul> | 314 | </ul> |
315 | </template> | 315 | </template> |
316 | </li> | 316 | </li> |
317 | </ul> | 317 | </ul> |
318 | <!--<div class="px-6 my-6"> | 318 | <!--<div class="px-6 my-6"> |
319 | <button | 319 | <button |
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" | 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" |
321 | > | 321 | > |
322 | Create account | 322 | Create account |
323 | <span class="ml-2" aria-hidden="true">+</span> | 323 | <span class="ml-2" aria-hidden="true">+</span> |
324 | </button> | 324 | </button> |
325 | </div>--> | 325 | </div>--> |
326 | </div> | 326 | </div> |
327 | </aside> | 327 | </aside> |
328 | <!-- Mobile sidebar --> | 328 | <!-- Mobile sidebar --> |
329 | <!-- Backdrop --> | 329 | <!-- Backdrop --> |
330 | <div | 330 | <div |
331 | x-show="isSideMenuOpen" | 331 | x-show="isSideMenuOpen" |
332 | x-transition:enter="transition ease-in-out duration-150" | 332 | x-transition:enter="transition ease-in-out duration-150" |
333 | x-transition:enter-start="opacity-0" | 333 | x-transition:enter-start="opacity-0" |
334 | x-transition:enter-end="opacity-100" | 334 | x-transition:enter-end="opacity-100" |
335 | x-transition:leave="transition ease-in-out duration-150" | 335 | x-transition:leave="transition ease-in-out duration-150" |
336 | x-transition:leave-start="opacity-100" | 336 | x-transition:leave-start="opacity-100" |
337 | x-transition:leave-end="opacity-0" | 337 | x-transition:leave-end="opacity-0" |
338 | 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" |
339 | ></div> | 339 | ></div> |
340 | <aside | 340 | <aside |
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" | 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" |
342 | x-show="isSideMenuOpen" | 342 | x-show="isSideMenuOpen" |
343 | x-transition:enter="transition ease-in-out duration-150" | 343 | x-transition:enter="transition ease-in-out duration-150" |
344 | x-transition:enter-start="opacity-0 transform -translate-x-20" | 344 | x-transition:enter-start="opacity-0 transform -translate-x-20" |
345 | x-transition:enter-end="opacity-100" | 345 | x-transition:enter-end="opacity-100" |
346 | x-transition:leave="transition ease-in-out duration-150" | 346 | x-transition:leave="transition ease-in-out duration-150" |
347 | x-transition:leave-start="opacity-100" | 347 | x-transition:leave-start="opacity-100" |
348 | x-transition:leave-end="opacity-0 transform -translate-x-20" | 348 | x-transition:leave-end="opacity-0 transform -translate-x-20" |
349 | @click.away="closeSideMenu" | 349 | @click.away="closeSideMenu" |
350 | @keydown.escape="closeSideMenu" | 350 | @keydown.escape="closeSideMenu" |
351 | > | 351 | > |
352 | <div class="py-4 text-gray-500 dark:text-gray-400"> | 352 | <div class="py-4 text-gray-500 dark:text-gray-400"> |
353 | <a | 353 | <a |
354 | 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" |
355 | href="{{ route('admin.index') }}" | 355 | href="{{ route('admin.index') }}" |
356 | > | 356 | > |
357 | Админка | 357 | Админка |
358 | </a> | 358 | </a> |
359 | <ul class="mt-6"> | 359 | <ul class="mt-6"> |
360 | <li class="relative px-6 py-3"> | 360 | <li class="relative px-6 py-3"> |
361 | <span | 361 | <span |
362 | 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" |
363 | aria-hidden="true" | 363 | aria-hidden="true" |
364 | ></span> | 364 | ></span> |
365 | <a | 365 | <a |
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" | 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" |
367 | href="{{ route('admin.index') }}" | 367 | href="{{ route('admin.index') }}" |
368 | > | 368 | > |
369 | <svg | 369 | <svg |
370 | class="w-5 h-5" | 370 | class="w-5 h-5" |
371 | aria-hidden="true" | 371 | aria-hidden="true" |
372 | fill="none" | 372 | fill="none" |
373 | stroke-linecap="round" | 373 | stroke-linecap="round" |
374 | stroke-linejoin="round" | 374 | stroke-linejoin="round" |
375 | stroke-width="2" | 375 | stroke-width="2" |
376 | viewBox="0 0 24 24" | 376 | viewBox="0 0 24 24" |
377 | stroke="currentColor" | 377 | stroke="currentColor" |
378 | > | 378 | > |
379 | <path | 379 | <path |
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" | 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" |
381 | ></path> | 381 | ></path> |
382 | </svg> | 382 | </svg> |
383 | <span class="ml-4">Главная страница</span> | 383 | <span class="ml-4">Главная страница</span> |
384 | </a> | 384 | </a> |
385 | </li> | 385 | </li> |
386 | </ul> | 386 | </ul> |
387 | <ul> | 387 | <ul> |
388 | <li class="relative px-6 py-3"> | 388 | <li class="relative px-6 py-3"> |
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" | 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" |
390 | href="{{ route('admin.users') }}"> | 390 | href="{{ route('admin.users') }}"> |
391 | <svg | 391 | <svg |
392 | class="w-5 h-5" | 392 | class="w-5 h-5" |
393 | aria-hidden="true" | 393 | aria-hidden="true" |
394 | fill="none" | 394 | fill="none" |
395 | stroke-linecap="round" | 395 | stroke-linecap="round" |
396 | stroke-linejoin="round" | 396 | stroke-linejoin="round" |
397 | stroke-width="2" | 397 | stroke-width="2" |
398 | viewBox="0 0 24 24" | 398 | viewBox="0 0 24 24" |
399 | stroke="currentColor" | 399 | stroke="currentColor" |
400 | > | 400 | > |
401 | <path | 401 | <path |
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" | 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" |
403 | ></path> | 403 | ></path> |
404 | </svg> | 404 | </svg> |
405 | <span class="ml-4">Пользователи</span> | 405 | <span class="ml-4">Пользователи</span> |
406 | </a> | 406 | </a> |
407 | </li> | 407 | </li> |
408 | <li class="relative px-6 py-3"> | 408 | <li class="relative px-6 py-3"> |
409 | <a | 409 | <a |
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" | 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" |
411 | href="{{ route('admin.employers') }}" | 411 | href="{{ route('admin.employers') }}" |
412 | > | 412 | > |
413 | <svg | 413 | <svg |
414 | class="w-5 h-5" | 414 | class="w-5 h-5" |
415 | aria-hidden="true" | 415 | aria-hidden="true" |
416 | fill="none" | 416 | fill="none" |
417 | stroke-linecap="round" | 417 | stroke-linecap="round" |
418 | stroke-linejoin="round" | 418 | stroke-linejoin="round" |
419 | stroke-width="2" | 419 | stroke-width="2" |
420 | viewBox="0 0 24 24" | 420 | viewBox="0 0 24 24" |
421 | stroke="currentColor" | 421 | stroke="currentColor" |
422 | > | 422 | > |
423 | <path | 423 | <path |
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" | 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" |
425 | ></path> | 425 | ></path> |
426 | </svg> | 426 | </svg> |
427 | <span class="ml-4">Работодатели</span> | 427 | <span class="ml-4">Работодатели</span> |
428 | </a> | 428 | </a> |
429 | </li> | 429 | </li> |
430 | <li class="relative px-6 py-3"> | 430 | <li class="relative px-6 py-3"> |
431 | <a | 431 | <a |
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" | 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" |
433 | href="{{ route('admin.workers') }}" | 433 | href="{{ route('admin.workers') }}" |
434 | > | 434 | > |
435 | <svg | 435 | <svg |
436 | class="w-5 h-5" | 436 | class="w-5 h-5" |
437 | aria-hidden="true" | 437 | aria-hidden="true" |
438 | fill="none" | 438 | fill="none" |
439 | stroke-linecap="round" | 439 | stroke-linecap="round" |
440 | stroke-linejoin="round" | 440 | stroke-linejoin="round" |
441 | stroke-width="2" | 441 | stroke-width="2" |
442 | viewBox="0 0 24 24" | 442 | viewBox="0 0 24 24" |
443 | stroke="currentColor" | 443 | stroke="currentColor" |
444 | > | 444 | > |
445 | <path | 445 | <path |
446 | 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" |
447 | ></path> | 447 | ></path> |
448 | <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> |
449 | </svg> | 449 | </svg> |
450 | <span class="ml-4">Соискатели</span> | 450 | <span class="ml-4">Соискатели</span> |
451 | </a> | 451 | </a> |
452 | </li> | 452 | </li> |
453 | <li class="relative px-6 py-3"> | 453 | <li class="relative px-6 py-3"> |
454 | <a | 454 | <a |
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" | 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" |
456 | href="{{ route('admin.ad-employers') }}" | 456 | href="{{ route('admin.ad-employers') }}" |
457 | > | 457 | > |
458 | <svg | 458 | <svg |
459 | class="w-5 h-5" | 459 | class="w-5 h-5" |
460 | aria-hidden="true" | 460 | aria-hidden="true" |
461 | fill="none" | 461 | fill="none" |
462 | stroke-linecap="round" | 462 | stroke-linecap="round" |
463 | stroke-linejoin="round" | 463 | stroke-linejoin="round" |
464 | stroke-width="2" | 464 | stroke-width="2" |
465 | viewBox="0 0 24 24" | 465 | viewBox="0 0 24 24" |
466 | stroke="currentColor" | 466 | stroke="currentColor" |
467 | > | 467 | > |
468 | <path | 468 | <path |
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" | 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" |
470 | ></path> | 470 | ></path> |
471 | </svg> | 471 | </svg> |
472 | <span class="ml-4">Вакансии</span> | 472 | <span class="ml-4">Вакансии</span> |
473 | </a> | 473 | </a> |
474 | </li> | 474 | </li> |
475 | <li class="relative px-6 py-3"> | 475 | <li class="relative px-6 py-3"> |
476 | <a | 476 | <a |
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" | 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" |
478 | href="{{ route('admin.categories') }}" | 478 | href="{{ route('admin.categories.index') }}" |
479 | > | 479 | > |
480 | <svg | 480 | <svg |
481 | class="w-5 h-5" | 481 | class="w-5 h-5" |
482 | aria-hidden="true" | 482 | aria-hidden="true" |
483 | fill="none" | 483 | fill="none" |
484 | stroke-linecap="round" | 484 | stroke-linecap="round" |
485 | stroke-linejoin="round" | 485 | stroke-linejoin="round" |
486 | stroke-width="2" | 486 | stroke-width="2" |
487 | viewBox="0 0 24 24" | 487 | viewBox="0 0 24 24" |
488 | stroke="currentColor" | 488 | stroke="currentColor" |
489 | > | 489 | > |
490 | <path | 490 | <path |
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" | 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" |
492 | ></path> | 492 | ></path> |
493 | </svg> | 493 | </svg> |
494 | <span class="ml-4">Категории</span> | 494 | <span class="ml-4">Категории</span> |
495 | </a> | 495 | </a> |
496 | </li> | 496 | </li> |
497 | <li class="relative px-6 py-3"> | 497 | <li class="relative px-6 py-3"> |
498 | <a | 498 | <a |
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" | 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" |
500 | href="{{ route('admin.job-titles') }}" | 500 | href="{{ route('admin.job-titles') }}" |
501 | > | 501 | > |
502 | <svg | 502 | <svg |
503 | class="w-5 h-5" | 503 | class="w-5 h-5" |
504 | aria-hidden="true" | 504 | aria-hidden="true" |
505 | fill="none" | 505 | fill="none" |
506 | stroke-linecap="round" | 506 | stroke-linecap="round" |
507 | stroke-linejoin="round" | 507 | stroke-linejoin="round" |
508 | stroke-width="2" | 508 | stroke-width="2" |
509 | viewBox="0 0 24 24" | 509 | viewBox="0 0 24 24" |
510 | stroke="currentColor" | 510 | stroke="currentColor" |
511 | > | 511 | > |
512 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 512 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
513 | </svg> | 513 | </svg> |
514 | <span class="ml-4">Должности</span> | 514 | <span class="ml-4">Должности</span> |
515 | </a> | 515 | </a> |
516 | </li> | 516 | </li> |
517 | <li class="relative px-6 py-3"> | 517 | <li class="relative px-6 py-3"> |
518 | <a | 518 | <a |
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" | 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" |
520 | href="{{ route('admin.messages') }}" | 520 | href="{{ route('admin.messages') }}" |
521 | > | 521 | > |
522 | <svg | 522 | <svg |
523 | class="w-5 h-5" | 523 | class="w-5 h-5" |
524 | aria-hidden="true" | 524 | aria-hidden="true" |
525 | fill="none" | 525 | fill="none" |
526 | stroke-linecap="round" | 526 | stroke-linecap="round" |
527 | stroke-linejoin="round" | 527 | stroke-linejoin="round" |
528 | stroke-width="2" | 528 | stroke-width="2" |
529 | viewBox="0 0 24 24" | 529 | viewBox="0 0 24 24" |
530 | stroke="currentColor" | 530 | stroke="currentColor" |
531 | > | 531 | > |
532 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 532 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
533 | </svg> | 533 | </svg> |
534 | <span class="ml-4">Сообщения</span> | 534 | <span class="ml-4">Сообщения</span> |
535 | </a> | 535 | </a> |
536 | </li> | 536 | </li> |
537 | <li class="relative px-6 py-3"> | 537 | <li class="relative px-6 py-3"> |
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" | 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" |
539 | href="{{ route('admin.groups') }}"> | 539 | href="{{ route('admin.groups') }}"> |
540 | <svg | 540 | <svg |
541 | class="w-5 h-5" | 541 | class="w-5 h-5" |
542 | aria-hidden="true" | 542 | aria-hidden="true" |
543 | fill="none" | 543 | fill="none" |
544 | stroke-linecap="round" | 544 | stroke-linecap="round" |
545 | stroke-linejoin="round" | 545 | stroke-linejoin="round" |
546 | stroke-width="2" | 546 | stroke-width="2" |
547 | viewBox="0 0 24 24" | 547 | viewBox="0 0 24 24" |
548 | stroke="currentColor" | 548 | stroke="currentColor" |
549 | > | 549 | > |
550 | <path | 550 | <path |
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" | 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" |
552 | ></path> | 552 | ></path> |
553 | </svg> | 553 | </svg> |
554 | <span class="ml-4">Группы пользователей</span> | 554 | <span class="ml-4">Группы пользователей</span> |
555 | </a> | 555 | </a> |
556 | </li> | 556 | </li> |
557 | <li class="relative px-6 py-3"> | 557 | <li class="relative px-6 py-3"> |
558 | <button | 558 | <button |
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" | 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" |
560 | @click="togglePagesMenu" | 560 | @click="togglePagesMenu" |
561 | aria-haspopup="true" | 561 | aria-haspopup="true" |
562 | > | 562 | > |
563 | <span class="inline-flex items-center"> | 563 | <span class="inline-flex items-center"> |
564 | <svg | 564 | <svg |
565 | class="w-5 h-5" | 565 | class="w-5 h-5" |
566 | aria-hidden="true" | 566 | aria-hidden="true" |
567 | fill="none" | 567 | fill="none" |
568 | stroke-linecap="round" | 568 | stroke-linecap="round" |
569 | stroke-linejoin="round" | 569 | stroke-linejoin="round" |
570 | stroke-width="2" | 570 | stroke-width="2" |
571 | viewBox="0 0 24 24" | 571 | viewBox="0 0 24 24" |
572 | stroke="currentColor" | 572 | stroke="currentColor" |
573 | > | 573 | > |
574 | <path | 574 | <path |
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" | 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" |
576 | ></path> | 576 | ></path> |
577 | </svg> | 577 | </svg> |
578 | <span class="ml-4">Страницы</span> | 578 | <span class="ml-4">Страницы</span> |
579 | </span> | 579 | </span> |
580 | <svg | 580 | <svg |
581 | class="w-4 h-4" | 581 | class="w-4 h-4" |
582 | aria-hidden="true" | 582 | aria-hidden="true" |
583 | fill="currentColor" | 583 | fill="currentColor" |
584 | viewBox="0 0 20 20" | 584 | viewBox="0 0 20 20" |
585 | > | 585 | > |
586 | <path | 586 | <path |
587 | fill-rule="evenodd" | 587 | fill-rule="evenodd" |
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" | 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" |
589 | clip-rule="evenodd" | 589 | clip-rule="evenodd" |
590 | ></path> | 590 | ></path> |
591 | </svg> | 591 | </svg> |
592 | </button> | 592 | </button> |
593 | <template x-if="isPagesMenuOpen"> | 593 | <template x-if="isPagesMenuOpen"> |
594 | <ul | 594 | <ul |
595 | x-transition:enter="transition-all ease-in-out duration-300" | 595 | x-transition:enter="transition-all ease-in-out duration-300" |
596 | x-transition:enter-start="opacity-25 max-h-0" | 596 | x-transition:enter-start="opacity-25 max-h-0" |
597 | x-transition:enter-end="opacity-100 max-h-xl" | 597 | x-transition:enter-end="opacity-100 max-h-xl" |
598 | x-transition:leave="transition-all ease-in-out duration-300" | 598 | x-transition:leave="transition-all ease-in-out duration-300" |
599 | x-transition:leave-start="opacity-100 max-h-xl" | 599 | x-transition:leave-start="opacity-100 max-h-xl" |
600 | x-transition:leave-end="opacity-0 max-h-0" | 600 | x-transition:leave-end="opacity-0 max-h-0" |
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" | 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" |
602 | aria-label="submenu" | 602 | aria-label="submenu" |
603 | > | 603 | > |
604 | <li | 604 | <li |
605 | 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" |
606 | > | 606 | > |
607 | <a class="w-full" href="pages/login.html">Login</a> | 607 | <a class="w-full" href="pages/login.html">Login</a> |
608 | </li> | 608 | </li> |
609 | <li | 609 | <li |
610 | 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" |
611 | > | 611 | > |
612 | <a class="w-full" href="pages/create-account.html"> | 612 | <a class="w-full" href="pages/create-account.html"> |
613 | Create account | 613 | Create account |
614 | </a> | 614 | </a> |
615 | </li> | 615 | </li> |
616 | <li | 616 | <li |
617 | 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" |
618 | > | 618 | > |
619 | <a class="w-full" href="pages/forgot-password.html"> | 619 | <a class="w-full" href="pages/forgot-password.html"> |
620 | Forgot password | 620 | Forgot password |
621 | </a> | 621 | </a> |
622 | </li> | 622 | </li> |
623 | <li | 623 | <li |
624 | 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" |
625 | > | 625 | > |
626 | <a class="w-full" href="pages/404.html">404</a> | 626 | <a class="w-full" href="pages/404.html">404</a> |
627 | </li> | 627 | </li> |
628 | <li | 628 | <li |
629 | 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" |
630 | > | 630 | > |
631 | <a class="w-full" href="pages/blank.html">Blank</a> | 631 | <a class="w-full" href="pages/blank.html">Blank</a> |
632 | </li> | 632 | </li> |
633 | </ul> | 633 | </ul> |
634 | </template> | 634 | </template> |
635 | </li> | 635 | </li> |
636 | </ul> | 636 | </ul> |
637 | <!--<div class="px-6 my-6"> | 637 | <!--<div class="px-6 my-6"> |
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"> | 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"> |
639 | Create account | 639 | Create account |
640 | <span class="ml-2" aria-hidden="true">+</span> | 640 | <span class="ml-2" aria-hidden="true">+</span> |
641 | </button> | 641 | </button> |
642 | </div>--> | 642 | </div>--> |
643 | </div> | 643 | </div> |
644 | </aside> | 644 | </aside> |
645 | <div class="flex flex-col flex-1 w-full"> | 645 | <div class="flex flex-col flex-1 w-full"> |
646 | <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"> |
647 | <div | 647 | <div |
648 | 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" |
649 | > | 649 | > |
650 | <!-- Mobile hamburger --> | 650 | <!-- Mobile hamburger --> |
651 | <button | 651 | <button |
652 | 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" |
653 | @click="toggleSideMenu" | 653 | @click="toggleSideMenu" |
654 | aria-label="Menu" | 654 | aria-label="Menu" |
655 | > | 655 | > |
656 | <svg | 656 | <svg |
657 | class="w-6 h-6" | 657 | class="w-6 h-6" |
658 | aria-hidden="true" | 658 | aria-hidden="true" |
659 | fill="currentColor" | 659 | fill="currentColor" |
660 | viewBox="0 0 20 20" | 660 | viewBox="0 0 20 20" |
661 | > | 661 | > |
662 | <path | 662 | <path |
663 | fill-rule="evenodd" | 663 | fill-rule="evenodd" |
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" | 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" |
665 | clip-rule="evenodd" | 665 | clip-rule="evenodd" |
666 | ></path> | 666 | ></path> |
667 | </svg> | 667 | </svg> |
668 | </button> | 668 | </button> |
669 | <!-- Search input --> | 669 | <!-- Search input --> |
670 | <div class="flex justify-center flex-1 lg:mr-32"> | 670 | <div class="flex justify-center flex-1 lg:mr-32"> |
671 | <div | 671 | <div |
672 | 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" |
673 | > | 673 | > |
674 | <div class="absolute inset-y-0 flex items-center pl-2"> | 674 | <div class="absolute inset-y-0 flex items-center pl-2"> |
675 | <svg | 675 | <svg |
676 | class="w-4 h-4" | 676 | class="w-4 h-4" |
677 | aria-hidden="true" | 677 | aria-hidden="true" |
678 | fill="currentColor" | 678 | fill="currentColor" |
679 | viewBox="0 0 20 20" | 679 | viewBox="0 0 20 20" |
680 | > | 680 | > |
681 | <path | 681 | <path |
682 | fill-rule="evenodd" | 682 | fill-rule="evenodd" |
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" | 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" |
684 | clip-rule="evenodd" | 684 | clip-rule="evenodd" |
685 | ></path> | 685 | ></path> |
686 | </svg> | 686 | </svg> |
687 | </div> | 687 | </div> |
688 | <input | 688 | <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" | 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" |
690 | type="text" | 690 | type="text" |
691 | placeholder="Искать..." | 691 | placeholder="Искать..." |
692 | aria-label="Search" | 692 | aria-label="Search" |
693 | /> | 693 | /> |
694 | </div> | 694 | </div> |
695 | </div> | 695 | </div> |
696 | <ul class="flex items-center flex-shrink-0 space-x-6"> | 696 | <ul class="flex items-center flex-shrink-0 space-x-6"> |
697 | <!-- Theme toggler --> | 697 | <!-- Theme toggler --> |
698 | <li class="flex"> | 698 | <li class="flex"> |
699 | <button | 699 | <button |
700 | class="rounded-md focus:outline-none focus:shadow-outline-purple" | 700 | class="rounded-md focus:outline-none focus:shadow-outline-purple" |
701 | @click="toggleTheme" | 701 | @click="toggleTheme" |
702 | aria-label="Toggle color mode" | 702 | aria-label="Toggle color mode" |
703 | > | 703 | > |
704 | <template x-if="!dark"> | 704 | <template x-if="!dark"> |
705 | <svg | 705 | <svg |
706 | class="w-5 h-5" | 706 | class="w-5 h-5" |
707 | aria-hidden="true" | 707 | aria-hidden="true" |
708 | fill="currentColor" | 708 | fill="currentColor" |
709 | viewBox="0 0 20 20" | 709 | viewBox="0 0 20 20" |
710 | > | 710 | > |
711 | <path | 711 | <path |
712 | 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" |
713 | ></path> | 713 | ></path> |
714 | </svg> | 714 | </svg> |
715 | </template> | 715 | </template> |
716 | <template x-if="dark"> | 716 | <template x-if="dark"> |
717 | <svg | 717 | <svg |
718 | class="w-5 h-5" | 718 | class="w-5 h-5" |
719 | aria-hidden="true" | 719 | aria-hidden="true" |
720 | fill="currentColor" | 720 | fill="currentColor" |
721 | viewBox="0 0 20 20" | 721 | viewBox="0 0 20 20" |
722 | > | 722 | > |
723 | <path | 723 | <path |
724 | fill-rule="evenodd" | 724 | fill-rule="evenodd" |
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" | 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" |
726 | clip-rule="evenodd" | 726 | clip-rule="evenodd" |
727 | ></path> | 727 | ></path> |
728 | </svg> | 728 | </svg> |
729 | </template> | 729 | </template> |
730 | </button> | 730 | </button> |
731 | </li> | 731 | </li> |
732 | <!-- Notifications menu --> | 732 | <!-- Notifications menu --> |
733 | <li class="relative"> | 733 | <li class="relative"> |
734 | <button | 734 | <button |
735 | 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" |
736 | @click="toggleNotificationsMenu" | 736 | @click="toggleNotificationsMenu" |
737 | @keydown.escape="closeNotificationsMenu" | 737 | @keydown.escape="closeNotificationsMenu" |
738 | aria-label="Notifications" | 738 | aria-label="Notifications" |
739 | aria-haspopup="true" | 739 | aria-haspopup="true" |
740 | > | 740 | > |
741 | <svg | 741 | <svg |
742 | class="w-5 h-5" | 742 | class="w-5 h-5" |
743 | aria-hidden="true" | 743 | aria-hidden="true" |
744 | fill="currentColor" | 744 | fill="currentColor" |
745 | viewBox="0 0 20 20" | 745 | viewBox="0 0 20 20" |
746 | > | 746 | > |
747 | <path | 747 | <path |
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" | 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" |
749 | ></path> | 749 | ></path> |
750 | </svg> | 750 | </svg> |
751 | <!-- Notification badge --> | 751 | <!-- Notification badge --> |
752 | <span | 752 | <span |
753 | aria-hidden="true" | 753 | aria-hidden="true" |
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" | 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" |
755 | ></span> | 755 | ></span> |
756 | </button> | 756 | </button> |
757 | <template x-if="isNotificationsMenuOpen"> | 757 | <template x-if="isNotificationsMenuOpen"> |
758 | <ul | 758 | <ul |
759 | x-transition:leave="transition ease-in duration-150" | 759 | x-transition:leave="transition ease-in duration-150" |
760 | x-transition:leave-start="opacity-100" | 760 | x-transition:leave-start="opacity-100" |
761 | x-transition:leave-end="opacity-0" | 761 | x-transition:leave-end="opacity-0" |
762 | @click.away="closeNotificationsMenu" | 762 | @click.away="closeNotificationsMenu" |
763 | @keydown.escape="closeNotificationsMenu" | 763 | @keydown.escape="closeNotificationsMenu" |
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" | 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" |
765 | > | 765 | > |
766 | <li class="flex"> | 766 | <li class="flex"> |
767 | <a | 767 | <a |
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" | 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" |
769 | href="#" | 769 | href="#" |
770 | > | 770 | > |
771 | <span>Сообщения</span> | 771 | <span>Сообщения</span> |
772 | <span | 772 | <span |
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" | 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" |
774 | > | 774 | > |
775 | 13 | 775 | 13 |
776 | </span> | 776 | </span> |
777 | </a> | 777 | </a> |
778 | </li> | 778 | </li> |
779 | <li class="flex"> | 779 | <li class="flex"> |
780 | <a | 780 | <a |
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" | 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" |
782 | href="#" | 782 | href="#" |
783 | > | 783 | > |
784 | <span>Логи</span> | 784 | <span>Логи</span> |
785 | </a> | 785 | </a> |
786 | </li> | 786 | </li> |
787 | </ul> | 787 | </ul> |
788 | </template> | 788 | </template> |
789 | </li> | 789 | </li> |
790 | <!-- Profile menu --> | 790 | <!-- Profile menu --> |
791 | <li class="relative"> | 791 | <li class="relative"> |
792 | <button | 792 | <button |
793 | 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" |
794 | @click="toggleProfileMenu" | 794 | @click="toggleProfileMenu" |
795 | @keydown.escape="closeProfileMenu" | 795 | @keydown.escape="closeProfileMenu" |
796 | aria-label="Account" | 796 | aria-label="Account" |
797 | aria-haspopup="true" | 797 | aria-haspopup="true" |
798 | > | 798 | > |
799 | <img | 799 | <img |
800 | class="object-cover w-8 h-8 rounded-full" | 800 | class="object-cover w-8 h-8 rounded-full" |
801 | src="{{ asset('assets/img/profile.jpg') }}" | 801 | src="{{ asset('assets/img/profile.jpg') }}" |
802 | alt="" | 802 | alt="" |
803 | aria-hidden="true" | 803 | aria-hidden="true" |
804 | /> | 804 | /> |
805 | </button> | 805 | </button> |
806 | <template x-if="isProfileMenuOpen"> | 806 | <template x-if="isProfileMenuOpen"> |
807 | <ul | 807 | <ul |
808 | x-transition:leave="transition ease-in duration-150" | 808 | x-transition:leave="transition ease-in duration-150" |
809 | x-transition:leave-start="opacity-100" | 809 | x-transition:leave-start="opacity-100" |
810 | x-transition:leave-end="opacity-0" | 810 | x-transition:leave-end="opacity-0" |
811 | @click.away="closeProfileMenu" | 811 | @click.away="closeProfileMenu" |
812 | @keydown.escape="closeProfileMenu" | 812 | @keydown.escape="closeProfileMenu" |
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" | 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" |
814 | aria-label="submenu" | 814 | aria-label="submenu" |
815 | > | 815 | > |
816 | <li class="flex"> | 816 | <li class="flex"> |
817 | <a | 817 | <a |
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" | 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" |
819 | href="{{ route('admin.profile') }}" | 819 | href="{{ route('admin.profile') }}" |
820 | > | 820 | > |
821 | <svg | 821 | <svg |
822 | class="w-4 h-4 mr-3" | 822 | class="w-4 h-4 mr-3" |
823 | aria-hidden="true" | 823 | aria-hidden="true" |
824 | fill="none" | 824 | fill="none" |
825 | stroke-linecap="round" | 825 | stroke-linecap="round" |
826 | stroke-linejoin="round" | 826 | stroke-linejoin="round" |
827 | stroke-width="2" | 827 | stroke-width="2" |
828 | viewBox="0 0 24 24" | 828 | viewBox="0 0 24 24" |
829 | stroke="currentColor" | 829 | stroke="currentColor" |
830 | > | 830 | > |
831 | <path | 831 | <path |
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" | 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" |
833 | ></path> | 833 | ></path> |
834 | </svg> | 834 | </svg> |
835 | <span>Профиль</span> | 835 | <span>Профиль</span> |
836 | </a> | 836 | </a> |
837 | </li> | 837 | </li> |
838 | <li class="flex"> | 838 | <li class="flex"> |
839 | <a | 839 | <a |
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" | 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" |
841 | href="{{ route('admin.config') }}" | 841 | href="{{ route('admin.config') }}" |
842 | > | 842 | > |
843 | <svg | 843 | <svg |
844 | class="w-4 h-4 mr-3" | 844 | class="w-4 h-4 mr-3" |
845 | aria-hidden="true" | 845 | aria-hidden="true" |
846 | fill="none" | 846 | fill="none" |
847 | stroke-linecap="round" | 847 | stroke-linecap="round" |
848 | stroke-linejoin="round" | 848 | stroke-linejoin="round" |
849 | stroke-width="2" | 849 | stroke-width="2" |
850 | viewBox="0 0 24 24" | 850 | viewBox="0 0 24 24" |
851 | stroke="currentColor" | 851 | stroke="currentColor" |
852 | > | 852 | > |
853 | <path | 853 | <path |
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" | 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" |
855 | ></path> | 855 | ></path> |
856 | <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> |
857 | </svg> | 857 | </svg> |
858 | <span>Настройки</span> | 858 | <span>Настройки</span> |
859 | </a> | 859 | </a> |
860 | </li> | 860 | </li> |
861 | <li class="flex"> | 861 | <li class="flex"> |
862 | <a | 862 | <a |
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" | 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" |
864 | href="{{ route('admin.logout') }}" | 864 | href="{{ route('admin.logout') }}" |
865 | > | 865 | > |
866 | <svg | 866 | <svg |
867 | class="w-4 h-4 mr-3" | 867 | class="w-4 h-4 mr-3" |
868 | aria-hidden="true" | 868 | aria-hidden="true" |
869 | fill="none" | 869 | fill="none" |
870 | stroke-linecap="round" | 870 | stroke-linecap="round" |
871 | stroke-linejoin="round" | 871 | stroke-linejoin="round" |
872 | stroke-width="2" | 872 | stroke-width="2" |
873 | viewBox="0 0 24 24" | 873 | viewBox="0 0 24 24" |
874 | stroke="currentColor" | 874 | stroke="currentColor" |
875 | > | 875 | > |
876 | <path | 876 | <path |
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" | 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" |
878 | ></path> | 878 | ></path> |
879 | </svg> | 879 | </svg> |
880 | <span>Выход</span> | 880 | <span>Выход</span> |
881 | </a> | 881 | </a> |
882 | </li> | 882 | </li> |
883 | </ul> | 883 | </ul> |
884 | </template> | 884 | </template> |
885 | </li> | 885 | </li> |
886 | </ul> | 886 | </ul> |
887 | </div> | 887 | </div> |
888 | </header> | 888 | </header> |
889 | <main class="h-full overflow-y-auto"> | 889 | <main class="h-full overflow-y-auto"> |
890 | <div class="container px-6 mx-auto grid"> | 890 | <div class="container px-6 mx-auto grid"> |
891 | <h2 | 891 | <h2 |
892 | 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" |
893 | > | 893 | > |
894 | {{$title}} | 894 | {{$title}} |
895 | </h2> | 895 | </h2> |
896 | <!-- CTA --> | 896 | <!-- CTA --> |
897 | <a | 897 | <a |
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" | 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" |
899 | href="{{ route('admin.admin-users') }}" | 899 | href="{{ route('admin.admin-users') }}" |
900 | > | 900 | > |
901 | <div class="flex items-center"> | 901 | <div class="flex items-center"> |
902 | <svg | 902 | <svg |
903 | class="w-5 h-5 mr-2" | 903 | class="w-5 h-5 mr-2" |
904 | fill="currentColor" | 904 | fill="currentColor" |
905 | viewBox="0 0 20 20" | 905 | viewBox="0 0 20 20" |
906 | > | 906 | > |
907 | <path | 907 | <path |
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" | 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" |
909 | ></path> | 909 | ></path> |
910 | </svg> | 910 | </svg> |
911 | <span>Вход в админку только для пользователей-админов</span> | 911 | <span>Вход в админку только для пользователей-админов</span> |
912 | </div> | 912 | </div> |
913 | <span>Список админов →</span> | 913 | <span>Список админов →</span> |
914 | </a> | 914 | </a> |
915 | 915 | ||
916 | @if ($message = Session::get('success')) | 916 | @if ($message = Session::get('success')) |
917 | <section> | 917 | <section> |
918 | <div class="alert alert-success alert-dismissible mt-0" role="alert"> | 918 | <div class="alert alert-success alert-dismissible mt-0" role="alert"> |
919 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> | 919 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> |
920 | <span aria-hidden="true">×</span> | 920 | <span aria-hidden="true">×</span> |
921 | </button> | 921 | </button> |
922 | {{ $message }} | 922 | {{ $message }} |
923 | </div> | 923 | </div> |
924 | </section> | 924 | </section> |
925 | @endif | 925 | @endif |
926 | 926 | ||
927 | @if ($errors->any()) | 927 | @if ($errors->any()) |
928 | <section> | 928 | <section> |
929 | <div class="alert alert-danger alert-dismissible mt-4" role="alert"> | 929 | <div class="alert alert-danger alert-dismissible mt-4" role="alert"> |
930 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> | 930 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> |
931 | <span aria-hidden="true">×</span> | 931 | <span aria-hidden="true">×</span> |
932 | </button> | 932 | </button> |
933 | <ul class="mb-0"> | 933 | <ul class="mb-0"> |
934 | @foreach ($errors->all() as $error) | 934 | @foreach ($errors->all() as $error) |
935 | <li>{{ $error }}</li> | 935 | <li>{{ $error }}</li> |
936 | @endforeach | 936 | @endforeach |
937 | </ul> | 937 | </ul> |
938 | </div> | 938 | </div> |
939 | </section> | 939 | </section> |
940 | @endif | 940 | @endif |
941 | 941 | ||
942 | @yield('content') | 942 | @yield('content') |
943 | 943 | ||
944 | <!-- Cards | 944 | <!-- Cards |
945 | <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4"> | 945 | <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4"> |
946 | 946 | ||
947 | <div | 947 | <div |
948 | 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" |
949 | > | 949 | > |
950 | <div | 950 | <div |
951 | class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500" | 951 | class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500" |
952 | > | 952 | > |
953 | <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"> |
954 | <path | 954 | <path |
955 | 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" | 955 | 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" |
956 | ></path> | 956 | ></path> |
957 | </svg> | 957 | </svg> |
958 | </div> | 958 | </div> |
959 | <div> | 959 | <div> |
960 | <p | 960 | <p |
961 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" | 961 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" |
962 | > | 962 | > |
963 | Total clients | 963 | Total clients |
964 | </p> | 964 | </p> |
965 | <p | 965 | <p |
966 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" | 966 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" |
967 | > | 967 | > |
968 | 6389 | 968 | 6389 |
969 | </p> | 969 | </p> |
970 | </div> | 970 | </div> |
971 | </div> | 971 | </div> |
972 | 972 | ||
973 | <div | 973 | <div |
974 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 974 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
975 | > | 975 | > |
976 | <div | 976 | <div |
977 | class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500" | 977 | class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500" |
978 | > | 978 | > |
979 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 979 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
980 | <path | 980 | <path |
981 | fill-rule="evenodd" | 981 | fill-rule="evenodd" |
982 | 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" | 982 | 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" |
983 | clip-rule="evenodd" | 983 | clip-rule="evenodd" |
984 | ></path> | 984 | ></path> |
985 | </svg> | 985 | </svg> |
986 | </div> | 986 | </div> |
987 | <div> | 987 | <div> |
988 | <p | 988 | <p |
989 | 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" |
990 | > | 990 | > |
991 | Account balance | 991 | Account balance |
992 | </p> | 992 | </p> |
993 | <p | 993 | <p |
994 | 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" |
995 | > | 995 | > |
996 | $ 46,760.89 | 996 | $ 46,760.89 |
997 | </p> | 997 | </p> |
998 | </div> | 998 | </div> |
999 | </div> | 999 | </div> |
1000 | 1000 | ||
1001 | <div | 1001 | <div |
1002 | 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" |
1003 | > | 1003 | > |
1004 | <div | 1004 | <div |
1005 | class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500" | 1005 | class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500" |
1006 | > | 1006 | > |
1007 | <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"> |
1008 | <path | 1008 | <path |
1009 | 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" | 1009 | 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" |
1010 | ></path> | 1010 | ></path> |
1011 | </svg> | 1011 | </svg> |
1012 | </div> | 1012 | </div> |
1013 | <div> | 1013 | <div> |
1014 | <p | 1014 | <p |
1015 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" | 1015 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" |
1016 | > | 1016 | > |
1017 | New sales | 1017 | New sales |
1018 | </p> | 1018 | </p> |
1019 | <p | 1019 | <p |
1020 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" | 1020 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" |
1021 | > | 1021 | > |
1022 | 376 | 1022 | 376 |
1023 | </p> | 1023 | </p> |
1024 | </div> | 1024 | </div> |
1025 | </div> | 1025 | </div> |
1026 | 1026 | ||
1027 | <div | 1027 | <div |
1028 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1028 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1029 | > | 1029 | > |
1030 | <div | 1030 | <div |
1031 | class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500" | 1031 | class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500" |
1032 | > | 1032 | > |
1033 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 1033 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
1034 | <path | 1034 | <path |
1035 | fill-rule="evenodd" | 1035 | fill-rule="evenodd" |
1036 | 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" | 1036 | 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" |
1037 | clip-rule="evenodd" | 1037 | clip-rule="evenodd" |
1038 | ></path> | 1038 | ></path> |
1039 | </svg> | 1039 | </svg> |
1040 | </div> | 1040 | </div> |
1041 | <div> | 1041 | <div> |
1042 | <p | 1042 | <p |
1043 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" | 1043 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" |
1044 | > | 1044 | > |
1045 | Pending contacts | 1045 | Pending contacts |
1046 | </p> | 1046 | </p> |
1047 | <p | 1047 | <p |
1048 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" | 1048 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" |
1049 | > | 1049 | > |
1050 | 35 | 1050 | 35 |
1051 | </p> | 1051 | </p> |
1052 | </div> | 1052 | </div> |
1053 | </div> | 1053 | </div> |
1054 | </div> | 1054 | </div> |
1055 | --> | 1055 | --> |
1056 | <!-- New Table | 1056 | <!-- New Table |
1057 | <div class="w-full overflow-hidden rounded-lg shadow-xs"> | 1057 | <div class="w-full overflow-hidden rounded-lg shadow-xs"> |
1058 | <div class="w-full overflow-x-auto"> | 1058 | <div class="w-full overflow-x-auto"> |
1059 | <table class="w-full whitespace-no-wrap"> | 1059 | <table class="w-full whitespace-no-wrap"> |
1060 | <thead> | 1060 | <thead> |
1061 | <tr | 1061 | <tr |
1062 | 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" | 1062 | 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" |
1063 | > | 1063 | > |
1064 | <th class="px-4 py-3">Client</th> | 1064 | <th class="px-4 py-3">Client</th> |
1065 | <th class="px-4 py-3">Amount</th> | 1065 | <th class="px-4 py-3">Amount</th> |
1066 | <th class="px-4 py-3">Status</th> | 1066 | <th class="px-4 py-3">Status</th> |
1067 | <th class="px-4 py-3">Date</th> | 1067 | <th class="px-4 py-3">Date</th> |
1068 | </tr> | 1068 | </tr> |
1069 | </thead> | 1069 | </thead> |
1070 | <tbody | 1070 | <tbody |
1071 | class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" | 1071 | class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" |
1072 | > | 1072 | > |
1073 | <tr class="text-gray-700 dark:text-gray-400"> | 1073 | <tr class="text-gray-700 dark:text-gray-400"> |
1074 | <td class="px-4 py-3"> | 1074 | <td class="px-4 py-3"> |
1075 | <div class="flex items-center text-sm"> | 1075 | <div class="flex items-center text-sm"> |
1076 | 1076 | ||
1077 | <div | 1077 | <div |
1078 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1078 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1079 | > | 1079 | > |
1080 | <img | 1080 | <img |
1081 | class="object-cover w-full h-full rounded-full" | 1081 | class="object-cover w-full h-full rounded-full" |
1082 | 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" | 1082 | 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" |
1083 | alt="" | 1083 | alt="" |
1084 | loading="lazy" | 1084 | loading="lazy" |
1085 | /> | 1085 | /> |
1086 | <div | 1086 | <div |
1087 | class="absolute inset-0 rounded-full shadow-inner" | 1087 | class="absolute inset-0 rounded-full shadow-inner" |
1088 | aria-hidden="true" | 1088 | aria-hidden="true" |
1089 | ></div> | 1089 | ></div> |
1090 | </div> | 1090 | </div> |
1091 | <div> | 1091 | <div> |
1092 | <p class="font-semibold">Hans Burger</p> | 1092 | <p class="font-semibold">Hans Burger</p> |
1093 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1093 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1094 | 10x Developer | 1094 | 10x Developer |
1095 | </p> | 1095 | </p> |
1096 | </div> | 1096 | </div> |
1097 | </div> | 1097 | </div> |
1098 | </td> | 1098 | </td> |
1099 | <td class="px-4 py-3 text-sm"> | 1099 | <td class="px-4 py-3 text-sm"> |
1100 | $ 863.45 | 1100 | $ 863.45 |
1101 | </td> | 1101 | </td> |
1102 | <td class="px-4 py-3 text-xs"> | 1102 | <td class="px-4 py-3 text-xs"> |
1103 | <span | 1103 | <span |
1104 | 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" | 1104 | 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" |
1105 | > | 1105 | > |
1106 | Approved | 1106 | Approved |
1107 | </span> | 1107 | </span> |
1108 | </td> | 1108 | </td> |
1109 | <td class="px-4 py-3 text-sm"> | 1109 | <td class="px-4 py-3 text-sm"> |
1110 | 6/10/2020 | 1110 | 6/10/2020 |
1111 | </td> | 1111 | </td> |
1112 | </tr> | 1112 | </tr> |
1113 | 1113 | ||
1114 | <tr class="text-gray-700 dark:text-gray-400"> | 1114 | <tr class="text-gray-700 dark:text-gray-400"> |
1115 | <td class="px-4 py-3"> | 1115 | <td class="px-4 py-3"> |
1116 | <div class="flex items-center text-sm"> | 1116 | <div class="flex items-center text-sm"> |
1117 | 1117 | ||
1118 | <div | 1118 | <div |
1119 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1119 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1120 | > | 1120 | > |
1121 | <img | 1121 | <img |
1122 | class="object-cover w-full h-full rounded-full" | 1122 | class="object-cover w-full h-full rounded-full" |
1123 | 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" | 1123 | 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" |
1124 | alt="" | 1124 | alt="" |
1125 | loading="lazy" | 1125 | loading="lazy" |
1126 | /> | 1126 | /> |
1127 | <div | 1127 | <div |
1128 | class="absolute inset-0 rounded-full shadow-inner" | 1128 | class="absolute inset-0 rounded-full shadow-inner" |
1129 | aria-hidden="true" | 1129 | aria-hidden="true" |
1130 | ></div> | 1130 | ></div> |
1131 | </div> | 1131 | </div> |
1132 | <div> | 1132 | <div> |
1133 | <p class="font-semibold">Jolina Angelie</p> | 1133 | <p class="font-semibold">Jolina Angelie</p> |
1134 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1134 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1135 | Unemployed | 1135 | Unemployed |
1136 | </p> | 1136 | </p> |
1137 | </div> | 1137 | </div> |
1138 | </div> | 1138 | </div> |
1139 | </td> | 1139 | </td> |
1140 | <td class="px-4 py-3 text-sm"> | 1140 | <td class="px-4 py-3 text-sm"> |
1141 | $ 369.95 | 1141 | $ 369.95 |
1142 | </td> | 1142 | </td> |
1143 | <td class="px-4 py-3 text-xs"> | 1143 | <td class="px-4 py-3 text-xs"> |
1144 | <span | 1144 | <span |
1145 | class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600" | 1145 | class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600" |
1146 | > | 1146 | > |
1147 | Pending | 1147 | Pending |
1148 | </span> | 1148 | </span> |
1149 | </td> | 1149 | </td> |
1150 | <td class="px-4 py-3 text-sm"> | 1150 | <td class="px-4 py-3 text-sm"> |
1151 | 6/10/2020 | 1151 | 6/10/2020 |
1152 | </td> | 1152 | </td> |
1153 | </tr> | 1153 | </tr> |
1154 | 1154 | ||
1155 | <tr class="text-gray-700 dark:text-gray-400"> | 1155 | <tr class="text-gray-700 dark:text-gray-400"> |
1156 | <td class="px-4 py-3"> | 1156 | <td class="px-4 py-3"> |
1157 | <div class="flex items-center text-sm"> | 1157 | <div class="flex items-center text-sm"> |
1158 | 1158 | ||
1159 | <div | 1159 | <div |
1160 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1160 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1161 | > | 1161 | > |
1162 | <img | 1162 | <img |
1163 | class="object-cover w-full h-full rounded-full" | 1163 | class="object-cover w-full h-full rounded-full" |
1164 | 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" | 1164 | 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" |
1165 | alt="" | 1165 | alt="" |
1166 | loading="lazy" | 1166 | loading="lazy" |
1167 | /> | 1167 | /> |
1168 | <div | 1168 | <div |
1169 | class="absolute inset-0 rounded-full shadow-inner" | 1169 | class="absolute inset-0 rounded-full shadow-inner" |
1170 | aria-hidden="true" | 1170 | aria-hidden="true" |
1171 | ></div> | 1171 | ></div> |
1172 | </div> | 1172 | </div> |
1173 | <div> | 1173 | <div> |
1174 | <p class="font-semibold">Sarah Curry</p> | 1174 | <p class="font-semibold">Sarah Curry</p> |
1175 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1175 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1176 | Designer | 1176 | Designer |
1177 | </p> | 1177 | </p> |
1178 | </div> | 1178 | </div> |
1179 | </div> | 1179 | </div> |
1180 | </td> | 1180 | </td> |
1181 | <td class="px-4 py-3 text-sm"> | 1181 | <td class="px-4 py-3 text-sm"> |
1182 | $ 86.00 | 1182 | $ 86.00 |
1183 | </td> | 1183 | </td> |
1184 | <td class="px-4 py-3 text-xs"> | 1184 | <td class="px-4 py-3 text-xs"> |
1185 | <span | 1185 | <span |
1186 | 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" | 1186 | 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" |
1187 | > | 1187 | > |
1188 | Denied | 1188 | Denied |
1189 | </span> | 1189 | </span> |
1190 | </td> | 1190 | </td> |
1191 | <td class="px-4 py-3 text-sm"> | 1191 | <td class="px-4 py-3 text-sm"> |
1192 | 6/10/2020 | 1192 | 6/10/2020 |
1193 | </td> | 1193 | </td> |
1194 | </tr> | 1194 | </tr> |
1195 | 1195 | ||
1196 | <tr class="text-gray-700 dark:text-gray-400"> | 1196 | <tr class="text-gray-700 dark:text-gray-400"> |
1197 | <td class="px-4 py-3"> | 1197 | <td class="px-4 py-3"> |
1198 | <div class="flex items-center text-sm"> | 1198 | <div class="flex items-center text-sm"> |
1199 | 1199 | ||
1200 | <div | 1200 | <div |
1201 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1201 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1202 | > | 1202 | > |
1203 | <img | 1203 | <img |
1204 | class="object-cover w-full h-full rounded-full" | 1204 | class="object-cover w-full h-full rounded-full" |
1205 | 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" | 1205 | 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" |
1206 | alt="" | 1206 | alt="" |
1207 | loading="lazy" | 1207 | loading="lazy" |
1208 | /> | 1208 | /> |
1209 | <div | 1209 | <div |
1210 | class="absolute inset-0 rounded-full shadow-inner" | 1210 | class="absolute inset-0 rounded-full shadow-inner" |
1211 | aria-hidden="true" | 1211 | aria-hidden="true" |
1212 | ></div> | 1212 | ></div> |
1213 | </div> | 1213 | </div> |
1214 | <div> | 1214 | <div> |
1215 | <p class="font-semibold">Rulia Joberts</p> | 1215 | <p class="font-semibold">Rulia Joberts</p> |
1216 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1216 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1217 | Actress | 1217 | Actress |
1218 | </p> | 1218 | </p> |
1219 | </div> | 1219 | </div> |
1220 | </div> | 1220 | </div> |
1221 | </td> | 1221 | </td> |
1222 | <td class="px-4 py-3 text-sm"> | 1222 | <td class="px-4 py-3 text-sm"> |
1223 | $ 1276.45 | 1223 | $ 1276.45 |
1224 | </td> | 1224 | </td> |
1225 | <td class="px-4 py-3 text-xs"> | 1225 | <td class="px-4 py-3 text-xs"> |
1226 | <span | 1226 | <span |
1227 | 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" | 1227 | 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" |
1228 | > | 1228 | > |
1229 | Approved | 1229 | Approved |
1230 | </span> | 1230 | </span> |
1231 | </td> | 1231 | </td> |
1232 | <td class="px-4 py-3 text-sm"> | 1232 | <td class="px-4 py-3 text-sm"> |
1233 | 6/10/2020 | 1233 | 6/10/2020 |
1234 | </td> | 1234 | </td> |
1235 | </tr> | 1235 | </tr> |
1236 | 1236 | ||
1237 | <tr class="text-gray-700 dark:text-gray-400"> | 1237 | <tr class="text-gray-700 dark:text-gray-400"> |
1238 | <td class="px-4 py-3"> | 1238 | <td class="px-4 py-3"> |
1239 | <div class="flex items-center text-sm"> | 1239 | <div class="flex items-center text-sm"> |
1240 | 1240 | ||
1241 | <div | 1241 | <div |
1242 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1242 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1243 | > | 1243 | > |
1244 | <img | 1244 | <img |
1245 | class="object-cover w-full h-full rounded-full" | 1245 | class="object-cover w-full h-full rounded-full" |
1246 | 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" | 1246 | 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" |
1247 | alt="" | 1247 | alt="" |
1248 | loading="lazy" | 1248 | loading="lazy" |
1249 | /> | 1249 | /> |
1250 | <div | 1250 | <div |
1251 | class="absolute inset-0 rounded-full shadow-inner" | 1251 | class="absolute inset-0 rounded-full shadow-inner" |
1252 | aria-hidden="true" | 1252 | aria-hidden="true" |
1253 | ></div> | 1253 | ></div> |
1254 | </div> | 1254 | </div> |
1255 | <div> | 1255 | <div> |
1256 | <p class="font-semibold">Wenzel Dashington</p> | 1256 | <p class="font-semibold">Wenzel Dashington</p> |
1257 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1257 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1258 | Actor | 1258 | Actor |
1259 | </p> | 1259 | </p> |
1260 | </div> | 1260 | </div> |
1261 | </div> | 1261 | </div> |
1262 | </td> | 1262 | </td> |
1263 | <td class="px-4 py-3 text-sm"> | 1263 | <td class="px-4 py-3 text-sm"> |
1264 | $ 863.45 | 1264 | $ 863.45 |
1265 | </td> | 1265 | </td> |
1266 | <td class="px-4 py-3 text-xs"> | 1266 | <td class="px-4 py-3 text-xs"> |
1267 | <span | 1267 | <span |
1268 | 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" | 1268 | 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" |
1269 | > | 1269 | > |
1270 | Expired | 1270 | Expired |
1271 | </span> | 1271 | </span> |
1272 | </td> | 1272 | </td> |
1273 | <td class="px-4 py-3 text-sm"> | 1273 | <td class="px-4 py-3 text-sm"> |
1274 | 6/10/2020 | 1274 | 6/10/2020 |
1275 | </td> | 1275 | </td> |
1276 | </tr> | 1276 | </tr> |
1277 | 1277 | ||
1278 | <tr class="text-gray-700 dark:text-gray-400"> | 1278 | <tr class="text-gray-700 dark:text-gray-400"> |
1279 | <td class="px-4 py-3"> | 1279 | <td class="px-4 py-3"> |
1280 | <div class="flex items-center text-sm"> | 1280 | <div class="flex items-center text-sm"> |
1281 | 1281 | ||
1282 | <div | 1282 | <div |
1283 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1283 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1284 | > | 1284 | > |
1285 | <img | 1285 | <img |
1286 | class="object-cover w-full h-full rounded-full" | 1286 | class="object-cover w-full h-full rounded-full" |
1287 | 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" | 1287 | 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" |
1288 | alt="" | 1288 | alt="" |
1289 | loading="lazy" | 1289 | loading="lazy" |
1290 | /> | 1290 | /> |
1291 | <div | 1291 | <div |
1292 | class="absolute inset-0 rounded-full shadow-inner" | 1292 | class="absolute inset-0 rounded-full shadow-inner" |
1293 | aria-hidden="true" | 1293 | aria-hidden="true" |
1294 | ></div> | 1294 | ></div> |
1295 | </div> | 1295 | </div> |
1296 | <div> | 1296 | <div> |
1297 | <p class="font-semibold">Dave Li</p> | 1297 | <p class="font-semibold">Dave Li</p> |
1298 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1298 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1299 | Influencer | 1299 | Influencer |
1300 | </p> | 1300 | </p> |
1301 | </div> | 1301 | </div> |
1302 | </div> | 1302 | </div> |
1303 | </td> | 1303 | </td> |
1304 | <td class="px-4 py-3 text-sm"> | 1304 | <td class="px-4 py-3 text-sm"> |
1305 | $ 863.45 | 1305 | $ 863.45 |
1306 | </td> | 1306 | </td> |
1307 | <td class="px-4 py-3 text-xs"> | 1307 | <td class="px-4 py-3 text-xs"> |
1308 | <span | 1308 | <span |
1309 | 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" | 1309 | 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" |
1310 | > | 1310 | > |
1311 | Approved | 1311 | Approved |
1312 | </span> | 1312 | </span> |
1313 | </td> | 1313 | </td> |
1314 | <td class="px-4 py-3 text-sm"> | 1314 | <td class="px-4 py-3 text-sm"> |
1315 | 6/10/2020 | 1315 | 6/10/2020 |
1316 | </td> | 1316 | </td> |
1317 | </tr> | 1317 | </tr> |
1318 | 1318 | ||
1319 | <tr class="text-gray-700 dark:text-gray-400"> | 1319 | <tr class="text-gray-700 dark:text-gray-400"> |
1320 | <td class="px-4 py-3"> | 1320 | <td class="px-4 py-3"> |
1321 | <div class="flex items-center text-sm"> | 1321 | <div class="flex items-center text-sm"> |
1322 | 1322 | ||
1323 | <div | 1323 | <div |
1324 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1324 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1325 | > | 1325 | > |
1326 | <img | 1326 | <img |
1327 | class="object-cover w-full h-full rounded-full" | 1327 | class="object-cover w-full h-full rounded-full" |
1328 | 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" | 1328 | 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" |
1329 | alt="" | 1329 | alt="" |
1330 | loading="lazy" | 1330 | loading="lazy" |
1331 | /> | 1331 | /> |
1332 | <div | 1332 | <div |
1333 | class="absolute inset-0 rounded-full shadow-inner" | 1333 | class="absolute inset-0 rounded-full shadow-inner" |
1334 | aria-hidden="true" | 1334 | aria-hidden="true" |
1335 | ></div> | 1335 | ></div> |
1336 | </div> | 1336 | </div> |
1337 | <div> | 1337 | <div> |
1338 | <p class="font-semibold">Maria Ramovic</p> | 1338 | <p class="font-semibold">Maria Ramovic</p> |
1339 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1339 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1340 | Runner | 1340 | Runner |
1341 | </p> | 1341 | </p> |
1342 | </div> | 1342 | </div> |
1343 | </div> | 1343 | </div> |
1344 | </td> | 1344 | </td> |
1345 | <td class="px-4 py-3 text-sm"> | 1345 | <td class="px-4 py-3 text-sm"> |
1346 | $ 863.45 | 1346 | $ 863.45 |
1347 | </td> | 1347 | </td> |
1348 | <td class="px-4 py-3 text-xs"> | 1348 | <td class="px-4 py-3 text-xs"> |
1349 | <span | 1349 | <span |
1350 | 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" | 1350 | 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" |
1351 | > | 1351 | > |
1352 | Approved | 1352 | Approved |
1353 | </span> | 1353 | </span> |
1354 | </td> | 1354 | </td> |
1355 | <td class="px-4 py-3 text-sm"> | 1355 | <td class="px-4 py-3 text-sm"> |
1356 | 6/10/2020 | 1356 | 6/10/2020 |
1357 | </td> | 1357 | </td> |
1358 | </tr> | 1358 | </tr> |
1359 | 1359 | ||
1360 | <tr class="text-gray-700 dark:text-gray-400"> | 1360 | <tr class="text-gray-700 dark:text-gray-400"> |
1361 | <td class="px-4 py-3"> | 1361 | <td class="px-4 py-3"> |
1362 | <div class="flex items-center text-sm"> | 1362 | <div class="flex items-center text-sm"> |
1363 | 1363 | ||
1364 | <div | 1364 | <div |
1365 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1365 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1366 | > | 1366 | > |
1367 | <img | 1367 | <img |
1368 | class="object-cover w-full h-full rounded-full" | 1368 | class="object-cover w-full h-full rounded-full" |
1369 | 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" | 1369 | 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" |
1370 | alt="" | 1370 | alt="" |
1371 | loading="lazy" | 1371 | loading="lazy" |
1372 | /> | 1372 | /> |
1373 | <div | 1373 | <div |
1374 | class="absolute inset-0 rounded-full shadow-inner" | 1374 | class="absolute inset-0 rounded-full shadow-inner" |
1375 | aria-hidden="true" | 1375 | aria-hidden="true" |
1376 | ></div> | 1376 | ></div> |
1377 | </div> | 1377 | </div> |
1378 | <div> | 1378 | <div> |
1379 | <p class="font-semibold">Hitney Wouston</p> | 1379 | <p class="font-semibold">Hitney Wouston</p> |
1380 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1380 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1381 | Singer | 1381 | Singer |
1382 | </p> | 1382 | </p> |
1383 | </div> | 1383 | </div> |
1384 | </div> | 1384 | </div> |
1385 | </td> | 1385 | </td> |
1386 | <td class="px-4 py-3 text-sm"> | 1386 | <td class="px-4 py-3 text-sm"> |
1387 | $ 863.45 | 1387 | $ 863.45 |
1388 | </td> | 1388 | </td> |
1389 | <td class="px-4 py-3 text-xs"> | 1389 | <td class="px-4 py-3 text-xs"> |
1390 | <span | 1390 | <span |
1391 | 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" | 1391 | 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" |
1392 | > | 1392 | > |
1393 | Approved | 1393 | Approved |
1394 | </span> | 1394 | </span> |
1395 | </td> | 1395 | </td> |
1396 | <td class="px-4 py-3 text-sm"> | 1396 | <td class="px-4 py-3 text-sm"> |
1397 | 6/10/2020 | 1397 | 6/10/2020 |
1398 | </td> | 1398 | </td> |
1399 | </tr> | 1399 | </tr> |
1400 | 1400 | ||
1401 | <tr class="text-gray-700 dark:text-gray-400"> | 1401 | <tr class="text-gray-700 dark:text-gray-400"> |
1402 | <td class="px-4 py-3"> | 1402 | <td class="px-4 py-3"> |
1403 | <div class="flex items-center text-sm"> | 1403 | <div class="flex items-center text-sm"> |
1404 | 1404 | ||
1405 | <div | 1405 | <div |
1406 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1406 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1407 | > | 1407 | > |
1408 | <img | 1408 | <img |
1409 | class="object-cover w-full h-full rounded-full" | 1409 | class="object-cover w-full h-full rounded-full" |
1410 | 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" | 1410 | 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" |
1411 | alt="" | 1411 | alt="" |
1412 | loading="lazy" | 1412 | loading="lazy" |
1413 | /> | 1413 | /> |
1414 | <div | 1414 | <div |
1415 | class="absolute inset-0 rounded-full shadow-inner" | 1415 | class="absolute inset-0 rounded-full shadow-inner" |
1416 | aria-hidden="true" | 1416 | aria-hidden="true" |
1417 | ></div> | 1417 | ></div> |
1418 | </div> | 1418 | </div> |
1419 | <div> | 1419 | <div> |
1420 | <p class="font-semibold">Hans Burger</p> | 1420 | <p class="font-semibold">Hans Burger</p> |
1421 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1421 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1422 | 10x Developer | 1422 | 10x Developer |
1423 | </p> | 1423 | </p> |
1424 | </div> | 1424 | </div> |
1425 | </div> | 1425 | </div> |
1426 | </td> | 1426 | </td> |
1427 | <td class="px-4 py-3 text-sm"> | 1427 | <td class="px-4 py-3 text-sm"> |
1428 | $ 863.45 | 1428 | $ 863.45 |
1429 | </td> | 1429 | </td> |
1430 | <td class="px-4 py-3 text-xs"> | 1430 | <td class="px-4 py-3 text-xs"> |
1431 | <span | 1431 | <span |
1432 | 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" | 1432 | 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" |
1433 | > | 1433 | > |
1434 | Approved | 1434 | Approved |
1435 | </span> | 1435 | </span> |
1436 | </td> | 1436 | </td> |
1437 | <td class="px-4 py-3 text-sm"> | 1437 | <td class="px-4 py-3 text-sm"> |
1438 | 6/10/2020 | 1438 | 6/10/2020 |
1439 | </td> | 1439 | </td> |
1440 | </tr> | 1440 | </tr> |
1441 | </tbody> | 1441 | </tbody> |
1442 | </table> | 1442 | </table> |
1443 | </div> | 1443 | </div> |
1444 | <div | 1444 | <div |
1445 | 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" | 1445 | 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" |
1446 | > | 1446 | > |
1447 | <span class="flex items-center col-span-3"> | 1447 | <span class="flex items-center col-span-3"> |
1448 | Showing 21-30 of 100 | 1448 | Showing 21-30 of 100 |
1449 | </span> | 1449 | </span> |
1450 | <span class="col-span-2"></span> | 1450 | <span class="col-span-2"></span> |
1451 | 1451 | ||
1452 | <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> | 1452 | <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> |
1453 | <nav aria-label="Table navigation"> | 1453 | <nav aria-label="Table navigation"> |
1454 | <ul class="inline-flex items-center"> | 1454 | <ul class="inline-flex items-center"> |
1455 | <li> | 1455 | <li> |
1456 | <button | 1456 | <button |
1457 | class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" | 1457 | class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" |
1458 | aria-label="Previous" | 1458 | aria-label="Previous" |
1459 | > | 1459 | > |
1460 | <svg | 1460 | <svg |
1461 | aria-hidden="true" | 1461 | aria-hidden="true" |
1462 | class="w-4 h-4 fill-current" | 1462 | class="w-4 h-4 fill-current" |
1463 | viewBox="0 0 20 20" | 1463 | viewBox="0 0 20 20" |
1464 | > | 1464 | > |
1465 | <path | 1465 | <path |
1466 | 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" | 1466 | 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" |
1467 | clip-rule="evenodd" | 1467 | clip-rule="evenodd" |
1468 | fill-rule="evenodd" | 1468 | fill-rule="evenodd" |
1469 | ></path> | 1469 | ></path> |
1470 | </svg> | 1470 | </svg> |
1471 | </button> | 1471 | </button> |
1472 | </li> | 1472 | </li> |
1473 | <li> | 1473 | <li> |
1474 | <button | 1474 | <button |
1475 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 1475 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
1476 | > | 1476 | > |
1477 | 1 | 1477 | 1 |
1478 | </button> | 1478 | </button> |
1479 | </li> | 1479 | </li> |
1480 | <li> | 1480 | <li> |
1481 | <button | 1481 | <button |
1482 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 1482 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
1483 | > | 1483 | > |
1484 | 2 | 1484 | 2 |
1485 | </button> | 1485 | </button> |
1486 | </li> | 1486 | </li> |
1487 | <li> | 1487 | <li> |
1488 | <button | 1488 | <button |
1489 | 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" | 1489 | 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" |
1490 | > | 1490 | > |
1491 | 3 | 1491 | 3 |
1492 | </button> | 1492 | </button> |
1493 | </li> | 1493 | </li> |
1494 | <li> | 1494 | <li> |
1495 | <button | 1495 | <button |
1496 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 1496 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
1497 | > | 1497 | > |
1498 | 4 | 1498 | 4 |
1499 | </button> | 1499 | </button> |
1500 | </li> | 1500 | </li> |
1501 | <li> | 1501 | <li> |
1502 | <span class="px-3 py-1">...</span> | 1502 | <span class="px-3 py-1">...</span> |
1503 | </li> | 1503 | </li> |
1504 | <li> | 1504 | <li> |
1505 | <button | 1505 | <button |
1506 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 1506 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
1507 | > | 1507 | > |
1508 | 8 | 1508 | 8 |
1509 | </button> | 1509 | </button> |
1510 | </li> | 1510 | </li> |
1511 | <li> | 1511 | <li> |
1512 | <button | 1512 | <button |
1513 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 1513 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
1514 | > | 1514 | > |
1515 | 9 | 1515 | 9 |
1516 | </button> | 1516 | </button> |
1517 | </li> | 1517 | </li> |
1518 | <li> | 1518 | <li> |
1519 | <button | 1519 | <button |
1520 | class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" | 1520 | class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" |
1521 | aria-label="Next" | 1521 | aria-label="Next" |
1522 | > | 1522 | > |
1523 | <svg | 1523 | <svg |
1524 | class="w-4 h-4 fill-current" | 1524 | class="w-4 h-4 fill-current" |
1525 | aria-hidden="true" | 1525 | aria-hidden="true" |
1526 | viewBox="0 0 20 20" | 1526 | viewBox="0 0 20 20" |
1527 | > | 1527 | > |
1528 | <path | 1528 | <path |
1529 | 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" | 1529 | 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" |
1530 | clip-rule="evenodd" | 1530 | clip-rule="evenodd" |
1531 | fill-rule="evenodd" | 1531 | fill-rule="evenodd" |
1532 | ></path> | 1532 | ></path> |
1533 | </svg> | 1533 | </svg> |
1534 | </button> | 1534 | </button> |
1535 | </li> | 1535 | </li> |
1536 | </ul> | 1536 | </ul> |
1537 | </nav> | 1537 | </nav> |
1538 | </span> | 1538 | </span> |
1539 | </div> | 1539 | </div> |
1540 | </div> | 1540 | </div> |
1541 | --> | 1541 | --> |
1542 | <!-- Charts --> | 1542 | <!-- Charts --> |
1543 | <!-- | 1543 | <!-- |
1544 | <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"> | 1544 | <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"> |
1545 | Графики | 1545 | Графики |
1546 | </h2> | 1546 | </h2> |
1547 | <div class="grid gap-6 mb-8 md:grid-cols-2"> | 1547 | <div class="grid gap-6 mb-8 md:grid-cols-2"> |
1548 | <div | 1548 | <div |
1549 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1549 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1550 | > | 1550 | > |
1551 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> | 1551 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> |
1552 | Revenue | 1552 | Revenue |
1553 | </h4> | 1553 | </h4> |
1554 | <canvas id="pie"></canvas> | 1554 | <canvas id="pie"></canvas> |
1555 | <div | 1555 | <div |
1556 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" | 1556 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" |
1557 | > | 1557 | > |
1558 | 1558 | ||
1559 | <div class="flex items-center"> | 1559 | <div class="flex items-center"> |
1560 | <span | 1560 | <span |
1561 | class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full" | 1561 | class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full" |
1562 | ></span> | 1562 | ></span> |
1563 | <span>Shirts</span> | 1563 | <span>Shirts</span> |
1564 | </div> | 1564 | </div> |
1565 | <div class="flex items-center"> | 1565 | <div class="flex items-center"> |
1566 | <span | 1566 | <span |
1567 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" | 1567 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" |
1568 | ></span> | 1568 | ></span> |
1569 | <span>Shoes</span> | 1569 | <span>Shoes</span> |
1570 | </div> | 1570 | </div> |
1571 | <div class="flex items-center"> | 1571 | <div class="flex items-center"> |
1572 | <span | 1572 | <span |
1573 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" | 1573 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" |
1574 | ></span> | 1574 | ></span> |
1575 | <span>Bags</span> | 1575 | <span>Bags</span> |
1576 | </div> | 1576 | </div> |
1577 | </div> | 1577 | </div> |
1578 | </div> | 1578 | </div> |
1579 | <div | 1579 | <div |
1580 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1580 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1581 | > | 1581 | > |
1582 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> | 1582 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> |
1583 | Traffic | 1583 | Traffic |
1584 | </h4> | 1584 | </h4> |
1585 | <canvas id="line"></canvas> | 1585 | <canvas id="line"></canvas> |
1586 | <div | 1586 | <div |
1587 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" | 1587 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" |
1588 | > | 1588 | > |
1589 | 1589 | ||
1590 | <div class="flex items-center"> | 1590 | <div class="flex items-center"> |
1591 | <span | 1591 | <span |
1592 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" | 1592 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" |
1593 | ></span> | 1593 | ></span> |
1594 | <span>Organic</span> | 1594 | <span>Organic</span> |
1595 | </div> | 1595 | </div> |
1596 | <div class="flex items-center"> | 1596 | <div class="flex items-center"> |
1597 | <span | 1597 | <span |
1598 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" | 1598 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" |
1599 | ></span> | 1599 | ></span> |
1600 | <span>Paid</span> | 1600 | <span>Paid</span> |
1601 | </div> | 1601 | </div> |
1602 | </div> | 1602 | </div> |
1603 | </div> | 1603 | </div> |
1604 | </div> | 1604 | </div> |
1605 | --> | 1605 | --> |
1606 | </div> | 1606 | </div> |
1607 | </main> | 1607 | </main> |
1608 | </div> | 1608 | </div> |
1609 | </div> | 1609 | </div> |
1610 | </body> | 1610 | </body> |
1611 | @yield('script') | 1611 | @yield('script') |
1612 | </html> | 1612 | </html> |
1613 | 1613 |
routes/web.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | use App\Http\Controllers\Admin\AdminController; | 3 | use App\Http\Controllers\Admin\AdminController; |
4 | use App\Http\Controllers\Admin\CategoryController; | ||
4 | use App\Http\Controllers\Admin\EmployersController; | 5 | use App\Http\Controllers\Admin\EmployersController; |
5 | use App\Http\Controllers\Admin\UsersController; | 6 | use App\Http\Controllers\Admin\UsersController; |
6 | use App\Http\Controllers\Admin\WorkersController; | 7 | use App\Http\Controllers\Admin\WorkersController; |
7 | use App\Http\Controllers\Auth\LoginController; | 8 | use App\Http\Controllers\Auth\LoginController; |
8 | use App\Http\Controllers\Auth\RegisterController; | 9 | use App\Http\Controllers\Auth\RegisterController; |
9 | use App\Models\User; | 10 | use App\Models\User; |
10 | use App\Http\Controllers\MainController; | 11 | use App\Http\Controllers\MainController; |
11 | use App\Http\Controllers\HomeController; | 12 | use App\Http\Controllers\HomeController; |
12 | use Illuminate\Support\Facades\Route; | 13 | use Illuminate\Support\Facades\Route; |
13 | 14 | ||
14 | /* | 15 | /* |
15 | |-------------------------------------------------------------------------- | 16 | |-------------------------------------------------------------------------- |
16 | | Web Routes | 17 | | Web Routes |
17 | |-------------------------------------------------------------------------- | 18 | |-------------------------------------------------------------------------- |
18 | | | 19 | | |
19 | | Here is where you can register web routes for your application. These | 20 | | Here is where you can register web routes for your application. These |
20 | | routes are loaded by the RouteServiceProvider within a group which | 21 | | routes are loaded by the RouteServiceProvider within a group which |
21 | | contains the "web" middleware group. Now create something great! | 22 | | contains the "web" middleware group. Now create something great! |
22 | | | 23 | | |
23 | */ | 24 | */ |
24 | /* | 25 | /* |
25 | Route::get('/', function () { | 26 | Route::get('/', function () { |
26 | return view('welcome'); | 27 | return view('welcome'); |
27 | })->name('index'); | 28 | })->name('index'); |
28 | */ | 29 | */ |
29 | Route::get('/', [MainController::class, 'index'])->name('index'); | 30 | Route::get('/', [MainController::class, 'index'])->name('index'); |
30 | 31 | ||
31 | //Роуты авторизации, регистрации, восстановления, аутентификации | 32 | //Роуты авторизации, регистрации, восстановления, аутентификации |
32 | Auth::routes(['verify' => true]); | 33 | Auth::routes(['verify' => true]); |
33 | //Личный кабинет пользователя | 34 | //Личный кабинет пользователя |
34 | Route::get('/home', [HomeController::class, 'index'])->name('home'); | 35 | Route::get('/home', [HomeController::class, 'index'])->name('home'); |
35 | 36 | ||
36 | /* | 37 | /* |
37 | Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) { | 38 | Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) { |
38 | $user = User::where('email',$request->input('email'))->first(); | 39 | $user = User::where('email',$request->input('email'))->first(); |
39 | 40 | ||
40 | $user->sendEmailVerificationNotification(); | 41 | $user->sendEmailVerificationNotification(); |
41 | 42 | ||
42 | return 'your response'; | 43 | return 'your response'; |
43 | })->middleware('throttle:6,1')->name('verification.resend'); | 44 | })->middleware('throttle:6,1')->name('verification.resend'); |
44 | */ | 45 | */ |
45 | 46 | ||
46 | // Авторизация, регистрация в админку | 47 | // Авторизация, регистрация в админку |
47 | Route::group([ | 48 | Route::group([ |
48 | 'as' => 'admin.', // имя маршрута, например auth.index | 49 | 'as' => 'admin.', // имя маршрута, например auth.index |
49 | 'prefix' => 'admin', // префикс маршрута, например auth/index | 50 | 'prefix' => 'admin', // префикс маршрута, например auth/index |
50 | 'middleware' => ['guest'], | 51 | 'middleware' => ['guest'], |
51 | ], function () { | 52 | ], function () { |
52 | // Форма регистрации | 53 | // Форма регистрации |
53 | Route::get('register', [AdminController::class, 'register'])->name('register'); | 54 | Route::get('register', [AdminController::class, 'register'])->name('register'); |
54 | 55 | ||
55 | // Создание пользователя | 56 | // Создание пользователя |
56 | Route::post('register', [AdminController::class, 'create'])->name('create'); | 57 | Route::post('register', [AdminController::class, 'create'])->name('create'); |
57 | //Форма входа | 58 | //Форма входа |
58 | Route::get('login', [AdminController::class, 'login'])->name('login'); | 59 | Route::get('login', [AdminController::class, 'login'])->name('login'); |
59 | 60 | ||
60 | // аутентификация | 61 | // аутентификация |
61 | Route::post('login', [AdminController::class, 'autenticate'])->name('auth'); | 62 | Route::post('login', [AdminController::class, 'autenticate'])->name('auth'); |
62 | 63 | ||
63 | }); | 64 | }); |
64 | 65 | ||
65 | // Личный кабинет админки | 66 | // Личный кабинет админки |
66 | Route::group([ | 67 | Route::group([ |
67 | 'as' => 'admin.', // имя маршрута, например auth.index | 68 | 'as' => 'admin.', // имя маршрута, например auth.index |
68 | 'prefix' => 'admin', // префикс маршрута, например auth/index | 69 | 'prefix' => 'admin', // префикс маршрута, например auth/index |
69 | 'middleware' => ['auth'], ['admin'], | 70 | 'middleware' => ['auth'], ['admin'], |
70 | ], function() { | 71 | ], function() { |
71 | 72 | ||
72 | // выход | 73 | // выход |
73 | Route::get('logout', [AdminController::class, 'logout'])->name('logout'); | 74 | Route::get('logout', [AdminController::class, 'logout'])->name('logout'); |
74 | 75 | ||
75 | // кабинет главная страница | 76 | // кабинет главная страница |
76 | Route::get('cabinet', [AdminController::class, 'index'])->name('index'); | 77 | Route::get('cabinet', [AdminController::class, 'index'])->name('index'); |
77 | 78 | ||
78 | // кабинет профиль админа - форма | 79 | // кабинет профиль админа - форма |
79 | Route::get('profile', [AdminController::class, 'profile'])->name('profile'); | 80 | Route::get('profile', [AdminController::class, 'profile'])->name('profile'); |
80 | // кабинет профиль админа - сохранение формы | 81 | // кабинет профиль админа - сохранение формы |
81 | Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile'); | 82 | Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile'); |
82 | 83 | ||
83 | // кабинет профиль - форма пароли | 84 | // кабинет профиль - форма пароли |
84 | Route::get('password', [AdminController::class, 'profile_password'])->name('password'); | 85 | Route::get('password', [AdminController::class, 'profile_password'])->name('password'); |
85 | // кабинет профиль - сохранение формы пароля | 86 | // кабинет профиль - сохранение формы пароля |
86 | Route::post('password', [AdminController::class, 'profile_password_new'])->name('password'); | 87 | Route::post('password', [AdminController::class, 'profile_password_new'])->name('password'); |
87 | 88 | ||
88 | 89 | ||
89 | // кабинет профиль пользователя - форма | 90 | // кабинет профиль пользователя - форма |
90 | Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile'); | 91 | Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile'); |
91 | // кабинет профиль пользователя - сохранение формы | 92 | // кабинет профиль пользователя - сохранение формы |
92 | Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile'); | 93 | Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile'); |
93 | 94 | ||
94 | // кабинет профиль работодатель - форма | 95 | // кабинет профиль работодатель - форма |
95 | Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile'); | 96 | Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile'); |
97 | // кабинет профиль работодатель - сохранение формы | ||
98 | Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile'); | ||
99 | |||
96 | // кабинет профиль работник - форма | 100 | // кабинет профиль работник - форма |
97 | Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile'); | 101 | Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile'); |
98 | 102 | ||
99 | // кабинет настройки - форма | 103 | // кабинет настройки - форма |
100 | Route::get('config', [AdminController::class, 'config_form'])->name('config'); | 104 | Route::get('config', [AdminController::class, 'config_form'])->name('config'); |
101 | // кабинет настройки сохранение формы | 105 | // кабинет настройки сохранение формы |
102 | Route::post('config', [AdminController::class, 'store_config'])->name('store_config'); | 106 | Route::post('config', [AdminController::class, 'store_config'])->name('store_config'); |
103 | 107 | ||
104 | // кабинет - пользователи | 108 | // кабинет - пользователи |
105 | Route::get('users', [UsersController::class, 'index'])->name('users'); | 109 | Route::get('users', [UsersController::class, 'index'])->name('users'); |
106 | 110 | ||
107 | // кабинет - пользователи | 111 | // кабинет - пользователи |
108 | Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users'); | 112 | Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users'); |
109 | 113 | ||
110 | // кабинет - работодатели | 114 | // кабинет - работодатели |
111 | Route::get('employers', [EmployersController::class, 'index'])->name('employers'); | 115 | Route::get('employers', [EmployersController::class, 'index'])->name('employers'); |
112 | 116 | ||
113 | // кабинет - соискатели | 117 | // кабинет - соискатели |
114 | Route::get('workers', [WorkersController::class, 'index'])->name('workers'); | 118 | Route::get('workers', [WorkersController::class, 'index'])->name('workers'); |
115 | 119 | ||
116 | // кабинет - вакансии | 120 | // кабинет - вакансии |
117 | Route::get('ad-employers', [AdminController::class, 'index'])->name('ad-employers'); | 121 | Route::get('ad-employers', [AdminController::class, 'index'])->name('ad-employers'); |
118 | 122 | ||
119 | // кабинет - категории | 123 | // кабинет - категории |
120 | Route::get('categories', [AdminController::class, 'index'])->name('categories'); | 124 | //Route::get('categories', [AdminController::class, 'index'])->name('categories'); |
125 | /* | ||
126 | * CRUD-операции над настройками Компании | ||
127 | */ | ||
128 | Route::resource('categories', CategoryController::class, ['except' => ['show']]); | ||
129 | |||
121 | 130 | ||
122 | // кабинет - должности | 131 | // кабинет - должности |
123 | Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles'); | 132 | Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles'); |
124 | 133 | ||
125 | // кабинет - сообщения | 134 | // кабинет - сообщения |
126 | Route::get('messages', [AdminController::class, 'index'])->name('messages'); | 135 | Route::get('messages', [AdminController::class, 'index'])->name('messages'); |
127 | 136 | ||
128 | // кабинет - группы пользователей | 137 | // кабинет - группы пользователей |
129 | Route::get('groups', [AdminController::class, 'index'])->name('groups'); | 138 | Route::get('groups', [AdminController::class, 'index'])->name('groups'); |
130 | 139 | ||
131 | // кабинет - список админов | 140 | // кабинет - список админов |
132 | Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin'); | 141 | Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin'); |
133 | }); | 142 | }); |
134 | 143 |