Commit 9b4580039f5ceae97c06059b629e07965e8214a9

Authored by Андрей Ларионов
1 parent 09a5498b17

Медиа сущность, должности в бд, фильтры в вакансиях

Showing 17 changed files with 486 additions and 26 deletions Inline Diff

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