Commit d50cbef749496f891f1484af2cfeb3afb7f0c3fe
Exists in
master
Merge branch 'master' of http://gitlab.nologostudio.ru/alarionov/rekamore-su
Showing 10 changed files Inline Diff
- app/Http/Controllers/Admin/UsersController.php
- app/Http/Controllers/EmployerController.php
- app/Models/Worker.php
- database/migrations/2024_08_10_123217_alter_table_workers.php
- public/js/chosen/chosen-sprite.png
- public/js/chosen/chosen-sprite@2x.png
- resources/views/admin/users/form.blade.php
- resources/views/admin/users/index_bd.blade.php
- resources/views/employers/bd.blade.php
- resources/views/layout/admin.blade.php
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\ContentRoles; | 7 | use App\Models\ContentRoles; |
8 | use App\Models\Job_title; | 8 | use App\Models\Job_title; |
9 | use App\Models\User; | 9 | use App\Models\User; |
10 | use App\Models\Worker; | 10 | use App\Models\Worker; |
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\Storage; | 13 | use Illuminate\Support\Facades\Storage; |
14 | use PhpOffice\PhpSpreadsheet\Spreadsheet; | 14 | use PhpOffice\PhpSpreadsheet\Spreadsheet; |
15 | use PhpOffice\PhpSpreadsheet\Style\Alignment; | 15 | use PhpOffice\PhpSpreadsheet\Style\Alignment; |
16 | use PhpOffice\PhpSpreadsheet\Style\Border; | 16 | use PhpOffice\PhpSpreadsheet\Style\Border; |
17 | use PhpOffice\PhpSpreadsheet\Style\Font; | 17 | use PhpOffice\PhpSpreadsheet\Style\Font; |
18 | use PhpOffice\PhpSpreadsheet\Writer\Xlsx; | 18 | use PhpOffice\PhpSpreadsheet\Writer\Xlsx; |
19 | 19 | ||
20 | class UsersController extends Controller | 20 | class UsersController extends Controller |
21 | { | 21 | { |
22 | public function index(Request $request) { | 22 | public function index(Request $request) { |
23 | $title = 'Админка - Пользователи системы'; | 23 | $title = 'Админка - Пользователи системы'; |
24 | $id_admin = Auth::user()->id; | 24 | $id_admin = Auth::user()->id; |
25 | if ($request->ajax()) { | 25 | if ($request->ajax()) { |
26 | $user = User::find($request->id); | 26 | $user = User::find($request->id); |
27 | $request->offsetUnset('id'); | 27 | $request->offsetUnset('id'); |
28 | $user->update($request->all()); | 28 | $user->update($request->all()); |
29 | } | 29 | } |
30 | 30 | ||
31 | $find_key = ""; | 31 | $find_key = ""; |
32 | $users = User::query(); | 32 | $users = User::query(); |
33 | if (isset($request->find)) { | 33 | if (isset($request->find)) { |
34 | $find_key = $request->find; | 34 | $find_key = $request->find; |
35 | $users = $users->where('name', 'LIKE', "%$find_key%") | 35 | $users = $users->where('name', 'LIKE', "%$find_key%") |
36 | ->orWhere('email', 'LIKE', "%$find_key%"); | 36 | ->orWhere('email', 'LIKE', "%$find_key%"); |
37 | } | 37 | } |
38 | 38 | ||
39 | $users = $users->paginate(15); | 39 | $users = $users->paginate(15); |
40 | 40 | ||
41 | if ($request->ajax()) { | 41 | if ($request->ajax()) { |
42 | return view('admin.users.index_ajax', compact('users', 'id_admin')); | 42 | return view('admin.users.index_ajax', compact('users', 'id_admin')); |
43 | } else { | 43 | } else { |
44 | return view('admin.users.index', compact('users', 'title', 'id_admin', 'find_key')); | 44 | return view('admin.users.index', compact('users', 'title', 'id_admin', 'find_key')); |
45 | } | 45 | } |
46 | } | 46 | } |
47 | 47 | ||
48 | public function user_delete(User $user) { | 48 | public function user_delete(User $user) { |
49 | $id = $user->delete(); | 49 | $id = $user->delete(); |
50 | 50 | ||
51 | return redirect()->route('admin.users')->with('Пользователь был удален из системы'); | 51 | return redirect()->route('admin.users')->with('Пользователь был удален из системы'); |
52 | } | 52 | } |
53 | 53 | ||
54 | public function index_bd(Request $request) { | 54 | public function index_bd(Request $request) { |
55 | $title = 'Админка - Пользователи базы данных'; | 55 | $title = 'Админка - Пользователи базы данных'; |
56 | 56 | ||
57 | $find_key = ""; | 57 | $find_key = ""; |
58 | $users = User::query(); | 58 | $users = User::query(); |
59 | if (isset($request->find)) { | 59 | if (isset($request->find)) { |
60 | $find_key = $request->find; | 60 | $find_key = $request->find; |
61 | $users = $users->where('name', 'LIKE', "%$find_key%") | 61 | $users = $users->where('name', 'LIKE', "%$find_key%") |
62 | ->orWhere('email', 'LIKE', "%$find_key%") | 62 | ->orWhere('email', 'LIKE', "%$find_key%") |
63 | ->orWhere('telephone', 'LIKE', "%$find_key%"); | 63 | ->orWhere('telephone', 'LIKE', "%$find_key%"); |
64 | } | 64 | } |
65 | 65 | ||
66 | $users = $users->Baseuser() | 66 | $users = $users->Baseuser() |
67 | ->orderByDesc(Worker::select('created_at')->whereColumn('workers.user_id', 'users.id')) | 67 | ->orderByDesc(Worker::select('created_at')->whereColumn('workers.user_id', 'users.id')) |
68 | ->paginate(15); | 68 | ->paginate(15); |
69 | 69 | ||
70 | if ($request->ajax()) { | 70 | if ($request->ajax()) { |
71 | return view('admin.users.index_bd_ajax', compact('users')); | 71 | return view('admin.users.index_bd_ajax', compact('users')); |
72 | } else { | 72 | } else { |
73 | return view('admin.users.index_bd', compact('users', 'title', 'find_key')); | 73 | return view('admin.users.index_bd', compact('users', 'title', 'find_key')); |
74 | } | 74 | } |
75 | } | 75 | } |
76 | 76 | ||
77 | public function add_bd() { | 77 | public function add_bd() { |
78 | $list_job_titles = Job_title::query()->active()->where('is_bd', '=' , '2')->orderBy('name', 'asc')->get(); | 78 | $list_job_titles = Job_title::query()->active()->where('is_bd', '=' , '2')->orderBy('name', 'asc')->get(); |
79 | return view('admin.users.add', compact('list_job_titles')); | 79 | return view('admin.users.add', compact('list_job_titles')); |
80 | } | 80 | } |
81 | 81 | ||
82 | public function add_store_bd(BaseUserRequest $request) { | 82 | public function add_store_bd(BaseUserRequest $request) { |
83 | $params = $request->all(); | 83 | $params = $request->all(); |
84 | $position_work = $request->position_work; | 84 | $positions_work = json_encode($request->input('positions_work', [])); |
85 | 85 | ||
86 | if ($request->has('file')) { | 86 | if ($request->has('file')) { |
87 | $params['file'] = $request->file('file')->store('basedata', 'public'); | 87 | $params['file'] = $request->file('file')->store('basedata', 'public'); |
88 | } | 88 | } |
89 | 89 | ||
90 | if (isset($request->name)) { | 90 | if (isset($request->name)) { |
91 | $params['name'] = $request->surname." ".$request->name_man." ".$request->surname2; | 91 | $params['name'] = $request->surname." ".$request->name_man." ".$request->surname2; |
92 | } | 92 | } |
93 | 93 | ||
94 | $user = User::create($params); | 94 | $user = User::create($params); |
95 | $user_id = $user->id; | 95 | $user_id = $user->id; |
96 | $worker = new Worker(); | 96 | $worker = new Worker(); |
97 | $worker->position_work = $position_work; | 97 | $worker->positions_work = $positions_work; |
98 | $worker->user_id = $user_id; | 98 | $worker->user_id = $user_id; |
99 | $worker->save(); | 99 | $worker->save(); |
100 | 100 | ||
101 | return redirect()->route('admin.basedata'); | 101 | return redirect()->route('admin.basedata'); |
102 | } | 102 | } |
103 | 103 | ||
104 | public function edit_bd(User $user) { | 104 | public function edit_bd(User $user) { |
105 | $list_job_titles = Job_title::query()->active()->where('is_bd', '=' , '2')-> | 105 | $list_job_titles = Job_title::query()->active()->where('is_bd', '=' , '2')-> |
106 | orderByDesc('sort')->orderBy('name', 'asc')->get(); | 106 | orderByDesc('sort')->orderBy('name', 'asc')->get(); |
107 | return view('admin.users.edit', compact('user', 'list_job_titles')); | 107 | return view('admin.users.edit', compact('user', 'list_job_titles')); |
108 | } | 108 | } |
109 | 109 | ||
110 | public function update_bd(BaseUserRequest $request, User $user) { | 110 | public function update_bd(BaseUserRequest $request, User $user) { |
111 | $params = $request->all(); | 111 | $params = $request->all(); |
112 | $position_work = $request->position_work; | 112 | $positions_work = $request->input('positions_work', []); |
113 | 113 | ||
114 | if ($request->has('file')) { | 114 | if ($request->has('file')) { |
115 | if (!empty($user->file)) Storage::delete($user->file); | 115 | if (!empty($user->file)) Storage::delete($user->file); |
116 | $params['file'] = $request->file('file')->store('basedata', 'public'); | 116 | $params['file'] = $request->file('file')->store('basedata', 'public'); |
117 | } else { | 117 | } else { |
118 | if (!empty($user->image)) $params['file'] = $user->file; | 118 | if (!empty($user->image)) $params['file'] = $user->file; |
119 | } | 119 | } |
120 | 120 | ||
121 | if (isset($request->name)) { | 121 | if (isset($request->name)) { |
122 | $params['name'] = $request->surname." ".$request->name_man." ".$request->surname2; | 122 | $params['name'] = $request->surname." ".$request->name_man." ".$request->surname2; |
123 | } | 123 | } |
124 | 124 | ||
125 | $user->update($params); | 125 | $user->update($params); |
126 | if (isset($user->workers[0]->id)) { | 126 | if (isset($user->workers[0]->id)) { |
127 | $worker = Worker::find($user->workers[0]->id); | 127 | $worker = Worker::find($user->workers[0]->id); |
128 | $worker->position_work = $position_work; | 128 | $worker->positions_work = $positions_work; |
129 | $worker->save(); | 129 | $worker->save(); |
130 | } else { | 130 | } else { |
131 | $worker = new Worker(); | 131 | $worker = new Worker(); |
132 | $worker->user_id = $user->id; | 132 | $worker->user_id = $user->id; |
133 | $worker->position_work = $position_work; | 133 | $worker->positions_work = $positions_work; |
134 | $worker->save(); | 134 | $worker->save(); |
135 | } | 135 | } |
136 | 136 | ||
137 | return redirect()->route('admin.basedata'); | 137 | return redirect()->route('admin.basedata'); |
138 | } | 138 | } |
139 | 139 | ||
140 | public function destroy_bd(User $user) { | 140 | public function destroy_bd(User $user) { |
141 | $user->delete(); | 141 | $user->delete(); |
142 | return redirect()->route('admin.basedata'); | 142 | return redirect()->route('admin.basedata'); |
143 | } | 143 | } |
144 | 144 | ||
145 | public function roles(Request $request) { | 145 | public function roles(Request $request) { |
146 | if ($request->ajax()) { | 146 | if ($request->ajax()) { |
147 | $user = User::find($request->id); | 147 | $user = User::find($request->id); |
148 | $request->offsetUnset('id'); | 148 | $request->offsetUnset('id'); |
149 | $user->update($request->all()); | 149 | $user->update($request->all()); |
150 | } | 150 | } |
151 | 151 | ||
152 | $users = User::query()->Realuser()->paginate(15); | 152 | $users = User::query()->Realuser()->paginate(15); |
153 | 153 | ||
154 | if ($request->ajax()) { | 154 | if ($request->ajax()) { |
155 | return view('admin.users.roles.index_ajax', compact('users')); | 155 | return view('admin.users.roles.index_ajax', compact('users')); |
156 | } else { | 156 | } else { |
157 | return view('admin.users.roles.index', compact('users')); | 157 | return view('admin.users.roles.index', compact('users')); |
158 | } | 158 | } |
159 | } | 159 | } |
160 | 160 | ||
161 | public function admin_roles(Request $request) { | 161 | public function admin_roles(Request $request) { |
162 | 162 | ||
163 | if ($request->ajax()) { | 163 | if ($request->ajax()) { |
164 | $id = $request->id; | 164 | $id = $request->id; |
165 | $request->offsetUnset('id'); | 165 | $request->offsetUnset('id'); |
166 | ContentRoles::where('id', '=', $id)->update($request->all()); | 166 | ContentRoles::where('id', '=', $id)->update($request->all()); |
167 | } | 167 | } |
168 | $roles = ContentRoles::query()->OrderBy('id')->paginate(25); | 168 | $roles = ContentRoles::query()->OrderBy('id')->paginate(25); |
169 | 169 | ||
170 | 170 | ||
171 | if ($request->ajax()) { | 171 | if ($request->ajax()) { |
172 | return view('admin.content.roles_index_ajax', compact('roles')); | 172 | return view('admin.content.roles_index_ajax', compact('roles')); |
173 | } else { | 173 | } else { |
174 | return view('admin.content.roles_index', compact('roles')); | 174 | return view('admin.content.roles_index', compact('roles')); |
175 | } | 175 | } |
176 | } | 176 | } |
177 | 177 | ||
178 | public function doc_bd(User $user) { | 178 | public function doc_bd(User $user) { |
179 | $id = $user->id; | 179 | $id = $user->id; |
180 | $spreadsheet = new Spreadsheet(); | 180 | $spreadsheet = new Spreadsheet(); |
181 | $activeWorksheet = $spreadsheet->getActiveSheet(); | 181 | $activeWorksheet = $spreadsheet->getActiveSheet(); |
182 | $activeWorksheet->setCellValue('A1', 'Отчет по соискателю'); | 182 | $activeWorksheet->setCellValue('A1', 'Отчет по соискателю'); |
183 | $activeWorksheet->getStyle('A1')->applyFromArray([ | 183 | $activeWorksheet->getStyle('A1')->applyFromArray([ |
184 | 'font' => [ | 184 | 'font' => [ |
185 | 'name' => 'Arial', | 185 | 'name' => 'Arial', |
186 | 'bold' => true, | 186 | 'bold' => true, |
187 | 'italic' => false, | 187 | 'italic' => false, |
188 | 'underline' => Font::UNDERLINE_DOUBLE, | 188 | 'underline' => Font::UNDERLINE_DOUBLE, |
189 | 'strikethrough' => false, | 189 | 'strikethrough' => false, |
190 | 'color' => [ | 190 | 'color' => [ |
191 | 'rgb' => '808080' | 191 | 'rgb' => '808080' |
192 | ] | 192 | ] |
193 | ], | 193 | ], |
194 | 'borders' => [ | 194 | 'borders' => [ |
195 | 'allBorders' => [ | 195 | 'allBorders' => [ |
196 | 'borderStyle' => Border::BORDER_THIN, | 196 | 'borderStyle' => Border::BORDER_THIN, |
197 | 'color' => [ | 197 | 'color' => [ |
198 | 'rgb' => '808080' | 198 | 'rgb' => '808080' |
199 | ] | 199 | ] |
200 | ], | 200 | ], |
201 | 'outline' => array( | 201 | 'outline' => array( |
202 | 'style' => Border::BORDER_THIN, | 202 | 'style' => Border::BORDER_THIN, |
203 | 'color' => array('rgb' => '000000') | 203 | 'color' => array('rgb' => '000000') |
204 | ), | 204 | ), |
205 | ], | 205 | ], |
206 | 206 | ||
207 | 'alignment' => [ | 207 | 'alignment' => [ |
208 | 'horizontal' => Alignment::HORIZONTAL_CENTER, | 208 | 'horizontal' => Alignment::HORIZONTAL_CENTER, |
209 | 'vertical' => Alignment::VERTICAL_CENTER, | 209 | 'vertical' => Alignment::VERTICAL_CENTER, |
210 | 'wrapText' => true, | 210 | 'wrapText' => true, |
211 | ] | 211 | ] |
212 | ]); | 212 | ]); |
213 | 213 | ||
214 | $activeWorksheet->setCellValue('A2', "Псевдоним/имя: ".$user->name); | 214 | $activeWorksheet->setCellValue('A2', "Псевдоним/имя: ".$user->name); |
215 | $activeWorksheet->setCellValue('A3', "Фамилия: ".$user->surname); | 215 | $activeWorksheet->setCellValue('A3', "Фамилия: ".$user->surname); |
216 | $activeWorksheet->setCellValue('A4', "Имя: ".$user->name_man); | 216 | $activeWorksheet->setCellValue('A4', "Имя: ".$user->name_man); |
217 | $activeWorksheet->setCellValue('A5', "Отчество: ".$user->surname2); | 217 | $activeWorksheet->setCellValue('A5', "Отчество: ".$user->surname2); |
218 | $activeWorksheet->setCellValue('A6', "Телефон: ".$user->telephone); | 218 | $activeWorksheet->setCellValue('A6', "Телефон: ".$user->telephone); |
219 | $activeWorksheet->setCellValue('A7', "Емайл: ".$user->email); | 219 | $activeWorksheet->setCellValue('A7', "Емайл: ".$user->email); |
220 | 220 | ||
221 | if (isset($user->workers[0]->id)) { | 221 | if (isset($user->workers[0]->id)) { |
222 | $activeWorksheet->setCellValue('A9', "Анкета: "); | 222 | $activeWorksheet->setCellValue('A9', "Анкета: "); |
223 | $activeWorksheet->setCellValue('A10', "Телефон: " . $user->workers[0]->telephone); | 223 | $activeWorksheet->setCellValue('A10', "Телефон: " . $user->workers[0]->telephone); |
224 | $activeWorksheet->setCellValue('A11', "Емайл: " . $user->workers[0]->email); | 224 | $activeWorksheet->setCellValue('A11', "Емайл: " . $user->workers[0]->email); |
225 | } | 225 | } |
226 | 226 | ||
227 | if (isset($user->jobtitles[0]->id)) { | 227 | if (isset($user->jobtitles[0]->id)) { |
228 | $activeWorksheet->setCellValue('A12', "Должность: " . $user->jobtitles[0]->name); | 228 | $activeWorksheet->setCellValue('A12', "Должность: " . $user->jobtitles[0]->name); |
229 | } | 229 | } |
230 | $activeWorksheet->getColumnDimension("A")->setWidth(100); | 230 | $activeWorksheet->getColumnDimension("A")->setWidth(100); |
231 | $writer = new Xlsx($spreadsheet); | 231 | $writer = new Xlsx($spreadsheet); |
232 | 232 | ||
233 | header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); | 233 | header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); |
234 | header('Content-Disposition: attachment; filename="user'.$id.'.xlsx"'); | 234 | header('Content-Disposition: attachment; filename="user'.$id.'.xlsx"'); |
235 | header('Cache-Control: no-cache'); | 235 | header('Cache-Control: no-cache'); |
236 | 236 | ||
237 | $writer->save('php://output'); | 237 | $writer->save('php://output'); |
238 | $writer->save(storage_path("app/public/export/user$id.xlsx")); | 238 | $writer->save(storage_path("app/public/export/user$id.xlsx")); |
239 | 239 | ||
240 | //$spreadsheet->disconnectWorksheets(); | 240 | //$spreadsheet->disconnectWorksheets(); |
241 | return redirect()->route('admin.basedata'); | 241 | return redirect()->route('admin.basedata'); |
242 | 242 | ||
243 | } | 243 | } |
244 | } | 244 | } |
245 | 245 |
app/Http/Controllers/EmployerController.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace App\Http\Controllers; | 3 | namespace App\Http\Controllers; |
4 | 4 | ||
5 | use App\Classes\RusDate; | 5 | use App\Classes\RusDate; |
6 | use App\Classes\Tools; | 6 | use App\Classes\Tools; |
7 | use App\Http\Requests\BaseUser_min_Request; | 7 | use App\Http\Requests\BaseUser_min_Request; |
8 | use App\Http\Requests\FlotRequest; | 8 | use App\Http\Requests\FlotRequest; |
9 | use App\Http\Requests\MessagesRequiest; | 9 | use App\Http\Requests\MessagesRequiest; |
10 | use App\Http\Requests\VacancyRequestEdit; | 10 | use App\Http\Requests\VacancyRequestEdit; |
11 | use App\Mail\MailCreateEmployer; | 11 | use App\Mail\MailCreateEmployer; |
12 | use App\Mail\MailSotrudnichestvo; | 12 | use App\Mail\MailSotrudnichestvo; |
13 | use App\Mail\MassSendingMessages; | 13 | use App\Mail\MassSendingMessages; |
14 | use App\Mail\SendAllMessages; | 14 | use App\Mail\SendAllMessages; |
15 | use App\Models\Ad_employer; | 15 | use App\Models\Ad_employer; |
16 | use App\Models\ad_response; | 16 | use App\Models\ad_response; |
17 | use App\Models\Category; | 17 | use App\Models\Category; |
18 | use App\Models\Chat; | 18 | use App\Models\Chat; |
19 | use App\Models\Employer; | 19 | use App\Models\Employer; |
20 | use App\Models\Flot; | 20 | use App\Models\Flot; |
21 | use App\Models\Job_title; | 21 | use App\Models\Job_title; |
22 | use App\Models\Like_worker; | 22 | use App\Models\Like_worker; |
23 | use App\Models\Message; | 23 | use App\Models\Message; |
24 | use App\Models\Worker; | 24 | use App\Models\Worker; |
25 | use App\Models\MessagesRequests; | 25 | use App\Models\MessagesRequests; |
26 | use Carbon\Carbon; | 26 | use Carbon\Carbon; |
27 | use Illuminate\Auth\Events\Registered; | 27 | use Illuminate\Auth\Events\Registered; |
28 | use Illuminate\Database\Eloquent\Builder; | 28 | use Illuminate\Database\Eloquent\Builder; |
29 | use Illuminate\Http\Request; | 29 | use Illuminate\Http\Request; |
30 | use Illuminate\Support\Facades\Auth; | 30 | use Illuminate\Support\Facades\Auth; |
31 | use Illuminate\Support\Facades\Hash; | 31 | use Illuminate\Support\Facades\Hash; |
32 | use Illuminate\Support\Facades\Mail; | 32 | use Illuminate\Support\Facades\Mail; |
33 | use Illuminate\Support\Facades\Storage; | 33 | use Illuminate\Support\Facades\Storage; |
34 | use App\Models\User as User_Model; | 34 | use App\Models\User as User_Model; |
35 | use Illuminate\Support\Facades\Validator; | 35 | use Illuminate\Support\Facades\Validator; |
36 | use App\Enums\DbExportColumns; | 36 | use App\Enums\DbExportColumns; |
37 | 37 | ||
38 | class EmployerController extends Controller | 38 | class EmployerController extends Controller |
39 | { | 39 | { |
40 | public function vacancie($vacancy, Request $request) { | 40 | public function vacancie($vacancy, Request $request) { |
41 | $title = 'Заголовок вакансии'; | 41 | $title = 'Заголовок вакансии'; |
42 | $Query = Ad_employer::with('jobs')-> | 42 | $Query = Ad_employer::with('jobs')-> |
43 | with('cat')-> | 43 | with('cat')-> |
44 | with('employer')-> | 44 | with('employer')-> |
45 | with('jobs_code')-> | 45 | with('jobs_code')-> |
46 | select('ad_employers.*')-> | 46 | select('ad_employers.*')-> |
47 | where('id', '=', $vacancy)->get(); | 47 | where('id', '=', $vacancy)->get(); |
48 | 48 | ||
49 | if (isset(Auth()->user()->id)) | 49 | if (isset(Auth()->user()->id)) |
50 | $uid = Auth()->user()->id; | 50 | $uid = Auth()->user()->id; |
51 | else | 51 | else |
52 | $uid = 0; | 52 | $uid = 0; |
53 | $title = $Query[0]->name; | 53 | $title = $Query[0]->name; |
54 | if ($request->ajax()) { | 54 | if ($request->ajax()) { |
55 | return view('ajax.vacance-item', compact('Query','uid')); | 55 | return view('ajax.vacance-item', compact('Query','uid')); |
56 | } else { | 56 | } else { |
57 | return view('vacance-item', compact('title', 'Query', 'uid')); | 57 | return view('vacance-item', compact('title', 'Query', 'uid')); |
58 | } | 58 | } |
59 | } | 59 | } |
60 | 60 | ||
61 | public function logout() { | 61 | public function logout() { |
62 | Auth::logout(); | 62 | Auth::logout(); |
63 | return redirect()->route('index') | 63 | return redirect()->route('index') |
64 | ->with('success', 'Вы вышли из личного кабинета'); | 64 | ->with('success', 'Вы вышли из личного кабинета'); |
65 | } | 65 | } |
66 | 66 | ||
67 | public function employer_info() { | 67 | public function employer_info() { |
68 | // код юзера | 68 | // код юзера |
69 | $user_info = Auth()->user(); | 69 | $user_info = Auth()->user(); |
70 | // вьюшка для вывода данных | 70 | // вьюшка для вывода данных |
71 | return view('employers.info', compact('user_info')); | 71 | return view('employers.info', compact('user_info')); |
72 | } | 72 | } |
73 | 73 | ||
74 | public function employer_info_save(User_Model $user, BaseUser_min_Request $request) { | 74 | public function employer_info_save(User_Model $user, BaseUser_min_Request $request) { |
75 | // Все данные через реквест | 75 | // Все данные через реквест |
76 | $all = $request->all(); | 76 | $all = $request->all(); |
77 | unset($all['_token']); | 77 | unset($all['_token']); |
78 | // обновление | 78 | // обновление |
79 | $user->update($all); | 79 | $user->update($all); |
80 | return redirect()->route('employer.employer_info'); | 80 | return redirect()->route('employer.employer_info'); |
81 | } | 81 | } |
82 | 82 | ||
83 | public function cabinet() { | 83 | public function cabinet() { |
84 | $id = Auth()->user()->id; | 84 | $id = Auth()->user()->id; |
85 | $Employer = Employer::query()->with('users')->with('ads')->with('flots')-> | 85 | $Employer = Employer::query()->with('users')->with('ads')->with('flots')-> |
86 | WhereHas('users', | 86 | WhereHas('users', |
87 | function (Builder $query) use ($id) {$query->Where('id', $id); | 87 | function (Builder $query) use ($id) {$query->Where('id', $id); |
88 | })->get(); | 88 | })->get(); |
89 | return view('employers.cabinet45', compact('Employer')); | 89 | return view('employers.cabinet45', compact('Employer')); |
90 | } | 90 | } |
91 | 91 | ||
92 | public function slider_flot() { | 92 | public function slider_flot() { |
93 | $id = Auth()->user()->id; | 93 | $id = Auth()->user()->id; |
94 | $Employer = Employer::query()->with('users')->with('ads')->with('flots')-> | 94 | $Employer = Employer::query()->with('users')->with('ads')->with('flots')-> |
95 | WhereHas('users', | 95 | WhereHas('users', |
96 | function (Builder $query) use ($id) {$query->Where('id', $id); | 96 | function (Builder $query) use ($id) {$query->Where('id', $id); |
97 | })->get(); | 97 | })->get(); |
98 | return view('employers.fly-flot', compact('Employer')); | 98 | return view('employers.fly-flot', compact('Employer')); |
99 | } | 99 | } |
100 | 100 | ||
101 | public function cabinet_save(Employer $Employer, Request $request) { | 101 | public function cabinet_save(Employer $Employer, Request $request) { |
102 | $params = $request->all(); | 102 | $params = $request->all(); |
103 | $params['user_id'] = Auth()->user()->id; | 103 | $params['user_id'] = Auth()->user()->id; |
104 | $id = $Employer->id; | 104 | $id = $Employer->id; |
105 | 105 | ||
106 | if ($request->has('logo')) { | 106 | if ($request->has('logo')) { |
107 | if (!empty($Employer->logo)) { | 107 | if (!empty($Employer->logo)) { |
108 | Storage::delete($Employer->logo); | 108 | Storage::delete($Employer->logo); |
109 | } | 109 | } |
110 | $params['logo'] = $request->file('logo')->store("employer/$id", 'public'); | 110 | $params['logo'] = $request->file('logo')->store("employer/$id", 'public'); |
111 | } | 111 | } |
112 | 112 | ||
113 | $Employer->update($params); | 113 | $Employer->update($params); |
114 | 114 | ||
115 | return redirect()->route('employer.cabinet')->with('success', 'Данные были успешно сохранены'); | 115 | return redirect()->route('employer.cabinet')->with('success', 'Данные были успешно сохранены'); |
116 | } | 116 | } |
117 | 117 | ||
118 | public function save_add_flot(FlotRequest $request) { | 118 | public function save_add_flot(FlotRequest $request) { |
119 | // отмена | 119 | // отмена |
120 | $params = $request->all(); | 120 | $params = $request->all(); |
121 | 121 | ||
122 | if ($request->has('image')) { | 122 | if ($request->has('image')) { |
123 | $params['image'] = $request->file('image')->store("flot", 'public'); | 123 | $params['image'] = $request->file('image')->store("flot", 'public'); |
124 | } | 124 | } |
125 | Flot::create($params); | 125 | Flot::create($params); |
126 | $data_flots = Flot::query()->where('employer_id', $request->get('employer_if'))->get(); | 126 | $data_flots = Flot::query()->where('employer_id', $request->get('employer_if'))->get(); |
127 | return redirect()->route('employer.slider_flot')->with('success', 'Новый корабль был добавлен'); | 127 | return redirect()->route('employer.slider_flot')->with('success', 'Новый корабль был добавлен'); |
128 | } | 128 | } |
129 | 129 | ||
130 | public function edit_flot(Flot $Flot, Employer $Employer) { | 130 | public function edit_flot(Flot $Flot, Employer $Employer) { |
131 | return view('employers.edit-flot', compact('Flot', 'Employer')); | 131 | return view('employers.edit-flot', compact('Flot', 'Employer')); |
132 | } | 132 | } |
133 | 133 | ||
134 | public function update_flot(FlotRequest $request, Flot $Flot) { | 134 | public function update_flot(FlotRequest $request, Flot $Flot) { |
135 | $params = $request->all(); | 135 | $params = $request->all(); |
136 | 136 | ||
137 | if ($request->has('image')) { | 137 | if ($request->has('image')) { |
138 | if (!empty($flot->image)) { | 138 | if (!empty($flot->image)) { |
139 | Storage::delete($flot->image); | 139 | Storage::delete($flot->image); |
140 | } | 140 | } |
141 | $params['image'] = $request->file('image')->store("flot", 'public'); | 141 | $params['image'] = $request->file('image')->store("flot", 'public'); |
142 | } else { | 142 | } else { |
143 | if (!empty($flot->image)) $params['image'] = $flot->image; | 143 | if (!empty($flot->image)) $params['image'] = $flot->image; |
144 | } | 144 | } |
145 | 145 | ||
146 | $Flot->update($params); | 146 | $Flot->update($params); |
147 | return redirect()->route('employer.slider_flot')->with('success', 'Новый корабль был добавлен'); | 147 | return redirect()->route('employer.slider_flot')->with('success', 'Новый корабль был добавлен'); |
148 | } | 148 | } |
149 | 149 | ||
150 | public function delete_flot(Flot $Flot) { | 150 | public function delete_flot(Flot $Flot) { |
151 | $data_flots = Flot::query()->where('employer_id', $Flot->employer_id)->get(); | 151 | $data_flots = Flot::query()->where('employer_id', $Flot->employer_id)->get(); |
152 | 152 | ||
153 | if (isset($Flot->id)) $Flot->delete(); | 153 | if (isset($Flot->id)) $Flot->delete(); |
154 | return redirect()->route('employer.slider_flot')->with('success', 'Корабль был удален'); | 154 | return redirect()->route('employer.slider_flot')->with('success', 'Корабль был удален'); |
155 | } | 155 | } |
156 | 156 | ||
157 | // Форма добавления вакансий | 157 | // Форма добавления вакансий |
158 | public function cabinet_vacancie() { | 158 | public function cabinet_vacancie() { |
159 | $id = Auth()->user()->id; | 159 | $id = Auth()->user()->id; |
160 | 160 | ||
161 | if (Auth()->user()->is_public) { | 161 | if (Auth()->user()->is_public) { |
162 | $categories = Category::query()->active()->get(); | 162 | $categories = Category::query()->active()->get(); |
163 | $jobs = Job_title::query()->orderByDesc('sort')->OrderBy('name')-> | 163 | $jobs = Job_title::query()->orderByDesc('sort')->OrderBy('name')-> |
164 | where('is_remove', '=', '0')-> | 164 | where('is_remove', '=', '0')-> |
165 | where('is_bd', '=', '0')-> | 165 | where('is_bd', '=', '0')-> |
166 | get(); | 166 | get(); |
167 | $Employer = Employer::query()->with('users')->with('ads')->with('flots')-> | 167 | $Employer = Employer::query()->with('users')->with('ads')->with('flots')-> |
168 | WhereHas('users', | 168 | WhereHas('users', |
169 | function (Builder $query) use ($id) { | 169 | function (Builder $query) use ($id) { |
170 | $query->Where('id', $id); | 170 | $query->Where('id', $id); |
171 | })->get(); | 171 | })->get(); |
172 | return view('employers.add_vacancy', compact('Employer', 'jobs', 'categories')); | 172 | return view('employers.add_vacancy', compact('Employer', 'jobs', 'categories')); |
173 | } else { | 173 | } else { |
174 | return redirect()->route('employer.cabinet_vacancie_danger'); | 174 | return redirect()->route('employer.cabinet_vacancie_danger'); |
175 | } | 175 | } |
176 | } | 176 | } |
177 | 177 | ||
178 | // Форма предупреждения об оплате | 178 | // Форма предупреждения об оплате |
179 | public function cabinet_vacancie_danger() { | 179 | public function cabinet_vacancie_danger() { |
180 | return view('employers.add_vacancy_danger'); | 180 | return view('employers.add_vacancy_danger'); |
181 | } | 181 | } |
182 | 182 | ||
183 | // Сохранение вакансии | 183 | // Сохранение вакансии |
184 | public function cabinet_vacancy_save1(VacancyRequestEdit $request) { | 184 | public function cabinet_vacancy_save1(VacancyRequestEdit $request) { |
185 | $params_emp = $request->all(); | 185 | $params_emp = $request->all(); |
186 | 186 | ||
187 | $params_job["job_title_id"] = $params_emp['job_title_id']; | 187 | $params_job["job_title_id"] = $params_emp['job_title_id']; |
188 | //$params_job["min_salary"] = $params_emp['min_salary']; | 188 | //$params_job["min_salary"] = $params_emp['min_salary']; |
189 | //$params_job["max_salary"] = $params_emp['max_salary']; | 189 | //$params_job["max_salary"] = $params_emp['max_salary']; |
190 | //$params_job["region"] = $params_emp['region']; | 190 | //$params_job["region"] = $params_emp['region']; |
191 | //$params_job["power"] = $params_emp['power']; | 191 | //$params_job["power"] = $params_emp['power']; |
192 | //$params_job["sytki"] = $params_emp['sytki']; | 192 | //$params_job["sytki"] = $params_emp['sytki']; |
193 | //$params_job["start"] = $params_emp['start']; | 193 | //$params_job["start"] = $params_emp['start']; |
194 | //$params_job["flot"] = $params_emp['flot']; | 194 | //$params_job["flot"] = $params_emp['flot']; |
195 | //$params_job["description"] = $params_emp['description']; | 195 | //$params_job["description"] = $params_emp['description']; |
196 | 196 | ||
197 | $ad_jobs = Ad_employer::create($params_emp); | 197 | $ad_jobs = Ad_employer::create($params_emp); |
198 | //$params_job['ad_employer_id'] = $ad_jobs->id; | 198 | //$params_job['ad_employer_id'] = $ad_jobs->id; |
199 | //Ad_jobs::create($params_job); | 199 | //Ad_jobs::create($params_job); |
200 | $ad_jobs->jobs()->sync($request->get('job_title_id')); | 200 | $ad_jobs->jobs()->sync($request->get('job_title_id')); |
201 | 201 | ||
202 | return redirect()->route('employer.vacancy_list'); | 202 | return redirect()->route('employer.vacancy_list'); |
203 | } | 203 | } |
204 | 204 | ||
205 | // Список вакансий | 205 | // Список вакансий |
206 | public function vacancy_list(Request $request) { | 206 | public function vacancy_list(Request $request) { |
207 | $id = Auth()->user()->id; | 207 | $id = Auth()->user()->id; |
208 | 208 | ||
209 | //dd($request->all()); | 209 | //dd($request->all()); |
210 | $Employer = Employer::query()->where('user_id', $id)->first(); | 210 | $Employer = Employer::query()->where('user_id', $id)->first(); |
211 | $vacancy_list = Ad_employer::query()->with('jobs')-> | 211 | $vacancy_list = Ad_employer::query() |
212 | with('jobs_code')-> | 212 | ->with('jobs') |
213 | where('employer_id', $Employer->id); | 213 | ->with('jobs_code') |
214 | ->where('employer_id', $Employer->id) | ||
215 | ->where('is_remove', 0) | ||
216 | ; | ||
214 | 217 | ||
215 | if (($request->has('search')) && (!empty($request->get('search')))) { | 218 | if (($request->has('search')) && (!empty($request->get('search')))) { |
216 | $search = $request->get('search'); | 219 | $search = $request->get('search'); |
217 | $vacancy_list = $vacancy_list->where('name', 'LIKE', "%$search%"); | 220 | $vacancy_list = $vacancy_list->where('name', 'LIKE', "%$search%"); |
218 | } | 221 | } |
219 | 222 | ||
220 | if ($request->get('sort')) { | 223 | if ($request->get('sort')) { |
221 | $sort = $request->get('sort'); | 224 | $sort = $request->get('sort'); |
222 | switch ($sort) { | 225 | switch ($sort) { |
223 | case 'name_up': $vacancy_list = $vacancy_list->orderBy('name')->orderBy('id'); break; | 226 | case 'name_up': $vacancy_list = $vacancy_list->orderBy('name')->orderBy('id'); break; |
224 | case 'name_down': $vacancy_list = $vacancy_list->orderByDesc('name')->orderby('id'); break; | 227 | case 'name_down': $vacancy_list = $vacancy_list->orderByDesc('name')->orderby('id'); break; |
225 | case 'nopublic': $vacancy_list->where('active_is', '=', 0)->orderBy('id');break; | 228 | case 'nopublic': $vacancy_list->where('active_is', '=', 0)->orderBy('id');break; |
226 | case 'public':$vacancy_list->where('active_is', '=', 1)->orderBy('id');break; | 229 | case 'public':$vacancy_list->where('active_is', '=', 1)->orderBy('id');break; |
227 | case 'created_at_up': $vacancy_list = $vacancy_list->OrderBy('created_at')->orderBy('id'); break; | 230 | case 'created_at_up': $vacancy_list = $vacancy_list->OrderBy('created_at')->orderBy('id'); break; |
228 | case 'created_at_down': $vacancy_list = $vacancy_list->orderByDesc('created_at')->orderBy('id'); break; | 231 | case 'created_at_down': $vacancy_list = $vacancy_list->orderByDesc('created_at')->orderBy('id'); break; |
229 | case 'default': $vacancy_list = $vacancy_list->orderbyDesc('updated_at')->orderBy('name'); break; | 232 | case 'default': $vacancy_list = $vacancy_list->orderbyDesc('updated_at')->orderBy('name'); break; |
230 | default: $vacancy_list = $vacancy_list->orderByDesc('id')->orderbyDesc('updated_at'); break; | 233 | default: $vacancy_list = $vacancy_list->orderByDesc('id')->orderbyDesc('updated_at'); break; |
231 | } | 234 | } |
232 | } else { | 235 | } else { |
233 | $vacancy_list = $vacancy_list->orderByDesc('updated_at')->orderBy('id'); | 236 | $vacancy_list = $vacancy_list->orderByDesc('updated_at')->orderBy('id'); |
234 | } | 237 | } |
235 | 238 | ||
236 | $vacancy_list = $vacancy_list->paginate(10); | 239 | $vacancy_list = $vacancy_list->paginate(10); |
237 | 240 | ||
238 | //ajax | 241 | //ajax |
239 | if ($request->ajax()) { | 242 | if ($request->ajax()) { |
240 | return view('employers.ajax.list_vacancy', compact('vacancy_list', 'Employer')); | 243 | return view('employers.ajax.list_vacancy', compact('vacancy_list', 'Employer')); |
241 | } else { | 244 | } else { |
242 | return view('employers.list_vacancy', compact('vacancy_list', 'Employer')); | 245 | return view('employers.list_vacancy', compact('vacancy_list', 'Employer')); |
243 | } | 246 | } |
244 | } | 247 | } |
245 | 248 | ||
246 | // Карточка вакансии | 249 | // Карточка вакансии |
247 | public function vacancy_edit(Ad_employer $ad_employer) { | 250 | public function vacancy_edit(Ad_employer $ad_employer) { |
248 | $id = Auth()->user()->id; | 251 | $id = Auth()->user()->id; |
249 | $Positions = Category::query()->where('is_remove', '=', '0')->get(); | 252 | $Positions = Category::query()->where('is_remove', '=', '0')->get(); |
250 | 253 | ||
251 | $jobs = Job_title::query()->orderByDesc('sort')->OrderBy('name')-> | 254 | $jobs = Job_title::query()->orderByDesc('sort')->OrderBy('name')-> |
252 | where('is_remove', '=', '0')-> | 255 | where('is_remove', '=', '0')-> |
253 | where('is_bd', '=', '0')->get(); | 256 | where('is_bd', '=', '0')->get(); |
254 | 257 | ||
255 | $Employer = Employer::query()->with('users')->with('ads')-> | 258 | $Employer = Employer::query()->with('users')->with('ads')-> |
256 | with('flots')->where('user_id', $id)->first(); | 259 | with('flots')->where('user_id', $id)->first(); |
257 | 260 | ||
258 | return view('employers.edit_vacancy', compact('ad_employer', 'Positions','Employer', 'jobs')); | 261 | return view('employers.edit_vacancy', compact('ad_employer', 'Positions','Employer', 'jobs')); |
259 | } | 262 | } |
260 | 263 | ||
261 | // Сохранение-редактирование записи | 264 | // Сохранение-редактирование записи |
262 | public function vacancy_save_me(VacancyRequestEdit $request, Ad_employer $ad_employer) { | 265 | public function vacancy_save_me(VacancyRequestEdit $request, Ad_employer $ad_employer) { |
263 | $params = $request->all(); | 266 | $params = $request->all(); |
264 | $params_job["job_title_id"] = $params['job_title_id']; | 267 | $params_job["job_title_id"] = $params['job_title_id']; |
265 | 268 | ||
266 | $ad_employer->update($params); | 269 | $ad_employer->update($params); |
267 | $ad_employer->jobs()->sync($request->get('job_title_id')); | 270 | $ad_employer->jobs()->sync($request->get('job_title_id')); |
268 | 271 | ||
269 | $id = Auth()->user()->id; | 272 | $id = Auth()->user()->id; |
270 | $Positions = Category::query()->where('is_remove', '=', '0')->get(); | 273 | $Positions = Category::query()->where('is_remove', '=', '0')->get(); |
271 | $jobs = Job_title::query()->orderByDesc('sort')->OrderBy('name') | 274 | $jobs = Job_title::query()->orderByDesc('sort')->OrderBy('name') |
272 | ->where('is_remove', '=', '0') | 275 | ->where('is_remove', '=', '0') |
273 | ->where('is_bd', '=', '0') | 276 | ->where('is_bd', '=', '0') |
274 | ->get(); | 277 | ->get(); |
275 | 278 | ||
276 | $Employer = Employer::query() | 279 | $Employer = Employer::query() |
277 | ->with('users')->with('ads')->with('flots')->where('user_id', $id)->first(); | 280 | ->with('users')->with('ads')->with('flots')->where('user_id', $id)->first(); |
278 | return view('employers.edit_vacancy', compact('ad_employer', 'Positions','Employer', 'jobs')); | 281 | return view('employers.edit_vacancy', compact('ad_employer', 'Positions','Employer', 'jobs')); |
279 | } | 282 | } |
280 | 283 | ||
281 | // Сохранение карточки вакансии | 284 | // Сохранение карточки вакансии |
282 | public function vacancy_save(Request $request, Ad_employer $ad_employer) { | 285 | public function vacancy_save(Request $request, Ad_employer $ad_employer) { |
283 | $all = $request->all(); | 286 | $all = $request->all(); |
284 | $ad_employer->update($all); | 287 | $ad_employer->update($all); |
285 | return redirect()->route('employer.cabinet_vacancie'); | 288 | return redirect()->route('employer.cabinet_vacancie'); |
286 | } | 289 | } |
287 | 290 | ||
288 | // Удаление карточки вакансии | 291 | // Удаление карточки вакансии |
289 | public function vacancy_delete(Ad_employer $ad_employer) { | 292 | public function vacancy_delete(Ad_employer $ad_employer) { |
290 | $ad_employer->delete(); | 293 | $ad_employer->delete(); |
291 | 294 | ||
292 | return redirect()->route('employer.vacancy_list') | 295 | return redirect()->route('employer.vacancy_list') |
293 | ->with('success', 'Данные были успешно сохранены'); | 296 | ->with('success', 'Данные были успешно сохранены'); |
294 | } | 297 | } |
295 | 298 | ||
296 | // Обновление даты | 299 | // Обновление даты |
297 | public function vacancy_up(Ad_employer $ad_employer) { | 300 | public function vacancy_up(Ad_employer $ad_employer) { |
298 | $up = date('m/d/Y h:i:s', time());; | 301 | $up = date('m/d/Y h:i:s', time());; |
299 | $vac_emp = Ad_employer::findOrFail($ad_employer->id); | 302 | $vac_emp = Ad_employer::findOrFail($ad_employer->id); |
300 | $vac_emp->updated_at = $up; | 303 | $vac_emp->updated_at = $up; |
301 | $vac_emp->save(); | 304 | $vac_emp->save(); |
302 | 305 | ||
303 | return redirect()->back(); //route('employer.vacancy_list'); | 306 | return redirect()->back(); //route('employer.vacancy_list'); |
304 | // начало конца | 307 | // начало конца |
305 | } | 308 | } |
306 | 309 | ||
307 | //Видимость вакансии | 310 | //Видимость вакансии |
308 | public function vacancy_eye(Ad_employer $ad_employer, $status) { | 311 | public function vacancy_eye(Ad_employer $ad_employer, $status) { |
309 | $vac_emp = Ad_employer::findOrFail($ad_employer->id); | 312 | $vac_emp = Ad_employer::findOrFail($ad_employer->id); |
310 | $vac_emp->active_is = $status; | 313 | $vac_emp->active_is = $status; |
311 | $vac_emp->save(); | 314 | $vac_emp->save(); |
312 | 315 | ||
313 | return redirect()->route('employer.vacancy_list'); | 316 | return redirect()->route('employer.vacancy_list'); |
314 | } | 317 | } |
315 | 318 | ||
316 | //Вакансия редактирования (шаблон) | 319 | //Вакансия редактирования (шаблон) |
317 | public function vacancy_update(Ad_employer $id) { | 320 | public function vacancy_update(Ad_employer $id) { |
318 | 321 | ||
319 | } | 322 | } |
320 | 323 | ||
321 | //Отклики на вакансию - лист | 324 | //Отклики на вакансию - лист |
322 | public function answers(Employer $employer, Request $request) { | 325 | public function answers(Employer $employer, Request $request) { |
323 | $user_id = Auth()->user()->id; | 326 | $user_id = Auth()->user()->id; |
324 | $answer = Ad_employer::query()->where('employer_id', $employer->id); | 327 | $answer = Ad_employer::query()->where('employer_id', $employer->id); |
325 | if ($request->has('search')) { | 328 | if ($request->has('search')) { |
326 | $search = trim($request->get('search')); | 329 | $search = trim($request->get('search')); |
327 | if (!empty($search)) $answer = $answer->where('name', 'LIKE', "%$search%"); | 330 | if (!empty($search)) $answer = $answer->where('name', 'LIKE', "%$search%"); |
328 | } | 331 | } |
329 | 332 | ||
330 | $answer = $answer->with('response')->OrderByDESC('id')->get(); | 333 | $answer = $answer->with('response')->OrderByDESC('id')->get(); |
331 | 334 | ||
332 | return view('employers.list_answer', compact('answer', 'user_id', 'employer')); | 335 | return view('employers.list_answer', compact('answer', 'user_id', 'employer')); |
333 | } | 336 | } |
334 | 337 | ||
335 | //Обновление статуса | 338 | //Обновление статуса |
336 | public function supple_status(employer $employer, ad_response $ad_response, $flag) { | 339 | public function supple_status(employer $employer, ad_response $ad_response, $flag) { |
337 | $ad_response->update(Array('flag' => $flag)); | 340 | $ad_response->update(Array('flag' => $flag)); |
338 | return redirect()->route('employer.answers', ['employer' => $employer->id]); | 341 | return redirect()->route('employer.answers', ['employer' => $employer->id]); |
339 | } | 342 | } |
340 | 343 | ||
341 | //Страницы сообщений список | 344 | //Страницы сообщений список |
342 | public function messages($type_message) { | 345 | public function messages($type_message) { |
343 | $user_id = Auth()->user()->id; | 346 | $user_id = Auth()->user()->id; |
344 | 347 | ||
345 | $chats = Chat::get_user_chats($user_id); | 348 | $chats = Chat::get_user_chats($user_id); |
346 | $user_type = 'employer'; | 349 | $user_type = 'employer'; |
347 | $admin_chat = false; | 350 | $admin_chat = false; |
348 | 351 | ||
349 | return view('employers.messages', compact('chats', 'admin_chat', 'user_id', 'user_type')); | 352 | return view('employers.messages', compact('chats', 'admin_chat', 'user_id', 'user_type')); |
350 | } | 353 | } |
351 | 354 | ||
352 | // Диалог между пользователями | 355 | // Диалог между пользователями |
353 | public function dialog(Chat $chat, Request $request) { | 356 | public function dialog(Chat $chat, Request $request) { |
354 | // Получение параметров. | 357 | // Получение параметров. |
355 | if ($request->has('ad_employer')){ | 358 | if ($request->has('ad_employer')){ |
356 | $ad_employer = $request->get('ad_employer'); | 359 | $ad_employer = $request->get('ad_employer'); |
357 | } else { | 360 | } else { |
358 | $ad_employer = 0; | 361 | $ad_employer = 0; |
359 | } | 362 | } |
360 | 363 | ||
361 | $sender = User_Model::query()->with('workers')->with('employers')->where('id', $chat->user_id)->first(); | 364 | $sender = User_Model::query()->with('workers')->with('employers')->where('id', $chat->user_id)->first(); |
362 | $companion = User_Model::query()->with('workers')->with('employers')->where('id', $chat->to_user_id)->first(); | 365 | $companion = User_Model::query()->with('workers')->with('employers')->where('id', $chat->to_user_id)->first(); |
363 | 366 | ||
364 | $Messages = Chat::get_chat_messages($chat); | 367 | $Messages = Chat::get_chat_messages($chat); |
365 | 368 | ||
366 | Message::where('user_id', '=', $chat->to_user_id)->where('to_user_id', '=', $chat->user_id)->update(['flag_new' => 0]); | 369 | Message::where('user_id', '=', $chat->to_user_id)->where('to_user_id', '=', $chat->user_id)->update(['flag_new' => 0]); |
367 | 370 | ||
368 | return view('employers.dialog', compact('companion', 'sender', 'ad_employer', 'Messages')); | 371 | return view('employers.dialog', compact('companion', 'sender', 'ad_employer', 'Messages')); |
369 | } | 372 | } |
370 | 373 | ||
371 | public function pin_chat(Request $request){ | 374 | public function pin_chat(Request $request){ |
372 | $chat_id = $request->get('id'); | 375 | $chat_id = $request->get('id'); |
373 | $is_fixed = $request->get('is_fixed'); | 376 | $is_fixed = $request->get('is_fixed'); |
374 | 377 | ||
375 | Chat::pin_chat($chat_id, $is_fixed); | 378 | Chat::pin_chat($chat_id, $is_fixed); |
376 | } | 379 | } |
377 | 380 | ||
378 | public function remove_chat(Request $request){ | 381 | public function remove_chat(Request $request){ |
379 | $chat_id = $request->get('id'); | 382 | $chat_id = $request->get('id'); |
380 | Chat::remove_chat($chat_id); | 383 | Chat::remove_chat($chat_id); |
381 | } | 384 | } |
382 | 385 | ||
383 | // Регистрация работодателя | 386 | // Регистрация работодателя |
384 | public function register_employer(Request $request) { | 387 | public function register_employer(Request $request) { |
385 | $params = $request->all(); | 388 | $params = $request->all(); |
386 | 389 | ||
387 | $rules = [ | 390 | $rules = [ |
388 | //'surname' => ['required', 'string', 'max:255'], | 391 | //'surname' => ['required', 'string', 'max:255'], |
389 | //'name_man' => ['required', 'string', 'max:255'], | 392 | //'name_man' => ['required', 'string', 'max:255'], |
390 | 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], | 393 | 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], |
391 | 'name_company' => ['required', 'string', 'max:255'], | 394 | 'name_company' => ['required', 'string', 'max:255'], |
392 | 'password' => ['required', 'string', 'min:6'], | 395 | 'password' => ['required', 'string', 'min:6'], |
393 | ]; | 396 | ]; |
394 | 397 | ||
395 | 398 | ||
396 | $messages = [ | 399 | $messages = [ |
397 | 'required' => 'Укажите обязательное поле', | 400 | 'required' => 'Укажите обязательное поле', |
398 | 'min' => [ | 401 | 'min' => [ |
399 | 'string' => 'Поле «:attribute» должно быть не меньше :min символов', | 402 | 'string' => 'Поле «:attribute» должно быть не меньше :min символов', |
400 | 'integer' => 'Поле «:attribute» должно быть :min или больше', | 403 | 'integer' => 'Поле «:attribute» должно быть :min или больше', |
401 | 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' | 404 | 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' |
402 | ], | 405 | ], |
403 | 'max' => [ | 406 | 'max' => [ |
404 | 'string' => 'Поле «:attribute» должно быть не больше :max символов', | 407 | 'string' => 'Поле «:attribute» должно быть не больше :max символов', |
405 | 'integer' => 'Поле «:attribute» должно быть :max или меньше', | 408 | 'integer' => 'Поле «:attribute» должно быть :max или меньше', |
406 | 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' | 409 | 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' |
407 | ] | 410 | ] |
408 | ]; | 411 | ]; |
409 | 412 | ||
410 | $email = $request->get('email'); | 413 | $email = $request->get('email'); |
411 | if (!preg_match("/^[a-zA-Z0-9_\-.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-.]+$/", $email)) { | 414 | if (!preg_match("/^[a-zA-Z0-9_\-.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-.]+$/", $email)) { |
412 | return json_encode(Array("ERROR" => "Error: Отсутствует емайл или некорректный емайл")); | 415 | return json_encode(Array("ERROR" => "Error: Отсутствует емайл или некорректный емайл")); |
413 | } | 416 | } |
414 | 417 | ||
415 | if ($request->get('password') !== $request->get('confirmed')){ | 418 | if ($request->get('password') !== $request->get('confirmed')){ |
416 | return json_encode(Array("ERROR" => "Error: Не совпадают пароль и подтверждение пароля")); | 419 | return json_encode(Array("ERROR" => "Error: Не совпадают пароль и подтверждение пароля")); |
417 | } | 420 | } |
418 | 421 | ||
419 | if (strlen($request->get('password')) < 6) { | 422 | if (strlen($request->get('password')) < 6) { |
420 | return json_encode(Array("ERROR" => "Error: Недостаточная длина пароля! Увеличьте себе длину пароля!")); | 423 | return json_encode(Array("ERROR" => "Error: Недостаточная длина пароля! Увеличьте себе длину пароля!")); |
421 | } | 424 | } |
422 | 425 | ||
423 | if (empty($request->get('surname'))) { | 426 | if (empty($request->get('surname'))) { |
424 | $params['surname'] = 'Неизвестно'; | 427 | $params['surname'] = 'Неизвестно'; |
425 | } | 428 | } |
426 | if (empty($request->get('name_man'))) { | 429 | if (empty($request->get('name_man'))) { |
427 | $params['name_man'] = 'Неизвестно'; | 430 | $params['name_man'] = 'Неизвестно'; |
428 | } | 431 | } |
429 | $validator = Validator::make($params, $rules, $messages); | 432 | $validator = Validator::make($params, $rules, $messages); |
430 | 433 | ||
431 | if ($validator->fails()) { | 434 | if ($validator->fails()) { |
432 | return json_encode(Array("ERROR" => "Error1: Регистрация оборвалась ошибкой! Не все обязательные поля заполнены. Либо вы уже были зарегистрированы в системе.")); | 435 | return json_encode(Array("ERROR" => "Error1: Регистрация оборвалась ошибкой! Не все обязательные поля заполнены. Либо вы уже были зарегистрированы в системе.")); |
433 | } else { | 436 | } else { |
434 | $user = $this->create($params); | 437 | $user = $this->create($params); |
435 | event(new Registered($user)); | 438 | event(new Registered($user)); |
436 | 439 | ||
437 | Mail::to(env('EMAIL_ADMIN'))->send(new MailCreateEmployer($params)); | 440 | Mail::to(env('EMAIL_ADMIN'))->send(new MailCreateEmployer($params)); |
438 | 441 | ||
439 | Auth::guard()->login($user); | 442 | Auth::guard()->login($user); |
440 | } | 443 | } |
441 | 444 | ||
442 | if ($user) { | 445 | if ($user) { |
443 | return json_encode(Array("REDIRECT" => redirect()->route('employer.cabinet')->getTargetUrl()));; | 446 | return json_encode(Array("REDIRECT" => redirect()->route('employer.cabinet')->getTargetUrl()));; |
444 | } else { | 447 | } else { |
445 | return json_encode(Array("ERROR" => "Error2: Данные были утеряны!")); | 448 | return json_encode(Array("ERROR" => "Error2: Данные были утеряны!")); |
446 | } | 449 | } |
447 | } | 450 | } |
448 | 451 | ||
449 | // Создание пользователя | 452 | // Создание пользователя |
450 | protected function create(array $data) | 453 | protected function create(array $data) |
451 | { | 454 | { |
452 | $Use = new User_Model(); | 455 | $Use = new User_Model(); |
453 | $Code_user = $Use->create([ | 456 | $Code_user = $Use->create([ |
454 | 'name' => $data['surname']." ".$data['name_man'], | 457 | 'name' => $data['surname']." ".$data['name_man'], |
455 | 'name_man' => $data['name_man'], | 458 | 'name_man' => $data['name_man'], |
456 | 'surname' => $data['surname'], | 459 | 'surname' => $data['surname'], |
457 | 'surname2' => $data['surname2'], | 460 | 'surname2' => $data['surname2'], |
458 | 'subscribe_email' => $data['email'], | 461 | 'subscribe_email' => $data['email'], |
459 | 'email' => $data['email'], | 462 | 'email' => $data['email'], |
460 | 'telephone' => $data['telephone'], | 463 | 'telephone' => $data['telephone'], |
461 | 'is_worker' => 0, | 464 | 'is_worker' => 0, |
462 | 'password' => Hash::make($data['password']), | 465 | 'password' => Hash::make($data['password']), |
463 | 'pubpassword' => base64_encode($data['password']), | 466 | 'pubpassword' => base64_encode($data['password']), |
464 | 'email_verified_at' => Carbon::now() | 467 | 'email_verified_at' => Carbon::now() |
465 | ]); | 468 | ]); |
466 | 469 | ||
467 | if ($Code_user->id > 0) { | 470 | if ($Code_user->id > 0) { |
468 | $Employer = new Employer(); | 471 | $Employer = new Employer(); |
469 | $Employer->user_id = $Code_user->id; | 472 | $Employer->user_id = $Code_user->id; |
470 | $Employer->name_company = $data['name_company']; | 473 | $Employer->name_company = $data['name_company']; |
471 | $Employer->email = $data['email']; | 474 | $Employer->email = $data['email']; |
472 | $Employer->telephone = $data['telephone']; | 475 | $Employer->telephone = $data['telephone']; |
473 | $Employer->code = Tools::generator_id(10); | 476 | $Employer->code = Tools::generator_id(10); |
474 | $Employer->save(); | 477 | $Employer->save(); |
475 | 478 | ||
476 | return $Code_user; | 479 | return $Code_user; |
477 | } | 480 | } |
478 | } | 481 | } |
479 | 482 | ||
480 | // Отправка сообщения от работодателя | 483 | // Отправка сообщения от работодателя |
481 | public function send_message(MessagesRequiest $request) { | 484 | public function send_message(MessagesRequiest $request) { |
482 | $params = $request->all(); | 485 | $params = $request->all(); |
483 | dd($params); | 486 | dd($params); |
484 | $user1 = $params['user_id']; | 487 | $user1 = $params['user_id']; |
485 | $user2 = $params['to_user_id']; | 488 | $user2 = $params['to_user_id']; |
486 | 489 | ||
487 | if ($request->has('file')) { | 490 | if ($request->has('file')) { |
488 | $params['file'] = $request->file('file')->store("messages", 'public'); | 491 | $params['file'] = $request->file('file')->store("messages", 'public'); |
489 | } | 492 | } |
490 | Message::create($params); | 493 | Message::create($params); |
491 | return redirect()->route('employer.dialog', ['user1' => $user1, 'user2' => $user2]); | 494 | return redirect()->route('employer.dialog', ['user1' => $user1, 'user2' => $user2]); |
492 | } | 495 | } |
493 | 496 | ||
494 | public function test123(Request $request) { | 497 | public function test123(Request $request) { |
495 | $params = $request->all(); | 498 | $params = $request->all(); |
496 | $user1 = $params['user_id']; | 499 | $user1 = $params['user_id']; |
497 | $user2 = $params['to_user_id']; | 500 | $user2 = $params['to_user_id']; |
498 | $id_vacancy = $params['ad_employer_id']; | 501 | $id_vacancy = $params['ad_employer_id']; |
499 | $ad_name = $params['ad_name']; | 502 | $ad_name = $params['ad_name']; |
500 | 503 | ||
501 | $rules = [ | 504 | $rules = [ |
502 | 'text' => 'required|min:1|max:150000', | 505 | 'text' => 'required|min:1|max:150000', |
503 | 'file' => 'file|mimes:doc,docx,xlsx,csv,txt,xlx,xls,pdf|max:150000' | 506 | 'file' => 'file|mimes:doc,docx,xlsx,csv,txt,xlx,xls,pdf|max:150000' |
504 | ]; | 507 | ]; |
505 | $messages = [ | 508 | $messages = [ |
506 | 'required' => 'Укажите обязательное поле', | 509 | 'required' => 'Укажите обязательное поле', |
507 | 'min' => [ | 510 | 'min' => [ |
508 | 'string' => 'Поле «:attribute» должно быть не меньше :min символов', | 511 | 'string' => 'Поле «:attribute» должно быть не меньше :min символов', |
509 | 'integer' => 'Поле «:attribute» должно быть :min или больше', | 512 | 'integer' => 'Поле «:attribute» должно быть :min или больше', |
510 | 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' | 513 | 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' |
511 | ], | 514 | ], |
512 | 'max' => [ | 515 | 'max' => [ |
513 | 'string' => 'Поле «:attribute» должно быть не больше :max символов', | 516 | 'string' => 'Поле «:attribute» должно быть не больше :max символов', |
514 | 'integer' => 'Поле «:attribute» должно быть :max или меньше', | 517 | 'integer' => 'Поле «:attribute» должно быть :max или меньше', |
515 | 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' | 518 | 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' |
516 | ] | 519 | ] |
517 | ]; | 520 | ]; |
518 | 521 | ||
519 | $validator = Validator::make($request->all(), $rules, $messages); | 522 | $validator = Validator::make($request->all(), $rules, $messages); |
520 | 523 | ||
521 | /*if ($validator->fails()) { | 524 | /*if ($validator->fails()) { |
522 | return redirect()->route('employer.dialog', ['user1' => $user1, 'user2' => $user2]) | 525 | return redirect()->route('employer.dialog', ['user1' => $user1, 'user2' => $user2]) |
523 | ->withErrors($validator); | 526 | ->withErrors($validator); |
524 | } else { | 527 | } else { |
525 | if ($request->has('file')) { | 528 | if ($request->has('file')) { |
526 | $params['file'] = $request->file('file')->store("messages", 'public'); | 529 | $params['file'] = $request->file('file')->store("messages", 'public'); |
527 | } | 530 | } |
528 | Message::create($params); | 531 | Message::create($params); |
529 | //return redirect()->route('employer.dialog', ['user1' => $user1, 'user2' => $user2]); | 532 | //return redirect()->route('employer.dialog', ['user1' => $user1, 'user2' => $user2]); |
530 | return redirect()->route('employer.dialog', | 533 | return redirect()->route('employer.dialog', |
531 | ['user1' => $user1, 'user2' => $user2, 'ad_employer' => $id_vacancy, 'ad_name' => $ad_name]); | 534 | ['user1' => $user1, 'user2' => $user2, 'ad_employer' => $id_vacancy, 'ad_name' => $ad_name]); |
532 | 535 | ||
533 | }*/ | 536 | }*/ |
534 | 537 | ||
535 | if ($validator->fails()) { | 538 | if ($validator->fails()) { |
536 | return redirect()->route('employer.dialog', ['user1' => $user1, 'user2' => $user2]) | 539 | return redirect()->route('employer.dialog', ['user1' => $user1, 'user2' => $user2]) |
537 | ->withErrors($validator); | 540 | ->withErrors($validator); |
538 | } else { | 541 | } else { |
539 | $new_message = Message::add_message($request, $user1, $user2, $request->all(), file_store_path: 'messages'); | 542 | $new_message = Message::add_message($request, $user1, $user2, $request->all(), file_store_path: 'messages'); |
540 | 543 | ||
541 | //return redirect()->route('employer.dialog', ['user1' => $user1, 'user2' => $user2]); | 544 | //return redirect()->route('employer.dialog', ['user1' => $user1, 'user2' => $user2]); |
542 | return redirect()->route('employer.dialog', ['chat' => $new_message->chat_id_from]); | 545 | return redirect()->route('employer.dialog', ['chat' => $new_message->chat_id_from]); |
543 | 546 | ||
544 | } | 547 | } |
545 | } | 548 | } |
546 | 549 | ||
547 | //Избранные люди | 550 | //Избранные люди |
548 | public function favorites(Request $request) { | 551 | public function favorites(Request $request) { |
549 | $IP_address = RusDate::ip_addr_client(); | 552 | $IP_address = RusDate::ip_addr_client(); |
550 | $Arr = Like_worker::Query()->select('code_record')->where('ip_address', '=', $IP_address)->get(); | 553 | $Arr = Like_worker::Query()->select('code_record')->where('ip_address', '=', $IP_address)->get(); |
551 | 554 | ||
552 | if ($Arr->count()) { | 555 | if ($Arr->count()) { |
553 | $A = Array(); | 556 | $A = Array(); |
554 | foreach ($Arr as $it) { | 557 | foreach ($Arr as $it) { |
555 | $A[] = $it->code_record; | 558 | $A[] = $it->code_record; |
556 | } | 559 | } |
557 | 560 | ||
558 | $Workers = Worker::query()->whereIn('id', $A); | 561 | $Workers = Worker::query()->whereIn('id', $A); |
559 | } else { | 562 | } else { |
560 | $Workers = Worker::query()->where('id', '=', '0'); | 563 | $Workers = Worker::query()->where('id', '=', '0'); |
561 | } | 564 | } |
562 | 565 | ||
563 | if (($request->has('search')) && (!empty($request->get('search')))) { | 566 | if (($request->has('search')) && (!empty($request->get('search')))) { |
564 | $search = $request->get('search'); | 567 | $search = $request->get('search'); |
565 | 568 | ||
566 | $Workers = $Workers->WhereHas('users', | 569 | $Workers = $Workers->WhereHas('users', |
567 | function (Builder $query) use ($search) { | 570 | function (Builder $query) use ($search) { |
568 | $query->Where('surname', 'LIKE', "%$search%") | 571 | $query->Where('surname', 'LIKE', "%$search%") |
569 | ->orWhere('name_man', 'LIKE', "%$search%") | 572 | ->orWhere('name_man', 'LIKE', "%$search%") |
570 | ->orWhere('surname2', 'LIKE', "%$search%"); | 573 | ->orWhere('surname2', 'LIKE', "%$search%"); |
571 | }); | 574 | }); |
572 | } else { | 575 | } else { |
573 | $Workers = $Workers->with('users'); | 576 | $Workers = $Workers->with('users'); |
574 | } | 577 | } |
575 | 578 | ||
576 | $Workers = $Workers->get(); | 579 | $Workers = $Workers->get(); |
577 | 580 | ||
578 | 581 | ||
579 | return view('employers.favorite', compact('Workers')); | 582 | return view('employers.favorite', compact('Workers')); |
580 | } | 583 | } |
581 | 584 | ||
582 | // База данных | 585 | // База данных |
583 | public function bd(Request $request) { | 586 | public function bd(Request $request) { |
584 | $users = User_Model::query()->with('workers')->with('jobtitles'); | 587 | $users = User_Model::query()->with('workers')->with('jobtitles'); |
585 | 588 | ||
586 | if ($request->has('search')) { | 589 | if ($request->has('search')) { |
587 | $find_key = $request->get('search'); | 590 | $find_key = $request->get('search'); |
588 | $users = $users->where('name', 'LIKE', "%$find_key%") | 591 | $users = $users->where('name', 'LIKE', "%$find_key%") |
589 | ->orWhere('surname', 'LIKE', "%$find_key%") | 592 | ->orWhere('surname', 'LIKE', "%$find_key%") |
590 | ->orWhere('name_man', 'LIKE', "%$find_key%") | 593 | ->orWhere('name_man', 'LIKE', "%$find_key%") |
591 | ->orWhere('email', 'LIKE', "%$find_key%") | 594 | ->orWhere('email', 'LIKE', "%$find_key%") |
592 | ->orWhere('telephone', 'LIKE', "%$find_key%"); | 595 | ->orWhere('telephone', 'LIKE', "%$find_key%"); |
593 | } | 596 | } |
594 | 597 | ||
595 | // Данные | 598 | // Данные |
596 | $users = $users->Baseuser()-> | 599 | $users = $users->Baseuser()-> |
597 | orderByDesc(Worker::select('created_at')->whereColumn('workers.user_id', 'users.id')); | 600 | orderByDesc(Worker::select('created_at')->whereColumn('workers.user_id', 'users.id')); |
598 | $count_users = $users; | 601 | $count_users = $users; |
599 | $users = $users->paginate(5); | 602 | $users = $users->paginate(5); |
600 | 603 | ||
601 | $export_options = DbExportColumns::toArray(); | 604 | $export_options = DbExportColumns::toArray(); |
602 | 605 | ||
603 | $jobs_titles = Job_title::select('id', 'name') | 606 | $jobs_titles = Job_title::select('id', 'name') |
604 | ->where('is_remove', '=', 0) | 607 | ->where('is_remove', '=', 0) |
605 | ->where('is_bd', '=', 2) | 608 | ->where('is_bd', '=', 2) |
606 | ->orderByDesc('sort') | 609 | ->orderByDesc('sort') |
607 | ->orderBy('name', 'asc') | 610 | ->orderBy('name', 'asc') |
608 | ->get() | 611 | ->get() |
609 | ->toArray() | 612 | ->toArray() |
610 | ; | 613 | ; |
611 | 614 | ||
612 | return view('employers.bd', compact('users', 'count_users', 'export_options', 'jobs_titles')); | 615 | return view('employers.bd', compact('users', 'count_users', 'export_options', 'jobs_titles')); |
613 | } | 616 | } |
614 | 617 | ||
615 | //Настройка уведомлений | 618 | //Настройка уведомлений |
616 | public function subscribe() { | 619 | public function subscribe() { |
617 | return view('employers.subcribe'); | 620 | return view('employers.subcribe'); |
618 | } | 621 | } |
619 | 622 | ||
620 | //Установка уведомлений сохранение | 623 | //Установка уведомлений сохранение |
621 | public function save_subscribe(Request $request) { | 624 | public function save_subscribe(Request $request) { |
622 | dd($request->all()); | 625 | dd($request->all()); |
623 | $msg = $request->validate([ | 626 | $msg = $request->validate([ |
624 | 'subscribe_email' => 'required|email|min:5|max:255', | 627 | 'subscribe_email' => 'required|email|min:5|max:255', |
625 | ]); | 628 | ]); |
626 | return redirect()->route('employer.subscribe')->with('Вы успешно подписались на рассылку'); | 629 | return redirect()->route('employer.subscribe')->with('Вы успешно подписались на рассылку'); |
627 | } | 630 | } |
628 | 631 | ||
629 | //Сбросить форму с паролем | 632 | //Сбросить форму с паролем |
630 | public function password_reset() { | 633 | public function password_reset() { |
631 | $email = Auth()->user()->email; | 634 | $email = Auth()->user()->email; |
632 | return view('employers.password-reset', compact('email')); | 635 | return view('employers.password-reset', compact('email')); |
633 | } | 636 | } |
634 | 637 | ||
635 | //Обновление пароля | 638 | //Обновление пароля |
636 | public function new_password(Request $request) { | 639 | public function new_password(Request $request) { |
637 | $use = Auth()->user(); | 640 | $use = Auth()->user(); |
638 | $request->validate([ | 641 | $request->validate([ |
639 | 'password' => 'required|string', | 642 | 'password' => 'required|string', |
640 | 'new_password' => 'required|string', | 643 | 'new_password' => 'required|string', |
641 | 'new_password2' => 'required|string' | 644 | 'new_password2' => 'required|string' |
642 | ]); | 645 | ]); |
643 | 646 | ||
644 | if ($request->get('new_password') == $request->get('new_password2')) | 647 | if ($request->get('new_password') == $request->get('new_password2')) |
645 | if ($request->get('password') !== $request->get('new_password')) { | 648 | if ($request->get('password') !== $request->get('new_password')) { |
646 | $credentials = $request->only('email', 'password'); | 649 | $credentials = $request->only('email', 'password'); |
647 | if (Auth::attempt($credentials)) { | 650 | if (Auth::attempt($credentials)) { |
648 | 651 | ||
649 | if (!is_null($use->email_verified_at)){ | 652 | if (!is_null($use->email_verified_at)){ |
650 | 653 | ||
651 | $user_data = User_Model::find($use->id); | 654 | $user_data = User_Model::find($use->id); |
652 | $user_data->update([ | 655 | $user_data->update([ |
653 | 'password' => Hash::make($request->get('new_password')), | 656 | 'password' => Hash::make($request->get('new_password')), |
654 | 'pubpassword' => base64_encode($request->get('new_password')), | 657 | 'pubpassword' => base64_encode($request->get('new_password')), |
655 | ]); | 658 | ]); |
656 | return redirect() | 659 | return redirect() |
657 | ->route('employer.password_reset') | 660 | ->route('employer.password_reset') |
658 | ->with('success', 'Поздравляю! Вы обновили свой пароль!'); | 661 | ->with('success', 'Поздравляю! Вы обновили свой пароль!'); |
659 | } | 662 | } |
660 | 663 | ||
661 | return redirect() | 664 | return redirect() |
662 | ->route('employer.password_reset') | 665 | ->route('employer.password_reset') |
663 | ->withError('Данная учетная запись не было верифицированна!'); | 666 | ->withError('Данная учетная запись не было верифицированна!'); |
664 | } | 667 | } |
665 | } | 668 | } |
666 | 669 | ||
667 | return redirect() | 670 | return redirect() |
668 | ->route('employer.password_reset') | 671 | ->route('employer.password_reset') |
669 | ->withErrors('Не совпадение данных, обновите пароли!'); | 672 | ->withErrors('Не совпадение данных, обновите пароли!'); |
670 | } | 673 | } |
671 | 674 | ||
672 | 675 | ||
673 | 676 | ||
674 | // Форма Удаление пипла | 677 | // Форма Удаление пипла |
675 | public function delete_people() { | 678 | public function delete_people() { |
676 | $login = Auth()->user()->email; | 679 | $login = Auth()->user()->email; |
677 | return view('employers.delete_people', compact('login')); | 680 | return view('employers.delete_people', compact('login')); |
678 | } | 681 | } |
679 | 682 | ||
680 | // Удаление аккаунта | 683 | // Удаление аккаунта |
681 | public function action_delete_user(Request $request) { | 684 | public function action_delete_user(Request $request) { |
682 | $Answer = $request->all(); | 685 | $Answer = $request->all(); |
683 | $user_id = Auth()->user()->id; | 686 | $user_id = Auth()->user()->id; |
684 | $request->validate([ | 687 | $request->validate([ |
685 | 'password' => 'required|string', | 688 | 'password' => 'required|string', |
686 | ]); | 689 | ]); |
687 | 690 | ||
688 | $credentials = $request->only('email', 'password'); | 691 | $credentials = $request->only('email', 'password'); |
689 | if (Auth::attempt($credentials)) { | 692 | if (Auth::attempt($credentials)) { |
690 | Auth::logout(); | 693 | Auth::logout(); |
691 | $it = User_Model::find($user_id); | 694 | $it = User_Model::find($user_id); |
692 | $it->delete(); | 695 | $it->delete(); |
693 | return redirect()->route('index')->with('success', 'Вы успешно удалили свой аккаунт'); | 696 | return redirect()->route('index')->with('success', 'Вы успешно удалили свой аккаунт'); |
694 | } else { | 697 | } else { |
695 | return redirect()->route('employer.delete_people') | 698 | return redirect()->route('employer.delete_people') |
696 | ->withErrors( 'Неверный пароль! Нужен корректный пароль'); | 699 | ->withErrors( 'Неверный пароль! Нужен корректный пароль'); |
697 | } | 700 | } |
698 | } | 701 | } |
699 | 702 | ||
700 | public function ajax_delete_user(Request $request) { | 703 | public function ajax_delete_user(Request $request) { |
701 | $Answer = $request->all(); | 704 | $Answer = $request->all(); |
702 | $user_id = Auth()->user()->id; | 705 | $user_id = Auth()->user()->id; |
703 | $request->validate([ | 706 | $request->validate([ |
704 | 'password' => 'required|string', | 707 | 'password' => 'required|string', |
705 | ]); | 708 | ]); |
706 | $credentials = $request->only('email', 'password'); | 709 | $credentials = $request->only('email', 'password'); |
707 | if (Auth::attempt($credentials)) { | 710 | if (Auth::attempt($credentials)) { |
708 | 711 | ||
709 | return json_encode(Array('SUCCESS' => 'Вы успешно удалили свой аккаунт', | 712 | return json_encode(Array('SUCCESS' => 'Вы успешно удалили свой аккаунт', |
710 | 'email' => $request->get('email'), | 713 | 'email' => $request->get('email'), |
711 | 'password' => $request->get('password'))); | 714 | 'password' => $request->get('password'))); |
712 | } else { | 715 | } else { |
713 | return json_encode(Array('ERROR' => 'Неверный пароль! Нужен корректный пароль')); | 716 | return json_encode(Array('ERROR' => 'Неверный пароль! Нужен корректный пароль')); |
714 | } | 717 | } |
715 | } | 718 | } |
716 | 719 | ||
717 | // FAQ - Вопросы/ответы для работодателей и соискателей | 720 | // FAQ - Вопросы/ответы для работодателей и соискателей |
718 | public function faq() { | 721 | public function faq() { |
719 | return view('employers.faq'); | 722 | return view('employers.faq'); |
720 | } | 723 | } |
721 | 724 | ||
722 | // Рассылка сообщений | 725 | // Рассылка сообщений |
723 | public function send_all_messages() { | 726 | public function send_all_messages() { |
724 | $id = Auth()->user()->id; | 727 | $id = Auth()->user()->id; |
725 | $sending = Employer::query()->where('user_id', '=', "$id")->first(); | 728 | $sending = Employer::query()->where('user_id', '=', "$id")->first(); |
726 | 729 | ||
727 | $job_titles = Job_title::query() | 730 | $job_titles = Job_title::query() |
728 | ->where('is_remove', '=', 0) | 731 | ->where('is_remove', '=', 0) |
729 | ->where('is_bd', '=', 1) | 732 | ->where('is_bd', '=', 1) |
730 | ->orderByDesc('sort') | 733 | ->orderByDesc('sort') |
731 | ->get() | 734 | ->get() |
732 | ; | 735 | ; |
733 | 736 | ||
734 | if ($sending->sending_is) | 737 | if ($sending->sending_is) |
735 | return view('employers.send_all', compact('job_titles')); | 738 | return view('employers.send_all', compact('job_titles')); |
736 | else | 739 | else |
737 | return view('employers.send_all_danger'); | 740 | return view('employers.send_all_danger'); |
738 | } | 741 | } |
739 | 742 | ||
740 | // Отправка сообщений для информации | 743 | // Отправка сообщений для информации |
741 | public function send_all_post(Request $request) { | 744 | public function send_all_post(Request $request) { |
742 | $data = $request->all(); | 745 | $data = $request->all(); |
743 | $data['user'] = Auth()->user(); | 746 | $data['user'] = Auth()->user(); |
744 | 747 | ||
745 | $id = MessagesRequests::create([ | 748 | $id = MessagesRequests::create([ |
746 | 'user_id' => Auth()->user()->id, | 749 | 'user_id' => Auth()->user()->id, |
747 | 'job_titles' => json_encode($data['job_title_ids']), | 750 | 'job_titles' => json_encode($data['job_title_ids']), |
748 | 'text' => $data['message_text'], | 751 | 'text' => $data['message_text'], |
749 | ]); | 752 | ]); |
750 | 753 | ||
751 | if (!empty($id)){ | 754 | if (!empty($id)){ |
752 | Mail::to(env('EMAIL_ADMIN'))->send(new MassSendingMessages($data)); | 755 | Mail::to(env('EMAIL_ADMIN'))->send(new MassSendingMessages($data)); |
753 | } | 756 | } |
754 | 757 | ||
755 | /*$emails = User_Model::query()->where('is_worker', '1')->get(); | 758 | /*$emails = User_Model::query()->where('is_worker', '1')->get(); |
756 | 759 | ||
757 | foreach ($emails as $e) { | 760 | foreach ($emails as $e) { |
758 | Mail::to($e->email)->send(new SendAllMessages($data)); | 761 | Mail::to($e->email)->send(new SendAllMessages($data)); |
759 | }*/ | 762 | }*/ |
760 | 763 | ||
761 | return redirect()->route('employer.send_all_messages')->with('success', 'Запрос на рассылку был успешно отправлен.'); | 764 | return redirect()->route('employer.send_all_messages')->with('success', 'Запрос на рассылку был успешно отправлен.'); |
762 | } | 765 | } |
763 | 766 | ||
764 | // База резюме | 767 | // База резюме |
765 | public function bd_tupe(Request $request) { | 768 | public function bd_tupe(Request $request) { |
766 | $Resume = User_Model::query()->with('workers')->where('is_bd', '=', '1')->get(); | 769 | $Resume = User_Model::query()->with('workers')->where('is_bd', '=', '1')->get(); |
767 | 770 | ||
768 | return view('employers.bd_tupe', compact('Resume')); | 771 | return view('employers.bd_tupe', compact('Resume')); |
769 | } | 772 | } |
770 | 773 | ||
771 | ////////////////////////////////////////////////////////////////// | 774 | ////////////////////////////////////////////////////////////////// |
772 | // Отправил сообщение | 775 | // Отправил сообщение |
773 | ////////////////////////////////////////////////////////////////// | 776 | ////////////////////////////////////////////////////////////////// |
774 | public function new_message(Request $request) { | 777 | public function new_message(Request $request) { |
775 | $params = $request->all(); | 778 | $params = $request->all(); |
776 | 779 | ||
777 | $id = $params['_user_id']; | 780 | $id = $params['_user_id']; |
778 | $message_params = [ | 781 | $message_params = [ |
779 | 'title' => $params['title'], | 782 | 'title' => $params['title'], |
780 | 'text' => $params['text'], | 783 | 'text' => $params['text'], |
781 | 'ad_employer_id' => $params['_vacancy'], | 784 | 'ad_employer_id' => $params['_vacancy'], |
782 | 'flag_new' => 1 | 785 | 'flag_new' => 1 |
783 | ]; | 786 | ]; |
784 | 787 | ||
785 | Message::add_message( | 788 | Message::add_message( |
786 | $request, | 789 | $request, |
787 | $params['_user_id'], | 790 | $params['_user_id'], |
788 | $params['_to_user_id'], | 791 | $params['_to_user_id'], |
789 | $message_params, | 792 | $message_params, |
790 | file_store_path: "worker/$id" | 793 | file_store_path: "worker/$id" |
791 | ); | 794 | ); |
792 | 795 | ||
793 | return redirect()->route('employer.messages', ['type_message' => 'output']); | 796 | return redirect()->route('employer.messages', ['type_message' => 'output']); |
794 | } | 797 | } |
795 | 798 | ||
796 | // Восстановление пароля | 799 | // Восстановление пароля |
797 | public function repair_password(Request $request) { | 800 | public function repair_password(Request $request) { |
798 | $params = $request->get('email'); | 801 | $params = $request->get('email'); |
799 | } | 802 | } |
800 | 803 | ||
801 | // Избранные люди на корабль | 804 | // Избранные люди на корабль |
802 | public function selected_people(Request $request) { | 805 | public function selected_people(Request $request) { |
803 | $id = $request->get('id'); | 806 | $id = $request->get('id'); |
804 | $favorite_people = Job_title::query()->orderByDesc('sort')->OrderBy('name')-> | 807 | $favorite_people = Job_title::query()->orderByDesc('sort')->OrderBy('name')-> |
805 | where('is_remove', '=', '0')-> | 808 | where('is_remove', '=', '0')-> |
806 | where('is_bd', '=', '0')-> | 809 | where('is_bd', '=', '0')-> |
807 | where('position_id', $id)-> | 810 | where('position_id', $id)-> |
808 | get(); | 811 | get(); |
809 | return view('favorite_people', compact('favorite_people')); | 812 | return view('favorite_people', compact('favorite_people')); |
810 | } | 813 | } |
811 | } | 814 | } |
812 | 815 |
app/Models/Worker.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace App\Models; | 3 | namespace App\Models; |
4 | 4 | ||
5 | use Illuminate\Database\Eloquent\Factories\HasFactory; | 5 | use Illuminate\Database\Eloquent\Factories\HasFactory; |
6 | use Illuminate\Database\Eloquent\Model; | 6 | use Illuminate\Database\Eloquent\Model; |
7 | 7 | ||
8 | class Worker extends Model | 8 | class Worker extends Model |
9 | { | 9 | { |
10 | use HasFactory; | 10 | use HasFactory; |
11 | 11 | ||
12 | protected $table = 'workers'; | 12 | protected $table = 'workers'; |
13 | 13 | ||
14 | protected $fillable = [ | 14 | protected $fillable = [ |
15 | 'user_id', | 15 | 'user_id', |
16 | 'status_work', | 16 | 'status_work', |
17 | 'position_work', | 17 | 'position_work', |
18 | 'positions_work', | ||
18 | 'telephone', | 19 | 'telephone', |
19 | 'telephone2', | 20 | 'telephone2', |
20 | 'persent_anketa', | 21 | 'persent_anketa', |
21 | 'photo', | 22 | 'photo', |
22 | 'email_data', | 23 | 'email_data', |
23 | 'status_profile', | 24 | 'status_profile', |
24 | 'old_year', | 25 | 'old_year', |
25 | 'experience', | 26 | 'experience', |
26 | 'en_is', | 27 | 'en_is', |
27 | 'education', | 28 | 'education', |
28 | 'email', | 29 | 'email', |
29 | 'interpassport', | 30 | 'interpassport', |
30 | 'mk', | 31 | 'mk', |
31 | 'vvp', | 32 | 'vvp', |
32 | 'vlm', | 33 | 'vlm', |
33 | 'reka_diplom', | 34 | 'reka_diplom', |
34 | 'more_diplom', | 35 | 'more_diplom', |
35 | 'mpss', | 36 | 'mpss', |
36 | 'tanker', | 37 | 'tanker', |
37 | 'gmssb', | 38 | 'gmssb', |
38 | 'resume', | 39 | 'resume', |
39 | 'sort', | 40 | 'sort', |
40 | 'updated_at', | 41 | 'updated_at', |
41 | 'text', | 42 | 'text', |
42 | 'address', | 43 | 'address', |
43 | 'city', | 44 | 'city', |
44 | 'coord', | 45 | 'coord', |
45 | 'file', | 46 | 'file', |
46 | 'is_remove', | 47 | 'is_remove', |
47 | 'favorite_user', | 48 | 'favorite_user', |
48 | 'sroch_user', | 49 | 'sroch_user', |
49 | 'salary_expectations', | 50 | 'salary_expectations', |
50 | 'english_level', | 51 | 'english_level', |
51 | 'ready_boart_date', | 52 | 'ready_boart_date', |
52 | 'boart_type_preference', | 53 | 'boart_type_preference', |
53 | 'visa_available', | 54 | 'visa_available', |
54 | 'tanker_documents_available', | 55 | 'tanker_documents_available', |
55 | 'confirmation_work_for_vvp', | 56 | 'confirmation_work_for_vvp', |
56 | 'military_id_available' | 57 | 'military_id_available' |
57 | ]; | 58 | ]; |
58 | 59 | ||
60 | /** | ||
61 | * Получить значение поля positions_work как массив. | ||
62 | * | ||
63 | * @param string $value | ||
64 | * @return array | ||
65 | */ | ||
66 | public function getPositionsWorkAttribute($value) | ||
67 | { | ||
68 | return json_decode($value, true); | ||
69 | } | ||
70 | |||
71 | /** | ||
72 | * Установить значение поля positions_work как JSON. | ||
73 | * | ||
74 | * @param array|string $value | ||
75 | * @return void | ||
76 | */ | ||
77 | public function setPositionsWorkAttribute($value) | ||
78 | { | ||
79 | $this->attributes['positions_work'] = is_array($value) ? json_encode($value) : $value; | ||
80 | } | ||
81 | |||
59 | /* | 82 | /* |
60 | * Связь таблицы users с таблицей workers | 83 | * Связь таблицы users с таблицей workers |
61 | */ | 84 | */ |
62 | public function users() { | 85 | public function users() { |
63 | return $this->belongsTo(User::class, 'user_id'); | 86 | return $this->belongsTo(User::class, 'user_id'); |
64 | } | 87 | } |
65 | 88 | ||
66 | // Связь Работника с сертификами (0-0 - 1) | 89 | // Связь Работника с сертификами (0-0 - 1) |
67 | public function sertificate() { | 90 | public function sertificate() { |
68 | return $this->hasMany(sertification::class); | 91 | return $this->hasMany(sertification::class); |
69 | } | 92 | } |
70 | 93 | ||
71 | // Связь Работника с должностями (0-0 - 1) | 94 | // Связь Работника с должностями (0-0 - 1) |
72 | public function job_titles() { | 95 | public function job_titles() { |
73 | return $this->belongsToMany(Job_title::class, 'title_workers'); | 96 | return $this->belongsToMany(Job_title::class, 'title_workers'); |
74 | } | 97 | } |
75 | 98 | ||
76 | //Связь Работника с опытом работы (1 - 0-0) | 99 | //Связь Работника с опытом работы (1 - 0-0) |
77 | public function place_worker() { | 100 | public function place_worker() { |
78 | return $this->hasMany(place_works::class); | 101 | return $this->hasMany(place_works::class); |
79 | } | 102 | } |
80 | 103 | ||
81 | public function scopeActive($query) { | 104 | public function scopeActive($query) { |
82 | return $query->where('is_remove', '=', '0'); | 105 | return $query->where('is_remove', '=', '0'); |
83 | } | 106 | } |
84 | 107 | ||
85 | //Связь Работника с предыдущими компаниями | 108 | //Связь Работника с предыдущими компаниями |
86 | public function prev_company() { | 109 | public function prev_company() { |
87 | return $this->hasMany(PrevCompany::class); | 110 | return $this->hasMany(PrevCompany::class); |
88 | } | 111 | } |
89 | 112 | ||
90 | //Связь Работника с инфоблоками (0-0 - 0-0) | 113 | //Связь Работника с инфоблоками (0-0 - 0-0) |
91 | public function infobloks() { | 114 | public function infobloks() { |
92 | return $this->belongsToMany(infobloks::class,'dop_info', 'worker_id', 'infoblok_id'); | 115 | return $this->belongsToMany(infobloks::class,'dop_info', 'worker_id', 'infoblok_id'); |
93 | } | 116 | } |
94 | 117 | ||
95 | //Связи Работника с дополнительными | 118 | //Связи Работника с дополнительными |
96 | public function dop_info() { | 119 | public function dop_info() { |
97 | return $this->hasMany(Dop_info::class, 'worker_id'); | 120 | return $this->hasMany(Dop_info::class, 'worker_id'); |
98 | } | 121 | } |
99 | 122 | ||
100 | public function response() { | 123 | public function response() { |
101 | return $this->hasMany(ResponseWork::class); | 124 | return $this->hasMany(ResponseWork::class); |
102 | } | 125 | } |
103 | 126 | ||
127 | public function getJobsAttribute() | ||
128 | { | ||
129 | $job_titles_ids = json_decode($this->attributes['positions_work'], true); | ||
130 | return Job_title::whereIn('id', $job_titles_ids)->get(); | ||
131 | } | ||
132 | |||
104 | } | 133 | } |
105 | 134 |
database/migrations/2024_08_10_123217_alter_table_workers.php
File was created | 1 | <?php | |
2 | |||
3 | use Illuminate\Database\Migrations\Migration; | ||
4 | use Illuminate\Database\Schema\Blueprint; | ||
5 | use Illuminate\Support\Facades\Schema; | ||
6 | |||
7 | return new class extends Migration | ||
8 | { | ||
9 | /** | ||
10 | * Run the migrations. | ||
11 | * | ||
12 | * @return void | ||
13 | */ | ||
14 | public function up() | ||
15 | { | ||
16 | Schema::table('workers', function (Blueprint $table) { | ||
17 | $table->string('positions_work', 255)->nullable(true)->after('position_work'); | ||
18 | $table->integer('position_work')->nullable(true)->change(); | ||
19 | |||
20 | }); | ||
21 | } | ||
22 | |||
23 | /** | ||
24 | * Reverse the migrations. | ||
25 | * | ||
26 | * @return void | ||
27 | */ | ||
28 | public function down() | ||
29 | { | ||
30 | Schema::table('workers', function (Blueprint $table) { | ||
31 | $table->dropColumn('positions_work'); | ||
32 | }); | ||
33 | } | ||
34 | }; | ||
35 |
public/js/chosen/chosen-sprite.png
538 Bytes
public/js/chosen/chosen-sprite@2x.png
738 Bytes
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 | @error('name') |
3 | <span class="text-gray-700 dark:text-gray-400">Имя/Псевдоним</span> | 3 | {{ $message }} |
4 | <input name="name" id="name" | 4 | @enderror |
5 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | ||
6 | placeholder="Имя/Псевдоним" value="{{ old('name') ?? $user->name ?? '' }}" | ||
7 | /> | ||
8 | @error('name') | ||
9 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
10 | {{ $message }} | ||
11 | </span> | ||
12 | @enderror | ||
13 | </label><br>--> | ||
14 | 5 | ||
15 | <input name="name" id="name" type="hidden" | 6 | <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" | 7 | 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 ?? 'Пользователь базы данных' }}" | 8 | placeholder="Имя/Псевдоним" value="{{ old('name') ?? $user->name ?? 'Пользователь базы данных' }}" |
18 | /> | 9 | /> |
19 | 10 | ||
20 | <label class="block text-sm"> | 11 | <label class="block text-sm"> |
21 | <span class="text-gray-700 dark:text-gray-400">Должность</span> | 12 | <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" | 13 | <select name="positions_work[]" id="positions_work[]" data-placeholder="Выберите должность..." multiple="multiple"> |
23 | "> | ||
24 | @isset($list_job_titles) | 14 | @isset($list_job_titles) |
25 | @foreach($list_job_titles as $job_title) | 15 | @foreach($list_job_titles as $job_title) |
26 | <option value="{{ $job_title->id }}" | 16 | <option value="{{ $job_title->id }}" |
27 | @if (isset($user->workers[0]->position_work)) | 17 | @if (in_array($job_title->id , $user->workers[0]->positions_work)) |
28 | @if($job_title->id == $user->workers[0]->position_work) | 18 | selected |
29 | selected | 19 | @endif |
30 | @endif | 20 | > |
31 | @endif | 21 | {{ $job_title->name }} ({{ $job_title->id }}) |
32 | >{{ $job_title->name }} ({{ $job_title->id }})</option> | 22 | </option> |
33 | @endforeach | 23 | @endforeach |
34 | @endisset | 24 | @endisset |
35 | </select> | 25 | </select> |
36 | @error('name') | 26 | @error('name') |
37 | <span class="text-xs text-red-600 dark:text-red-400"> | 27 | <span class="text-xs text-red-600 dark:text-red-400"> |
38 | {{ $message }} | 28 | {{ $message }} |
39 | </span> | 29 | </span> |
40 | @enderror | 30 | @enderror |
41 | </label><br> | 31 | </label><br> |
42 | 32 | ||
43 | <label class="block text-sm"> | 33 | <label class="block text-sm"> |
44 | <span class="text-gray-700 dark:text-gray-400">Фамилия</span> | 34 | <span class="text-gray-700 dark:text-gray-400">Фамилия</span> |
45 | <input name="surname" id="surname" | 35 | <input name="surname" id="surname" |
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" | 36 | 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" |
47 | placeholder="Фамилия" value="{{ old('surname') ?? $user->surname ?? '' }}" | 37 | placeholder="Фамилия" value="{{ old('surname') ?? $user->surname ?? '' }}" |
48 | /> | 38 | /> |
49 | @error('surname') | 39 | @error('surname') |
50 | <span class="text-xs text-red-600 dark:text-red-400"> | 40 | <span class="text-xs text-red-600 dark:text-red-400"> |
51 | {{ $message }} | 41 | {{ $message }} |
52 | </span> | 42 | </span> |
53 | @enderror | 43 | @enderror |
54 | </label><br> | 44 | </label><br> |
55 | 45 | ||
56 | <label class="block text-sm"> | 46 | <label class="block text-sm"> |
57 | <span class="text-gray-700 dark:text-gray-400">Имя</span> | 47 | <span class="text-gray-700 dark:text-gray-400">Имя</span> |
58 | <input name="name_man" id="name_man" | 48 | <input name="name_man" id="name_man" |
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" | 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" |
60 | placeholder="Имя" value="{{ old('name_man') ?? $user->name_man ?? '' }}" | 50 | placeholder="Имя" value="{{ old('name_man') ?? $user->name_man ?? '' }}" |
61 | /> | 51 | /> |
62 | @error('name_man') | 52 | @error('name_man') |
63 | <span class="text-xs text-red-600 dark:text-red-400"> | 53 | <span class="text-xs text-red-600 dark:text-red-400"> |
64 | {{ $message }} | 54 | {{ $message }} |
65 | </span> | 55 | </span> |
66 | @enderror | 56 | @enderror |
67 | </label><br> | 57 | </label><br> |
68 | 58 | ||
69 | <input type="hidden" name="is_worker" id="is_worker" value="1"/> | 59 | <input type="hidden" name="is_worker" id="is_worker" value="1"/> |
70 | <input type="hidden" name="is_bd" id="is_bd" value="1"/> | 60 | <input type="hidden" name="is_bd" id="is_bd" value="1"/> |
71 | <input type="hidden" name="admin" id="admin" value="0"/> | 61 | <input type="hidden" name="admin" id="admin" value="0"/> |
72 | <input type="hidden" name="password" id="password" value="1234567890"/> | 62 | <input type="hidden" name="password" id="password" value="1234567890"/> |
73 | 63 | ||
74 | <label class="block text-sm"> | 64 | <label class="block text-sm"> |
75 | <span class="text-gray-700 dark:text-gray-400">Отчество</span> | 65 | <span class="text-gray-700 dark:text-gray-400">Отчество</span> |
76 | <input name="surname2" id="surname2" | 66 | <input name="surname2" id="surname2" |
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" | 67 | 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" |
78 | placeholder="Отчество" value="{{ old('surname2') ?? $user->surname2 ?? '' }}" | 68 | placeholder="Отчество" value="{{ old('surname2') ?? $user->surname2 ?? '' }}" |
79 | /> | 69 | /> |
80 | @error('surname2') | 70 | @error('surname2') |
81 | <span class="text-xs text-red-600 dark:text-red-400"> | 71 | <span class="text-xs text-red-600 dark:text-red-400"> |
82 | {{ $message }} | 72 | {{ $message }} |
83 | </span> | 73 | </span> |
84 | @enderror | 74 | @enderror |
85 | </label><br> | 75 | </label><br> |
86 | 76 | ||
87 | <label class="block text-sm"> | 77 | <label class="block text-sm"> |
88 | <span class="text-gray-700 dark:text-gray-400">Email</span> | 78 | <span class="text-gray-700 dark:text-gray-400">Email</span> |
89 | <input name="email" id="email" | 79 | <input name="email" id="email" |
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" | 80 | 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" |
91 | placeholder="Email" value="{{ old('email') ?? $user->email ?? '' }}" | 81 | placeholder="Email" value="{{ old('email') ?? $user->email ?? '' }}" |
92 | /> | 82 | /> |
93 | @error('email') | 83 | @error('email') |
94 | <span class="text-xs text-red-600 dark:text-red-400"> | 84 | <span class="text-xs text-red-600 dark:text-red-400"> |
95 | {{ $message }} | 85 | {{ $message }} |
96 | </span> | 86 | </span> |
97 | @enderror | 87 | @enderror |
98 | </label><br> | 88 | </label><br> |
99 | 89 | ||
100 | <label class="block text-sm"> | 90 | <label class="block text-sm"> |
101 | <span class="text-gray-700 dark:text-gray-400">Телефон</span> | 91 | <span class="text-gray-700 dark:text-gray-400">Телефон</span> |
102 | <input name="telephone" id="telephone" | 92 | <input name="telephone" id="telephone" |
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" | 93 | 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" |
104 | placeholder="Телефон" value="{{ old('telephone') ?? $user->telephone ?? '' }}" | 94 | placeholder="Телефон" value="{{ old('telephone') ?? $user->telephone ?? '' }}" |
105 | /> | 95 | /> |
106 | @error('telephone') | 96 | @error('telephone') |
107 | <span class="text-xs text-red-600 dark:text-red-400"> | 97 | <span class="text-xs text-red-600 dark:text-red-400"> |
108 | {{ $message }} | 98 | {{ $message }} |
109 | </span> | 99 | </span> |
110 | @enderror | 100 | @enderror |
111 | </label><br> | 101 | </label><br> |
112 | 102 | ||
113 | <label class="block text-sm"> | 103 | <label class="block text-sm"> |
114 | <span class="text-gray-700 dark:text-gray-400">Файл-анкета</span> | 104 | <span class="text-gray-700 dark:text-gray-400">Файл-анкета</span> |
115 | <input type="file" class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 | 105 | <input type="file" class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 |
116 | focus:border-purple-400 focus:outline-none focus:shadow-outline-purple | 106 | focus:border-purple-400 focus:outline-none focus:shadow-outline-purple |
117 | dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 107 | dark:text-gray-300 dark:focus:shadow-outline-gray form-input" |
118 | id="file" name="file"> | 108 | id="file" name="file"> |
119 | @error('file') | 109 | @error('file') |
120 | <span class="text-xs text-red-600 dark:text-red-400"> | 110 | <span class="text-xs text-red-600 dark:text-red-400"> |
121 | {{ $message }} | 111 | {{ $message }} |
122 | </span> | 112 | </span> |
123 | @enderror | 113 | @enderror |
124 | @isset($user->file) | 114 | @isset($user->file) |
125 | <a class="text-gray-700 dark:text-gray-400" target="blank" href="{{ asset(Storage::url($user->file)) }}">{{ $user->file }}</a> | 115 | <a class="text-gray-700 dark:text-gray-400" target="blank" href="{{ asset(Storage::url($user->file)) }}">{{ $user->file }}</a> |
126 | @endisset | 116 | @endisset |
127 | </label><br> | 117 | </label><br> |
128 | 118 | ||
129 | <!--<label class="block text-sm"> | 119 | <!--<label class="block text-sm"> |
130 | 120 | ||
131 | <input type="hidden" name="page_worker" value="0" /> | 121 | <input type="hidden" name="page_worker" value="0" /> |
132 | <input name="page_worker" @php if (isset($user->workers->id)) echo "checked"; @endphp | 122 | <input name="page_worker" @php if (isset($user->workers->id)) echo "checked"; @endphp |
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 " | 123 | 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 " |
134 | placeholder="" style="float:left; margin-right: 5px" type="checkbox" value="1" | 124 | placeholder="" style="float:left; margin-right: 5px" type="checkbox" value="1" |
135 | /><p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Анкета </p><br> | 125 | /><p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Анкета </p><br> |
136 | 126 | ||
137 | </label><br>--> | 127 | </label><br>--> |
138 | 128 | ||
139 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | 129 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> |
140 | <div> | 130 | <div> |
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"> | 131 | <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"> |
142 | Сохранить | 132 | Сохранить |
143 | </button> | 133 | </button> |
144 | <a href="{{ route('admin.basedata') }}" | 134 | <a href="{{ route('admin.basedata') }}" |
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" | 135 | 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" |
146 | style="display: -webkit-inline-box; height: 30px!important;" | 136 | style="display: -webkit-inline-box; height: 30px!important;" |
147 | >Назад</a> | 137 | >Назад</a> |
148 | </div> | 138 | </div> |
149 | </div> | 139 | </div> |
150 | </div> | 140 | </div> |
141 |
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 | 43 | ||
44 | <script> | 44 | <script> |
45 | const btns = document.querySelectorAll('.btn_del'); | 45 | const btns = document.querySelectorAll('.btn_del'); |
46 | btns.forEach(btn => { | 46 | btns.forEach(btn => { |
47 | btn.addEventListener('click', (e) => { | 47 | btn.addEventListener('click', (e) => { |
48 | console.log('click button'); | 48 | console.log('click button'); |
49 | let id = e.target.id; | 49 | let id = e.target.id; |
50 | let form = document.getElementById("form_modal_del"); | 50 | let form = document.getElementById("form_modal_del"); |
51 | form.action = "<?=$_SERVER['APP_URL']?>admin/basedata/delete/"+e.target.getAttribute('data-user'); | 51 | form.action = "<?=$_SERVER['APP_URL']?>admin/basedata/delete/"+e.target.getAttribute('data-user'); |
52 | //document.getElementById("title_modal").innerHTML = id; | 52 | //document.getElementById("title_modal").innerHTML = id; |
53 | console.log(e.target.getAttribute('data-employer')); | 53 | console.log(e.target.getAttribute('data-employer')); |
54 | console.log(e.target.getAttribute('data-user')); | 54 | console.log(e.target.getAttribute('data-user')); |
55 | 55 | ||
56 | }); | 56 | }); |
57 | }); | 57 | }); |
58 | </script> | 58 | </script> |
59 | @endsection | 59 | @endsection |
60 | 60 | ||
61 | @section('modal') | 61 | @section('modal') |
62 | @include('admin.users.modal') | 62 | @include('admin.users.modal') |
63 | @endsection | 63 | @endsection |
64 | 64 | ||
65 | @section('search') | 65 | @section('search') |
66 | @include('admin.find') | 66 | @include('admin.find') |
67 | @endsection | 67 | @endsection |
68 | 68 | ||
69 | @section('content') | 69 | @section('content') |
70 | <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block"> | 70 | <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block"> |
71 | <div class="w-full overflow-x-auto"> | 71 | <div class="w-full overflow-x-auto"> |
72 | <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> | 72 | <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> |
73 | <table class="w-full whitespace-no-wrap"> | 73 | <table class="w-full whitespace-no-wrap"> |
74 | <thead> | 74 | <thead> |
75 | <tr | 75 | <tr |
76 | 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" | 76 | 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" |
77 | > | 77 | > |
78 | <th class="px-4 py-3">№</th> | 78 | <th class="px-4 py-3">№</th> |
79 | <th class="px-4 py-3">Имя</th> | 79 | <th class="px-4 py-3">Имя</th> |
80 | <th class="px-4 py-3">Email/телефон</th> | 80 | <th class="px-4 py-3">Email/телефон</th> |
81 | <th class="px-4 py-3">Должность</th> | 81 | <th class="px-4 py-3">Должность</th> |
82 | <th class="px-4 py-3">Анкета</th> | 82 | <th class="px-4 py-3">Анкета</th> |
83 | <th class="px-4 py-3">Дата регистрации</th> | 83 | <th class="px-4 py-3">Дата регистрации</th> |
84 | <th class="px-4 py-3">Изменить</th> | 84 | <th class="px-4 py-3">Изменить</th> |
85 | </tr> | 85 | </tr> |
86 | </thead> | 86 | </thead> |
87 | <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> | 87 | <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> |
88 | @foreach($users as $user) | 88 | @foreach($users as $user) |
89 | <tr class="text-gray-700 dark:text-gray-400"> | 89 | <tr class="text-gray-700 dark:text-gray-400"> |
90 | <td class="px-4 py-3 text-xs"> | 90 | <td class="px-4 py-3 text-xs"> |
91 | {{$user->id}} | 91 | {{$user->id}} |
92 | </td> | 92 | </td> |
93 | <td class="px-4 py-3 text-xs"> | 93 | <td class="px-4 py-3 text-xs"> |
94 | <!--<div class="flex items-center text-sm"> | ||
95 | <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> | ||
96 | <div | ||
97 | class="absolute inset-0 rounded-full shadow-inner" | ||
98 | aria-hidden="true" | ||
99 | ></div> | ||
100 | </div> | ||
101 | <div> | ||
102 | <p class="font-semibold"><a href="{{ route('admin.users') }}">Пользователи</a></p> | ||
103 | <p class="text-xs text-gray-600 dark:text-gray-400"> | ||
104 | Все пользователи сайта | ||
105 | </p> | ||
106 | </div> | ||
107 | </div> | ||
108 | --> | ||
109 | <!--<a style="text-decoration: underline;" href="{{ route('admin.user-profile', ['user' => $user->id]) }}"></a>--> | ||
110 | |||
111 | {{ $user->name }} | 94 | {{ $user->name }} |
112 | </td> | 95 | </td> |
113 | 96 | ||
114 | <td class="px-4 py-3 text-xs"> | 97 | <td class="px-4 py-3 text-xs"> |
115 | <div class="flex items-center text-sm"> | 98 | <div class="flex items-center text-sm"> |
116 | <!--<div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> | ||
117 | <div | ||
118 | class="absolute inset-0 rounded-full shadow-inner" | ||
119 | aria-hidden="true" | ||
120 | ></div> | ||
121 | </div>--> | ||
122 | <div> | 99 | <div> |
123 | <p class="font-semibold">{{ empty($user->employers->email) ? $user->email : $user->employers->email }}</p> | 100 | <p class="font-semibold">{{ empty($user->employers->email) ? $user->email : $user->employers->email }}</p> |
124 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 101 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
125 | {{ empty($user->employers->telephone) ? $user->telephone : $user->employers->telephone }} | 102 | {{ empty($user->employers->telephone) ? $user->telephone : $user->employers->telephone }} |
126 | </p> | 103 | </p> |
127 | </div> | 104 | </div> |
128 | </div> | 105 | </div> |
129 | </td> | 106 | </td> |
130 | 107 | ||
131 | <!--<td class="px-4 py-3 text-xs"> | ||
132 | <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"> | ||
133 | @if ($user->is_worker) | ||
134 | Работник | ||
135 | @else | ||
136 | Работодатель | ||
137 | @endif | ||
138 | </span> | ||
139 | @if ($user->admin) | ||
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"> | ||
141 | Администратор | ||
142 | </span> | ||
143 | @endif | ||
144 | @if ($user->is_bd) | ||
145 | <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"> | ||
146 | База данных | ||
147 | </span> | ||
148 | @endif | ||
149 | </td>--> | ||
150 | |||
151 | <td class="px-4 py-3 text-xs"> | 108 | <td class="px-4 py-3 text-xs"> |
152 | @if (isset($user->jobtitles[0]->name)) | 109 | @if (isset($user->workers[0]->positions_work)) |
153 | {{ $user->jobtitles[0]->name }} | 110 | @foreach($user->workers[0]->jobs as $job) |
111 | {{ $job->name }} | ||
112 | @if(!$loop->last) | ||
113 | <br> | ||
114 | @endif | ||
115 | @endforeach | ||
154 | @else | 116 | @else |
155 | - | 117 | - |
156 | @endif | 118 | @endif |
157 | </td> | 119 | </td> |
158 | 120 | ||
159 | <td class="px-4 py-3 text-xs"> | 121 | <td class="px-4 py-3 text-xs"> |
160 | @if (isset($user->workers[0]->id)) | 122 | @if (isset($user->workers[0]->id)) |
161 | <!--<a href="{{ route('admin.worker-profile-edit', ['worker' => $user->workers[0]->id]) }}">Править</a> |--> | 123 | <!--<a href="{{ route('admin.worker-profile-edit', ['worker' => $user->workers[0]->id]) }}">Править</a> |--> |
162 | <!--<a href="{{ route('admin.doc-basedata', ['user' => $user->id]) }}">Скачать</a>--> | 124 | <!--<a href="{{ route('admin.doc-basedata', ['user' => $user->id]) }}">Скачать</a>--> |
163 | @endif | 125 | @endif |
164 | @isset($user->file) | 126 | @isset($user->file) |
165 | <a class="text-gray-700 dark:text-gray-400" target="blank" href="{{ asset(Storage::url($user->file)) }}">Скачать</a> | 127 | <a class="text-gray-700 dark:text-gray-400" target="blank" href="{{ asset(Storage::url($user->file)) }}">Скачать</a> |
166 | @else | 128 | @else |
167 | <p class="text-gray-700 dark:text-gray-400">-</p> | 129 | <p class="text-gray-700 dark:text-gray-400">-</p> |
168 | @endisset | 130 | @endisset |
169 | </td> | 131 | </td> |
170 | 132 | ||
171 | <td class="px-4 py-3 text-xs"> | 133 | <td class="px-4 py-3 text-xs"> |
172 | {{ date('d.m.Y', strtotime($user->created_at)) }} | 134 | {{ date('d.m.Y', strtotime($user->created_at)) }} |
173 | </td> | 135 | </td> |
174 | 136 | ||
175 | <td class="px-4 py-3 text-xs text-sm_"> | 137 | <td class="px-4 py-3 text-xs text-sm_"> |
176 | @if (!empty($user->id)) | 138 | @if (!empty($user->id)) |
177 | <a href="{{ route('admin.edit-basedata', ['user' => $user->id]) }}">Изменить</a> | 139 | <a href="{{ route('admin.edit-basedata', ['user' => $user->id]) }}">Изменить</a> |
178 | | <a @click="openModal" style="cursor: pointer;" data-user="{{$user->id}}" class="btn_del btn btn-danger">Удалить</a> | 140 | | <a @click="openModal" style="cursor: pointer;" data-user="{{$user->id}}" class="btn_del btn btn-danger">Удалить</a> |
179 | @endif | 141 | @endif |
180 | </td> | 142 | </td> |
181 | </tr> | 143 | </tr> |
182 | @endforeach | 144 | @endforeach |
183 | </tbody> | 145 | </tbody> |
184 | </table> | 146 | </table> |
185 | </div> | 147 | </div> |
186 | 148 | ||
187 | <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"> | 149 | <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"> |
188 | <?//=$users->appends($_GET)->links('admin.pagginate'); ?> | 150 | |
189 | <?=$users->links('admin.pagginate'); ?> | 151 | <?=$users->links('admin.pagginate'); ?> |
190 | </div> | 152 | </div> |
191 | 153 | ||
192 | 154 | ||
193 | <!--<div | 155 | <!--<div |
194 | 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" | 156 | 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" |
195 | > | 157 | > |
196 | <span class="flex items-center col-span-3"> | 158 | <span class="flex items-center col-span-3"> |
197 | Showing 21-30 of 100 | 159 | Showing 21-30 of 100 |
198 | </span> | 160 | </span> |
199 | <span class="col-span-2"></span> | 161 | <span class="col-span-2"></span> |
200 | 162 | ||
201 | <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> | 163 | <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> |
202 | <nav aria-label="Table navigation"> | 164 | <nav aria-label="Table navigation"> |
203 | <ul class="inline-flex items-center"> | 165 | <ul class="inline-flex items-center"> |
204 | <li> | 166 | <li> |
205 | <button | 167 | <button |
206 | class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" | 168 | class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" |
207 | aria-label="Previous" | 169 | aria-label="Previous" |
208 | > | 170 | > |
209 | <svg | 171 | <svg |
210 | aria-hidden="true" | 172 | aria-hidden="true" |
211 | class="w-4 h-4 fill-current" | 173 | class="w-4 h-4 fill-current" |
212 | viewBox="0 0 20 20" | 174 | viewBox="0 0 20 20" |
213 | > | 175 | > |
214 | <path | 176 | <path |
215 | 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" | 177 | 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" |
216 | clip-rule="evenodd" | 178 | clip-rule="evenodd" |
217 | fill-rule="evenodd" | 179 | fill-rule="evenodd" |
218 | ></path> | 180 | ></path> |
219 | </svg> | 181 | </svg> |
220 | </button> | 182 | </button> |
221 | </li> | 183 | </li> |
222 | <li> | 184 | <li> |
223 | <button | 185 | <button |
224 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 186 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
225 | > | 187 | > |
226 | 1 | 188 | 1 |
227 | </button> | 189 | </button> |
228 | </li> | 190 | </li> |
229 | <li> | 191 | <li> |
230 | <button | 192 | <button |
231 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 193 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
232 | > | 194 | > |
233 | 2 | 195 | 2 |
234 | </button> | 196 | </button> |
235 | </li> | 197 | </li> |
236 | <li> | 198 | <li> |
237 | <button | 199 | <button |
238 | 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" | 200 | 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" |
239 | > | 201 | > |
240 | 3 | 202 | 3 |
241 | </button> | 203 | </button> |
242 | </li> | 204 | </li> |
243 | <li> | 205 | <li> |
244 | <button | 206 | <button |
245 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 207 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
246 | > | 208 | > |
247 | 4 | 209 | 4 |
248 | </button> | 210 | </button> |
249 | </li> | 211 | </li> |
250 | <li> | 212 | <li> |
251 | <span class="px-3 py-1">...</span> | 213 | <span class="px-3 py-1">...</span> |
252 | </li> | 214 | </li> |
253 | <li> | 215 | <li> |
254 | <button | 216 | <button |
255 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 217 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
256 | > | 218 | > |
257 | 8 | 219 | 8 |
258 | </button> | 220 | </button> |
259 | </li> | 221 | </li> |
260 | <li> | 222 | <li> |
261 | <button | 223 | <button |
262 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 224 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
263 | > | 225 | > |
264 | 9 | 226 | 9 |
265 | </button> | 227 | </button> |
266 | </li> | 228 | </li> |
267 | <li> | 229 | <li> |
268 | <button | 230 | <button |
269 | class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" | 231 | class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" |
270 | aria-label="Next" | 232 | aria-label="Next" |
271 | > | 233 | > |
272 | <svg | 234 | <svg |
273 | class="w-4 h-4 fill-current" | 235 | class="w-4 h-4 fill-current" |
274 | aria-hidden="true" | 236 | aria-hidden="true" |
275 | viewBox="0 0 20 20" | 237 | viewBox="0 0 20 20" |
276 | > | 238 | > |
277 | <path | 239 | <path |
278 | 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" | 240 | 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" |
279 | clip-rule="evenodd" | 241 | clip-rule="evenodd" |
280 | fill-rule="evenodd" | 242 | fill-rule="evenodd" |
281 | ></path> | 243 | ></path> |
282 | </svg> | 244 | </svg> |
283 | </button> | 245 | </button> |
284 | </li> | 246 | </li> |
285 | </ul> | 247 | </ul> |
286 | </nav> | 248 | </nav> |
287 | </span> | 249 | </span> |
288 | </div>--> | 250 | </div>--> |
289 | </div> | 251 | </div> |
290 | 252 |
resources/views/employers/bd.blade.php
1 | @extends('layout.frontend', ['title' => 'База данных - РекаМоре']) | 1 | @extends('layout.frontend', ['title' => 'База данных - РекаМоре']) |
2 | 2 | ||
3 | @section('scripts') | 3 | @section('scripts') |
4 | <script> | 4 | <script> |
5 | $(document).ready(function(){ | 5 | $(document).ready(function(){ |
6 | $('[name="job_title_list[]"]').chosen({ | 6 | $('[name="job_title_list[]"]').chosen({ |
7 | width: '100%' | 7 | width: '100%' |
8 | }) | 8 | }) |
9 | $('[name="job_titles__name"]').change(function(){ | 9 | $('[name="job_titles__name"]').change(function(){ |
10 | if ($(this).is(':checked')){ | 10 | if ($(this).is(':checked')){ |
11 | $(".job-title-list-wrap").css("display", "block"); | 11 | $(".job-title-list-wrap").css("display", "block"); |
12 | } else { | 12 | } else { |
13 | $(".job-title-list-wrap").css("display", "none"); | 13 | $(".job-title-list-wrap").css("display", "none"); |
14 | } | 14 | } |
15 | }); | 15 | }); |
16 | $('.cabinet__export-button-wrap button').click(function(){ | 16 | $('.cabinet__export-button-wrap button').click(function(){ |
17 | $('.cabinet__export-error').parent().remove(); | 17 | $('.cabinet__export-error').parent().remove(); |
18 | }); | 18 | }); |
19 | 19 | ||
20 | $('.search-reset-button').click(function(){ | 20 | $('.search-reset-button').click(function(){ |
21 | var wrap = $(this).closest('.cabinet__filters'); | 21 | var wrap = $(this).closest('.cabinet__filters'); |
22 | wrap.find('[name="search"]').val(''); | 22 | wrap.find('[name="search"]').val(''); |
23 | }); | 23 | }); |
24 | }); | 24 | }); |
25 | 25 | ||
26 | 26 | ||
27 | $(document).on('click', '.die_black', function() { | 27 | $(document).on('click', '.die_black', function() { |
28 | var this_ = $(this); | 28 | var this_ = $(this); |
29 | var ajax_ = $('#ajax_flot_div'); | 29 | var ajax_ = $('#ajax_flot_div'); |
30 | var id_ = this_.attr('data-test'); | 30 | var id_ = this_.attr('data-test'); |
31 | var url_ = this_.attr('data-link'); | 31 | var url_ = this_.attr('data-link'); |
32 | 32 | ||
33 | console.log(url_); | 33 | console.log(url_); |
34 | $.ajax({ | 34 | $.ajax({ |
35 | type: "GET", | 35 | type: "GET", |
36 | url: url_, | 36 | url: url_, |
37 | success: function (data) { | 37 | success: function (data) { |
38 | console.log('Ответка'); | 38 | console.log('Ответка'); |
39 | ajax_.html(data); | 39 | ajax_.html(data); |
40 | }, | 40 | }, |
41 | headers: { | 41 | headers: { |
42 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | 42 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') |
43 | }, | 43 | }, |
44 | error: function (data) { | 44 | error: function (data) { |
45 | console.log('Error: ' + data); | 45 | console.log('Error: ' + data); |
46 | } | 46 | } |
47 | }); | 47 | }); |
48 | 48 | ||
49 | }); | 49 | }); |
50 | </script> | 50 | </script> |
51 | @endsection | 51 | @endsection |
52 | 52 | ||
53 | @section('content') | 53 | @section('content') |
54 | <section class="cabinet"> | 54 | <section class="cabinet"> |
55 | <div class="container"> | 55 | <div class="container"> |
56 | <ul class="breadcrumbs cabinet__breadcrumbs"> | 56 | <ul class="breadcrumbs cabinet__breadcrumbs"> |
57 | <li><a href="{{ route('index') }}">Главная</a></li> | 57 | <li><a href="{{ route('index') }}">Главная</a></li> |
58 | <li><b>Личный кабинет</b></li> | 58 | <li><b>Личный кабинет</b></li> |
59 | </ul> | 59 | </ul> |
60 | <div class="cabinet__wrapper"> | 60 | <div class="cabinet__wrapper"> |
61 | <div class="cabinet__side"> | 61 | <div class="cabinet__side"> |
62 | <div class="cabinet__side-toper"> | 62 | <div class="cabinet__side-toper"> |
63 | @include('employers.emblema') | 63 | @include('employers.emblema') |
64 | </div> | 64 | </div> |
65 | @include('employers.menu', ['item' => 7]) | 65 | @include('employers.menu', ['item' => 7]) |
66 | </div> | 66 | </div> |
67 | 67 | ||
68 | <div class="cabinet__body"> | 68 | <div class="cabinet__body"> |
69 | <div class="cabinet__body-item"> | 69 | <div class="cabinet__body-item"> |
70 | <h2 class="title cabinet__title">База данных</h2> | 70 | <h2 class="title cabinet__title">База данных</h2> |
71 | </div> | 71 | </div> |
72 | <div class="cabinet__body-item"> | 72 | <div class="cabinet__body-item"> |
73 | <div class="cabinet__filters" style="display: flex;flex-direction: unset;justify-content: left;align-items: center;"> | 73 | <div class="cabinet__filters" style="display: flex;flex-direction: unset;justify-content: left;align-items: center;"> |
74 | <div class="cabinet__filters-item"> | 74 | <div class="cabinet__filters-item"> |
75 | <form class="search" action="{{ route('employer.bd') }}"> | 75 | <form class="search" action="{{ route('employer.bd') }}"> |
76 | <input type="search" name="search" id="search" class="input" placeholder="Поиск…" value="@if (isset($_GET['search'])) {{ $_GET['search'] }} @endif"> | 76 | <input type="search" name="search" id="search" class="input" placeholder="Поиск…" value="@if (isset($_GET['search'])) {{ $_GET['search'] }} @endif"> |
77 | <button type="submit" class="button">Найти</button> | 77 | <button type="submit" class="button">Найти</button> |
78 | <span> | 78 | <span> |
79 | <svg> | 79 | <svg> |
80 | <use xlink:href="{{ asset('images/sprite.svg#search') }}"></use> | 80 | <use xlink:href="{{ asset('images/sprite.svg#search') }}"></use> |
81 | </svg> | 81 | </svg> |
82 | </span> | 82 | </span> |
83 | </form> | 83 | </form> |
84 | </div> | 84 | </div> |
85 | <a href="javascript:void(0)" class="search-reset-button bold font18" style="color: #377d87;">Сбросить поиск</a> | 85 | <a href="javascript:void(0)" class="search-reset-button bold font18" style="color: #377d87;">Сбросить поиск</a> |
86 | </div> | 86 | </div> |
87 | <div class="cabinet__filters"> | 87 | <div class="cabinet__filters"> |
88 | <div class="cabinet__export-wrap"> | 88 | <div class="cabinet__export-wrap"> |
89 | <form action="{{ route('resume_download_all') }}" method="GET" target="_blank"> | 89 | <form action="{{ route('resume_download_all') }}" method="GET" target="_blank"> |
90 | <div class="cabinet__export-button-wrap"> | 90 | <div class="cabinet__export-button-wrap"> |
91 | <button type="submit" class="button"> | 91 | <button type="submit" class="button"> |
92 | <svg> | 92 | <svg> |
93 | <use xlink:href="{{ asset('images/sprite.svg#share') }}"></use> | 93 | <use xlink:href="{{ asset('images/sprite.svg#share') }}"></use> |
94 | </svg> | 94 | </svg> |
95 | Экспорт | 95 | Экспорт |
96 | </button> | 96 | </button> |
97 | </div> | 97 | </div> |
98 | <div class="cabinet__export-options-wrap"> | 98 | <div class="cabinet__export-options-wrap"> |
99 | @foreach ($export_options as $key => $value) | 99 | @foreach ($export_options as $key => $value) |
100 | <label class="checkbox"> | 100 | <label class="checkbox"> |
101 | <input type="checkbox" value="1" name="{{$key}}" class="checkbox__input" checked=""> | 101 | <input type="checkbox" value="1" name="{{$key}}" class="checkbox__input" checked=""> |
102 | <span class="checkbox__icon"> | 102 | <span class="checkbox__icon"> |
103 | <svg> | 103 | <svg> |
104 | <use xlink:href="{{ asset('images/sprite.svg#v') }}"></use> | 104 | <use xlink:href="{{ asset('images/sprite.svg#v') }}"></use> |
105 | </svg> | 105 | </svg> |
106 | </span> | 106 | </span> |
107 | <span class="checkbox__text"> | 107 | <span class="checkbox__text"> |
108 | <span>{{$value}}</span> | 108 | <span>{{$value}}</span> |
109 | </span> | 109 | </span> |
110 | </label> | 110 | </label> |
111 | @endforeach | 111 | @endforeach |
112 | </div> | 112 | </div> |
113 | <div class="job-title-list-wrap"> | 113 | <div class="job-title-list-wrap"> |
114 | <select name="job_title_list[]" data-placeholder="Выберите должности" multiple > | 114 | <select name="job_title_list[]" data-placeholder="Выберите должности" multiple > |
115 | @foreach($jobs_titles as $job_title) | 115 | @foreach($jobs_titles as $job_title) |
116 | <option value="{{$job_title['id']}}">{{$job_title['name']}}</option> | 116 | <option value="{{$job_title['id']}}">{{$job_title['name']}}</option> |
117 | @endforeach | 117 | @endforeach |
118 | </select> | 118 | </select> |
119 | </div> | 119 | </div> |
120 | </form> | 120 | </form> |
121 | </div> | 121 | </div> |
122 | </div> | 122 | </div> |
123 | @if(session('error')) | 123 | @if(session('error')) |
124 | <div class="cabinet__filters"> | 124 | <div class="cabinet__filters"> |
125 | <p class="cabinet__export-error">{{ session('error') }}</p> | 125 | <p class="cabinet__export-error">{{ session('error') }}</p> |
126 | </div> | 126 | </div> |
127 | @endif | 127 | @endif |
128 | 128 | ||
129 | </div> | 129 | </div> |
130 | 130 | ||
131 | <div class="cabinet__body-item"> | 131 | <div class="cabinet__body-item"> |
132 | <div class="cabinet__table-header"> | 132 | <div class="cabinet__table-header"> |
133 | <div> | 133 | <div> |
134 | Позиции работников | 134 | Позиции работников |
135 | </div> | 135 | </div> |
136 | <span> | 136 | <span> |
137 | Пользователей найдено: | 137 | Пользователей найдено: |
138 | <b>{{ $count_users->count() }}</b> | 138 | <b>{{ $count_users->count() }}</b> |
139 | </span> | 139 | </span> |
140 | </div> | 140 | </div> |
141 | <div class="table table_spoiler"> | 141 | <div class="table table_spoiler"> |
142 | <!--<button type="button" class="table__button js-toggle js-parent-toggle button button_light button_more"> | ||
143 | <span>Показать ещё</span> | ||
144 | <span>Свернуть</span> | ||
145 | </button>--> | ||
146 | 142 | ||
147 | <div class="table__scroll"> | 143 | <div class="table__scroll"> |
148 | <div class="table__body table__body_min-width"> | 144 | <div class="table__body table__body_min-width"> |
149 | <table> | 145 | <table> |
150 | <thead> | 146 | <thead> |
151 | <tr> | 147 | <tr> |
152 | <th>ФИО соискателя</th> | 148 | <th>ФИО соискателя</th> |
153 | <th>Должность</th> | 149 | <th>Должность</th> |
154 | <th>Наличие<br>анкеты</th> | 150 | <th>Наличие<br>анкеты</th> |
155 | </tr> | 151 | </tr> |
156 | </thead> | 152 | </thead> |
157 | <tbody> | 153 | <tbody> |
158 | @php | 154 | @php |
159 | $categories = 0; | 155 | $categories = 0; |
160 | 156 | ||
161 | @endphp | 157 | @endphp |
162 | 158 | ||
163 | @if ($users->count()) | 159 | @if ($users->count()) |
164 | @foreach ($users as $key => $it) | 160 | @foreach ($users as $key => $it) |
165 | <tr> | 161 | <tr> |
166 | <td>{{ $it->surname." ".$it->name_man }}<br>{{ $it->surname2 }}</td> | 162 | <td>{{ $it->surname." ".$it->name_man }}<br>{{ $it->surname2 }}</td> |
167 | 163 | ||
168 | <td>{{ $it->jobtitles[0]->name ?? '-' }}</td> | 164 | <td> |
165 | @if($it->workers[0]->positions_work) | ||
166 | @foreach($it->workers[0]->jobs as $job) | ||
167 | {{ $job->name }} | ||
168 | @if(!$loop->last) | ||
169 | <br> | ||
170 | @endif | ||
171 | @endforeach | ||
172 | @endif | ||
173 | </td> | ||
169 | 174 | ||
170 | <td> | 175 | <td> |
171 | @if (isset($it->workers[0]->id)) | 176 | @if (isset($it->workers[0]->id)) |
172 | <a href="{{ route('resume_download', ['worker' => $it->workers[0]->id]) }}" class="table__link"> | 177 | <a href="{{ route('resume_download', ['worker' => $it->workers[0]->id]) }}" class="table__link"> |
173 | <svg> | 178 | <svg> |
174 | <use xlink:href="{{ asset('images/sprite.svg#share') }}"></use> | 179 | <use xlink:href="{{ asset('images/sprite.svg#share') }}"></use> |
175 | </svg> | 180 | </svg> |
176 | Скачать | 181 | Скачать |
177 | </a> | 182 | </a> |
178 | @endif | 183 | @endif |
179 | </td> | 184 | </td> |
180 | </tr> | 185 | </tr> |
181 | @endforeach | 186 | @endforeach |
182 | @endif | 187 | @endif |
183 | </tbody> | 188 | </tbody> |
184 | </table> | 189 | </table> |
185 | </div> | 190 | </div> |
186 | 191 | ||
187 | </div> | 192 | </div> |
188 | </div> | 193 | </div> |
189 | {{ $users->onEachSide(0)->appends($_GET)->links('paginate') }} | 194 | {{ $users->onEachSide(0)->appends($_GET)->links('paginate') }} |
190 | </div> | 195 | </div> |
191 | </div> | 196 | </div> |
192 | </div> | 197 | </div> |
193 | </div> | 198 | </div> |
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('./css/admin/admin.css')}}" /> | 11 | <link rel="stylesheet" href="{{ asset('./css/admin/admin.css')}}" /> |
12 | <link rel="stylesheet" href="{{ asset('./assets/css/tailwind.output_new.css')}}" /> | 12 | <link rel="stylesheet" href="{{ asset('./assets/css/tailwind.output_new.css')}}" /> |
13 | <link rel="stylesheet" href="{{ asset('./assets/css/tabs.css')}}" /> | 13 | <link rel="stylesheet" href="{{ asset('./assets/css/tabs.css')}}" /> |
14 | <script | 14 | <script |
15 | src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js" | 15 | src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js" |
16 | defer | 16 | defer |
17 | ></script> | 17 | ></script> |
18 | <script src="{{ asset('./assets/js/init-alpine.js') }}"></script> | 18 | <script src="{{ asset('./assets/js/init-alpine.js') }}"></script> |
19 | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"/> | 19 | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"/> |
20 | <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js" defer></script> | 20 | <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js" defer></script> |
21 | <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> | 21 | <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> |
22 | <script src="{{ asset('./assets/js/charts-lines.js') }}" defer></script> | 22 | <script src="{{ asset('./assets/js/charts-lines.js') }}" defer></script> |
23 | <script src="{{ asset('./assets/js/charts-pie.js') }}" defer></script> | 23 | <script src="{{ asset('./assets/js/charts-pie.js') }}" defer></script> |
24 | <script src="{{ asset('js/jquery.fancybox.js') }}"></script> | 24 | <script src="{{ asset('js/jquery.fancybox.js') }}"></script> |
25 | <script src="{{ asset('./js/func.js') }}"></script> | 25 | <script src="{{ asset('./js/func.js') }}"></script> |
26 | <link rel="stylesheet" href="{{ asset('css/helpers.css') }}"> | 26 | <link rel="stylesheet" href="{{ asset('css/helpers.css') }}"> |
27 | <link rel="stylesheet" href="{{ asset('css/jquery.fancybox.css') }}"> | 27 | <link rel="stylesheet" href="{{ asset('css/jquery.fancybox.css') }}"> |
28 | <link rel="stylesheet" href="{{ asset('css/general.css') }}"> | 28 | <link rel="stylesheet" href="{{ asset('css/general.css') }}"> |
29 | <link rel="stylesheet" href="{{ asset('js/chosen/chosen.min.css') }}"> | ||
30 | <script src="{{ asset('js/chosen/chosen.jquery.min.js') }}"></script> | ||
29 | </head> | 31 | </head> |
30 | <body> | 32 | <body> |
31 | <div class="flex h-screen bg-gray-50 dark:bg-gray-900" :class="{ 'overflow-hidden': isSideMenuOpen }"> | 33 | <div class="flex h-screen bg-gray-50 dark:bg-gray-900" :class="{ 'overflow-hidden': isSideMenuOpen }"> |
32 | <!-- Desktop sidebar --> | 34 | <!-- Desktop sidebar --> |
33 | <aside | 35 | <aside |
34 | class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0" | 36 | class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0" |
35 | > | 37 | > |
36 | <div class="py-4 text-gray-500 dark:text-gray-400"> | 38 | <div class="py-4 text-gray-500 dark:text-gray-400"> |
37 | <a class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" | 39 | <a class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" |
38 | href="{{ route('admin.index') }}"> | 40 | href="{{ route('admin.index') }}"> |
39 | Админка | 41 | Админка |
40 | </a> | 42 | </a> |
41 | <ul class="mt-6"> | 43 | <ul class="mt-6"> |
42 | <li class="relative px-6 py-3"> | 44 | <li class="relative px-6 py-3"> |
43 | <span | 45 | <span |
44 | class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" | 46 | class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" |
45 | aria-hidden="true" | 47 | aria-hidden="true" |
46 | ></span> | 48 | ></span> |
47 | <a | 49 | <a |
48 | 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 }}" | 50 | 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 }}" |
49 | href="{{ route('admin.index') }}" | 51 | href="{{ route('admin.index') }}" |
50 | > | 52 | > |
51 | <svg | 53 | <svg |
52 | class="w-5 h-5" | 54 | class="w-5 h-5" |
53 | aria-hidden="true" | 55 | aria-hidden="true" |
54 | fill="none" | 56 | fill="none" |
55 | stroke-linecap="round" | 57 | stroke-linecap="round" |
56 | stroke-linejoin="round" | 58 | stroke-linejoin="round" |
57 | stroke-width="2" | 59 | stroke-width="2" |
58 | viewBox="0 0 24 24" | 60 | viewBox="0 0 24 24" |
59 | stroke="currentColor" | 61 | stroke="currentColor" |
60 | > | 62 | > |
61 | <path | 63 | <path |
62 | d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" | 64 | d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" |
63 | ></path> | 65 | ></path> |
64 | </svg> | 66 | </svg> |
65 | <span class="ml-4">Главная страница</span> | 67 | <span class="ml-4">Главная страница</span> |
66 | </a> | 68 | </a> |
67 | </li> | 69 | </li> |
68 | </ul> | 70 | </ul> |
69 | 71 | ||
70 | <ul> | 72 | <ul> |
71 | @foreach ($contents as $cont) | 73 | @foreach ($contents as $cont) |
72 | @if ($cont->url_page == "admin/users") | 74 | @if ($cont->url_page == "admin/users") |
73 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 75 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
74 | (($cont->is_manager == 1) && ($is_manager == 1))) | 76 | (($cont->is_manager == 1) && ($is_manager == 1))) |
75 | <li class="relative px-6 py-3"> | 77 | <li class="relative px-6 py-3"> |
76 | <a | 78 | <a |
77 | 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 }}" | 79 | 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 }}" |
78 | href="{{ route('admin.users') }}" | 80 | href="{{ route('admin.users') }}" |
79 | > | 81 | > |
80 | <svg | 82 | <svg |
81 | class="w-5 h-5" | 83 | class="w-5 h-5" |
82 | aria-hidden="true" | 84 | aria-hidden="true" |
83 | fill="none" | 85 | fill="none" |
84 | stroke-linecap="round" | 86 | stroke-linecap="round" |
85 | stroke-linejoin="round" | 87 | stroke-linejoin="round" |
86 | stroke-width="2" | 88 | stroke-width="2" |
87 | viewBox="0 0 24 24" | 89 | viewBox="0 0 24 24" |
88 | stroke="currentColor" | 90 | stroke="currentColor" |
89 | > | 91 | > |
90 | <path | 92 | <path |
91 | 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" | 93 | 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" |
92 | ></path> | 94 | ></path> |
93 | </svg> | 95 | </svg> |
94 | <span class="ml-4">Пользователи</span> | 96 | <span class="ml-4">Пользователи</span> |
95 | </a> | 97 | </a> |
96 | </li> | 98 | </li> |
97 | @endif | 99 | @endif |
98 | @endif | 100 | @endif |
99 | 101 | ||
100 | @if ($cont->url_page == "admin/admin_roles") | 102 | @if ($cont->url_page == "admin/admin_roles") |
101 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 103 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
102 | (($cont->is_manager == 1) && ($is_manager == 1))) | 104 | (($cont->is_manager == 1) && ($is_manager == 1))) |
103 | <li class="relative px-6 py-3"> | 105 | <li class="relative px-6 py-3"> |
104 | <a | 106 | <a |
105 | 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 }}" | 107 | 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 }}" |
106 | href="{{ route('admin.admin_roles') }}" | 108 | href="{{ route('admin.admin_roles') }}" |
107 | > | 109 | > |
108 | <svg | 110 | <svg |
109 | class="w-5 h-5" | 111 | class="w-5 h-5" |
110 | aria-hidden="true" | 112 | aria-hidden="true" |
111 | fill="none" | 113 | fill="none" |
112 | stroke-linecap="round" | 114 | stroke-linecap="round" |
113 | stroke-linejoin="round" | 115 | stroke-linejoin="round" |
114 | stroke-width="2" | 116 | stroke-width="2" |
115 | viewBox="0 0 24 24" | 117 | viewBox="0 0 24 24" |
116 | stroke="currentColor" | 118 | stroke="currentColor" |
117 | > | 119 | > |
118 | <path | 120 | <path |
119 | 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" | 121 | 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" |
120 | ></path> | 122 | ></path> |
121 | </svg> | 123 | </svg> |
122 | <span class="ml-4">Роли администраторов</span> | 124 | <span class="ml-4">Роли администраторов</span> |
123 | </a> | 125 | </a> |
124 | </li> | 126 | </li> |
125 | @endif | 127 | @endif |
126 | @endif | 128 | @endif |
127 | 129 | ||
128 | @if ($cont->url_page == "admin/admin-users") | 130 | @if ($cont->url_page == "admin/admin-users") |
129 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 131 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
130 | (($cont->is_manager == 1) && ($is_manager == 1))) | 132 | (($cont->is_manager == 1) && ($is_manager == 1))) |
131 | <li class="relative px-6 py-3"> | 133 | <li class="relative px-6 py-3"> |
132 | <a | 134 | <a |
133 | 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') }}" | 135 | 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') }}" |
134 | > | 136 | > |
135 | <svg | 137 | <svg |
136 | class="w-5 h-5" | 138 | class="w-5 h-5" |
137 | aria-hidden="true" | 139 | aria-hidden="true" |
138 | fill="none" | 140 | fill="none" |
139 | stroke-linecap="round" | 141 | stroke-linecap="round" |
140 | stroke-linejoin="round" | 142 | stroke-linejoin="round" |
141 | stroke-width="2" | 143 | stroke-width="2" |
142 | viewBox="0 0 24 24" | 144 | viewBox="0 0 24 24" |
143 | stroke="currentColor" | 145 | stroke="currentColor" |
144 | > | 146 | > |
145 | <path | 147 | <path |
146 | 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" | 148 | 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" |
147 | ></path> | 149 | ></path> |
148 | </svg> | 150 | </svg> |
149 | <span class="ml-4">Администраторы</span> | 151 | <span class="ml-4">Администраторы</span> |
150 | </a> | 152 | </a> |
151 | </li> | 153 | </li> |
152 | @endif | 154 | @endif |
153 | @endif | 155 | @endif |
154 | 156 | ||
155 | @if ($cont->url_page == "admin/employers") | 157 | @if ($cont->url_page == "admin/employers") |
156 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 158 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
157 | (($cont->is_manager == 1) && ($is_manager == 1))) | 159 | (($cont->is_manager == 1) && ($is_manager == 1))) |
158 | <li class="relative px-6 py-3"> | 160 | <li class="relative px-6 py-3"> |
159 | <a | 161 | <a |
160 | 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') }}" | 162 | 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') }}" |
161 | > | 163 | > |
162 | <svg | 164 | <svg |
163 | class="w-5 h-5" | 165 | class="w-5 h-5" |
164 | aria-hidden="true" | 166 | aria-hidden="true" |
165 | fill="none" | 167 | fill="none" |
166 | stroke-linecap="round" | 168 | stroke-linecap="round" |
167 | stroke-linejoin="round" | 169 | stroke-linejoin="round" |
168 | stroke-width="2" | 170 | stroke-width="2" |
169 | viewBox="0 0 24 24" | 171 | viewBox="0 0 24 24" |
170 | stroke="currentColor" | 172 | stroke="currentColor" |
171 | > | 173 | > |
172 | <path | 174 | <path |
173 | 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" | 175 | 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" |
174 | ></path> | 176 | ></path> |
175 | </svg> | 177 | </svg> |
176 | <span class="ml-4">Работодатели</span> | 178 | <span class="ml-4">Работодатели</span> |
177 | </a> | 179 | </a> |
178 | </li> | 180 | </li> |
179 | @endif | 181 | @endif |
180 | @endif | 182 | @endif |
181 | 183 | ||
182 | @if ($cont->url_page == "admin/workers") | 184 | @if ($cont->url_page == "admin/workers") |
183 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 185 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
184 | (($cont->is_manager == 1) && ($is_manager == 1))) | 186 | (($cont->is_manager == 1) && ($is_manager == 1))) |
185 | <li class="relative px-6 py-3"> | 187 | <li class="relative px-6 py-3"> |
186 | <a | 188 | <a |
187 | 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') }}" | 189 | 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') }}" |
188 | > | 190 | > |
189 | <svg | 191 | <svg |
190 | class="w-5 h-5" | 192 | class="w-5 h-5" |
191 | aria-hidden="true" | 193 | aria-hidden="true" |
192 | fill="none" | 194 | fill="none" |
193 | stroke-linecap="round" | 195 | stroke-linecap="round" |
194 | stroke-linejoin="round" | 196 | stroke-linejoin="round" |
195 | stroke-width="2" | 197 | stroke-width="2" |
196 | viewBox="0 0 24 24" | 198 | viewBox="0 0 24 24" |
197 | stroke="currentColor" | 199 | stroke="currentColor" |
198 | > | 200 | > |
199 | <path | 201 | <path |
200 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" | 202 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" |
201 | ></path> | 203 | ></path> |
202 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> | 204 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> |
203 | </svg> | 205 | </svg> |
204 | <span class="ml-4">Соискатели</span> | 206 | <span class="ml-4">Соискатели</span> |
205 | </a> | 207 | </a> |
206 | </li> | 208 | </li> |
207 | @endif | 209 | @endif |
208 | @endif | 210 | @endif |
209 | 211 | ||
210 | @if ($cont->url_page == "admin/ad-employers") | 212 | @if ($cont->url_page == "admin/ad-employers") |
211 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 213 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
212 | (($cont->is_manager == 1) && ($is_manager == 1))) | 214 | (($cont->is_manager == 1) && ($is_manager == 1))) |
213 | <li class="relative px-6 py-3"> | 215 | <li class="relative px-6 py-3"> |
214 | <a | 216 | <a |
215 | 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') }}" | 217 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.ad-employers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.ad-employers') }}" |
216 | > | 218 | > |
217 | <svg | 219 | <svg |
218 | class="w-5 h-5" | 220 | class="w-5 h-5" |
219 | aria-hidden="true" | 221 | aria-hidden="true" |
220 | fill="none" | 222 | fill="none" |
221 | stroke-linecap="round" | 223 | stroke-linecap="round" |
222 | stroke-linejoin="round" | 224 | stroke-linejoin="round" |
223 | stroke-width="2" | 225 | stroke-width="2" |
224 | viewBox="0 0 24 24" | 226 | viewBox="0 0 24 24" |
225 | stroke="currentColor" | 227 | stroke="currentColor" |
226 | > | 228 | > |
227 | <path | 229 | <path |
228 | 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" | 230 | 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" |
229 | ></path> | 231 | ></path> |
230 | </svg> | 232 | </svg> |
231 | <span class="ml-4">Вакансии</span> | 233 | <span class="ml-4">Вакансии</span> |
232 | </a> | 234 | </a> |
233 | </li> | 235 | </li> |
234 | @endif | 236 | @endif |
235 | @endif | 237 | @endif |
236 | 238 | ||
237 | @if ($cont->url_page == "admin/messages") | 239 | @if ($cont->url_page == "admin/messages") |
238 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 240 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
239 | (($cont->is_manager == 1) && ($is_manager == 1))) | 241 | (($cont->is_manager == 1) && ($is_manager == 1))) |
240 | <li class="relative px-6 py-3"> | 242 | <li class="relative px-6 py-3"> |
241 | <a | 243 | <a |
242 | 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') }}" | 244 | 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') }}" |
243 | > | 245 | > |
244 | <svg | 246 | <svg |
245 | class="w-5 h-5" | 247 | class="w-5 h-5" |
246 | aria-hidden="true" | 248 | aria-hidden="true" |
247 | fill="none" | 249 | fill="none" |
248 | stroke-linecap="round" | 250 | stroke-linecap="round" |
249 | stroke-linejoin="round" | 251 | stroke-linejoin="round" |
250 | stroke-width="2" | 252 | stroke-width="2" |
251 | viewBox="0 0 24 24" | 253 | viewBox="0 0 24 24" |
252 | stroke="currentColor" | 254 | stroke="currentColor" |
253 | > | 255 | > |
254 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 256 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
255 | </svg> | 257 | </svg> |
256 | <span class="ml-4">Сообщения все</span> | 258 | <span class="ml-4">Сообщения все</span> |
257 | </a> | 259 | </a> |
258 | </li> | 260 | </li> |
259 | @endif | 261 | @endif |
260 | @endif | 262 | @endif |
261 | 263 | ||
262 | @if ($cont->url_page == "admin/admin-messages") | 264 | @if ($cont->url_page == "admin/admin-messages") |
263 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 265 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
264 | (($cont->is_manager == 1) && ($is_manager == 1))) | 266 | (($cont->is_manager == 1) && ($is_manager == 1))) |
265 | <li class="relative px-6 py-3"> | 267 | <li class="relative px-6 py-3"> |
266 | <a | 268 | <a |
267 | 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') }}" | 269 | 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') }}" |
268 | > | 270 | > |
269 | <svg | 271 | <svg |
270 | class="w-5 h-5" | 272 | class="w-5 h-5" |
271 | aria-hidden="true" | 273 | aria-hidden="true" |
272 | fill="none" | 274 | fill="none" |
273 | stroke-linecap="round" | 275 | stroke-linecap="round" |
274 | stroke-linejoin="round" | 276 | stroke-linejoin="round" |
275 | stroke-width="2" | 277 | stroke-width="2" |
276 | viewBox="0 0 24 24" | 278 | viewBox="0 0 24 24" |
277 | stroke="currentColor" | 279 | stroke="currentColor" |
278 | > | 280 | > |
279 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 281 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
280 | </svg> | 282 | </svg> |
281 | <span class="ml-4">Заявки на рассылку</span> | 283 | <span class="ml-4">Заявки на рассылку</span> |
282 | </a> | 284 | </a> |
283 | </li> | 285 | </li> |
284 | @endif | 286 | @endif |
285 | @endif | 287 | @endif |
286 | 288 | ||
287 | @if ($cont->url_page == "admin/groups") | 289 | @if ($cont->url_page == "admin/groups") |
288 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 290 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
289 | (($cont->is_manager == 1) && ($is_manager == 1))) | 291 | (($cont->is_manager == 1) && ($is_manager == 1))) |
290 | <li class="relative px-6 py-3"> | 292 | <li class="relative px-6 py-3"> |
291 | <a | 293 | <a |
292 | 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') }}" | 294 | 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') }}" |
293 | > | 295 | > |
294 | <svg | 296 | <svg |
295 | class="w-5 h-5" | 297 | class="w-5 h-5" |
296 | aria-hidden="true" | 298 | aria-hidden="true" |
297 | fill="none" | 299 | fill="none" |
298 | stroke-linecap="round" | 300 | stroke-linecap="round" |
299 | stroke-linejoin="round" | 301 | stroke-linejoin="round" |
300 | stroke-width="2" | 302 | stroke-width="2" |
301 | viewBox="0 0 24 24" | 303 | viewBox="0 0 24 24" |
302 | stroke="currentColor" | 304 | stroke="currentColor" |
303 | > | 305 | > |
304 | <path | 306 | <path |
305 | 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" | 307 | 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" |
306 | ></path> | 308 | ></path> |
307 | </svg> | 309 | </svg> |
308 | <span class="ml-4">Группы пользователей</span> | 310 | <span class="ml-4">Группы пользователей</span> |
309 | </a> | 311 | </a> |
310 | </li> | 312 | </li> |
311 | @endif | 313 | @endif |
312 | @endif | 314 | @endif |
313 | 315 | ||
314 | @if ($cont->url_page == "admin/media") | 316 | @if ($cont->url_page == "admin/media") |
315 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 317 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
316 | (($cont->is_manager == 1) && ($is_manager == 1))) | 318 | (($cont->is_manager == 1) && ($is_manager == 1))) |
317 | <li class="relative px-6 py-3"> | 319 | <li class="relative px-6 py-3"> |
318 | <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') }}"> | 320 | <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') }}"> |
319 | <svg | 321 | <svg |
320 | class="w-5 h-5" | 322 | class="w-5 h-5" |
321 | aria-hidden="true" | 323 | aria-hidden="true" |
322 | fill="none" | 324 | fill="none" |
323 | stroke-linecap="round" | 325 | stroke-linecap="round" |
324 | stroke-linejoin="round" | 326 | stroke-linejoin="round" |
325 | stroke-width="2" | 327 | stroke-width="2" |
326 | viewBox="0 0 24 24" | 328 | viewBox="0 0 24 24" |
327 | stroke="currentColor" | 329 | stroke="currentColor" |
328 | > | 330 | > |
329 | <path | 331 | <path |
330 | 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" | 332 | 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" |
331 | ></path> | 333 | ></path> |
332 | </svg> | 334 | </svg> |
333 | <span class="ml-4">Медиа</span> | 335 | <span class="ml-4">Медиа</span> |
334 | </a> | 336 | </a> |
335 | </li> | 337 | </li> |
336 | @endif | 338 | @endif |
337 | @endif | 339 | @endif |
338 | 340 | ||
339 | @if ($cont->url_page == "admin/roles") | 341 | @if ($cont->url_page == "admin/roles") |
340 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 342 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
341 | (($cont->is_manager == 1) && ($is_manager == 1))) | 343 | (($cont->is_manager == 1) && ($is_manager == 1))) |
342 | <li class="relative px-6 py-3"> | 344 | <li class="relative px-6 py-3"> |
343 | <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') }}"> | 345 | <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') }}"> |
344 | <svg | 346 | <svg |
345 | class="w-5 h-5" | 347 | class="w-5 h-5" |
346 | aria-hidden="true" | 348 | aria-hidden="true" |
347 | fill="none" | 349 | fill="none" |
348 | stroke-linecap="round" | 350 | stroke-linecap="round" |
349 | stroke-linejoin="round" | 351 | stroke-linejoin="round" |
350 | stroke-width="2" | 352 | stroke-width="2" |
351 | viewBox="0 0 24 24" | 353 | viewBox="0 0 24 24" |
352 | stroke="currentColor" | 354 | stroke="currentColor" |
353 | > | 355 | > |
354 | <path | 356 | <path |
355 | 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" | 357 | 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" |
356 | ></path> | 358 | ></path> |
357 | </svg> | 359 | </svg> |
358 | <span class="ml-4">Роли пользователей</span> | 360 | <span class="ml-4">Роли пользователей</span> |
359 | </a> | 361 | </a> |
360 | </li> | 362 | </li> |
361 | @endif | 363 | @endif |
362 | @endif | 364 | @endif |
363 | 365 | ||
364 | @if ($cont->url_page == "admin/basedata") | 366 | @if ($cont->url_page == "admin/basedata") |
365 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 367 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
366 | (($cont->is_manager == 1) && ($is_manager == 1))) | 368 | (($cont->is_manager == 1) && ($is_manager == 1))) |
367 | <li class="relative px-6 py-3"> | 369 | <li class="relative px-6 py-3"> |
368 | <a | 370 | <a |
369 | 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') }}" | 371 | 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') }}" |
370 | > | 372 | > |
371 | <svg | 373 | <svg |
372 | class="w-5 h-5" | 374 | class="w-5 h-5" |
373 | aria-hidden="true" | 375 | aria-hidden="true" |
374 | fill="none" | 376 | fill="none" |
375 | stroke-linecap="round" | 377 | stroke-linecap="round" |
376 | stroke-linejoin="round" | 378 | stroke-linejoin="round" |
377 | stroke-width="2" | 379 | stroke-width="2" |
378 | viewBox="0 0 24 24" | 380 | viewBox="0 0 24 24" |
379 | stroke="currentColor" | 381 | stroke="currentColor" |
380 | > | 382 | > |
381 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 383 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
382 | </svg> | 384 | </svg> |
383 | <span class="ml-4">Базы данных</span> | 385 | <span class="ml-4">Базы данных</span> |
384 | </a> | 386 | </a> |
385 | </li> | 387 | </li> |
386 | @endif | 388 | @endif |
387 | @endif | 389 | @endif |
388 | 390 | ||
389 | @if ($cont->url_page == "admin/education") | 391 | @if ($cont->url_page == "admin/education") |
390 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 392 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
391 | (($cont->is_manager == 1) && ($is_manager == 1))) | 393 | (($cont->is_manager == 1) && ($is_manager == 1))) |
392 | <li class="relative px-6 py-3"> | 394 | <li class="relative px-6 py-3"> |
393 | <a | 395 | <a |
394 | 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') }}" | 396 | 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') }}" |
395 | > | 397 | > |
396 | <svg | 398 | <svg |
397 | class="w-5 h-5" | 399 | class="w-5 h-5" |
398 | aria-hidden="true" | 400 | aria-hidden="true" |
399 | fill="none" | 401 | fill="none" |
400 | stroke-linecap="round" | 402 | stroke-linecap="round" |
401 | stroke-linejoin="round" | 403 | stroke-linejoin="round" |
402 | stroke-width="2" | 404 | stroke-width="2" |
403 | viewBox="0 0 24 24" | 405 | viewBox="0 0 24 24" |
404 | stroke="currentColor" | 406 | stroke="currentColor" |
405 | > | 407 | > |
406 | <path | 408 | <path |
407 | 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" | 409 | 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" |
408 | ></path> | 410 | ></path> |
409 | </svg> | 411 | </svg> |
410 | <span class="ml-4">Учебн.заведения</span> | 412 | <span class="ml-4">Учебн.заведения</span> |
411 | </a> | 413 | </a> |
412 | </li> | 414 | </li> |
413 | @endif | 415 | @endif |
414 | @endif | 416 | @endif |
415 | 417 | ||
416 | @if ($cont->url_page == "admin/statics") | 418 | @if ($cont->url_page == "admin/statics") |
417 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 419 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
418 | (($cont->is_manager == 1) && ($is_manager == 1))) | 420 | (($cont->is_manager == 1) && ($is_manager == 1))) |
419 | <li class="relative px-6 py-3"> | 421 | <li class="relative px-6 py-3"> |
420 | <a | 422 | <a |
421 | 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') }}" | 423 | 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') }}" |
422 | > | 424 | > |
423 | <svg | 425 | <svg |
424 | class="w-5 h-5" | 426 | class="w-5 h-5" |
425 | aria-hidden="true" | 427 | aria-hidden="true" |
426 | fill="none" | 428 | fill="none" |
427 | stroke-linecap="round" | 429 | stroke-linecap="round" |
428 | stroke-linejoin="round" | 430 | stroke-linejoin="round" |
429 | stroke-width="2" | 431 | stroke-width="2" |
430 | viewBox="0 0 24 24" | 432 | viewBox="0 0 24 24" |
431 | stroke="currentColor" | 433 | stroke="currentColor" |
432 | > | 434 | > |
433 | <path | 435 | <path |
434 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" | 436 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" |
435 | ></path> | 437 | ></path> |
436 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> | 438 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> |
437 | </svg> | 439 | </svg> |
438 | <span class="ml-4">Статистика</span> | 440 | <span class="ml-4">Статистика</span> |
439 | </a> | 441 | </a> |
440 | </li> | 442 | </li> |
441 | @endif | 443 | @endif |
442 | @endif | 444 | @endif |
443 | 445 | ||
444 | @if ($cont->url_page == "admin/answers") | 446 | @if ($cont->url_page == "admin/answers") |
445 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 447 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
446 | (($cont->is_manager == 1) && ($is_manager == 1))) | 448 | (($cont->is_manager == 1) && ($is_manager == 1))) |
447 | <li class="relative px-6 py-3"> | 449 | <li class="relative px-6 py-3"> |
448 | <a | 450 | <a |
449 | 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') }}" | 451 | 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') }}" |
450 | > | 452 | > |
451 | <svg | 453 | <svg |
452 | class="w-5 h-5" | 454 | class="w-5 h-5" |
453 | aria-hidden="true" | 455 | aria-hidden="true" |
454 | fill="none" | 456 | fill="none" |
455 | stroke-linecap="round" | 457 | stroke-linecap="round" |
456 | stroke-linejoin="round" | 458 | stroke-linejoin="round" |
457 | stroke-width="2" | 459 | stroke-width="2" |
458 | viewBox="0 0 24 24" | 460 | viewBox="0 0 24 24" |
459 | stroke="currentColor" | 461 | stroke="currentColor" |
460 | > | 462 | > |
461 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 463 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
462 | </svg> | 464 | </svg> |
463 | <span class="ml-4">Модерация</span> | 465 | <span class="ml-4">Модерация</span> |
464 | </a> | 466 | </a> |
465 | </li> | 467 | </li> |
466 | @endif | 468 | @endif |
467 | @endif | 469 | @endif |
468 | 470 | ||
469 | @if ($cont->url_page == "admin/reclames") | 471 | @if ($cont->url_page == "admin/reclames") |
470 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 472 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
471 | (($cont->is_manager == 1) && ($is_manager == 1))) | 473 | (($cont->is_manager == 1) && ($is_manager == 1))) |
472 | <li class="relative px-6 py-3"> | 474 | <li class="relative px-6 py-3"> |
473 | <a | 475 | <a |
474 | 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') }}" | 476 | 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') }}" |
475 | > | 477 | > |
476 | <svg | 478 | <svg |
477 | class="w-5 h-5" | 479 | class="w-5 h-5" |
478 | aria-hidden="true" | 480 | aria-hidden="true" |
479 | fill="none" | 481 | fill="none" |
480 | stroke-linecap="round" | 482 | stroke-linecap="round" |
481 | stroke-linejoin="round" | 483 | stroke-linejoin="round" |
482 | stroke-width="2" | 484 | stroke-width="2" |
483 | viewBox="0 0 24 24" | 485 | viewBox="0 0 24 24" |
484 | stroke="currentColor" | 486 | stroke="currentColor" |
485 | > | 487 | > |
486 | <path | 488 | <path |
487 | 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" | 489 | 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" |
488 | ></path> | 490 | ></path> |
489 | </svg> | 491 | </svg> |
490 | <span class="ml-4">Реклама</span> | 492 | <span class="ml-4">Реклама</span> |
491 | </a> | 493 | </a> |
492 | </li> | 494 | </li> |
493 | @endif | 495 | @endif |
494 | @endif | 496 | @endif |
495 | @endforeach | 497 | @endforeach |
496 | 498 | ||
497 | 499 | ||
498 | <li class="relative px-6 py-3"> | 500 | <li class="relative px-6 py-3"> |
499 | <a | 501 | <a |
500 | 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.news_admin') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.news_admin') }}" | 502 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.news_admin') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.news_admin') }}" |
501 | > | 503 | > |
502 | <svg | 504 | <svg |
503 | class="w-5 h-5" | 505 | class="w-5 h-5" |
504 | aria-hidden="true" | 506 | aria-hidden="true" |
505 | fill="none" | 507 | fill="none" |
506 | stroke-linecap="round" | 508 | stroke-linecap="round" |
507 | stroke-linejoin="round" | 509 | stroke-linejoin="round" |
508 | stroke-width="2" | 510 | stroke-width="2" |
509 | viewBox="0 0 24 24" | 511 | viewBox="0 0 24 24" |
510 | stroke="currentColor" | 512 | stroke="currentColor" |
511 | > | 513 | > |
512 | <path | 514 | <path |
513 | 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" | 515 | 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" |
514 | ></path> | 516 | ></path> |
515 | </svg> | 517 | </svg> |
516 | <span class="ml-4">Новости</span> | 518 | <span class="ml-4">Новости</span> |
517 | </a> | 519 | </a> |
518 | </li> | 520 | </li> |
519 | <!-- Справочники --> | 521 | <!-- Справочники --> |
520 | 522 | ||
521 | <li class="relative px-6 py-3" x-data="{ open1: false }"> | 523 | <li class="relative px-6 py-3" x-data="{ open1: false }"> |
522 | <button | 524 | <button |
523 | 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" | 525 | 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" |
524 | @click="open1=!open1" | 526 | @click="open1=!open1" |
525 | aria-haspopup="true"> | 527 | aria-haspopup="true"> |
526 | <span class="inline-flex items-center"> | 528 | <span class="inline-flex items-center"> |
527 | <svg | 529 | <svg |
528 | class="w-5 h-5" | 530 | class="w-5 h-5" |
529 | aria-hidden="true" | 531 | aria-hidden="true" |
530 | fill="none" | 532 | fill="none" |
531 | stroke-linecap="round" | 533 | stroke-linecap="round" |
532 | stroke-linejoin="round" | 534 | stroke-linejoin="round" |
533 | stroke-width="2" | 535 | stroke-width="2" |
534 | viewBox="0 0 24 24" | 536 | viewBox="0 0 24 24" |
535 | stroke="currentColor"> | 537 | stroke="currentColor"> |
536 | <path | 538 | <path |
537 | 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" | 539 | 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" |
538 | ></path> | 540 | ></path> |
539 | </svg> | 541 | </svg> |
540 | <span class="ml-4">Справочники</span> | 542 | <span class="ml-4">Справочники</span> |
541 | </span> | 543 | </span> |
542 | <svg | 544 | <svg |
543 | class="w-4 h-4" | 545 | class="w-4 h-4" |
544 | aria-hidden="true" | 546 | aria-hidden="true" |
545 | fill="currentColor" | 547 | fill="currentColor" |
546 | viewBox="0 0 20 20" | 548 | viewBox="0 0 20 20" |
547 | > | 549 | > |
548 | <path | 550 | <path |
549 | fill-rule="evenodd" | 551 | fill-rule="evenodd" |
550 | 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" | 552 | 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" |
551 | clip-rule="evenodd" | 553 | clip-rule="evenodd" |
552 | ></path> | 554 | ></path> |
553 | </svg> | 555 | </svg> |
554 | </button> | 556 | </button> |
555 | <template x-if="open1"> | 557 | <template x-if="open1"> |
556 | <ul | 558 | <ul |
557 | x-transition:enter="transition-all ease-in-out duration-300" | 559 | x-transition:enter="transition-all ease-in-out duration-300" |
558 | x-transition:enter-start="opacity-25 max-h-0" | 560 | x-transition:enter-start="opacity-25 max-h-0" |
559 | x-transition:enter-end="opacity-100 max-h-xl" | 561 | x-transition:enter-end="opacity-100 max-h-xl" |
560 | x-transition:leave="transition-all ease-in-out duration-300" | 562 | x-transition:leave="transition-all ease-in-out duration-300" |
561 | x-transition:leave-start="opacity-100 max-h-xl" | 563 | x-transition:leave-start="opacity-100 max-h-xl" |
562 | x-transition:leave-end="opacity-0 max-h-0" | 564 | x-transition:leave-end="opacity-0 max-h-0" |
563 | 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" | 565 | 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" |
564 | aria-label="submenu" | 566 | aria-label="submenu" |
565 | > | 567 | > |
566 | @foreach ($contents as $cont) | 568 | @foreach ($contents as $cont) |
567 | @if ($cont->url_page == "admin/job-titles") | 569 | @if ($cont->url_page == "admin/job-titles") |
568 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 570 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
569 | (($cont->is_manager == 1) && ($is_manager == 1))) | 571 | (($cont->is_manager == 1) && ($is_manager == 1))) |
570 | <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 }}"> | 572 | <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 }}"> |
571 | <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a> | 573 | <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a> |
572 | </li> | 574 | </li> |
573 | @endif | 575 | @endif |
574 | @endif | 576 | @endif |
575 | 577 | ||
576 | @if ($cont->url_page == "admin/categories") | 578 | @if ($cont->url_page == "admin/categories") |
577 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 579 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
578 | (($cont->is_manager == 1) && ($is_manager == 1))) | 580 | (($cont->is_manager == 1) && ($is_manager == 1))) |
579 | <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 }}"> | 581 | <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 }}"> |
580 | <a class="w-full" href="{{ route('admin.categories.index') }}">Категории вакансий</a> | 582 | <a class="w-full" href="{{ route('admin.categories.index') }}">Категории вакансий</a> |
581 | </li> | 583 | </li> |
582 | @endif | 584 | @endif |
583 | @endif | 585 | @endif |
584 | 586 | ||
585 | @if ($cont->url_page == "admin/category-emp") | 587 | @if ($cont->url_page == "admin/category-emp") |
586 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 588 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
587 | (($cont->is_manager == 1) && ($is_manager == 1))) | 589 | (($cont->is_manager == 1) && ($is_manager == 1))) |
588 | <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 }}"> | 590 | <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 }}"> |
589 | <a class="w-full" href="{{ route('admin.category-emp.index') }}">Категории работодателей</a> | 591 | <a class="w-full" href="{{ route('admin.category-emp.index') }}">Категории работодателей</a> |
590 | </li> | 592 | </li> |
591 | @endif | 593 | @endif |
592 | @endif | 594 | @endif |
593 | 595 | ||
594 | @if ($cont->url_page == "admin/infobloks") | 596 | @if ($cont->url_page == "admin/infobloks") |
595 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 597 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
596 | (($cont->is_manager == 1) && ($is_manager == 1))) | 598 | (($cont->is_manager == 1) && ($is_manager == 1))) |
597 | <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 }}"> | 599 | <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 }}"> |
598 | <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a> | 600 | <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a> |
599 | </li> | 601 | </li> |
600 | @endif | 602 | @endif |
601 | @endif | 603 | @endif |
602 | @endforeach | 604 | @endforeach |
603 | <!--<li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.position') ? 'dark:text-gray-100' : null }}"> | 605 | <!--<li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.position') ? 'dark:text-gray-100' : null }}"> |
604 | <a class="w-full" href=" route('admin.position') }}">Позиция</a> | 606 | <a class="w-full" href=" route('admin.position') }}">Позиция</a> |
605 | </li>--> | 607 | </li>--> |
606 | </ul> | 608 | </ul> |
607 | </template> | 609 | </template> |
608 | </li> | 610 | </li> |
609 | 611 | ||
610 | <!-- Редактор --> | 612 | <!-- Редактор --> |
611 | <li class="relative px-6 py-3"> | 613 | <li class="relative px-6 py-3"> |
612 | <button | 614 | <button |
613 | class="inline-flex items-center justify-between w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" | 615 | 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" |
614 | @click="togglePagesMenu" | 616 | @click="togglePagesMenu" |
615 | aria-haspopup="true"> | 617 | aria-haspopup="true"> |
616 | <span class="inline-flex items-center"> | 618 | <span class="inline-flex items-center"> |
617 | <svg | 619 | <svg |
618 | class="w-5 h-5" | 620 | class="w-5 h-5" |
619 | aria-hidden="true" | 621 | aria-hidden="true" |
620 | fill="none" | 622 | fill="none" |
621 | stroke-linecap="round" | 623 | stroke-linecap="round" |
622 | stroke-linejoin="round" | 624 | stroke-linejoin="round" |
623 | stroke-width="2" | 625 | stroke-width="2" |
624 | viewBox="0 0 24 24" | 626 | viewBox="0 0 24 24" |
625 | stroke="currentColor"> | 627 | stroke="currentColor"> |
626 | <path | 628 | <path |
627 | d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z" | 629 | 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" |
628 | ></path> | 630 | ></path> |
629 | </svg> | 631 | </svg> |
630 | <span class="ml-4">Редактор</span> | 632 | <span class="ml-4">Редактор</span> |
631 | </span> | 633 | </span> |
632 | <svg | 634 | <svg |
633 | class="w-4 h-4" | 635 | class="w-4 h-4" |
634 | aria-hidden="true" | 636 | aria-hidden="true" |
635 | fill="currentColor" | 637 | fill="currentColor" |
636 | viewBox="0 0 20 20" | 638 | viewBox="0 0 20 20" |
637 | > | 639 | > |
638 | <path | 640 | <path |
639 | fill-rule="evenodd" | 641 | fill-rule="evenodd" |
640 | d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" | 642 | 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" |
641 | clip-rule="evenodd" | 643 | clip-rule="evenodd" |
642 | ></path> | 644 | ></path> |
643 | </svg> | 645 | </svg> |
644 | </button> | 646 | </button> |
645 | <template x-if="isPagesMenuOpen"> | 647 | <template x-if="isPagesMenuOpen"> |
646 | <ul | 648 | <ul |
647 | x-transition:enter="transition-all ease-in-out duration-300" | 649 | x-transition:enter="transition-all ease-in-out duration-300" |
648 | x-transition:enter-start="opacity-25 max-h-0" | 650 | x-transition:enter-start="opacity-25 max-h-0" |
649 | x-transition:enter-end="opacity-100 max-h-xl" | 651 | x-transition:enter-end="opacity-100 max-h-xl" |
650 | x-transition:leave="transition-all ease-in-out duration-300" | 652 | x-transition:leave="transition-all ease-in-out duration-300" |
651 | x-transition:leave-start="opacity-100 max-h-xl" | 653 | x-transition:leave-start="opacity-100 max-h-xl" |
652 | x-transition:leave-end="opacity-0 max-h-0" | 654 | x-transition:leave-end="opacity-0 max-h-0" |
653 | class="p-2 mt-2 space-y-2 overflow-hidden text-sm font-medium text-gray-500 rounded-md shadow-inner bg-gray-50 dark:text-gray-400 dark:bg-gray-900" | 655 | 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" |
654 | aria-label="submenu" | 656 | aria-label="submenu" |
655 | > | 657 | > |
656 | @foreach ($contents as $cont) | 658 | @foreach ($contents as $cont) |
657 | @if ($cont->url_page == "admin/editor-site") | 659 | @if ($cont->url_page == "admin/editor-site") |
658 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 660 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
659 | (($cont->is_manager == 1) && ($is_manager == 1))) | 661 | (($cont->is_manager == 1) && ($is_manager == 1))) |
660 | <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 }}"> | 662 | <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 }}"> |
661 | <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> | 663 | <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> |
662 | </li> | 664 | </li> |
663 | @endif | 665 | @endif |
664 | @endif | 666 | @endif |
665 | 667 | ||
666 | @if ($cont->url_page == "admin/edit-blocks") | 668 | @if ($cont->url_page == "admin/edit-blocks") |
667 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 669 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
668 | (($cont->is_manager == 1) && ($is_manager == 1))) | 670 | (($cont->is_manager == 1) && ($is_manager == 1))) |
669 | <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 }}"> | 671 | <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 }}"> |
670 | <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> | 672 | <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> |
671 | </li> | 673 | </li> |
672 | @endif | 674 | @endif |
673 | @endif | 675 | @endif |
674 | 676 | ||
675 | @if ($cont->url_page == "admin/editor-seo") | 677 | @if ($cont->url_page == "admin/editor-seo") |
676 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 678 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
677 | (($cont->is_manager == 1) && ($is_manager == 1))) | 679 | (($cont->is_manager == 1) && ($is_manager == 1))) |
678 | <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 }}"> | 680 | <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 }}"> |
679 | <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> | 681 | <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> |
680 | </li> | 682 | </li> |
681 | @endif | 683 | @endif |
682 | @endif | 684 | @endif |
683 | 685 | ||
684 | @if ($cont->url_page == "admin/editor-pages") | 686 | @if ($cont->url_page == "admin/editor-pages") |
685 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 687 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
686 | (($cont->is_manager == 1) && ($is_manager == 1))) | 688 | (($cont->is_manager == 1) && ($is_manager == 1))) |
687 | <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 }}"> | 689 | <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 }}"> |
688 | <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> | 690 | <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> |
689 | </li> | 691 | </li> |
690 | @endif | 692 | @endif |
691 | @endif | 693 | @endif |
692 | 694 | ||
693 | @if ($cont->url_page == "admin/job-titles-main") | 695 | @if ($cont->url_page == "admin/job-titles-main") |
694 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 696 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
695 | (($cont->is_manager == 1) && ($is_manager == 1))) | 697 | (($cont->is_manager == 1) && ($is_manager == 1))) |
696 | <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 }}"> | 698 | <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 }}"> |
697 | <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> | 699 | <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> |
698 | </li> | 700 | </li> |
699 | @endif | 701 | @endif |
700 | @endif | 702 | @endif |
701 | 703 | ||
702 | @if ($cont->url_page == "admin/job-titles-main") | 704 | @if ($cont->url_page == "admin/job-titles-main") |
703 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 705 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
704 | (($cont->is_manager == 1) && ($is_manager == 1))) | 706 | (($cont->is_manager == 1) && ($is_manager == 1))) |
705 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.counters-main') ? 'dark:text-gray-100' : null }}"> | 707 | <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.counters-main') ? 'dark:text-gray-100' : null }}"> |
706 | <a class="w-full" href="{{ route('admin.counters-main') }}">Счетчики на главной</a> | 708 | <a class="w-full" href="{{ route('admin.counters-main') }}">Счетчики на главной</a> |
707 | </li> | 709 | </li> |
708 | @endif | 710 | @endif |
709 | @endif | 711 | @endif |
710 | 712 | ||
711 | @if ($cont->url_page == "admin/employers-main") | 713 | @if ($cont->url_page == "admin/employers-main") |
712 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 714 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
713 | (($cont->is_manager == 1) && ($is_manager == 1))) | 715 | (($cont->is_manager == 1) && ($is_manager == 1))) |
714 | <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 }}"> | 716 | <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 }}"> |
715 | <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> | 717 | <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> |
716 | </li> | 718 | </li> |
717 | @endif | 719 | @endif |
718 | @endif | 720 | @endif |
719 | 721 | ||
720 | @endforeach | 722 | @endforeach |
721 | </ul> | 723 | </ul> |
722 | </template> | 724 | </template> |
723 | </li> | 725 | </li> |
724 | </ul> | 726 | </ul> |
725 | 727 | ||
726 | <!--<div class="px-6 my-6"> | 728 | <!--<div class="px-6 my-6"> |
727 | <button | 729 | <button |
728 | 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" | 730 | 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" |
729 | > | 731 | > |
730 | Create account | 732 | Create account |
731 | <span class="ml-2" aria-hidden="true">+</span> | 733 | <span class="ml-2" aria-hidden="true">+</span> |
732 | </button> | 734 | </button> |
733 | </div>--> | 735 | </div>--> |
734 | </div> | 736 | </div> |
735 | </aside> | 737 | </aside> |
736 | <!-- Mobile sidebar --> | 738 | <!-- Mobile sidebar --> |
737 | <!-- Backdrop --> | 739 | <!-- Backdrop --> |
738 | <div | 740 | <div |
739 | x-show="isSideMenuOpen" | 741 | x-show="isSideMenuOpen" |
740 | x-transition:enter="transition ease-in-out duration-150" | 742 | x-transition:enter="transition ease-in-out duration-150" |
741 | x-transition:enter-start="opacity-0" | 743 | x-transition:enter-start="opacity-0" |
742 | x-transition:enter-end="opacity-100" | 744 | x-transition:enter-end="opacity-100" |
743 | x-transition:leave="transition ease-in-out duration-150" | 745 | x-transition:leave="transition ease-in-out duration-150" |
744 | x-transition:leave-start="opacity-100" | 746 | x-transition:leave-start="opacity-100" |
745 | x-transition:leave-end="opacity-0" | 747 | x-transition:leave-end="opacity-0" |
746 | class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center" | 748 | class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center" |
747 | ></div> | 749 | ></div> |
748 | <aside | 750 | <aside |
749 | 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" | 751 | 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" |
750 | x-show="isSideMenuOpen" | 752 | x-show="isSideMenuOpen" |
751 | x-transition:enter="transition ease-in-out duration-150" | 753 | x-transition:enter="transition ease-in-out duration-150" |
752 | x-transition:enter-start="opacity-0 transform -translate-x-20" | 754 | x-transition:enter-start="opacity-0 transform -translate-x-20" |
753 | x-transition:enter-end="opacity-100" | 755 | x-transition:enter-end="opacity-100" |
754 | x-transition:leave="transition ease-in-out duration-150" | 756 | x-transition:leave="transition ease-in-out duration-150" |
755 | x-transition:leave-start="opacity-100" | 757 | x-transition:leave-start="opacity-100" |
756 | x-transition:leave-end="opacity-0 transform -translate-x-20" | 758 | x-transition:leave-end="opacity-0 transform -translate-x-20" |
757 | @click.away="closeSideMenu" | 759 | @click.away="closeSideMenu" |
758 | @keydown.escape="closeSideMenu" | 760 | @keydown.escape="closeSideMenu" |
759 | > | 761 | > |
760 | <div class="py-4 text-gray-500 dark:text-gray-400"> | 762 | <div class="py-4 text-gray-500 dark:text-gray-400"> |
761 | <a | 763 | <a |
762 | class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" | 764 | class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" |
763 | href="{{ route('admin.index') }}" | 765 | href="{{ route('admin.index') }}" |
764 | > | 766 | > |
765 | Админка | 767 | Админка |
766 | </a> | 768 | </a> |
767 | <ul class="mt-6"> | 769 | <ul class="mt-6"> |
768 | <li class="relative px-6 py-3"> | 770 | <li class="relative px-6 py-3"> |
769 | <span | 771 | <span |
770 | class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" | 772 | class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" |
771 | aria-hidden="true" | 773 | aria-hidden="true" |
772 | ></span> | 774 | ></span> |
773 | <a | 775 | <a |
774 | 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') }}" | 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.index') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.index') }}" |
775 | > | 777 | > |
776 | <svg | 778 | <svg |
777 | class="w-5 h-5" | 779 | class="w-5 h-5" |
778 | aria-hidden="true" | 780 | aria-hidden="true" |
779 | fill="none" | 781 | fill="none" |
780 | stroke-linecap="round" | 782 | stroke-linecap="round" |
781 | stroke-linejoin="round" | 783 | stroke-linejoin="round" |
782 | stroke-width="2" | 784 | stroke-width="2" |
783 | viewBox="0 0 24 24" | 785 | viewBox="0 0 24 24" |
784 | stroke="currentColor" | 786 | stroke="currentColor" |
785 | > | 787 | > |
786 | <path | 788 | <path |
787 | 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" | 789 | 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" |
788 | ></path> | 790 | ></path> |
789 | </svg> | 791 | </svg> |
790 | <span class="ml-4">Главная страница</span> | 792 | <span class="ml-4">Главная страница</span> |
791 | </a> | 793 | </a> |
792 | </li> | 794 | </li> |
793 | </ul> | 795 | </ul> |
794 | <ul> | 796 | <ul> |
795 | @foreach ($contents as $cont) | 797 | @foreach ($contents as $cont) |
796 | @if ($cont->url_page == "admin/users") | 798 | @if ($cont->url_page == "admin/users") |
797 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 799 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
798 | (($cont->is_manager == 1) && ($is_manager == 1))) | 800 | (($cont->is_manager == 1) && ($is_manager == 1))) |
799 | <li class="relative px-6 py-3"> | 801 | <li class="relative px-6 py-3"> |
800 | <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') }}"> | 802 | <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') }}"> |
801 | <svg | 803 | <svg |
802 | class="w-5 h-5" | 804 | class="w-5 h-5" |
803 | aria-hidden="true" | 805 | aria-hidden="true" |
804 | fill="none" | 806 | fill="none" |
805 | stroke-linecap="round" | 807 | stroke-linecap="round" |
806 | stroke-linejoin="round" | 808 | stroke-linejoin="round" |
807 | stroke-width="2" | 809 | stroke-width="2" |
808 | viewBox="0 0 24 24" | 810 | viewBox="0 0 24 24" |
809 | stroke="currentColor" | 811 | stroke="currentColor" |
810 | > | 812 | > |
811 | <path | 813 | <path |
812 | 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" | 814 | 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" |
813 | ></path> | 815 | ></path> |
814 | </svg> | 816 | </svg> |
815 | <span class="ml-4">Пользователи</span> | 817 | <span class="ml-4">Пользователи</span> |
816 | </a> | 818 | </a> |
817 | </li> | 819 | </li> |
818 | @endif | 820 | @endif |
819 | @endif | 821 | @endif |
820 | 822 | ||
821 | @if ($cont->url_page == "admin/admin-users") | 823 | @if ($cont->url_page == "admin/admin-users") |
822 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 824 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
823 | (($cont->is_manager == 1) && ($is_manager == 1))) | 825 | (($cont->is_manager == 1) && ($is_manager == 1))) |
824 | <li class="relative px-6 py-3"> | 826 | <li class="relative px-6 py-3"> |
825 | <a | 827 | <a |
826 | 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') }}" | 828 | 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') }}" |
827 | > | 829 | > |
828 | <svg | 830 | <svg |
829 | class="w-5 h-5" | 831 | class="w-5 h-5" |
830 | aria-hidden="true" | 832 | aria-hidden="true" |
831 | fill="none" | 833 | fill="none" |
832 | stroke-linecap="round" | 834 | stroke-linecap="round" |
833 | stroke-linejoin="round" | 835 | stroke-linejoin="round" |
834 | stroke-width="2" | 836 | stroke-width="2" |
835 | viewBox="0 0 24 24" | 837 | viewBox="0 0 24 24" |
836 | stroke="currentColor" | 838 | stroke="currentColor" |
837 | > | 839 | > |
838 | <path | 840 | <path |
839 | 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" | 841 | 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" |
840 | ></path> | 842 | ></path> |
841 | </svg> | 843 | </svg> |
842 | <span class="ml-4">Администраторы</span> | 844 | <span class="ml-4">Администраторы</span> |
843 | </a> | 845 | </a> |
844 | </li> | 846 | </li> |
845 | @endif | 847 | @endif |
846 | @endif | 848 | @endif |
847 | 849 | ||
848 | @if ($cont->url_page == "admin/employers") | 850 | @if ($cont->url_page == "admin/employers") |
849 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 851 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
850 | (($cont->is_manager == 1) && ($is_manager == 1))) | 852 | (($cont->is_manager == 1) && ($is_manager == 1))) |
851 | <li class="relative px-6 py-3"> | 853 | <li class="relative px-6 py-3"> |
852 | <a | 854 | <a |
853 | 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') }}" | 855 | 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') }}" |
854 | > | 856 | > |
855 | <svg | 857 | <svg |
856 | class="w-5 h-5" | 858 | class="w-5 h-5" |
857 | aria-hidden="true" | 859 | aria-hidden="true" |
858 | fill="none" | 860 | fill="none" |
859 | stroke-linecap="round" | 861 | stroke-linecap="round" |
860 | stroke-linejoin="round" | 862 | stroke-linejoin="round" |
861 | stroke-width="2" | 863 | stroke-width="2" |
862 | viewBox="0 0 24 24" | 864 | viewBox="0 0 24 24" |
863 | stroke="currentColor" | 865 | stroke="currentColor" |
864 | > | 866 | > |
865 | <path | 867 | <path |
866 | 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" | 868 | 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" |
867 | ></path> | 869 | ></path> |
868 | </svg> | 870 | </svg> |
869 | <span class="ml-4">Работодатели</span> | 871 | <span class="ml-4">Работодатели</span> |
870 | </a> | 872 | </a> |
871 | </li> | 873 | </li> |
872 | @endif | 874 | @endif |
873 | @endif | 875 | @endif |
874 | 876 | ||
875 | @if ($cont->url_page == "admin/workers") | 877 | @if ($cont->url_page == "admin/workers") |
876 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 878 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
877 | (($cont->is_manager == 1) && ($is_manager == 1))) | 879 | (($cont->is_manager == 1) && ($is_manager == 1))) |
878 | <li class="relative px-6 py-3"> | 880 | <li class="relative px-6 py-3"> |
879 | <a | 881 | <a |
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.workers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.workers') }}" | 882 | 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') }}" |
881 | > | 883 | > |
882 | <svg | 884 | <svg |
883 | class="w-5 h-5" | 885 | class="w-5 h-5" |
884 | aria-hidden="true" | 886 | aria-hidden="true" |
885 | fill="none" | 887 | fill="none" |
886 | stroke-linecap="round" | 888 | stroke-linecap="round" |
887 | stroke-linejoin="round" | 889 | stroke-linejoin="round" |
888 | stroke-width="2" | 890 | stroke-width="2" |
889 | viewBox="0 0 24 24" | 891 | viewBox="0 0 24 24" |
890 | stroke="currentColor" | 892 | stroke="currentColor" |
891 | > | 893 | > |
892 | <path | 894 | <path |
893 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" | 895 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" |
894 | ></path> | 896 | ></path> |
895 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> | 897 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> |
896 | </svg> | 898 | </svg> |
897 | <span class="ml-4">Соискатели</span> | 899 | <span class="ml-4">Соискатели</span> |
898 | </a> | 900 | </a> |
899 | </li> | 901 | </li> |
900 | @endif | 902 | @endif |
901 | @endif | 903 | @endif |
902 | 904 | ||
903 | @if ($cont->url_page == "admin/ad-employers") | 905 | @if ($cont->url_page == "admin/ad-employers") |
904 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 906 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
905 | (($cont->is_manager == 1) && ($is_manager == 1))) | 907 | (($cont->is_manager == 1) && ($is_manager == 1))) |
906 | <li class="relative px-6 py-3"> | 908 | <li class="relative px-6 py-3"> |
907 | <a | 909 | <a |
908 | 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') }}" | 910 | 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') }}" |
909 | > | 911 | > |
910 | <svg | 912 | <svg |
911 | class="w-5 h-5" | 913 | class="w-5 h-5" |
912 | aria-hidden="true" | 914 | aria-hidden="true" |
913 | fill="none" | 915 | fill="none" |
914 | stroke-linecap="round" | 916 | stroke-linecap="round" |
915 | stroke-linejoin="round" | 917 | stroke-linejoin="round" |
916 | stroke-width="2" | 918 | stroke-width="2" |
917 | viewBox="0 0 24 24" | 919 | viewBox="0 0 24 24" |
918 | stroke="currentColor" | 920 | stroke="currentColor" |
919 | > | 921 | > |
920 | <path | 922 | <path |
921 | 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" | 923 | 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" |
922 | ></path> | 924 | ></path> |
923 | </svg> | 925 | </svg> |
924 | <span class="ml-4">Вакансии</span> | 926 | <span class="ml-4">Вакансии</span> |
925 | </a> | 927 | </a> |
926 | </li> | 928 | </li> |
927 | @endif | 929 | @endif |
928 | @endif | 930 | @endif |
929 | 931 | ||
930 | @if ($cont->url_page == "admin/messages") | 932 | @if ($cont->url_page == "admin/messages") |
931 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 933 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
932 | (($cont->is_manager == 1) && ($is_manager == 1))) | 934 | (($cont->is_manager == 1) && ($is_manager == 1))) |
933 | <li class="relative px-6 py-3"> | 935 | <li class="relative px-6 py-3"> |
934 | <a | 936 | <a |
935 | 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') }}" | 937 | 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') }}" |
936 | > | 938 | > |
937 | <svg | 939 | <svg |
938 | class="w-5 h-5" | 940 | class="w-5 h-5" |
939 | aria-hidden="true" | 941 | aria-hidden="true" |
940 | fill="none" | 942 | fill="none" |
941 | stroke-linecap="round" | 943 | stroke-linecap="round" |
942 | stroke-linejoin="round" | 944 | stroke-linejoin="round" |
943 | stroke-width="2" | 945 | stroke-width="2" |
944 | viewBox="0 0 24 24" | 946 | viewBox="0 0 24 24" |
945 | stroke="currentColor" | 947 | stroke="currentColor" |
946 | > | 948 | > |
947 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 949 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
948 | </svg> | 950 | </svg> |
949 | <span class="ml-4">Сообщения все</span> | 951 | <span class="ml-4">Сообщения все</span> |
950 | </a> | 952 | </a> |
951 | </li> | 953 | </li> |
952 | @endif | 954 | @endif |
953 | @endif | 955 | @endif |
954 | 956 | ||
955 | @if ($cont->url_page == "admin/admin-messages") | 957 | @if ($cont->url_page == "admin/admin-messages") |
956 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 958 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
957 | (($cont->is_manager == 1) && ($is_manager == 1))) | 959 | (($cont->is_manager == 1) && ($is_manager == 1))) |
958 | <li class="relative px-6 py-3"> | 960 | <li class="relative px-6 py-3"> |
959 | <a | 961 | <a |
960 | 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') }}" | 962 | 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') }}" |
961 | > | 963 | > |
962 | <svg | 964 | <svg |
963 | class="w-5 h-5" | 965 | class="w-5 h-5" |
964 | aria-hidden="true" | 966 | aria-hidden="true" |
965 | fill="none" | 967 | fill="none" |
966 | stroke-linecap="round" | 968 | stroke-linecap="round" |
967 | stroke-linejoin="round" | 969 | stroke-linejoin="round" |
968 | stroke-width="2" | 970 | stroke-width="2" |
969 | viewBox="0 0 24 24" | 971 | viewBox="0 0 24 24" |
970 | stroke="currentColor" | 972 | stroke="currentColor" |
971 | > | 973 | > |
972 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 974 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
973 | </svg> | 975 | </svg> |
974 | <span class="ml-4">Заявки на рассылку</span> | 976 | <span class="ml-4">Заявки на рассылку</span> |
975 | </a> | 977 | </a> |
976 | </li> | 978 | </li> |
977 | @endif | 979 | @endif |
978 | @endif | 980 | @endif |
979 | 981 | ||
980 | @if ($cont->url_page == "admin/groups") | 982 | @if ($cont->url_page == "admin/groups") |
981 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 983 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
982 | (($cont->is_manager == 1) && ($is_manager == 1))) | 984 | (($cont->is_manager == 1) && ($is_manager == 1))) |
983 | <li class="relative px-6 py-3"> | 985 | <li class="relative px-6 py-3"> |
984 | <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') }}"> | 986 | <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') }}"> |
985 | <svg | 987 | <svg |
986 | class="w-5 h-5" | 988 | class="w-5 h-5" |
987 | aria-hidden="true" | 989 | aria-hidden="true" |
988 | fill="none" | 990 | fill="none" |
989 | stroke-linecap="round" | 991 | stroke-linecap="round" |
990 | stroke-linejoin="round" | 992 | stroke-linejoin="round" |
991 | stroke-width="2" | 993 | stroke-width="2" |
992 | viewBox="0 0 24 24" | 994 | viewBox="0 0 24 24" |
993 | stroke="currentColor" | 995 | stroke="currentColor" |
994 | > | 996 | > |
995 | <path | 997 | <path |
996 | 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" | 998 | 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" |
997 | ></path> | 999 | ></path> |
998 | </svg> | 1000 | </svg> |
999 | <span class="ml-4">Группы пользователей</span> | 1001 | <span class="ml-4">Группы пользователей</span> |
1000 | </a> | 1002 | </a> |
1001 | </li> | 1003 | </li> |
1002 | @endif | 1004 | @endif |
1003 | @endif | 1005 | @endif |
1004 | 1006 | ||
1005 | @if ($cont->url_page == "admin/media") | 1007 | @if ($cont->url_page == "admin/media") |
1006 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1008 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1007 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1009 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1008 | <li class="relative px-6 py-3"> | 1010 | <li class="relative px-6 py-3"> |
1009 | <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') }}"> | 1011 | <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') }}"> |
1010 | <svg | 1012 | <svg |
1011 | class="w-5 h-5" | 1013 | class="w-5 h-5" |
1012 | aria-hidden="true" | 1014 | aria-hidden="true" |
1013 | fill="none" | 1015 | fill="none" |
1014 | stroke-linecap="round" | 1016 | stroke-linecap="round" |
1015 | stroke-linejoin="round" | 1017 | stroke-linejoin="round" |
1016 | stroke-width="2" | 1018 | stroke-width="2" |
1017 | viewBox="0 0 24 24" | 1019 | viewBox="0 0 24 24" |
1018 | stroke="currentColor" | 1020 | stroke="currentColor" |
1019 | > | 1021 | > |
1020 | <path | 1022 | <path |
1021 | 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" | 1023 | 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" |
1022 | ></path> | 1024 | ></path> |
1023 | </svg> | 1025 | </svg> |
1024 | <span class="ml-4">Медиа</span> | 1026 | <span class="ml-4">Медиа</span> |
1025 | </a> | 1027 | </a> |
1026 | </li> | 1028 | </li> |
1027 | @endif | 1029 | @endif |
1028 | @endif | 1030 | @endif |
1029 | 1031 | ||
1030 | @if ($cont->url_page == "admin/roles") | 1032 | @if ($cont->url_page == "admin/roles") |
1031 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1033 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1032 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1034 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1033 | 1035 | ||
1034 | <li class="relative px-6 py-3"> | 1036 | <li class="relative px-6 py-3"> |
1035 | <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') }}"> | 1037 | <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') }}"> |
1036 | <svg | 1038 | <svg |
1037 | class="w-5 h-5" | 1039 | class="w-5 h-5" |
1038 | aria-hidden="true" | 1040 | aria-hidden="true" |
1039 | fill="none" | 1041 | fill="none" |
1040 | stroke-linecap="round" | 1042 | stroke-linecap="round" |
1041 | stroke-linejoin="round" | 1043 | stroke-linejoin="round" |
1042 | stroke-width="2" | 1044 | stroke-width="2" |
1043 | viewBox="0 0 24 24" | 1045 | viewBox="0 0 24 24" |
1044 | stroke="currentColor" | 1046 | stroke="currentColor" |
1045 | > | 1047 | > |
1046 | <path | 1048 | <path |
1047 | 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" | 1049 | 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" |
1048 | ></path> | 1050 | ></path> |
1049 | </svg> | 1051 | </svg> |
1050 | <span class="ml-4">Роли пользователей</span> | 1052 | <span class="ml-4">Роли пользователей</span> |
1051 | </a> | 1053 | </a> |
1052 | </li> | 1054 | </li> |
1053 | @endif | 1055 | @endif |
1054 | @endif | 1056 | @endif |
1055 | 1057 | ||
1056 | @if ($cont->url_page == "admin/basedata") | 1058 | @if ($cont->url_page == "admin/basedata") |
1057 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1059 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1058 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1060 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1059 | <li class="relative px-6 py-3"> | 1061 | <li class="relative px-6 py-3"> |
1060 | <a | 1062 | <a |
1061 | 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') }}" | 1063 | 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') }}" |
1062 | > | 1064 | > |
1063 | <svg | 1065 | <svg |
1064 | class="w-5 h-5" | 1066 | class="w-5 h-5" |
1065 | aria-hidden="true" | 1067 | aria-hidden="true" |
1066 | fill="none" | 1068 | fill="none" |
1067 | stroke-linecap="round" | 1069 | stroke-linecap="round" |
1068 | stroke-linejoin="round" | 1070 | stroke-linejoin="round" |
1069 | stroke-width="2" | 1071 | stroke-width="2" |
1070 | viewBox="0 0 24 24" | 1072 | viewBox="0 0 24 24" |
1071 | stroke="currentColor" | 1073 | stroke="currentColor" |
1072 | > | 1074 | > |
1073 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 1075 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
1074 | </svg> | 1076 | </svg> |
1075 | <span class="ml-4">Базы данных</span> | 1077 | <span class="ml-4">Базы данных</span> |
1076 | </a> | 1078 | </a> |
1077 | </li> | 1079 | </li> |
1078 | @endif | 1080 | @endif |
1079 | @endif | 1081 | @endif |
1080 | 1082 | ||
1081 | @if ($cont->url_page == "admin/education") | 1083 | @if ($cont->url_page == "admin/education") |
1082 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1084 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1083 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1085 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1084 | <li class="relative px-6 py-3"> | 1086 | <li class="relative px-6 py-3"> |
1085 | <a | 1087 | <a |
1086 | 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') }}" | 1088 | 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') }}" |
1087 | > | 1089 | > |
1088 | <svg | 1090 | <svg |
1089 | class="w-5 h-5" | 1091 | class="w-5 h-5" |
1090 | aria-hidden="true" | 1092 | aria-hidden="true" |
1091 | fill="none" | 1093 | fill="none" |
1092 | stroke-linecap="round" | 1094 | stroke-linecap="round" |
1093 | stroke-linejoin="round" | 1095 | stroke-linejoin="round" |
1094 | stroke-width="2" | 1096 | stroke-width="2" |
1095 | viewBox="0 0 24 24" | 1097 | viewBox="0 0 24 24" |
1096 | stroke="currentColor" | 1098 | stroke="currentColor" |
1097 | > | 1099 | > |
1098 | <path | 1100 | <path |
1099 | 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" | 1101 | 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" |
1100 | ></path> | 1102 | ></path> |
1101 | </svg> | 1103 | </svg> |
1102 | <span class="ml-4">Учебн.заведения</span> | 1104 | <span class="ml-4">Учебн.заведения</span> |
1103 | </a> | 1105 | </a> |
1104 | </li> | 1106 | </li> |
1105 | @endif | 1107 | @endif |
1106 | @endif | 1108 | @endif |
1107 | 1109 | ||
1108 | @if ($cont->url_page == "admin/statics") | 1110 | @if ($cont->url_page == "admin/statics") |
1109 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1111 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1110 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1112 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1111 | <li class="relative px-6 py-3"> | 1113 | <li class="relative px-6 py-3"> |
1112 | <a | 1114 | <a |
1113 | 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') }}" | 1115 | 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') }}" |
1114 | > | 1116 | > |
1115 | <svg | 1117 | <svg |
1116 | class="w-5 h-5" | 1118 | class="w-5 h-5" |
1117 | aria-hidden="true" | 1119 | aria-hidden="true" |
1118 | fill="none" | 1120 | fill="none" |
1119 | stroke-linecap="round" | 1121 | stroke-linecap="round" |
1120 | stroke-linejoin="round" | 1122 | stroke-linejoin="round" |
1121 | stroke-width="2" | 1123 | stroke-width="2" |
1122 | viewBox="0 0 24 24" | 1124 | viewBox="0 0 24 24" |
1123 | stroke="currentColor" | 1125 | stroke="currentColor" |
1124 | > | 1126 | > |
1125 | <path | 1127 | <path |
1126 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" | 1128 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" |
1127 | ></path> | 1129 | ></path> |
1128 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> | 1130 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> |
1129 | </svg> | 1131 | </svg> |
1130 | <span class="ml-4">Статистика</span> | 1132 | <span class="ml-4">Статистика</span> |
1131 | </a> | 1133 | </a> |
1132 | </li> | 1134 | </li> |
1133 | @endif | 1135 | @endif |
1134 | @endif | 1136 | @endif |
1135 | 1137 | ||
1136 | @if ($cont->url_page == "admin/messages") | 1138 | @if ($cont->url_page == "admin/messages") |
1137 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1139 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1138 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1140 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1139 | <li class="relative px-6 py-3"> | 1141 | <li class="relative px-6 py-3"> |
1140 | <a | 1142 | <a |
1141 | 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') }}" | 1143 | 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') }}" |
1142 | > | 1144 | > |
1143 | <svg | 1145 | <svg |
1144 | class="w-5 h-5" | 1146 | class="w-5 h-5" |
1145 | aria-hidden="true" | 1147 | aria-hidden="true" |
1146 | fill="none" | 1148 | fill="none" |
1147 | stroke-linecap="round" | 1149 | stroke-linecap="round" |
1148 | stroke-linejoin="round" | 1150 | stroke-linejoin="round" |
1149 | stroke-width="2" | 1151 | stroke-width="2" |
1150 | viewBox="0 0 24 24" | 1152 | viewBox="0 0 24 24" |
1151 | stroke="currentColor" | 1153 | stroke="currentColor" |
1152 | > | 1154 | > |
1153 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 1155 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
1154 | </svg> | 1156 | </svg> |
1155 | <span class="ml-4">Сообщения все</span> | 1157 | <span class="ml-4">Сообщения все</span> |
1156 | </a> | 1158 | </a> |
1157 | </li> | 1159 | </li> |
1158 | @endif | 1160 | @endif |
1159 | @endif | 1161 | @endif |
1160 | 1162 | ||
1161 | @if ($cont->url_page == "admin/reclames") | 1163 | @if ($cont->url_page == "admin/reclames") |
1162 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1164 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1163 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1165 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1164 | <li class="relative px-6 py-3"> | 1166 | <li class="relative px-6 py-3"> |
1165 | <a | 1167 | <a |
1166 | 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') }}" | 1168 | 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') }}" |
1167 | > | 1169 | > |
1168 | <svg | 1170 | <svg |
1169 | class="w-5 h-5" | 1171 | class="w-5 h-5" |
1170 | aria-hidden="true" | 1172 | aria-hidden="true" |
1171 | fill="none" | 1173 | fill="none" |
1172 | stroke-linecap="round" | 1174 | stroke-linecap="round" |
1173 | stroke-linejoin="round" | 1175 | stroke-linejoin="round" |
1174 | stroke-width="2" | 1176 | stroke-width="2" |
1175 | viewBox="0 0 24 24" | 1177 | viewBox="0 0 24 24" |
1176 | stroke="currentColor" | 1178 | stroke="currentColor" |
1177 | > | 1179 | > |
1178 | <path | 1180 | <path |
1179 | 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" | 1181 | 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" |
1180 | ></path> | 1182 | ></path> |
1181 | </svg> | 1183 | </svg> |
1182 | <span class="ml-4">Реклама</span> | 1184 | <span class="ml-4">Реклама</span> |
1183 | </a> | 1185 | </a> |
1184 | </li> | 1186 | </li> |
1185 | @endif | 1187 | @endif |
1186 | @endif | 1188 | @endif |
1187 | @endforeach | 1189 | @endforeach |
1188 | 1190 | ||
1189 | <!-- Справочники --> | 1191 | <!-- Справочники --> |
1190 | <li class="relative px-6 py-3" x-data="{ open2: false }"> | 1192 | <li class="relative px-6 py-3" x-data="{ open2: false }"> |
1191 | <button | 1193 | <button |
1192 | 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" | 1194 | 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" |
1193 | @click="open2=!open2" | 1195 | @click="open2=!open2" |
1194 | aria-haspopup="true"> | 1196 | aria-haspopup="true"> |
1195 | <span class="inline-flex items-center"> | 1197 | <span class="inline-flex items-center"> |
1196 | <svg | 1198 | <svg |
1197 | class="w-5 h-5" | 1199 | class="w-5 h-5" |
1198 | aria-hidden="true" | 1200 | aria-hidden="true" |
1199 | fill="none" | 1201 | fill="none" |
1200 | stroke-linecap="round" | 1202 | stroke-linecap="round" |
1201 | stroke-linejoin="round" | 1203 | stroke-linejoin="round" |
1202 | stroke-width="2" | 1204 | stroke-width="2" |
1203 | viewBox="0 0 24 24" | 1205 | viewBox="0 0 24 24" |
1204 | stroke="currentColor"> | 1206 | stroke="currentColor"> |
1205 | <path | 1207 | <path |
1206 | 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" | 1208 | 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" |
1207 | ></path> | 1209 | ></path> |
1208 | </svg> | 1210 | </svg> |
1209 | <span class="ml-4">Справочники</span> | 1211 | <span class="ml-4">Справочники</span> |
1210 | </span> | 1212 | </span> |
1211 | <svg | 1213 | <svg |
1212 | class="w-4 h-4" | 1214 | class="w-4 h-4" |
1213 | aria-hidden="true" | 1215 | aria-hidden="true" |
1214 | fill="currentColor" | 1216 | fill="currentColor" |
1215 | viewBox="0 0 20 20" | 1217 | viewBox="0 0 20 20" |
1216 | > | 1218 | > |
1217 | <path | 1219 | <path |
1218 | fill-rule="evenodd" | 1220 | fill-rule="evenodd" |
1219 | 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" | 1221 | 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" |
1220 | clip-rule="evenodd" | 1222 | clip-rule="evenodd" |
1221 | ></path> | 1223 | ></path> |
1222 | </svg> | 1224 | </svg> |
1223 | </button> | 1225 | </button> |
1224 | <template x-if="open2"> | 1226 | <template x-if="open2"> |
1225 | <ul | 1227 | <ul |
1226 | x-transition:enter="transition-all ease-in-out duration-300" | 1228 | x-transition:enter="transition-all ease-in-out duration-300" |
1227 | x-transition:enter-start="opacity-25 max-h-0" | 1229 | x-transition:enter-start="opacity-25 max-h-0" |
1228 | x-transition:enter-end="opacity-100 max-h-xl" | 1230 | x-transition:enter-end="opacity-100 max-h-xl" |
1229 | x-transition:leave="transition-all ease-in-out duration-300" | 1231 | x-transition:leave="transition-all ease-in-out duration-300" |
1230 | x-transition:leave-start="opacity-100 max-h-xl" | 1232 | x-transition:leave-start="opacity-100 max-h-xl" |
1231 | x-transition:leave-end="opacity-0 max-h-0" | 1233 | x-transition:leave-end="opacity-0 max-h-0" |
1232 | 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" | 1234 | 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" |
1233 | aria-label="submenu" | 1235 | aria-label="submenu" |
1234 | > | 1236 | > |
1235 | @foreach ($contents as $cont) | 1237 | @foreach ($contents as $cont) |
1236 | @if ($cont->url_page == "admin/job-titles") | 1238 | @if ($cont->url_page == "admin/job-titles") |
1237 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1239 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1238 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1240 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1239 | <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 }}"> | 1241 | <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 }}"> |
1240 | <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a> | 1242 | <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a> |
1241 | </li> | 1243 | </li> |
1242 | @endif | 1244 | @endif |
1243 | @endif | 1245 | @endif |
1244 | 1246 | ||
1245 | @if ($cont->url_page == "admin/categories") | 1247 | @if ($cont->url_page == "admin/categories") |
1246 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1248 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1247 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1249 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1248 | <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 }}"> | 1250 | <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 }}"> |
1249 | <a class="w-full" href="{{ route('admin.categories.index') }}">Категории вакансий</a> | 1251 | <a class="w-full" href="{{ route('admin.categories.index') }}">Категории вакансий</a> |
1250 | </li> | 1252 | </li> |
1251 | @endif | 1253 | @endif |
1252 | @endif | 1254 | @endif |
1253 | 1255 | ||
1254 | @if ($cont->url_page == "admin/category-emp") | 1256 | @if ($cont->url_page == "admin/category-emp") |
1255 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1257 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1256 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1258 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1257 | <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 }}"> | 1259 | <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 }}"> |
1258 | <a class="w-full" href="{{ route('admin.category-emp.index') }}">Категории работодателей</a> | 1260 | <a class="w-full" href="{{ route('admin.category-emp.index') }}">Категории работодателей</a> |
1259 | </li> | 1261 | </li> |
1260 | @endif | 1262 | @endif |
1261 | @endif | 1263 | @endif |
1262 | 1264 | ||
1263 | @if ($cont->url_page == "admin/infobloks") | 1265 | @if ($cont->url_page == "admin/infobloks") |
1264 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1266 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1265 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1267 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1266 | <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 }}"> | 1268 | <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 }}"> |
1267 | <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a> | 1269 | <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a> |
1268 | </li> | 1270 | </li> |
1269 | @endif | 1271 | @endif |
1270 | @endif | 1272 | @endif |
1271 | 1273 | ||
1272 | @if ($cont->url_page == "admin/position") | 1274 | @if ($cont->url_page == "admin/position") |
1273 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1275 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1274 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1276 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1275 | <!--<li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.position') ? 'dark:text-gray-100' : null }}"> | 1277 | <!--<li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.position') ? 'dark:text-gray-100' : null }}"> |
1276 | <a class="w-full" href=" route('admin.position') }}">Позиция</a> | 1278 | <a class="w-full" href=" route('admin.position') }}">Позиция</a> |
1277 | </li>--> | 1279 | </li>--> |
1278 | @endif | 1280 | @endif |
1279 | @endif | 1281 | @endif |
1280 | 1282 | ||
1281 | @endforeach | 1283 | @endforeach |
1282 | </ul> | 1284 | </ul> |
1283 | </template> | 1285 | </template> |
1284 | </li> | 1286 | </li> |
1285 | 1287 | ||
1286 | <!-- Редактор --> | 1288 | <!-- Редактор --> |
1287 | <li class="relative px-6 py-3"> | 1289 | <li class="relative px-6 py-3"> |
1288 | <button | 1290 | <button |
1289 | 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" | 1291 | 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" |
1290 | @click="togglePagesMenu" | 1292 | @click="togglePagesMenu" |
1291 | aria-haspopup="true" | 1293 | aria-haspopup="true" |
1292 | > | 1294 | > |
1293 | <span class="inline-flex items-center"> | 1295 | <span class="inline-flex items-center"> |
1294 | <svg | 1296 | <svg |
1295 | class="w-5 h-5" | 1297 | class="w-5 h-5" |
1296 | aria-hidden="true" | 1298 | aria-hidden="true" |
1297 | fill="none" | 1299 | fill="none" |
1298 | stroke-linecap="round" | 1300 | stroke-linecap="round" |
1299 | stroke-linejoin="round" | 1301 | stroke-linejoin="round" |
1300 | stroke-width="2" | 1302 | stroke-width="2" |
1301 | viewBox="0 0 24 24" | 1303 | viewBox="0 0 24 24" |
1302 | stroke="currentColor" | 1304 | stroke="currentColor" |
1303 | > | 1305 | > |
1304 | <path | 1306 | <path |
1305 | 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" | 1307 | 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" |
1306 | ></path> | 1308 | ></path> |
1307 | </svg> | 1309 | </svg> |
1308 | <span class="ml-4">Редактор</span> | 1310 | <span class="ml-4">Редактор</span> |
1309 | </span> | 1311 | </span> |
1310 | <svg | 1312 | <svg |
1311 | class="w-4 h-4" | 1313 | class="w-4 h-4" |
1312 | aria-hidden="true" | 1314 | aria-hidden="true" |
1313 | fill="currentColor" | 1315 | fill="currentColor" |
1314 | viewBox="0 0 20 20" | 1316 | viewBox="0 0 20 20" |
1315 | > | 1317 | > |
1316 | <path | 1318 | <path |
1317 | fill-rule="evenodd" | 1319 | fill-rule="evenodd" |
1318 | 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" | 1320 | 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" |
1319 | clip-rule="evenodd" | 1321 | clip-rule="evenodd" |
1320 | ></path> | 1322 | ></path> |
1321 | </svg> | 1323 | </svg> |
1322 | </button> | 1324 | </button> |
1323 | <template x-if="isPagesMenuOpen"> | 1325 | <template x-if="isPagesMenuOpen"> |
1324 | <ul | 1326 | <ul |
1325 | x-transition:enter="transition-all ease-in-out duration-300" | 1327 | x-transition:enter="transition-all ease-in-out duration-300" |
1326 | x-transition:enter-start="opacity-25 max-h-0" | 1328 | x-transition:enter-start="opacity-25 max-h-0" |
1327 | x-transition:enter-end="opacity-100 max-h-xl" | 1329 | x-transition:enter-end="opacity-100 max-h-xl" |
1328 | x-transition:leave="transition-all ease-in-out duration-300" | 1330 | x-transition:leave="transition-all ease-in-out duration-300" |
1329 | x-transition:leave-start="opacity-100 max-h-xl" | 1331 | x-transition:leave-start="opacity-100 max-h-xl" |
1330 | x-transition:leave-end="opacity-0 max-h-0" | 1332 | x-transition:leave-end="opacity-0 max-h-0" |
1331 | 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" | 1333 | 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" |
1332 | aria-label="submenu" | 1334 | aria-label="submenu" |
1333 | > | 1335 | > |
1334 | @foreach ($contents as $cont) | 1336 | @foreach ($contents as $cont) |
1335 | @if ($cont->url_page == "admin/editor-site") | 1337 | @if ($cont->url_page == "admin/editor-site") |
1336 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1338 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1337 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1339 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1338 | <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 }}"> | 1340 | <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 }}"> |
1339 | <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> | 1341 | <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> |
1340 | </li> | 1342 | </li> |
1341 | @endif | 1343 | @endif |
1342 | @endif | 1344 | @endif |
1343 | 1345 | ||
1344 | @if ($cont->url_page == "admin/edit-blocks") | 1346 | @if ($cont->url_page == "admin/edit-blocks") |
1345 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1347 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1346 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1348 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1347 | <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 }}"> | 1349 | <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 }}"> |
1348 | <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> | 1350 | <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> |
1349 | </li> | 1351 | </li> |
1350 | @endif | 1352 | @endif |
1351 | @endif | 1353 | @endif |
1352 | 1354 | ||
1353 | @if ($cont->url_page == "admin/editor-seo") | 1355 | @if ($cont->url_page == "admin/editor-seo") |
1354 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1356 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1355 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1357 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1356 | <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 }}"> | 1358 | <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 }}"> |
1357 | <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> | 1359 | <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> |
1358 | </li> | 1360 | </li> |
1359 | @endif | 1361 | @endif |
1360 | @endif | 1362 | @endif |
1361 | 1363 | ||
1362 | @if ($cont->url_page == "admin/editor-pages") | 1364 | @if ($cont->url_page == "admin/editor-pages") |
1363 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1365 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1364 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1366 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1365 | <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 }}"> | 1367 | <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 }}"> |
1366 | <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> | 1368 | <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> |
1367 | </li> | 1369 | </li> |
1368 | @endif | 1370 | @endif |
1369 | @endif | 1371 | @endif |
1370 | 1372 | ||
1371 | @if ($cont->url_page == "admin/job-titles-main") | 1373 | @if ($cont->url_page == "admin/job-titles-main") |
1372 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1374 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1373 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1375 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1374 | <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 }}"> | 1376 | <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 }}"> |
1375 | <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> | 1377 | <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> |
1376 | </li> | 1378 | </li> |
1377 | @endif | 1379 | @endif |
1378 | @endif | 1380 | @endif |
1379 | 1381 | ||
1380 | @if ($cont->url_page == "admin/employers-main") | 1382 | @if ($cont->url_page == "admin/employers-main") |
1381 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1383 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1382 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1384 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1383 | <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 }}"> | 1385 | <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 }}"> |
1384 | <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> | 1386 | <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> |
1385 | </li> | 1387 | </li> |
1386 | @endif | 1388 | @endif |
1387 | @endif | 1389 | @endif |
1388 | 1390 | ||
1389 | @endforeach | 1391 | @endforeach |
1390 | </ul> | 1392 | </ul> |
1391 | </template> | 1393 | </template> |
1392 | </li> | 1394 | </li> |
1393 | </ul> | 1395 | </ul> |
1394 | <!--<div class="px-6 my-6"> | 1396 | <!--<div class="px-6 my-6"> |
1395 | <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"> | 1397 | <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"> |
1396 | Create account | 1398 | Create account |
1397 | <span class="ml-2" aria-hidden="true">+</span> | 1399 | <span class="ml-2" aria-hidden="true">+</span> |
1398 | </button> | 1400 | </button> |
1399 | </div>--> | 1401 | </div>--> |
1400 | </div> | 1402 | </div> |
1401 | </aside> | 1403 | </aside> |
1402 | <div class="flex flex-col flex-1 w-full"> | 1404 | <div class="flex flex-col flex-1 w-full"> |
1403 | <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800"> | 1405 | <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800"> |
1404 | <div | 1406 | <div |
1405 | class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300" | 1407 | class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300" |
1406 | > | 1408 | > |
1407 | <!-- Mobile hamburger --> | 1409 | <!-- Mobile hamburger --> |
1408 | <button | 1410 | <button |
1409 | class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple" | 1411 | class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple" |
1410 | @click="toggleSideMenu" | 1412 | @click="toggleSideMenu" |
1411 | aria-label="Menu" | 1413 | aria-label="Menu" |
1412 | > | 1414 | > |
1413 | <svg | 1415 | <svg |
1414 | class="w-6 h-6" | 1416 | class="w-6 h-6" |
1415 | aria-hidden="true" | 1417 | aria-hidden="true" |
1416 | fill="currentColor" | 1418 | fill="currentColor" |
1417 | viewBox="0 0 20 20" | 1419 | viewBox="0 0 20 20" |
1418 | > | 1420 | > |
1419 | <path | 1421 | <path |
1420 | fill-rule="evenodd" | 1422 | fill-rule="evenodd" |
1421 | 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" | 1423 | 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" |
1422 | clip-rule="evenodd" | 1424 | clip-rule="evenodd" |
1423 | ></path> | 1425 | ></path> |
1424 | </svg> | 1426 | </svg> |
1425 | </button> | 1427 | </button> |
1426 | <!-- Search input --> | 1428 | <!-- Search input --> |
1427 | <div class="flex justify-center flex-1 lg:mr-32"> | 1429 | <div class="flex justify-center flex-1 lg:mr-32"> |
1428 | <div | 1430 | <div |
1429 | class="relative w-full max-w-xl mr-6 focus-within:text-purple-500" | 1431 | class="relative w-full max-w-xl mr-6 focus-within:text-purple-500" |
1430 | > | 1432 | > |
1431 | 1433 | ||
1432 | @yield('search') | 1434 | @yield('search') |
1433 | </div> | 1435 | </div> |
1434 | </div> | 1436 | </div> |
1435 | <ul class="flex items-center flex-shrink-0 space-x-6"> | 1437 | <ul class="flex items-center flex-shrink-0 space-x-6"> |
1436 | <!-- Theme toggler --> | 1438 | <!-- Theme toggler --> |
1437 | <li class="flex"> | 1439 | <li class="flex"> |
1438 | <button | 1440 | <button |
1439 | class="rounded-md focus:outline-none focus:shadow-outline-purple" | 1441 | class="rounded-md focus:outline-none focus:shadow-outline-purple" |
1440 | @click="toggleTheme" | 1442 | @click="toggleTheme" |
1441 | aria-label="Toggle color mode" | 1443 | aria-label="Toggle color mode" |
1442 | > | 1444 | > |
1443 | <template x-if="!dark"> | 1445 | <template x-if="!dark"> |
1444 | <svg | 1446 | <svg |
1445 | class="w-5 h-5" | 1447 | class="w-5 h-5" |
1446 | aria-hidden="true" | 1448 | aria-hidden="true" |
1447 | fill="currentColor" | 1449 | fill="currentColor" |
1448 | viewBox="0 0 20 20" | 1450 | viewBox="0 0 20 20" |
1449 | > | 1451 | > |
1450 | <path | 1452 | <path |
1451 | d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z" | 1453 | d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z" |
1452 | ></path> | 1454 | ></path> |
1453 | </svg> | 1455 | </svg> |
1454 | </template> | 1456 | </template> |
1455 | <template x-if="dark"> | 1457 | <template x-if="dark"> |
1456 | <svg | 1458 | <svg |
1457 | class="w-5 h-5" | 1459 | class="w-5 h-5" |
1458 | aria-hidden="true" | 1460 | aria-hidden="true" |
1459 | fill="currentColor" | 1461 | fill="currentColor" |
1460 | viewBox="0 0 20 20" | 1462 | viewBox="0 0 20 20" |
1461 | > | 1463 | > |
1462 | <path | 1464 | <path |
1463 | fill-rule="evenodd" | 1465 | fill-rule="evenodd" |
1464 | 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" | 1466 | 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" |
1465 | clip-rule="evenodd" | 1467 | clip-rule="evenodd" |
1466 | ></path> | 1468 | ></path> |
1467 | </svg> | 1469 | </svg> |
1468 | </template> | 1470 | </template> |
1469 | </button> | 1471 | </button> |
1470 | </li> | 1472 | </li> |
1471 | <!-- Notifications menu --> | 1473 | <!-- Notifications menu --> |
1472 | <li class="relative"> | 1474 | <li class="relative"> |
1473 | <button | 1475 | <button |
1474 | class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple" | 1476 | class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple" |
1475 | @click="toggleNotificationsMenu" | 1477 | @click="toggleNotificationsMenu" |
1476 | @keydown.escape="closeNotificationsMenu" | 1478 | @keydown.escape="closeNotificationsMenu" |
1477 | aria-label="Notifications" | 1479 | aria-label="Notifications" |
1478 | aria-haspopup="true" | 1480 | aria-haspopup="true" |
1479 | > | 1481 | > |
1480 | <svg | 1482 | <svg |
1481 | class="w-5 h-5" | 1483 | class="w-5 h-5" |
1482 | aria-hidden="true" | 1484 | aria-hidden="true" |
1483 | fill="currentColor" | 1485 | fill="currentColor" |
1484 | viewBox="0 0 20 20" | 1486 | viewBox="0 0 20 20" |
1485 | > | 1487 | > |
1486 | <path | 1488 | <path |
1487 | 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" | 1489 | 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" |
1488 | ></path> | 1490 | ></path> |
1489 | </svg> | 1491 | </svg> |
1490 | <!-- Notification badge --> | 1492 | <!-- Notification badge --> |
1491 | <span | 1493 | <span |
1492 | aria-hidden="true" | 1494 | aria-hidden="true" |
1493 | 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" | 1495 | 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" |
1494 | ></span> | 1496 | ></span> |
1495 | </button> | 1497 | </button> |
1496 | <template x-if="isNotificationsMenuOpen"> | 1498 | <template x-if="isNotificationsMenuOpen"> |
1497 | <ul | 1499 | <ul |
1498 | x-transition:leave="transition ease-in duration-150" | 1500 | x-transition:leave="transition ease-in duration-150" |
1499 | x-transition:leave-start="opacity-100" | 1501 | x-transition:leave-start="opacity-100" |
1500 | x-transition:leave-end="opacity-0" | 1502 | x-transition:leave-end="opacity-0" |
1501 | @click.away="closeNotificationsMenu" | 1503 | @click.away="closeNotificationsMenu" |
1502 | @keydown.escape="closeNotificationsMenu" | 1504 | @keydown.escape="closeNotificationsMenu" |
1503 | 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" | 1505 | 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" |
1504 | > | 1506 | > |
1505 | <li class="flex"> | 1507 | <li class="flex"> |
1506 | <a | 1508 | <a |
1507 | 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" | 1509 | 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" |
1508 | href="{{ route('admin.admin-messages') }}" | 1510 | href="{{ route('admin.admin-messages') }}" |
1509 | > | 1511 | > |
1510 | <span>Сообщения</span> | 1512 | <span>Сообщения</span> |
1511 | @if($MsgCount > 0) | 1513 | @if($MsgCount > 0) |
1512 | <span | 1514 | <span |
1513 | 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" | 1515 | 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" |
1514 | > | 1516 | > |
1515 | 1517 | ||
1516 | {{ $MsgCount }} | 1518 | {{ $MsgCount }} |
1517 | </span> | 1519 | </span> |
1518 | @endif | 1520 | @endif |
1519 | </a> | 1521 | </a> |
1520 | </li> | 1522 | </li> |
1521 | <!--<li class="flex"> | 1523 | <!--<li class="flex"> |
1522 | <a | 1524 | <a |
1523 | 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" | 1525 | 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" |
1524 | href="#" | 1526 | href="#" |
1525 | > | 1527 | > |
1526 | <span>Логи</span> | 1528 | <span>Логи</span> |
1527 | </a> | 1529 | </a> |
1528 | </li>--> | 1530 | </li>--> |
1529 | </ul> | 1531 | </ul> |
1530 | </template> | 1532 | </template> |
1531 | </li> | 1533 | </li> |
1532 | <!-- Profile menu --> | 1534 | <!-- Profile menu --> |
1533 | <li class="relative"> | 1535 | <li class="relative"> |
1534 | <button | 1536 | <button |
1535 | class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none" | 1537 | class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none" |
1536 | @click="toggleProfileMenu" | 1538 | @click="toggleProfileMenu" |
1537 | @keydown.escape="closeProfileMenu" | 1539 | @keydown.escape="closeProfileMenu" |
1538 | aria-label="Account" | 1540 | aria-label="Account" |
1539 | aria-haspopup="true" | 1541 | aria-haspopup="true" |
1540 | > | 1542 | > |
1541 | <img | 1543 | <img |
1542 | class="object-cover w-8 h-8 rounded-full" | 1544 | class="object-cover w-8 h-8 rounded-full" |
1543 | src="{{ asset('assets/img/profile.jpg') }}" | 1545 | src="{{ asset('assets/img/profile.jpg') }}" |
1544 | alt="" | 1546 | alt="" |
1545 | aria-hidden="true" | 1547 | aria-hidden="true" |
1546 | /> | 1548 | /> |
1547 | </button> | 1549 | </button> |
1548 | <template x-if="isProfileMenuOpen"> | 1550 | <template x-if="isProfileMenuOpen"> |
1549 | <ul | 1551 | <ul |
1550 | x-transition:leave="transition ease-in duration-150" | 1552 | x-transition:leave="transition ease-in duration-150" |
1551 | x-transition:leave-start="opacity-100" | 1553 | x-transition:leave-start="opacity-100" |
1552 | x-transition:leave-end="opacity-0" | 1554 | x-transition:leave-end="opacity-0" |
1553 | @click.away="closeProfileMenu" | 1555 | @click.away="closeProfileMenu" |
1554 | @keydown.escape="closeProfileMenu" | 1556 | @keydown.escape="closeProfileMenu" |
1555 | 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" | 1557 | 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" |
1556 | aria-label="submenu" | 1558 | aria-label="submenu" |
1557 | > | 1559 | > |
1558 | <li class="flex"> | 1560 | <li class="flex"> |
1559 | <a | 1561 | <a |
1560 | 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" | 1562 | 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" |
1561 | href="{{ route('admin.profile') }}" | 1563 | href="{{ route('admin.profile') }}" |
1562 | > | 1564 | > |
1563 | <svg | 1565 | <svg |
1564 | class="w-4 h-4 mr-3" | 1566 | class="w-4 h-4 mr-3" |
1565 | aria-hidden="true" | 1567 | aria-hidden="true" |
1566 | fill="none" | 1568 | fill="none" |
1567 | stroke-linecap="round" | 1569 | stroke-linecap="round" |
1568 | stroke-linejoin="round" | 1570 | stroke-linejoin="round" |
1569 | stroke-width="2" | 1571 | stroke-width="2" |
1570 | viewBox="0 0 24 24" | 1572 | viewBox="0 0 24 24" |
1571 | stroke="currentColor" | 1573 | stroke="currentColor" |
1572 | > | 1574 | > |
1573 | <path | 1575 | <path |
1574 | d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" | 1576 | d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" |
1575 | ></path> | 1577 | ></path> |
1576 | </svg> | 1578 | </svg> |
1577 | <span>Профиль</span> | 1579 | <span>Профиль</span> |
1578 | </a> | 1580 | </a> |
1579 | </li> | 1581 | </li> |
1580 | <li class="flex"> | 1582 | <li class="flex"> |
1581 | <a | 1583 | <a |
1582 | 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" | 1584 | 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" |
1583 | href="{{ route('admin.config') }}" | 1585 | href="{{ route('admin.config') }}" |
1584 | > | 1586 | > |
1585 | <svg | 1587 | <svg |
1586 | class="w-4 h-4 mr-3" | 1588 | class="w-4 h-4 mr-3" |
1587 | aria-hidden="true" | 1589 | aria-hidden="true" |
1588 | fill="none" | 1590 | fill="none" |
1589 | stroke-linecap="round" | 1591 | stroke-linecap="round" |
1590 | stroke-linejoin="round" | 1592 | stroke-linejoin="round" |
1591 | stroke-width="2" | 1593 | stroke-width="2" |
1592 | viewBox="0 0 24 24" | 1594 | viewBox="0 0 24 24" |
1593 | stroke="currentColor" | 1595 | stroke="currentColor" |
1594 | > | 1596 | > |
1595 | <path | 1597 | <path |
1596 | 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" | 1598 | 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" |
1597 | ></path> | 1599 | ></path> |
1598 | <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path> | 1600 | <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path> |
1599 | </svg> | 1601 | </svg> |
1600 | <span>Настройки</span> | 1602 | <span>Настройки</span> |
1601 | </a> | 1603 | </a> |
1602 | </li> | 1604 | </li> |
1603 | <li class="flex"> | 1605 | <li class="flex"> |
1604 | <a | 1606 | <a |
1605 | 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" | 1607 | 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" |
1606 | href="{{ route('admin.logout') }}" | 1608 | href="{{ route('admin.logout') }}" |
1607 | > | 1609 | > |
1608 | <svg | 1610 | <svg |
1609 | class="w-4 h-4 mr-3" | 1611 | class="w-4 h-4 mr-3" |
1610 | aria-hidden="true" | 1612 | aria-hidden="true" |
1611 | fill="none" | 1613 | fill="none" |
1612 | stroke-linecap="round" | 1614 | stroke-linecap="round" |
1613 | stroke-linejoin="round" | 1615 | stroke-linejoin="round" |
1614 | stroke-width="2" | 1616 | stroke-width="2" |
1615 | viewBox="0 0 24 24" | 1617 | viewBox="0 0 24 24" |
1616 | stroke="currentColor" | 1618 | stroke="currentColor" |
1617 | > | 1619 | > |
1618 | <path | 1620 | <path |
1619 | 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" | 1621 | 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" |
1620 | ></path> | 1622 | ></path> |
1621 | </svg> | 1623 | </svg> |
1622 | <span>Выход</span> | 1624 | <span>Выход</span> |
1623 | </a> | 1625 | </a> |
1624 | </li> | 1626 | </li> |
1625 | </ul> | 1627 | </ul> |
1626 | </template> | 1628 | </template> |
1627 | </li> | 1629 | </li> |
1628 | </ul> | 1630 | </ul> |
1629 | </div> | 1631 | </div> |
1630 | </header> | 1632 | </header> |
1631 | <main class="h-full overflow-y-auto"> | 1633 | <main class="h-full overflow-y-auto"> |
1632 | <div class="container px-6 mx-auto grid"> | 1634 | <div class="container px-6 mx-auto grid"> |
1633 | <h2 | 1635 | <h2 |
1634 | class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200" | 1636 | class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200" |
1635 | > | 1637 | > |
1636 | {{$title}} | 1638 | {{$title}} |
1637 | </h2> | 1639 | </h2> |
1638 | <!-- CTA --> | 1640 | <!-- CTA --> |
1639 | <a | 1641 | <a |
1640 | 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" | 1642 | 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" |
1641 | href="{{ route('admin.admin-users') }}" | 1643 | href="{{ route('admin.admin-users') }}" |
1642 | > | 1644 | > |
1643 | <div class="flex items-center"> | 1645 | <div class="flex items-center"> |
1644 | <svg | 1646 | <svg |
1645 | class="w-5 h-5 mr-2" | 1647 | class="w-5 h-5 mr-2" |
1646 | fill="currentColor" | 1648 | fill="currentColor" |
1647 | viewBox="0 0 20 20" | 1649 | viewBox="0 0 20 20" |
1648 | > | 1650 | > |
1649 | <path | 1651 | <path |
1650 | 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" | 1652 | 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" |
1651 | ></path> | 1653 | ></path> |
1652 | </svg> | 1654 | </svg> |
1653 | <span>Контент для админов</span> | 1655 | <span>Контент для админов</span> |
1654 | </div> | 1656 | </div> |
1655 | <span>Список админов →</span> | 1657 | <span>Список админов →</span> |
1656 | </a> | 1658 | </a> |
1657 | 1659 | ||
1658 | @if ($message = Session::get('success')) | 1660 | @if ($message = Session::get('success')) |
1659 | <section> | 1661 | <section> |
1660 | <div class="alert alert-success alert-dismissible mt-0" role="alert"> | 1662 | <div class="alert alert-success alert-dismissible mt-0" role="alert"> |
1661 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> | 1663 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> |
1662 | <span aria-hidden="true">×</span> | 1664 | <span aria-hidden="true">×</span> |
1663 | </button> | 1665 | </button> |
1664 | {{ $message }} | 1666 | {{ $message }} |
1665 | </div> | 1667 | </div> |
1666 | </section> | 1668 | </section> |
1667 | @endif | 1669 | @endif |
1668 | 1670 | ||
1669 | @if ($errors->any()) | 1671 | @if ($errors->any()) |
1670 | <section> | 1672 | <section> |
1671 | <div class="alert alert-danger alert-dismissible mt-4" role="alert"> | 1673 | <div class="alert alert-danger alert-dismissible mt-4" role="alert"> |
1672 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> | 1674 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> |
1673 | <span aria-hidden="true">×</span> | 1675 | <span aria-hidden="true">×</span> |
1674 | </button> | 1676 | </button> |
1675 | <ul class="mb-0"> | 1677 | <ul class="mb-0"> |
1676 | @foreach ($errors->all() as $error) | 1678 | @foreach ($errors->all() as $error) |
1677 | <li>{{ $error }}</li> | 1679 | <li>{{ $error }}</li> |
1678 | @endforeach | 1680 | @endforeach |
1679 | </ul> | 1681 | </ul> |
1680 | </div> | 1682 | </div> |
1681 | </section> | 1683 | </section> |
1682 | @endif | 1684 | @endif |
1683 | 1685 | ||
1684 | @yield('content') | 1686 | @yield('content') |
1685 | 1687 | ||
1686 | <!-- Cards | 1688 | <!-- Cards |
1687 | <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4"> | 1689 | <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4"> |
1688 | 1690 | ||
1689 | <div | 1691 | <div |
1690 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1692 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1691 | > | 1693 | > |
1692 | <div | 1694 | <div |
1693 | class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500" | 1695 | class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500" |
1694 | > | 1696 | > |
1695 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 1697 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
1696 | <path | 1698 | <path |
1697 | 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" | 1699 | 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" |
1698 | ></path> | 1700 | ></path> |
1699 | </svg> | 1701 | </svg> |
1700 | </div> | 1702 | </div> |
1701 | <div> | 1703 | <div> |
1702 | <p | 1704 | <p |
1703 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" | 1705 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" |
1704 | > | 1706 | > |
1705 | Total clients | 1707 | Total clients |
1706 | </p> | 1708 | </p> |
1707 | <p | 1709 | <p |
1708 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" | 1710 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" |
1709 | > | 1711 | > |
1710 | 6389 | 1712 | 6389 |
1711 | </p> | 1713 | </p> |
1712 | </div> | 1714 | </div> |
1713 | </div> | 1715 | </div> |
1714 | 1716 | ||
1715 | <div | 1717 | <div |
1716 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1718 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1717 | > | 1719 | > |
1718 | <div | 1720 | <div |
1719 | class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500" | 1721 | class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500" |
1720 | > | 1722 | > |
1721 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 1723 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
1722 | <path | 1724 | <path |
1723 | fill-rule="evenodd" | 1725 | fill-rule="evenodd" |
1724 | 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" | 1726 | 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" |
1725 | clip-rule="evenodd" | 1727 | clip-rule="evenodd" |
1726 | ></path> | 1728 | ></path> |
1727 | </svg> | 1729 | </svg> |
1728 | </div> | 1730 | </div> |
1729 | <div> | 1731 | <div> |
1730 | <p | 1732 | <p |
1731 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" | 1733 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" |
1732 | > | 1734 | > |
1733 | Account balance | 1735 | Account balance |
1734 | </p> | 1736 | </p> |
1735 | <p | 1737 | <p |
1736 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" | 1738 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" |
1737 | > | 1739 | > |
1738 | $ 46,760.89 | 1740 | $ 46,760.89 |
1739 | </p> | 1741 | </p> |
1740 | </div> | 1742 | </div> |
1741 | </div> | 1743 | </div> |
1742 | 1744 | ||
1743 | <div | 1745 | <div |
1744 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1746 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1745 | > | 1747 | > |
1746 | <div | 1748 | <div |
1747 | class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500" | 1749 | class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500" |
1748 | > | 1750 | > |
1749 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 1751 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
1750 | <path | 1752 | <path |
1751 | 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" | 1753 | 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" |
1752 | ></path> | 1754 | ></path> |
1753 | </svg> | 1755 | </svg> |
1754 | </div> | 1756 | </div> |
1755 | <div> | 1757 | <div> |
1756 | <p | 1758 | <p |
1757 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" | 1759 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" |
1758 | > | 1760 | > |
1759 | New sales | 1761 | New sales |
1760 | </p> | 1762 | </p> |
1761 | <p | 1763 | <p |
1762 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" | 1764 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" |
1763 | > | 1765 | > |
1764 | 376 | 1766 | 376 |
1765 | </p> | 1767 | </p> |
1766 | </div> | 1768 | </div> |
1767 | </div> | 1769 | </div> |
1768 | 1770 | ||
1769 | <div | 1771 | <div |
1770 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1772 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1771 | > | 1773 | > |
1772 | <div | 1774 | <div |
1773 | class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500" | 1775 | class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500" |
1774 | > | 1776 | > |
1775 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 1777 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
1776 | <path | 1778 | <path |
1777 | fill-rule="evenodd" | 1779 | fill-rule="evenodd" |
1778 | 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" | 1780 | 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" |
1779 | clip-rule="evenodd" | 1781 | clip-rule="evenodd" |
1780 | ></path> | 1782 | ></path> |
1781 | </svg> | 1783 | </svg> |
1782 | </div> | 1784 | </div> |
1783 | <div> | 1785 | <div> |
1784 | <p | 1786 | <p |
1785 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" | 1787 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" |
1786 | > | 1788 | > |
1787 | Pending contacts | 1789 | Pending contacts |
1788 | </p> | 1790 | </p> |
1789 | <p | 1791 | <p |
1790 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" | 1792 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" |
1791 | > | 1793 | > |
1792 | 35 | 1794 | 35 |
1793 | </p> | 1795 | </p> |
1794 | </div> | 1796 | </div> |
1795 | </div> | 1797 | </div> |
1796 | </div> | 1798 | </div> |
1797 | --> | 1799 | --> |
1798 | <!-- New Table | 1800 | <!-- New Table |
1799 | <div class="w-full overflow-hidden rounded-lg shadow-xs"> | 1801 | <div class="w-full overflow-hidden rounded-lg shadow-xs"> |
1800 | <div class="w-full overflow-x-auto"> | 1802 | <div class="w-full overflow-x-auto"> |
1801 | <table class="w-full whitespace-no-wrap"> | 1803 | <table class="w-full whitespace-no-wrap"> |
1802 | <thead> | 1804 | <thead> |
1803 | <tr | 1805 | <tr |
1804 | 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" | 1806 | 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" |
1805 | > | 1807 | > |
1806 | <th class="px-4 py-3">Client</th> | 1808 | <th class="px-4 py-3">Client</th> |
1807 | <th class="px-4 py-3">Amount</th> | 1809 | <th class="px-4 py-3">Amount</th> |
1808 | <th class="px-4 py-3">Status</th> | 1810 | <th class="px-4 py-3">Status</th> |
1809 | <th class="px-4 py-3">Date</th> | 1811 | <th class="px-4 py-3">Date</th> |
1810 | </tr> | 1812 | </tr> |
1811 | </thead> | 1813 | </thead> |
1812 | <tbody | 1814 | <tbody |
1813 | class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" | 1815 | class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" |
1814 | > | 1816 | > |
1815 | <tr class="text-gray-700 dark:text-gray-400"> | 1817 | <tr class="text-gray-700 dark:text-gray-400"> |
1816 | <td class="px-4 py-3"> | 1818 | <td class="px-4 py-3"> |
1817 | <div class="flex items-center text-sm"> | 1819 | <div class="flex items-center text-sm"> |
1818 | 1820 | ||
1819 | <div | 1821 | <div |
1820 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1822 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1821 | > | 1823 | > |
1822 | <img | 1824 | <img |
1823 | class="object-cover w-full h-full rounded-full" | 1825 | class="object-cover w-full h-full rounded-full" |
1824 | 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" | 1826 | 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" |
1825 | alt="" | 1827 | alt="" |
1826 | loading="lazy" | 1828 | loading="lazy" |
1827 | /> | 1829 | /> |
1828 | <div | 1830 | <div |
1829 | class="absolute inset-0 rounded-full shadow-inner" | 1831 | class="absolute inset-0 rounded-full shadow-inner" |
1830 | aria-hidden="true" | 1832 | aria-hidden="true" |
1831 | ></div> | 1833 | ></div> |
1832 | </div> | 1834 | </div> |
1833 | <div> | 1835 | <div> |
1834 | <p class="font-semibold">Hans Burger</p> | 1836 | <p class="font-semibold">Hans Burger</p> |
1835 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1837 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1836 | 10x Developer | 1838 | 10x Developer |
1837 | </p> | 1839 | </p> |
1838 | </div> | 1840 | </div> |
1839 | </div> | 1841 | </div> |
1840 | </td> | 1842 | </td> |
1841 | <td class="px-4 py-3 text-sm"> | 1843 | <td class="px-4 py-3 text-sm"> |
1842 | $ 863.45 | 1844 | $ 863.45 |
1843 | </td> | 1845 | </td> |
1844 | <td class="px-4 py-3 text-xs"> | 1846 | <td class="px-4 py-3 text-xs"> |
1845 | <span | 1847 | <span |
1846 | 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" | 1848 | 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" |
1847 | > | 1849 | > |
1848 | Approved | 1850 | Approved |
1849 | </span> | 1851 | </span> |
1850 | </td> | 1852 | </td> |
1851 | <td class="px-4 py-3 text-sm"> | 1853 | <td class="px-4 py-3 text-sm"> |
1852 | 6/10/2020 | 1854 | 6/10/2020 |
1853 | </td> | 1855 | </td> |
1854 | </tr> | 1856 | </tr> |
1855 | 1857 | ||
1856 | <tr class="text-gray-700 dark:text-gray-400"> | 1858 | <tr class="text-gray-700 dark:text-gray-400"> |
1857 | <td class="px-4 py-3"> | 1859 | <td class="px-4 py-3"> |
1858 | <div class="flex items-center text-sm"> | 1860 | <div class="flex items-center text-sm"> |
1859 | 1861 | ||
1860 | <div | 1862 | <div |
1861 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1863 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1862 | > | 1864 | > |
1863 | <img | 1865 | <img |
1864 | class="object-cover w-full h-full rounded-full" | 1866 | class="object-cover w-full h-full rounded-full" |
1865 | 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" | 1867 | 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" |
1866 | alt="" | 1868 | alt="" |
1867 | loading="lazy" | 1869 | loading="lazy" |
1868 | /> | 1870 | /> |
1869 | <div | 1871 | <div |
1870 | class="absolute inset-0 rounded-full shadow-inner" | 1872 | class="absolute inset-0 rounded-full shadow-inner" |
1871 | aria-hidden="true" | 1873 | aria-hidden="true" |
1872 | ></div> | 1874 | ></div> |
1873 | </div> | 1875 | </div> |
1874 | <div> | 1876 | <div> |
1875 | <p class="font-semibold">Jolina Angelie</p> | 1877 | <p class="font-semibold">Jolina Angelie</p> |
1876 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1878 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1877 | Unemployed | 1879 | Unemployed |
1878 | </p> | 1880 | </p> |
1879 | </div> | 1881 | </div> |
1880 | </div> | 1882 | </div> |
1881 | </td> | 1883 | </td> |
1882 | <td class="px-4 py-3 text-sm"> | 1884 | <td class="px-4 py-3 text-sm"> |
1883 | $ 369.95 | 1885 | $ 369.95 |
1884 | </td> | 1886 | </td> |
1885 | <td class="px-4 py-3 text-xs"> | 1887 | <td class="px-4 py-3 text-xs"> |
1886 | <span | 1888 | <span |
1887 | class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600" | 1889 | class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600" |
1888 | > | 1890 | > |
1889 | Pending | 1891 | Pending |
1890 | </span> | 1892 | </span> |
1891 | </td> | 1893 | </td> |
1892 | <td class="px-4 py-3 text-sm"> | 1894 | <td class="px-4 py-3 text-sm"> |
1893 | 6/10/2020 | 1895 | 6/10/2020 |
1894 | </td> | 1896 | </td> |
1895 | </tr> | 1897 | </tr> |
1896 | 1898 | ||
1897 | <tr class="text-gray-700 dark:text-gray-400"> | 1899 | <tr class="text-gray-700 dark:text-gray-400"> |
1898 | <td class="px-4 py-3"> | 1900 | <td class="px-4 py-3"> |
1899 | <div class="flex items-center text-sm"> | 1901 | <div class="flex items-center text-sm"> |
1900 | 1902 | ||
1901 | <div | 1903 | <div |
1902 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1904 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1903 | > | 1905 | > |
1904 | <img | 1906 | <img |
1905 | class="object-cover w-full h-full rounded-full" | 1907 | class="object-cover w-full h-full rounded-full" |
1906 | 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" | 1908 | 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" |
1907 | alt="" | 1909 | alt="" |
1908 | loading="lazy" | 1910 | loading="lazy" |
1909 | /> | 1911 | /> |
1910 | <div | 1912 | <div |
1911 | class="absolute inset-0 rounded-full shadow-inner" | 1913 | class="absolute inset-0 rounded-full shadow-inner" |
1912 | aria-hidden="true" | 1914 | aria-hidden="true" |
1913 | ></div> | 1915 | ></div> |
1914 | </div> | 1916 | </div> |
1915 | <div> | 1917 | <div> |
1916 | <p class="font-semibold">Sarah Curry</p> | 1918 | <p class="font-semibold">Sarah Curry</p> |
1917 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1919 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1918 | Designer | 1920 | Designer |
1919 | </p> | 1921 | </p> |
1920 | </div> | 1922 | </div> |
1921 | </div> | 1923 | </div> |
1922 | </td> | 1924 | </td> |
1923 | <td class="px-4 py-3 text-sm"> | 1925 | <td class="px-4 py-3 text-sm"> |
1924 | $ 86.00 | 1926 | $ 86.00 |
1925 | </td> | 1927 | </td> |
1926 | <td class="px-4 py-3 text-xs"> | 1928 | <td class="px-4 py-3 text-xs"> |
1927 | <span | 1929 | <span |
1928 | 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" | 1930 | 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" |
1929 | > | 1931 | > |
1930 | Denied | 1932 | Denied |
1931 | </span> | 1933 | </span> |
1932 | </td> | 1934 | </td> |
1933 | <td class="px-4 py-3 text-sm"> | 1935 | <td class="px-4 py-3 text-sm"> |
1934 | 6/10/2020 | 1936 | 6/10/2020 |
1935 | </td> | 1937 | </td> |
1936 | </tr> | 1938 | </tr> |
1937 | 1939 | ||
1938 | <tr class="text-gray-700 dark:text-gray-400"> | 1940 | <tr class="text-gray-700 dark:text-gray-400"> |
1939 | <td class="px-4 py-3"> | 1941 | <td class="px-4 py-3"> |
1940 | <div class="flex items-center text-sm"> | 1942 | <div class="flex items-center text-sm"> |
1941 | 1943 | ||
1942 | <div | 1944 | <div |
1943 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1945 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1944 | > | 1946 | > |
1945 | <img | 1947 | <img |
1946 | class="object-cover w-full h-full rounded-full" | 1948 | class="object-cover w-full h-full rounded-full" |
1947 | 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" | 1949 | 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" |
1948 | alt="" | 1950 | alt="" |
1949 | loading="lazy" | 1951 | loading="lazy" |
1950 | /> | 1952 | /> |
1951 | <div | 1953 | <div |
1952 | class="absolute inset-0 rounded-full shadow-inner" | 1954 | class="absolute inset-0 rounded-full shadow-inner" |
1953 | aria-hidden="true" | 1955 | aria-hidden="true" |
1954 | ></div> | 1956 | ></div> |
1955 | </div> | 1957 | </div> |
1956 | <div> | 1958 | <div> |
1957 | <p class="font-semibold">Rulia Joberts</p> | 1959 | <p class="font-semibold">Rulia Joberts</p> |
1958 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1960 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1959 | Actress | 1961 | Actress |
1960 | </p> | 1962 | </p> |
1961 | </div> | 1963 | </div> |
1962 | </div> | 1964 | </div> |
1963 | </td> | 1965 | </td> |
1964 | <td class="px-4 py-3 text-sm"> | 1966 | <td class="px-4 py-3 text-sm"> |
1965 | $ 1276.45 | 1967 | $ 1276.45 |
1966 | </td> | 1968 | </td> |
1967 | <td class="px-4 py-3 text-xs"> | 1969 | <td class="px-4 py-3 text-xs"> |
1968 | <span | 1970 | <span |
1969 | 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" | 1971 | 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" |
1970 | > | 1972 | > |
1971 | Approved | 1973 | Approved |
1972 | </span> | 1974 | </span> |
1973 | </td> | 1975 | </td> |
1974 | <td class="px-4 py-3 text-sm"> | 1976 | <td class="px-4 py-3 text-sm"> |
1975 | 6/10/2020 | 1977 | 6/10/2020 |
1976 | </td> | 1978 | </td> |
1977 | </tr> | 1979 | </tr> |
1978 | 1980 | ||
1979 | <tr class="text-gray-700 dark:text-gray-400"> | 1981 | <tr class="text-gray-700 dark:text-gray-400"> |
1980 | <td class="px-4 py-3"> | 1982 | <td class="px-4 py-3"> |
1981 | <div class="flex items-center text-sm"> | 1983 | <div class="flex items-center text-sm"> |
1982 | 1984 | ||
1983 | <div | 1985 | <div |
1984 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1986 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1985 | > | 1987 | > |
1986 | <img | 1988 | <img |
1987 | class="object-cover w-full h-full rounded-full" | 1989 | class="object-cover w-full h-full rounded-full" |
1988 | 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" | 1990 | 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" |
1989 | alt="" | 1991 | alt="" |
1990 | loading="lazy" | 1992 | loading="lazy" |
1991 | /> | 1993 | /> |
1992 | <div | 1994 | <div |
1993 | class="absolute inset-0 rounded-full shadow-inner" | 1995 | class="absolute inset-0 rounded-full shadow-inner" |
1994 | aria-hidden="true" | 1996 | aria-hidden="true" |
1995 | ></div> | 1997 | ></div> |
1996 | </div> | 1998 | </div> |
1997 | <div> | 1999 | <div> |
1998 | <p class="font-semibold">Wenzel Dashington</p> | 2000 | <p class="font-semibold">Wenzel Dashington</p> |
1999 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 2001 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
2000 | Actor | 2002 | Actor |
2001 | </p> | 2003 | </p> |
2002 | </div> | 2004 | </div> |
2003 | </div> | 2005 | </div> |
2004 | </td> | 2006 | </td> |
2005 | <td class="px-4 py-3 text-sm"> | 2007 | <td class="px-4 py-3 text-sm"> |
2006 | $ 863.45 | 2008 | $ 863.45 |
2007 | </td> | 2009 | </td> |
2008 | <td class="px-4 py-3 text-xs"> | 2010 | <td class="px-4 py-3 text-xs"> |
2009 | <span | 2011 | <span |
2010 | 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" | 2012 | 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" |
2011 | > | 2013 | > |
2012 | Expired | 2014 | Expired |
2013 | </span> | 2015 | </span> |
2014 | </td> | 2016 | </td> |
2015 | <td class="px-4 py-3 text-sm"> | 2017 | <td class="px-4 py-3 text-sm"> |
2016 | 6/10/2020 | 2018 | 6/10/2020 |
2017 | </td> | 2019 | </td> |
2018 | </tr> | 2020 | </tr> |
2019 | 2021 | ||
2020 | <tr class="text-gray-700 dark:text-gray-400"> | 2022 | <tr class="text-gray-700 dark:text-gray-400"> |
2021 | <td class="px-4 py-3"> | 2023 | <td class="px-4 py-3"> |
2022 | <div class="flex items-center text-sm"> | 2024 | <div class="flex items-center text-sm"> |
2023 | 2025 | ||
2024 | <div | 2026 | <div |
2025 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 2027 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
2026 | > | 2028 | > |
2027 | <img | 2029 | <img |
2028 | class="object-cover w-full h-full rounded-full" | 2030 | class="object-cover w-full h-full rounded-full" |
2029 | 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" | 2031 | 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" |
2030 | alt="" | 2032 | alt="" |
2031 | loading="lazy" | 2033 | loading="lazy" |
2032 | /> | 2034 | /> |
2033 | <div | 2035 | <div |
2034 | class="absolute inset-0 rounded-full shadow-inner" | 2036 | class="absolute inset-0 rounded-full shadow-inner" |
2035 | aria-hidden="true" | 2037 | aria-hidden="true" |
2036 | ></div> | 2038 | ></div> |
2037 | </div> | 2039 | </div> |
2038 | <div> | 2040 | <div> |
2039 | <p class="font-semibold">Dave Li</p> | 2041 | <p class="font-semibold">Dave Li</p> |
2040 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 2042 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
2041 | Influencer | 2043 | Influencer |
2042 | </p> | 2044 | </p> |
2043 | </div> | 2045 | </div> |
2044 | </div> | 2046 | </div> |
2045 | </td> | 2047 | </td> |
2046 | <td class="px-4 py-3 text-sm"> | 2048 | <td class="px-4 py-3 text-sm"> |
2047 | $ 863.45 | 2049 | $ 863.45 |
2048 | </td> | 2050 | </td> |
2049 | <td class="px-4 py-3 text-xs"> | 2051 | <td class="px-4 py-3 text-xs"> |
2050 | <span | 2052 | <span |
2051 | 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" | 2053 | 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" |
2052 | > | 2054 | > |
2053 | Approved | 2055 | Approved |
2054 | </span> | 2056 | </span> |
2055 | </td> | 2057 | </td> |
2056 | <td class="px-4 py-3 text-sm"> | 2058 | <td class="px-4 py-3 text-sm"> |
2057 | 6/10/2020 | 2059 | 6/10/2020 |
2058 | </td> | 2060 | </td> |
2059 | </tr> | 2061 | </tr> |
2060 | 2062 | ||
2061 | <tr class="text-gray-700 dark:text-gray-400"> | 2063 | <tr class="text-gray-700 dark:text-gray-400"> |
2062 | <td class="px-4 py-3"> | 2064 | <td class="px-4 py-3"> |
2063 | <div class="flex items-center text-sm"> | 2065 | <div class="flex items-center text-sm"> |
2064 | 2066 | ||
2065 | <div | 2067 | <div |
2066 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 2068 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
2067 | > | 2069 | > |
2068 | <img | 2070 | <img |
2069 | class="object-cover w-full h-full rounded-full" | 2071 | class="object-cover w-full h-full rounded-full" |
2070 | 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" | 2072 | 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" |
2071 | alt="" | 2073 | alt="" |
2072 | loading="lazy" | 2074 | loading="lazy" |
2073 | /> | 2075 | /> |
2074 | <div | 2076 | <div |
2075 | class="absolute inset-0 rounded-full shadow-inner" | 2077 | class="absolute inset-0 rounded-full shadow-inner" |
2076 | aria-hidden="true" | 2078 | aria-hidden="true" |
2077 | ></div> | 2079 | ></div> |
2078 | </div> | 2080 | </div> |
2079 | <div> | 2081 | <div> |
2080 | <p class="font-semibold">Maria Ramovic</p> | 2082 | <p class="font-semibold">Maria Ramovic</p> |
2081 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 2083 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
2082 | Runner | 2084 | Runner |
2083 | </p> | 2085 | </p> |
2084 | </div> | 2086 | </div> |
2085 | </div> | 2087 | </div> |
2086 | </td> | 2088 | </td> |
2087 | <td class="px-4 py-3 text-sm"> | 2089 | <td class="px-4 py-3 text-sm"> |
2088 | $ 863.45 | 2090 | $ 863.45 |
2089 | </td> | 2091 | </td> |
2090 | <td class="px-4 py-3 text-xs"> | 2092 | <td class="px-4 py-3 text-xs"> |
2091 | <span | 2093 | <span |
2092 | 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" | 2094 | 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" |
2093 | > | 2095 | > |
2094 | Approved | 2096 | Approved |
2095 | </span> | 2097 | </span> |
2096 | </td> | 2098 | </td> |
2097 | <td class="px-4 py-3 text-sm"> | 2099 | <td class="px-4 py-3 text-sm"> |
2098 | 6/10/2020 | 2100 | 6/10/2020 |
2099 | </td> | 2101 | </td> |
2100 | </tr> | 2102 | </tr> |
2101 | 2103 | ||
2102 | <tr class="text-gray-700 dark:text-gray-400"> | 2104 | <tr class="text-gray-700 dark:text-gray-400"> |
2103 | <td class="px-4 py-3"> | 2105 | <td class="px-4 py-3"> |
2104 | <div class="flex items-center text-sm"> | 2106 | <div class="flex items-center text-sm"> |
2105 | 2107 | ||
2106 | <div | 2108 | <div |
2107 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 2109 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
2108 | > | 2110 | > |
2109 | <img | 2111 | <img |
2110 | class="object-cover w-full h-full rounded-full" | 2112 | class="object-cover w-full h-full rounded-full" |
2111 | 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" | 2113 | 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" |
2112 | alt="" | 2114 | alt="" |
2113 | loading="lazy" | 2115 | loading="lazy" |
2114 | /> | 2116 | /> |
2115 | <div | 2117 | <div |
2116 | class="absolute inset-0 rounded-full shadow-inner" | 2118 | class="absolute inset-0 rounded-full shadow-inner" |
2117 | aria-hidden="true" | 2119 | aria-hidden="true" |
2118 | ></div> | 2120 | ></div> |
2119 | </div> | 2121 | </div> |
2120 | <div> | 2122 | <div> |
2121 | <p class="font-semibold">Hitney Wouston</p> | 2123 | <p class="font-semibold">Hitney Wouston</p> |
2122 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 2124 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
2123 | Singer | 2125 | Singer |
2124 | </p> | 2126 | </p> |
2125 | </div> | 2127 | </div> |
2126 | </div> | 2128 | </div> |
2127 | </td> | 2129 | </td> |
2128 | <td class="px-4 py-3 text-sm"> | 2130 | <td class="px-4 py-3 text-sm"> |
2129 | $ 863.45 | 2131 | $ 863.45 |
2130 | </td> | 2132 | </td> |
2131 | <td class="px-4 py-3 text-xs"> | 2133 | <td class="px-4 py-3 text-xs"> |
2132 | <span | 2134 | <span |
2133 | 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" | 2135 | 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" |
2134 | > | 2136 | > |
2135 | Approved | 2137 | Approved |
2136 | </span> | 2138 | </span> |
2137 | </td> | 2139 | </td> |
2138 | <td class="px-4 py-3 text-sm"> | 2140 | <td class="px-4 py-3 text-sm"> |
2139 | 6/10/2020 | 2141 | 6/10/2020 |
2140 | </td> | 2142 | </td> |
2141 | </tr> | 2143 | </tr> |
2142 | 2144 | ||
2143 | <tr class="text-gray-700 dark:text-gray-400"> | 2145 | <tr class="text-gray-700 dark:text-gray-400"> |
2144 | <td class="px-4 py-3"> | 2146 | <td class="px-4 py-3"> |
2145 | <div class="flex items-center text-sm"> | 2147 | <div class="flex items-center text-sm"> |
2146 | 2148 | ||
2147 | <div | 2149 | <div |
2148 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 2150 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
2149 | > | 2151 | > |
2150 | <img | 2152 | <img |
2151 | class="object-cover w-full h-full rounded-full" | 2153 | class="object-cover w-full h-full rounded-full" |
2152 | 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" | 2154 | 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" |
2153 | alt="" | 2155 | alt="" |
2154 | loading="lazy" | 2156 | loading="lazy" |
2155 | /> | 2157 | /> |
2156 | <div | 2158 | <div |
2157 | class="absolute inset-0 rounded-full shadow-inner" | 2159 | class="absolute inset-0 rounded-full shadow-inner" |
2158 | aria-hidden="true" | 2160 | aria-hidden="true" |
2159 | ></div> | 2161 | ></div> |
2160 | </div> | 2162 | </div> |
2161 | <div> | 2163 | <div> |
2162 | <p class="font-semibold">Hans Burger</p> | 2164 | <p class="font-semibold">Hans Burger</p> |
2163 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 2165 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
2164 | 10x Developer | 2166 | 10x Developer |
2165 | </p> | 2167 | </p> |
2166 | </div> | 2168 | </div> |
2167 | </div> | 2169 | </div> |
2168 | </td> | 2170 | </td> |
2169 | <td class="px-4 py-3 text-sm"> | 2171 | <td class="px-4 py-3 text-sm"> |
2170 | $ 863.45 | 2172 | $ 863.45 |
2171 | </td> | 2173 | </td> |
2172 | <td class="px-4 py-3 text-xs"> | 2174 | <td class="px-4 py-3 text-xs"> |
2173 | <span | 2175 | <span |
2174 | 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" | 2176 | 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" |
2175 | > | 2177 | > |
2176 | Approved | 2178 | Approved |
2177 | </span> | 2179 | </span> |
2178 | </td> | 2180 | </td> |
2179 | <td class="px-4 py-3 text-sm"> | 2181 | <td class="px-4 py-3 text-sm"> |
2180 | 6/10/2020 | 2182 | 6/10/2020 |
2181 | </td> | 2183 | </td> |
2182 | </tr> | 2184 | </tr> |
2183 | </tbody> | 2185 | </tbody> |
2184 | </table> | 2186 | </table> |
2185 | </div> | 2187 | </div> |
2186 | <div | 2188 | <div |
2187 | 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" | 2189 | 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" |
2188 | > | 2190 | > |
2189 | <span class="flex items-center col-span-3"> | 2191 | <span class="flex items-center col-span-3"> |
2190 | Showing 21-30 of 100 | 2192 | Showing 21-30 of 100 |
2191 | </span> | 2193 | </span> |
2192 | <span class="col-span-2"></span> | 2194 | <span class="col-span-2"></span> |
2193 | 2195 | ||
2194 | <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> | 2196 | <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> |
2195 | <nav aria-label="Table navigation"> | 2197 | <nav aria-label="Table navigation"> |
2196 | <ul class="inline-flex items-center"> | 2198 | <ul class="inline-flex items-center"> |
2197 | <li> | 2199 | <li> |
2198 | <button | 2200 | <button |
2199 | class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" | 2201 | class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" |
2200 | aria-label="Previous" | 2202 | aria-label="Previous" |
2201 | > | 2203 | > |
2202 | <svg | 2204 | <svg |
2203 | aria-hidden="true" | 2205 | aria-hidden="true" |
2204 | class="w-4 h-4 fill-current" | 2206 | class="w-4 h-4 fill-current" |
2205 | viewBox="0 0 20 20" | 2207 | viewBox="0 0 20 20" |
2206 | > | 2208 | > |
2207 | <path | 2209 | <path |
2208 | 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" | 2210 | 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" |
2209 | clip-rule="evenodd" | 2211 | clip-rule="evenodd" |
2210 | fill-rule="evenodd" | 2212 | fill-rule="evenodd" |
2211 | ></path> | 2213 | ></path> |
2212 | </svg> | 2214 | </svg> |
2213 | </button> | 2215 | </button> |
2214 | </li> | 2216 | </li> |
2215 | <li> | 2217 | <li> |
2216 | <button | 2218 | <button |
2217 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 2219 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
2218 | > | 2220 | > |
2219 | 1 | 2221 | 1 |
2220 | </button> | 2222 | </button> |
2221 | </li> | 2223 | </li> |
2222 | <li> | 2224 | <li> |
2223 | <button | 2225 | <button |
2224 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 2226 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
2225 | > | 2227 | > |
2226 | 2 | 2228 | 2 |
2227 | </button> | 2229 | </button> |
2228 | </li> | 2230 | </li> |
2229 | <li> | 2231 | <li> |
2230 | <button | 2232 | <button |
2231 | 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" | 2233 | 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" |
2232 | > | 2234 | > |
2233 | 3 | 2235 | 3 |
2234 | </button> | 2236 | </button> |
2235 | </li> | 2237 | </li> |
2236 | <li> | 2238 | <li> |
2237 | <button | 2239 | <button |
2238 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 2240 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
2239 | > | 2241 | > |
2240 | 4 | 2242 | 4 |
2241 | </button> | 2243 | </button> |
2242 | </li> | 2244 | </li> |
2243 | <li> | 2245 | <li> |
2244 | <span class="px-3 py-1">...</span> | 2246 | <span class="px-3 py-1">...</span> |
2245 | </li> | 2247 | </li> |
2246 | <li> | 2248 | <li> |
2247 | <button | 2249 | <button |
2248 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 2250 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
2249 | > | 2251 | > |
2250 | 8 | 2252 | 8 |
2251 | </button> | 2253 | </button> |
2252 | </li> | 2254 | </li> |
2253 | <li> | 2255 | <li> |
2254 | <button | 2256 | <button |
2255 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 2257 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
2256 | > | 2258 | > |
2257 | 9 | 2259 | 9 |
2258 | </button> | 2260 | </button> |
2259 | </li> | 2261 | </li> |
2260 | <li> | 2262 | <li> |
2261 | <button | 2263 | <button |
2262 | class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" | 2264 | class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" |
2263 | aria-label="Next" | 2265 | aria-label="Next" |
2264 | > | 2266 | > |
2265 | <svg | 2267 | <svg |
2266 | class="w-4 h-4 fill-current" | 2268 | class="w-4 h-4 fill-current" |
2267 | aria-hidden="true" | 2269 | aria-hidden="true" |
2268 | viewBox="0 0 20 20" | 2270 | viewBox="0 0 20 20" |
2269 | > | 2271 | > |
2270 | <path | 2272 | <path |
2271 | 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" | 2273 | 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" |
2272 | clip-rule="evenodd" | 2274 | clip-rule="evenodd" |
2273 | fill-rule="evenodd" | 2275 | fill-rule="evenodd" |
2274 | ></path> | 2276 | ></path> |
2275 | </svg> | 2277 | </svg> |
2276 | </button> | 2278 | </button> |
2277 | </li> | 2279 | </li> |
2278 | </ul> | 2280 | </ul> |
2279 | </nav> | 2281 | </nav> |
2280 | </span> | 2282 | </span> |
2281 | </div> | 2283 | </div> |
2282 | </div> | 2284 | </div> |
2283 | --> | 2285 | --> |
2284 | <!-- Charts --> | 2286 | <!-- Charts --> |
2285 | <!-- | 2287 | <!-- |
2286 | <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"> | 2288 | <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"> |
2287 | Графики | 2289 | Графики |
2288 | </h2> | 2290 | </h2> |
2289 | <div class="grid gap-6 mb-8 md:grid-cols-2"> | 2291 | <div class="grid gap-6 mb-8 md:grid-cols-2"> |
2290 | <div | 2292 | <div |
2291 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 2293 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
2292 | > | 2294 | > |
2293 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> | 2295 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> |
2294 | Revenue | 2296 | Revenue |
2295 | </h4> | 2297 | </h4> |
2296 | <canvas id="pie"></canvas> | 2298 | <canvas id="pie"></canvas> |
2297 | <div | 2299 | <div |
2298 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" | 2300 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" |
2299 | > | 2301 | > |
2300 | 2302 | ||
2301 | <div class="flex items-center"> | 2303 | <div class="flex items-center"> |
2302 | <span | 2304 | <span |
2303 | class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full" | 2305 | class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full" |
2304 | ></span> | 2306 | ></span> |
2305 | <span>Shirts</span> | 2307 | <span>Shirts</span> |
2306 | </div> | 2308 | </div> |
2307 | <div class="flex items-center"> | 2309 | <div class="flex items-center"> |
2308 | <span | 2310 | <span |
2309 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" | 2311 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" |
2310 | ></span> | 2312 | ></span> |
2311 | <span>Shoes</span> | 2313 | <span>Shoes</span> |
2312 | </div> | 2314 | </div> |
2313 | <div class="flex items-center"> | 2315 | <div class="flex items-center"> |
2314 | <span | 2316 | <span |
2315 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" | 2317 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" |
2316 | ></span> | 2318 | ></span> |
2317 | <span>Bags</span> | 2319 | <span>Bags</span> |
2318 | </div> | 2320 | </div> |
2319 | </div> | 2321 | </div> |
2320 | </div> | 2322 | </div> |
2321 | <div | 2323 | <div |
2322 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 2324 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
2323 | > | 2325 | > |
2324 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> | 2326 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> |
2325 | Traffic | 2327 | Traffic |
2326 | </h4> | 2328 | </h4> |
2327 | <canvas id="line"></canvas> | 2329 | <canvas id="line"></canvas> |
2328 | <div | 2330 | <div |
2329 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" | 2331 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" |
2330 | > | 2332 | > |
2331 | 2333 | ||
2332 | <div class="flex items-center"> | 2334 | <div class="flex items-center"> |
2333 | <span | 2335 | <span |
2334 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" | 2336 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" |
2335 | ></span> | 2337 | ></span> |
2336 | <span>Organic</span> | 2338 | <span>Organic</span> |
2337 | </div> | 2339 | </div> |
2338 | <div class="flex items-center"> | 2340 | <div class="flex items-center"> |
2339 | <span | 2341 | <span |
2340 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" | 2342 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" |
2341 | ></span> | 2343 | ></span> |
2342 | <span>Paid</span> | 2344 | <span>Paid</span> |
2343 | </div> | 2345 | </div> |
2344 | </div> | 2346 | </div> |
2345 | </div> | 2347 | </div> |
2346 | </div> | 2348 | </div> |
2347 | --> | 2349 | --> |
2348 | </div> | 2350 | </div> |
2349 | </main> | 2351 | </main> |
2350 | </div> | 2352 | </div> |
2351 | </div> | 2353 | </div> |
2352 | @yield('modal') | 2354 | @yield('modal') |
2353 | </body> | 2355 | </body> |
2354 | @yield('script') | 2356 | @yield('script') |
2355 | </html> | 2357 | </html> |
2356 | 2358 |