Commit 313a7a805990c406a66597fdada982544d6a4aa9

Authored by Андрей Ларионов
1 parent 251aff93ae

Работа с разделом база данных, экспорт в эксель

Showing 20 changed files with 1653 additions and 5 deletions Inline Diff

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\Ad_employer; 6 use App\Models\Ad_employer;
7 use App\Models\Answer; 7 use App\Models\Answer;
8 use App\Models\CategoryEmp; 8 use App\Models\CategoryEmp;
9 use App\Models\Employer; 9 use App\Models\Employer;
10 use App\Models\Static_ad; 10 use App\Models\Static_ad;
11 use App\Models\User; 11 use App\Models\User;
12 use Illuminate\Http\Request; 12 use Illuminate\Http\Request;
13 use Illuminate\Support\Facades\DB; 13 use Illuminate\Support\Facades\DB;
14 use Illuminate\Support\Facades\Storage; 14 use Illuminate\Support\Facades\Storage;
15 use Illuminate\Support\Facades\Validator; 15 use Illuminate\Support\Facades\Validator;
16 16
17 class EmployersController extends Controller 17 class EmployersController extends Controller
18 { 18 {
19 public function index(Request $request) { 19 public function index(Request $request) {
20 //$all_employer = User::where('is_worker', '0')->count(); 20 //$all_employer = User::where('is_worker', '0')->count();
21 21
22 if ($request->ajax()) { 22 if ($request->ajax()) {
23 $user = User::find($request->id); 23 $user = User::find($request->id);
24 $request->offsetUnset('id'); 24 $request->offsetUnset('id');
25 $user->update($request->all()); 25 $user->update($request->all());
26 } 26 }
27 27
28 $users = User::with('employers')->select(['users.*','users.id as usr_id', 'emp.id as emp_id', 'emp.*'])->join('employers as emp','emp.user_id','users.id') 28 $users = User::with('employers')->select(['users.*','users.id as usr_id', 'emp.id as emp_id', 'emp.*'])->join('employers as emp','emp.user_id','users.id')
29 ->where('users.is_worker', '0'); 29 ->where('users.is_worker', '0')->Realuser();
30 $all_employer = $users->count(); 30 $all_employer = $users->count();
31 31
32 $find_cat = ""; 32 $find_cat = "";
33 if (isset($request->category)) { 33 if (isset($request->category)) {
34 if ($request->category != 'Все категории') { 34 if ($request->category != 'Все категории') {
35 $users = $users->where('category', '=', $request->category); 35 $users = $users->where('category', '=', $request->category);
36 $find_cat = $request->category; 36 $find_cat = $request->category;
37 } 37 }
38 } 38 }
39 $find_key = ""; 39 $find_key = "";
40 40
41 if (isset($request->find)) { 41 if (isset($request->find)) {
42 $find_key = $request->find; 42 $find_key = $request->find;
43 $users = $users->where(function($query) use($find_key) { 43 $users = $users->where(function($query) use($find_key) {
44 $query->Where('users.name', 'LIKE', "%$find_key%") 44 $query->Where('users.name', 'LIKE', "%$find_key%")
45 ->orWhere('emp.email', 'LIKE', "%$find_key%") 45 ->orWhere('emp.email', 'LIKE', "%$find_key%")
46 ->orWhere('emp.telephone', 'LIKE', "%$find_key%"); 46 ->orWhere('emp.telephone', 'LIKE', "%$find_key%");
47 }); 47 });
48 } 48 }
49 49
50 //DB::enableQueryLog(); 50 //DB::enableQueryLog();
51 $users = $users->paginate(15); 51 $users = $users->paginate(15);
52 //dd(DB::getQueryLog()); 52 //dd(DB::getQueryLog());
53 53
54 $select_category = CategoryEmp::query()->active()->get(); 54 $select_category = CategoryEmp::query()->active()->get();
55 55
56 if ($request->ajax()) { 56 if ($request->ajax()) {
57 return view('admin.employer.index_ajax', compact('users')); 57 return view('admin.employer.index_ajax', compact('users'));
58 } else { 58 } else {
59 return view('admin.employer.index', compact('users', 'find_key', 'find_cat', 'all_employer', 'select_category')); 59 return view('admin.employer.index', compact('users', 'find_key', 'find_cat', 'all_employer', 'select_category'));
60 } 60 }
61 } 61 }
62 62
63 public function form_update_employer(Employer $employer) { 63 public function form_update_employer(Employer $employer) {
64 $select_category = CategoryEmp::query()->active()->get(); 64 $select_category = CategoryEmp::query()->active()->get();
65 return view('admin.employer.edit', compact('employer', 'select_category')); 65 return view('admin.employer.edit', compact('employer', 'select_category'));
66 } 66 }
67 67
68 public function update_employer(Employer $employer, Request $request) 68 public function update_employer(Employer $employer, Request $request)
69 { 69 {
70 $params = $request->all(); 70 $params = $request->all();
71 unset($params['logo']); 71 unset($params['logo']);
72 unset($params['telephone']); 72 unset($params['telephone']);
73 unset($params['email']); 73 unset($params['email']);
74 unset($params['address']); 74 unset($params['address']);
75 unset($params['site']); 75 unset($params['site']);
76 unset($params['status_hidden']); 76 unset($params['status_hidden']);
77 unset($params['oficial_status']); 77 unset($params['oficial_status']);
78 unset($params['social_is']); 78 unset($params['social_is']);
79 unset($params['sending_is']); 79 unset($params['sending_is']);
80 unset($params['category']); 80 unset($params['category']);
81 unset($params['comment_admin']); 81 unset($params['comment_admin']);
82 82
83 $rules = [ 83 $rules = [
84 'name' => 'required|string|max:255', 84 'name' => 'required|string|max:255',
85 ]; 85 ];
86 86
87 $messages = [ 87 $messages = [
88 'required' => 'Укажите обязательное поле «:attribute»', 88 'required' => 'Укажите обязательное поле «:attribute»',
89 'confirmed' => 'Пароли не совпадают', 89 'confirmed' => 'Пароли не совпадают',
90 'email' => 'Введите корректный email', 90 'email' => 'Введите корректный email',
91 'min' => [ 91 'min' => [
92 'string' => 'Поле «:attribute» должно быть не меньше :min символов', 92 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
93 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' 93 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
94 ], 94 ],
95 'max' => [ 95 'max' => [
96 'string' => 'Поле «:attribute» должно быть не больше :max символов', 96 'string' => 'Поле «:attribute» должно быть не больше :max символов',
97 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' 97 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
98 ], 98 ],
99 ]; 99 ];
100 100
101 $validator = Validator::make($params, $rules, $messages); 101 $validator = Validator::make($params, $rules, $messages);
102 102
103 if ($validator->fails()) { 103 if ($validator->fails()) {
104 return back()->withErrors($validator)->withInput(); //->route('admin.register') 104 return back()->withErrors($validator)->withInput(); //->route('admin.register')
105 105
106 } else { 106 } else {
107 107
108 //$user = User::find($employer->user_id); 108 //$user = User::find($employer->user_id);
109 $user_id = $employer->user_id; 109 $user_id = $employer->user_id;
110 $employer->telephone = $request->telephone; 110 $employer->telephone = $request->telephone;
111 $employer->email = $request->email; 111 $employer->email = $request->email;
112 $employer->address = $request->address; 112 $employer->address = $request->address;
113 $employer->site = $request->site; 113 $employer->site = $request->site;
114 $employer->text = $request->text; 114 $employer->text = $request->text;
115 $employer->status_hidden = $request->status_hidden; 115 $employer->status_hidden = $request->status_hidden;
116 $employer->oficial_status = $request->oficial_status; 116 $employer->oficial_status = $request->oficial_status;
117 $employer->social_is = $request->social_is; 117 $employer->social_is = $request->social_is;
118 $employer->sending_is = $request->sending_is; 118 $employer->sending_is = $request->sending_is;
119 $employer->category = $request->category; 119 $employer->category = $request->category;
120 $employer->comment_admin = $request->comment_admin; 120 $employer->comment_admin = $request->comment_admin;
121 121
122 if ($request->has('logo')) { 122 if ($request->has('logo')) {
123 if (!empty($employer->logo)) { 123 if (!empty($employer->logo)) {
124 Storage::delete($employer->logo); 124 Storage::delete($employer->logo);
125 } 125 }
126 $employer->logo = $request->file('logo')->store("employer/$user_id", 'public'); 126 $employer->logo = $request->file('logo')->store("employer/$user_id", 'public');
127 } 127 }
128 $employer->save(); 128 $employer->save();
129 129
130 $user = User::find($user_id); 130 $user = User::find($user_id);
131 $user->update($params); 131 $user->update($params);
132 132
133 return redirect()->route('admin.employer-profile', ['employer' => $employer->id]) 133 return redirect()->route('admin.employer-profile', ['employer' => $employer->id])
134 ->with('success', 'Данные были успешно сохранены'); 134 ->with('success', 'Данные были успешно сохранены');
135 } 135 }
136 } 136 }
137 137
138 // Удаление работодателя, вакансий и профиля юзера 138 // Удаление работодателя, вакансий и профиля юзера
139 public function delete_employer(Employer $employer, User $user) { 139 public function delete_employer(Employer $employer, User $user) {
140 try { 140 try {
141 if (!empty($employer)) { 141 if (!empty($employer)) {
142 $employer->ads()->delete(); 142 $employer->ads()->delete();
143 if (!empty($employer->logo)) { 143 if (!empty($employer->logo)) {
144 Storage::delete($employer->logo); 144 Storage::delete($employer->logo);
145 } 145 }
146 $employer->delete(); 146 $employer->delete();
147 } 147 }
148 } finally { 148 } finally {
149 $user->delete(); 149 $user->delete();
150 } 150 }
151 151
152 return redirect()->route('admin.employers')->with('success', 'Данные были удалены о работодателе'); 152 return redirect()->route('admin.employers')->with('success', 'Данные были удалены о работодателе');
153 } 153 }
154 154
155 // кабинет - отзывы о работодателе для модерации 155 // кабинет - отзывы о работодателе для модерации
156 public function answers(Request $request) { 156 public function answers(Request $request) {
157 if ($request->ajax()) { 157 if ($request->ajax()) {
158 $user = Answer::find($request->id); 158 $user = Answer::find($request->id);
159 $request->offsetUnset('id'); 159 $request->offsetUnset('id');
160 $user->update($request->all()); 160 $user->update($request->all());
161 } 161 }
162 162
163 $answers = Answer::query()->orderByDesc('id')->paginate(15); 163 $answers = Answer::query()->orderByDesc('id')->paginate(15);
164 164
165 if ($request->ajax()) { 165 if ($request->ajax()) {
166 return view('admin.answers.index_ajax', compact('answers')); 166 return view('admin.answers.index_ajax', compact('answers'));
167 } else { 167 } else {
168 return view('admin.answers.index', compact('answers')); 168 return view('admin.answers.index', compact('answers'));
169 } 169 }
170 } 170 }
171 171
172 // кабинет - статистика вакансий работодателя 172 // кабинет - статистика вакансий работодателя
173 public function static_ads(Request $request) { 173 public function static_ads(Request $request) {
174 $stat = Static_ad::with('ads'); 174 $stat = Static_ad::with('ads');
175 $ads = Ad_employer::query()->active()->OrderBy('id')->get(); 175 $ads = Ad_employer::query()->active()->OrderBy('id')->get();
176 $periods = Static_ad::query()->distinct('year_month')->select('year_month')->get(); 176 $periods = Static_ad::query()->distinct('year_month')->select('year_month')->get();
177 if ($request->ajax()) { 177 if ($request->ajax()) {
178 if (isset($request->ad_employer_id)) 178 if (isset($request->ad_employer_id))
179 if (!$request->ad_employer_id == "0") 179 if (!$request->ad_employer_id == "0")
180 $stat = $stat->Where('ad_employer_id', '=', $request->ad_employer_id); 180 $stat = $stat->Where('ad_employer_id', '=', $request->ad_employer_id);
181 if (isset($request->year_month)) { 181 if (isset($request->year_month)) {
182 if (!$request->year_month == "0") 182 if (!$request->year_month == "0")
183 $stat = $stat->Where('year_month', '=', $request->year_month); 183 $stat = $stat->Where('year_month', '=', $request->year_month);
184 } 184 }
185 } 185 }
186 186
187 $stat = $stat->OrderByDesc('year_month'); 187 $stat = $stat->OrderByDesc('year_month');
188 $stat = $stat->paginate(15); 188 $stat = $stat->paginate(15);
189 189
190 if ($request->ajax()) 190 if ($request->ajax())
191 return view('admin.static.index_ads_ajax', compact('stat')); 191 return view('admin.static.index_ads_ajax', compact('stat'));
192 else 192 else
193 return view('admin.static.index_ads', compact('stat', 'ads', 'periods')); 193 return view('admin.static.index_ads', compact('stat', 'ads', 'periods'));
194 194
195 } 195 }
196 196
197 197
198 } 198 }
199 199
app/Http/Controllers/Admin/UsersController.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\Http\Requests\BaseUserRequest;
6 use App\Models\User; 7 use App\Models\User;
7 use Illuminate\Http\Request; 8 use Illuminate\Http\Request;
8 use Illuminate\Support\Facades\Auth; 9 use Illuminate\Support\Facades\Auth;
10 use PhpOffice\PhpSpreadsheet\Spreadsheet;
11 use PhpOffice\PhpSpreadsheet\Style\Alignment;
12 use PhpOffice\PhpSpreadsheet\Style\Border;
13 use PhpOffice\PhpSpreadsheet\Style\Font;
14 use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
9 15
10 class UsersController extends Controller 16 class UsersController extends Controller
11 { 17 {
12 public function index(Request $request) { 18 public function index(Request $request) {
13 $title = 'Админка - Пользователи системы'; 19 $title = 'Админка - Пользователи системы';
14 $id_admin = Auth::user()->id; 20 $id_admin = Auth::user()->id;
15 if ($request->ajax()) { 21 if ($request->ajax()) {
16 $user = User::find($request->id); 22 $user = User::find($request->id);
17 $request->offsetUnset('id'); 23 $request->offsetUnset('id');
18 $user->update($request->all()); 24 $user->update($request->all());
19 } 25 }
20 $find_key = ""; 26 $find_key = "";
21 $users = User::query(); 27 $users = User::query();
22 if (isset($request->find)) { 28 if (isset($request->find)) {
23 $find_key = $request->find; 29 $find_key = $request->find;
24 $users = $users->where('name', 'LIKE', "%$find_key%") 30 $users = $users->where('name', 'LIKE', "%$find_key%")
25 ->orWhere('email', 'LIKE', "%$find_key%"); 31 ->orWhere('email', 'LIKE', "%$find_key%");
26 } 32 }
27 $users = $users->paginate(15); 33 $users = $users->paginate(15);
28 34
29 if ($request->ajax()) { 35 if ($request->ajax()) {
30 return view('admin.users.index_ajax', compact('users', 'id_admin')); 36 return view('admin.users.index_ajax', compact('users', 'id_admin'));
31 } else { 37 } else {
32 return view('admin.users.index', compact('users', 'title', 'id_admin', 'find_key')); 38 return view('admin.users.index', compact('users', 'title', 'id_admin', 'find_key'));
33 } 39 }
34 } 40 }
35 41
42 public function index_bd(Request $request) {
43 $title = 'Админка - Пользователи базы данных';
44
45 $find_key = "";
46 $users = User::query();
47 if (isset($request->find)) {
48 $find_key = $request->find;
49 $users = $users->where('name', 'LIKE', "%$find_key%")
50 ->orWhere('email', 'LIKE', "%$find_key%")
51 ->orWhere('telephone', 'LIKE', "%$find_key%");
52 }
53
54 $users = $users->Baseuser()->paginate(15);
55
56 if ($request->ajax()) {
57 return view('admin.users.index_bd_ajax', compact('users'));
58 } else {
59 return view('admin.users.index_bd', compact('users', 'title', 'find_key'));
60 }
61 }
62
63 public function add_bd() {
64 return view('admin.users.add');
65 }
66
67 public function add_store_bd(BaseUserRequest $request) {
68 $params = $request->all();
69 $user = User::create($params);
70 return redirect()->route('admin.worker-profile-add', ['user' => $user]);
71 }
72
73 public function edit_bd(User $user) {
74 return view('admin.users.edit', compact('user'));
75 }
76
77 public function update_bd(BaseUserRequest $request, User $user) {
78 $params = $request->all();
79 $user->update($params);
80 return redirect()->route('admin.basedata');
81 }
82
83 public function destroy_bd(User $user) {
84 $user->delete();
85 return redirect()->route('admin.basedata');
86 }
87
36 public function roles(Request $request) { 88 public function roles(Request $request) {
37 if ($request->ajax()) { 89 if ($request->ajax()) {
38 $user = User::find($request->id); 90 $user = User::find($request->id);
39 $request->offsetUnset('id'); 91 $request->offsetUnset('id');
40 $user->update($request->all()); 92 $user->update($request->all());
41 } 93 }
42 94
43 $users = User::query()->paginate(15); 95 $users = User::query()->Realuser()->paginate(15);
44 96
45 if ($request->ajax()) { 97 if ($request->ajax()) {
46 return view('admin.users.roles.index_ajax', compact('users')); 98 return view('admin.users.roles.index_ajax', compact('users'));
47 } else { 99 } else {
48 return view('admin.users.roles.index', compact('users')); 100 return view('admin.users.roles.index', compact('users'));
49 } 101 }
50 } 102 }
103
104 public function doc_bd(User $user) {
105 $id = $user->id;
106 $spreadsheet = new Spreadsheet();
107 $activeWorksheet = $spreadsheet->getActiveSheet();
108 $activeWorksheet->setCellValue('A1', 'Отчет по соискателю');
109 $activeWorksheet->getStyle('A1')->applyFromArray([
110 'font' => [
111 'name' => 'Arial',
112 'bold' => true,
113 'italic' => false,
114 'underline' => Font::UNDERLINE_DOUBLE,
115 'strikethrough' => false,
116 'color' => [
117 'rgb' => '808080'
118 ]
119 ],
120 'borders' => [
121 'allBorders' => [
122 'borderStyle' => Border::BORDER_THIN,
123 'color' => [
124 'rgb' => '808080'
125 ]
126 ],
127 ],
128 'alignment' => [
129 'horizontal' => Alignment::HORIZONTAL_CENTER,
130 'vertical' => Alignment::VERTICAL_CENTER,
131 'wrapText' => true,
132 ]
133 ]);
134
135 $activeWorksheet->setCellValue('A2', "Псевдоним/имя: ".$user->name);
136 $activeWorksheet->setCellValue('A3', "Фамилия: ".$user->surname);
137 $activeWorksheet->setCellValue('A4', "Имя: ".$user->name_man);
138 $activeWorksheet->setCellValue('A5', "Отчество: ".$user->surname2);
139 $activeWorksheet->setCellValue('A6', "Телефон: ".$user->telephone);
140 $activeWorksheet->setCellValue('A7', "Емайл: ".$user->email);
141
142 if (isset($user->workers[0]->id)) {
143 $activeWorksheet->setCellValue('A9', "Анкета: ");
144 $activeWorksheet->setCellValue('A10', "Телефон: " . $user->workers[0]->telephone);
145 $activeWorksheet->setCellValue('A11', "Емайл: " . $user->workers[0]->email);
146 }
147
148 if (isset($user->jobtitles[0]->id)) {
149 $activeWorksheet->setCellValue('A12', "Должность: " . $user->jobtitles[0]->name);
150 }
151
152 $writer = new Xlsx($spreadsheet);
153
154 header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
155 header('Content-Disposition: attachment; filename="user'.$id.'.xlsx"');
156 header('Cache-Control: no-cache');
157
158 $writer->save('php://output');
159 $writer->save(storage_path("app/public/export/user$id.xlsx"));
160
161 //$spreadsheet->disconnectWorksheets();
162 return redirect()->route('admin.basedata');
163
164 }
51 } 165 }
52 166
app/Http/Controllers/Admin/WorkersController.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\Http\Requests\WorkerRequest;
6 use App\Models\Company; 7 use App\Models\Company;
7 use App\Models\Job_title; 8 use App\Models\Job_title;
8 use App\Models\Static_worker; 9 use App\Models\Static_worker;
9 use App\Models\User; 10 use App\Models\User;
10 use App\Models\Worker; 11 use App\Models\Worker;
12 use Carbon\Carbon;
11 use Illuminate\Database\Eloquent\Builder; 13 use Illuminate\Database\Eloquent\Builder;
12 use Illuminate\Http\Request; 14 use Illuminate\Http\Request;
13 use Illuminate\Support\Facades\DB; 15 use Illuminate\Support\Facades\DB;
14 use Illuminate\Support\Facades\Storage; 16 use Illuminate\Support\Facades\Storage;
15 use Illuminate\Support\Facades\Validator; 17 use Illuminate\Support\Facades\Validator;
16 18
17 class WorkersController extends Controller 19 class WorkersController extends Controller
18 { 20 {
19 public function index(Request $request) { 21 public function index(Request $request) {
20 if ($request->ajax()) { 22 if ($request->ajax()) {
21 $user = User::find($request->id); 23 $user = User::find($request->id);
22 $request->offsetUnset('id'); 24 $request->offsetUnset('id');
23 $user->update($request->all()); 25 $user->update($request->all());
24 } 26 }
25 27
26 $status_work = Job_title::query()->active()->orderBy('name')->get(); 28 $status_work = Job_title::query()->active()->orderBy('name')->get();
27 $users = User::with('jobtitles')->where('is_worker', '1'); 29 $users = User::with('jobtitles')->where('is_worker', '1');
28 30
29 $find_status_work = ""; 31 $find_status_work = "";
30 if (isset($request->status_work)) { 32 if (isset($request->status_work)) {
31 $find_status_work = $request->status_work; 33 $find_status_work = $request->status_work;
32 //$users = $users->where('position_work', '=', $find_status_work); 34 //$users = $users->where('position_work', '=', $find_status_work);
33 35
34 /*if ($request->status_work > 0) 36 /*if ($request->status_work > 0)
35 $users = $users->with(['workers' => function($query) use ($find_status_work){ 37 $users = $users->with(['workers' => function($query) use ($find_status_work){
36 $query->where('position_work', $find_status_work); 38 $query->where('position_work', $find_status_work);
37 }]); 39 }]);
38 else 40 else
39 $users = $users->with('workers');*/ 41 $users = $users->with('workers');*/
40 42
41 /*$users = $users->where(function($query) use($find_status_work) { 43 /*$users = $users->where(function($query) use($find_status_work) {
42 $query->with(['workers' => function($query1) use ($find_status_work){ 44 $query->with(['workers' => function($query1) use ($find_status_work){
43 $query1->where('position_work', $find_status_work); 45 $query1->where('position_work', $find_status_work);
44 }]); 46 }]);
45 });*/ 47 });*/
46 if ($request->status_work > 0) { 48 if ($request->status_work > 0) {
47 $users = $users->with('workers')-> 49 $users = $users->with('workers')->
48 whereHas('workers', 50 whereHas('workers',
49 function (Builder $query) use ($find_status_work) { 51 function (Builder $query) use ($find_status_work) {
50 $query->where('position_work', $find_status_work); 52 $query->where('position_work', $find_status_work);
51 } 53 }
52 ); 54 );
53 } else { 55 } else {
54 $users = $users->with('workers'); 56 $users = $users->with('workers');
55 } 57 }
56 58
57 } else { 59 } else {
58 $users = $users->with('workers'); 60 $users = $users->with('workers');
59 } 61 }
60 62
61 $find_key = ""; 63 $find_key = "";
62 if (isset($request->find)) { 64 if (isset($request->find)) {
63 $find_key = $request->find; 65 $find_key = $request->find;
64 $users = $users->where(function($query) use($find_key) { 66 $users = $users->where(function($query) use($find_key) {
65 $query->Where('name_man', 'LIKE', "%$find_key%") 67 $query->Where('name_man', 'LIKE', "%$find_key%")
66 ->orWhere('email', 'LIKE', "%$find_key%") 68 ->orWhere('email', 'LIKE', "%$find_key%")
67 ->orWhere('telephone', 'LIKE', "%$find_key%") 69 ->orWhere('telephone', 'LIKE', "%$find_key%")
68 ->orWhere('surname', 'LIKE', "%$find_key%") 70 ->orWhere('surname', 'LIKE', "%$find_key%")
69 ->orWhere('surname2', 'LIKE', "%$find_key%"); 71 ->orWhere('surname2', 'LIKE', "%$find_key%");
70 }); 72 });
71 } 73 }
72 74
73 $users = $users->paginate(15); 75 $users = $users->Realuser()->paginate(15);
74 76
75 /* 77 /*
76 $Arr = array(); 78 $Arr = array();
77 $where = ''; 79 $where = '';
78 $find_status_work = ""; 80 $find_status_work = "";
79 if (isset($request->status_work)) { 81 if (isset($request->status_work)) {
80 $find_status_work = $request->status_work; 82 $find_status_work = $request->status_work;
81 //$users = $users->where('position_work', '=', $find_status_work); 83 //$users = $users->where('position_work', '=', $find_status_work);
82 $where.= ' and (w.position_work = :uid1)'; 84 $where.= ' and (w.position_work = :uid1)';
83 $Arr['uid1'] = $find_status_work; 85 $Arr['uid1'] = $find_status_work;
84 } 86 }
85 87
86 $find_key = ""; 88 $find_key = "";
87 if (isset($request->find)) { 89 if (isset($request->find)) {
88 $find_key = $request->find; 90 $find_key = $request->find;
89 /*$users = $users->where(function($query) use($find_key) { 91 /*$users = $users->where(function($query) use($find_key) {
90 $query->Where('name_man', 'LIKE', "%$find_key%") 92 $query->Where('name_man', 'LIKE', "%$find_key%")
91 ->orWhere('email', 'LIKE', "%$find_key%") 93 ->orWhere('email', 'LIKE', "%$find_key%")
92 ->orWhere('telephone', 'LIKE', "%$find_key%"); 94 ->orWhere('telephone', 'LIKE', "%$find_key%");
93 });*/ 95 });*/
94 /*$where.= " and ((u.name_man LIKE %:uid2%) or (w.email LIKE %:uid2%) or (w.telephone LIKE %:uid2%))"; 96 /*$where.= " and ((u.name_man LIKE %:uid2%) or (w.email LIKE %:uid2%) or (w.telephone LIKE %:uid2%))";
95 $Arr['uid2'] = $find_key; 97 $Arr['uid2'] = $find_key;
96 } 98 }
97 99
98 //$users = $users->paginate(15); 100 //$users = $users->paginate(15);
99 101
100 //DB::enableQueryLog(); 102 //DB::enableQueryLog();
101 $users = DB::select('SELECT u.*, w.*, j.* 103 $users = DB::select('SELECT u.*, w.*, j.*
102 FROM workers w 104 FROM workers w
103 JOIN users u ON u.id = w.user_id 105 JOIN users u ON u.id = w.user_id
104 JOIN job_titles j ON j.id = w.position_work 106 JOIN job_titles j ON j.id = w.position_work
105 Where (u.is_worker = 1) 107 Where (u.is_worker = 1)
106 '.$where, $Arr); 108 '.$where, $Arr);
107 //dump(DB::getQueryLog()); 109 //dump(DB::getQueryLog());
108 dd($users); 110 dd($users);
109 */ 111 */
110 112
111 if ($request->ajax()) { 113 if ($request->ajax()) {
112 return view('admin.worker.index_ajax', compact('users')); 114 return view('admin.worker.index_ajax', compact('users'));
113 } else { 115 } else {
114 return view('admin.worker.index', compact('users', 'find_key', 'find_status_work', 'status_work')); 116 return view('admin.worker.index', compact('users', 'find_key', 'find_status_work', 'status_work'));
115 } 117 }
116 } 118 }
117 119
120 public function form_add_worker(User $user) {
121 $job_titles = Job_title::query()->active()->orderBy('name')->get();
122
123 $time_end_anketa = 'Создана только';
124 $long_days = Company::find(1)->time_resume;
125 $time_end_anketa = date("d.m.Y H:i:s", strtotime(Carbon::now() . "+$long_days days"));
126
127 return view('admin.worker.add', compact('user', 'job_titles', 'time_end_anketa'));
128 }
129
130 public function form_store_worker(WorkerRequest $request, User $user) {
131 $params = $request->all();
132 $worker = Worker::create($params);
133 return redirect()->route('admin.basedata');
134 }
135
118 public function form_edit_worker(Worker $worker) { 136 public function form_edit_worker(Worker $worker) {
119 $job_titles = Job_title::query()->active()->orderBy('name')->get(); 137 $job_titles = Job_title::query()->active()->orderBy('name')->get();
120 138
121 $time_end_anketa = 'Бессрочно'; 139 $time_end_anketa = 'Бессрочно';
122 if (!empty($worker->updated_at)) { 140 if (!empty($worker->updated_at)) {
123 $long_days = Company::find(1)->time_resume; 141 $long_days = Company::find(1)->time_resume;
124 $time_end_anketa = date("d.m.Y H:i:s", strtotime($worker->updated_at . "+$long_days days")); 142 $time_end_anketa = date("d.m.Y H:i:s", strtotime($worker->updated_at . "+$long_days days"));
125 } 143 }
126 return view('admin.worker.edit', compact('worker', 'job_titles', 'time_end_anketa')); 144 return view('admin.worker.edit', compact('worker', 'job_titles', 'time_end_anketa'));
127 } 145 }
128 146
129 public function form_update_worker(Request $request, Worker $worker) 147 public function form_update_worker(Request $request, Worker $worker)
130 { 148 {
131 $params = $request->all(); 149 $params = $request->all();
132 150
133 $rules = [ 151 $rules = [
134 'email' => 'email|string|max:255', 152 'email' => 'email|string|max:255',
135 //'photo' => 'mimes:jpeg,jpg,png|max:15000', 153 //'photo' => 'mimes:jpeg,jpg,png|max:15000',
136 ]; 154 ];
137 155
138 $messages = [ 156 $messages = [
139 'required' => 'Укажите обязательное поле «:attribute»', 157 'required' => 'Укажите обязательное поле «:attribute»',
140 'confirmed' => 'Пароли не совпадают', 158 'confirmed' => 'Пароли не совпадают',
141 'email' => 'Введите корректный email', 159 'email' => 'Введите корректный email',
142 'min' => [ 160 'min' => [
143 'string' => 'Поле «:attribute» должно быть не меньше :min символов', 161 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
144 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' 162 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
145 ], 163 ],
146 'max' => [ 164 'max' => [
147 'string' => 'Поле «:attribute» должно быть не больше :max символов', 165 'string' => 'Поле «:attribute» должно быть не больше :max символов',
148 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' 166 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
149 ], 167 ],
150 ]; 168 ];
151 169
152 $validator = Validator::make($params, $rules, $messages); 170 $validator = Validator::make($params, $rules, $messages);
153 171
154 if ($validator->fails()) { 172 if ($validator->fails()) {
155 return back()->withErrors($validator)->withInput(); 173 return back()->withErrors($validator)->withInput();
156 } else { 174 } else {
157 $user_id = $worker->user_id; 175 $user_id = $worker->user_id;
158 if ($request->has('photo')) { 176 if ($request->has('photo')) {
159 if (!empty($worker->photo)) { 177 if (!empty($worker->photo)) {
160 Storage::delete($worker->photo); 178 Storage::delete($worker->photo);
161 } 179 }
162 if (!empty($request->photo)) 180 if (!empty($request->photo))
163 $params['photo'] = $request->file('photo')->store("workers/$user_id", 'public'); 181 $params['photo'] = $request->file('photo')->store("workers/$user_id", 'public');
164 } 182 }
165 $worker->update($params); 183 $worker->update($params);
166 184
167 return redirect()->route('admin.workers'); 185 return redirect()->route('admin.workers');
168 } 186 }
169 } 187 }
170 188
171 // кабинет - статистика работников 189 // кабинет - статистика работников
172 public function static_workers(Request $request) { 190 public function static_workers(Request $request) {
173 $stat = Static_worker::with('users'); 191 $stat = Static_worker::with('users');
174 //->join('users', 'users.id', '=', 'static_workers.user_id'); 192 //->join('users', 'users.id', '=', 'static_workers.user_id');
175 $users = User::query()->active()->OrderBy('id')->get(); 193 $users = User::query()->active()->OrderBy('id')->get();
176 $periods = Static_worker::query()->distinct('year_month')->select('year_month')->get(); 194 $periods = Static_worker::query()->distinct('year_month')->select('year_month')->get();
177 if ($request->ajax()) { 195 if ($request->ajax()) {
178 if (isset($request->user_id)) 196 if (isset($request->user_id))
179 if (!$request->user_id == "0") 197 if (!$request->user_id == "0")
180 $stat = $stat->Where('user_id', '=', $request->user_id); 198 $stat = $stat->Where('user_id', '=', $request->user_id);
181 if (isset($request->year_month)) { 199 if (isset($request->year_month)) {
182 if (!$request->year_month == "0") 200 if (!$request->year_month == "0")
183 $stat = $stat->Where('year_month', '=', $request->year_month); 201 $stat = $stat->Where('year_month', '=', $request->year_month);
184 } 202 }
185 } 203 }
186 204
187 $stat = $stat->OrderByDesc('year_month'); 205 $stat = $stat->OrderByDesc('year_month');
188 //->OrderBy('users.name'); 206 //->OrderBy('users.name');
189 //OrderBy('users.name')-> 207 //OrderBy('users.name')->
190 /*$stat->implode() loadMissing(['users' => function (Builder $query) { 208 /*$stat->implode() loadMissing(['users' => function (Builder $query) {
191 $query->orderBy('name', 'asc'); 209 $query->orderBy('name', 'asc');
192 }]);*/ 210 }]);*/
193 211
194 $stat = $stat->paginate(15); 212 $stat = $stat->paginate(15);
195 213
196 if ($request->ajax()) 214 if ($request->ajax())
197 return view('admin.static.index_workers_ajax', compact('stat')); 215 return view('admin.static.index_workers_ajax', compact('stat'));
198 else 216 else
199 return view('admin.static.index_workers', compact('stat', 'users', 'periods')); 217 return view('admin.static.index_workers', compact('stat', 'users', 'periods'));
200 218
201 } 219 }
202 220
203 } 221 }
204 222
app/Http/Requests/BaseUserRequest.php
File was created 1 <?php
2
3 namespace App\Http\Requests;
4
5 use Illuminate\Foundation\Http\FormRequest;
6
7 class BaseUserRequest 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 'surname' => 'required|min:3|max:255',
29 'name_man' => 'required|min:3|max:255',
30 'email' => 'required|email|min:5',
31 ];
32 }
33
34 public function messages() {
35 return [
36 'required' => 'Поле :attribute обязательно для ввода',
37 'min' => [
38 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
39 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
40 ],
41 'max' => [
42 'string' => 'Поле «:attribute» должно быть не больше :max символов',
43 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
44 ],
45 'email' => 'Введите корректный емайл'
46
47 ];
48 }
49 }
50
app/Http/Requests/WorkerRequest.php
File was created 1 <?php
2
3 namespace App\Http\Requests;
4
5 use Illuminate\Foundation\Http\FormRequest;
6
7 class WorkerRequest 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 'email' => 'email|string|max:255',
28 ];
29 }
30
31 public function messages() {
32 return [
33 'required' => 'Поле :attribute обязательно для ввода',
34 'unique' => 'Поле :attribute должно быть уникальным',
35 'mimes' => 'Допускаются файлы только с расширением jpeg,jpg,png',
36 'min' => [
37 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
38 'integer' => 'Поле «:attribute» должно быть :min или больше',
39 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
40 ],
41
42 'max' => [
43 'string' => 'Поле «:attribute» должно быть не больше :max символов',
44 'integer' => 'Поле «:attribute» должно быть :max или меньше',
45 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
46 ],
47
48 ];
49 }
50 }
51
app/Models/BaseUsers.php
File was created 1 <?php
2
3 namespace App\Models;
4
5 use Illuminate\Database\Eloquent\Factories\HasFactory;
6 use Illuminate\Database\Eloquent\Model;
7
8 class BaseUsers extends Model
9 {
10 use HasFactory;
11 }
12
1 <?php 1 <?php
2 2
3 namespace App\Models; 3 namespace App\Models;
4 4
5 // use Illuminate\Contracts\Auth\MustVerifyEmail; 5 // use Illuminate\Contracts\Auth\MustVerifyEmail;
6 use Illuminate\Database\Eloquent\Factories\HasFactory; 6 use Illuminate\Database\Eloquent\Factories\HasFactory;
7 use Illuminate\Foundation\Auth\User as Authenticatable; 7 use Illuminate\Foundation\Auth\User as Authenticatable;
8 use Illuminate\Notifications\Notifiable; 8 use Illuminate\Notifications\Notifiable;
9 use Laravel\Sanctum\HasApiTokens; 9 use Laravel\Sanctum\HasApiTokens;
10 10
11 class User extends Authenticatable 11 class User extends Authenticatable
12 { 12 {
13 use HasApiTokens, HasFactory, Notifiable; 13 use HasApiTokens, HasFactory, Notifiable;
14 14
15 /** 15 /**
16 * The attributes that are mass assignable. 16 * The attributes that are mass assignable.
17 * 17 *
18 * @var array<int, string> 18 * @var array<int, string>
19 */ 19 */
20 protected $fillable = [ 20 protected $fillable = [
21 'name', 21 'name',
22 'email', 22 'email',
23 'password', 23 'password',
24 'admin', 24 'admin',
25 'telephone', 25 'telephone',
26 'surname', 26 'surname',
27 'name_man', 27 'name_man',
28 'surname2', 28 'surname2',
29 'is_worker', 29 'is_worker',
30 'is_lookin', 30 'is_lookin',
31 'is_message', 31 'is_message',
32 'is_public', 32 'is_public',
33 'is_remove', 33 'is_remove',
34 'is_ban', 34 'is_ban',
35 'is_new', 35 'is_new',
36 'is_bd',
36 'email_verified_at', 37 'email_verified_at',
37 'created_at', 38 'created_at',
38 'updated_at' 39 'updated_at',
40 'birthday'
39 ]; 41 ];
40 42
41 /** 43 /**
42 * The attributes that should be hidden for serialization. 44 * The attributes that should be hidden for serialization.
43 * 45 *
44 * @var array<int, string> 46 * @var array<int, string>
45 */ 47 */
46 protected $hidden = [ 48 protected $hidden = [
47 'password', 49 'password',
48 'remember_token', 50 'remember_token',
49 ]; 51 ];
50 52
51 /** 53 /**
52 * The attributes that should be cast. 54 * The attributes that should be cast.
53 * 55 *
54 * @var array<string, string> 56 * @var array<string, string>
55 */ 57 */
56 protected $casts = [ 58 protected $casts = [
57 'email_verified_at' => 'datetime', 59 'email_verified_at' => 'datetime',
58 ]; 60 ];
59 61
60 /* 62 /*
61 * Связь Пользователей системы с работодателями 63 * Связь Пользователей системы с работодателями
62 * users - employers 64 * users - employers
63 */ 65 */
64 public function employers() { 66 public function employers() {
65 return $this->hasMany(Employer::class, 'user_id'); 67 return $this->hasMany(Employer::class, 'user_id');
66 } 68 }
67 69
68 /* 70 /*
69 * Связь Пользователей системы с работниками 71 * Связь Пользователей системы с работниками
70 * users - workers 72 * users - workers
71 */ 73 */
72 public function workers() { 74 public function workers() {
73 return $this->hasMany(Worker::class, 'user_id'); 75 return $this->hasMany(Worker::class, 'user_id');
74 } 76 }
75 77
76 /* 78 /*
77 * Связь Пользователей системы с работниками 79 * Связь Пользователей системы с работниками
78 * users - workers 80 * users - workers
79 */ 81 */
80 public function work() { 82 public function work() {
81 return $this->hasMany(Worker::class, 'user_id')->select('telephone', 'email', 'position_work', 'persent_anketa'); 83 return $this->hasMany(Worker::class, 'user_id')->select('telephone', 'email', 'position_work', 'persent_anketa');
82 } 84 }
83 85
84 /* 86 /*
85 * Связь Модели Пользователей(Users) с Группами (Group_users) 87 * Связь Модели Пользователей(Users) с Группами (Group_users)
86 * users - group_users 88 * users - group_users
87 многие-ко-многим 89 многие-ко-многим
88 */ 90 */
89 public function ingroup() { 91 public function ingroup() {
90 return $this->belongsToMany(Group_user::class, 'group_works'); 92 return $this->belongsToMany(Group_user::class, 'group_works');
91 } 93 }
92 94
93 /* 95 /*
94 * Связь Пользователей системы с ссобщениями 96 * Связь Пользователей системы с ссобщениями
95 * users - messages 97 * users - messages
96 */ 98 */
97 public function messages() { 99 public function messages() {
98 return $this->hasMany(Message::class); 100 return $this->hasMany(Message::class);
99 } 101 }
100 102
101 /* 103 /*
102 * Связь Пользователей системы с статистика 104 * Связь Пользователей системы с статистика
103 * users - static_workers 105 * users - static_workers
104 */ 106 */
105 public function static_user() { 107 public function static_user() {
106 return $this->hasMany(Static_worker::class); 108 return $this->hasMany(Static_worker::class);
107 } 109 }
108 110
109 /* 111 /*
110 * Связь модели Юзеры (users) с моделью Группы пользователей (Group_works) 112 * Связь модели Юзеры (users) с моделью Группы пользователей (Group_works)
111 один-ко-многим 113 один-ко-многим
112 */ 114 */
113 public function peoples() { 115 public function peoples() {
114 return $this->hasMany(Group_works::class); 116 return $this->hasMany(Group_works::class);
115 } 117 }
116 118
117 /* 119 /*
118 * Связь Модели Пользователей(Users) с Группами (Group_users) 120 * Связь Модели Пользователей(Users) с Группами (Group_users)
119 * users - group_users 121 * users - group_users
120 многие-ко-многим 122 многие-ко-многим
121 */ 123 */
122 public function jobtitles() { 124 public function jobtitles() {
123 return $this->belongsToMany(Job_title::class, 'Workers', 'user_id', 'position_work'); 125 return $this->belongsToMany(Job_title::class, 'Workers', 'user_id', 'position_work');
124 } 126 }
125 127
126 public function scopeActive($query) { 128 public function scopeActive($query) {
127 return $query->where('is_remove', '=', '0'); 129 return $query->where('is_remove', '=', '0');
128 } 130 }
129 131
132 public function scopeBaseuser($query) {
133 return $query->where('is_bd', '=', '1');
134 }
135
136 public function scopeRealuser($query) {
137 return $query->where('is_bd', '=', '0');
138 }
139
130 } 140 }
131 141
database/migrations/2023_10_11_085208_create_base_users_table.php
File was created 1 <?php
2
3 use Illuminate\Database\Migrations\Migration;
4 use Illuminate\Database\Schema\Blueprint;
5 use Illuminate\Support\Facades\Schema;
6
7 return new class extends Migration
8 {
9 /**
10 * Run the migrations.
11 *
12 * @return void
13 */
14 public function up()
15 {
16 Schema::create('base_users', function (Blueprint $table) {
17 $table->id();
18 $table->timestamps();
19 });
20 }
21
22 /**
23 * Reverse the migrations.
24 *
25 * @return void
26 */
27 public function down()
28 {
29 Schema::dropIfExists('base_users');
30 }
31 };
32
public/books-25.xlsx
No preview for this file type
resources/views/admin/groups/form.blade.php
1 <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> 1 <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800">
2 <label class="block text-sm"> 2 <label class="block text-sm">
3 <span class="text-gray-700 dark:text-gray-400">Имя группы</span> 3 <span class="text-gray-700 dark:text-gray-400">Имя группы</span>
4 <input name="name_group" id="name_group" 4 <input name="name_group" id="name_group"
5 class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" 5 class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
6 placeholder="Название группы" value="{{ old('name_group') ?? $group->name_group ?? '' }}" 6 placeholder="Название группы" value="{{ old('name_group') ?? $group->name_group ?? '' }}"
7 /> 7 />
8 @error('name_group') 8 @error('name_group')
9 <span class="text-xs text-red-600 dark:text-red-400"> 9 <span class="text-xs text-red-600 dark:text-red-400">
10 {{ $message }} 10 {{ $message }}
11 </span> 11 </span>
12 @enderror 12 @enderror
13 </label><br> 13 </label><br>
14 <input type="hidden" name="user_id" id="user_id" value="{{ $editor }}"/> 14 <input type="hidden" name="user_id" id="user_id" value="{{ $editor }}"/>
15 15
16 <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> 16 <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4">
17 <div> 17 <div>
18 <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"> 18 <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">
19 Сохранить 19 Сохранить
20 </button> 20 </button>
21 <a href="{{ route('admin.groups') }}"
22 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"
23 style="display: -webkit-inline-box; height: 30px!important;"
24 >Назад</a>
21 </div> 25 </div>
22 </div> 26 </div>
23 27
24 <label class="block text-sm"> 28 <label class="block text-sm">
25 <span class="text-gray-700 dark:text-gray-400">Пользователи системы</span> 29 <span class="text-gray-700 dark:text-gray-400">Пользователи системы</span>
26 </label> 30 </label>
27 <div> 31 <div>
28 <table class="w-full whitespace-no-wrap" > 32 <table class="w-full whitespace-no-wrap" >
29 <thead> 33 <thead>
30 <tr 34 <tr
31 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" 35 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"
32 > 36 >
33 <th class="px-4 py-3">№</th> 37 <th class="px-4 py-3">№</th>
34 <th class="px-4 py-3">Имя пользователя</th> 38 <th class="px-4 py-3">Имя пользователя</th>
39 <th class="px-4 py-3">Статус пользователя</th>
35 <th class="px-4 py-3">Добавленные в группу</th> 40 <th class="px-4 py-3">Добавленные в группу</th>
36 </tr> 41 </tr>
37 </thead> 42 </thead>
38 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" id="showmore-list"> 43 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" id="showmore-list">
39 @foreach($users as $user) 44 @foreach($users as $user)
40 <tr class="text-gray-700 dark:text-gray-400" > 45 <tr class="text-gray-700 dark:text-gray-400" >
41 <td class="px-4 py-3"> 46 <td class="px-4 py-3">
42 {{$user->id}} 47 {{$user->id}}
43 </td> 48 </td>
44 <td class="px-4 py-3"> 49 <td class="px-4 py-3">
45 {{$user->name}} 50 {{$user->name}}
46 </td> 51 </td>
52 <td class="px-4 py-3 text-xs">
53 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100">
54 @if ($user->is_worker)
55 Работник
56 @else
57 Работодатель
58 @endif
59 </span>
60 @if ($user->admin)
61 <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600">
62 Администратор
63 </span>
64 @endif
65 @if ($user->is_bd)
66 <span 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">
67 База данных
68 </span>
69 @endif
70 </td>
47 <td class="px-4 py-3"> 71 <td class="px-4 py-3">
48 <input type="checkbox" id="user{{$user->id}}" name="usergroup[]" value="{{$user->id}}" @isset($group) <?php if ($user->ingroup->contains('id', $group->id)) {?>checked<? }?> @endisset/> 72 <input type="checkbox" id="user{{$user->id}}" name="usergroup[]" value="{{$user->id}}" @isset($group) <?php if ($user->ingroup->contains('id', $group->id)) {?>checked<? }?> @endisset/>
49 </td> 73 </td>
50 </tr> 74 </tr>
51 @endforeach 75 @endforeach
52 </tbody> 76 </tbody>
53 </table> 77 </table>
54 </div> 78 </div>
55 @if (!$hide) 79 @if (!$hide)
56 <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> 80 <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4">
57 <div> 81 <div>
58 <a id="showmore-triger" data-page="1" data-max="{{ $amt }}" 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 center"> 82 <a id="showmore-triger" data-page="1" data-max="{{ $amt }}" 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 center">
59 Погрузить пользователей 83 Погрузить пользователей
60 </a> 84 </a>
61 </div> 85 </div>
62 </div> 86 </div>
63 @endif 87 @endif
64 </div> 88 </div>
65 89
66 90
resources/views/admin/users/add.blade.php
File was created 1 @extends('layout.admin', ['title' => 'Админка - Добавление пользователя в базу данных'])
2
3 @section('content')
4 <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300">
5 Добавление пользователя в базу данных
6 </h4>
7 <form method="POST" action="{{ route('admin.add-store-basedata') }}">
8 @csrf
9 @include('admin.users.form')
10 </form>
11 @endsection
12
resources/views/admin/users/edit.blade.php
File was created 1 @extends('layout.admin', ['title' => 'Админка - Редактирование пользователя в базу данных'])
2
3 @section('content')
4 <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300">
5 Редактирование пользователя в базу данных
6 </h4>
7 <form method="POST" action="{{ route('admin.update-basedata', ['user' => $user->id]) }}">
8 @csrf
9 @isset($user)
10 @method('PUT')
11 @endisset
12
13 @include('admin.users.form')
14 </form>
15 @endsection
16
resources/views/admin/users/form.blade.php
File was created 1 <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800">
2 <label class="block text-sm">
3 <span class="text-gray-700 dark:text-gray-400">Имя/Псевдоним</span>
4 <input name="name" id="name"
5 class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
6 placeholder="Имя/Псевдоним" value="{{ old('name') ?? $user->name ?? '' }}"
7 />
8 @error('name')
9 <span class="text-xs text-red-600 dark:text-red-400">
10 {{ $message }}
11 </span>
12 @enderror
13 </label><br>
14
15 <label class="block text-sm">
16 <span class="text-gray-700 dark:text-gray-400">Фамилия</span>
17 <input name="surname" id="surname"
18 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"
19 placeholder="Фамилия" value="{{ old('surname') ?? $user->surname ?? '' }}"
20 />
21 @error('surname')
22 <span class="text-xs text-red-600 dark:text-red-400">
23 {{ $message }}
24 </span>
25 @enderror
26 </label><br>
27
28 <label class="block text-sm">
29 <span class="text-gray-700 dark:text-gray-400">Имя</span>
30 <input name="name_man" id="name_man"
31 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"
32 placeholder="Имя" value="{{ old('name_man') ?? $user->name_man ?? '' }}"
33 />
34 @error('name_man')
35 <span class="text-xs text-red-600 dark:text-red-400">
36 {{ $message }}
37 </span>
38 @enderror
39 </label><br>
40
41 <input type="hidden" name="is_worker" id="is_worker" value="1"/>
42 <input type="hidden" name="is_bd" id="is_bd" value="1"/>
43 <input type="hidden" name="admin" id="admin" value="0"/>
44 <input type="hidden" name="password" id="password" value="1234567890"/>
45
46 <label class="block text-sm">
47 <span class="text-gray-700 dark:text-gray-400">Отчество</span>
48 <input name="surname2" id="surname2"
49 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"
50 placeholder="Отчество" value="{{ old('surname2') ?? $user->surname2 ?? '' }}"
51 />
52 @error('surname2')
53 <span class="text-xs text-red-600 dark:text-red-400">
54 {{ $message }}
55 </span>
56 @enderror
57 </label><br>
58
59 <label class="block text-sm">
60 <span class="text-gray-700 dark:text-gray-400">Email</span>
61 <input name="email" id="email"
62 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"
63 placeholder="Email" value="{{ old('email') ?? $user->email ?? '' }}"
64 />
65 @error('email')
66 <span class="text-xs text-red-600 dark:text-red-400">
67 {{ $message }}
68 </span>
69 @enderror
70 </label><br>
71
72 <label class="block text-sm">
73 <span class="text-gray-700 dark:text-gray-400">Телефон</span>
74 <input name="telephone" id="telephone"
75 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"
76 placeholder="Телефон" value="{{ old('telephone') ?? $user->telephone ?? '' }}"
77 />
78 @error('telephone')
79 <span class="text-xs text-red-600 dark:text-red-400">
80 {{ $message }}
81 </span>
82 @enderror
83 </label><br>
84
85 <!--<label class="block text-sm">
86
87 <input type="hidden" name="page_worker" value="0" />
88 <input name="page_worker" @php if (isset($user->workers->id)) echo "checked"; @endphp
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="" style="float:left; margin-right: 5px" type="checkbox" value="1"
91 /><p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Анкета </p><br>
92
93 </label><br>-->
94
95 <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4">
96 <div>
97 <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">
98 Сохранить
99 </button>
100 <a href="{{ route('admin.basedata') }}"
101 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"
102 style="display: -webkit-inline-box; height: 30px!important;"
103 >Назад</a>
104 </div>
105 </div>
106 </div>
107
resources/views/admin/users/index.blade.php
1 @extends('layout.admin', ['title' => $title]) 1 @extends('layout.admin', ['title' => $title])
2 2
3 @section('script') 3 @section('script')
4 <script> 4 <script>
5 $(document).ready(function() { 5 $(document).ready(function() {
6 $(document).on('click', '.check_click', function () { 6 $(document).on('click', '.check_click', function () {
7 var this_ = $(this); 7 var this_ = $(this);
8 var value = this_.val(); 8 var value = this_.val();
9 var field = this_.attr('data-field'); 9 var field = this_.attr('data-field');
10 var ajax_block = $('#ajax_block'); 10 var ajax_block = $('#ajax_block');
11 var bool = 0; 11 var bool = 0;
12 var str_get = ''; 12 var str_get = '';
13 13
14 if(this.checked){ 14 if(this.checked){
15 bool = 1; 15 bool = 1;
16 } else { 16 } else {
17 bool = 0; 17 bool = 0;
18 } 18 }
19 console.log(field); 19 console.log(field);
20 str_get = "id=" + value + "&" + field + "=" + bool; 20 str_get = "id=" + value + "&" + field + "=" + bool;
21 console.log(str_get); 21 console.log(str_get);
22 22
23 $.ajax({ 23 $.ajax({
24 type: "GET", 24 type: "GET",
25 url: "{{ url()->full()}}", 25 url: "{{ url()->full()}}",
26 data: str_get, 26 data: str_get,
27 success: function (data) { 27 success: function (data) {
28 console.log('Обновление таблицы пользователей '); 28 console.log('Обновление таблицы пользователей ');
29 //data = JSON.parse(data); 29 //data = JSON.parse(data);
30 //console.log(data); 30 //console.log(data);
31 ajax_block.html(data); 31 ajax_block.html(data);
32 }, 32 },
33 headers: { 33 headers: {
34 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 34 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
35 }, 35 },
36 error: function (data) { 36 error: function (data) {
37 console.log('Error: ' + data); 37 console.log('Error: ' + data);
38 } 38 }
39 }); 39 });
40 }); 40 });
41 }); 41 });
42 </script> 42 </script>
43 @endsection 43 @endsection
44 44
45 @section('search') 45 @section('search')
46 @include('admin.find') 46 @include('admin.find')
47 @endsection 47 @endsection
48 48
49 @section('content') 49 @section('content')
50 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block"> 50 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block">
51 <div class="w-full overflow-x-auto"> 51 <div class="w-full overflow-x-auto">
52 <table class="w-full whitespace-no-wrap"> 52 <table class="w-full whitespace-no-wrap">
53 <thead> 53 <thead>
54 <tr 54 <tr
55 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" 55 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"
56 > 56 >
57 <th class="px-4 py-3">№</th> 57 <th class="px-4 py-3">№</th>
58 <th class="px-4 py-3">Имя</th> 58 <th class="px-4 py-3">Имя</th>
59 <th class="px-4 py-3">Email/логин</th> 59 <th class="px-4 py-3">Email/логин</th>
60 <th class="px-4 py-3">Работодатель/работник/администратор</th> 60 <th class="px-4 py-3">Работодатель/работник/администратор</th>
61 <th class="px-4 py-3">Бан</th> 61 <th class="px-4 py-3">Бан</th>
62 <th class="px-4 py-3">Новый</th> 62 <th class="px-4 py-3">Новый</th>
63 @if ($id_admin == 1) 63 @if ($id_admin == 1)
64 <th class="px-4 py-3">Админ</th> 64 <th class="px-4 py-3">Админ</th>
65 @endif 65 @endif
66 <th class="px-4 py-3">Дата регистрации</th> 66 <th class="px-4 py-3">Дата регистрации</th>
67 </tr> 67 </tr>
68 </thead> 68 </thead>
69 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> 69 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
70 @foreach($users as $user) 70 @foreach($users as $user)
71 <tr class="text-gray-700 dark:text-gray-400"> 71 <tr class="text-gray-700 dark:text-gray-400">
72 <td class="px-4 py-3"> 72 <td class="px-4 py-3">
73 {{$user->id}} 73 {{$user->id}}
74 </td> 74 </td>
75 <td class="px-4 py-3"> 75 <td class="px-4 py-3">
76 <!--<div class="flex items-center text-sm"> 76 <!--<div class="flex items-center text-sm">
77 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> 77 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
78 <div 78 <div
79 class="absolute inset-0 rounded-full shadow-inner" 79 class="absolute inset-0 rounded-full shadow-inner"
80 aria-hidden="true" 80 aria-hidden="true"
81 ></div> 81 ></div>
82 </div> 82 </div>
83 <div> 83 <div>
84 <p class="font-semibold"><a href="{{ route('admin.users') }}">Пользователи</a></p> 84 <p class="font-semibold"><a href="{{ route('admin.users') }}">Пользователи</a></p>
85 <p class="text-xs text-gray-600 dark:text-gray-400"> 85 <p class="text-xs text-gray-600 dark:text-gray-400">
86 Все пользователи сайта 86 Все пользователи сайта
87 </p> 87 </p>
88 </div> 88 </div>
89 </div> 89 </div>
90 --> 90 -->
91 <a style="text-decoration: underline;" href="{{ route('admin.user-profile', ['user' => $user->id]) }}">{{ $user->name }}</a> 91 <a style="text-decoration: underline;" href="{{ route('admin.user-profile', ['user' => $user->id]) }}">{{ $user->name }}</a>
92 </td> 92 </td>
93 <td class="px-4 py-3 text-sm"> 93 <td class="px-4 py-3 text-sm">
94 {{ $user->email }} 94 {{ $user->email }}
95 </td> 95 </td>
96 <td class="px-4 py-3 text-xs"> 96 <td class="px-4 py-3 text-xs">
97 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> 97 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100">
98 @if ($user->is_worker) 98 @if ($user->is_worker)
99 Работник 99 Работник
100 @else 100 @else
101 Работодатель 101 Работодатель
102 @endif 102 @endif
103 </span> 103 </span>
104 @if ($user->admin) 104 @if ($user->admin)
105 <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> 105 <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600">
106 Администратор 106 Администратор
107 </span> 107 </span>
108 @endif 108 @endif
109 @if ($user->is_bd)
110 <span 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">
111 База данных
112 </span>
113 @endif
109 </td> 114 </td>
110 <td class="px-4 py-3 text-sm"> 115 <td class="px-4 py-3 text-sm">
111 @if ($user->id > 1) 116 @if ($user->id > 1)
112 <input type="checkbox" class="check_click" value="{{$user->id}}" data-field="is_ban" name="ban_{{$user->id}}" {{ ($user->is_ban) ? "checked" : "" }}/> 117 <input type="checkbox" class="check_click" value="{{$user->id}}" data-field="is_ban" name="ban_{{$user->id}}" {{ ($user->is_ban) ? "checked" : "" }}/>
113 @endif 118 @endif
114 </td> 119 </td>
115 120
116 <td class="px-4 py-3 text-sm"> 121 <td class="px-4 py-3 text-sm">
117 <input type="checkbox" class="check_click" value="{{$user->id}}" data-field="is_new" name="new_{{$user->id}}" {{ ($user->is_new) ? "checked" : "" }}/> 122 <input type="checkbox" class="check_click" value="{{$user->id}}" data-field="is_new" name="new_{{$user->id}}" {{ ($user->is_new) ? "checked" : "" }}/>
118 </td> 123 </td>
119 124
120 @if ($id_admin == 1) 125 @if ($id_admin == 1)
121 <td class="px-4 py-3 text-sm"> 126 <td class="px-4 py-3 text-sm">
122 @if ($user->id > 1) 127 @if ($user->id > 1)
123 <input type="checkbox" class="check_click" value="{{$user->id}}" data-field="admin" name="admin_{{$user->id}}" {{ ($user->admin) ? "checked" : "" }}/> 128 <input type="checkbox" class="check_click" value="{{$user->id}}" data-field="admin" name="admin_{{$user->id}}" {{ ($user->admin) ? "checked" : "" }}/>
124 @endif 129 @endif
125 </td> 130 </td>
126 @endif 131 @endif
127 132
128 <td class="px-4 py-3 text-sm"> 133 <td class="px-4 py-3 text-sm">
129 {{ date('d.m.Y', strtotime($user->created_at)) }} 134 {{ date('d.m.Y', strtotime($user->created_at)) }}
130 </td> 135 </td>
131 </tr> 136 </tr>
132 @endforeach 137 @endforeach
133 </tbody> 138 </tbody>
134 </table> 139 </table>
135 </div> 140 </div>
136 141
137 <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"> 142 <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">
138 <?//=$users->appends($_GET)->links('admin.pagginate'); ?> 143 <?//=$users->appends($_GET)->links('admin.pagginate'); ?>
139 <?=$users->links('admin.pagginate'); ?> 144 <?=$users->links('admin.pagginate'); ?>
140 </div> 145 </div>
141 146
142 147
143 <!--<div 148 <!--<div
144 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" 149 class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800"
145 > 150 >
146 <span class="flex items-center col-span-3"> 151 <span class="flex items-center col-span-3">
147 Showing 21-30 of 100 152 Showing 21-30 of 100
148 </span> 153 </span>
149 <span class="col-span-2"></span> 154 <span class="col-span-2"></span>
150 155
151 <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> 156 <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end">
152 <nav aria-label="Table navigation"> 157 <nav aria-label="Table navigation">
153 <ul class="inline-flex items-center"> 158 <ul class="inline-flex items-center">
154 <li> 159 <li>
155 <button 160 <button
156 class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" 161 class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple"
157 aria-label="Previous" 162 aria-label="Previous"
158 > 163 >
159 <svg 164 <svg
160 aria-hidden="true" 165 aria-hidden="true"
161 class="w-4 h-4 fill-current" 166 class="w-4 h-4 fill-current"
162 viewBox="0 0 20 20" 167 viewBox="0 0 20 20"
163 > 168 >
164 <path 169 <path
165 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" 170 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"
166 clip-rule="evenodd" 171 clip-rule="evenodd"
167 fill-rule="evenodd" 172 fill-rule="evenodd"
168 ></path> 173 ></path>
169 </svg> 174 </svg>
170 </button> 175 </button>
171 </li> 176 </li>
172 <li> 177 <li>
173 <button 178 <button
174 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 179 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
175 > 180 >
176 1 181 1
177 </button> 182 </button>
178 </li> 183 </li>
179 <li> 184 <li>
180 <button 185 <button
181 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 186 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
182 > 187 >
183 2 188 2
184 </button> 189 </button>
185 </li> 190 </li>
186 <li> 191 <li>
187 <button 192 <button
188 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" 193 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"
189 > 194 >
190 3 195 3
191 </button> 196 </button>
192 </li> 197 </li>
193 <li> 198 <li>
194 <button 199 <button
195 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 200 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
196 > 201 >
197 4 202 4
198 </button> 203 </button>
199 </li> 204 </li>
200 <li> 205 <li>
201 <span class="px-3 py-1">...</span> 206 <span class="px-3 py-1">...</span>
202 </li> 207 </li>
203 <li> 208 <li>
204 <button 209 <button
205 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 210 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
206 > 211 >
207 8 212 8
208 </button> 213 </button>
209 </li> 214 </li>
210 <li> 215 <li>
211 <button 216 <button
212 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 217 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
213 > 218 >
214 9 219 9
215 </button> 220 </button>
216 </li> 221 </li>
217 <li> 222 <li>
218 <button 223 <button
219 class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" 224 class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple"
220 aria-label="Next" 225 aria-label="Next"
221 > 226 >
222 <svg 227 <svg
223 class="w-4 h-4 fill-current" 228 class="w-4 h-4 fill-current"
224 aria-hidden="true" 229 aria-hidden="true"
225 viewBox="0 0 20 20" 230 viewBox="0 0 20 20"
226 > 231 >
227 <path 232 <path
228 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" 233 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"
229 clip-rule="evenodd" 234 clip-rule="evenodd"
230 fill-rule="evenodd" 235 fill-rule="evenodd"
231 ></path> 236 ></path>
232 </svg> 237 </svg>
233 </button> 238 </button>
234 </li> 239 </li>
235 </ul> 240 </ul>
236 </nav> 241 </nav>
237 </span> 242 </span>
238 </div>--> 243 </div>-->
239 </div> 244 </div>
240 245
241 <?//=$users->appends($_GET)->links('catalogs.paginate'); ?> 246 <?//=$users->appends($_GET)->links('catalogs.paginate'); ?>
242 247
243 248
244 @endsection 249 @endsection
245 250
resources/views/admin/users/index_bd.blade.php
File was created 1 @extends('layout.admin', ['title' => $title])
2
3 @section('script')
4 <script>
5 $(document).ready(function() {
6 $(document).on('click', '.check_click', function () {
7 var this_ = $(this);
8 var value = this_.val();
9 var field = this_.attr('data-field');
10 var ajax_block = $('#ajax_block');
11 var bool = 0;
12 var str_get = '';
13
14 if(this.checked){
15 bool = 1;
16 } else {
17 bool = 0;
18 }
19 console.log(field);
20 str_get = "id=" + value + "&" + field + "=" + bool;
21 console.log(str_get);
22
23 $.ajax({
24 type: "GET",
25 url: "{{ url()->full()}}",
26 data: str_get,
27 success: function (data) {
28 console.log('Обновление таблицы пользователей ');
29 //data = JSON.parse(data);
30 //console.log(data);
31 ajax_block.html(data);
32 },
33 headers: {
34 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
35 },
36 error: function (data) {
37 console.log('Error: ' + data);
38 }
39 });
40 });
41 });
42 </script>
43 @endsection
44
45 @section('search')
46 @include('admin.find')
47 @endsection
48
49 @section('content')
50 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block">
51 <div class="w-full overflow-x-auto">
52 <a class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" href="{{ route('admin.add-basedata') }}">Добавить пользователя</a><br><br>
53 <table class="w-full whitespace-no-wrap">
54 <thead>
55 <tr
56 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"
57 >
58 <th class="px-4 py-3">№</th>
59 <th class="px-4 py-3">Имя</th>
60 <th class="px-4 py-3">Email/телефон</th>
61 <th class="px-4 py-3">Статус</th>
62 <th class="px-4 py-3">Анкета</th>
63 <th class="px-4 py-3">Дата регистрации</th>
64 <th class="px-4 py-3">Изменить</th>
65 </tr>
66 </thead>
67 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
68 @foreach($users as $user)
69 <tr class="text-gray-700 dark:text-gray-400">
70 <td class="px-4 py-3">
71 {{$user->id}}
72 </td>
73 <td class="px-4 py-3">
74 <!--<div class="flex items-center text-sm">
75 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
76 <div
77 class="absolute inset-0 rounded-full shadow-inner"
78 aria-hidden="true"
79 ></div>
80 </div>
81 <div>
82 <p class="font-semibold"><a href="{{ route('admin.users') }}">Пользователи</a></p>
83 <p class="text-xs text-gray-600 dark:text-gray-400">
84 Все пользователи сайта
85 </p>
86 </div>
87 </div>
88 -->
89 <!--<a style="text-decoration: underline;" href="{{ route('admin.user-profile', ['user' => $user->id]) }}"></a>-->
90
91 {{ $user->name }}
92 </td>
93
94 <td class="px-4 py-3">
95 <div class="flex items-center text-sm">
96 <!--<div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
97 <div
98 class="absolute inset-0 rounded-full shadow-inner"
99 aria-hidden="true"
100 ></div>
101 </div>-->
102 <div>
103 <p class="font-semibold">{{ empty($user->employers->email) ? $user->email : $user->employers->email }}</p>
104 <p class="text-xs text-gray-600 dark:text-gray-400">
105 {{ empty($user->employers->telephone) ? $user->telephone : $user->employers->telephone }}
106 </p>
107 </div>
108 </div>
109 </td>
110
111 <td class="px-4 py-3 text-xs">
112 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100">
113 @if ($user->is_worker)
114 Работник
115 @else
116 Работодатель
117 @endif
118 </span>
119 @if ($user->admin)
120 <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600">
121 Администратор
122 </span>
123 @endif
124 @if ($user->is_bd)
125 <span 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">
126 База данных
127 </span>
128 @endif
129 </td>
130
131 <td class="px-4 py-3 text-sm">
132 @if (isset($user->workers[0]->id))
133 <a href="{{ route('admin.worker-profile-edit', ['worker' => $user->workers[0]->id]) }}">Править</a> |
134 <a href="{{ route('admin.doc-basedata', ['user' => $user->id]) }}">Скачать</a>
135 @endif
136 </td>
137
138 <td class="px-4 py-3 text-sm">
139 {{ date('d.m.Y', strtotime($user->created_at)) }}
140 </td>
141
142 <td class="px-4 py-3 text-sm_">
143 <form action="{{ route('admin.delete-basedata', ['user' => $user->id]) }}" method="POST">
144 <a href="{{ route('admin.edit-basedata', ['user' => $user->id]) }}">Изменить</a> |
145 @csrf
146 @method('DELETE')
147 <input class="btn btn-danger" type="submit" value="Удалить"/>
148 </form>
149 </td>
150 </tr>
151 @endforeach
152 </tbody>
153 </table>
154 </div>
155
156 <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">
157 <?//=$users->appends($_GET)->links('admin.pagginate'); ?>
158 <?=$users->links('admin.pagginate'); ?>
159 </div>
160
161
162 <!--<div
163 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"
164 >
165 <span class="flex items-center col-span-3">
166 Showing 21-30 of 100
167 </span>
168 <span class="col-span-2"></span>
169
170 <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end">
171 <nav aria-label="Table navigation">
172 <ul class="inline-flex items-center">
173 <li>
174 <button
175 class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple"
176 aria-label="Previous"
177 >
178 <svg
179 aria-hidden="true"
180 class="w-4 h-4 fill-current"
181 viewBox="0 0 20 20"
182 >
183 <path
184 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"
185 clip-rule="evenodd"
186 fill-rule="evenodd"
187 ></path>
188 </svg>
189 </button>
190 </li>
191 <li>
192 <button
193 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
194 >
195 1
196 </button>
197 </li>
198 <li>
199 <button
200 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
201 >
202 2
203 </button>
204 </li>
205 <li>
206 <button
207 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"
208 >
209 3
210 </button>
211 </li>
212 <li>
213 <button
214 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
215 >
216 4
217 </button>
218 </li>
219 <li>
220 <span class="px-3 py-1">...</span>
221 </li>
222 <li>
223 <button
224 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
225 >
226 8
227 </button>
228 </li>
229 <li>
230 <button
231 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
232 >
233 9
234 </button>
235 </li>
236 <li>
237 <button
238 class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple"
239 aria-label="Next"
240 >
241 <svg
242 class="w-4 h-4 fill-current"
243 aria-hidden="true"
244 viewBox="0 0 20 20"
245 >
246 <path
247 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"
248 clip-rule="evenodd"
249 fill-rule="evenodd"
250 ></path>
251 </svg>
252 </button>
253 </li>
254 </ul>
255 </nav>
256 </span>
257 </div>-->
258 </div>
259
260 <?//=$users->appends($_GET)->links('catalogs.paginate'); ?>
261
262
263 @endsection
264
resources/views/admin/users/index_bd_ajax.blade.php
File was created 1 <div class="w-full overflow-x-auto">
2 <table class="w-full whitespace-no-wrap">
3 <thead>
4 <tr
5 class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800"
6 >
7 <th class="px-4 py-3">№</th>
8 <th class="px-4 py-3">Имя</th>
9 <th class="px-4 py-3">Email/логин</th>
10 <th class="px-4 py-3">Статус</th>
11 <th class="px-4 py-3">Дата регистрации</th>
12 </tr>
13 </thead>
14 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
15 @foreach($users as $user)
16 <tr class="text-gray-700 dark:text-gray-400">
17 <td class="px-4 py-3">
18 {{$user->id}}
19 </td>
20 <td class="px-4 py-3">
21 <!--<div class="flex items-center text-sm">
22 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
23 <div
24 class="absolute inset-0 rounded-full shadow-inner"
25 aria-hidden="true"
26 ></div>
27 </div>
28 <div>
29 <p class="font-semibold"><a href="{{ route('admin.users') }}">Пользователи</a></p>
30 <p class="text-xs text-gray-600 dark:text-gray-400">
31 Все пользователи сайта
32 </p>
33 </div>
34 </div>
35 -->
36 <a style="text-decoration: underline;" href="{{ route('admin.user-profile', ['user' => $user->id]) }}">{{ $user->name }}</a>
37 </td>
38 <td class="px-4 py-3">
39 <div class="flex items-center text-sm">
40 <!--<div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
41 <div
42 class="absolute inset-0 rounded-full shadow-inner"
43 aria-hidden="true"
44 ></div>
45 </div>-->
46 <div>
47 <p class="font-semibold">{{ empty($user->employers->email) ? $user->email : $user->employers->email }}</p>
48 <p class="text-xs text-gray-600 dark:text-gray-400">
49 {{ empty($user->employers->telephone) ? $user->telephone : $user->employers->telephone }}
50 </p>
51 </div>
52 </div>
53 </td>
54 <td class="px-4 py-3 text-xs">
55 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100">
56 @if ($user->is_worker)
57 Работник
58 @else
59 Работодатель
60 @endif
61 </span>
62 @if ($user->admin)
63 <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600">
64 Администратор
65 </span>
66 @endif
67 @if ($user->is_bd)
68 <span 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">
69 База данных
70 </span>
71 @endif
72 </td>
73
74 <td class="px-4 py-3 text-sm">
75 {{ date('d.m.Y', strtotime($user->created_at)) }}
76 </td>
77 </tr>
78 @endforeach
79 </tbody>
80 </table>
81 </div>
82
83 <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800">
84 <?//=$users->appends($_GET)->links('admin.pagginate'); ?>
85 <?=$users->links('admin.pagginate'); ?>
86 </div>
87
resources/views/admin/worker/add.blade.php
File was created 1 <?php
2 use Illuminate\Support\Facades\Storage;
3 ?>
4 @extends('layout.admin', ['title' => 'Админка - Добавление резюме соискателя'])
5
6 @section('content')
7 <form method="POST" action="{{ route('admin.worker-profile-store', ['user' => $user->id]) }}">
8 @csrf
9 <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800">
10 <div class="tabs">
11 <input type="hidden" id="user_id" name="user_id" value="{{ $user->id }}"/>
12 <input type="radio" name="tab-btn" id="tab-btn-1" value="" checked>
13 <label for="tab-btn-1">Общие настройки</label>
14 <input type="radio" name="tab-btn" id="tab-btn-2" value="">
15 <label for="tab-btn-2">Анкета</label>
16 <!--<input type="radio" name="tab-btn" id="tab-btn-3" value="">
17 <label for="tab-btn-3">Вкладка 3</label>-->
18 <div id="content-1">
19 <label class="block text-sm">
20 <span class="text-gray-700 dark:text-gray-400">Должность соискателя</span>
21 <select name="position_work" id="position_work" 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">
22 @foreach($job_titles as $job)
23 <option value="{{ $job->id }}"
24 >{{ $job->name }} ({{ $job->id }})</option>
25 @endforeach
26 </select>
27 @error('position_work')
28 <span class="text-xs text-red-600 dark:text-red-400">
29 {{ $message }}
30 </span>
31 @enderror
32 </label><br>
33
34 <label class="block text-sm">
35 <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Избранный кандидат </p>
36 <input type="hidden" name="favorite_user" value="0" />
37 <input name="favorite_user"
38 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 "
39 placeholder="" type="checkbox" value="1"
40 /><br>
41
42 <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Срочный кандидат</p>
43 <input type="hidden" name="sroch_user" value="0" />
44 <input name="sroch_user" id="sroch_user"
45 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 "
46 placeholder="" type="checkbox" value="1"
47 /><br>
48
49 </label>
50
51 <label class="block text-sm">
52 <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Анкета действительна до <span style="color:#333">{{ $time_end_anketa }}</span></p>
53
54 </label><br>
55 </div>
56 <div id="content-2">
57 <label class="block text-sm">
58 <span class="text-gray-700 dark:text-gray-400">Email</span>
59 <input name="email" id="email"
60 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"
61 placeholder="Почта" value="{{ old('email') ?? '' }}"
62 />
63 @error('email')
64 <span class="text-xs text-red-600 dark:text-red-400">
65 {{ $message }}
66 </span>
67 @enderror
68 </label><br>
69
70 <label class="block text-sm">
71 <span class="text-gray-700 dark:text-gray-400">Телефон</span>
72 <input name="telephone" id="telephone"
73 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"
74 placeholder="Телефон" value="{{ old('telephone') ?? '' }}"
75 />
76 @error('telephone')
77 <span class="text-xs text-red-600 dark:text-red-400">
78 {{ $message }}
79 </span>
80 @enderror
81 </label><br>
82
83 <label class="block text-sm">
84 <span class="text-gray-700 dark:text-gray-400">Адрес</span>
85 <input name="address" id="address"
86 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"
87 placeholder="Адрес" value="{{ old('address') ?? '' }}"
88 />
89 @error('address')
90 <span class="text-xs text-red-600 dark:text-red-400">
91 {{ $message }}
92 </span>
93 @enderror
94 </label><br>
95
96 <label class="block text-sm">
97 <span class="text-gray-700 dark:text-gray-400">Город</span>
98 <input name="city" id="city"
99 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"
100 placeholder="Город" value="{{ old('city') ?? '' }}"
101 />
102 @error('city')
103 <span class="text-xs text-red-600 dark:text-red-400">
104 {{ $message }}
105 </span>
106 @enderror
107 </label><br>
108
109 <label class="block text-sm">
110 <span class="text-gray-700 dark:text-gray-400">Согласие на рассылку</span>
111 <input type="hidden" name="email_data" value="0" />
112 <input name="email_data" id="email_data" checked
113 placeholder=""
114 type="checkbox"
115 value="1"
116 />
117 </label>
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') ?? '' }}</textarea>
126 </label>
127 </div>
128 <div id="content-3">
129
130 </div>
131 </div><br>
132
133 <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4">
134 <div>
135 <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">
136 Сохранить
137 </button>
138 <a href="{{ route('admin.basedata') }}"
139 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"
140 style="display: -webkit-inline-box; height: 30px!important;"
141 >Назад</a>
142 </div>
143 </div>
144 </div>
145 </form>
146 <!--
147 <label class="block mt-4 text-sm">
148 <span class="text-gray-700 dark:text-gray-400">
149 Requested Limit
150 </span>
151 <select
152 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 >
154 <option>$1,000</option>
155 <option>$5,000</option>
156 <option>$10,000</option>
157 <option>$25,000</option>
158 </select>
159 </label>
160
161 <label class="block mt-4 text-sm">
162 <span class="text-gray-700 dark:text-gray-400">
163 Multiselect
164 </span>
165 <select
166 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 multiple
168 >
169 <option>Option 1</option>
170 <option>Option 2</option>
171 <option>Option 3</option>
172 <option>Option 4</option>
173 <option>Option 5</option>
174 </select>
175 </label>
176
177 <label class="block mt-4 text-sm">
178 <span class="text-gray-700 dark:text-gray-400">Message</span>
179 <textarea
180 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 rows="3"
182 placeholder="Enter some long form content."
183 ></textarea>
184 </label>
185
186 <div class="flex mt-6 text-sm">
187 <label class="flex items-center dark:text-gray-400">
188 <input
189 type="checkbox"
190 class="text-purple-600 form-checkbox focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
191 />
192 <span class="ml-2">
193 I agree to the
194 <span class="underline">privacy policy</span>
195 </span>
196 </label>
197 </div>
198 </div>
199
200 <!-- Validation inputs -->
201 <!--<h4
202 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
203 >
204 Validation
205 </h4>
206 <div
207 class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"
208 >
209 <!-- Invalid input -->
210 <!--<label class="block text-sm">
211 <span class="text-gray-700 dark:text-gray-400">
212 Invalid input
213 </span>
214 <input
215 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 placeholder="Jane Doe"
217 />
218 <span class="text-xs text-red-600 dark:text-red-400">
219 Your password is too short.
220 </span>
221 </label>
222
223 <!-- Valid input -->
224 <!--<label class="block mt-4 text-sm">
225 <span class="text-gray-700 dark:text-gray-400">
226 Valid input
227 </span>
228 <input
229 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 placeholder="Jane Doe"
231 />
232 <span class="text-xs text-green-600 dark:text-green-400">
233 Your password is strong.
234 </span>
235 </label>
236
237 <!-- Helper text -->
238 <!--<label class="block mt-4 text-sm">
239 <span class="text-gray-700 dark:text-gray-400">
240 Helper text
241 </span>
242 <input
243 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 placeholder="Jane Doe"
245 />
246 <span class="text-xs text-gray-600 dark:text-gray-400">
247 Your password must be at least 6 characters long.
248 </span>
249 </label>
250 </div>
251
252 <!-- Inputs with icons -->
253 <!--<h4
254 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
255 >
256 Icons
257 </h4>
258 <div
259 class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"
260 >
261 <label class="block text-sm">
262 <span class="text-gray-700 dark:text-gray-400">Icon left</span>
263 <!-- focus-within sets the color for the icon when input is focused -->
264 <!--<div
265 class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400"
266 >
267 <input
268 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 placeholder="Jane Doe"
270 />
271 <div
272 class="absolute inset-y-0 flex items-center ml-3 pointer-events-none"
273 >
274 <svg
275 class="w-5 h-5"
276 aria-hidden="true"
277 fill="none"
278 stroke-linecap="round"
279 stroke-linejoin="round"
280 stroke-width="2"
281 viewBox="0 0 24 24"
282 stroke="currentColor"
283 >
284 <path
285 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 ></path>
287 </svg>
288 </div>
289 </div>
290 </label>
291
292 <label class="block mt-4 text-sm">
293 <span class="text-gray-700 dark:text-gray-400">Icon right</span>
294 <!-- focus-within sets the color for the icon when input is focused -->
295 <!--<div
296 class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400"
297 >
298 <input
299 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 placeholder="Jane Doe"
301 />
302 <div
303 class="absolute inset-y-0 right-0 flex items-center mr-3 pointer-events-none"
304 >
305 <svg
306 class="w-5 h-5"
307 aria-hidden="true"
308 fill="none"
309 stroke-linecap="round"
310 stroke-linejoin="round"
311 stroke-width="2"
312 viewBox="0 0 24 24"
313 stroke="currentColor"
314 >
315 <path
316 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 ></path>
318 </svg>
319 </div>
320 </div>
321 </label>
322 </div>
323
324 <!-- Inputs with buttons -->
325 <!--<h4
326 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
327 >
328 Buttons
329 </h4>
330 <div
331 class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"
332 >
333 <label class="block text-sm">
334 <span class="text-gray-700 dark:text-gray-400">
335 Button left
336 </span>
337 <div class="relative">
338 <input
339 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 placeholder="Jane Doe"
341 />
342 <button
343 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 >
345 Click
346 </button>
347 </div>
348 </label>
349
350 <label class="block mt-4 text-sm">
351 <span class="text-gray-700 dark:text-gray-400">
352 Button right
353 </span>
354 <div
355 class="relative text-gray-500 focus-within:text-purple-600"
356 >
357 <input
358 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 placeholder="Jane Doe"
360 />
361 <button
362 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 >
364 Click
365 </button>
366 </div>
367 </label>
368 </div>-->
369 @endsection
370
resources/views/admin/worker/edit_bd.blade.php
File was created 1 <?php
2 use Illuminate\Support\Facades\Storage;
3 ?>
4 @extends('layout.admin', ['title' => 'Админка - Редактирование соискателя'])
5
6 @section('content')
7 <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300">
8 Соискатель-пользователь: {{$worker->users->surname}} {{$worker->users->name_man}} {{$worker->users->surname2}} ({{$worker->user_id}})"</a>
9 </h4>
10 <form method="POST" action="">
11 @csrf
12 <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800">
13 <div class="tabs">
14 <input type="radio" name="tab-btn" id="tab-btn-1" value="" checked>
15 <label for="tab-btn-1">Общие настройки</label>
16 <input type="radio" name="tab-btn" id="tab-btn-2" value="">
17 <label for="tab-btn-2">Анкета</label>
18 <!--<input type="radio" name="tab-btn" id="tab-btn-3" value="">
19 <label for="tab-btn-3">Вкладка 3</label>-->
20 <div id="content-1">
21 <label class="block text-sm">
22 <span class="text-gray-700 dark:text-gray-400">Должность соискателя</span>
23 <select name="position_work" id="position_work" 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">
24 @foreach($job_titles as $job)
25 <option value="{{ $job->id }}"
26 @if($worker->position_work == $job->id)
27 selected
28 @endif
29 >{{ $job->name }} ({{ $job->id }})</option>
30 @endforeach
31 </select>
32 @error('position_work')
33 <span class="text-xs text-red-600 dark:text-red-400">
34 {{ $message }}
35 </span>
36 @enderror
37 </label><br>
38
39 <label class="block text-sm">
40 <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Избранный кандидат </p>
41 <input type="hidden" name="favorite_user" value="0" />
42 <input name="favorite_user" <? if ($worker->favorite_user) echo "checked";?>
43 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 "
44 placeholder="" type="checkbox" value="1"
45 /><br>
46
47 <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Срочный кандидат</p>
48 <input type="hidden" name="sroch_user" value="0" />
49 <input name="sroch_user" id="sroch_user" <? if ($worker->sroch_user) echo "checked";?>
50 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 "
51 placeholder="" type="checkbox" value="1"
52 /><br>
53
54 </label>
55
56 <label class="block text-sm">
57 <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Анкета действительна до <span style="color:#333">{{ $time_end_anketa }}</span></p>
58
59 </label><br>
60 </div>
61 <div id="content-2">
62 <label class="block text-sm">
63 <span class="text-gray-700 dark:text-gray-400">Email</span>
64 <input name="email" id="email"
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('email') ?? $worker->email ?? '' }}"
67 />
68 @error('email')
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 <input name="telephone" id="telephone"
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"
79 placeholder="Телефон" value="{{ old('telephone') ?? $worker->telephone ?? '' }}"
80 />
81 @error('telephone')
82 <span class="text-xs text-red-600 dark:text-red-400">
83 {{ $message }}
84 </span>
85 @enderror
86 </label><br>
87
88 <label class="block text-sm">
89 <span class="text-gray-700 dark:text-gray-400">Адрес</span>
90 <input name="address" id="address"
91 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"
92 placeholder="Адрес" value="{{ old('address') ?? $worker->address ?? '' }}"
93 />
94 @error('address')
95 <span class="text-xs text-red-600 dark:text-red-400">
96 {{ $message }}
97 </span>
98 @enderror
99 </label><br>
100
101 <label class="block text-sm">
102 <span class="text-gray-700 dark:text-gray-400">Город</span>
103 <input name="city" id="city"
104 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"
105 placeholder="Город" value="{{ old('city') ?? $worker->city ?? '' }}"
106 />
107 @error('city')
108 <span class="text-xs text-red-600 dark:text-red-400">
109 {{ $message }}
110 </span>
111 @enderror
112 </label><br>
113
114 <label class="block text-sm">
115 <span class="text-gray-700 dark:text-gray-400">Фото</span>
116
117 <input name="photo" id="photo" type="file"
118 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"
119 placeholder="Фото" value=""
120 />
121 @isset($worker->photo)
122 <img src="<?=asset(Storage::url($worker->photo))?>" width="150"/>
123 @endisset
124 @error('logo')
125 <span class="text-xs text-red-600 dark:text-red-400">
126 {{ $message }}
127 </span>
128 @enderror
129 </label><br>
130
131 <label class="block text-sm">
132 <span class="text-gray-700 dark:text-gray-400">Согласие на рассылку</span>
133 <input type="hidden" name="email_data" value="0" />
134 <input name="email_data" id="email_data" @php if ($worker->email_data) echo "checked"; @endphp
135 placeholder=""
136 type="checkbox"
137 value="1"
138 />
139 </label>
140
141 <label class="block mt-4 text-sm">
142 <span class="text-gray-700 dark:text-gray-400">Об соискателе</span>
143 <textarea name="text" id="text"
144 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"
145 rows="3"
146 placeholder="О соискателе"
147 >{{ old('text') ?? $worker->text ?? '' }}</textarea>
148 </label>
149 </div>
150 <div id="content-3">
151
152 </div>
153 </div><br>
154
155 <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4">
156 <div>
157 <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">
158 Сохранить
159 </button>
160 <a href="{{ route('admin.workers') }}"
161 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"
162 style="display: -webkit-inline-box; height: 30px!important;"
163 >Назад</a>
164 </div>
165 </div>
166 </div>
167 </form>
168 <!--
169 <label class="block mt-4 text-sm">
170 <span class="text-gray-700 dark:text-gray-400">
171 Requested Limit
172 </span>
173 <select
174 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"
175 >
176 <option>$1,000</option>
177 <option>$5,000</option>
178 <option>$10,000</option>
179 <option>$25,000</option>
180 </select>
181 </label>
182
183 <label class="block mt-4 text-sm">
184 <span class="text-gray-700 dark:text-gray-400">
185 Multiselect
186 </span>
187 <select
188 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"
189 multiple
190 >
191 <option>Option 1</option>
192 <option>Option 2</option>
193 <option>Option 3</option>
194 <option>Option 4</option>
195 <option>Option 5</option>
196 </select>
197 </label>
198
199 <label class="block mt-4 text-sm">
200 <span class="text-gray-700 dark:text-gray-400">Message</span>
201 <textarea
202 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"
203 rows="3"
204 placeholder="Enter some long form content."
205 ></textarea>
206 </label>
207
208 <div class="flex mt-6 text-sm">
209 <label class="flex items-center dark:text-gray-400">
210 <input
211 type="checkbox"
212 class="text-purple-600 form-checkbox focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
213 />
214 <span class="ml-2">
215 I agree to the
216 <span class="underline">privacy policy</span>
217 </span>
218 </label>
219 </div>
220 </div>
221
222 <!-- Validation inputs -->
223 <!--<h4
224 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
225 >
226 Validation
227 </h4>
228 <div
229 class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"
230 >
231 <!-- Invalid input -->
232 <!--<label class="block text-sm">
233 <span class="text-gray-700 dark:text-gray-400">
234 Invalid input
235 </span>
236 <input
237 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"
238 placeholder="Jane Doe"
239 />
240 <span class="text-xs text-red-600 dark:text-red-400">
241 Your password is too short.
242 </span>
243 </label>
244
245 <!-- Valid input -->
246 <!--<label class="block mt-4 text-sm">
247 <span class="text-gray-700 dark:text-gray-400">
248 Valid input
249 </span>
250 <input
251 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"
252 placeholder="Jane Doe"
253 />
254 <span class="text-xs text-green-600 dark:text-green-400">
255 Your password is strong.
256 </span>
257 </label>
258
259 <!-- Helper text -->
260 <!--<label class="block mt-4 text-sm">
261 <span class="text-gray-700 dark:text-gray-400">
262 Helper text
263 </span>
264 <input
265 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"
266 placeholder="Jane Doe"
267 />
268 <span class="text-xs text-gray-600 dark:text-gray-400">
269 Your password must be at least 6 characters long.
270 </span>
271 </label>
272 </div>
273
274 <!-- Inputs with icons -->
275 <!--<h4
276 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
277 >
278 Icons
279 </h4>
280 <div
281 class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"
282 >
283 <label class="block text-sm">
284 <span class="text-gray-700 dark:text-gray-400">Icon left</span>
285 <!-- focus-within sets the color for the icon when input is focused -->
286 <!--<div
287 class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400"
288 >
289 <input
290 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"
291 placeholder="Jane Doe"
292 />
293 <div
294 class="absolute inset-y-0 flex items-center ml-3 pointer-events-none"
295 >
296 <svg
297 class="w-5 h-5"
298 aria-hidden="true"
299 fill="none"
300 stroke-linecap="round"
301 stroke-linejoin="round"
302 stroke-width="2"
303 viewBox="0 0 24 24"
304 stroke="currentColor"
305 >
306 <path
307 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"
308 ></path>
309 </svg>
310 </div>
311 </div>
312 </label>
313
314 <label class="block mt-4 text-sm">
315 <span class="text-gray-700 dark:text-gray-400">Icon right</span>
316 <!-- focus-within sets the color for the icon when input is focused -->
317 <!--<div
318 class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400"
319 >
320 <input
321 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"
322 placeholder="Jane Doe"
323 />
324 <div
325 class="absolute inset-y-0 right-0 flex items-center mr-3 pointer-events-none"
326 >
327 <svg
328 class="w-5 h-5"
329 aria-hidden="true"
330 fill="none"
331 stroke-linecap="round"
332 stroke-linejoin="round"
333 stroke-width="2"
334 viewBox="0 0 24 24"
335 stroke="currentColor"
336 >
337 <path
338 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"
339 ></path>
340 </svg>
341 </div>
342 </div>
343 </label>
344 </div>
345
346 <!-- Inputs with buttons -->
347 <!--<h4
348 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
349 >
350 Buttons
351 </h4>
352 <div
353 class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"
354 >
355 <label class="block text-sm">
356 <span class="text-gray-700 dark:text-gray-400">
357 Button left
358 </span>
359 <div class="relative">
360 <input
361 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"
362 placeholder="Jane Doe"
363 />
364 <button
365 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"
366 >
367 Click
368 </button>
369 </div>
370 </label>
371
372 <label class="block mt-4 text-sm">
373 <span class="text-gray-700 dark:text-gray-400">
374 Button right
375 </span>
376 <div
377 class="relative text-gray-500 focus-within:text-purple-600"
378 >
379 <input
380 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"
381 placeholder="Jane Doe"
382 />
383 <button
384 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"
385 >
386 Click
387 </button>
388 </div>
389 </label>
390 </div>-->
391 @endsection
392
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 <link rel="stylesheet" href="{{ asset('./assets/css/tabs.css')}}" /> 12 <link rel="stylesheet" href="{{ asset('./assets/css/tabs.css')}}" />
13 <script 13 <script
14 src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js" 14 src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"
15 defer 15 defer
16 ></script> 16 ></script>
17 <script src="{{ asset('./assets/js/init-alpine.js') }}"></script> 17 <script src="{{ asset('./assets/js/init-alpine.js') }}"></script>
18 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"/> 18 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"/>
19 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js" defer></script> 19 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js" defer></script>
20 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 20 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
21 <script src="{{ asset('./assets/js/charts-lines.js') }}" defer></script> 21 <script src="{{ asset('./assets/js/charts-lines.js') }}" defer></script>
22 <script src="{{ asset('./assets/js/charts-pie.js') }}" defer></script> 22 <script src="{{ asset('./assets/js/charts-pie.js') }}" defer></script>
23 </head> 23 </head>
24 <body> 24 <body>
25 <div class="flex h-screen bg-gray-50 dark:bg-gray-900" :class="{ 'overflow-hidden': isSideMenuOpen }"> 25 <div class="flex h-screen bg-gray-50 dark:bg-gray-900" :class="{ 'overflow-hidden': isSideMenuOpen }">
26 <!-- Desktop sidebar --> 26 <!-- Desktop sidebar -->
27 <aside 27 <aside
28 class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0" 28 class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0"
29 > 29 >
30 <div class="py-4 text-gray-500 dark:text-gray-400"> 30 <div class="py-4 text-gray-500 dark:text-gray-400">
31 <a class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" 31 <a 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 </a> 34 </a>
35 <ul class="mt-6"> 35 <ul class="mt-6">
36 <li class="relative px-6 py-3"> 36 <li class="relative px-6 py-3">
37 <span 37 <span
38 class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" 38 class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
39 aria-hidden="true" 39 aria-hidden="true"
40 ></span> 40 ></span>
41 <!--class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100" 41 <!--class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
42 --> 42 -->
43 <a 43 <a
44 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.index') ? 'dark:text-gray-100' : null }}" 44 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.index') ? 'dark:text-gray-100' : null }}"
45 href="{{ route('admin.index') }}" 45 href="{{ route('admin.index') }}"
46 > 46 >
47 <svg 47 <svg
48 class="w-5 h-5" 48 class="w-5 h-5"
49 aria-hidden="true" 49 aria-hidden="true"
50 fill="none" 50 fill="none"
51 stroke-linecap="round" 51 stroke-linecap="round"
52 stroke-linejoin="round" 52 stroke-linejoin="round"
53 stroke-width="2" 53 stroke-width="2"
54 viewBox="0 0 24 24" 54 viewBox="0 0 24 24"
55 stroke="currentColor" 55 stroke="currentColor"
56 > 56 >
57 <path 57 <path
58 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 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"
59 ></path> 59 ></path>
60 </svg> 60 </svg>
61 <span class="ml-4">Главная страница</span> 61 <span class="ml-4">Главная страница</span>
62 </a> 62 </a>
63 </li> 63 </li>
64 </ul> 64 </ul>
65 <ul> 65 <ul>
66 @if ($UserId == 1) 66 @if ($UserId == 1)
67 <li class="relative px-6 py-3"> 67 <li class="relative px-6 py-3">
68 <a 68 <a
69 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.users') ? 'dark:text-gray-100' : null }}" 69 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.users') ? 'dark:text-gray-100' : null }}"
70 href="{{ route('admin.users') }}" 70 href="{{ route('admin.users') }}"
71 > 71 >
72 <svg 72 <svg
73 class="w-5 h-5" 73 class="w-5 h-5"
74 aria-hidden="true" 74 aria-hidden="true"
75 fill="none" 75 fill="none"
76 stroke-linecap="round" 76 stroke-linecap="round"
77 stroke-linejoin="round" 77 stroke-linejoin="round"
78 stroke-width="2" 78 stroke-width="2"
79 viewBox="0 0 24 24" 79 viewBox="0 0 24 24"
80 stroke="currentColor" 80 stroke="currentColor"
81 > 81 >
82 <path 82 <path
83 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" 83 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"
84 ></path> 84 ></path>
85 </svg> 85 </svg>
86 <span class="ml-4">Пользователи</span> 86 <span class="ml-4">Пользователи</span>
87 </a> 87 </a>
88 </li> 88 </li>
89 @endif 89 @endif
90 <li class="relative px-6 py-3"> 90 <li class="relative px-6 py-3">
91 <a 91 <a
92 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.admin-users') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.admin-users') }}" 92 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.admin-users') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.admin-users') }}"
93 > 93 >
94 <svg 94 <svg
95 class="w-5 h-5" 95 class="w-5 h-5"
96 aria-hidden="true" 96 aria-hidden="true"
97 fill="none" 97 fill="none"
98 stroke-linecap="round" 98 stroke-linecap="round"
99 stroke-linejoin="round" 99 stroke-linejoin="round"
100 stroke-width="2" 100 stroke-width="2"
101 viewBox="0 0 24 24" 101 viewBox="0 0 24 24"
102 stroke="currentColor" 102 stroke="currentColor"
103 > 103 >
104 <path 104 <path
105 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" 105 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"
106 ></path> 106 ></path>
107 </svg> 107 </svg>
108 <span class="ml-4">Администраторы</span> 108 <span class="ml-4">Администраторы</span>
109 </a> 109 </a>
110 </li> 110 </li>
111 <li class="relative px-6 py-3"> 111 <li class="relative px-6 py-3">
112 <a 112 <a
113 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.employers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.employers') }}" 113 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.employers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.employers') }}"
114 > 114 >
115 <svg 115 <svg
116 class="w-5 h-5" 116 class="w-5 h-5"
117 aria-hidden="true" 117 aria-hidden="true"
118 fill="none" 118 fill="none"
119 stroke-linecap="round" 119 stroke-linecap="round"
120 stroke-linejoin="round" 120 stroke-linejoin="round"
121 stroke-width="2" 121 stroke-width="2"
122 viewBox="0 0 24 24" 122 viewBox="0 0 24 24"
123 stroke="currentColor" 123 stroke="currentColor"
124 > 124 >
125 <path 125 <path
126 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" 126 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"
127 ></path> 127 ></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 {{ Request::routeIs('admin.workers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.workers') }}" 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 {{ Request::routeIs('admin.workers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.workers') }}"
135 > 135 >
136 <svg 136 <svg
137 class="w-5 h-5" 137 class="w-5 h-5"
138 aria-hidden="true" 138 aria-hidden="true"
139 fill="none" 139 fill="none"
140 stroke-linecap="round" 140 stroke-linecap="round"
141 stroke-linejoin="round" 141 stroke-linejoin="round"
142 stroke-width="2" 142 stroke-width="2"
143 viewBox="0 0 24 24" 143 viewBox="0 0 24 24"
144 stroke="currentColor" 144 stroke="currentColor"
145 > 145 >
146 <path 146 <path
147 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" 147 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
148 ></path> 148 ></path>
149 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> 149 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></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 {{ Request::routeIs('admin.ad-employers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.ad-employers') }}" 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 {{ Request::routeIs('admin.ad-employers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.ad-employers') }}"
157 > 157 >
158 <svg 158 <svg
159 class="w-5 h-5" 159 class="w-5 h-5"
160 aria-hidden="true" 160 aria-hidden="true"
161 fill="none" 161 fill="none"
162 stroke-linecap="round" 162 stroke-linecap="round"
163 stroke-linejoin="round" 163 stroke-linejoin="round"
164 stroke-width="2" 164 stroke-width="2"
165 viewBox="0 0 24 24" 165 viewBox="0 0 24 24"
166 stroke="currentColor" 166 stroke="currentColor"
167 > 167 >
168 <path 168 <path
169 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" 169 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"
170 ></path> 170 ></path>
171 </svg> 171 </svg>
172 <span class="ml-4">Вакансии</span> 172 <span class="ml-4">Вакансии</span>
173 </a> 173 </a>
174 </li> 174 </li>
175 175
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 {{ Request::routeIs('admin.messages') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.messages') }}" 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 {{ Request::routeIs('admin.messages') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.messages') }}"
179 > 179 >
180 <svg 180 <svg
181 class="w-5 h-5" 181 class="w-5 h-5"
182 aria-hidden="true" 182 aria-hidden="true"
183 fill="none" 183 fill="none"
184 stroke-linecap="round" 184 stroke-linecap="round"
185 stroke-linejoin="round" 185 stroke-linejoin="round"
186 stroke-width="2" 186 stroke-width="2"
187 viewBox="0 0 24 24" 187 viewBox="0 0 24 24"
188 stroke="currentColor" 188 stroke="currentColor"
189 > 189 >
190 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 190 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
191 </svg> 191 </svg>
192 <span class="ml-4">Сообщения все</span> 192 <span class="ml-4">Сообщения все</span>
193 </a> 193 </a>
194 </li> 194 </li>
195
196 <li class="relative px-6 py-3">
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 {{ Request::routeIs('admin.admin-messages') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.admin-messages') }}"
199 >
200 <svg
201 class="w-5 h-5"
202 aria-hidden="true"
203 fill="none"
204 stroke-linecap="round"
205 stroke-linejoin="round"
206 stroke-width="2"
207 viewBox="0 0 24 24"
208 stroke="currentColor"
209 >
210 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
211 </svg>
212 <span class="ml-4">Заявки на рассылку</span>
213 </a>
214 </li>
215
195 <li class="relative px-6 py-3"> 216 <li class="relative px-6 py-3">
196 <a 217 <a
197 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.groups') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.groups') }}" 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 {{ Request::routeIs('admin.groups') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.groups') }}"
198 > 219 >
199 <svg 220 <svg
200 class="w-5 h-5" 221 class="w-5 h-5"
201 aria-hidden="true" 222 aria-hidden="true"
202 fill="none" 223 fill="none"
203 stroke-linecap="round" 224 stroke-linecap="round"
204 stroke-linejoin="round" 225 stroke-linejoin="round"
205 stroke-width="2" 226 stroke-width="2"
206 viewBox="0 0 24 24" 227 viewBox="0 0 24 24"
207 stroke="currentColor" 228 stroke="currentColor"
208 > 229 >
209 <path 230 <path
210 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" 231 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"
211 ></path> 232 ></path>
212 </svg> 233 </svg>
213 <span class="ml-4">Группы пользователей</span> 234 <span class="ml-4">Группы пользователей</span>
214 </a> 235 </a>
215 </li> 236 </li>
216 @if ($UserId == 1) 237 @if ($UserId == 1)
217 <li class="relative px-6 py-3"> 238 <li class="relative px-6 py-3">
218 <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 {{ Request::routeIs('admin.roles') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.roles') }}"> 239 <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 {{ Request::routeIs('admin.roles') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.roles') }}">
219 <svg 240 <svg
220 class="w-5 h-5" 241 class="w-5 h-5"
221 aria-hidden="true" 242 aria-hidden="true"
222 fill="none" 243 fill="none"
223 stroke-linecap="round" 244 stroke-linecap="round"
224 stroke-linejoin="round" 245 stroke-linejoin="round"
225 stroke-width="2" 246 stroke-width="2"
226 viewBox="0 0 24 24" 247 viewBox="0 0 24 24"
227 stroke="currentColor" 248 stroke="currentColor"
228 > 249 >
229 <path 250 <path
230 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" 251 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"
231 ></path> 252 ></path>
232 </svg> 253 </svg>
233 <span class="ml-4">Роли пользователей</span> 254 <span class="ml-4">Роли пользователей</span>
234 </a> 255 </a>
235 </li> 256 </li>
236 @endif 257 @endif
237 <li class="relative px-6 py-3"> 258 <li class="relative px-6 py-3">
259 <a
260 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.basedata') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.basedata') }}"
261 >
262 <svg
263 class="w-5 h-5"
264 aria-hidden="true"
265 fill="none"
266 stroke-linecap="round"
267 stroke-linejoin="round"
268 stroke-width="2"
269 viewBox="0 0 24 24"
270 stroke="currentColor"
271 >
272 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
273 </svg>
274 <span class="ml-4">Базы данных</span>
275 </a>
276 </li>
277
278 <li class="relative px-6 py-3">
238 <a 279 <a
239 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.education.index') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.education.index') }}" 280 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.education.index') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.education.index') }}"
240 > 281 >
241 <svg 282 <svg
242 class="w-5 h-5" 283 class="w-5 h-5"
243 aria-hidden="true" 284 aria-hidden="true"
244 fill="none" 285 fill="none"
245 stroke-linecap="round" 286 stroke-linecap="round"
246 stroke-linejoin="round" 287 stroke-linejoin="round"
247 stroke-width="2" 288 stroke-width="2"
248 viewBox="0 0 24 24" 289 viewBox="0 0 24 24"
249 stroke="currentColor" 290 stroke="currentColor"
250 > 291 >
251 <path 292 <path
252 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" 293 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"
253 ></path> 294 ></path>
254 </svg> 295 </svg>
255 <span class="ml-4">Учебн.заведения</span> 296 <span class="ml-4">Учебн.заведения</span>
256 </a> 297 </a>
257 </li> 298 </li>
299
258 <li class="relative px-6 py-3"> 300 <li class="relative px-6 py-3">
259 <a 301 <a
260 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.statics') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.statics') }}" 302 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.statics') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.statics') }}"
261 > 303 >
262 <svg 304 <svg
263 class="w-5 h-5" 305 class="w-5 h-5"
264 aria-hidden="true" 306 aria-hidden="true"
265 fill="none" 307 fill="none"
266 stroke-linecap="round" 308 stroke-linecap="round"
267 stroke-linejoin="round" 309 stroke-linejoin="round"
268 stroke-width="2" 310 stroke-width="2"
269 viewBox="0 0 24 24" 311 viewBox="0 0 24 24"
270 stroke="currentColor" 312 stroke="currentColor"
271 > 313 >
272 <path 314 <path
273 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" 315 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
274 ></path> 316 ></path>
275 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> 317 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
276 </svg> 318 </svg>
277 <span class="ml-4">Статистика</span> 319 <span class="ml-4">Статистика</span>
278 </a> 320 </a>
279 </li> 321 </li>
280 <li class="relative px-6 py-3"> 322 <li class="relative px-6 py-3">
281 <a 323 <a
282 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.answers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.answers') }}" 324 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.answers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.answers') }}"
283 > 325 >
284 <svg 326 <svg
285 class="w-5 h-5" 327 class="w-5 h-5"
286 aria-hidden="true" 328 aria-hidden="true"
287 fill="none" 329 fill="none"
288 stroke-linecap="round" 330 stroke-linecap="round"
289 stroke-linejoin="round" 331 stroke-linejoin="round"
290 stroke-width="2" 332 stroke-width="2"
291 viewBox="0 0 24 24" 333 viewBox="0 0 24 24"
292 stroke="currentColor" 334 stroke="currentColor"
293 > 335 >
294 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 336 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
295 </svg> 337 </svg>
296 <span class="ml-4">Модерация</span> 338 <span class="ml-4">Модерация</span>
297 </a> 339 </a>
298 </li> 340 </li>
299 <li class="relative px-6 py-3"> 341 <li class="relative px-6 py-3">
300 <a 342 <a
301 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.reclames') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.reclames') }}" 343 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.reclames') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.reclames') }}"
302 > 344 >
303 <svg 345 <svg
304 class="w-5 h-5" 346 class="w-5 h-5"
305 aria-hidden="true" 347 aria-hidden="true"
306 fill="none" 348 fill="none"
307 stroke-linecap="round" 349 stroke-linecap="round"
308 stroke-linejoin="round" 350 stroke-linejoin="round"
309 stroke-width="2" 351 stroke-width="2"
310 viewBox="0 0 24 24" 352 viewBox="0 0 24 24"
311 stroke="currentColor" 353 stroke="currentColor"
312 > 354 >
313 <path 355 <path
314 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" 356 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"
315 ></path> 357 ></path>
316 </svg> 358 </svg>
317 <span class="ml-4">Реклама</span> 359 <span class="ml-4">Реклама</span>
318 </a> 360 </a>
319 </li> 361 </li>
320 <!-- Справочники --> 362 <!-- Справочники -->
321 <li class="relative px-6 py-3" x-data="{ open1: false }"> 363 <li class="relative px-6 py-3" x-data="{ open1: false }">
322 <button 364 <button
323 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" 365 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"
324 @click="open1=!open1" 366 @click="open1=!open1"
325 aria-haspopup="true"> 367 aria-haspopup="true">
326 <span class="inline-flex items-center"> 368 <span class="inline-flex items-center">
327 <svg 369 <svg
328 class="w-5 h-5" 370 class="w-5 h-5"
329 aria-hidden="true" 371 aria-hidden="true"
330 fill="none" 372 fill="none"
331 stroke-linecap="round" 373 stroke-linecap="round"
332 stroke-linejoin="round" 374 stroke-linejoin="round"
333 stroke-width="2" 375 stroke-width="2"
334 viewBox="0 0 24 24" 376 viewBox="0 0 24 24"
335 stroke="currentColor"> 377 stroke="currentColor">
336 <path 378 <path
337 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" 379 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"
338 ></path> 380 ></path>
339 </svg> 381 </svg>
340 <span class="ml-4">Справочники</span> 382 <span class="ml-4">Справочники</span>
341 </span> 383 </span>
342 <svg 384 <svg
343 class="w-4 h-4" 385 class="w-4 h-4"
344 aria-hidden="true" 386 aria-hidden="true"
345 fill="currentColor" 387 fill="currentColor"
346 viewBox="0 0 20 20" 388 viewBox="0 0 20 20"
347 > 389 >
348 <path 390 <path
349 fill-rule="evenodd" 391 fill-rule="evenodd"
350 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" 392 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"
351 clip-rule="evenodd" 393 clip-rule="evenodd"
352 ></path> 394 ></path>
353 </svg> 395 </svg>
354 </button> 396 </button>
355 <template x-if="open1"> 397 <template x-if="open1">
356 <ul 398 <ul
357 x-transition:enter="transition-all ease-in-out duration-300" 399 x-transition:enter="transition-all ease-in-out duration-300"
358 x-transition:enter-start="opacity-25 max-h-0" 400 x-transition:enter-start="opacity-25 max-h-0"
359 x-transition:enter-end="opacity-100 max-h-xl" 401 x-transition:enter-end="opacity-100 max-h-xl"
360 x-transition:leave="transition-all ease-in-out duration-300" 402 x-transition:leave="transition-all ease-in-out duration-300"
361 x-transition:leave-start="opacity-100 max-h-xl" 403 x-transition:leave-start="opacity-100 max-h-xl"
362 x-transition:leave-end="opacity-0 max-h-0" 404 x-transition:leave-end="opacity-0 max-h-0"
363 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" 405 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"
364 aria-label="submenu" 406 aria-label="submenu"
365 > 407 >
366 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.job-titles.index') ? 'dark:text-gray-100' : null }}"> 408 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.job-titles.index') ? 'dark:text-gray-100' : null }}">
367 <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a> 409 <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a>
368 </li> 410 </li>
369 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.categories.index') ? 'dark:text-gray-100' : null }}"> 411 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.categories.index') ? 'dark:text-gray-100' : null }}">
370 <a class="w-full" href="{{ route('admin.categories.index') }}">Категории вакансий</a> 412 <a class="w-full" href="{{ route('admin.categories.index') }}">Категории вакансий</a>
371 </li> 413 </li>
372 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.category-emp.index') ? 'dark:text-gray-100' : null }}"> 414 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.category-emp.index') ? 'dark:text-gray-100' : null }}">
373 <a class="w-full" href="{{ route('admin.category-emp.index') }}">Категории работодателей</a> 415 <a class="w-full" href="{{ route('admin.category-emp.index') }}">Категории работодателей</a>
374 </li> 416 </li>
375 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.infobloks.index') ? 'dark:text-gray-100' : null }}"> 417 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.infobloks.index') ? 'dark:text-gray-100' : null }}">
376 <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a> 418 <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a>
377 </li> 419 </li>
378 420
379 </ul> 421 </ul>
380 </template> 422 </template>
381 </li> 423 </li>
382 424
383 425
384 <!-- Редактор --> 426 <!-- Редактор -->
385 <li class="relative px-6 py-3"> 427 <li class="relative px-6 py-3">
386 <button 428 <button
387 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" 429 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"
388 @click="togglePagesMenu" 430 @click="togglePagesMenu"
389 aria-haspopup="true"> 431 aria-haspopup="true">
390 <span class="inline-flex items-center"> 432 <span class="inline-flex items-center">
391 <svg 433 <svg
392 class="w-5 h-5" 434 class="w-5 h-5"
393 aria-hidden="true" 435 aria-hidden="true"
394 fill="none" 436 fill="none"
395 stroke-linecap="round" 437 stroke-linecap="round"
396 stroke-linejoin="round" 438 stroke-linejoin="round"
397 stroke-width="2" 439 stroke-width="2"
398 viewBox="0 0 24 24" 440 viewBox="0 0 24 24"
399 stroke="currentColor"> 441 stroke="currentColor">
400 <path 442 <path
401 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" 443 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"
402 ></path> 444 ></path>
403 </svg> 445 </svg>
404 <span class="ml-4">Редактор</span> 446 <span class="ml-4">Редактор</span>
405 </span> 447 </span>
406 <svg 448 <svg
407 class="w-4 h-4" 449 class="w-4 h-4"
408 aria-hidden="true" 450 aria-hidden="true"
409 fill="currentColor" 451 fill="currentColor"
410 viewBox="0 0 20 20" 452 viewBox="0 0 20 20"
411 > 453 >
412 <path 454 <path
413 fill-rule="evenodd" 455 fill-rule="evenodd"
414 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" 456 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"
415 clip-rule="evenodd" 457 clip-rule="evenodd"
416 ></path> 458 ></path>
417 </svg> 459 </svg>
418 </button> 460 </button>
419 <template x-if="isPagesMenuOpen"> 461 <template x-if="isPagesMenuOpen">
420 <ul 462 <ul
421 x-transition:enter="transition-all ease-in-out duration-300" 463 x-transition:enter="transition-all ease-in-out duration-300"
422 x-transition:enter-start="opacity-25 max-h-0" 464 x-transition:enter-start="opacity-25 max-h-0"
423 x-transition:enter-end="opacity-100 max-h-xl" 465 x-transition:enter-end="opacity-100 max-h-xl"
424 x-transition:leave="transition-all ease-in-out duration-300" 466 x-transition:leave="transition-all ease-in-out duration-300"
425 x-transition:leave-start="opacity-100 max-h-xl" 467 x-transition:leave-start="opacity-100 max-h-xl"
426 x-transition:leave-end="opacity-0 max-h-0" 468 x-transition:leave-end="opacity-0 max-h-0"
427 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" 469 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"
428 aria-label="submenu" 470 aria-label="submenu"
429 > 471 >
430 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-site') ? 'dark:text-gray-100' : null }}"> 472 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-site') ? 'dark:text-gray-100' : null }}">
431 <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> 473 <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a>
432 </li> 474 </li>
433 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.edit-blocks') ? 'dark:text-gray-100' : null }}"> 475 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.edit-blocks') ? 'dark:text-gray-100' : null }}">
434 <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> 476 <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a>
435 </li> 477 </li>
436 478
437 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-seo') ? 'dark:text-gray-100' : null }}"> 479 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-seo') ? 'dark:text-gray-100' : null }}">
438 <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> 480 <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a>
439 </li> 481 </li>
440 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-pages') ? 'dark:text-gray-100' : null }}"> 482 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-pages') ? 'dark:text-gray-100' : null }}">
441 <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> 483 <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a>
442 </li> 484 </li>
443 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.job-titles-main') ? 'dark:text-gray-100' : null }}"> 485 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.job-titles-main') ? 'dark:text-gray-100' : null }}">
444 <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> 486 <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a>
445 </li> 487 </li>
446 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.employers-main') ? 'dark:text-gray-100' : null }}"> 488 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.employers-main') ? 'dark:text-gray-100' : null }}">
447 <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> 489 <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a>
448 </li> 490 </li>
449 </ul> 491 </ul>
450 </template> 492 </template>
451 </li> 493 </li>
452 494
453 </ul> 495 </ul>
454 <!--<div class="px-6 my-6"> 496 <!--<div class="px-6 my-6">
455 <button 497 <button
456 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" 498 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"
457 > 499 >
458 Create account 500 Create account
459 <span class="ml-2" aria-hidden="true">+</span> 501 <span class="ml-2" aria-hidden="true">+</span>
460 </button> 502 </button>
461 </div>--> 503 </div>-->
462 </div> 504 </div>
463 </aside> 505 </aside>
464 <!-- Mobile sidebar --> 506 <!-- Mobile sidebar -->
465 <!-- Backdrop --> 507 <!-- Backdrop -->
466 <div 508 <div
467 x-show="isSideMenuOpen" 509 x-show="isSideMenuOpen"
468 x-transition:enter="transition ease-in-out duration-150" 510 x-transition:enter="transition ease-in-out duration-150"
469 x-transition:enter-start="opacity-0" 511 x-transition:enter-start="opacity-0"
470 x-transition:enter-end="opacity-100" 512 x-transition:enter-end="opacity-100"
471 x-transition:leave="transition ease-in-out duration-150" 513 x-transition:leave="transition ease-in-out duration-150"
472 x-transition:leave-start="opacity-100" 514 x-transition:leave-start="opacity-100"
473 x-transition:leave-end="opacity-0" 515 x-transition:leave-end="opacity-0"
474 class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center" 516 class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center"
475 ></div> 517 ></div>
476 <aside 518 <aside
477 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" 519 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"
478 x-show="isSideMenuOpen" 520 x-show="isSideMenuOpen"
479 x-transition:enter="transition ease-in-out duration-150" 521 x-transition:enter="transition ease-in-out duration-150"
480 x-transition:enter-start="opacity-0 transform -translate-x-20" 522 x-transition:enter-start="opacity-0 transform -translate-x-20"
481 x-transition:enter-end="opacity-100" 523 x-transition:enter-end="opacity-100"
482 x-transition:leave="transition ease-in-out duration-150" 524 x-transition:leave="transition ease-in-out duration-150"
483 x-transition:leave-start="opacity-100" 525 x-transition:leave-start="opacity-100"
484 x-transition:leave-end="opacity-0 transform -translate-x-20" 526 x-transition:leave-end="opacity-0 transform -translate-x-20"
485 @click.away="closeSideMenu" 527 @click.away="closeSideMenu"
486 @keydown.escape="closeSideMenu" 528 @keydown.escape="closeSideMenu"
487 > 529 >
488 <div class="py-4 text-gray-500 dark:text-gray-400"> 530 <div class="py-4 text-gray-500 dark:text-gray-400">
489 <a 531 <a
490 class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" 532 class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
491 href="{{ route('admin.index') }}" 533 href="{{ route('admin.index') }}"
492 > 534 >
493 Админка 535 Админка
494 </a> 536 </a>
495 <ul class="mt-6"> 537 <ul class="mt-6">
496 <li class="relative px-6 py-3"> 538 <li class="relative px-6 py-3">
497 <span 539 <span
498 class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" 540 class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
499 aria-hidden="true" 541 aria-hidden="true"
500 ></span> 542 ></span>
501 <a 543 <a
502 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.index') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.index') }}" 544 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.index') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.index') }}"
503 > 545 >
504 <svg 546 <svg
505 class="w-5 h-5" 547 class="w-5 h-5"
506 aria-hidden="true" 548 aria-hidden="true"
507 fill="none" 549 fill="none"
508 stroke-linecap="round" 550 stroke-linecap="round"
509 stroke-linejoin="round" 551 stroke-linejoin="round"
510 stroke-width="2" 552 stroke-width="2"
511 viewBox="0 0 24 24" 553 viewBox="0 0 24 24"
512 stroke="currentColor" 554 stroke="currentColor"
513 > 555 >
514 <path 556 <path
515 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" 557 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"
516 ></path> 558 ></path>
517 </svg> 559 </svg>
518 <span class="ml-4">Главная страница</span> 560 <span class="ml-4">Главная страница</span>
519 </a> 561 </a>
520 </li> 562 </li>
521 </ul> 563 </ul>
522 <ul> 564 <ul>
523 @if ($UserId == 1) 565 @if ($UserId == 1)
524 <li class="relative px-6 py-3"> 566 <li class="relative px-6 py-3">
525 <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 {{ Request::routeIs('admin.users') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.users') }}"> 567 <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 {{ Request::routeIs('admin.users') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.users') }}">
526 <svg 568 <svg
527 class="w-5 h-5" 569 class="w-5 h-5"
528 aria-hidden="true" 570 aria-hidden="true"
529 fill="none" 571 fill="none"
530 stroke-linecap="round" 572 stroke-linecap="round"
531 stroke-linejoin="round" 573 stroke-linejoin="round"
532 stroke-width="2" 574 stroke-width="2"
533 viewBox="0 0 24 24" 575 viewBox="0 0 24 24"
534 stroke="currentColor" 576 stroke="currentColor"
535 > 577 >
536 <path 578 <path
537 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" 579 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"
538 ></path> 580 ></path>
539 </svg> 581 </svg>
540 <span class="ml-4">Пользователи</span> 582 <span class="ml-4">Пользователи</span>
541 </a> 583 </a>
542 </li> 584 </li>
543 @endif 585 @endif
544 <li class="relative px-6 py-3"> 586 <li class="relative px-6 py-3">
545 <a 587 <a
546 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.admin-users') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.admin-users') }}" 588 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.admin-users') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.admin-users') }}"
547 > 589 >
548 <svg 590 <svg
549 class="w-5 h-5" 591 class="w-5 h-5"
550 aria-hidden="true" 592 aria-hidden="true"
551 fill="none" 593 fill="none"
552 stroke-linecap="round" 594 stroke-linecap="round"
553 stroke-linejoin="round" 595 stroke-linejoin="round"
554 stroke-width="2" 596 stroke-width="2"
555 viewBox="0 0 24 24" 597 viewBox="0 0 24 24"
556 stroke="currentColor" 598 stroke="currentColor"
557 > 599 >
558 <path 600 <path
559 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" 601 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"
560 ></path> 602 ></path>
561 </svg> 603 </svg>
562 <span class="ml-4">Администраторы</span> 604 <span class="ml-4">Администраторы</span>
563 </a> 605 </a>
564 </li> 606 </li>
565 607
566 <li class="relative px-6 py-3"> 608 <li class="relative px-6 py-3">
567 <a 609 <a
568 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.employers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.employers') }}" 610 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.employers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.employers') }}"
569 > 611 >
570 <svg 612 <svg
571 class="w-5 h-5" 613 class="w-5 h-5"
572 aria-hidden="true" 614 aria-hidden="true"
573 fill="none" 615 fill="none"
574 stroke-linecap="round" 616 stroke-linecap="round"
575 stroke-linejoin="round" 617 stroke-linejoin="round"
576 stroke-width="2" 618 stroke-width="2"
577 viewBox="0 0 24 24" 619 viewBox="0 0 24 24"
578 stroke="currentColor" 620 stroke="currentColor"
579 > 621 >
580 <path 622 <path
581 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" 623 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"
582 ></path> 624 ></path>
583 </svg> 625 </svg>
584 <span class="ml-4">Работодатели</span> 626 <span class="ml-4">Работодатели</span>
585 </a> 627 </a>
586 </li> 628 </li>
587 <li class="relative px-6 py-3"> 629 <li class="relative px-6 py-3">
588 <a 630 <a
589 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.workers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.workers') }}" 631 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.workers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.workers') }}"
590 > 632 >
591 <svg 633 <svg
592 class="w-5 h-5" 634 class="w-5 h-5"
593 aria-hidden="true" 635 aria-hidden="true"
594 fill="none" 636 fill="none"
595 stroke-linecap="round" 637 stroke-linecap="round"
596 stroke-linejoin="round" 638 stroke-linejoin="round"
597 stroke-width="2" 639 stroke-width="2"
598 viewBox="0 0 24 24" 640 viewBox="0 0 24 24"
599 stroke="currentColor" 641 stroke="currentColor"
600 > 642 >
601 <path 643 <path
602 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" 644 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
603 ></path> 645 ></path>
604 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> 646 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
605 </svg> 647 </svg>
606 <span class="ml-4">Соискатели</span> 648 <span class="ml-4">Соискатели</span>
607 </a> 649 </a>
608 </li> 650 </li>
609 <li class="relative px-6 py-3"> 651 <li class="relative px-6 py-3">
610 <a 652 <a
611 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.ad-employers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.ad-employers') }}" 653 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.ad-employers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.ad-employers') }}"
612 > 654 >
613 <svg 655 <svg
614 class="w-5 h-5" 656 class="w-5 h-5"
615 aria-hidden="true" 657 aria-hidden="true"
616 fill="none" 658 fill="none"
617 stroke-linecap="round" 659 stroke-linecap="round"
618 stroke-linejoin="round" 660 stroke-linejoin="round"
619 stroke-width="2" 661 stroke-width="2"
620 viewBox="0 0 24 24" 662 viewBox="0 0 24 24"
621 stroke="currentColor" 663 stroke="currentColor"
622 > 664 >
623 <path 665 <path
624 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" 666 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"
625 ></path> 667 ></path>
626 </svg> 668 </svg>
627 <span class="ml-4">Вакансии</span> 669 <span class="ml-4">Вакансии</span>
628 </a> 670 </a>
629 </li> 671 </li>
630 <li class="relative px-6 py-3"> 672 <li class="relative px-6 py-3">
631 <a 673 <a
632 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.messages') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.messages') }}" 674 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.messages') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.messages') }}"
633 > 675 >
634 <svg 676 <svg
635 class="w-5 h-5" 677 class="w-5 h-5"
636 aria-hidden="true" 678 aria-hidden="true"
637 fill="none" 679 fill="none"
638 stroke-linecap="round" 680 stroke-linecap="round"
639 stroke-linejoin="round" 681 stroke-linejoin="round"
640 stroke-width="2" 682 stroke-width="2"
641 viewBox="0 0 24 24" 683 viewBox="0 0 24 24"
642 stroke="currentColor" 684 stroke="currentColor"
643 > 685 >
644 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 686 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
645 </svg> 687 </svg>
646 <span class="ml-4">Сообщения все</span> 688 <span class="ml-4">Сообщения все</span>
647 </a> 689 </a>
648 </li> 690 </li>
691
649 <li class="relative px-6 py-3"> 692 <li class="relative px-6 py-3">
693 <a
694 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.admin-messages') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.admin-messages') }}"
695 >
696 <svg
697 class="w-5 h-5"
698 aria-hidden="true"
699 fill="none"
700 stroke-linecap="round"
701 stroke-linejoin="round"
702 stroke-width="2"
703 viewBox="0 0 24 24"
704 stroke="currentColor"
705 >
706 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
707 </svg>
708 <span class="ml-4">Заявки на рассылку</span>
709 </a>
710 </li>
711
712
713 <li class="relative px-6 py-3">
650 <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 {{ Request::routeIs('admin.groups') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.groups') }}"> 714 <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 {{ Request::routeIs('admin.groups') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.groups') }}">
651 <svg 715 <svg
652 class="w-5 h-5" 716 class="w-5 h-5"
653 aria-hidden="true" 717 aria-hidden="true"
654 fill="none" 718 fill="none"
655 stroke-linecap="round" 719 stroke-linecap="round"
656 stroke-linejoin="round" 720 stroke-linejoin="round"
657 stroke-width="2" 721 stroke-width="2"
658 viewBox="0 0 24 24" 722 viewBox="0 0 24 24"
659 stroke="currentColor" 723 stroke="currentColor"
660 > 724 >
661 <path 725 <path
662 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" 726 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"
663 ></path> 727 ></path>
664 </svg> 728 </svg>
665 <span class="ml-4">Группы пользователей</span> 729 <span class="ml-4">Группы пользователей</span>
666 </a> 730 </a>
667 </li> 731 </li>
668 @if ($UserId == 1) 732 @if ($UserId == 1)
669 <li class="relative px-6 py-3"> 733 <li class="relative px-6 py-3">
670 <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 {{ Request::routeIs('admin.roles') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.roles') }}"> 734 <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 {{ Request::routeIs('admin.roles') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.roles') }}">
671 <svg 735 <svg
672 class="w-5 h-5" 736 class="w-5 h-5"
673 aria-hidden="true" 737 aria-hidden="true"
674 fill="none" 738 fill="none"
675 stroke-linecap="round" 739 stroke-linecap="round"
676 stroke-linejoin="round" 740 stroke-linejoin="round"
677 stroke-width="2" 741 stroke-width="2"
678 viewBox="0 0 24 24" 742 viewBox="0 0 24 24"
679 stroke="currentColor" 743 stroke="currentColor"
680 > 744 >
681 <path 745 <path
682 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" 746 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"
683 ></path> 747 ></path>
684 </svg> 748 </svg>
685 <span class="ml-4">Роли пользователей</span> 749 <span class="ml-4">Роли пользователей</span>
686 </a> 750 </a>
687 </li> 751 </li>
688 @endif 752 @endif
753
754 <li class="relative px-6 py-3">
755 <a
756 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.basedata') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.basedata') }}"
757 >
758 <svg
759 class="w-5 h-5"
760 aria-hidden="true"
761 fill="none"
762 stroke-linecap="round"
763 stroke-linejoin="round"
764 stroke-width="2"
765 viewBox="0 0 24 24"
766 stroke="currentColor"
767 >
768 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
769 </svg>
770 <span class="ml-4">Базы данных</span>
771 </a>
772 </li>
773
689 <li class="relative px-6 py-3"> 774 <li class="relative px-6 py-3">
690 <a 775 <a
691 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.education.index') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.education.index') }}" 776 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.education.index') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.education.index') }}"
692 > 777 >
693 <svg 778 <svg
694 class="w-5 h-5" 779 class="w-5 h-5"
695 aria-hidden="true" 780 aria-hidden="true"
696 fill="none" 781 fill="none"
697 stroke-linecap="round" 782 stroke-linecap="round"
698 stroke-linejoin="round" 783 stroke-linejoin="round"
699 stroke-width="2" 784 stroke-width="2"
700 viewBox="0 0 24 24" 785 viewBox="0 0 24 24"
701 stroke="currentColor" 786 stroke="currentColor"
702 > 787 >
703 <path 788 <path
704 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" 789 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"
705 ></path> 790 ></path>
706 </svg> 791 </svg>
707 <span class="ml-4">Учебн.заведения</span> 792 <span class="ml-4">Учебн.заведения</span>
708 </a> 793 </a>
709 </li> 794 </li>
710 <li class="relative px-6 py-3"> 795 <li class="relative px-6 py-3">
711 <a 796 <a
712 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.statics') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.statics') }}" 797 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.statics') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.statics') }}"
713 > 798 >
714 <svg 799 <svg
715 class="w-5 h-5" 800 class="w-5 h-5"
716 aria-hidden="true" 801 aria-hidden="true"
717 fill="none" 802 fill="none"
718 stroke-linecap="round" 803 stroke-linecap="round"
719 stroke-linejoin="round" 804 stroke-linejoin="round"
720 stroke-width="2" 805 stroke-width="2"
721 viewBox="0 0 24 24" 806 viewBox="0 0 24 24"
722 stroke="currentColor" 807 stroke="currentColor"
723 > 808 >
724 <path 809 <path
725 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" 810 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
726 ></path> 811 ></path>
727 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> 812 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
728 </svg> 813 </svg>
729 <span class="ml-4">Статистика</span> 814 <span class="ml-4">Статистика</span>
730 </a> 815 </a>
731 </li> 816 </li>
732 <li class="relative px-6 py-3"> 817 <li class="relative px-6 py-3">
733 <a 818 <a
734 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.messages') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.messages') }}" 819 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.messages') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.messages') }}"
735 > 820 >
736 <svg 821 <svg
737 class="w-5 h-5" 822 class="w-5 h-5"
738 aria-hidden="true" 823 aria-hidden="true"
739 fill="none" 824 fill="none"
740 stroke-linecap="round" 825 stroke-linecap="round"
741 stroke-linejoin="round" 826 stroke-linejoin="round"
742 stroke-width="2" 827 stroke-width="2"
743 viewBox="0 0 24 24" 828 viewBox="0 0 24 24"
744 stroke="currentColor" 829 stroke="currentColor"
745 > 830 >
746 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 831 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
747 </svg> 832 </svg>
748 <span class="ml-4">Сообщения все</span> 833 <span class="ml-4">Сообщения все</span>
749 </a> 834 </a>
750 </li> 835 </li>
751 <li class="relative px-6 py-3"> 836 <li class="relative px-6 py-3">
752 <a 837 <a
753 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.reclames') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.reclames') }}" 838 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.reclames') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.reclames') }}"
754 > 839 >
755 <svg 840 <svg
756 class="w-5 h-5" 841 class="w-5 h-5"
757 aria-hidden="true" 842 aria-hidden="true"
758 fill="none" 843 fill="none"
759 stroke-linecap="round" 844 stroke-linecap="round"
760 stroke-linejoin="round" 845 stroke-linejoin="round"
761 stroke-width="2" 846 stroke-width="2"
762 viewBox="0 0 24 24" 847 viewBox="0 0 24 24"
763 stroke="currentColor" 848 stroke="currentColor"
764 > 849 >
765 <path 850 <path
766 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" 851 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"
767 ></path> 852 ></path>
768 </svg> 853 </svg>
769 <span class="ml-4">Реклама</span> 854 <span class="ml-4">Реклама</span>
770 </a> 855 </a>
771 </li> 856 </li>
772 <!-- Справочники --> 857 <!-- Справочники -->
773 <li class="relative px-6 py-3" x-data="{ open2: false }"> 858 <li class="relative px-6 py-3" x-data="{ open2: false }">
774 <button 859 <button
775 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" 860 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"
776 @click="open2=!open2" 861 @click="open2=!open2"
777 aria-haspopup="true"> 862 aria-haspopup="true">
778 <span class="inline-flex items-center"> 863 <span class="inline-flex items-center">
779 <svg 864 <svg
780 class="w-5 h-5" 865 class="w-5 h-5"
781 aria-hidden="true" 866 aria-hidden="true"
782 fill="none" 867 fill="none"
783 stroke-linecap="round" 868 stroke-linecap="round"
784 stroke-linejoin="round" 869 stroke-linejoin="round"
785 stroke-width="2" 870 stroke-width="2"
786 viewBox="0 0 24 24" 871 viewBox="0 0 24 24"
787 stroke="currentColor"> 872 stroke="currentColor">
788 <path 873 <path
789 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" 874 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"
790 ></path> 875 ></path>
791 </svg> 876 </svg>
792 <span class="ml-4">Справочники</span> 877 <span class="ml-4">Справочники</span>
793 </span> 878 </span>
794 <svg 879 <svg
795 class="w-4 h-4" 880 class="w-4 h-4"
796 aria-hidden="true" 881 aria-hidden="true"
797 fill="currentColor" 882 fill="currentColor"
798 viewBox="0 0 20 20" 883 viewBox="0 0 20 20"
799 > 884 >
800 <path 885 <path
801 fill-rule="evenodd" 886 fill-rule="evenodd"
802 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" 887 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"
803 clip-rule="evenodd" 888 clip-rule="evenodd"
804 ></path> 889 ></path>
805 </svg> 890 </svg>
806 </button> 891 </button>
807 <template x-if="open2"> 892 <template x-if="open2">
808 <ul 893 <ul
809 x-transition:enter="transition-all ease-in-out duration-300" 894 x-transition:enter="transition-all ease-in-out duration-300"
810 x-transition:enter-start="opacity-25 max-h-0" 895 x-transition:enter-start="opacity-25 max-h-0"
811 x-transition:enter-end="opacity-100 max-h-xl" 896 x-transition:enter-end="opacity-100 max-h-xl"
812 x-transition:leave="transition-all ease-in-out duration-300" 897 x-transition:leave="transition-all ease-in-out duration-300"
813 x-transition:leave-start="opacity-100 max-h-xl" 898 x-transition:leave-start="opacity-100 max-h-xl"
814 x-transition:leave-end="opacity-0 max-h-0" 899 x-transition:leave-end="opacity-0 max-h-0"
815 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" 900 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"
816 aria-label="submenu" 901 aria-label="submenu"
817 > 902 >
818 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.job-titles.index') ? 'dark:text-gray-100' : null }}"> 903 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.job-titles.index') ? 'dark:text-gray-100' : null }}">
819 <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a> 904 <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a>
820 </li> 905 </li>
821 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.categories.index') ? 'dark:text-gray-100' : null }}"> 906 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.categories.index') ? 'dark:text-gray-100' : null }}">
822 <a class="w-full" href="{{ route('admin.categories.index') }}">Категории вакансий</a> 907 <a class="w-full" href="{{ route('admin.categories.index') }}">Категории вакансий</a>
823 </li> 908 </li>
824 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.category-emp.index') ? 'dark:text-gray-100' : null }}"> 909 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.category-emp.index') ? 'dark:text-gray-100' : null }}">
825 <a class="w-full" href="{{ route('admin.category-emp.index') }}">Категории работодателей</a> 910 <a class="w-full" href="{{ route('admin.category-emp.index') }}">Категории работодателей</a>
826 </li> 911 </li>
827 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.infobloks.index') ? 'dark:text-gray-100' : null }}"> 912 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.infobloks.index') ? 'dark:text-gray-100' : null }}">
828 <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a> 913 <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a>
829 </li> 914 </li>
830 915
831 </ul> 916 </ul>
832 </template> 917 </template>
833 </li> 918 </li>
834 919
835
836 <!-- Редактор --> 920 <!-- Редактор -->
837 <li class="relative px-6 py-3"> 921 <li class="relative px-6 py-3">
838 <button 922 <button
839 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" 923 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"
840 @click="togglePagesMenu" 924 @click="togglePagesMenu"
841 aria-haspopup="true" 925 aria-haspopup="true"
842 > 926 >
843 <span class="inline-flex items-center"> 927 <span class="inline-flex items-center">
844 <svg 928 <svg
845 class="w-5 h-5" 929 class="w-5 h-5"
846 aria-hidden="true" 930 aria-hidden="true"
847 fill="none" 931 fill="none"
848 stroke-linecap="round" 932 stroke-linecap="round"
849 stroke-linejoin="round" 933 stroke-linejoin="round"
850 stroke-width="2" 934 stroke-width="2"
851 viewBox="0 0 24 24" 935 viewBox="0 0 24 24"
852 stroke="currentColor" 936 stroke="currentColor"
853 > 937 >
854 <path 938 <path
855 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" 939 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"
856 ></path> 940 ></path>
857 </svg> 941 </svg>
858 <span class="ml-4">Редактор</span> 942 <span class="ml-4">Редактор</span>
859 </span> 943 </span>
860 <svg 944 <svg
861 class="w-4 h-4" 945 class="w-4 h-4"
862 aria-hidden="true" 946 aria-hidden="true"
863 fill="currentColor" 947 fill="currentColor"
864 viewBox="0 0 20 20" 948 viewBox="0 0 20 20"
865 > 949 >
866 <path 950 <path
867 fill-rule="evenodd" 951 fill-rule="evenodd"
868 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" 952 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"
869 clip-rule="evenodd" 953 clip-rule="evenodd"
870 ></path> 954 ></path>
871 </svg> 955 </svg>
872 </button> 956 </button>
873 <template x-if="isPagesMenuOpen"> 957 <template x-if="isPagesMenuOpen">
874 <ul 958 <ul
875 x-transition:enter="transition-all ease-in-out duration-300" 959 x-transition:enter="transition-all ease-in-out duration-300"
876 x-transition:enter-start="opacity-25 max-h-0" 960 x-transition:enter-start="opacity-25 max-h-0"
877 x-transition:enter-end="opacity-100 max-h-xl" 961 x-transition:enter-end="opacity-100 max-h-xl"
878 x-transition:leave="transition-all ease-in-out duration-300" 962 x-transition:leave="transition-all ease-in-out duration-300"
879 x-transition:leave-start="opacity-100 max-h-xl" 963 x-transition:leave-start="opacity-100 max-h-xl"
880 x-transition:leave-end="opacity-0 max-h-0" 964 x-transition:leave-end="opacity-0 max-h-0"
881 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" 965 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"
882 aria-label="submenu" 966 aria-label="submenu"
883 > 967 >
884 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-site') ? 'dark:text-gray-100' : null }}"> 968 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-site') ? 'dark:text-gray-100' : null }}">
885 <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> 969 <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a>
886 </li> 970 </li>
887 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.edit-blocks') ? 'dark:text-gray-100' : null }}"> 971 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.edit-blocks') ? 'dark:text-gray-100' : null }}">
888 <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> 972 <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a>
889 </li> 973 </li>
890 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-seo') ? 'dark:text-gray-100' : null }}"> 974 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-seo') ? 'dark:text-gray-100' : null }}">
891 <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> 975 <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a>
892 </li> 976 </li>
893 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-pages') ? 'dark:text-gray-100' : null }}"> 977 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.editor-pages') ? 'dark:text-gray-100' : null }}">
894 <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> 978 <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a>
895 </li> 979 </li>
896 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.job-titles-main') ? 'dark:text-gray-100' : null }}"> 980 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.job-titles-main') ? 'dark:text-gray-100' : null }}">
897 <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> 981 <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a>
898 </li> 982 </li>
899 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.employers-main') ? 'dark:text-gray-100' : null }}"> 983 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.employers-main') ? 'dark:text-gray-100' : null }}">
900 <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> 984 <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a>
901 </li> 985 </li>
902 986
903 </ul> 987 </ul>
904 </template> 988 </template>
905 </li> 989 </li>
906 </ul> 990 </ul>
907 <!--<div class="px-6 my-6"> 991 <!--<div class="px-6 my-6">
908 <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"> 992 <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">
909 Create account 993 Create account
910 <span class="ml-2" aria-hidden="true">+</span> 994 <span class="ml-2" aria-hidden="true">+</span>
911 </button> 995 </button>
912 </div>--> 996 </div>-->
913 </div> 997 </div>
914 </aside> 998 </aside>
915 <div class="flex flex-col flex-1 w-full"> 999 <div class="flex flex-col flex-1 w-full">
916 <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800"> 1000 <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800">
917 <div 1001 <div
918 class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300" 1002 class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300"
919 > 1003 >
920 <!-- Mobile hamburger --> 1004 <!-- Mobile hamburger -->
921 <button 1005 <button
922 class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple" 1006 class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple"
923 @click="toggleSideMenu" 1007 @click="toggleSideMenu"
924 aria-label="Menu" 1008 aria-label="Menu"
925 > 1009 >
926 <svg 1010 <svg
927 class="w-6 h-6" 1011 class="w-6 h-6"
928 aria-hidden="true" 1012 aria-hidden="true"
929 fill="currentColor" 1013 fill="currentColor"
930 viewBox="0 0 20 20" 1014 viewBox="0 0 20 20"
931 > 1015 >
932 <path 1016 <path
933 fill-rule="evenodd" 1017 fill-rule="evenodd"
934 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" 1018 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"
935 clip-rule="evenodd" 1019 clip-rule="evenodd"
936 ></path> 1020 ></path>
937 </svg> 1021 </svg>
938 </button> 1022 </button>
939 <!-- Search input --> 1023 <!-- Search input -->
940 <div class="flex justify-center flex-1 lg:mr-32"> 1024 <div class="flex justify-center flex-1 lg:mr-32">
941 <div 1025 <div
942 class="relative w-full max-w-xl mr-6 focus-within:text-purple-500" 1026 class="relative w-full max-w-xl mr-6 focus-within:text-purple-500"
943 > 1027 >
944 1028
945 @yield('search') 1029 @yield('search')
946 </div> 1030 </div>
947 </div> 1031 </div>
948 <ul class="flex items-center flex-shrink-0 space-x-6"> 1032 <ul class="flex items-center flex-shrink-0 space-x-6">
949 <!-- Theme toggler --> 1033 <!-- Theme toggler -->
950 <li class="flex"> 1034 <li class="flex">
951 <button 1035 <button
952 class="rounded-md focus:outline-none focus:shadow-outline-purple" 1036 class="rounded-md focus:outline-none focus:shadow-outline-purple"
953 @click="toggleTheme" 1037 @click="toggleTheme"
954 aria-label="Toggle color mode" 1038 aria-label="Toggle color mode"
955 > 1039 >
956 <template x-if="!dark"> 1040 <template x-if="!dark">
957 <svg 1041 <svg
958 class="w-5 h-5" 1042 class="w-5 h-5"
959 aria-hidden="true" 1043 aria-hidden="true"
960 fill="currentColor" 1044 fill="currentColor"
961 viewBox="0 0 20 20" 1045 viewBox="0 0 20 20"
962 > 1046 >
963 <path 1047 <path
964 d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z" 1048 d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"
965 ></path> 1049 ></path>
966 </svg> 1050 </svg>
967 </template> 1051 </template>
968 <template x-if="dark"> 1052 <template x-if="dark">
969 <svg 1053 <svg
970 class="w-5 h-5" 1054 class="w-5 h-5"
971 aria-hidden="true" 1055 aria-hidden="true"
972 fill="currentColor" 1056 fill="currentColor"
973 viewBox="0 0 20 20" 1057 viewBox="0 0 20 20"
974 > 1058 >
975 <path 1059 <path
976 fill-rule="evenodd" 1060 fill-rule="evenodd"
977 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" 1061 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"
978 clip-rule="evenodd" 1062 clip-rule="evenodd"
979 ></path> 1063 ></path>
980 </svg> 1064 </svg>
981 </template> 1065 </template>
982 </button> 1066 </button>
983 </li> 1067 </li>
984 <!-- Notifications menu --> 1068 <!-- Notifications menu -->
985 <li class="relative"> 1069 <li class="relative">
986 <button 1070 <button
987 class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple" 1071 class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple"
988 @click="toggleNotificationsMenu" 1072 @click="toggleNotificationsMenu"
989 @keydown.escape="closeNotificationsMenu" 1073 @keydown.escape="closeNotificationsMenu"
990 aria-label="Notifications" 1074 aria-label="Notifications"
991 aria-haspopup="true" 1075 aria-haspopup="true"
992 > 1076 >
993 <svg 1077 <svg
994 class="w-5 h-5" 1078 class="w-5 h-5"
995 aria-hidden="true" 1079 aria-hidden="true"
996 fill="currentColor" 1080 fill="currentColor"
997 viewBox="0 0 20 20" 1081 viewBox="0 0 20 20"
998 > 1082 >
999 <path 1083 <path
1000 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" 1084 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"
1001 ></path> 1085 ></path>
1002 </svg> 1086 </svg>
1003 <!-- Notification badge --> 1087 <!-- Notification badge -->
1004 <span 1088 <span
1005 aria-hidden="true" 1089 aria-hidden="true"
1006 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" 1090 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"
1007 ></span> 1091 ></span>
1008 </button> 1092 </button>
1009 <template x-if="isNotificationsMenuOpen"> 1093 <template x-if="isNotificationsMenuOpen">
1010 <ul 1094 <ul
1011 x-transition:leave="transition ease-in duration-150" 1095 x-transition:leave="transition ease-in duration-150"
1012 x-transition:leave-start="opacity-100" 1096 x-transition:leave-start="opacity-100"
1013 x-transition:leave-end="opacity-0" 1097 x-transition:leave-end="opacity-0"
1014 @click.away="closeNotificationsMenu" 1098 @click.away="closeNotificationsMenu"
1015 @keydown.escape="closeNotificationsMenu" 1099 @keydown.escape="closeNotificationsMenu"
1016 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" 1100 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"
1017 > 1101 >
1018 <li class="flex"> 1102 <li class="flex">
1019 <a 1103 <a
1020 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" 1104 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"
1021 href="{{ route('admin.admin-messages') }}" 1105 href="{{ route('admin.admin-messages') }}"
1022 > 1106 >
1023 <span>Сообщения</span> 1107 <span>Сообщения</span>
1024 @if($MsgCount > 0) 1108 @if($MsgCount > 0)
1025 <span 1109 <span
1026 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" 1110 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"
1027 > 1111 >
1028 1112
1029 {{ $MsgCount }} 1113 {{ $MsgCount }}
1030 </span> 1114 </span>
1031 @endif 1115 @endif
1032 </a> 1116 </a>
1033 </li> 1117 </li>
1034 <!--<li class="flex"> 1118 <!--<li class="flex">
1035 <a 1119 <a
1036 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" 1120 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"
1037 href="#" 1121 href="#"
1038 > 1122 >
1039 <span>Логи</span> 1123 <span>Логи</span>
1040 </a> 1124 </a>
1041 </li>--> 1125 </li>-->
1042 </ul> 1126 </ul>
1043 </template> 1127 </template>
1044 </li> 1128 </li>
1045 <!-- Profile menu --> 1129 <!-- Profile menu -->
1046 <li class="relative"> 1130 <li class="relative">
1047 <button 1131 <button
1048 class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none" 1132 class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none"
1049 @click="toggleProfileMenu" 1133 @click="toggleProfileMenu"
1050 @keydown.escape="closeProfileMenu" 1134 @keydown.escape="closeProfileMenu"
1051 aria-label="Account" 1135 aria-label="Account"
1052 aria-haspopup="true" 1136 aria-haspopup="true"
1053 > 1137 >
1054 <img 1138 <img
1055 class="object-cover w-8 h-8 rounded-full" 1139 class="object-cover w-8 h-8 rounded-full"
1056 src="{{ asset('assets/img/profile.jpg') }}" 1140 src="{{ asset('assets/img/profile.jpg') }}"
1057 alt="" 1141 alt=""
1058 aria-hidden="true" 1142 aria-hidden="true"
1059 /> 1143 />
1060 </button> 1144 </button>
1061 <template x-if="isProfileMenuOpen"> 1145 <template x-if="isProfileMenuOpen">
1062 <ul 1146 <ul
1063 x-transition:leave="transition ease-in duration-150" 1147 x-transition:leave="transition ease-in duration-150"
1064 x-transition:leave-start="opacity-100" 1148 x-transition:leave-start="opacity-100"
1065 x-transition:leave-end="opacity-0" 1149 x-transition:leave-end="opacity-0"
1066 @click.away="closeProfileMenu" 1150 @click.away="closeProfileMenu"
1067 @keydown.escape="closeProfileMenu" 1151 @keydown.escape="closeProfileMenu"
1068 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" 1152 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"
1069 aria-label="submenu" 1153 aria-label="submenu"
1070 > 1154 >
1071 <li class="flex"> 1155 <li class="flex">
1072 <a 1156 <a
1073 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" 1157 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"
1074 href="{{ route('admin.profile') }}" 1158 href="{{ route('admin.profile') }}"
1075 > 1159 >
1076 <svg 1160 <svg
1077 class="w-4 h-4 mr-3" 1161 class="w-4 h-4 mr-3"
1078 aria-hidden="true" 1162 aria-hidden="true"
1079 fill="none" 1163 fill="none"
1080 stroke-linecap="round" 1164 stroke-linecap="round"
1081 stroke-linejoin="round" 1165 stroke-linejoin="round"
1082 stroke-width="2" 1166 stroke-width="2"
1083 viewBox="0 0 24 24" 1167 viewBox="0 0 24 24"
1084 stroke="currentColor" 1168 stroke="currentColor"
1085 > 1169 >
1086 <path 1170 <path
1087 d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" 1171 d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
1088 ></path> 1172 ></path>
1089 </svg> 1173 </svg>
1090 <span>Профиль</span> 1174 <span>Профиль</span>
1091 </a> 1175 </a>
1092 </li> 1176 </li>
1093 <li class="flex"> 1177 <li class="flex">
1094 <a 1178 <a
1095 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" 1179 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"
1096 href="{{ route('admin.config') }}" 1180 href="{{ route('admin.config') }}"
1097 > 1181 >
1098 <svg 1182 <svg
1099 class="w-4 h-4 mr-3" 1183 class="w-4 h-4 mr-3"
1100 aria-hidden="true" 1184 aria-hidden="true"
1101 fill="none" 1185 fill="none"
1102 stroke-linecap="round" 1186 stroke-linecap="round"
1103 stroke-linejoin="round" 1187 stroke-linejoin="round"
1104 stroke-width="2" 1188 stroke-width="2"
1105 viewBox="0 0 24 24" 1189 viewBox="0 0 24 24"
1106 stroke="currentColor" 1190 stroke="currentColor"
1107 > 1191 >
1108 <path 1192 <path
1109 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" 1193 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"
1110 ></path> 1194 ></path>
1111 <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path> 1195 <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
1112 </svg> 1196 </svg>
1113 <span>Настройки</span> 1197 <span>Настройки</span>
1114 </a> 1198 </a>
1115 </li> 1199 </li>
1116 <li class="flex"> 1200 <li class="flex">
1117 <a 1201 <a
1118 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" 1202 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"
1119 href="{{ route('admin.logout') }}" 1203 href="{{ route('admin.logout') }}"
1120 > 1204 >
1121 <svg 1205 <svg
1122 class="w-4 h-4 mr-3" 1206 class="w-4 h-4 mr-3"
1123 aria-hidden="true" 1207 aria-hidden="true"
1124 fill="none" 1208 fill="none"
1125 stroke-linecap="round" 1209 stroke-linecap="round"
1126 stroke-linejoin="round" 1210 stroke-linejoin="round"
1127 stroke-width="2" 1211 stroke-width="2"
1128 viewBox="0 0 24 24" 1212 viewBox="0 0 24 24"
1129 stroke="currentColor" 1213 stroke="currentColor"
1130 > 1214 >
1131 <path 1215 <path
1132 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" 1216 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"
1133 ></path> 1217 ></path>
1134 </svg> 1218 </svg>
1135 <span>Выход</span> 1219 <span>Выход</span>
1136 </a> 1220 </a>
1137 </li> 1221 </li>
1138 </ul> 1222 </ul>
1139 </template> 1223 </template>
1140 </li> 1224 </li>
1141 </ul> 1225 </ul>
1142 </div> 1226 </div>
1143 </header> 1227 </header>
1144 <main class="h-full overflow-y-auto"> 1228 <main class="h-full overflow-y-auto">
1145 <div class="container px-6 mx-auto grid"> 1229 <div class="container px-6 mx-auto grid">
1146 <h2 1230 <h2
1147 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200" 1231 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"
1148 > 1232 >
1149 {{$title}} 1233 {{$title}}
1150 </h2> 1234 </h2>
1151 <!-- CTA --> 1235 <!-- CTA -->
1152 <a 1236 <a
1153 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" 1237 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"
1154 href="{{ route('admin.admin-users') }}" 1238 href="{{ route('admin.admin-users') }}"
1155 > 1239 >
1156 <div class="flex items-center"> 1240 <div class="flex items-center">
1157 <svg 1241 <svg
1158 class="w-5 h-5 mr-2" 1242 class="w-5 h-5 mr-2"
1159 fill="currentColor" 1243 fill="currentColor"
1160 viewBox="0 0 20 20" 1244 viewBox="0 0 20 20"
1161 > 1245 >
1162 <path 1246 <path
1163 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" 1247 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"
1164 ></path> 1248 ></path>
1165 </svg> 1249 </svg>
1166 <span>Контент для админов</span> 1250 <span>Контент для админов</span>
1167 </div> 1251 </div>
1168 <span>Список админов &RightArrow;</span> 1252 <span>Список админов &RightArrow;</span>
1169 </a> 1253 </a>
1170 1254
1171 @if ($message = Session::get('success')) 1255 @if ($message = Session::get('success'))
1172 <section> 1256 <section>
1173 <div class="alert alert-success alert-dismissible mt-0" role="alert"> 1257 <div class="alert alert-success alert-dismissible mt-0" role="alert">
1174 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> 1258 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть">
1175 <span aria-hidden="true">&times;</span> 1259 <span aria-hidden="true">&times;</span>
1176 </button> 1260 </button>
1177 {{ $message }} 1261 {{ $message }}
1178 </div> 1262 </div>
1179 </section> 1263 </section>
1180 @endif 1264 @endif
1181 1265
1182 @if ($errors->any()) 1266 @if ($errors->any())
1183 <section> 1267 <section>
1184 <div class="alert alert-danger alert-dismissible mt-4" role="alert"> 1268 <div class="alert alert-danger alert-dismissible mt-4" role="alert">
1185 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> 1269 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть">
1186 <span aria-hidden="true">&times;</span> 1270 <span aria-hidden="true">&times;</span>
1187 </button> 1271 </button>
1188 <ul class="mb-0"> 1272 <ul class="mb-0">
1189 @foreach ($errors->all() as $error) 1273 @foreach ($errors->all() as $error)
1190 <li>{{ $error }}</li> 1274 <li>{{ $error }}</li>
1191 @endforeach 1275 @endforeach
1192 </ul> 1276 </ul>
1193 </div> 1277 </div>
1194 </section> 1278 </section>
1195 @endif 1279 @endif
1196 1280
1197 @yield('content') 1281 @yield('content')
1198 1282
1199 <!-- Cards 1283 <!-- Cards
1200 <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4"> 1284 <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4">
1201 1285
1202 <div 1286 <div
1203 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1287 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1204 > 1288 >
1205 <div 1289 <div
1206 class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500" 1290 class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500"
1207 > 1291 >
1208 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 1292 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
1209 <path 1293 <path
1210 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" 1294 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"
1211 ></path> 1295 ></path>
1212 </svg> 1296 </svg>
1213 </div> 1297 </div>
1214 <div> 1298 <div>
1215 <p 1299 <p
1216 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" 1300 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
1217 > 1301 >
1218 Total clients 1302 Total clients
1219 </p> 1303 </p>
1220 <p 1304 <p
1221 class="text-lg font-semibold text-gray-700 dark:text-gray-200" 1305 class="text-lg font-semibold text-gray-700 dark:text-gray-200"
1222 > 1306 >
1223 6389 1307 6389
1224 </p> 1308 </p>
1225 </div> 1309 </div>
1226 </div> 1310 </div>
1227 1311
1228 <div 1312 <div
1229 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1313 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1230 > 1314 >
1231 <div 1315 <div
1232 class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500" 1316 class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500"
1233 > 1317 >
1234 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 1318 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
1235 <path 1319 <path
1236 fill-rule="evenodd" 1320 fill-rule="evenodd"
1237 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" 1321 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"
1238 clip-rule="evenodd" 1322 clip-rule="evenodd"
1239 ></path> 1323 ></path>
1240 </svg> 1324 </svg>
1241 </div> 1325 </div>
1242 <div> 1326 <div>
1243 <p 1327 <p
1244 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" 1328 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
1245 > 1329 >
1246 Account balance 1330 Account balance
1247 </p> 1331 </p>
1248 <p 1332 <p
1249 class="text-lg font-semibold text-gray-700 dark:text-gray-200" 1333 class="text-lg font-semibold text-gray-700 dark:text-gray-200"
1250 > 1334 >
1251 $ 46,760.89 1335 $ 46,760.89
1252 </p> 1336 </p>
1253 </div> 1337 </div>
1254 </div> 1338 </div>
1255 1339
1256 <div 1340 <div
1257 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1341 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1258 > 1342 >
1259 <div 1343 <div
1260 class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500" 1344 class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500"
1261 > 1345 >
1262 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 1346 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
1263 <path 1347 <path
1264 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" 1348 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"
1265 ></path> 1349 ></path>
1266 </svg> 1350 </svg>
1267 </div> 1351 </div>
1268 <div> 1352 <div>
1269 <p 1353 <p
1270 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" 1354 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
1271 > 1355 >
1272 New sales 1356 New sales
1273 </p> 1357 </p>
1274 <p 1358 <p
1275 class="text-lg font-semibold text-gray-700 dark:text-gray-200" 1359 class="text-lg font-semibold text-gray-700 dark:text-gray-200"
1276 > 1360 >
1277 376 1361 376
1278 </p> 1362 </p>
1279 </div> 1363 </div>
1280 </div> 1364 </div>
1281 1365
1282 <div 1366 <div
1283 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1367 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1284 > 1368 >
1285 <div 1369 <div
1286 class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500" 1370 class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500"
1287 > 1371 >
1288 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 1372 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
1289 <path 1373 <path
1290 fill-rule="evenodd" 1374 fill-rule="evenodd"
1291 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" 1375 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"
1292 clip-rule="evenodd" 1376 clip-rule="evenodd"
1293 ></path> 1377 ></path>
1294 </svg> 1378 </svg>
1295 </div> 1379 </div>
1296 <div> 1380 <div>
1297 <p 1381 <p
1298 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" 1382 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
1299 > 1383 >
1300 Pending contacts 1384 Pending contacts
1301 </p> 1385 </p>
1302 <p 1386 <p
1303 class="text-lg font-semibold text-gray-700 dark:text-gray-200" 1387 class="text-lg font-semibold text-gray-700 dark:text-gray-200"
1304 > 1388 >
1305 35 1389 35
1306 </p> 1390 </p>
1307 </div> 1391 </div>
1308 </div> 1392 </div>
1309 </div> 1393 </div>
1310 --> 1394 -->
1311 <!-- New Table 1395 <!-- New Table
1312 <div class="w-full overflow-hidden rounded-lg shadow-xs"> 1396 <div class="w-full overflow-hidden rounded-lg shadow-xs">
1313 <div class="w-full overflow-x-auto"> 1397 <div class="w-full overflow-x-auto">
1314 <table class="w-full whitespace-no-wrap"> 1398 <table class="w-full whitespace-no-wrap">
1315 <thead> 1399 <thead>
1316 <tr 1400 <tr
1317 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" 1401 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"
1318 > 1402 >
1319 <th class="px-4 py-3">Client</th> 1403 <th class="px-4 py-3">Client</th>
1320 <th class="px-4 py-3">Amount</th> 1404 <th class="px-4 py-3">Amount</th>
1321 <th class="px-4 py-3">Status</th> 1405 <th class="px-4 py-3">Status</th>
1322 <th class="px-4 py-3">Date</th> 1406 <th class="px-4 py-3">Date</th>
1323 </tr> 1407 </tr>
1324 </thead> 1408 </thead>
1325 <tbody 1409 <tbody
1326 class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" 1410 class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"
1327 > 1411 >
1328 <tr class="text-gray-700 dark:text-gray-400"> 1412 <tr class="text-gray-700 dark:text-gray-400">
1329 <td class="px-4 py-3"> 1413 <td class="px-4 py-3">
1330 <div class="flex items-center text-sm"> 1414 <div class="flex items-center text-sm">
1331 1415
1332 <div 1416 <div
1333 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1417 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1334 > 1418 >
1335 <img 1419 <img
1336 class="object-cover w-full h-full rounded-full" 1420 class="object-cover w-full h-full rounded-full"
1337 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" 1421 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"
1338 alt="" 1422 alt=""
1339 loading="lazy" 1423 loading="lazy"
1340 /> 1424 />
1341 <div 1425 <div
1342 class="absolute inset-0 rounded-full shadow-inner" 1426 class="absolute inset-0 rounded-full shadow-inner"
1343 aria-hidden="true" 1427 aria-hidden="true"
1344 ></div> 1428 ></div>
1345 </div> 1429 </div>
1346 <div> 1430 <div>
1347 <p class="font-semibold">Hans Burger</p> 1431 <p class="font-semibold">Hans Burger</p>
1348 <p class="text-xs text-gray-600 dark:text-gray-400"> 1432 <p class="text-xs text-gray-600 dark:text-gray-400">
1349 10x Developer 1433 10x Developer
1350 </p> 1434 </p>
1351 </div> 1435 </div>
1352 </div> 1436 </div>
1353 </td> 1437 </td>
1354 <td class="px-4 py-3 text-sm"> 1438 <td class="px-4 py-3 text-sm">
1355 $ 863.45 1439 $ 863.45
1356 </td> 1440 </td>
1357 <td class="px-4 py-3 text-xs"> 1441 <td class="px-4 py-3 text-xs">
1358 <span 1442 <span
1359 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" 1443 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"
1360 > 1444 >
1361 Approved 1445 Approved
1362 </span> 1446 </span>
1363 </td> 1447 </td>
1364 <td class="px-4 py-3 text-sm"> 1448 <td class="px-4 py-3 text-sm">
1365 6/10/2020 1449 6/10/2020
1366 </td> 1450 </td>
1367 </tr> 1451 </tr>
1368 1452
1369 <tr class="text-gray-700 dark:text-gray-400"> 1453 <tr class="text-gray-700 dark:text-gray-400">
1370 <td class="px-4 py-3"> 1454 <td class="px-4 py-3">
1371 <div class="flex items-center text-sm"> 1455 <div class="flex items-center text-sm">
1372 1456
1373 <div 1457 <div
1374 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1458 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1375 > 1459 >
1376 <img 1460 <img
1377 class="object-cover w-full h-full rounded-full" 1461 class="object-cover w-full h-full rounded-full"
1378 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" 1462 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"
1379 alt="" 1463 alt=""
1380 loading="lazy" 1464 loading="lazy"
1381 /> 1465 />
1382 <div 1466 <div
1383 class="absolute inset-0 rounded-full shadow-inner" 1467 class="absolute inset-0 rounded-full shadow-inner"
1384 aria-hidden="true" 1468 aria-hidden="true"
1385 ></div> 1469 ></div>
1386 </div> 1470 </div>
1387 <div> 1471 <div>
1388 <p class="font-semibold">Jolina Angelie</p> 1472 <p class="font-semibold">Jolina Angelie</p>
1389 <p class="text-xs text-gray-600 dark:text-gray-400"> 1473 <p class="text-xs text-gray-600 dark:text-gray-400">
1390 Unemployed 1474 Unemployed
1391 </p> 1475 </p>
1392 </div> 1476 </div>
1393 </div> 1477 </div>
1394 </td> 1478 </td>
1395 <td class="px-4 py-3 text-sm"> 1479 <td class="px-4 py-3 text-sm">
1396 $ 369.95 1480 $ 369.95
1397 </td> 1481 </td>
1398 <td class="px-4 py-3 text-xs"> 1482 <td class="px-4 py-3 text-xs">
1399 <span 1483 <span
1400 class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600" 1484 class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"
1401 > 1485 >
1402 Pending 1486 Pending
1403 </span> 1487 </span>
1404 </td> 1488 </td>
1405 <td class="px-4 py-3 text-sm"> 1489 <td class="px-4 py-3 text-sm">
1406 6/10/2020 1490 6/10/2020
1407 </td> 1491 </td>
1408 </tr> 1492 </tr>
1409 1493
1410 <tr class="text-gray-700 dark:text-gray-400"> 1494 <tr class="text-gray-700 dark:text-gray-400">
1411 <td class="px-4 py-3"> 1495 <td class="px-4 py-3">
1412 <div class="flex items-center text-sm"> 1496 <div class="flex items-center text-sm">
1413 1497
1414 <div 1498 <div
1415 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1499 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1416 > 1500 >
1417 <img 1501 <img
1418 class="object-cover w-full h-full rounded-full" 1502 class="object-cover w-full h-full rounded-full"
1419 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" 1503 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"
1420 alt="" 1504 alt=""
1421 loading="lazy" 1505 loading="lazy"
1422 /> 1506 />
1423 <div 1507 <div
1424 class="absolute inset-0 rounded-full shadow-inner" 1508 class="absolute inset-0 rounded-full shadow-inner"
1425 aria-hidden="true" 1509 aria-hidden="true"
1426 ></div> 1510 ></div>
1427 </div> 1511 </div>
1428 <div> 1512 <div>
1429 <p class="font-semibold">Sarah Curry</p> 1513 <p class="font-semibold">Sarah Curry</p>
1430 <p class="text-xs text-gray-600 dark:text-gray-400"> 1514 <p class="text-xs text-gray-600 dark:text-gray-400">
1431 Designer 1515 Designer
1432 </p> 1516 </p>
1433 </div> 1517 </div>
1434 </div> 1518 </div>
1435 </td> 1519 </td>
1436 <td class="px-4 py-3 text-sm"> 1520 <td class="px-4 py-3 text-sm">
1437 $ 86.00 1521 $ 86.00
1438 </td> 1522 </td>
1439 <td class="px-4 py-3 text-xs"> 1523 <td class="px-4 py-3 text-xs">
1440 <span 1524 <span
1441 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" 1525 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"
1442 > 1526 >
1443 Denied 1527 Denied
1444 </span> 1528 </span>
1445 </td> 1529 </td>
1446 <td class="px-4 py-3 text-sm"> 1530 <td class="px-4 py-3 text-sm">
1447 6/10/2020 1531 6/10/2020
1448 </td> 1532 </td>
1449 </tr> 1533 </tr>
1450 1534
1451 <tr class="text-gray-700 dark:text-gray-400"> 1535 <tr class="text-gray-700 dark:text-gray-400">
1452 <td class="px-4 py-3"> 1536 <td class="px-4 py-3">
1453 <div class="flex items-center text-sm"> 1537 <div class="flex items-center text-sm">
1454 1538
1455 <div 1539 <div
1456 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1540 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1457 > 1541 >
1458 <img 1542 <img
1459 class="object-cover w-full h-full rounded-full" 1543 class="object-cover w-full h-full rounded-full"
1460 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" 1544 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"
1461 alt="" 1545 alt=""
1462 loading="lazy" 1546 loading="lazy"
1463 /> 1547 />
1464 <div 1548 <div
1465 class="absolute inset-0 rounded-full shadow-inner" 1549 class="absolute inset-0 rounded-full shadow-inner"
1466 aria-hidden="true" 1550 aria-hidden="true"
1467 ></div> 1551 ></div>
1468 </div> 1552 </div>
1469 <div> 1553 <div>
1470 <p class="font-semibold">Rulia Joberts</p> 1554 <p class="font-semibold">Rulia Joberts</p>
1471 <p class="text-xs text-gray-600 dark:text-gray-400"> 1555 <p class="text-xs text-gray-600 dark:text-gray-400">
1472 Actress 1556 Actress
1473 </p> 1557 </p>
1474 </div> 1558 </div>
1475 </div> 1559 </div>
1476 </td> 1560 </td>
1477 <td class="px-4 py-3 text-sm"> 1561 <td class="px-4 py-3 text-sm">
1478 $ 1276.45 1562 $ 1276.45
1479 </td> 1563 </td>
1480 <td class="px-4 py-3 text-xs"> 1564 <td class="px-4 py-3 text-xs">
1481 <span 1565 <span
1482 class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100" 1566 class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"
1483 > 1567 >
1484 Approved 1568 Approved
1485 </span> 1569 </span>
1486 </td> 1570 </td>
1487 <td class="px-4 py-3 text-sm"> 1571 <td class="px-4 py-3 text-sm">
1488 6/10/2020 1572 6/10/2020
1489 </td> 1573 </td>
1490 </tr> 1574 </tr>
1491 1575
1492 <tr class="text-gray-700 dark:text-gray-400"> 1576 <tr class="text-gray-700 dark:text-gray-400">
1493 <td class="px-4 py-3"> 1577 <td class="px-4 py-3">
1494 <div class="flex items-center text-sm"> 1578 <div class="flex items-center text-sm">
1495 1579
1496 <div 1580 <div
1497 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1581 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1498 > 1582 >
1499 <img 1583 <img
1500 class="object-cover w-full h-full rounded-full" 1584 class="object-cover w-full h-full rounded-full"
1501 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" 1585 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"
1502 alt="" 1586 alt=""
1503 loading="lazy" 1587 loading="lazy"
1504 /> 1588 />
1505 <div 1589 <div
1506 class="absolute inset-0 rounded-full shadow-inner" 1590 class="absolute inset-0 rounded-full shadow-inner"
1507 aria-hidden="true" 1591 aria-hidden="true"
1508 ></div> 1592 ></div>
1509 </div> 1593 </div>
1510 <div> 1594 <div>
1511 <p class="font-semibold">Wenzel Dashington</p> 1595 <p class="font-semibold">Wenzel Dashington</p>
1512 <p class="text-xs text-gray-600 dark:text-gray-400"> 1596 <p class="text-xs text-gray-600 dark:text-gray-400">
1513 Actor 1597 Actor
1514 </p> 1598 </p>
1515 </div> 1599 </div>
1516 </div> 1600 </div>
1517 </td> 1601 </td>
1518 <td class="px-4 py-3 text-sm"> 1602 <td class="px-4 py-3 text-sm">
1519 $ 863.45 1603 $ 863.45
1520 </td> 1604 </td>
1521 <td class="px-4 py-3 text-xs"> 1605 <td class="px-4 py-3 text-xs">
1522 <span 1606 <span
1523 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" 1607 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"
1524 > 1608 >
1525 Expired 1609 Expired
1526 </span> 1610 </span>
1527 </td> 1611 </td>
1528 <td class="px-4 py-3 text-sm"> 1612 <td class="px-4 py-3 text-sm">
1529 6/10/2020 1613 6/10/2020
1530 </td> 1614 </td>
1531 </tr> 1615 </tr>
1532 1616
1533 <tr class="text-gray-700 dark:text-gray-400"> 1617 <tr class="text-gray-700 dark:text-gray-400">
1534 <td class="px-4 py-3"> 1618 <td class="px-4 py-3">
1535 <div class="flex items-center text-sm"> 1619 <div class="flex items-center text-sm">
1536 1620
1537 <div 1621 <div
1538 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1622 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1539 > 1623 >
1540 <img 1624 <img
1541 class="object-cover w-full h-full rounded-full" 1625 class="object-cover w-full h-full rounded-full"
1542 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" 1626 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"
1543 alt="" 1627 alt=""
1544 loading="lazy" 1628 loading="lazy"
1545 /> 1629 />
1546 <div 1630 <div
1547 class="absolute inset-0 rounded-full shadow-inner" 1631 class="absolute inset-0 rounded-full shadow-inner"
1548 aria-hidden="true" 1632 aria-hidden="true"
1549 ></div> 1633 ></div>
1550 </div> 1634 </div>
1551 <div> 1635 <div>
1552 <p class="font-semibold">Dave Li</p> 1636 <p class="font-semibold">Dave Li</p>
1553 <p class="text-xs text-gray-600 dark:text-gray-400"> 1637 <p class="text-xs text-gray-600 dark:text-gray-400">
1554 Influencer 1638 Influencer
1555 </p> 1639 </p>
1556 </div> 1640 </div>
1557 </div> 1641 </div>
1558 </td> 1642 </td>
1559 <td class="px-4 py-3 text-sm"> 1643 <td class="px-4 py-3 text-sm">
1560 $ 863.45 1644 $ 863.45
1561 </td> 1645 </td>
1562 <td class="px-4 py-3 text-xs"> 1646 <td class="px-4 py-3 text-xs">
1563 <span 1647 <span
1564 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" 1648 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"
1565 > 1649 >
1566 Approved 1650 Approved
1567 </span> 1651 </span>
1568 </td> 1652 </td>
1569 <td class="px-4 py-3 text-sm"> 1653 <td class="px-4 py-3 text-sm">
1570 6/10/2020 1654 6/10/2020
1571 </td> 1655 </td>
1572 </tr> 1656 </tr>
1573 1657
1574 <tr class="text-gray-700 dark:text-gray-400"> 1658 <tr class="text-gray-700 dark:text-gray-400">
1575 <td class="px-4 py-3"> 1659 <td class="px-4 py-3">
1576 <div class="flex items-center text-sm"> 1660 <div class="flex items-center text-sm">
1577 1661
1578 <div 1662 <div
1579 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1663 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1580 > 1664 >
1581 <img 1665 <img
1582 class="object-cover w-full h-full rounded-full" 1666 class="object-cover w-full h-full rounded-full"
1583 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" 1667 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"
1584 alt="" 1668 alt=""
1585 loading="lazy" 1669 loading="lazy"
1586 /> 1670 />
1587 <div 1671 <div
1588 class="absolute inset-0 rounded-full shadow-inner" 1672 class="absolute inset-0 rounded-full shadow-inner"
1589 aria-hidden="true" 1673 aria-hidden="true"
1590 ></div> 1674 ></div>
1591 </div> 1675 </div>
1592 <div> 1676 <div>
1593 <p class="font-semibold">Maria Ramovic</p> 1677 <p class="font-semibold">Maria Ramovic</p>
1594 <p class="text-xs text-gray-600 dark:text-gray-400"> 1678 <p class="text-xs text-gray-600 dark:text-gray-400">
1595 Runner 1679 Runner
1596 </p> 1680 </p>
1597 </div> 1681 </div>
1598 </div> 1682 </div>
1599 </td> 1683 </td>
1600 <td class="px-4 py-3 text-sm"> 1684 <td class="px-4 py-3 text-sm">
1601 $ 863.45 1685 $ 863.45
1602 </td> 1686 </td>
1603 <td class="px-4 py-3 text-xs"> 1687 <td class="px-4 py-3 text-xs">
1604 <span 1688 <span
1605 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" 1689 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"
1606 > 1690 >
1607 Approved 1691 Approved
1608 </span> 1692 </span>
1609 </td> 1693 </td>
1610 <td class="px-4 py-3 text-sm"> 1694 <td class="px-4 py-3 text-sm">
1611 6/10/2020 1695 6/10/2020
1612 </td> 1696 </td>
1613 </tr> 1697 </tr>
1614 1698
1615 <tr class="text-gray-700 dark:text-gray-400"> 1699 <tr class="text-gray-700 dark:text-gray-400">
1616 <td class="px-4 py-3"> 1700 <td class="px-4 py-3">
1617 <div class="flex items-center text-sm"> 1701 <div class="flex items-center text-sm">
1618 1702
1619 <div 1703 <div
1620 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1704 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1621 > 1705 >
1622 <img 1706 <img
1623 class="object-cover w-full h-full rounded-full" 1707 class="object-cover w-full h-full rounded-full"
1624 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" 1708 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"
1625 alt="" 1709 alt=""
1626 loading="lazy" 1710 loading="lazy"
1627 /> 1711 />
1628 <div 1712 <div
1629 class="absolute inset-0 rounded-full shadow-inner" 1713 class="absolute inset-0 rounded-full shadow-inner"
1630 aria-hidden="true" 1714 aria-hidden="true"
1631 ></div> 1715 ></div>
1632 </div> 1716 </div>
1633 <div> 1717 <div>
1634 <p class="font-semibold">Hitney Wouston</p> 1718 <p class="font-semibold">Hitney Wouston</p>
1635 <p class="text-xs text-gray-600 dark:text-gray-400"> 1719 <p class="text-xs text-gray-600 dark:text-gray-400">
1636 Singer 1720 Singer
1637 </p> 1721 </p>
1638 </div> 1722 </div>
1639 </div> 1723 </div>
1640 </td> 1724 </td>
1641 <td class="px-4 py-3 text-sm"> 1725 <td class="px-4 py-3 text-sm">
1642 $ 863.45 1726 $ 863.45
1643 </td> 1727 </td>
1644 <td class="px-4 py-3 text-xs"> 1728 <td class="px-4 py-3 text-xs">
1645 <span 1729 <span
1646 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" 1730 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"
1647 > 1731 >
1648 Approved 1732 Approved
1649 </span> 1733 </span>
1650 </td> 1734 </td>
1651 <td class="px-4 py-3 text-sm"> 1735 <td class="px-4 py-3 text-sm">
1652 6/10/2020 1736 6/10/2020
1653 </td> 1737 </td>
1654 </tr> 1738 </tr>
1655 1739
1656 <tr class="text-gray-700 dark:text-gray-400"> 1740 <tr class="text-gray-700 dark:text-gray-400">
1657 <td class="px-4 py-3"> 1741 <td class="px-4 py-3">
1658 <div class="flex items-center text-sm"> 1742 <div class="flex items-center text-sm">
1659 1743
1660 <div 1744 <div
1661 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1745 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1662 > 1746 >
1663 <img 1747 <img
1664 class="object-cover w-full h-full rounded-full" 1748 class="object-cover w-full h-full rounded-full"
1665 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" 1749 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"
1666 alt="" 1750 alt=""
1667 loading="lazy" 1751 loading="lazy"
1668 /> 1752 />
1669 <div 1753 <div
1670 class="absolute inset-0 rounded-full shadow-inner" 1754 class="absolute inset-0 rounded-full shadow-inner"
1671 aria-hidden="true" 1755 aria-hidden="true"
1672 ></div> 1756 ></div>
1673 </div> 1757 </div>
1674 <div> 1758 <div>
1675 <p class="font-semibold">Hans Burger</p> 1759 <p class="font-semibold">Hans Burger</p>
1676 <p class="text-xs text-gray-600 dark:text-gray-400"> 1760 <p class="text-xs text-gray-600 dark:text-gray-400">
1677 10x Developer 1761 10x Developer
1678 </p> 1762 </p>
1679 </div> 1763 </div>
1680 </div> 1764 </div>
1681 </td> 1765 </td>
1682 <td class="px-4 py-3 text-sm"> 1766 <td class="px-4 py-3 text-sm">
1683 $ 863.45 1767 $ 863.45
1684 </td> 1768 </td>
1685 <td class="px-4 py-3 text-xs"> 1769 <td class="px-4 py-3 text-xs">
1686 <span 1770 <span
1687 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" 1771 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"
1688 > 1772 >
1689 Approved 1773 Approved
1690 </span> 1774 </span>
1691 </td> 1775 </td>
1692 <td class="px-4 py-3 text-sm"> 1776 <td class="px-4 py-3 text-sm">
1693 6/10/2020 1777 6/10/2020
1694 </td> 1778 </td>
1695 </tr> 1779 </tr>
1696 </tbody> 1780 </tbody>
1697 </table> 1781 </table>
1698 </div> 1782 </div>
1699 <div 1783 <div
1700 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" 1784 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"
1701 > 1785 >
1702 <span class="flex items-center col-span-3"> 1786 <span class="flex items-center col-span-3">
1703 Showing 21-30 of 100 1787 Showing 21-30 of 100
1704 </span> 1788 </span>
1705 <span class="col-span-2"></span> 1789 <span class="col-span-2"></span>
1706 1790
1707 <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> 1791 <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end">
1708 <nav aria-label="Table navigation"> 1792 <nav aria-label="Table navigation">
1709 <ul class="inline-flex items-center"> 1793 <ul class="inline-flex items-center">
1710 <li> 1794 <li>
1711 <button 1795 <button
1712 class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" 1796 class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple"
1713 aria-label="Previous" 1797 aria-label="Previous"
1714 > 1798 >
1715 <svg 1799 <svg
1716 aria-hidden="true" 1800 aria-hidden="true"
1717 class="w-4 h-4 fill-current" 1801 class="w-4 h-4 fill-current"
1718 viewBox="0 0 20 20" 1802 viewBox="0 0 20 20"
1719 > 1803 >
1720 <path 1804 <path
1721 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" 1805 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"
1722 clip-rule="evenodd" 1806 clip-rule="evenodd"
1723 fill-rule="evenodd" 1807 fill-rule="evenodd"
1724 ></path> 1808 ></path>
1725 </svg> 1809 </svg>
1726 </button> 1810 </button>
1727 </li> 1811 </li>
1728 <li> 1812 <li>
1729 <button 1813 <button
1730 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1814 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1731 > 1815 >
1732 1 1816 1
1733 </button> 1817 </button>
1734 </li> 1818 </li>
1735 <li> 1819 <li>
1736 <button 1820 <button
1737 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1821 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1738 > 1822 >
1739 2 1823 2
1740 </button> 1824 </button>
1741 </li> 1825 </li>
1742 <li> 1826 <li>
1743 <button 1827 <button
1744 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" 1828 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"
1745 > 1829 >
1746 3 1830 3
1747 </button> 1831 </button>
1748 </li> 1832 </li>
1749 <li> 1833 <li>
1750 <button 1834 <button
1751 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1835 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1752 > 1836 >
1753 4 1837 4
1754 </button> 1838 </button>
1755 </li> 1839 </li>
1756 <li> 1840 <li>
1757 <span class="px-3 py-1">...</span> 1841 <span class="px-3 py-1">...</span>
1758 </li> 1842 </li>
1759 <li> 1843 <li>
1760 <button 1844 <button
1761 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1845 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1762 > 1846 >
1763 8 1847 8
1764 </button> 1848 </button>
1765 </li> 1849 </li>
1766 <li> 1850 <li>
1767 <button 1851 <button
1768 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1852 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1769 > 1853 >
1770 9 1854 9
1771 </button> 1855 </button>
1772 </li> 1856 </li>
1773 <li> 1857 <li>
1774 <button 1858 <button
1775 class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" 1859 class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple"
1776 aria-label="Next" 1860 aria-label="Next"
1777 > 1861 >
1778 <svg 1862 <svg
1779 class="w-4 h-4 fill-current" 1863 class="w-4 h-4 fill-current"
1780 aria-hidden="true" 1864 aria-hidden="true"
1781 viewBox="0 0 20 20" 1865 viewBox="0 0 20 20"
1782 > 1866 >
1783 <path 1867 <path
1784 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" 1868 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"
1785 clip-rule="evenodd" 1869 clip-rule="evenodd"
1786 fill-rule="evenodd" 1870 fill-rule="evenodd"
1787 ></path> 1871 ></path>
1788 </svg> 1872 </svg>
1789 </button> 1873 </button>
1790 </li> 1874 </li>
1791 </ul> 1875 </ul>
1792 </nav> 1876 </nav>
1793 </span> 1877 </span>
1794 </div> 1878 </div>
1795 </div> 1879 </div>
1796 --> 1880 -->
1797 <!-- Charts --> 1881 <!-- Charts -->
1798 <!-- 1882 <!--
1799 <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"> 1883 <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200">
1800 Графики 1884 Графики
1801 </h2> 1885 </h2>
1802 <div class="grid gap-6 mb-8 md:grid-cols-2"> 1886 <div class="grid gap-6 mb-8 md:grid-cols-2">
1803 <div 1887 <div
1804 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1888 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1805 > 1889 >
1806 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> 1890 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300">
1807 Revenue 1891 Revenue
1808 </h4> 1892 </h4>
1809 <canvas id="pie"></canvas> 1893 <canvas id="pie"></canvas>
1810 <div 1894 <div
1811 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" 1895 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400"
1812 > 1896 >
1813 1897
1814 <div class="flex items-center"> 1898 <div class="flex items-center">
1815 <span 1899 <span
1816 class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full" 1900 class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full"
1817 ></span> 1901 ></span>
1818 <span>Shirts</span> 1902 <span>Shirts</span>
1819 </div> 1903 </div>
1820 <div class="flex items-center"> 1904 <div class="flex items-center">
1821 <span 1905 <span
1822 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" 1906 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full"
1823 ></span> 1907 ></span>
1824 <span>Shoes</span> 1908 <span>Shoes</span>
1825 </div> 1909 </div>
1826 <div class="flex items-center"> 1910 <div class="flex items-center">
1827 <span 1911 <span
1828 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" 1912 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full"
1829 ></span> 1913 ></span>
1830 <span>Bags</span> 1914 <span>Bags</span>
1831 </div> 1915 </div>
1832 </div> 1916 </div>
1833 </div> 1917 </div>
1834 <div 1918 <div
1835 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1919 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1836 > 1920 >
1837 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> 1921 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300">
1838 Traffic 1922 Traffic
1839 </h4> 1923 </h4>
1840 <canvas id="line"></canvas> 1924 <canvas id="line"></canvas>
1841 <div 1925 <div
1842 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" 1926 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400"
1843 > 1927 >
1844 1928
1845 <div class="flex items-center"> 1929 <div class="flex items-center">
1846 <span 1930 <span
1847 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" 1931 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full"
1848 ></span> 1932 ></span>
1849 <span>Organic</span> 1933 <span>Organic</span>
1850 </div> 1934 </div>
1851 <div class="flex items-center"> 1935 <div class="flex items-center">
1852 <span 1936 <span
1853 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" 1937 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full"
1854 ></span> 1938 ></span>
1855 <span>Paid</span> 1939 <span>Paid</span>
1856 </div> 1940 </div>
1857 </div> 1941 </div>
1858 </div> 1942 </div>
1859 </div> 1943 </div>
1860 --> 1944 -->
1861 </div> 1945 </div>
1862 </main> 1946 </main>
1863 </div> 1947 </div>
1864 </div> 1948 </div>
1865 @yield('modal') 1949 @yield('modal')
1866 </body> 1950 </body>
1867 @yield('script') 1951 @yield('script')
1868 </html> 1952 </html>
1 <?php 1 <?php
2 2
3 use App\Http\Controllers\Admin\AdminController; 3 use App\Http\Controllers\Admin\AdminController;
4 use App\Http\Controllers\Admin\CategoryController; 4 use App\Http\Controllers\Admin\CategoryController;
5 use App\Http\Controllers\Admin\CategoryEmpController; 5 use App\Http\Controllers\Admin\CategoryEmpController;
6 use App\Http\Controllers\Admin\EducationController; 6 use App\Http\Controllers\Admin\EducationController;
7 use App\Http\Controllers\Admin\EmployersController; 7 use App\Http\Controllers\Admin\EmployersController;
8 use App\Http\Controllers\Admin\InfoBloksController; 8 use App\Http\Controllers\Admin\InfoBloksController;
9 use App\Http\Controllers\Admin\JobTitlesController; 9 use App\Http\Controllers\Admin\JobTitlesController;
10 use App\Http\Controllers\Admin\UsersController; 10 use App\Http\Controllers\Admin\UsersController;
11 use App\Http\Controllers\Admin\WorkersController; 11 use App\Http\Controllers\Admin\WorkersController;
12 use App\Http\Controllers\Auth\ForgotPasswordController; 12 use App\Http\Controllers\Auth\ForgotPasswordController;
13 use App\Http\Controllers\Auth\LoginController; 13 use App\Http\Controllers\Auth\LoginController;
14 use App\Http\Controllers\Auth\RegisterController; 14 use App\Http\Controllers\Auth\RegisterController;
15 use App\Http\Controllers\CKEditorController; 15 use App\Http\Controllers\CKEditorController;
16 use App\Models\User; 16 use App\Models\User;
17 use App\Http\Controllers\MainController; 17 use App\Http\Controllers\MainController;
18 use App\Http\Controllers\HomeController; 18 use App\Http\Controllers\HomeController;
19 use Illuminate\Support\Facades\Route; 19 use Illuminate\Support\Facades\Route;
20 use App\Http\Controllers\Admin\CompanyController; 20 use App\Http\Controllers\Admin\CompanyController;
21 use App\Http\Controllers\Admin\Ad_EmployersController; 21 use App\Http\Controllers\Admin\Ad_EmployersController;
22 use App\Http\Controllers\Admin\MsgAnswersController; 22 use App\Http\Controllers\Admin\MsgAnswersController;
23 use App\Http\Controllers\Admin\GroupsController; 23 use App\Http\Controllers\Admin\GroupsController;
24 use App\Http\Controllers\PagesController; 24 use App\Http\Controllers\PagesController;
25 use Illuminate\Support\Facades\Storage; 25 use Illuminate\Support\Facades\Storage;
26 26
27 27
28 /* 28 /*
29 |-------------------------------------------------------------------------- 29 |--------------------------------------------------------------------------
30 | Web Routes 30 | Web Routes
31 |-------------------------------------------------------------------------- 31 |--------------------------------------------------------------------------
32 | 32 |
33 | Here is where you can register web routes for your application. These 33 | Here is where you can register web routes for your application. These
34 | routes are loaded by the RouteServiceProvider within a group which 34 | routes are loaded by the RouteServiceProvider within a group which
35 | contains the "web" middleware group. Now create something great! 35 | contains the "web" middleware group. Now create something great!
36 | 36 |
37 */ 37 */
38 /* 38 /*
39 Route::get('/', function () { 39 Route::get('/', function () {
40 return view('welcome'); 40 return view('welcome');
41 })->name('index'); 41 })->name('index');
42 */ 42 */
43 Route::get('/', [MainController::class, 'index'])->name('index'); 43 Route::get('/', [MainController::class, 'index'])->name('index');
44 44
45 //Роуты авторизации, регистрации, восстановления, аутентификации 45 //Роуты авторизации, регистрации, восстановления, аутентификации
46 Auth::routes(['verify' => true]); 46 Auth::routes(['verify' => true]);
47 47
48 // роуты регистрации, авторизации, восстановления пароля, верификации почты 48 // роуты регистрации, авторизации, восстановления пароля, верификации почты
49 /*Route::group([ 49 /*Route::group([
50 'as' => 'auth.', //имя маршрута, например auth.index 50 'as' => 'auth.', //имя маршрута, например auth.index
51 'prefix' => 'auth', // префикс маршрута, например, auth/index 51 'prefix' => 'auth', // префикс маршрута, например, auth/index
52 ], function () { 52 ], function () {
53 //форма регистрации 53 //форма регистрации
54 Route::get('register', [RegisterController::class, 'register'])->name('register'); 54 Route::get('register', [RegisterController::class, 'register'])->name('register');
55 55
56 //создание пользователя 56 //создание пользователя
57 Route::post('register', [RegisterController::class, 'create'])->name('create'); 57 Route::post('register', [RegisterController::class, 'create'])->name('create');
58 58
59 //форма входа авторизации 59 //форма входа авторизации
60 Route::get('login', [LoginController::class, 'login'])->name('login'); 60 Route::get('login', [LoginController::class, 'login'])->name('login');
61 61
62 //аутентификация 62 //аутентификация
63 Route::post('login', [LoginController::class, 'authenticate'])->name('auth'); 63 Route::post('login', [LoginController::class, 'authenticate'])->name('auth');
64 64
65 //выход 65 //выход
66 Route::get('logout', [LoginController::class, 'logout'])->name('logout'); 66 Route::get('logout', [LoginController::class, 'logout'])->name('logout');
67 67
68 //форма ввода адреса почты 68 //форма ввода адреса почты
69 Route::get('forgot-password', [ForgotPasswordController::class, 'form'])->name('forgot-form'); 69 Route::get('forgot-password', [ForgotPasswordController::class, 'form'])->name('forgot-form');
70 70
71 //письмо на почту 71 //письмо на почту
72 Route::post('forgot-password', [ForgotPasswordController::class, 'mail'])->name('forgot-mail'); 72 Route::post('forgot-password', [ForgotPasswordController::class, 'mail'])->name('forgot-mail');
73 73
74 //форма восстановления пароля 74 //форма восстановления пароля
75 Route::get('reset-password/token/{token}/email/{email}', 75 Route::get('reset-password/token/{token}/email/{email}',
76 [ResetPasswordController::class, 'form'] 76 [ResetPasswordController::class, 'form']
77 )->name('reset-form'); 77 )->name('reset-form');
78 78
79 //восстановление пароля 79 //восстановление пароля
80 Route::post('reset-password', 80 Route::post('reset-password',
81 [ResetPasswordController::class, 'reset'] 81 [ResetPasswordController::class, 'reset']
82 )->name('reset-password'); 82 )->name('reset-password');
83 83
84 //сообщение о необходимости проверки адреса почты 84 //сообщение о необходимости проверки адреса почты
85 Route::get('verify-message', [VerifyEmailController::class, 'message'])->name('verify-message'); 85 Route::get('verify-message', [VerifyEmailController::class, 'message'])->name('verify-message');
86 86
87 //подтверждение адреса почты нового пользователя 87 //подтверждение адреса почты нового пользователя
88 Route::get('verify-email/token/{token}/id/{id}', [VerifyEmailController::class, 'verify']) 88 Route::get('verify-email/token/{token}/id/{id}', [VerifyEmailController::class, 'verify'])
89 ->where('token', '[a-f0-9]{32}') 89 ->where('token', '[a-f0-9]{32}')
90 ->where('id', '[0-9]+') 90 ->where('id', '[0-9]+')
91 ->name('verify-email'); 91 ->name('verify-email');
92 });*/ 92 });*/
93 93
94 //Личный кабинет пользователя 94 //Личный кабинет пользователя
95 Route::get('/home', [HomeController::class, 'index'])->name('home'); 95 Route::get('/home', [HomeController::class, 'index'])->name('home');
96 96
97 /* 97 /*
98 Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) { 98 Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) {
99 $user = User::where('email',$request->input('email'))->first(); 99 $user = User::where('email',$request->input('email'))->first();
100 100
101 $user->sendEmailVerificationNotification(); 101 $user->sendEmailVerificationNotification();
102 102
103 return 'your response'; 103 return 'your response';
104 })->middleware('throttle:6,1')->name('verification.resend'); 104 })->middleware('throttle:6,1')->name('verification.resend');
105 */ 105 */
106 106
107 // Авторизация, регистрация в админку 107 // Авторизация, регистрация в админку
108 Route::group([ 108 Route::group([
109 'as' => 'admin.', // имя маршрута, например auth.index 109 'as' => 'admin.', // имя маршрута, например auth.index
110 'prefix' => 'admin', // префикс маршрута, например auth/index 110 'prefix' => 'admin', // префикс маршрута, например auth/index
111 'middleware' => ['guest'], 111 'middleware' => ['guest'],
112 ], function () { 112 ], function () {
113 // Форма регистрации 113 // Форма регистрации
114 Route::get('register', [AdminController::class, 'register'])->name('register'); 114 Route::get('register', [AdminController::class, 'register'])->name('register');
115 115
116 // Создание пользователя 116 // Создание пользователя
117 Route::post('register', [AdminController::class, 'create'])->name('create'); 117 Route::post('register', [AdminController::class, 'create'])->name('create');
118 //Форма входа 118 //Форма входа
119 Route::get('login', [AdminController::class, 'login'])->name('login'); 119 Route::get('login', [AdminController::class, 'login'])->name('login');
120 120
121 // аутентификация 121 // аутентификация
122 Route::post('login', [AdminController::class, 'autenticate'])->name('auth'); 122 Route::post('login', [AdminController::class, 'autenticate'])->name('auth');
123 123
124 }); 124 });
125 125
126 // Личный кабинет админки 126 // Личный кабинет админки
127 Route::group([ 127 Route::group([
128 'as' => 'admin.', // имя маршрута, например auth.index 128 'as' => 'admin.', // имя маршрута, например auth.index
129 'prefix' => 'admin', // префикс маршрута, например auth/index 129 'prefix' => 'admin', // префикс маршрута, например auth/index
130 'middleware' => ['auth'], ['admin'], 130 'middleware' => ['auth'], ['admin'],
131 ], function() { 131 ], function() {
132 132
133 // выход 133 // выход
134 Route::get('logout', [AdminController::class, 'logout'])->name('logout'); 134 Route::get('logout', [AdminController::class, 'logout'])->name('logout');
135 135
136 // кабинет главная страница 136 // кабинет главная страница
137 Route::get('cabinet', [AdminController::class, 'index'])->name('index'); 137 Route::get('cabinet', [AdminController::class, 'index'])->name('index');
138 138
139 // кабинет профиль админа - форма 139 // кабинет профиль админа - форма
140 Route::get('profile', [AdminController::class, 'profile'])->name('profile'); 140 Route::get('profile', [AdminController::class, 'profile'])->name('profile');
141 // кабинет профиль админа - сохранение формы 141 // кабинет профиль админа - сохранение формы
142 Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile'); 142 Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile');
143 143
144 //кабинет сообщения админа 144 //кабинет сообщения админа
145 //Route::get('messages', [AdminController::class, 'profile'])->name('profile'); 145 //Route::get('messages', [AdminController::class, 'profile'])->name('profile');
146 146
147 147
148 // кабинет профиль - форма пароли 148 // кабинет профиль - форма пароли
149 Route::get('password', [AdminController::class, 'profile_password'])->name('password'); 149 Route::get('password', [AdminController::class, 'profile_password'])->name('password');
150 // кабинет профиль - сохранение формы пароля 150 // кабинет профиль - сохранение формы пароля
151 Route::post('password', [AdminController::class, 'profile_password_new'])->name('password'); 151 Route::post('password', [AdminController::class, 'profile_password_new'])->name('password');
152 152
153 153
154 // кабинет профиль пользователя - форма 154 // кабинет профиль пользователя - форма
155 Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile'); 155 Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile');
156 // кабинет профиль пользователя - сохранение формы 156 // кабинет профиль пользователя - сохранение формы
157 Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile'); 157 Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile');
158 158
159 // кабинет профиль работодатель - форма 159 // кабинет профиль работодатель - форма
160 Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile'); 160 Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile');
161 // кабинет профиль работодатель - сохранение формы 161 // кабинет профиль работодатель - сохранение формы
162 Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile'); 162 Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile');
163 // кабинет удаление профиль работодателя и юзера 163 // кабинет удаление профиль работодателя и юзера
164 Route::delete('employers/delete/{employer}/{user}', [EmployersController::class, 'delete_employer'])->name('delete-employer'); 164 Route::delete('employers/delete/{employer}/{user}', [EmployersController::class, 'delete_employer'])->name('delete-employer');
165 165
166 // кабинет профиль работник - форма 166 // кабинет профиль работник - форма
167 Route::get('worker-profile/add/{user}', [WorkersController::class, 'form_add_worker'])->name('worker-profile-add');
168 Route::post('worker-profile/add/{user}', [WorkersController::class, 'form_store_worker'])->name('worker-profile-store');
167 Route::get('worker-profile/{worker}', [WorkersController::class, 'form_edit_worker'])->name('worker-profile-edit'); 169 Route::get('worker-profile/{worker}', [WorkersController::class, 'form_edit_worker'])->name('worker-profile-edit');
168 // кабинет профиль работник - сохранение формы 170 // кабинет профиль работник - сохранение формы
169 Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile-update'); 171 Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile-update');
170 172
171 173
172 // кабинет настройки сайта - форма 174 // кабинет настройки сайта - форма
173 Route::get('config', [AdminController::class, 'config_form'])->name('config'); 175 Route::get('config', [AdminController::class, 'config_form'])->name('config');
174 // кабинет настройки сайта сохранение формы 176 // кабинет настройки сайта сохранение формы
175 Route::post('config', [AdminController::class, 'store_config'])->name('store_config'); 177 Route::post('config', [AdminController::class, 'store_config'])->name('store_config');
176 178
177 // кабинет - пользователи 179 // кабинет - пользователи
178 Route::get('users', [UsersController::class, 'index'])->name('users'); 180 Route::get('users', [UsersController::class, 'index'])->name('users');
179 181
180 // кабинет - пользователи 182 // кабинет - пользователи
181 Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users'); 183 Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users');
182 184
183 // кабинет - работодатели 185 // кабинет - работодатели
184 Route::get('employers', [EmployersController::class, 'index'])->name('employers'); 186 Route::get('employers', [EmployersController::class, 'index'])->name('employers');
185 187
186 // кабинет - соискатели 188 // кабинет - соискатели
187 Route::get('workers', [WorkersController::class, 'index'])->name('workers'); 189 Route::get('workers', [WorkersController::class, 'index'])->name('workers');
188 190
191 // кабинет - база данных
192 Route::get('basedata', [UsersController::class, 'index_bd'])->name('basedata');
193 Route::get('basedata/add', [UsersController::class, 'add_bd'])->name('add-basedata');
194 Route::post('basedata/add', [UsersController::class, 'add_store_bd'])->name('add-store-basedata');
195 Route::get('basedata/edit/{user}', [UsersController::class, 'edit_bd'])->name('edit-basedata');
196 Route::put('basedata/edit/{user}', [UsersController::class, 'update_bd'])->name('update-basedata');
197 Route::delete('basedata/delete/{user}', [UsersController::class, 'destroy_bd'])->name('delete-basedata');
198 Route::get('basedata/doc/{user}', [UsersController::class, 'doc_bd'])->name('doc-basedata');
199
189 // кабинет - вакансии 200 // кабинет - вакансии
190 Route::get('ad-employers', [Ad_EmployersController::class, 'index'])->name('ad-employers'); 201 Route::get('ad-employers', [Ad_EmployersController::class, 'index'])->name('ad-employers');
191 Route::get('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'edit'])->name('edit-ad-employers'); 202 Route::get('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'edit'])->name('edit-ad-employers');
192 Route::post('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'update'])->name('update-ad-employers'); 203 Route::post('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'update'])->name('update-ad-employers');
193 204
194 // кабинет - категории 205 // кабинет - категории
195 //Route::get('categories', [AdminController::class, 'index'])->name('categories'); 206 //Route::get('categories', [AdminController::class, 'index'])->name('categories');
196 /* 207 /*
197 * CRUD-операции над Справочником Категории 208 * CRUD-операции над Справочником Категории
198 */ 209 */
199 Route::resource('categories', CategoryController::class, ['except' => ['show']]); 210 Route::resource('categories', CategoryController::class, ['except' => ['show']]);
200 211
201 // CRUD-операции над справочником Категории для работодателей 212 // CRUD-операции над справочником Категории для работодателей
202 Route::resource('category-emp', CategoryEmpController::class, ['except' => ['show']]); 213 Route::resource('category-emp', CategoryEmpController::class, ['except' => ['show']]);
203 214
204 // CRUD-операции над справочником Образование 215 // CRUD-операции над справочником Образование
205 Route::resource('education', EducationController::class, ['except' => ['show']]); 216 Route::resource('education', EducationController::class, ['except' => ['show']]);
206 217
207 //Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles'); 218 //Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles');
208 /* 219 /*
209 * кабинет - CRUD-операции по справочнику должности 220 * кабинет - CRUD-операции по справочнику должности
210 * 221 *
211 */ 222 */
212 Route::resource('job-titles', JobTitlesController::class, ['except' => ['show']]); 223 Route::resource('job-titles', JobTitlesController::class, ['except' => ['show']]);
213 224
214 // кабинет - сообщения (чтение чужих) 225 // кабинет - сообщения (чтение чужих)
215 Route::get('messages', [MsgAnswersController::class, 'messages'])->name('messages'); 226 Route::get('messages', [MsgAnswersController::class, 'messages'])->name('messages');
216 // кабинет - просмотр сообщения чужого (чтение) 227 // кабинет - просмотр сообщения чужого (чтение)
217 Route::get('messages/{message}', [MsgAnswersController::class, 'read_message'])->name('read-message'); 228 Route::get('messages/{message}', [MsgAnswersController::class, 'read_message'])->name('read-message');
218 229
219 // кабинет - сообщения (админские) 230 // кабинет - сообщения (админские)
220 Route::get('admin-messages', [MsgAnswersController::class, 'admin_messages'])->name('admin-messages'); 231 Route::get('admin-messages', [MsgAnswersController::class, 'admin_messages'])->name('admin-messages');
221 // кабинет - сообщения (админские) 232 // кабинет - сообщения (админские)
222 Route::post('admin-messages', [MsgAnswersController::class, 'admin_messages_post'])->name('admin-messages-post'); 233 Route::post('admin-messages', [MsgAnswersController::class, 'admin_messages_post'])->name('admin-messages-post');
223 // кабинет - sql - конструкция запросов 234 // кабинет - sql - конструкция запросов
224 Route::get('messages-sql', [MsgAnswersController::class, 'messages_sql'])->name('messages-sql'); 235 Route::get('messages-sql', [MsgAnswersController::class, 'messages_sql'])->name('messages-sql');
225 236
226 /* 237 /*
227 * Расписанный подход в описании каждой директорий групп пользователей. 238 * Расписанный подход в описании каждой директорий групп пользователей.
228 */ 239 */
229 // кабинет - группы пользователей 240 // кабинет - группы пользователей
230 Route::get('groups', [GroupsController::class, 'index'])->name('groups'); 241 Route::get('groups', [GroupsController::class, 'index'])->name('groups');
231 // кабинет - добавление форма группы пользователей 242 // кабинет - добавление форма группы пользователей
232 Route::get('groups/add', [GroupsController::class, 'add'])->name('add-group'); 243 Route::get('groups/add', [GroupsController::class, 'add'])->name('add-group');
233 // кабинет - сохранение формы группы пользователей 244 // кабинет - сохранение формы группы пользователей
234 Route::post('groups/add', [GroupsController::class, 'store'])->name('add-group-store'); 245 Route::post('groups/add', [GroupsController::class, 'store'])->name('add-group-store');
235 // кабинет - редактирование форма группы пользователей 246 // кабинет - редактирование форма группы пользователей
236 Route::get('groups/edit/{group}', [GroupsController::class, 'edit'])->name('edit-group'); 247 Route::get('groups/edit/{group}', [GroupsController::class, 'edit'])->name('edit-group');
237 // кабинет - сохранение редактированной формы группы пользователей 248 // кабинет - сохранение редактированной формы группы пользователей
238 Route::post('groups/edit/{group}', [GroupsController::class, 'update'])->name('update-group'); 249 Route::post('groups/edit/{group}', [GroupsController::class, 'update'])->name('update-group');
239 // кабинет - удаление группы пользователей 250 // кабинет - удаление группы пользователей
240 Route::delete('groups/delete/{group}', [GroupsController::class, 'destroy'])->name('delete-group'); 251 Route::delete('groups/delete/{group}', [GroupsController::class, 'destroy'])->name('delete-group');
241 252
242 253
243 // кабинет - список админов 254 // кабинет - список админов
244 Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin'); 255 Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin');
245 256
246 257
247 /////редактор////// кабинет - редактор сайта//////////////////////// 258 /////редактор////// кабинет - редактор сайта////////////////////////
248 Route::get('editor-site', function() { 259 Route::get('editor-site', function() {
249 return view('admin.editor.index'); 260 return view('admin.editor.index');
250 })->name('editor-site'); 261 })->name('editor-site');
251 262
252 263
253 // кабинет - редактор шапки-футера сайта 264 // кабинет - редактор шапки-футера сайта
254 Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks'); 265 Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks');
255 Route::get('edit-bloks/add', [CompanyController::class, 'editblock_add'])->name('add-block'); 266 Route::get('edit-bloks/add', [CompanyController::class, 'editblock_add'])->name('add-block');
256 Route::post('edit-bloks/add', [CompanyController::class, 'editblock_store'])->name('add-block-store'); 267 Route::post('edit-bloks/add', [CompanyController::class, 'editblock_store'])->name('add-block-store');
257 Route::get('edit-bloks/ajax', [CompanyController::class, 'editblock_ajax'])->name('ajax.block'); 268 Route::get('edit-bloks/ajax', [CompanyController::class, 'editblock_ajax'])->name('ajax.block');
258 Route::get('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_edit'])->name('edit-block'); 269 Route::get('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_edit'])->name('edit-block');
259 Route::put('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_update'])->name('update-block'); 270 Route::put('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_update'])->name('update-block');
260 Route::delete('edit-bloks/delete/{block}', [CompanyController::class, 'editblock_destroy'])->name('delete-block'); 271 Route::delete('edit-bloks/delete/{block}', [CompanyController::class, 'editblock_destroy'])->name('delete-block');
261 272
262 273
263 // кабинет - редактор должности на главной 274 // кабинет - редактор должности на главной
264 Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main'); 275 Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main');
265 276
266 // кабинет - редактор работодатели на главной 277 // кабинет - редактор работодатели на главной
267 Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main'); 278 Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main');
268 279
269 280
270 // кабинет - редактор seo-сайта 281 // кабинет - редактор seo-сайта
271 Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo'); 282 Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo');
272 Route::get('editor-seo/add', [CompanyController::class, 'editor_seo_add'])->name('add-seo'); 283 Route::get('editor-seo/add', [CompanyController::class, 'editor_seo_add'])->name('add-seo');
273 Route::post('editor-seo/add', [CompanyController::class, 'editor_seo_store'])->name('add-seo-store'); 284 Route::post('editor-seo/add', [CompanyController::class, 'editor_seo_store'])->name('add-seo-store');
274 Route::get('editor-seo/ajax', [CompanyController::class, 'editor_seo_ajax'])->name('ajax.seo'); 285 Route::get('editor-seo/ajax', [CompanyController::class, 'editor_seo_ajax'])->name('ajax.seo');
275 Route::get('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_edit'])->name('edit-seo'); 286 Route::get('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_edit'])->name('edit-seo');
276 Route::put('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_update'])->name('update-seo'); 287 Route::put('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_update'])->name('update-seo');
277 Route::delete('editor-seo/delete/{page}', [CompanyController::class, 'editor_seo_destroy'])->name('delete-seo'); 288 Route::delete('editor-seo/delete/{page}', [CompanyController::class, 'editor_seo_destroy'])->name('delete-seo');
278 289
279 290
280 // кабинет - редактор страниц 291 // кабинет - редактор страниц
281 Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages'); 292 Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages');
282 // кабинет - добавление страницы 293 // кабинет - добавление страницы
283 Route::get('editor-pages/add', [CompanyController::class, 'editor_pages_add'])->name('add-page'); 294 Route::get('editor-pages/add', [CompanyController::class, 'editor_pages_add'])->name('add-page');
284 // кабинет - сохранение формы страницы 295 // кабинет - сохранение формы страницы
285 Route::post('editor-page/add', [CompanyController::class, 'editor_pages_store'])->name('add-page-store'); 296 Route::post('editor-page/add', [CompanyController::class, 'editor_pages_store'])->name('add-page-store');
286 // кабинет - редактирование форма страницы 297 // кабинет - редактирование форма страницы
287 Route::get('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_edit'])->name('edit-page'); 298 Route::get('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_edit'])->name('edit-page');
288 // кабинет - сохранение редактированной формы страницы 299 // кабинет - сохранение редактированной формы страницы
289 Route::put('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_update'])->name('update-page'); 300 Route::put('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_update'])->name('update-page');
290 // кабинет - удаление страницы 301 // кабинет - удаление страницы
291 Route::delete('editor-pages/delete/{page}', [CompanyController::class, 'editor_pages_destroy'])->name('delete-page'); 302 Route::delete('editor-pages/delete/{page}', [CompanyController::class, 'editor_pages_destroy'])->name('delete-page');
292 303
293 304
294 // кабинет - реклама сайта 305 // кабинет - реклама сайта
295 Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames'); 306 Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames');
296 Route::get('reclames/add', [CompanyController::class, 'reclames_add'])->name('add-reclames'); 307 Route::get('reclames/add', [CompanyController::class, 'reclames_add'])->name('add-reclames');
297 Route::post('reclames/add', [CompanyController::class, 'reclames_store'])->name('add-reclames-store'); 308 Route::post('reclames/add', [CompanyController::class, 'reclames_store'])->name('add-reclames-store');
298 Route::get('reclames/edit/{reclame}', [CompanyController::class, 'reclames_edit'])->name('edit-reclames'); 309 Route::get('reclames/edit/{reclame}', [CompanyController::class, 'reclames_edit'])->name('edit-reclames');
299 Route::put('reclames/edit/{reclame}', [CompanyController::class, 'reclames_update'])->name('update-reclames'); 310 Route::put('reclames/edit/{reclame}', [CompanyController::class, 'reclames_update'])->name('update-reclames');
300 Route::delete('reclames/delete/{reclame}', [CompanyController::class, 'reclames_destroy'])->name('delete-reclames'); 311 Route::delete('reclames/delete/{reclame}', [CompanyController::class, 'reclames_destroy'])->name('delete-reclames');
301 //////////////////////////////////////////////////////////////////////// 312 ////////////////////////////////////////////////////////////////////////
302 313
303 314
304 // кабинет - отзывы о работодателе для модерации 315 // кабинет - отзывы о работодателе для модерации
305 Route::get('answers', [EmployersController::class, 'answers'])->name('answers'); 316 Route::get('answers', [EmployersController::class, 'answers'])->name('answers');
306 317
307 // Общая страница статистики 318 // Общая страница статистики
308 Route::get('statics', function () { 319 Route::get('statics', function () {
309 return view('admin.static.index'); 320 return view('admin.static.index');
310 })->name('statics'); 321 })->name('statics');
311 322
312 // кабинет - статистика работников 323 // кабинет - статистика работников
313 Route::get('static-workers', [WorkersController::class, 'static_workers'])->name('static-workers'); 324 Route::get('static-workers', [WorkersController::class, 'static_workers'])->name('static-workers');
314 325
315 // кабинет - статистика вакансий работодателя 326 // кабинет - статистика вакансий работодателя
316 Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads'); 327 Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads');
317 328
318 // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника 329 // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника
319 /* 330 /*
320 * CRUD-операции над справочником дипломы и документы 331 * CRUD-операции над справочником дипломы и документы
321 */ 332 */
322 //Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks'); 333 //Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks');
323 Route::resource('infobloks', InfoBloksController::class, ['except' => ['show']]); 334 Route::resource('infobloks', InfoBloksController::class, ['except' => ['show']]);
324 335
325 // кабинет - роли пользователя 336 // кабинет - роли пользователя
326 Route::get('roles', [UsersController::class, 'roles'])->name('roles'); 337 Route::get('roles', [UsersController::class, 'roles'])->name('roles');
327 338
328 Route::get('logs', function() { 339 Route::get('logs', function() {
329 $files = Storage::files('logs/laravel.log'); 340 $files = Storage::files('logs/laravel.log');
330 print_r($files); 341 print_r($files);
331 })->name('logs'); 342 })->name('logs');
332 343
333 }); 344 });
334 345
335 Route::post('ckeditor/upload', [CKEditorController::class, 'upload'])->name('ckeditor.image-upload'); 346 Route::post('ckeditor/upload', [CKEditorController::class, 'upload'])->name('ckeditor.image-upload');
336 347
337 Route::get('pages/{pages:slug}', [PagesController::class, 'pages'])->name('page'); 348 Route::get('pages/{pages:slug}', [PagesController::class, 'pages'])->name('page');
338 349
339 Route::get('redis/', [PagesController::class, 'redis'])->name('redis'); 350 Route::get('redis/', [PagesController::class, 'redis'])->name('redis');
340 351
341 Route::get('excel/', [PagesController::class, 'excel'])->name('excel'); 352 Route::get('excel/', [PagesController::class, 'excel'])->name('excel');
342 353