Commit 3b2e8c4eb29eddd5e8fe3a5bd34284e30726da44
1 parent
ee65908707
Exists in
master
редактирование блолком на главной странице
Showing 14 changed files with 239 additions and 77 deletions Inline Diff
- app/Enums/EnumTraits/EnumToArray.php
- app/Enums/MainPageCounters.php
- app/Http/Controllers/Admin/CompanyController.php
- app/Http/Controllers/MainController.php
- app/Models/PageContent.php
- config/database.php
- database/migrations/2024_06_18_110133_create_page_contents_table.php
- resources/views/TITLE_TEXT.blade.php
- resources/views/admin/counters_main/form.blade.php
- resources/views/admin/counters_main/index.blade.php
- resources/views/employers/bd.blade.php
- resources/views/index.blade.php
- resources/views/layout/admin.blade.php
- routes/web.php
app/Enums/EnumTraits/EnumToArray.php
File was created | 1 | <?php | |
2 | |||
3 | namespace App\Enums\EnumTraits; | ||
4 | |||
5 | trait EnumToArray | ||
6 | { | ||
7 | public static function values(): array | ||
8 | { | ||
9 | return array_column(self::cases(), 'value'); | ||
10 | } | ||
11 | } | ||
12 |
app/Enums/MainPageCounters.php
File was created | 1 | <?php | |
2 | |||
3 | namespace App\Enums; | ||
4 | |||
5 | use App\Enums\EnumTraits\EnumToArray; | ||
6 | |||
7 | enum MainPageCounters: string | ||
8 | { | ||
9 | use EnumToArray; | ||
10 | |||
11 | case ResumeMain = 'first_main'; | ||
12 | case VacanciesMain = 'second_main'; | ||
13 | case CompaniesMain = 'third_main'; | ||
14 | } | ||
15 |
app/Http/Controllers/Admin/CompanyController.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | namespace App\Http\Controllers\Admin; | 3 | namespace App\Http\Controllers\Admin; |
4 | 4 | ||
5 | use App\Classes\Meta; | 5 | use App\Classes\Meta; |
6 | use App\Http\Controllers\Controller; | 6 | use App\Http\Controllers\Controller; |
7 | use App\Http\Requests\PagesRequest; | 7 | use App\Http\Requests\PagesRequest; |
8 | use App\Http\Requests\ReclameRequest; | 8 | use App\Http\Requests\ReclameRequest; |
9 | use App\Http\Requests\SEORequest; | 9 | use App\Http\Requests\SEORequest; |
10 | use App\Models\Employer; | 10 | use App\Models\Employer; |
11 | use App\Models\employers_main; | 11 | use App\Models\employers_main; |
12 | use App\Models\header_footer; | 12 | use App\Models\header_footer; |
13 | use App\Models\Job_title; | 13 | use App\Models\Job_title; |
14 | use App\Models\job_titles_main; | 14 | use App\Models\job_titles_main; |
15 | use App\Models\pages; | 15 | use App\Models\pages; |
16 | use App\Models\reclame; | 16 | use App\Models\reclame; |
17 | use App\Models\SEO; | 17 | use App\Models\SEO; |
18 | use App\Models\PageContent; | ||
18 | use Illuminate\Http\Request; | 19 | use Illuminate\Http\Request; |
19 | use Illuminate\Support\Facades\Storage; | 20 | use Illuminate\Support\Facades\Storage; |
21 | use App\Enums\MainPageCounters; | ||
20 | 22 | ||
21 | class CompanyController extends Controller | 23 | class CompanyController extends Controller |
22 | { | 24 | { |
23 | // кабинет - редактор сайта | 25 | // кабинет - редактор сайта |
24 | public function editor() { | 26 | public function editor() { |
25 | return; | 27 | return; |
26 | } | 28 | } |
27 | 29 | ||
28 | // кабинет - редактор должности на главной | 30 | // кабинет - редактор должности на главной |
29 | public function job_titles_main(Request $request) { | 31 | public function job_titles_main(Request $request) { |
30 | if ($request->ajax()) { | 32 | if ($request->ajax()) { |
31 | $user = job_titles_main::find($request->id); | 33 | $user = job_titles_main::find($request->id); |
32 | $request->offsetUnset('id'); | 34 | $request->offsetUnset('id'); |
33 | $user->update($request->all()); | 35 | $user->update($request->all()); |
34 | } | 36 | } |
35 | 37 | ||
36 | $jobs = job_titles_main::query()->OrderBy('sort')->paginate(10); | 38 | $jobs = job_titles_main::query()->OrderBy('sort')->paginate(10); |
37 | $list_job_titles = Job_title::query()->active()->orderBy('name')->get(); | 39 | $list_job_titles = Job_title::query()->active()->orderBy('name')->get(); |
38 | 40 | ||
39 | if ($request->ajax()) { | 41 | if ($request->ajax()) { |
40 | return view('admin.job_main.index_ajax', compact('jobs', 'list_job_titles')); | 42 | return view('admin.job_main.index_ajax', compact('jobs', 'list_job_titles')); |
41 | } else { | 43 | } else { |
42 | return view('admin.job_main.index', compact('jobs', 'list_job_titles')); | 44 | return view('admin.job_main.index', compact('jobs', 'list_job_titles')); |
43 | } | 45 | } |
44 | } | 46 | } |
45 | 47 | ||
48 | // кабинет - блок со счетчиками на главной | ||
49 | public function counters_main(Request $request) { | ||
50 | $block_names = MainPageCounters::values(); | ||
51 | $blocks = PageContent::select('name', 'title', 'description', 'extra') | ||
52 | ->whereIn('name', $block_names) | ||
53 | ->get() | ||
54 | ->keyBy('name') | ||
55 | ->toArray(); | ||
56 | return view('admin.counters_main.index', compact('block_names', 'blocks')); | ||
57 | } | ||
58 | |||
59 | public function counters_main_update(Request $request, string $name) { | ||
60 | PageContent::updateOrCreate( | ||
61 | ['name' => $name], | ||
62 | array_merge(['name' => $name], $request->all()) | ||
63 | ); | ||
64 | $block_names = MainPageCounters::values();; | ||
65 | $blocks = PageContent::select('name', 'title', 'description', 'extra') | ||
66 | ->whereIn('name', $block_names) | ||
67 | ->get() | ||
68 | ->keyBy('name') | ||
69 | ->toArray(); | ||
70 | return view('admin.counters_main.index', compact('block_names', 'blocks')); | ||
71 | } | ||
72 | |||
46 | //////////////////////////////////////////////////////////////////////////////// | 73 | //////////////////////////////////////////////////////////////////////////////// |
47 | // кабинет - редактор шапки-футера сайта | 74 | // кабинет - редактор шапки-футера сайта |
48 | public function editblocks(Request $request) { | 75 | public function editblocks(Request $request) { |
49 | if ($request->ajax()) { | 76 | if ($request->ajax()) { |
50 | $header_footer = header_footer::where('header', $request->header)->OrderBy('sort')->OrderBy('name')->paginate(15); | 77 | $header_footer = header_footer::where('header', $request->header)->OrderBy('sort')->OrderBy('name')->paginate(15); |
51 | $list_menu = header_footer::where('header', $request->header)->OrderBy('name')->get(); | 78 | $list_menu = header_footer::where('header', $request->header)->OrderBy('name')->get(); |
52 | return view('admin.editbloks.index_ajax', compact('header_footer', 'list_menu')); | 79 | return view('admin.editbloks.index_ajax', compact('header_footer', 'list_menu')); |
53 | } else { | 80 | } else { |
54 | $header_footer = header_footer::where('header', '1')->OrderBy('sort')->OrderBy('name')->paginate(15); | 81 | $header_footer = header_footer::where('header', '1')->OrderBy('sort')->OrderBy('name')->paginate(15); |
55 | $list_menu = header_footer::where('header', '1')->OrderBy('name')->get(); | 82 | $list_menu = header_footer::where('header', '1')->OrderBy('name')->get(); |
56 | return view('admin.editbloks.index', compact('header_footer', 'list_menu')); | 83 | return view('admin.editbloks.index', compact('header_footer', 'list_menu')); |
57 | } | 84 | } |
58 | } | 85 | } |
59 | 86 | ||
60 | public function editblock_add() { | 87 | public function editblock_add() { |
61 | $items = header_footer::query()->OrderBy('name')->get(); | 88 | $items = header_footer::query()->OrderBy('name')->get(); |
62 | return view('admin.editbloks.add', compact('items')); | 89 | return view('admin.editbloks.add', compact('items')); |
63 | } | 90 | } |
64 | 91 | ||
65 | public function editblock_store(Request $request) { | 92 | public function editblock_store(Request $request) { |
66 | header_footer::create($request->all()); | 93 | header_footer::create($request->all()); |
67 | return redirect()->route('admin.edit-blocks'); | 94 | return redirect()->route('admin.edit-blocks'); |
68 | } | 95 | } |
69 | 96 | ||
70 | public function editblock_ajax(Request $request) { | 97 | public function editblock_ajax(Request $request) { |
71 | if ($request->ajax()) { | 98 | if ($request->ajax()) { |
72 | $hf = header_footer::find($request->id); | 99 | $hf = header_footer::find($request->id); |
73 | $filter = $request->header; | 100 | $filter = $request->header; |
74 | unset($request->id); | 101 | unset($request->id); |
75 | unset($request->header); | 102 | unset($request->header); |
76 | $hf->update($request->all()); | 103 | $hf->update($request->all()); |
77 | 104 | ||
78 | $header_footer = header_footer::where('header', $filter)->OrderBy('sort')->OrderBy('name')->paginate(15); | 105 | $header_footer = header_footer::where('header', $filter)->OrderBy('sort')->OrderBy('name')->paginate(15); |
79 | $list_menu = header_footer::where('header', $filter)->OrderBy('name')->get(); | 106 | $list_menu = header_footer::where('header', $filter)->OrderBy('name')->get(); |
80 | return view('admin.editbloks.index_ajax', compact('header_footer', 'list_menu')); | 107 | return view('admin.editbloks.index_ajax', compact('header_footer', 'list_menu')); |
81 | } else { | 108 | } else { |
82 | return "Ошибка!"; | 109 | return "Ошибка!"; |
83 | } | 110 | } |
84 | } | 111 | } |
85 | 112 | ||
86 | public function editblock_edit(header_footer $block) { | 113 | public function editblock_edit(header_footer $block) { |
87 | $items = header_footer::query()->OrderBy('name')->get(); | 114 | $items = header_footer::query()->OrderBy('name')->get(); |
88 | return view('admin.editbloks.edit', compact('block', 'items')); | 115 | return view('admin.editbloks.edit', compact('block', 'items')); |
89 | } | 116 | } |
90 | 117 | ||
91 | public function editblock_update(Request $request, header_footer $block) { | 118 | public function editblock_update(Request $request, header_footer $block) { |
92 | $block->update($request->all()); | 119 | $block->update($request->all()); |
93 | return redirect()->route('admin.edit-blocks'); | 120 | return redirect()->route('admin.edit-blocks'); |
94 | } | 121 | } |
95 | 122 | ||
96 | public function editblock_destroy(header_footer $block) { | 123 | public function editblock_destroy(header_footer $block) { |
97 | $block->delete(); | 124 | $block->delete(); |
98 | return redirect()->route('admin.edit-blocks'); | 125 | return redirect()->route('admin.edit-blocks'); |
99 | } | 126 | } |
100 | ///////////////////////////////////////////////////////// | 127 | ///////////////////////////////////////////////////////// |
101 | 128 | ||
102 | // кабинет - редактор работодатели на главной | 129 | // кабинет - редактор работодатели на главной |
103 | public function employers_main(Request $request) { | 130 | public function employers_main(Request $request) { |
104 | if ($request->ajax()) { | 131 | if ($request->ajax()) { |
105 | $user = employers_main::find($request->id); | 132 | $user = employers_main::find($request->id); |
106 | $request->offsetUnset('id'); | 133 | $request->offsetUnset('id'); |
107 | $user->update($request->all()); | 134 | $user->update($request->all()); |
108 | } | 135 | } |
109 | 136 | ||
110 | $employers = employers_main::query()->OrderBy('sort')->paginate(10); | 137 | $employers = employers_main::query()->OrderBy('sort')->paginate(10); |
111 | $list_employers = Employer::query()->active()->orderBy('name_company')->get(); | 138 | $list_employers = Employer::query()->active()->orderBy('name_company')->get(); |
112 | 139 | ||
113 | if ($request->ajax()) { | 140 | if ($request->ajax()) { |
114 | return view('admin.employer_main.index_ajax', compact('employers', 'list_employers')); | 141 | return view('admin.employer_main.index_ajax', compact('employers', 'list_employers')); |
115 | } else { | 142 | } else { |
116 | return view('admin.employer_main.index', compact('employers', 'list_employers')); | 143 | return view('admin.employer_main.index', compact('employers', 'list_employers')); |
117 | } | 144 | } |
118 | } | 145 | } |
119 | 146 | ||
120 | //////////// кабинет - редактор seo-сайта ///////////////////////////// | 147 | //////////// кабинет - редактор seo-сайта ///////////////////////////// |
121 | public function editor_seo() { | 148 | public function editor_seo() { |
122 | $pages = SEO::query()->OrderBy('url')->paginate(15); | 149 | $pages = SEO::query()->OrderBy('url')->paginate(15); |
123 | return view('admin.seo.index', compact('pages')); | 150 | return view('admin.seo.index', compact('pages')); |
124 | } | 151 | } |
125 | 152 | ||
126 | public function editor_seo_add() { | 153 | public function editor_seo_add() { |
127 | return view('admin.seo.add'); | 154 | return view('admin.seo.add'); |
128 | } | 155 | } |
129 | 156 | ||
130 | public function editor_seo_store(SEORequest $request) { | 157 | public function editor_seo_store(SEORequest $request) { |
131 | SEO::create($request->all()); | 158 | SEO::create($request->all()); |
132 | return redirect()->route('admin.editor-seo'); | 159 | return redirect()->route('admin.editor-seo'); |
133 | } | 160 | } |
134 | 161 | ||
135 | public function editor_seo_ajax(Request $request) { | 162 | public function editor_seo_ajax(Request $request) { |
136 | $url = $request->get('url'); // post('url'); | 163 | $url = $request->get('url'); // post('url'); |
137 | $metaData = Array(); | 164 | $metaData = Array(); |
138 | //$url = json_decode($url, true); | 165 | //$url = json_decode($url, true); |
139 | 166 | ||
140 | if (!empty($url)) { | 167 | if (!empty($url)) { |
141 | 168 | ||
142 | $meta = new Meta($url); | 169 | $meta = new Meta($url); |
143 | $meta->parse(); | 170 | $meta->parse(); |
144 | $metaData = $meta->finalize(); | 171 | $metaData = $meta->finalize(); |
145 | 172 | ||
146 | return json_encode($metaData); | 173 | return json_encode($metaData); |
147 | } else { | 174 | } else { |
148 | return json_encode(Array('Error URL')); | 175 | return json_encode(Array('Error URL')); |
149 | } | 176 | } |
150 | } | 177 | } |
151 | 178 | ||
152 | public function editor_seo_edit(SEO $page) { | 179 | public function editor_seo_edit(SEO $page) { |
153 | return view('admin.seo.edit', compact('page')); | 180 | return view('admin.seo.edit', compact('page')); |
154 | } | 181 | } |
155 | 182 | ||
156 | public function editor_seo_update(SEORequest $request, SEO $page) { | 183 | public function editor_seo_update(SEORequest $request, SEO $page) { |
157 | $page->update($request->all()); | 184 | $page->update($request->all()); |
158 | return redirect()->route('admin.editor-seo'); | 185 | return redirect()->route('admin.editor-seo'); |
159 | } | 186 | } |
160 | 187 | ||
161 | public function editor_seo_destroy(SEO $page) { | 188 | public function editor_seo_destroy(SEO $page) { |
162 | $page->delete(); | 189 | $page->delete(); |
163 | return redirect()->route('admin.editor-seo'); | 190 | return redirect()->route('admin.editor-seo'); |
164 | } | 191 | } |
165 | /////////////////////////////////////////////////////////////////////// | 192 | /////////////////////////////////////////////////////////////////////// |
166 | 193 | ||
167 | /////////// кабинет - редактор страниц //////////////////////////////// | 194 | /////////// кабинет - редактор страниц //////////////////////////////// |
168 | public function editor_pages() { | 195 | public function editor_pages() { |
169 | $pages = pages::query()->OrderBy('name')->paginate(15); | 196 | $pages = pages::query()->OrderBy('name')->paginate(15); |
170 | return view('admin.pages.index', compact('pages')); | 197 | return view('admin.pages.index', compact('pages')); |
171 | } | 198 | } |
172 | 199 | ||
173 | public function editor_pages_add() { | 200 | public function editor_pages_add() { |
174 | return view('admin.pages.add'); | 201 | return view('admin.pages.add'); |
175 | } | 202 | } |
176 | 203 | ||
177 | public function editor_pages_store(PagesRequest $request) { | 204 | public function editor_pages_store(PagesRequest $request) { |
178 | $params = $request->all(); | 205 | $params = $request->all(); |
179 | if ($request->has('image')) { | 206 | if ($request->has('image')) { |
180 | $params['image'] = $request->file('image')->store('pages', 'public'); | 207 | $params['image'] = $request->file('image')->store('pages', 'public'); |
181 | } | 208 | } |
182 | 209 | ||
183 | pages::create($params); | 210 | pages::create($params); |
184 | return redirect()->route('admin.editor-pages'); | 211 | return redirect()->route('admin.editor-pages'); |
185 | } | 212 | } |
186 | 213 | ||
187 | public function editor_pages_edit(pages $page) { | 214 | public function editor_pages_edit(pages $page) { |
188 | return view('admin.pages.edit', compact('page')); | 215 | return view('admin.pages.edit', compact('page')); |
189 | } | 216 | } |
190 | 217 | ||
191 | public function editor_pages_update(PagesRequest $request, pages $page) { | 218 | public function editor_pages_update(PagesRequest $request, pages $page) { |
192 | $params = $request->all(); | 219 | $params = $request->all(); |
193 | 220 | ||
194 | if ($request->has('image')) { | 221 | if ($request->has('image')) { |
195 | if (!empty($page->image)) Storage::delete($page->image); | 222 | if (!empty($page->image)) Storage::delete($page->image); |
196 | $params['image'] = $request->file('image')->store('pages', 'public'); | 223 | $params['image'] = $request->file('image')->store('pages', 'public'); |
197 | } else { | 224 | } else { |
198 | if (!empty($page->image)) $params['image'] = $page->image; | 225 | if (!empty($page->image)) $params['image'] = $page->image; |
199 | } | 226 | } |
200 | 227 | ||
201 | $page->update($params); | 228 | $page->update($params); |
202 | return redirect()->route('admin.editor-pages'); | 229 | return redirect()->route('admin.editor-pages'); |
203 | } | 230 | } |
204 | 231 | ||
205 | public function editor_pages_destroy(pages $page) { | 232 | public function editor_pages_destroy(pages $page) { |
206 | $page->delete(); | 233 | $page->delete(); |
207 | return redirect()->route('admin.editor-pages'); | 234 | return redirect()->route('admin.editor-pages'); |
208 | } | 235 | } |
209 | /////////////////////////////////////////////////////////////////// | 236 | /////////////////////////////////////////////////////////////////// |
210 | 237 | ||
211 | ////// кабинет - реклама сайта //////////////////////////////////// | 238 | ////// кабинет - реклама сайта //////////////////////////////////// |
212 | public function reclames(Request $request) { | 239 | public function reclames(Request $request) { |
213 | if ($request->ajax()) { | 240 | if ($request->ajax()) { |
214 | $rec = reclame::find($request->id); | 241 | $rec = reclame::find($request->id); |
215 | if ($request->status == 'close') { | 242 | if ($request->status == 'close') { |
216 | $rec->is_hidden = 0; | 243 | $rec->is_hidden = 0; |
217 | } else { | 244 | } else { |
218 | $rec->is_hidden = 1; | 245 | $rec->is_hidden = 1; |
219 | } | 246 | } |
220 | $rec->save(); | 247 | $rec->save(); |
221 | } | 248 | } |
222 | 249 | ||
223 | $reclames = reclame::query()->OrderBy('title')->paginate(15); | 250 | $reclames = reclame::query()->OrderBy('title')->paginate(15); |
224 | 251 | ||
225 | if ($request->ajax()) { | 252 | if ($request->ajax()) { |
226 | return view('admin.reclames.index_ajax', compact('reclames')); | 253 | return view('admin.reclames.index_ajax', compact('reclames')); |
227 | } else { | 254 | } else { |
228 | return view('admin.reclames.index', compact('reclames')); | 255 | return view('admin.reclames.index', compact('reclames')); |
229 | } | 256 | } |
230 | } | 257 | } |
231 | 258 | ||
232 | public function reclames_add() { | 259 | public function reclames_add() { |
233 | return view('admin.reclames.add'); | 260 | return view('admin.reclames.add'); |
234 | } | 261 | } |
235 | 262 | ||
236 | public function reclames_store(ReclameRequest $request) { | 263 | public function reclames_store(ReclameRequest $request) { |
237 | $params = $request->all(); | 264 | $params = $request->all(); |
238 | /*if('on' == $request->get('is_hidden')) { | 265 | /*if('on' == $request->get('is_hidden')) { |
239 | $params['is_hidden'] = 1; | 266 | $params['is_hidden'] = 1; |
240 | } else { | 267 | } else { |
241 | $params['is_hidden'] = 0; | 268 | $params['is_hidden'] = 0; |
242 | }*/ | 269 | }*/ |
243 | if ($request->has('image')) { | 270 | if ($request->has('image')) { |
244 | $params['image'] = $request->file('image')->store('reclames', 'public'); | 271 | $params['image'] = $request->file('image')->store('reclames', 'public'); |
245 | } | 272 | } |
246 | 273 | ||
247 | reclame::create($params); | 274 | reclame::create($params); |
248 | return redirect()->route('admin.reclames'); | 275 | return redirect()->route('admin.reclames'); |
249 | } | 276 | } |
250 | 277 | ||
251 | public function reclames_edit(reclame $reclame) { | 278 | public function reclames_edit(reclame $reclame) { |
252 | return view('admin.reclames.edit', compact('reclame')); | 279 | return view('admin.reclames.edit', compact('reclame')); |
253 | } | 280 | } |
254 | 281 | ||
255 | public function reclames_update(ReclameRequest $request, reclame $reclame) { | 282 | public function reclames_update(ReclameRequest $request, reclame $reclame) { |
256 | $params = $request->all(); | 283 | $params = $request->all(); |
257 | /*if('on' == $request->get('is_hidden')) { | 284 | /*if('on' == $request->get('is_hidden')) { |
258 | $params['is_hidden'] = 1; | 285 | $params['is_hidden'] = 1; |
259 | } else { | 286 | } else { |
260 | $params['is_hidden'] = 0; | 287 | $params['is_hidden'] = 0; |
261 | }*/ | 288 | }*/ |
262 | 289 | ||
263 | if ($request->has('image')) { | 290 | if ($request->has('image')) { |
264 | if (!empty($reclame->image)) Storage::delete($reclame->image); | 291 | if (!empty($reclame->image)) Storage::delete($reclame->image); |
265 | $params['image'] = $request->file('image')->store('reclames', 'public'); | 292 | $params['image'] = $request->file('image')->store('reclames', 'public'); |
266 | } else { | 293 | } else { |
267 | if (!empty($reclame->image)) $params['image'] = $reclame->image; | 294 | if (!empty($reclame->image)) $params['image'] = $reclame->image; |
268 | } | 295 | } |
269 | 296 | ||
270 | $reclame->update($params); | 297 | $reclame->update($params); |
271 | return redirect()->route('admin.reclames'); | 298 | return redirect()->route('admin.reclames'); |
272 | } | 299 | } |
273 | 300 | ||
274 | public function reclames_destroy(reclame $reclame) { | 301 | public function reclames_destroy(reclame $reclame) { |
275 | $reclame->delete(); | 302 | $reclame->delete(); |
276 | return redirect()->route('admin.reclames'); | 303 | return redirect()->route('admin.reclames'); |
277 | } | 304 | } |
278 | 305 | ||
279 | ///////////////////////////////////////////////////////////////// | 306 | ///////////////////////////////////////////////////////////////// |
280 | } | 307 | } |
281 | 308 |
app/Http/Controllers/MainController.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\Mail\MailRegistration; | 7 | use App\Mail\MailRegistration; |
8 | use App\Mail\MailRepair; | 8 | use App\Mail\MailRepair; |
9 | use App\Models\Ad_employer; | 9 | use App\Models\Ad_employer; |
10 | use App\Models\Ad_jobs; | 10 | use App\Models\Ad_jobs; |
11 | use App\Models\Category; | 11 | use App\Models\Category; |
12 | use App\Models\Education; | 12 | use App\Models\Education; |
13 | use App\Models\Employer; | ||
14 | use App\Models\employers_main; | 13 | use App\Models\employers_main; |
15 | use App\Models\Job_title; | 14 | use App\Models\Job_title; |
16 | use App\Models\Like_vacancy; | 15 | use App\Models\Like_vacancy; |
17 | use App\Models\Like_worker; | 16 | use App\Models\Like_worker; |
18 | use App\Models\News; | 17 | use App\Models\News; |
19 | use App\Models\Positions; | 18 | use App\Models\Positions; |
20 | use App\Models\reclame; | 19 | use App\Models\reclame; |
21 | use App\Models\User; | 20 | use App\Models\User; |
22 | use Illuminate\Http\Request; | 21 | use Illuminate\Http\Request; |
23 | use Illuminate\Support\Facades\Auth; | 22 | use Illuminate\Support\Facades\Auth; |
24 | use Illuminate\Support\Facades\DB; | 23 | use Illuminate\Support\Facades\DB; |
25 | use Illuminate\Support\Facades\Hash; | 24 | use Illuminate\Support\Facades\Hash; |
26 | use Illuminate\Support\Facades\Mail; | 25 | use Illuminate\Support\Facades\Mail; |
27 | use Illuminate\Support\Facades\Validator; | 26 | use Illuminate\Support\Facades\Validator; |
28 | use App\Classes\StatusUser; | 27 | use App\Models\PageContent; |
28 | use App\Enums\MainPageCounters; | ||
29 | 29 | ||
30 | class MainController extends Controller | 30 | class MainController extends Controller |
31 | { | 31 | { |
32 | // Главная страница публичной части | 32 | // Главная страница публичной части |
33 | public function index() { | 33 | public function index() { |
34 | $news = News::query()->orderByDesc('id')->limit(6)->get(); | 34 | $news = News::query()->orderByDesc('id')->limit(6)->get(); |
35 | 35 | ||
36 | $categories = Category::query()->selectRaw('count(ad_employers.id) as cnt, categories.*') | 36 | $categories = Category::query()->selectRaw('count(ad_employers.id) as cnt, categories.*') |
37 | ->join('ad_employers', 'ad_employers.category_id', '=', 'categories.id') | 37 | ->join('ad_employers', 'ad_employers.category_id', '=', 'categories.id') |
38 | ->OrderByDesc('created_at') | 38 | ->OrderByDesc('created_at') |
39 | ->GroupBy('categories.id') | 39 | ->GroupBy('categories.id') |
40 | ->get(); | 40 | ->get(); |
41 | 41 | ||
42 | //$Position = Category::query()->where('is_remove', '=', '0')->get(); | 42 | //$Position = Category::query()->where('is_remove', '=', '0')->get(); |
43 | $Job_title = Job_title::query()->where('is_remove', '=', '0')-> | 43 | $Job_title = Job_title::query()->where('is_remove', '=', '0')-> |
44 | where('is_bd', '=', '0')->orderBy('name')->get(); | 44 | where('is_bd', '=', '0')->orderBy('name')->get(); |
45 | 45 | ||
46 | /*$BigFlot = Array(); | 46 | /*$BigFlot = Array(); |
47 | foreach ($Position as $position) { | 47 | foreach ($Position as $position) { |
48 | $BigFlot[] = DB::table('ad_jobs')->selectRaw('name, job_titles.id as id_title, count(`ad_jobs`.`id`) as cnt, ad_jobs.position_ship')-> | 48 | $BigFlot[] = DB::table('ad_jobs')->selectRaw('name, job_titles.id as id_title, count(`ad_jobs`.`id`) as cnt, ad_jobs.position_ship')-> |
49 | orderBy('job_titles.sort')-> | 49 | orderBy('job_titles.sort')-> |
50 | join('job_titles', 'job_titles.id', '=', 'ad_jobs.job_title_id')-> | 50 | join('job_titles', 'job_titles.id', '=', 'ad_jobs.job_title_id')-> |
51 | where('position_ship', "$position->name")-> | 51 | where('position_ship', "$position->name")-> |
52 | groupby('job_title_id','position_ship')-> | 52 | groupby('job_title_id','position_ship')-> |
53 | get(); | 53 | get(); |
54 | } | 54 | } |
55 | $BigFlot = Array(); | 55 | $BigFlot = Array(); |
56 | foreach ($Position as $position) { | 56 | foreach ($Position as $position) { |
57 | $BigFlot[] = Ad_jobs::query()->with(['job_title' => function($query) { | 57 | $BigFlot[] = Ad_jobs::query()->with(['job_title' => function($query) { |
58 | $query->OrderBy('sort'); | 58 | $query->OrderBy('sort'); |
59 | }])->whereHas('job_title', function ($query) use ($position) { | 59 | }])->whereHas('job_title', function ($query) use ($position) { |
60 | $query->where('position_id', $position->id); | 60 | $query->where('position_id', $position->id); |
61 | })-> | 61 | })-> |
62 | distinct('job_title_id')-> | 62 | distinct('job_title_id')-> |
63 | get(); | 63 | get(); |
64 | }*/ | 64 | }*/ |
65 | /*$BigFlot = Array(); | 65 | /*$BigFlot = Array(); |
66 | foreach ($Position as $position) { | 66 | foreach ($Position as $position) { |
67 | $BigFlot[$position->id] = DB::table('ad_jobs')-> | 67 | $BigFlot[$position->id] = DB::table('ad_jobs')-> |
68 | selectRaw('name, count(`ad_jobs`.`id`) as cnt, job_title_id, job_titles.name, job_titles.position_id')-> | 68 | selectRaw('name, count(`ad_jobs`.`id`) as cnt, job_title_id, job_titles.name, job_titles.position_id')-> |
69 | orderByDesc('job_titles.sort')-> | 69 | orderByDesc('job_titles.sort')-> |
70 | join('job_titles', 'job_titles.id', '=', 'ad_jobs.job_title_id')-> | 70 | join('job_titles', 'job_titles.id', '=', 'ad_jobs.job_title_id')-> |
71 | where('job_titles.position_id', $position->id)-> | 71 | where('job_titles.position_id', $position->id)-> |
72 | groupby('job_title_id')-> | 72 | groupby('job_title_id')-> |
73 | get(); | 73 | get(); |
74 | }*/ | 74 | }*/ |
75 | $Data = DB::table('job_titles')-> | 75 | $Data = DB::table('job_titles')-> |
76 | selectRaw('job_titles.name as jn, count(`ad_jobs`.`job_title_id`) as cnt, job_titles.id as id_job, categories.name as catname, categories.id as id_cat')-> | 76 | selectRaw('job_titles.name as jn, count(`ad_jobs`.`job_title_id`) as cnt, job_titles.id as id_job, categories.name as catname, categories.id as id_cat')-> |
77 | where('categories.is_remove', '=', '0')-> | 77 | where('categories.is_remove', '=', '0')-> |
78 | where('job_titles.is_remove', '=', '0')-> | 78 | where('job_titles.is_remove', '=', '0')-> |
79 | where('job_titles.is_bd', '=' , '0')-> | 79 | where('job_titles.is_bd', '=' , '0')-> |
80 | leftJoin('ad_jobs', 'ad_jobs.job_title_id', '=', 'job_titles.id')-> | 80 | leftJoin('ad_jobs', 'ad_jobs.job_title_id', '=', 'job_titles.id')-> |
81 | join('categories', 'categories.id', '=', 'job_titles.position_id')-> | 81 | join('categories', 'categories.id', '=', 'job_titles.position_id')-> |
82 | groupBy('job_titles.id')->orderBy('categories.id')->orderByDesc('job_titles.position_id')-> | 82 | groupBy('job_titles.id')->orderBy('categories.id')->orderByDesc('job_titles.position_id')-> |
83 | orderByDesc('job_titles.sort')->get()->toArray(); | 83 | orderByDesc('job_titles.sort')->get()->toArray(); |
84 | 84 | ||
85 | $Main_Job = array(); | 85 | $Main_Job = array(); |
86 | $name_cat = ''; | 86 | $name_cat = ''; |
87 | foreach ($Data as $it) { | 87 | foreach ($Data as $it) { |
88 | $it_arr = (array)$it; | 88 | $it_arr = (array)$it; |
89 | if ($name_cat != $it_arr['catname']) $name_cat = $it_arr['catname']; | 89 | if ($name_cat != $it_arr['catname']) $name_cat = $it_arr['catname']; |
90 | $Main_Job[$name_cat][] = $it_arr; | 90 | $Main_Job[$name_cat][] = $it_arr; |
91 | } | 91 | } |
92 | 92 | ||
93 | $employers = employers_main::query()->with('employer')-> | 93 | $employers = employers_main::query()->with('employer')-> |
94 | whereHas('employer', function ($query) { | 94 | whereHas('employer', function ($query) { |
95 | $query->where('status_hidden', '=', '0'); | 95 | $query->where('status_hidden', '=', '0'); |
96 | })-> | 96 | })-> |
97 | orderBy('sort')->get(); | 97 | orderBy('sort')->get(); |
98 | $vacancy = Ad_jobs::query()->with('job_title')->orderBy('position_ship')->get(); | 98 | $vacancy = Ad_jobs::query()->with('job_title')->orderBy('position_ship')->get(); |
99 | return view('index', compact('news', 'Job_title', 'categories', 'employers', 'vacancy', 'Main_Job')); | 99 | |
100 | $block_names = MainPageCounters::values();; | ||
101 | $blocks_counters = PageContent::select('name', 'title', 'description', 'extra') | ||
102 | ->whereIn('name', $block_names) | ||
103 | ->orderBy('name', 'asc') | ||
104 | ->get() | ||
105 | ->keyBy('name') | ||
106 | ->toArray(); | ||
107 | |||
108 | return view('index', compact('news', 'Job_title', 'categories', 'employers', 'vacancy', 'Main_Job', 'blocks_counters')); | ||
100 | } | 109 | } |
101 | 110 | ||
102 | public function search_vacancies(Request $request) { | 111 | public function search_vacancies(Request $request) { |
103 | if ($request->has('search')) { | 112 | if ($request->has('search')) { |
104 | $search = $request->get('search'); | 113 | $search = $request->get('search'); |
105 | $job_titles = Job_title::query()->where('name', 'LIKE', "%$search%")->first(); | 114 | $job_titles = Job_title::query()->where('name', 'LIKE', "%$search%")->first(); |
106 | if (isset($job_titles->id)) | 115 | if (isset($job_titles->id)) |
107 | if ($job_titles->id > 0) | 116 | if ($job_titles->id > 0) |
108 | return redirect()->route('vacancies', ['job' => $job_titles->id]); | 117 | return redirect()->route('vacancies', ['job' => $job_titles->id]); |
109 | } | 118 | } |
110 | } | 119 | } |
111 | 120 | ||
112 | // Лайк вакансии | 121 | // Лайк вакансии |
113 | public function like_vacancy(Request $request) { | 122 | public function like_vacancy(Request $request) { |
114 | $IP_address = RusDate::ip_addr_client(); | 123 | $IP_address = RusDate::ip_addr_client(); |
115 | 124 | ||
116 | if ($request->has('code_record')) { | 125 | if ($request->has('code_record')) { |
117 | if ($request->has('delete')) { | 126 | if ($request->has('delete')) { |
118 | $code = $request->get('code_record'); | 127 | $code = $request->get('code_record'); |
119 | $atomic_era = Like_vacancy::select('id')-> | 128 | $atomic_era = Like_vacancy::select('id')-> |
120 | where('code_record', '=', $code)->toSql(); | 129 | where('code_record', '=', $code)->toSql(); |
121 | DB::table('like_vacancy')->where('code_record', $request->get('code_record'))->delete(); | 130 | DB::table('like_vacancy')->where('code_record', $request->get('code_record'))->delete(); |
122 | 131 | ||
123 | } else { | 132 | } else { |
124 | $params = $request->all(); | 133 | $params = $request->all(); |
125 | $params['ip_address'] = $IP_address; | 134 | $params['ip_address'] = $IP_address; |
126 | Like_vacancy::create($params); | 135 | Like_vacancy::create($params); |
127 | } | 136 | } |
128 | } | 137 | } |
129 | } | 138 | } |
130 | 139 | ||
131 | // Лайк соискателю. | 140 | // Лайк соискателю. |
132 | public function like_worker(Request $request) { | 141 | public function like_worker(Request $request) { |
133 | $IP_address = RusDate::ip_addr_client(); | 142 | $IP_address = RusDate::ip_addr_client(); |
134 | 143 | ||
135 | if ($request->has('code_record')) { | 144 | if ($request->has('code_record')) { |
136 | if ($request->has('delete')) { | 145 | if ($request->has('delete')) { |
137 | $atomic_era = Like_worker::select('id')-> | 146 | $atomic_era = Like_worker::select('id')-> |
138 | where('code_record', '=', $request-> | 147 | where('code_record', '=', $request-> |
139 | get('code_record'))->first(); | 148 | get('code_record'))->first(); |
140 | 149 | ||
141 | DB::table('like_worker')->where('code_record', $request->get('code_record'))->delete(); | 150 | DB::table('like_worker')->where('code_record', $request->get('code_record'))->delete(); |
142 | 151 | ||
143 | return "Вот и результат удаления!"; | 152 | return "Вот и результат удаления!"; |
144 | 153 | ||
145 | } else { | 154 | } else { |
146 | $params = $request->all(); | 155 | $params = $request->all(); |
147 | $params['ip_address'] = $IP_address; | 156 | $params['ip_address'] = $IP_address; |
148 | Like_worker::create($params); | 157 | Like_worker::create($params); |
149 | } | 158 | } |
150 | } | 159 | } |
151 | } | 160 | } |
152 | 161 | ||
153 | public function vacancies(Request $request) { | 162 | public function vacancies(Request $request) { |
154 | //должности | 163 | //должности |
155 | $Job_title = Job_title::query()->where('is_remove', '=', '0')-> | 164 | $Job_title = Job_title::query()->where('is_remove', '=', '0')-> |
156 | where('is_bd', '=', '0')->orderByDesc('sort')-> | 165 | where('is_bd', '=', '0')->orderByDesc('sort')-> |
157 | orderBy('name')->get(); | 166 | orderBy('name')->get(); |
158 | 167 | ||
159 | $categories = Category::query()->selectRaw('count(ad_employers.id) as cnt, categories.*') | 168 | $categories = Category::query()->selectRaw('count(ad_employers.id) as cnt, categories.*') |
160 | ->selectRaw('min(ad_employers.salary) as min_salary, max(ad_employers.salary) as max_salary') | 169 | ->selectRaw('min(ad_employers.salary) as min_salary, max(ad_employers.salary) as max_salary') |
161 | ->join('ad_employers', 'ad_employers.category_id', '=', 'categories.id') | 170 | ->join('ad_employers', 'ad_employers.category_id', '=', 'categories.id') |
162 | ->join('ad_jobs', 'ad_jobs.ad_employer_id', '=', 'ad_employers.id'); | 171 | ->join('ad_jobs', 'ad_jobs.ad_employer_id', '=', 'ad_employers.id'); |
163 | 172 | ||
164 | //категории и вакансии | 173 | //категории и вакансии |
165 | if (($request->has('job')) && ($request->get('job') > 0)) { | 174 | if (($request->has('job')) && ($request->get('job') > 0)) { |
166 | $categories = $categories->Where('job_title_id', '=', $request->get('job')); | 175 | $categories = $categories->Where('job_title_id', '=', $request->get('job')); |
167 | } | 176 | } |
168 | 177 | ||
169 | $categories = $categories->OrderByDesc('created_at')->GroupBy('categories.id')->get(); | 178 | $categories = $categories->OrderByDesc('created_at')->GroupBy('categories.id')->get(); |
170 | 179 | ||
171 | //$Position = Category::query()->where('is_remove', '=', '0')->get(); | 180 | //$Position = Category::query()->where('is_remove', '=', '0')->get(); |
172 | 181 | ||
173 | /*$BigFlot = Array(); | 182 | /*$BigFlot = Array(); |
174 | foreach ($Position as $position) { | 183 | foreach ($Position as $position) { |
175 | $War_flot = DB::table('ad_jobs')->selectRaw('name, job_titles.id as id_title, count(`ad_jobs`.`id`) as cnt, ad_jobs.position_ship')-> | 184 | $War_flot = DB::table('ad_jobs')->selectRaw('name, job_titles.id as id_title, count(`ad_jobs`.`id`) as cnt, ad_jobs.position_ship')-> |
176 | orderBy('job_titles.sort')-> | 185 | orderBy('job_titles.sort')-> |
177 | join('job_titles', 'job_titles.id', '=', 'ad_jobs.job_title_id')-> | 186 | join('job_titles', 'job_titles.id', '=', 'ad_jobs.job_title_id')-> |
178 | where('position_ship', "$position->name"); | 187 | where('position_ship', "$position->name"); |
179 | if (($request->has('job')) && ($request->get('job') > 0)) { | 188 | if (($request->has('job')) && ($request->get('job') > 0)) { |
180 | $War_flot = $War_flot->where('job_title_id', $request->get('job')); | 189 | $War_flot = $War_flot->where('job_title_id', $request->get('job')); |
181 | } | 190 | } |
182 | $War_flot = $War_flot->groupby('job_title_id','position_ship')->get(); | 191 | $War_flot = $War_flot->groupby('job_title_id','position_ship')->get(); |
183 | $BigFlot[] = $War_flot; | 192 | $BigFlot[] = $War_flot; |
184 | }*/ | 193 | }*/ |
185 | /* | 194 | /* |
186 | $BigFlot = Array(); | 195 | $BigFlot = Array(); |
187 | foreach ($Position as $position) { | 196 | foreach ($Position as $position) { |
188 | $WarFlot = DB::table('ad_jobs')-> | 197 | $WarFlot = DB::table('ad_jobs')-> |
189 | selectRaw('name, count(`ad_jobs`.`id`) as cnt, job_title_id, job_titles.name')-> | 198 | selectRaw('name, count(`ad_jobs`.`id`) as cnt, job_title_id, job_titles.name')-> |
190 | orderByDesc('job_titles.sort')-> | 199 | orderByDesc('job_titles.sort')-> |
191 | join('job_titles', 'job_titles.id', '=', 'ad_jobs.job_title_id')-> | 200 | join('job_titles', 'job_titles.id', '=', 'ad_jobs.job_title_id')-> |
192 | where('job_titles.position_id', $position->id); | 201 | where('job_titles.position_id', $position->id); |
193 | if (($request->has('job')) && ($request->get('job') > 0)) { | 202 | if (($request->has('job')) && ($request->get('job') > 0)) { |
194 | $WarFlot = $WarFlot->where('job_title_id', $request->get('job')); | 203 | $WarFlot = $WarFlot->where('job_title_id', $request->get('job')); |
195 | } | 204 | } |
196 | $WarFlot = $WarFlot->groupby('job_title_id')->get(); | 205 | $WarFlot = $WarFlot->groupby('job_title_id')->get(); |
197 | $BigFlot[] = $WarFlot; | 206 | $BigFlot[] = $WarFlot; |
198 | } | 207 | } |
199 | */ | 208 | */ |
200 | 209 | ||
201 | $Data = DB::table('job_titles')-> | 210 | $Data = DB::table('job_titles')-> |
202 | selectRaw('job_titles.name as jn, count(`ad_jobs`.`job_title_id`) as cnt, job_titles.id as id_job, categories.name as catname, categories.id as id_cat')-> | 211 | selectRaw('job_titles.name as jn, count(`ad_jobs`.`job_title_id`) as cnt, job_titles.id as id_job, categories.name as catname, categories.id as id_cat')-> |
203 | where('categories.is_remove', '=', '0')-> | 212 | where('categories.is_remove', '=', '0')-> |
204 | where('job_titles.is_bd', '=' , '0')-> | 213 | where('job_titles.is_bd', '=' , '0')-> |
205 | where('job_titles.is_remove', '=', '0'); | 214 | where('job_titles.is_remove', '=', '0'); |
206 | if (($request->has('job')) && ($request->get('job') > 0)) { | 215 | if (($request->has('job')) && ($request->get('job') > 0)) { |
207 | $Data = $Data->where('job_title_id', $request->get('job')); | 216 | $Data = $Data->where('job_title_id', $request->get('job')); |
208 | } | 217 | } |
209 | $Data = $Data->leftJoin('ad_jobs', 'ad_jobs.job_title_id', '=', 'job_titles.id')-> | 218 | $Data = $Data->leftJoin('ad_jobs', 'ad_jobs.job_title_id', '=', 'job_titles.id')-> |
210 | join('categories', 'categories.id', '=', 'job_titles.position_id')-> | 219 | join('categories', 'categories.id', '=', 'job_titles.position_id')-> |
211 | groupBy('job_titles.id')->orderBy('categories.id')->orderByDesc('job_titles.position_id')-> | 220 | groupBy('job_titles.id')->orderBy('categories.id')->orderByDesc('job_titles.position_id')-> |
212 | orderByDesc('job_titles.sort')->get()->toArray(); | 221 | orderByDesc('job_titles.sort')->get()->toArray(); |
213 | 222 | ||
214 | $Main_Job = array(); | 223 | $Main_Job = array(); |
215 | $name_cat = ''; | 224 | $name_cat = ''; |
216 | foreach ($Data as $it) { | 225 | foreach ($Data as $it) { |
217 | $it_arr = (array)$it; | 226 | $it_arr = (array)$it; |
218 | if ($name_cat != $it_arr['catname']) | 227 | if ($name_cat != $it_arr['catname']) |
219 | $name_cat = $it_arr['catname']; | 228 | $name_cat = $it_arr['catname']; |
220 | $Main_Job[$name_cat][] = $it_arr; | 229 | $Main_Job[$name_cat][] = $it_arr; |
221 | } | 230 | } |
222 | 231 | ||
223 | if ($request->ajax()) { | 232 | if ($request->ajax()) { |
224 | return view('ajax.new_sky', compact('categories', 'Main_Job')); | 233 | return view('ajax.new_sky', compact('categories', 'Main_Job')); |
225 | } else { | 234 | } else { |
226 | return view('new_sky', compact('Job_title', 'categories', 'Main_Job')); | 235 | return view('new_sky', compact('Job_title', 'categories', 'Main_Job')); |
227 | } | 236 | } |
228 | } | 237 | } |
229 | 238 | ||
230 | //Вакансии категория детальная | 239 | //Вакансии категория детальная |
231 | public function list_vacancies(Category $categories, Request $request) { | 240 | public function list_vacancies(Category $categories, Request $request) { |
232 | if (isset(Auth()->user()->id)) | 241 | if (isset(Auth()->user()->id)) |
233 | $uid = Auth()->user()->id; | 242 | $uid = Auth()->user()->id; |
234 | else | 243 | else |
235 | $uid = 0; | 244 | $uid = 0; |
236 | 245 | ||
237 | if ($request->get('job') == 0) | 246 | if ($request->get('job') == 0) |
238 | $job_search = ''; | 247 | $job_search = ''; |
239 | else | 248 | else |
240 | $job_search = $request->get('job'); | 249 | $job_search = $request->get('job'); |
241 | 250 | ||
242 | $Query = Ad_employer::with('jobs')-> | 251 | $Query = Ad_employer::with('jobs')-> |
243 | with('cat')-> | 252 | with('cat')-> |
244 | with('employer')-> | 253 | with('employer')-> |
245 | whereHas('jobs_code', function ($query) use ($job_search) { | 254 | whereHas('jobs_code', function ($query) use ($job_search) { |
246 | if (!empty($job_search)) { | 255 | if (!empty($job_search)) { |
247 | $query->where('job_title_id', $job_search); | 256 | $query->where('job_title_id', $job_search); |
248 | } | 257 | } |
249 | })->select('ad_employers.*'); | 258 | })->select('ad_employers.*'); |
250 | 259 | ||
251 | if (isset($categories->id) && ($categories->id > 0)) { | 260 | if (isset($categories->id) && ($categories->id > 0)) { |
252 | $Query = $Query->where('category_id', '=', $categories->id); | 261 | $Query = $Query->where('category_id', '=', $categories->id); |
253 | $Name_categori = Category::query()->where('id', '=', $categories->id)->get(); | 262 | $Name_categori = Category::query()->where('id', '=', $categories->id)->get(); |
254 | } else { | 263 | } else { |
255 | $Name_categori = ''; | 264 | $Name_categori = ''; |
256 | } | 265 | } |
257 | 266 | ||
258 | if ($request->get('sort')) { | 267 | if ($request->get('sort')) { |
259 | $sort = $request->get('sort'); | 268 | $sort = $request->get('sort'); |
260 | switch ($sort) { | 269 | switch ($sort) { |
261 | case 'name_up': $Query = $Query->orderBy('name')->orderBy('id'); break; | 270 | case 'name_up': $Query = $Query->orderBy('name')->orderBy('id'); break; |
262 | case 'name_down': $Query = $Query->orderByDesc('name')->orderby('id'); break; | 271 | case 'name_down': $Query = $Query->orderByDesc('name')->orderby('id'); break; |
263 | case 'created_at_up': $Query = $Query->OrderBy('created_at')->orderBy('id'); break; | 272 | case 'created_at_up': $Query = $Query->OrderBy('created_at')->orderBy('id'); break; |
264 | case 'created_at_down': $Query = $Query->orderByDesc('created_at')->orderBy('id'); break; | 273 | case 'created_at_down': $Query = $Query->orderByDesc('created_at')->orderBy('id'); break; |
265 | case 'default': $Query = $Query->orderBy('id')->orderby('updated_at'); break; | 274 | case 'default': $Query = $Query->orderBy('id')->orderby('updated_at'); break; |
266 | default: $Query = $Query->orderbyDesc('updated_at')->orderBy('id'); break; | 275 | default: $Query = $Query->orderbyDesc('updated_at')->orderBy('id'); break; |
267 | } | 276 | } |
268 | } | 277 | } |
269 | 278 | ||
270 | $Job_title = Job_title::query()->where('is_remove', '=', '0')-> | 279 | $Job_title = Job_title::query()->where('is_remove', '=', '0')-> |
271 | where('is_bd', '=', '0')->orderByDesc('sort')-> | 280 | where('is_bd', '=', '0')->orderByDesc('sort')-> |
272 | orderBy('name')->get(); | 281 | orderBy('name')->get(); |
273 | 282 | ||
274 | $Query_count = $Query->count(); | 283 | $Query_count = $Query->count(); |
275 | 284 | ||
276 | $Query = $Query->OrderByDesc('updated_at')->paginate(3); | 285 | $Query = $Query->OrderByDesc('updated_at')->paginate(3); |
277 | 286 | ||
278 | $Reclama = reclame::query()->get(); | 287 | $Reclama = reclame::query()->get(); |
279 | 288 | ||
280 | if ($request->ajax()) { | 289 | if ($request->ajax()) { |
281 | if ($request->has('title')) { | 290 | if ($request->has('title')) { |
282 | return view('ajax.list_category', compact( | 291 | return view('ajax.list_category', compact( |
283 | 'Name_categori' | 292 | 'Name_categori' |
284 | )); | 293 | )); |
285 | } else { | 294 | } else { |
286 | return view('ajax.list_vacancies', compact('Query', | 295 | return view('ajax.list_vacancies', compact('Query', |
287 | 'Query_count', | 296 | 'Query_count', |
288 | 'Name_categori', | 297 | 'Name_categori', |
289 | 'Reclama', | 298 | 'Reclama', |
290 | 'categories', | 299 | 'categories', |
291 | 'Job_title', | 300 | 'Job_title', |
292 | 'uid')); | 301 | 'uid')); |
293 | } | 302 | } |
294 | } else { | 303 | } else { |
295 | //Вернуть все | 304 | //Вернуть все |
296 | return view('list_vacancies', compact('Query', | 305 | return view('list_vacancies', compact('Query', |
297 | 'Query_count', | 306 | 'Query_count', |
298 | 'Reclama', | 307 | 'Reclama', |
299 | 'Name_categori', | 308 | 'Name_categori', |
300 | 'categories', | 309 | 'categories', |
301 | 'Job_title', | 310 | 'Job_title', |
302 | 'uid')); | 311 | 'uid')); |
303 | } | 312 | } |
304 | } | 313 | } |
305 | 314 | ||
306 | // Образование | 315 | // Образование |
307 | public function education(Request $request) { | 316 | public function education(Request $request) { |
308 | $educations = Education::query(); | 317 | $educations = Education::query(); |
309 | if (($request->has('search')) && (!empty($request->get('search')))) { | 318 | if (($request->has('search')) && (!empty($request->get('search')))) { |
310 | $search = trim($request->get('search')); | 319 | $search = trim($request->get('search')); |
311 | $educations = $educations->where('name', 'LIKE', "%$search%"); | 320 | $educations = $educations->where('name', 'LIKE', "%$search%"); |
312 | } | 321 | } |
313 | 322 | ||
314 | if ($request->get('sort')) { | 323 | if ($request->get('sort')) { |
315 | $sort = $request->get('sort'); | 324 | $sort = $request->get('sort'); |
316 | switch ($sort) { | 325 | switch ($sort) { |
317 | case 'name_up': $educations = $educations->orderBy('name')->orderBy('id'); break; | 326 | case 'name_up': $educations = $educations->orderBy('name')->orderBy('id'); break; |
318 | case 'name_down': $educations = $educations->orderByDesc('name')->orderby('id'); break; | 327 | case 'name_down': $educations = $educations->orderByDesc('name')->orderby('id'); break; |
319 | case 'created_at_up': $educations = $educations->OrderBy('created_at')->orderBy('id'); break; | 328 | case 'created_at_up': $educations = $educations->OrderBy('created_at')->orderBy('id'); break; |
320 | case 'created_at_down': $educations = $educations->orderByDesc('created_at')->orderBy('id'); break; | 329 | case 'created_at_down': $educations = $educations->orderByDesc('created_at')->orderBy('id'); break; |
321 | case 'default': $educations = $educations->orderBy('id')->orderby('updated_at'); break; | 330 | case 'default': $educations = $educations->orderBy('id')->orderby('updated_at'); break; |
322 | default: $educations = $educations->orderBy('id')->orderby('updated_at'); break; | 331 | default: $educations = $educations->orderBy('id')->orderby('updated_at'); break; |
323 | } | 332 | } |
324 | } | 333 | } |
325 | 334 | ||
326 | $count_edu = $educations->count(); | 335 | $count_edu = $educations->count(); |
327 | $educations = $educations->paginate(6); | 336 | $educations = $educations->paginate(6); |
328 | if ($request->ajax()) { | 337 | if ($request->ajax()) { |
329 | return view('ajax.education', compact('educations')); | 338 | return view('ajax.education', compact('educations')); |
330 | } else { | 339 | } else { |
331 | return view('education', compact('educations', 'count_edu')); | 340 | return view('education', compact('educations', 'count_edu')); |
332 | } | 341 | } |
333 | } | 342 | } |
334 | 343 | ||
335 | // Контакты | 344 | // Контакты |
336 | public function contacts() { | 345 | public function contacts() { |
337 | return view('contacts'); | 346 | return view('contacts'); |
338 | } | 347 | } |
339 | 348 | ||
340 | // Вход в личный кабинет | 349 | // Вход в личный кабинет |
341 | public function input_login(Request $request) | 350 | public function input_login(Request $request) |
342 | { | 351 | { |
343 | $params = $request->all(); | 352 | $params = $request->all(); |
344 | 353 | ||
345 | 354 | ||
346 | $rules = [ | 355 | $rules = [ |
347 | 'email' => 'required|string|email', | 356 | 'email' => 'required|string|email', |
348 | 'password' => 'required|string|min:3|max:25', | 357 | 'password' => 'required|string|min:3|max:25', |
349 | ]; | 358 | ]; |
350 | 359 | ||
351 | $messages = [ | 360 | $messages = [ |
352 | 'required' => 'Укажите обязательное поле «:attribute»', | 361 | 'required' => 'Укажите обязательное поле «:attribute»', |
353 | 'email' => 'Введите корректный email', | 362 | 'email' => 'Введите корректный email', |
354 | 'min' => [ | 363 | 'min' => [ |
355 | 'string' => 'Поле «:attribute» должно быть не меньше :min символов', | 364 | 'string' => 'Поле «:attribute» должно быть не меньше :min символов', |
356 | 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' | 365 | 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' |
357 | ], | 366 | ], |
358 | 'max' => [ | 367 | 'max' => [ |
359 | 'string' => 'Поле «:attribute» должно быть не больше :max символов', | 368 | 'string' => 'Поле «:attribute» должно быть не больше :max символов', |
360 | 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' | 369 | 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' |
361 | ], | 370 | ], |
362 | ]; | 371 | ]; |
363 | $validator = Validator::make($request->all(), $rules, $messages); | 372 | $validator = Validator::make($request->all(), $rules, $messages); |
364 | if ($validator->fails()) { | 373 | if ($validator->fails()) { |
365 | if (Auth::check()) | 374 | if (Auth::check()) |
366 | $user_id = $request->user()->id; | 375 | $user_id = $request->user()->id; |
367 | else | 376 | else |
368 | $user_id = 0; | 377 | $user_id = 0; |
369 | 378 | ||
370 | if ($user_id > 0) | 379 | if ($user_id > 0) |
371 | return json_encode(Array("ERROR" => "Email или пароль невалидный!")); | 380 | return json_encode(Array("ERROR" => "Email или пароль невалидный!")); |
372 | else | 381 | else |
373 | return redirect()->route('index')->with('Error', "Email или пароль невалидный"); | 382 | return redirect()->route('index')->with('Error', "Email или пароль невалидный"); |
374 | } else { | 383 | } else { |
375 | $credentials = $request->only('email', 'password'); | 384 | $credentials = $request->only('email', 'password'); |
376 | 385 | ||
377 | if (Auth::attempt($credentials, $request->has('remember'))) { | 386 | if (Auth::attempt($credentials, $request->has('remember'))) { |
378 | 387 | ||
379 | if (is_null(Auth::user()->email_verified_at)) { | 388 | if (is_null(Auth::user()->email_verified_at)) { |
380 | Auth::logout(); | 389 | Auth::logout(); |
381 | return json_encode(Array("ERROR" => "Адрес почты не подтвержден")); | 390 | return json_encode(Array("ERROR" => "Адрес почты не подтвержден")); |
382 | } | 391 | } |
383 | 392 | ||
384 | if (Auth::user()->is_worker) { | 393 | if (Auth::user()->is_worker) { |
385 | return json_encode(Array("REDIRECT" => redirect()->route('worker.cabinet')->getTargetUrl())); | 394 | return json_encode(Array("REDIRECT" => redirect()->route('worker.cabinet')->getTargetUrl())); |
386 | } else { | 395 | } else { |
387 | return json_encode(Array("REDIRECT" => redirect()->route('employer.cabinet')->getTargetUrl())); | 396 | return json_encode(Array("REDIRECT" => redirect()->route('employer.cabinet')->getTargetUrl())); |
388 | } | 397 | } |
389 | 398 | ||
390 | return json_encode(Array("SUCCESS" => "Вы успешно вошли в личный кабинет")); | 399 | return json_encode(Array("SUCCESS" => "Вы успешно вошли в личный кабинет")); |
391 | //->route('index') | 400 | //->route('index') |
392 | //->with('success', 'Вы вошли в личный кабинет.'); | 401 | //->with('success', 'Вы вошли в личный кабинет.'); |
393 | } else { | 402 | } else { |
394 | return json_encode(Array("ERROR" => "Неверный логин или пароль!")); | 403 | return json_encode(Array("ERROR" => "Неверный логин или пароль!")); |
395 | } | 404 | } |
396 | } | 405 | } |
397 | } | 406 | } |
398 | 407 | ||
399 | // Восстановление пароля | 408 | // Восстановление пароля |
400 | public function repair_password(Request $request) { | 409 | public function repair_password(Request $request) { |
401 | $rules = [ | 410 | $rules = [ |
402 | 'email' => 'required|string|email', | 411 | 'email' => 'required|string|email', |
403 | ]; | 412 | ]; |
404 | 413 | ||
405 | $messages = [ | 414 | $messages = [ |
406 | 'required' => 'Укажите обязательное поле «:attribute»', | 415 | 'required' => 'Укажите обязательное поле «:attribute»', |
407 | 'email' => 'Введите корректный email', | 416 | 'email' => 'Введите корректный email', |
408 | 'min' => [ | 417 | 'min' => [ |
409 | 'string' => 'Поле «:attribute» должно быть не меньше :min символов', | 418 | 'string' => 'Поле «:attribute» должно быть не меньше :min символов', |
410 | 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' | 419 | 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' |
411 | ], | 420 | ], |
412 | 'max' => [ | 421 | 'max' => [ |
413 | 'string' => 'Поле «:attribute» должно быть не больше :max символов', | 422 | 'string' => 'Поле «:attribute» должно быть не больше :max символов', |
414 | 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' | 423 | 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' |
415 | ], | 424 | ], |
416 | ]; | 425 | ]; |
417 | 426 | ||
418 | $validator = Validator::make($request->all(), $rules, $messages); | 427 | $validator = Validator::make($request->all(), $rules, $messages); |
419 | 428 | ||
420 | if ($validator->fails()) { | 429 | if ($validator->fails()) { |
421 | return redirect()->back()->with('Error', "Email невалидный"); | 430 | return redirect()->back()->with('Error', "Email невалидный"); |
422 | } else { | 431 | } else { |
423 | $new_password = Tools::generator_id(10); | 432 | $new_password = Tools::generator_id(10); |
424 | $hash_password = Hash::make($new_password); | 433 | $hash_password = Hash::make($new_password); |
425 | $user = User::query()->where('email', $request->get('email'))->first(); | 434 | $user = User::query()->where('email', $request->get('email'))->first(); |
426 | $EditRec = User::find($user->id); | 435 | $EditRec = User::find($user->id); |
427 | $EditRec->password = $hash_password; | 436 | $EditRec->password = $hash_password; |
428 | $EditRec->save(); | 437 | $EditRec->save(); |
429 | 438 | ||
430 | foreach ([$request->get('email')] as $recipient) { | 439 | foreach ([$request->get('email')] as $recipient) { |
431 | Mail::to($recipient)->send(new MailRepair($new_password)); | 440 | Mail::to($recipient)->send(new MailRepair($new_password)); |
432 | } | 441 | } |
433 | return redirect()->route('index'); | 442 | return redirect()->route('index'); |
434 | 443 | ||
435 | } | 444 | } |
436 | 445 | ||
437 | } | 446 | } |
438 | 447 | ||
439 | // Вывод новостей | 448 | // Вывод новостей |
440 | public function news(Request $request) { | 449 | public function news(Request $request) { |
441 | $Query = News::query(); | 450 | $Query = News::query(); |
442 | if ($request->has('search')) { | 451 | if ($request->has('search')) { |
443 | $search = $request->get('search'); | 452 | $search = $request->get('search'); |
444 | $Query = $Query->where('title', 'LIKE', "%$search%")-> | 453 | $Query = $Query->where('title', 'LIKE', "%$search%")-> |
445 | orWhere('text', 'LIKE', "%$search%"); | 454 | orWhere('text', 'LIKE', "%$search%"); |
446 | } | 455 | } |
447 | 456 | ||
448 | if ($request->ajax()) { | 457 | if ($request->ajax()) { |
449 | if ($request->get('sort')) { | 458 | if ($request->get('sort')) { |
450 | $sort = $request->get('sort'); | 459 | $sort = $request->get('sort'); |
451 | switch ($sort) { | 460 | switch ($sort) { |
452 | case 'name_up': $Query = $Query->orderBy('title')->orderBy('id'); break; | 461 | case 'name_up': $Query = $Query->orderBy('title')->orderBy('id'); break; |
453 | case 'name_down': $Query = $Query->orderByDesc('title')->orderby('id'); break; | 462 | case 'name_down': $Query = $Query->orderByDesc('title')->orderby('id'); break; |
454 | case 'created_at_up': $Query = $Query->OrderBy('created_at')->orderBy('id'); break; | 463 | case 'created_at_up': $Query = $Query->OrderBy('created_at')->orderBy('id'); break; |
455 | case 'created_at_down': $Query = $Query->orderByDesc('created_at')->orderBy('id'); break; | 464 | case 'created_at_down': $Query = $Query->orderByDesc('created_at')->orderBy('id'); break; |
456 | case 'default': $Query = $Query->orderBy('id')->orderby('updated_at'); break; | 465 | case 'default': $Query = $Query->orderBy('id')->orderby('updated_at'); break; |
457 | default: $Query = $Query->orderBy('id')->orderby('updated_at'); break; | 466 | default: $Query = $Query->orderBy('id')->orderby('updated_at'); break; |
458 | } | 467 | } |
459 | } | 468 | } |
460 | } | 469 | } |
461 | $Query_count = $Query->count(); | 470 | $Query_count = $Query->count(); |
462 | $Query = $Query->paginate(6); | 471 | $Query = $Query->paginate(6); |
463 | 472 | ||
464 | if ($request->ajax()) { | 473 | if ($request->ajax()) { |
465 | return view('ajax.news-list', compact('Query', 'Query_count')); | 474 | return view('ajax.news-list', compact('Query', 'Query_count')); |
466 | } else { | 475 | } else { |
467 | return view('news-list', compact('Query', 'Query_count')); | 476 | return view('news-list', compact('Query', 'Query_count')); |
468 | } | 477 | } |
469 | } | 478 | } |
470 | 479 | ||
471 | //Детальная новость | 480 | //Детальная новость |
472 | public function detail_new(News $new) { | 481 | public function detail_new(News $new) { |
473 | // Наборка | 482 | // Наборка |
474 | $Query = News::query()->where('id', $new->id)->get(); | 483 | $Query = News::query()->where('id', $new->id)->get(); |
475 | $title = $Query[0]->title; | 484 | $title = $Query[0]->title; |
476 | $All_Query = News::query()->paginate(8); | 485 | $All_Query = News::query()->paginate(8); |
477 | return view('detail_new', compact('Query', 'All_Query', 'title')); | 486 | return view('detail_new', compact('Query', 'All_Query', 'title')); |
478 | } | 487 | } |
479 | } | 488 | } |
app/Models/PageContent.php
File was created | 1 | <?php | |
2 | |||
3 | namespace App\Models; | ||
4 | |||
5 | use Illuminate\Database\Eloquent\Factories\HasFactory; | ||
6 | use Illuminate\Database\Eloquent\Model; | ||
7 | |||
8 | class PageContent extends Model | ||
9 | { | ||
10 | use HasFactory; | ||
11 | |||
12 | protected $fillable = [ | ||
13 | 'name', | ||
14 | 'title', | ||
15 | 'description', | ||
16 | 'extra' | ||
17 | ]; | ||
18 | } | ||
19 |
config/database.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | use Illuminate\Support\Str; | 3 | use Illuminate\Support\Str; |
4 | 4 | ||
5 | return [ | 5 | return [ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | |-------------------------------------------------------------------------- | 8 | |-------------------------------------------------------------------------- |
9 | | Default Database Connection Name | 9 | | Default Database Connection Name |
10 | |-------------------------------------------------------------------------- | 10 | |-------------------------------------------------------------------------- |
11 | | | 11 | | |
12 | | Here you may specify which of the database connections below you wish | 12 | | Here you may specify which of the database connections below you wish |
13 | | to use as your default connection for all database work. Of course | 13 | | to use as your default connection for all database work. Of course |
14 | | you may use many connections at once using the Database library. | 14 | | you may use many connections at once using the Database library. |
15 | | | 15 | | |
16 | */ | 16 | */ |
17 | 17 | ||
18 | 'default' => env('DB_CONNECTION', 'mysql'), | 18 | 'default' => env('DB_CONNECTION', 'mysql'), |
19 | 19 | ||
20 | /* | 20 | /* |
21 | |-------------------------------------------------------------------------- | 21 | |-------------------------------------------------------------------------- |
22 | | Database Connections | 22 | | Database Connections |
23 | |-------------------------------------------------------------------------- | 23 | |-------------------------------------------------------------------------- |
24 | | | 24 | | |
25 | | Here are each of the database connections setup for your application. | 25 | | Here are each of the database connections setup for your application. |
26 | | Of course, examples of configuring each database platform that is | 26 | | Of course, examples of configuring each database platform that is |
27 | | supported by Laravel is shown below to make development simple. | 27 | | supported by Laravel is shown below to make development simple. |
28 | | | 28 | | |
29 | | | 29 | | |
30 | | All database work in Laravel is done through the PHP PDO facilities | 30 | | All database work in Laravel is done through the PHP PDO facilities |
31 | | so make sure you have the driver for your particular database of | 31 | | so make sure you have the driver for your particular database of |
32 | | choice installed on your machine before you begin development. | 32 | | choice installed on your machine before you begin development. |
33 | | | 33 | | |
34 | */ | 34 | */ |
35 | 35 | ||
36 | 'connections' => [ | 36 | 'connections' => [ |
37 | 37 | ||
38 | 'sqlite' => [ | 38 | 'sqlite' => [ |
39 | 'driver' => 'sqlite', | 39 | 'driver' => 'sqlite', |
40 | 'url' => env('DATABASE_URL'), | 40 | 'url' => env('DATABASE_URL'), |
41 | 'database' => env('DB_DATABASE', database_path('database.sqlite')), | 41 | 'database' => env('DB_DATABASE', database_path('database.sqlite')), |
42 | 'prefix' => '', | 42 | 'prefix' => '', |
43 | 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), | 43 | 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), |
44 | ], | 44 | ], |
45 | 45 | ||
46 | 'mysql' => [ | 46 | 'mysql' => [ |
47 | 'driver' => 'mysql', | 47 | 'driver' => 'mysql', |
48 | 'url' => env('DATABASE_URL'), | 48 | 'url' => env('DATABASE_URL'), |
49 | 'host' => env('DB_HOST', '127.0.0.1'), | 49 | 'host' => env('DB_HOST', '127.0.0.1'), |
50 | 'port' => env('DB_PORT', '3306'), | 50 | 'port' => env('DB_PORT', '3306'), |
51 | 'database' => env('DB_DATABASE', 'forge'), | 51 | 'database' => env('DB_DATABASE', 'forge'), |
52 | 'username' => env('DB_USERNAME', 'forge'), | 52 | 'username' => env('DB_USERNAME', 'forge'), |
53 | 'password' => env('DB_PASSWORD', ''), | 53 | 'password' => env('DB_PASSWORD', ''), |
54 | 'unix_socket' => env('DB_SOCKET', ''), | 54 | 'unix_socket' => env('DB_SOCKET', ''), |
55 | 'charset' => 'utf8mb4', | 55 | 'charset' => 'utf8mb4', |
56 | 'collation' => 'utf8mb4_unicode_ci', | 56 | 'collation' => 'utf8mb4_unicode_ci', |
57 | 'prefix' => '', | 57 | 'prefix' => '', |
58 | 'prefix_indexes' => true, | 58 | 'prefix_indexes' => true, |
59 | 'strict' => true, | 59 | 'strict' => true, |
60 | 'engine' => null, | 60 | 'engine' => 'InnoDB ROW_FORMAT=DYNAMIC', |
61 | 'options' => extension_loaded('pdo_mysql') ? array_filter([ | 61 | 'options' => extension_loaded('pdo_mysql') ? array_filter([ |
62 | PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), | 62 | PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), |
63 | ]) : [], | 63 | ]) : [], |
64 | ], | 64 | ], |
65 | 65 | ||
66 | 'pgsql' => [ | 66 | 'pgsql' => [ |
67 | 'driver' => 'pgsql', | 67 | 'driver' => 'pgsql', |
68 | 'url' => env('DATABASE_URL'), | 68 | 'url' => env('DATABASE_URL'), |
69 | 'host' => env('DB_HOST', '127.0.0.1'), | 69 | 'host' => env('DB_HOST', '127.0.0.1'), |
70 | 'port' => env('DB_PORT', '5432'), | 70 | 'port' => env('DB_PORT', '5432'), |
71 | 'database' => env('DB_DATABASE', 'forge'), | 71 | 'database' => env('DB_DATABASE', 'forge'), |
72 | 'username' => env('DB_USERNAME', 'forge'), | 72 | 'username' => env('DB_USERNAME', 'forge'), |
73 | 'password' => env('DB_PASSWORD', ''), | 73 | 'password' => env('DB_PASSWORD', ''), |
74 | 'charset' => 'utf8', | 74 | 'charset' => 'utf8', |
75 | 'prefix' => '', | 75 | 'prefix' => '', |
76 | 'prefix_indexes' => true, | 76 | 'prefix_indexes' => true, |
77 | 'search_path' => 'public', | 77 | 'search_path' => 'public', |
78 | 'sslmode' => 'prefer', | 78 | 'sslmode' => 'prefer', |
79 | ], | 79 | ], |
80 | 80 | ||
81 | 'sqlsrv' => [ | 81 | 'sqlsrv' => [ |
82 | 'driver' => 'sqlsrv', | 82 | 'driver' => 'sqlsrv', |
83 | 'url' => env('DATABASE_URL'), | 83 | 'url' => env('DATABASE_URL'), |
84 | 'host' => env('DB_HOST', 'localhost'), | 84 | 'host' => env('DB_HOST', 'localhost'), |
85 | 'port' => env('DB_PORT', '1433'), | 85 | 'port' => env('DB_PORT', '1433'), |
86 | 'database' => env('DB_DATABASE', 'forge'), | 86 | 'database' => env('DB_DATABASE', 'forge'), |
87 | 'username' => env('DB_USERNAME', 'forge'), | 87 | 'username' => env('DB_USERNAME', 'forge'), |
88 | 'password' => env('DB_PASSWORD', ''), | 88 | 'password' => env('DB_PASSWORD', ''), |
89 | 'charset' => 'utf8', | 89 | 'charset' => 'utf8', |
90 | 'prefix' => '', | 90 | 'prefix' => '', |
91 | 'prefix_indexes' => true, | 91 | 'prefix_indexes' => true, |
92 | // 'encrypt' => env('DB_ENCRYPT', 'yes'), | 92 | // 'encrypt' => env('DB_ENCRYPT', 'yes'), |
93 | // 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'), | 93 | // 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'), |
94 | ], | 94 | ], |
95 | 95 | ||
96 | ], | 96 | ], |
97 | 97 | ||
98 | /* | 98 | /* |
99 | |-------------------------------------------------------------------------- | 99 | |-------------------------------------------------------------------------- |
100 | | Migration Repository Table | 100 | | Migration Repository Table |
101 | |-------------------------------------------------------------------------- | 101 | |-------------------------------------------------------------------------- |
102 | | | 102 | | |
103 | | This table keeps track of all the migrations that have already run for | 103 | | This table keeps track of all the migrations that have already run for |
104 | | your application. Using this information, we can determine which of | 104 | | your application. Using this information, we can determine which of |
105 | | the migrations on disk haven't actually been run in the database. | 105 | | the migrations on disk haven't actually been run in the database. |
106 | | | 106 | | |
107 | */ | 107 | */ |
108 | 108 | ||
109 | 'migrations' => 'migrations', | 109 | 'migrations' => 'migrations', |
110 | 110 | ||
111 | /* | 111 | /* |
112 | |-------------------------------------------------------------------------- | 112 | |-------------------------------------------------------------------------- |
113 | | Redis Databases | 113 | | Redis Databases |
114 | |-------------------------------------------------------------------------- | 114 | |-------------------------------------------------------------------------- |
115 | | | 115 | | |
116 | | Redis is an open source, fast, and advanced key-value store that also | 116 | | Redis is an open source, fast, and advanced key-value store that also |
117 | | provides a richer body of commands than a typical key-value system | 117 | | provides a richer body of commands than a typical key-value system |
118 | | such as APC or Memcached. Laravel makes it easy to dig right in. | 118 | | such as APC or Memcached. Laravel makes it easy to dig right in. |
119 | | | 119 | | |
120 | */ | 120 | */ |
121 | 121 | ||
122 | 'redis' => [ | 122 | 'redis' => [ |
123 | 123 | ||
124 | 'client' => env('REDIS_CLIENT', 'phpredis'), | 124 | 'client' => env('REDIS_CLIENT', 'phpredis'), |
125 | 125 | ||
126 | 'options' => [ | 126 | 'options' => [ |
127 | 'cluster' => env('REDIS_CLUSTER', 'redis'), | 127 | 'cluster' => env('REDIS_CLUSTER', 'redis'), |
128 | 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), | 128 | 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), |
129 | ], | 129 | ], |
130 | 130 | ||
131 | 'default' => [ | 131 | 'default' => [ |
132 | 'url' => env('REDIS_URL'), | 132 | 'url' => env('REDIS_URL'), |
133 | 'host' => env('REDIS_HOST', '127.0.0.1'), | 133 | 'host' => env('REDIS_HOST', '127.0.0.1'), |
134 | 'username' => env('REDIS_USERNAME'), | 134 | 'username' => env('REDIS_USERNAME'), |
135 | 'password' => env('REDIS_PASSWORD'), | 135 | 'password' => env('REDIS_PASSWORD'), |
136 | 'port' => env('REDIS_PORT', '6379'), | 136 | 'port' => env('REDIS_PORT', '6379'), |
137 | 'database' => env('REDIS_DB', '0'), | 137 | 'database' => env('REDIS_DB', '0'), |
138 | ], | 138 | ], |
139 | 139 | ||
140 | 'cache' => [ | 140 | 'cache' => [ |
141 | 'url' => env('REDIS_URL'), | 141 | 'url' => env('REDIS_URL'), |
142 | 'host' => env('REDIS_HOST', '127.0.0.1'), | 142 | 'host' => env('REDIS_HOST', '127.0.0.1'), |
143 | 'username' => env('REDIS_USERNAME'), | 143 | 'username' => env('REDIS_USERNAME'), |
144 | 'password' => env('REDIS_PASSWORD'), | 144 | 'password' => env('REDIS_PASSWORD'), |
145 | 'port' => env('REDIS_PORT', '6379'), | 145 | 'port' => env('REDIS_PORT', '6379'), |
146 | 'database' => env('REDIS_CACHE_DB', '1'), | 146 | 'database' => env('REDIS_CACHE_DB', '1'), |
147 | ], | 147 | ], |
148 | 148 | ||
149 | ], | 149 | ], |
150 | 150 | ||
151 | ]; | 151 | ]; |
152 | 152 |
database/migrations/2024_06_18_110133_create_page_contents_table.php
File was created | 1 | <?php | |
2 | |||
3 | use Illuminate\Database\Migrations\Migration; | ||
4 | use Illuminate\Database\Schema\Blueprint; | ||
5 | use Illuminate\Support\Facades\Schema; | ||
6 | |||
7 | return new class extends Migration | ||
8 | { | ||
9 | /** | ||
10 | * Run the migrations. | ||
11 | * | ||
12 | * @return void | ||
13 | */ | ||
14 | public function up() | ||
15 | { | ||
16 | Schema::create('page_contents', function (Blueprint $table) { | ||
17 | $table->id(); | ||
18 | $table->string('name')->unique(); | ||
19 | $table->string('title'); | ||
20 | $table->string('description'); | ||
21 | $table->string('extra'); | ||
22 | $table->timestamps(); | ||
23 | }); | ||
24 | } | ||
25 | |||
26 | /** | ||
27 | * Reverse the migrations. | ||
28 | * | ||
29 | * @return void | ||
30 | */ | ||
31 | public function down() | ||
32 | { | ||
33 | Schema::dropIfExists('page_contents'); | ||
34 | } | ||
35 | }; | ||
36 |
resources/views/TITLE_TEXT.blade.php
1 | <div class="numbers__item"> | File was deleted | |
2 | <b>555+</b> | ||
3 | <span>Резюме</span> | ||
4 | Банальные, но неопровержимые выводы, а также элементы политического процесса лишь добавляют | ||
5 | фракционных разногласий и призваны к ответу. | ||
6 | </div> | ||
7 | <div class="numbers__item"> | ||
8 | <b>1 001+</b> | ||
9 | <span>Вакансий</span> | ||
10 | В рамках спецификации современных стандартов, диаграммы связей заблокированы в рамках своих | ||
11 | собственных рациональных ограничений. | ||
12 | </div> | ||
13 | <div class="numbers__item"> | ||
14 | <b>265</b> | ||
15 | <span>Компаний</span> | ||
16 | Но сторонники тоталитаризма в науке заблокированы в рамках своих собственных рациональных | ||
17 | ограничений. | ||
18 | </div> | ||
19 | 1 | <div class="numbers__item"> |
resources/views/admin/counters_main/form.blade.php
File was created | 1 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | |
2 | <label class="block text-sm"> | ||
3 | <span class="text-gray-700 dark:text-gray-400">Цифра</span> | ||
4 | <input name="extra" id="extra" required | ||
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="{{$blocks[$block_name]['extra'] ?? ''}}" | ||
7 | /> | ||
8 | @error('extra') | ||
9 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
10 | {{ $message }} | ||
11 | </span> | ||
12 | @enderror | ||
13 | </label><br> | ||
14 | |||
15 | <label class="block text-sm"> | ||
16 | <span class="text-gray-700 dark:text-gray-400">Подзаголовок</span> | ||
17 | <input name="title" id="title" required | ||
18 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | ||
19 | placeholder="Подзаголовок" value="{{$blocks[$block_name]['title'] ?? ''}}" | ||
20 | /> | ||
21 | @error('title') | ||
22 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
23 | {{ $message }} | ||
24 | </span> | ||
25 | @enderror | ||
26 | </label><br> | ||
27 | |||
28 | <label class="block text-sm"> | ||
29 | <span class="text-gray-700 dark:text-gray-400">Описание</span> | ||
30 | <textarea name="description" id="description" required | ||
31 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | ||
32 | placeholder="Описание" value="{{$blocks[$block_name]['description'] ?? ''}}" | ||
33 | >{{$blocks[$block_name]['description'] ?? ''}}</textarea> | ||
34 | @error('description') | ||
35 | <span class="text-xs text-red-600 dark:text-red-400"> | ||
36 | {{ $message }} | ||
37 | </span> | ||
38 | @enderror | ||
39 | </label><br> | ||
40 | |||
41 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | ||
42 | <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"> | ||
43 | Сохранить | ||
44 | </button> | ||
45 | </div> | ||
46 | |||
47 | </div> | ||
48 |
resources/views/admin/counters_main/index.blade.php
File was created | 1 | @extends('layout.admin', ['title' => 'Админка - Редактор счетчиков на главной странице']) | |
2 | |||
3 | @section('content') | ||
4 | @foreach ($block_names as $block_name) | ||
5 | <form method="POST" action="{{ route('admin.counters-main-update', ['name' => $block_name]) }}"> | ||
6 | @csrf | ||
7 | @include('admin.counters_main.form') | ||
8 | </form> | ||
9 | @endforeach | ||
10 | @endsection | ||
11 |
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 | console.log('Test system'); | 5 | console.log('Test system'); |
6 | $(document).on('click', '.die_black', function() { | 6 | $(document).on('click', '.die_black', function() { |
7 | var this_ = $(this); | 7 | var this_ = $(this); |
8 | var ajax_ = $('#ajax_flot_div'); | 8 | var ajax_ = $('#ajax_flot_div'); |
9 | var id_ = this_.attr('data-test'); | 9 | var id_ = this_.attr('data-test'); |
10 | var url_ = this_.attr('data-link'); | 10 | var url_ = this_.attr('data-link'); |
11 | 11 | ||
12 | console.log(url_); | 12 | console.log(url_); |
13 | $.ajax({ | 13 | $.ajax({ |
14 | type: "GET", | 14 | type: "GET", |
15 | url: url_, | 15 | url: url_, |
16 | success: function (data) { | 16 | success: function (data) { |
17 | console.log('Ответка'); | 17 | console.log('Ответка'); |
18 | ajax_.html(data); | 18 | ajax_.html(data); |
19 | }, | 19 | }, |
20 | headers: { | 20 | headers: { |
21 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') | 21 | 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') |
22 | }, | 22 | }, |
23 | error: function (data) { | 23 | error: function (data) { |
24 | console.log('Error: ' + data); | 24 | console.log('Error: ' + data); |
25 | } | 25 | } |
26 | }); | 26 | }); |
27 | 27 | ||
28 | }); | 28 | }); |
29 | </script> | 29 | </script> |
30 | @endsection | 30 | @endsection |
31 | 31 | ||
32 | @section('content') | 32 | @section('content') |
33 | <section class="cabinet"> | 33 | <section class="cabinet"> |
34 | <div class="container"> | 34 | <div class="container"> |
35 | <ul class="breadcrumbs cabinet__breadcrumbs"> | 35 | <ul class="breadcrumbs cabinet__breadcrumbs"> |
36 | <li><a href="{{ route('index') }}">Главная</a></li> | 36 | <li><a href="{{ route('index') }}">Главная</a></li> |
37 | <li><b>Личный кабинет</b></li> | 37 | <li><b>Личный кабинет</b></li> |
38 | </ul> | 38 | </ul> |
39 | <div class="cabinet__wrapper"> | 39 | <div class="cabinet__wrapper"> |
40 | <div class="cabinet__side"> | 40 | <div class="cabinet__side"> |
41 | <div class="cabinet__side-toper"> | 41 | <div class="cabinet__side-toper"> |
42 | @include('employers.emblema') | 42 | @include('employers.emblema') |
43 | </div> | 43 | </div> |
44 | @include('employers.menu', ['item' => 7]) | 44 | @include('employers.menu', ['item' => 7]) |
45 | </div> | 45 | </div> |
46 | 46 | ||
47 | <div class="cabinet__body"> | 47 | <div class="cabinet__body"> |
48 | <div class="cabinet__body-item"> | 48 | <div class="cabinet__body-item"> |
49 | <h2 class="title cabinet__title">База данных</h2> | 49 | <h2 class="title cabinet__title">База данных</h2> |
50 | </div> | 50 | </div> |
51 | <div class="cabinet__body-item"> | 51 | <div class="cabinet__body-item"> |
52 | <div class="cabinet__filters"> | 52 | <div class="cabinet__filters"> |
53 | <div class="cabinet__filters-item"> | 53 | <div class="cabinet__filters-item"> |
54 | <form class="search" action="{{ route('employer.bd') }}"> | 54 | <form class="search" action="{{ route('employer.bd') }}"> |
55 | <input type="search" name="search" id="search" class="input" placeholder="Поиск…" value="@if (isset($_GET['search'])) {{ $_GET['search'] }} @endif"> | 55 | <input type="search" name="search" id="search" class="input" placeholder="Поиск…" value="@if (isset($_GET['search'])) {{ $_GET['search'] }} @endif"> |
56 | <button type="submit" class="button">Найти</button> | 56 | <button type="submit" class="button">Найти</button> |
57 | <span> | 57 | <span> |
58 | <svg> | 58 | <svg> |
59 | <use xlink:href="{{ asset('images/sprite.svg#search') }}"></use> | 59 | <use xlink:href="{{ asset('images/sprite.svg#search') }}"></use> |
60 | </svg> | 60 | </svg> |
61 | </span> | 61 | </span> |
62 | </form> | 62 | </form> |
63 | </div> | 63 | </div> |
64 | 64 | ||
65 | <div class="cabinet__filters-item"> | 65 | <div class="cabinet__filters-item"> |
66 | <a href="{{ route('resume_download_all') }}" class="button"> | 66 | <a href="{{ route('resume_download_all') }}" class="button"> |
67 | <svg> | 67 | <svg> |
68 | <use xlink:href="{{ asset('images/sprite.svg#share') }}"></use> | 68 | <use xlink:href="{{ asset('images/sprite.svg#share') }}"></use> |
69 | </svg> | 69 | </svg> |
70 | Экспорт | 70 | Экспорт |
71 | </a> | 71 | </a> |
72 | </div> | 72 | </div> |
73 | </div> | 73 | </div> |
74 | </div> | 74 | </div> |
75 | 75 | ||
76 | <div class="cabinet__body-item"> | 76 | <div class="cabinet__body-item"> |
77 | <div class="cabinet__table-header"> | 77 | <div class="cabinet__table-header"> |
78 | <div><!--_if (isset($it->workers[0]->job_titles[0]->name)) _ $it->workers[0]->job_titles[0]->name }}_else Не указано _endif--> | 78 | <div><!--_if (isset($it->workers[0]->job_titles[0]->name)) _ $it->workers[0]->job_titles[0]->name }}_else Не указано _endif--> |
79 | Позиции работников | 79 | Позиции работников |
80 | </div> | 80 | </div> |
81 | <span> | 81 | <span> |
82 | Всего вакансий найдено: | 82 | Всего вакансий найдено: |
83 | <b>{{ $count_users->count() }}</b> | 83 | <b>{{ $count_users->count() }}</b> |
84 | </span> | 84 | </span> |
85 | </div> | 85 | </div> |
86 | <div class="table table_spoiler"> | 86 | <div class="table table_spoiler"> |
87 | <!--<button type="button" class="table__button js-toggle js-parent-toggle button button_light button_more"> | 87 | <!--<button type="button" class="table__button js-toggle js-parent-toggle button button_light button_more"> |
88 | <span>Показать ещё</span> | 88 | <span>Показать ещё</span> |
89 | <span>Свернуть</span> | 89 | <span>Свернуть</span> |
90 | </button>--> | 90 | </button>--> |
91 | 91 | ||
92 | <div class="table__scroll"> | 92 | <div class="table__scroll"> |
93 | <div class="table__body table__body_min-width"> | 93 | <div class="table__body table__body_min-width"> |
94 | <table> | 94 | <table> |
95 | <thead> | 95 | <thead> |
96 | <tr> | 96 | <tr> |
97 | <th>ФИО соискателя</th> | 97 | <th>ФИО соискателя</th> |
98 | <th>Номер телефона</th> | 98 | <th>Номер телефона</th> |
99 | <th>Электронная<br>почта</th> | 99 | <th>Электронная<br>почта</th> |
100 | <th>Наличие<br>анкеты</th> | 100 | <th>Наличие<br>анкеты</th> |
101 | </tr> | 101 | </tr> |
102 | </thead> | 102 | </thead> |
103 | <tbody> | 103 | <tbody> |
104 | @php | 104 | @php |
105 | $categories = 0; | 105 | $categories = 0; |
106 | 106 | ||
107 | @endphp | 107 | @endphp |
108 | |||
108 | @if ($users->count()) | 109 | @if ($users->count()) |
109 | @foreach ($users as $key => $it) | 110 | @foreach ($users as $key => $it) |
110 | @if (isset($it->workers[0]->position_work)) | 111 | <tr> |
111 | @if ($categories !== $it->workers[0]->position_work) | 112 | <td>{{ $it->surname." ".$it->name_man }}<br>{{ $it->surname2 }}</td> |
112 | @php | 113 | |
113 | $categories = $it->workers[0]->position_work; | 114 | <td> |
114 | $i = 0; | 115 | |
115 | @endphp | 116 | @if (!empty($it->workers[0]->telephone)) |
116 | @endif | 117 | <a href="tel:{{ $it->workers[0]->telephone }}"> |
117 | 118 | {{ $it->workers[0]->telephone }} | |
118 | @if ($i == 0) | 119 | </a> |
119 | 120 | @else | |
120 | @endif | 121 | - |
121 | <tr> | 122 | @endif |
122 | <td>{{ $it->surname." ".$it->name_man }}<br>{{ $it->surname2 }}</td> | 123 | |
123 | 124 | @if (!empty($it->workers[0]->telephone2)) | |
124 | <td> | 125 | <br><a href="tel:{{ $it->workers[0]->telephone2 }}"> |
125 | 126 | {{ $it->workers[0]->telephone2 }} | |
126 | @if (!empty($it->workers[0]->telephone)) | 127 | </a> |
127 | <a href="tel:{{ $it->workers[0]->telephone }}"> | 128 | @endif |
128 | {{ $it->workers[0]->telephone }} | 129 | </td> |
129 | </a> | 130 | |
130 | @else | 131 | <td> |
131 | - | 132 | @if (!empty($it->workers[0]->email)) |
132 | @endif | 133 | <a href="emailto:{{ $it->workers[0]->email }}">{{ $it->workers[0]->email }}</a> |
133 | 134 | @else | |
134 | @if (!empty($it->workers[0]->telephone2)) | 135 | - |
135 | <br><a href="tel:{{ $it->workers[0]->telephone2 }}"> | 136 | @endif |
136 | {{ $it->workers[0]->telephone2 }} | 137 | </td> |
137 | </a> | 138 | |
138 | @endif | 139 | <td> |
139 | </td> | 140 | @if (isset($it->workers[0]->id)) |
140 | 141 | <a href="{{ route('resume_download', ['worker' => $it->workers[0]->id]) }}" class="table__link"> | |
141 | <td> | 142 | <svg> |
142 | @if (!empty($it->workers[0]->email)) | 143 | <use xlink:href="{{ asset('images/sprite.svg#share') }}"></use> |
143 | <a href="emailto:{{ $it->workers[0]->email }}">{{ $it->workers[0]->email }}</a> | 144 | </svg> |
144 | @else | 145 | Скачать |
145 | - | 146 | </a> |
146 | @endif | 147 | @endif |
147 | </td> | 148 | </td> |
148 | 149 | </tr> | |
149 | <td> | ||
150 | @if (isset($it->workers[0]->id)) | ||
151 | <a href="{{ route('resume_download', ['worker' => $it->workers[0]->id]) }}" class="table__link"> | ||
152 | <svg> | ||
153 | <use xlink:href="{{ asset('images/sprite.svg#share') }}"></use> | ||
154 | </svg> | ||
155 | Скачать | ||
156 | </a> | ||
157 | @endif | ||
158 | </td> | ||
159 | </tr> | ||
160 | @php $i++ @endphp | ||
161 | |||
162 | |||
163 | @endif | ||
164 | @endforeach | 150 | @endforeach |
165 | @endif | 151 | @endif |
166 | </tbody> | 152 | </tbody> |
167 | </table> | 153 | </table> |
168 | </div> | 154 | </div> |
169 | 155 | ||
170 | </div> | 156 | </div> |
171 | </div> | 157 | </div> |
172 | {{ $users->onEachSide(0)->appends($_GET)->links('paginate') }} | 158 | {{ $users->onEachSide(0)->appends($_GET)->links('paginate') }} |
173 | </div> | 159 | </div> |
174 | </div> | 160 | </div> |
175 | </div> | 161 | </div> |
176 | </div> | 162 | </div> |
177 | </section> | 163 | </section> |
178 | </div> | 164 | </div> |
179 | @endsection | 165 | @endsection |
resources/views/index.blade.php
1 | @extends('layout.frontend', ['title' => 'Главная страница РекаМоре']) | 1 | @extends('layout.frontend', ['title' => 'Главная страница РекаМоре']) |
2 | 2 | ||
3 | @section('scripts') | 3 | @section('scripts') |
4 | 4 | ||
5 | @endsection | 5 | @endsection |
6 | 6 | ||
7 | @section('content') | 7 | @section('content') |
8 | @include('messages_error') | 8 | @include('messages_error') |
9 | <section class="work"> | 9 | <section class="work"> |
10 | <div class="container"> | 10 | <div class="container"> |
11 | <img src="{{ asset('images/1.png') }}" alt="" class="work__pic"> | 11 | <img src="{{ asset('images/1.png') }}" alt="" class="work__pic"> |
12 | <div class="work__body"> | 12 | <div class="work__body"> |
13 | <div class="work__title"> | 13 | <div class="work__title"> |
14 | <h4>Работа в море / | 14 | <h4>Работа в море / |
15 | <span class="br">Работа на реке</span></h4> | 15 | <span class="br">Работа на реке</span></h4> |
16 | </div> | 16 | </div> |
17 | <div class="work__text">Профессиональная сеть морского сообщества «RekaMore.su» приветствует вас — | 17 | <div class="work__text">Профессиональная сеть морского сообщества «RekaMore.su» приветствует вас — |
18 | тех, кто не представляет себе жизнь без моря, тех, кто готов связать свою жизнь с работой в | 18 | тех, кто не представляет себе жизнь без моря, тех, кто готов связать свою жизнь с работой в |
19 | сложных, но очень интересных условиях. </div> | 19 | сложных, но очень интересных условиях. </div> |
20 | <div class="work__list"> | 20 | <div class="work__list"> |
21 | <div>Тысячи соискателей увидят Ваше объявление</div> | 21 | <div>Тысячи соискателей увидят Ваше объявление</div> |
22 | <div>Десятки компаний выкладывают объявления каждый день</div> | 22 | <div>Десятки компаний выкладывают объявления каждый день</div> |
23 | </div> | 23 | </div> |
24 | <form class="search work__form" action="{{ route('search_vacancies') }}" method="GET"> | 24 | <form class="search work__form" action="{{ route('search_vacancies') }}" method="GET"> |
25 | <input type="search" id="search" name="search" class="input" placeholder="Желаемая должность" required> | 25 | <input type="search" id="search" name="search" class="input" placeholder="Желаемая должность" required> |
26 | <!--<div class="select select_search thing__select"> | 26 | <!--<div class="select select_search thing__select"> |
27 | <div class="select__icon"> | 27 | <div class="select__icon"> |
28 | <svg> | 28 | <svg> |
29 | <use xlink:href=" asset('images/sprite.svg#search') }}"></use> | 29 | <use xlink:href=" asset('images/sprite.svg#search') }}"></use> |
30 | </svg> | 30 | </svg> |
31 | </div> | 31 | </div> |
32 | <select class="js-select2 jobs" id="search" name="search"> | 32 | <select class="js-select2 jobs" id="search" name="search"> |
33 | <option value="0">Выберите должность</option> | 33 | <option value="0">Выберите должность</option> |
34 | if ($Job_title->count()) | 34 | if ($Job_title->count()) |
35 | foreach($Job_title as $JT) | 35 | foreach($Job_title as $JT) |
36 | <option value=" $JT->id }}" if ((isset($_GET['job'])) && ($_GET['job'] == $JT->id)) selected endif> $JT->name }}</option> | 36 | <option value=" $JT->id }}" if ((isset($_GET['job'])) && ($_GET['job'] == $JT->id)) selected endif> $JT->name }}</option> |
37 | endforeach | 37 | endforeach |
38 | endif | 38 | endif |
39 | </select> | 39 | </select> |
40 | </div>--> | 40 | </div>--> |
41 | <button type="submit" class="button button_light">Посмотреть вакансии</button> | 41 | <button type="submit" class="button button_light">Посмотреть вакансии</button> |
42 | <span> | 42 | <span> |
43 | <svg> | 43 | <svg> |
44 | <use xlink:href="{{ asset('images/sprite.svg#search') }}"></use> | 44 | <use xlink:href="{{ asset('images/sprite.svg#search') }}"></use> |
45 | </svg> | 45 | </svg> |
46 | </span> | 46 | </span> |
47 | </form> | 47 | </form> |
48 | @guest | 48 | @guest |
49 | <a data-fancybox data-src="#question2" data-options='{"touch":false,"autoFocus":false}' class="button work__search">Я ищу сотрудника</a> | 49 | <a data-fancybox data-src="#question2" data-options='{"touch":false,"autoFocus":false}' class="button work__search">Я ищу сотрудника</a> |
50 | @else | 50 | @else |
51 | @if (Auth()->user()->is_lookin) | 51 | @if (Auth()->user()->is_lookin) |
52 | <a href="{{ route('bd_resume') }}" class="button work__search">Я ищу сотрудника</a> | 52 | <a href="{{ route('bd_resume') }}" class="button work__search">Я ищу сотрудника</a> |
53 | @else | 53 | @else |
54 | <a data-fancybox data-src="#question3" data-options='{"touch":false,"autoFocus":false}' class="button work__search">Я ищу сотрудника</a> | 54 | <a data-fancybox data-src="#question3" data-options='{"touch":false,"autoFocus":false}' class="button work__search">Я ищу сотрудника</a> |
55 | @endif | 55 | @endif |
56 | @endguest | 56 | @endguest |
57 | <div class="work__get"> | 57 | <div class="work__get"> |
58 | <b>Скачать приложение</b> | 58 | <b>Скачать приложение</b> |
59 | <a href=""> | 59 | <a href=""> |
60 | <img src="{{ asset('images/google.svg') }}" alt=""> | 60 | <img src="{{ asset('images/google.svg') }}" alt=""> |
61 | </a> | 61 | </a> |
62 | <a href=""> | 62 | <a href=""> |
63 | <img src="{{ asset('images/apple.svg') }}" alt=""> | 63 | <img src="{{ asset('images/apple.svg') }}" alt=""> |
64 | </a> | 64 | </a> |
65 | </div> | 65 | </div> |
66 | </div> | 66 | </div> |
67 | </div> | 67 | </div> |
68 | </section> | 68 | </section> |
69 | |||
70 | @if ($blocks_counters) | ||
69 | <section class="numbers"> | 71 | <section class="numbers"> |
70 | <div class="container"> | 72 | <div class="container"> |
71 | <div class="numbers__body"> | 73 | <div class="numbers__body"> |
72 | @include('TITLE_TEXT') | 74 | @foreach($blocks_counters as $block_counter) |
75 | <div class="numbers__item"> | ||
76 | <b>{{$block_counter['extra']}}</b> | ||
77 | <span>{{$block_counter['title']}}</span> | ||
78 | {{$block_counter['description']}} | ||
79 | </div> | ||
80 | @endforeach | ||
73 | </div> | 81 | </div> |
74 | </div> | 82 | </div> |
75 | </section> | 83 | </section> |
84 | @endif | ||
85 | |||
76 | <!--<section class="vacancies"> | 86 | <!--<section class="vacancies"> |
77 | <div class="container"> | 87 | <div class="container"> |
78 | <div class="title"><h4>Новые вакансии</h4></div> | 88 | <div class="title"><h4>Новые вакансии</h4></div> |
79 | <div class="vacancies__body"> | 89 | <div class="vacancies__body"> |
80 | <a class="vacancies__more button button_light js-parent-toggle" href="{{ route('vacancies') }}">Все должности</a> | 90 | <a class="vacancies__more button button_light js-parent-toggle" href="{{ route('vacancies') }}">Все должности</a> |
81 | <div class="vacancies__list"> | 91 | <div class="vacancies__list"> |
82 | _if ($categories->count()) | 92 | _if ($categories->count()) |
83 | _foreach ($categories as $cat) | 93 | _foreach ($categories as $cat) |
84 | <a href=" route('list-vacancies', ['categories' => $cat->id]) }}" class="vacancies__item"> | 94 | <a href=" route('list-vacancies', ['categories' => $cat->id]) }}" class="vacancies__item"> |
85 | <span style="border-color:#F4C4C2"> | 95 | <span style="border-color:#F4C4C2"> |
86 | <b> $cat->name }}</b> | 96 | <b> $cat->name }}</b> |
87 | <i>Вакансий: <span> $cat->cnt }}</span></i> | 97 | <i>Вакансий: <span> $cat->cnt }}</span></i> |
88 | </span> | 98 | </span> |
89 | </a> | 99 | </a> |
90 | _endforeach | 100 | _endforeach |
91 | _else | 101 | _else |
92 | Тут пока нет никаких вакансий | 102 | Тут пока нет никаких вакансий |
93 | _endif | 103 | _endif |
94 | </div> | 104 | </div> |
95 | </div> | 105 | </div> |
96 | </div> | 106 | </div> |
97 | </section>--> | 107 | </section>--> |
98 | 108 | ||
99 | <main class="main"> | 109 | <main class="main"> |
100 | <div class="container"> | 110 | <div class="container"> |
101 | <div class="main__vacancies"> | 111 | <div class="main__vacancies"> |
102 | <h2 class="main__vacancies-title">Категории вакансий</h2> | 112 | <h2 class="main__vacancies-title">Категории вакансий</h2> |
103 | <div class="vacancies__body"> | 113 | <div class="vacancies__body"> |
104 | <div class="vacancies__list" id="block_ajax" name="block_ajax"> | 114 | <div class="vacancies__list" id="block_ajax" name="block_ajax"> |
105 | @foreach($Main_Job as $key => $it_main) | 115 | @foreach($Main_Job as $key => $it_main) |
106 | <div class="vacancies__list-col"> | 116 | <div class="vacancies__list-col"> |
107 | @include('block_real_new', ['it_main' => $it_main, 'category' => $key]) | 117 | @include('block_real_new', ['it_main' => $it_main, 'category' => $key]) |
108 | </div> | 118 | </div> |
109 | @endforeach | 119 | @endforeach |
110 | <!--_include('block_real', ['flot' => $flot, 'position' => $Position[$flot->position_id]])--> | 120 | <!--_include('block_real', ['flot' => $flot, 'position' => $Position[$flot->position_id]])--> |
111 | </div> | 121 | </div> |
112 | </div> | 122 | </div> |
113 | </div> | 123 | </div> |
114 | </div> | 124 | </div> |
115 | </main> | 125 | </main> |
116 | 126 | ||
117 | <section class="employer"> | 127 | <section class="employer"> |
118 | <div class="container"> | 128 | <div class="container"> |
119 | <div class="title"><h4>Работодатели</h4></div> | 129 | <div class="title"><h4>Работодатели</h4></div> |
120 | <!--<div class="swiper js-employer-swiper"> | 130 | <!--<div class="swiper js-employer-swiper"> |
121 | <div class="swiper-wrapper"> | 131 | <div class="swiper-wrapper"> |
122 | <div class="swiper-slide"> | 132 | <div class="swiper-slide"> |
123 | <div class="employer__item"> | 133 | <div class="employer__item"> |
124 | <a href="#"> | 134 | <a href="#"> |
125 | <img src="images/logos/1.jpg" alt=""> | 135 | <img src="images/logos/1.jpg" alt=""> |
126 | </a> | 136 | </a> |
127 | <a href="#"> | 137 | <a href="#"> |
128 | <img src="images/logos/5.jpg" alt=""> | 138 | <img src="images/logos/5.jpg" alt=""> |
129 | </a> | 139 | </a> |
130 | <a href="#"> | 140 | <a href="#"> |
131 | <img src="images/logos/9.jpg" alt=""> | 141 | <img src="images/logos/9.jpg" alt=""> |
132 | </a> | 142 | </a> |
133 | <a href="#"> | 143 | <a href="#"> |
134 | <img src="images/logos/13.jpg" alt=""> | 144 | <img src="images/logos/13.jpg" alt=""> |
135 | </a> | 145 | </a> |
136 | <a href="#"> | 146 | <a href="#"> |
137 | <img src="images/logos/17.jpg" alt=""> | 147 | <img src="images/logos/17.jpg" alt=""> |
138 | </a> | 148 | </a> |
139 | </div> | 149 | </div> |
140 | </div> | 150 | </div> |
141 | <div class="swiper-slide"> | 151 | <div class="swiper-slide"> |
142 | <div class="employer__item"> | 152 | <div class="employer__item"> |
143 | <a href="#"> | 153 | <a href="#"> |
144 | <img src="images/logos/2.jpg" alt=""> | 154 | <img src="images/logos/2.jpg" alt=""> |
145 | </a> | 155 | </a> |
146 | <a href="#"> | 156 | <a href="#"> |
147 | <img src="images/logos/6.jpg" alt=""> | 157 | <img src="images/logos/6.jpg" alt=""> |
148 | </a> | 158 | </a> |
149 | <a href="#"> | 159 | <a href="#"> |
150 | <img src="images/logos/10.jpg" alt=""> | 160 | <img src="images/logos/10.jpg" alt=""> |
151 | </a> | 161 | </a> |
152 | <a href="#"> | 162 | <a href="#"> |
153 | <img src="images/logos/14.jpg" alt=""> | 163 | <img src="images/logos/14.jpg" alt=""> |
154 | </a> | 164 | </a> |
155 | <a href="#"> | 165 | <a href="#"> |
156 | <img src="images/logos/18.jpg" alt=""> | 166 | <img src="images/logos/18.jpg" alt=""> |
157 | </a> | 167 | </a> |
158 | </div> | 168 | </div> |
159 | </div> | 169 | </div> |
160 | <div class="swiper-slide"> | 170 | <div class="swiper-slide"> |
161 | <div class="employer__item"> | 171 | <div class="employer__item"> |
162 | <a href="#"> | 172 | <a href="#"> |
163 | <img src="images/logos/3.jpg" alt=""> | 173 | <img src="images/logos/3.jpg" alt=""> |
164 | </a> | 174 | </a> |
165 | <a href="#"> | 175 | <a href="#"> |
166 | <img src="images/logos/7.jpg" alt=""> | 176 | <img src="images/logos/7.jpg" alt=""> |
167 | </a> | 177 | </a> |
168 | <a href="#"> | 178 | <a href="#"> |
169 | <img src="images/logos/11.jpg" alt=""> | 179 | <img src="images/logos/11.jpg" alt=""> |
170 | </a> | 180 | </a> |
171 | <a href="#"> | 181 | <a href="#"> |
172 | <img src="images/logos/15.jpg" alt=""> | 182 | <img src="images/logos/15.jpg" alt=""> |
173 | </a> | 183 | </a> |
174 | <a href="#"> | 184 | <a href="#"> |
175 | <img src="images/logos/19.jpg" alt=""> | 185 | <img src="images/logos/19.jpg" alt=""> |
176 | </a> | 186 | </a> |
177 | </div> | 187 | </div> |
178 | </div> | 188 | </div> |
179 | <div class="swiper-slide"> | 189 | <div class="swiper-slide"> |
180 | <div class="employer__item"> | 190 | <div class="employer__item"> |
181 | <a href="#"> | 191 | <a href="#"> |
182 | <img src="images/logos/4.jpg" alt=""> | 192 | <img src="images/logos/4.jpg" alt=""> |
183 | </a> | 193 | </a> |
184 | <a href="#"> | 194 | <a href="#"> |
185 | <img src="images/logos/8.jpg" alt=""> | 195 | <img src="images/logos/8.jpg" alt=""> |
186 | </a> | 196 | </a> |
187 | <a href="#"> | 197 | <a href="#"> |
188 | <img src="images/logos/12.jpg" alt=""> | 198 | <img src="images/logos/12.jpg" alt=""> |
189 | </a> | 199 | </a> |
190 | <a href="#"> | 200 | <a href="#"> |
191 | <img src="images/logos/16.jpg" alt=""> | 201 | <img src="images/logos/16.jpg" alt=""> |
192 | </a> | 202 | </a> |
193 | <a href="#"> | 203 | <a href="#"> |
194 | <img src="images/logos/20.jpg" alt=""> | 204 | <img src="images/logos/20.jpg" alt=""> |
195 | </a> | 205 | </a> |
196 | </div> | 206 | </div> |
197 | </div> | 207 | </div> |
198 | </div> | 208 | </div> |
199 | </div>--> | 209 | </div>--> |
200 | <!--<div class="employer__body"> | 210 | <!--<div class="employer__body"> |
201 | <a href="#"> | 211 | <a href="#"> |
202 | <img src="images/logos/1.jpg" alt=""> | 212 | <img src="images/logos/1.jpg" alt=""> |
203 | </a> | 213 | </a> |
204 | <a href="#"> | 214 | <a href="#"> |
205 | <img src="images/logos/2.jpg" alt=""> | 215 | <img src="images/logos/2.jpg" alt=""> |
206 | </a> | 216 | </a> |
207 | <a href="#"> | 217 | <a href="#"> |
208 | <img src="images/logos/3.jpg" alt=""> | 218 | <img src="images/logos/3.jpg" alt=""> |
209 | </a> | 219 | </a> |
210 | <a href="#"> | 220 | <a href="#"> |
211 | <img src="images/logos/4.jpg" alt=""> | 221 | <img src="images/logos/4.jpg" alt=""> |
212 | </a> | 222 | </a> |
213 | <a href="#"> | 223 | <a href="#"> |
214 | <img src="images/logos/5.jpg" alt=""> | 224 | <img src="images/logos/5.jpg" alt=""> |
215 | </a> | 225 | </a> |
216 | <a href="#"> | 226 | <a href="#"> |
217 | <img src="images/logos/6.jpg" alt=""> | 227 | <img src="images/logos/6.jpg" alt=""> |
218 | </a> | 228 | </a> |
219 | <a href="#"> | 229 | <a href="#"> |
220 | <img src="images/logos/7.jpg" alt=""> | 230 | <img src="images/logos/7.jpg" alt=""> |
221 | </a> | 231 | </a> |
222 | <a href="#"> | 232 | <a href="#"> |
223 | <img src="images/logos/8.jpg" alt=""> | 233 | <img src="images/logos/8.jpg" alt=""> |
224 | </a> | 234 | </a> |
225 | <a href="#"> | 235 | <a href="#"> |
226 | <img src="images/logos/9.jpg" alt=""> | 236 | <img src="images/logos/9.jpg" alt=""> |
227 | </a> | 237 | </a> |
228 | <a href="#"> | 238 | <a href="#"> |
229 | <img src="images/logos/10.jpg" alt=""> | 239 | <img src="images/logos/10.jpg" alt=""> |
230 | </a> | 240 | </a> |
231 | <a href="#"> | 241 | <a href="#"> |
232 | <img src="images/logos/11.jpg" alt=""> | 242 | <img src="images/logos/11.jpg" alt=""> |
233 | </a> | 243 | </a> |
234 | <a href="#"> | 244 | <a href="#"> |
235 | <img src="images/logos/12.jpg" alt=""> | 245 | <img src="images/logos/12.jpg" alt=""> |
236 | </a> | 246 | </a> |
237 | <a href="#"> | 247 | <a href="#"> |
238 | <img src="images/logos/13.jpg" alt=""> | 248 | <img src="images/logos/13.jpg" alt=""> |
239 | </a> | 249 | </a> |
240 | <a href="#"> | 250 | <a href="#"> |
241 | <img src="images/logos/14.jpg" alt=""> | 251 | <img src="images/logos/14.jpg" alt=""> |
242 | </a> | 252 | </a> |
243 | <a href="#"> | 253 | <a href="#"> |
244 | <img src="images/logos/15.jpg" alt=""> | 254 | <img src="images/logos/15.jpg" alt=""> |
245 | </a> | 255 | </a> |
246 | <a href="#"> | 256 | <a href="#"> |
247 | <img src="images/logos/16.jpg" alt=""> | 257 | <img src="images/logos/16.jpg" alt=""> |
248 | </a> | 258 | </a> |
249 | <a href="#"> | 259 | <a href="#"> |
250 | <img src="images/logos/17.jpg" alt=""> | 260 | <img src="images/logos/17.jpg" alt=""> |
251 | </a> | 261 | </a> |
252 | <a href="#"> | 262 | <a href="#"> |
253 | <img src="images/logos/18.jpg" alt=""> | 263 | <img src="images/logos/18.jpg" alt=""> |
254 | </a> | 264 | </a> |
255 | <a href="#"> | 265 | <a href="#"> |
256 | <img src="images/logos/19.jpg" alt=""> | 266 | <img src="images/logos/19.jpg" alt=""> |
257 | </a> | 267 | </a> |
258 | <a href="#"> | 268 | <a href="#"> |
259 | <img src="images/logos/20.jpg" alt=""> | 269 | <img src="images/logos/20.jpg" alt=""> |
260 | </a> | 270 | </a> |
261 | </div>--> | 271 | </div>--> |
262 | 272 | ||
263 | <div class="employer__body"> | 273 | <div class="employer__body"> |
264 | @if ($employers->count()) | 274 | @if ($employers->count()) |
265 | @foreach($employers as $emp) | 275 | @foreach($employers as $emp) |
266 | @if (!empty($emp->employer->logo)) | 276 | @if (!empty($emp->employer->logo)) |
267 | <a href="{{ route('info_company', ['company' => $emp->employer->id]) }}"> | 277 | <a href="{{ route('info_company', ['company' => $emp->employer->id]) }}"> |
268 | <img src="{{ asset(Storage::url($emp->employer->logo)) }}" alt="{{ $emp->employer->name_company }}"> | 278 | <img src="{{ asset(Storage::url($emp->employer->logo)) }}" alt="{{ $emp->employer->name_company }}"> |
269 | </a> | 279 | </a> |
270 | @else | 280 | @else |
271 | <a href="{{ route('info_company', ['company' => $emp->employer->id]) }}"> | 281 | <a href="{{ route('info_company', ['company' => $emp->employer->id]) }}"> |
272 | <img src="{{ asset('images/logo_emp.png') }}" alt="{{ $emp->employer->name_company }}"> | 282 | <img src="{{ asset('images/logo_emp.png') }}" alt="{{ $emp->employer->name_company }}"> |
273 | </a> | 283 | </a> |
274 | @endif | 284 | @endif |
275 | @endforeach | 285 | @endforeach |
276 | @else | 286 | @else |
277 | <h5>Тут нет никаких записей</h5> | 287 | <h5>Тут нет никаких записей</h5> |
278 | @endif | 288 | @endif |
279 | </div> | 289 | </div> |
280 | <!--if ($employers->count()) | 290 | <!--if ($employers->count()) |
281 | php | 291 | php |
282 | $rec = 0; | 292 | $rec = 0; |
283 | $count = $employers->count(); | 293 | $count = $employers->count(); |
284 | 294 | ||
285 | endphp | 295 | endphp |
286 | 296 | ||
287 | foreach($employers as $emp) | 297 | foreach($employers as $emp) |
288 | php $rec++ endphp | 298 | php $rec++ endphp |
289 | if (($rec==1) || ($rec==5) || ($rec==9) || ($rec==13) || ($rec==17)) | 299 | if (($rec==1) || ($rec==5) || ($rec==9) || ($rec==13) || ($rec==17)) |
290 | <div class="swiper-slide"> | 300 | <div class="swiper-slide"> |
291 | <div class="employer__item"> | 301 | <div class="employer__item"> |
292 | endif | 302 | endif |
293 | if (!empty($emp->employer->logo)) | 303 | if (!empty($emp->employer->logo)) |
294 | <a href=" route('ad-employer', ['ad_employer' => $emp->employer->id]) }}"> | 304 | <a href=" route('ad-employer', ['ad_employer' => $emp->employer->id]) }}"> |
295 | <img src=" asset(Storage::url($emp->employer->logo)) }}" alt=" $emp->employer->name_company }}"> | 305 | <img src=" asset(Storage::url($emp->employer->logo)) }}" alt=" $emp->employer->name_company }}"> |
296 | </a> | 306 | </a> |
297 | else | 307 | else |
298 | <a href=" route('ad-employer', ['ad_employer' => $emp->employer->id]) }}"> | 308 | <a href=" route('ad-employer', ['ad_employer' => $emp->employer->id]) }}"> |
299 | <img src=" asset('images/logo_emp.png') }}" alt=" $emp->employer->name_company }}"> | 309 | <img src=" asset('images/logo_emp.png') }}" alt=" $emp->employer->name_company }}"> |
300 | </a> | 310 | </a> |
301 | endif | 311 | endif |
302 | if (($rec==4) || ($rec==8) || ($rec==12) || ($rec==16) || ($rec==20) || ($rec == $count)) | 312 | if (($rec==4) || ($rec==8) || ($rec==12) || ($rec==16) || ($rec==20) || ($rec == $count)) |
303 | </div> | 313 | </div> |
304 | </div> | 314 | </div> |
305 | endif | 315 | endif |
306 | endforeach | 316 | endforeach |
307 | else | 317 | else |
308 | <h5>Тут нет никаких записей</h5> | 318 | <h5>Тут нет никаких записей</h5> |
309 | endif--> | 319 | endif--> |
310 | </div> | 320 | </div> |
311 | <div class="swiper-pagination"></div> | 321 | <div class="swiper-pagination"></div> |
312 | </div> | 322 | </div> |
313 | <a href="{{ route('shipping_companies') }}" class="employer__more button button_light">Все работодатели</a> | 323 | <a href="{{ route('shipping_companies') }}" class="employer__more button button_light">Все работодатели</a> |
314 | </div> | 324 | </div> |
315 | </section> | 325 | </section> |
316 | <section class="about"> | 326 | <section class="about"> |
317 | <div class="container"> | 327 | <div class="container"> |
318 | <div class="about__wrapper"> | 328 | <div class="about__wrapper"> |
319 | <div class="title about__title"><h4>О нас</h4></div> | 329 | <div class="title about__title"><h4>О нас</h4></div> |
320 | <div class="about__body"> | 330 | <div class="about__body"> |
321 | <div class="about__line"></div> | 331 | <div class="about__line"></div> |
322 | <div class="about__item"> | 332 | <div class="about__item"> |
323 | <b>Для работодателей</b> | 333 | <b>Для работодателей</b> |
324 | <span>Наш ресурс позволит Вам за демократичную цену найти нужных специалистов в кратчайшие | 334 | <span>Наш ресурс позволит Вам за демократичную цену найти нужных специалистов в кратчайшие |
325 | сроки, подробнее об условиях можно узнать <a href="{{ route('page', ['pages' => 'Stoimost-razmescheniya']) }}">здесь</a>.</span> | 335 | сроки, подробнее об условиях можно узнать <a href="{{ route('page', ['pages' => 'Stoimost-razmescheniya']) }}">здесь</a>.</span> |
326 | <a class="about__button button button_whited" style="text-decoration: none" href="{{ route('bd_resume') }}">Поиск сотрудников</a> | 336 | <a class="about__button button button_whited" style="text-decoration: none" href="{{ route('bd_resume') }}">Поиск сотрудников</a> |
327 | </div> | 337 | </div> |
328 | <div class="about__item"> | 338 | <div class="about__item"> |
329 | <b>Для сотрудников</b> | 339 | <b>Для сотрудников</b> |
330 | <span>Наше преимущество — это большой объем вакансий, более 70 судоходных компаний России и | 340 | <span>Наше преимущество — это большой объем вакансий, более 70 судоходных компаний России и |
331 | СНГ ищут сотрудников через наши ресурсы</span> | 341 | СНГ ищут сотрудников через наши ресурсы</span> |
332 | <a class="about__button button button_whited" style="text-decoration: none" href="{{ route('vacancies') }}">Ищу работу</a> | 342 | <a class="about__button button button_whited" style="text-decoration: none" href="{{ route('vacancies') }}">Ищу работу</a> |
333 | </div> | 343 | </div> |
334 | </div> | 344 | </div> |
335 | </div> | 345 | </div> |
336 | </div> | 346 | </div> |
337 | </section> | 347 | </section> |
338 | 348 | ||
339 | @if ($news->count()) | 349 | @if ($news->count()) |
340 | <section class="news"> | 350 | <section class="news"> |
341 | <div class="container"> | 351 | <div class="container"> |
342 | <div class="news__toper"> | 352 | <div class="news__toper"> |
343 | <div class="title"><h4>Новости и статьи</h4></div> | 353 | <div class="title"><h4>Новости и статьи</h4></div> |
344 | <div class="navs"> | 354 | <div class="navs"> |
345 | <button class="js-news-swiper-button-prev"> | 355 | <button class="js-news-swiper-button-prev"> |
346 | <svg class="rotate180"> | 356 | <svg class="rotate180"> |
347 | <use xlink:href="{{ asset('images/sprite.svg#arrow') }}"></use> | 357 | <use xlink:href="{{ asset('images/sprite.svg#arrow') }}"></use> |
348 | </svg> | 358 | </svg> |
349 | </button> | 359 | </button> |
350 | <button class="js-news-swiper-button-next"> | 360 | <button class="js-news-swiper-button-next"> |
351 | <svg> | 361 | <svg> |
352 | <use xlink:href="{{ asset('images/sprite.svg#arrow') }}"></use> | 362 | <use xlink:href="{{ asset('images/sprite.svg#arrow') }}"></use> |
353 | </svg> | 363 | </svg> |
354 | </button> | 364 | </button> |
355 | </div> | 365 | </div> |
356 | </div> | 366 | </div> |
357 | 367 | ||
358 | <div class="swiper js-news-swiper"> | 368 | <div class="swiper js-news-swiper"> |
359 | <div class="swiper-wrapper"> | 369 | <div class="swiper-wrapper"> |
360 | 370 | ||
361 | @foreach ($news as $new) | 371 | @foreach ($news as $new) |
362 | <div class="swiper-slide"> | 372 | <div class="swiper-slide"> |
363 | <div class="news__item"> | 373 | <div class="news__item"> |
364 | @if (empty($new->image)) | 374 | @if (empty($new->image)) |
365 | <img src="{{ asset('/images/default_ship.jpg') }}" alt="" class="news__item-pic"> | 375 | <img src="{{ asset('/images/default_ship.jpg') }}" alt="" class="news__item-pic"> |
366 | @else | 376 | @else |
367 | <img src="{{ asset(Storage::url($new->image)) }}" alt="" class="news__item-pic"> | 377 | <img src="{{ asset(Storage::url($new->image)) }}" alt="" class="news__item-pic"> |
368 | @endif | 378 | @endif |
369 | <div class="news__item-body"> | 379 | <div class="news__item-body"> |
370 | <time datetime="{{ date('d.m.Y H:i:s', strtotime($new->created_at)) }}" class="news__item-date">{{ date('d.m.Y H:i:s', strtotime($new->created_at)) }}</time> | 380 | <time datetime="{{ date('d.m.Y H:i:s', strtotime($new->created_at)) }}" class="news__item-date">{{ date('d.m.Y H:i:s', strtotime($new->created_at)) }}</time> |
371 | <span class="news__item-title">{{ $new->title }}</span> | 381 | <span class="news__item-title">{{ $new->title }}</span> |
372 | <span class="news__item-text">{!! mb_strimwidth($new->text, 0, 100) !!}</span> | 382 | <span class="news__item-text">{!! mb_strimwidth($new->text, 0, 100) !!}</span> |
373 | <a href="{{ route('detail_new', ['new' => $new->id]) }}" class="news__item-more button button_light">Читать далее</a> | 383 | <a href="{{ route('detail_new', ['new' => $new->id]) }}" class="news__item-more button button_light">Читать далее</a> |
374 | </div> | 384 | </div> |
375 | </div> | 385 | </div> |
376 | </div> | 386 | </div> |
377 | @endforeach | 387 | @endforeach |
378 | 388 | ||
379 | </div> | 389 | </div> |
380 | <div class="swiper-pagination"></div> | 390 | <div class="swiper-pagination"></div> |
381 | </div> | 391 | </div> |
382 | <a href="{{ route('news') }}" class="news__all button button_light">Все новости</a> | 392 | <a href="{{ route('news') }}" class="news__all button button_light">Все новости</a> |
383 | 393 | ||
384 | </div> | 394 | </div> |
385 | </section> | 395 | </section> |
386 | @endif | 396 | @endif |
387 | 397 | ||
388 | <section class="info"> | 398 | <section class="info"> |
389 | <div class="container"> | 399 | <div class="container"> |
390 | <img src="images/5.png" alt="" class="info__pic"> | 400 | <img src="images/5.png" alt="" class="info__pic"> |
391 | <div class="info__body"> | 401 | <div class="info__body"> |
392 | <div class="title info__title"><h4>Мы в социальных сетях</h4></div> | 402 | <div class="title info__title"><h4>Мы в социальных сетях</h4></div> |
393 | <div class="info__item"> | 403 | <div class="info__item"> |
394 | <div class="info__text">Телеграм — Подпишитесь на наш телеграм канал и получайте уведомления о | 404 | <div class="info__text">Телеграм — Подпишитесь на наш телеграм канал и получайте уведомления о |
395 | новых вакансиях прямо на свой смартфон</div> | 405 | новых вакансиях прямо на свой смартфон</div> |
396 | <a href="{{ $companies[0]->telegram }}" class="info__link" style="background:#20A0E1"> | 406 | <a href="{{ $companies[0]->telegram }}" class="info__link" style="background:#20A0E1"> |
397 | <svg> | 407 | <svg> |
398 | <use xlink:href="{{ asset('images/sprite.svg#tg') }}"></use> | 408 | <use xlink:href="{{ asset('images/sprite.svg#tg') }}"></use> |
399 | </svg> | 409 | </svg> |
400 | Телеграм | 410 | Телеграм |
401 | </a> | 411 | </a> |
402 | </div> | 412 | </div> |
403 | <div class="info__item"> | 413 | <div class="info__item"> |
404 | <div class="info__text">ВКонтакте — Лучшие вакансии за неделю выкладываем именно тут, информация | 414 | <div class="info__text">ВКонтакте — Лучшие вакансии за неделю выкладываем именно тут, информация |
405 | о судоходных компаниях, инструкции по работе с сайтом, конкурсы и многое другое</div> | 415 | о судоходных компаниях, инструкции по работе с сайтом, конкурсы и многое другое</div> |
406 | <a href="{{ $companies[0]->vkontact }}" class="info__link" style="background:#2787F5"> | 416 | <a href="{{ $companies[0]->vkontact }}" class="info__link" style="background:#2787F5"> |
407 | <svg> | 417 | <svg> |
408 | <use xlink:href="{{ asset('images/sprite.svg#vk') }}"></use> | 418 | <use xlink:href="{{ asset('images/sprite.svg#vk') }}"></use> |
409 | </svg> | 419 | </svg> |
410 | ВКонтакте | 420 | ВКонтакте |
411 | </a> | 421 | </a> |
412 | </div> | 422 | </div> |
413 | </div> | 423 | </div> |
414 | </div> | 424 | </div> |
415 | </section> | 425 | </section> |
416 | @endsection | 426 | @endsection |
417 | 427 |
resources/views/layout/admin.blade.php
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html :class="{ 'theme-dark': dark }" x-data="data()" lang="{{ str_replace('_', '-', app()->getLocale()) }}"> | 2 | <html :class="{ 'theme-dark': dark }" x-data="data()" lang="{{ str_replace('_', '-', app()->getLocale()) }}"> |
3 | <head> | 3 | <head> |
4 | <meta charset="UTF-8" /> | 4 | <meta charset="UTF-8" /> |
5 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | 5 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
6 | <title>{{$title}}</title> | 6 | <title>{{$title}}</title> |
7 | <link | 7 | <link |
8 | href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" | 8 | href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" |
9 | rel="stylesheet" | 9 | rel="stylesheet" |
10 | /> | 10 | /> |
11 | <link rel="stylesheet" href="{{ asset('./assets/css/tailwind.output_new.css')}}" /> | 11 | <link rel="stylesheet" href="{{ asset('./assets/css/tailwind.output_new.css')}}" /> |
12 | <link rel="stylesheet" href="{{ asset('./assets/css/tabs.css')}}" /> | 12 | <link rel="stylesheet" href="{{ asset('./assets/css/tabs.css')}}" /> |
13 | <script | 13 | <script |
14 | src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js" | 14 | src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js" |
15 | defer | 15 | defer |
16 | ></script> | 16 | ></script> |
17 | <script src="{{ asset('./assets/js/init-alpine.js') }}"></script> | 17 | <script src="{{ asset('./assets/js/init-alpine.js') }}"></script> |
18 | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"/> | 18 | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"/> |
19 | <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js" defer></script> | 19 | <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js" defer></script> |
20 | <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> | 20 | <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> |
21 | <script src="{{ asset('./assets/js/charts-lines.js') }}" defer></script> | 21 | <script src="{{ asset('./assets/js/charts-lines.js') }}" defer></script> |
22 | <script src="{{ asset('./assets/js/charts-pie.js') }}" defer></script> | 22 | <script src="{{ asset('./assets/js/charts-pie.js') }}" defer></script> |
23 | </head> | 23 | </head> |
24 | <body> | 24 | <body> |
25 | <div class="flex h-screen bg-gray-50 dark:bg-gray-900" :class="{ 'overflow-hidden': isSideMenuOpen }"> | 25 | <div class="flex h-screen bg-gray-50 dark:bg-gray-900" :class="{ 'overflow-hidden': isSideMenuOpen }"> |
26 | <!-- Desktop sidebar --> | 26 | <!-- Desktop sidebar --> |
27 | <aside | 27 | <aside |
28 | class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0" | 28 | class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0" |
29 | > | 29 | > |
30 | <div class="py-4 text-gray-500 dark:text-gray-400"> | 30 | <div class="py-4 text-gray-500 dark:text-gray-400"> |
31 | <a class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" | 31 | <a class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" |
32 | href="{{ route('admin.index') }}"> | 32 | href="{{ route('admin.index') }}"> |
33 | Админка | 33 | Админка |
34 | </a> | 34 | </a> |
35 | <ul class="mt-6"> | 35 | <ul class="mt-6"> |
36 | <li class="relative px-6 py-3"> | 36 | <li class="relative px-6 py-3"> |
37 | <span | 37 | <span |
38 | class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" | 38 | class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" |
39 | aria-hidden="true" | 39 | aria-hidden="true" |
40 | ></span> | 40 | ></span> |
41 | <a | 41 | <a |
42 | 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 }}" | 42 | 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 }}" |
43 | href="{{ route('admin.index') }}" | 43 | href="{{ route('admin.index') }}" |
44 | > | 44 | > |
45 | <svg | 45 | <svg |
46 | class="w-5 h-5" | 46 | class="w-5 h-5" |
47 | aria-hidden="true" | 47 | aria-hidden="true" |
48 | fill="none" | 48 | fill="none" |
49 | stroke-linecap="round" | 49 | stroke-linecap="round" |
50 | stroke-linejoin="round" | 50 | stroke-linejoin="round" |
51 | stroke-width="2" | 51 | stroke-width="2" |
52 | viewBox="0 0 24 24" | 52 | viewBox="0 0 24 24" |
53 | stroke="currentColor" | 53 | stroke="currentColor" |
54 | > | 54 | > |
55 | <path | 55 | <path |
56 | 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" | 56 | d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" |
57 | ></path> | 57 | ></path> |
58 | </svg> | 58 | </svg> |
59 | <span class="ml-4">Главная страница</span> | 59 | <span class="ml-4">Главная страница</span> |
60 | </a> | 60 | </a> |
61 | </li> | 61 | </li> |
62 | </ul> | 62 | </ul> |
63 | 63 | ||
64 | <ul> | 64 | <ul> |
65 | @foreach ($contents as $cont) | 65 | @foreach ($contents as $cont) |
66 | @if ($cont->url_page == "admin/users") | 66 | @if ($cont->url_page == "admin/users") |
67 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 67 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
68 | (($cont->is_manager == 1) && ($is_manager == 1))) | 68 | (($cont->is_manager == 1) && ($is_manager == 1))) |
69 | <li class="relative px-6 py-3"> | 69 | <li class="relative px-6 py-3"> |
70 | <a | 70 | <a |
71 | 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 }}" | 71 | 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 }}" |
72 | href="{{ route('admin.users') }}" | 72 | href="{{ route('admin.users') }}" |
73 | > | 73 | > |
74 | <svg | 74 | <svg |
75 | class="w-5 h-5" | 75 | class="w-5 h-5" |
76 | aria-hidden="true" | 76 | aria-hidden="true" |
77 | fill="none" | 77 | fill="none" |
78 | stroke-linecap="round" | 78 | stroke-linecap="round" |
79 | stroke-linejoin="round" | 79 | stroke-linejoin="round" |
80 | stroke-width="2" | 80 | stroke-width="2" |
81 | viewBox="0 0 24 24" | 81 | viewBox="0 0 24 24" |
82 | stroke="currentColor" | 82 | stroke="currentColor" |
83 | > | 83 | > |
84 | <path | 84 | <path |
85 | 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" | 85 | 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" |
86 | ></path> | 86 | ></path> |
87 | </svg> | 87 | </svg> |
88 | <span class="ml-4">Пользователи</span> | 88 | <span class="ml-4">Пользователи</span> |
89 | </a> | 89 | </a> |
90 | </li> | 90 | </li> |
91 | @endif | 91 | @endif |
92 | @endif | 92 | @endif |
93 | 93 | ||
94 | @if ($cont->url_page == "admin/admin_roles") | 94 | @if ($cont->url_page == "admin/admin_roles") |
95 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 95 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
96 | (($cont->is_manager == 1) && ($is_manager == 1))) | 96 | (($cont->is_manager == 1) && ($is_manager == 1))) |
97 | <li class="relative px-6 py-3"> | 97 | <li class="relative px-6 py-3"> |
98 | <a | 98 | <a |
99 | 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 }}" | 99 | 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 }}" |
100 | href="{{ route('admin.admin_roles') }}" | 100 | href="{{ route('admin.admin_roles') }}" |
101 | > | 101 | > |
102 | <svg | 102 | <svg |
103 | class="w-5 h-5" | 103 | class="w-5 h-5" |
104 | aria-hidden="true" | 104 | aria-hidden="true" |
105 | fill="none" | 105 | fill="none" |
106 | stroke-linecap="round" | 106 | stroke-linecap="round" |
107 | stroke-linejoin="round" | 107 | stroke-linejoin="round" |
108 | stroke-width="2" | 108 | stroke-width="2" |
109 | viewBox="0 0 24 24" | 109 | viewBox="0 0 24 24" |
110 | stroke="currentColor" | 110 | stroke="currentColor" |
111 | > | 111 | > |
112 | <path | 112 | <path |
113 | 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" | 113 | 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" |
114 | ></path> | 114 | ></path> |
115 | </svg> | 115 | </svg> |
116 | <span class="ml-4">Роли администраторов</span> | 116 | <span class="ml-4">Роли администраторов</span> |
117 | </a> | 117 | </a> |
118 | </li> | 118 | </li> |
119 | @endif | 119 | @endif |
120 | @endif | 120 | @endif |
121 | 121 | ||
122 | @if ($cont->url_page == "admin/admin-users") | 122 | @if ($cont->url_page == "admin/admin-users") |
123 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 123 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
124 | (($cont->is_manager == 1) && ($is_manager == 1))) | 124 | (($cont->is_manager == 1) && ($is_manager == 1))) |
125 | <li class="relative px-6 py-3"> | 125 | <li class="relative px-6 py-3"> |
126 | <a | 126 | <a |
127 | 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') }}" | 127 | 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') }}" |
128 | > | 128 | > |
129 | <svg | 129 | <svg |
130 | class="w-5 h-5" | 130 | class="w-5 h-5" |
131 | aria-hidden="true" | 131 | aria-hidden="true" |
132 | fill="none" | 132 | fill="none" |
133 | stroke-linecap="round" | 133 | stroke-linecap="round" |
134 | stroke-linejoin="round" | 134 | stroke-linejoin="round" |
135 | stroke-width="2" | 135 | stroke-width="2" |
136 | viewBox="0 0 24 24" | 136 | viewBox="0 0 24 24" |
137 | stroke="currentColor" | 137 | stroke="currentColor" |
138 | > | 138 | > |
139 | <path | 139 | <path |
140 | 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" | 140 | 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" |
141 | ></path> | 141 | ></path> |
142 | </svg> | 142 | </svg> |
143 | <span class="ml-4">Администраторы</span> | 143 | <span class="ml-4">Администраторы</span> |
144 | </a> | 144 | </a> |
145 | </li> | 145 | </li> |
146 | @endif | 146 | @endif |
147 | @endif | 147 | @endif |
148 | 148 | ||
149 | @if ($cont->url_page == "admin/employers") | 149 | @if ($cont->url_page == "admin/employers") |
150 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 150 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
151 | (($cont->is_manager == 1) && ($is_manager == 1))) | 151 | (($cont->is_manager == 1) && ($is_manager == 1))) |
152 | <li class="relative px-6 py-3"> | 152 | <li class="relative px-6 py-3"> |
153 | <a | 153 | <a |
154 | 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') }}" | 154 | 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') }}" |
155 | > | 155 | > |
156 | <svg | 156 | <svg |
157 | class="w-5 h-5" | 157 | class="w-5 h-5" |
158 | aria-hidden="true" | 158 | aria-hidden="true" |
159 | fill="none" | 159 | fill="none" |
160 | stroke-linecap="round" | 160 | stroke-linecap="round" |
161 | stroke-linejoin="round" | 161 | stroke-linejoin="round" |
162 | stroke-width="2" | 162 | stroke-width="2" |
163 | viewBox="0 0 24 24" | 163 | viewBox="0 0 24 24" |
164 | stroke="currentColor" | 164 | stroke="currentColor" |
165 | > | 165 | > |
166 | <path | 166 | <path |
167 | 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" | 167 | 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" |
168 | ></path> | 168 | ></path> |
169 | </svg> | 169 | </svg> |
170 | <span class="ml-4">Работодатели</span> | 170 | <span class="ml-4">Работодатели</span> |
171 | </a> | 171 | </a> |
172 | </li> | 172 | </li> |
173 | @endif | 173 | @endif |
174 | @endif | 174 | @endif |
175 | 175 | ||
176 | @if ($cont->url_page == "admin/workers") | 176 | @if ($cont->url_page == "admin/workers") |
177 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 177 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
178 | (($cont->is_manager == 1) && ($is_manager == 1))) | 178 | (($cont->is_manager == 1) && ($is_manager == 1))) |
179 | <li class="relative px-6 py-3"> | 179 | <li class="relative px-6 py-3"> |
180 | <a | 180 | <a |
181 | 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') }}" | 181 | 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') }}" |
182 | > | 182 | > |
183 | <svg | 183 | <svg |
184 | class="w-5 h-5" | 184 | class="w-5 h-5" |
185 | aria-hidden="true" | 185 | aria-hidden="true" |
186 | fill="none" | 186 | fill="none" |
187 | stroke-linecap="round" | 187 | stroke-linecap="round" |
188 | stroke-linejoin="round" | 188 | stroke-linejoin="round" |
189 | stroke-width="2" | 189 | stroke-width="2" |
190 | viewBox="0 0 24 24" | 190 | viewBox="0 0 24 24" |
191 | stroke="currentColor" | 191 | stroke="currentColor" |
192 | > | 192 | > |
193 | <path | 193 | <path |
194 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" | 194 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" |
195 | ></path> | 195 | ></path> |
196 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> | 196 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> |
197 | </svg> | 197 | </svg> |
198 | <span class="ml-4">Соискатели</span> | 198 | <span class="ml-4">Соискатели</span> |
199 | </a> | 199 | </a> |
200 | </li> | 200 | </li> |
201 | @endif | 201 | @endif |
202 | @endif | 202 | @endif |
203 | 203 | ||
204 | @if ($cont->url_page == "admin/ad-employers") | 204 | @if ($cont->url_page == "admin/ad-employers") |
205 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 205 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
206 | (($cont->is_manager == 1) && ($is_manager == 1))) | 206 | (($cont->is_manager == 1) && ($is_manager == 1))) |
207 | <li class="relative px-6 py-3"> | 207 | <li class="relative px-6 py-3"> |
208 | <a | 208 | <a |
209 | 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') }}" | 209 | 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') }}" |
210 | > | 210 | > |
211 | <svg | 211 | <svg |
212 | class="w-5 h-5" | 212 | class="w-5 h-5" |
213 | aria-hidden="true" | 213 | aria-hidden="true" |
214 | fill="none" | 214 | fill="none" |
215 | stroke-linecap="round" | 215 | stroke-linecap="round" |
216 | stroke-linejoin="round" | 216 | stroke-linejoin="round" |
217 | stroke-width="2" | 217 | stroke-width="2" |
218 | viewBox="0 0 24 24" | 218 | viewBox="0 0 24 24" |
219 | stroke="currentColor" | 219 | stroke="currentColor" |
220 | > | 220 | > |
221 | <path | 221 | <path |
222 | 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" | 222 | 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" |
223 | ></path> | 223 | ></path> |
224 | </svg> | 224 | </svg> |
225 | <span class="ml-4">Вакансии</span> | 225 | <span class="ml-4">Вакансии</span> |
226 | </a> | 226 | </a> |
227 | </li> | 227 | </li> |
228 | @endif | 228 | @endif |
229 | @endif | 229 | @endif |
230 | 230 | ||
231 | @if ($cont->url_page == "admin/messages") | 231 | @if ($cont->url_page == "admin/messages") |
232 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 232 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
233 | (($cont->is_manager == 1) && ($is_manager == 1))) | 233 | (($cont->is_manager == 1) && ($is_manager == 1))) |
234 | <li class="relative px-6 py-3"> | 234 | <li class="relative px-6 py-3"> |
235 | <a | 235 | <a |
236 | 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') }}" | 236 | 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') }}" |
237 | > | 237 | > |
238 | <svg | 238 | <svg |
239 | class="w-5 h-5" | 239 | class="w-5 h-5" |
240 | aria-hidden="true" | 240 | aria-hidden="true" |
241 | fill="none" | 241 | fill="none" |
242 | stroke-linecap="round" | 242 | stroke-linecap="round" |
243 | stroke-linejoin="round" | 243 | stroke-linejoin="round" |
244 | stroke-width="2" | 244 | stroke-width="2" |
245 | viewBox="0 0 24 24" | 245 | viewBox="0 0 24 24" |
246 | stroke="currentColor" | 246 | stroke="currentColor" |
247 | > | 247 | > |
248 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 248 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
249 | </svg> | 249 | </svg> |
250 | <span class="ml-4">Сообщения все</span> | 250 | <span class="ml-4">Сообщения все</span> |
251 | </a> | 251 | </a> |
252 | </li> | 252 | </li> |
253 | @endif | 253 | @endif |
254 | @endif | 254 | @endif |
255 | 255 | ||
256 | @if ($cont->url_page == "admin/admin-messages") | 256 | @if ($cont->url_page == "admin/admin-messages") |
257 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 257 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
258 | (($cont->is_manager == 1) && ($is_manager == 1))) | 258 | (($cont->is_manager == 1) && ($is_manager == 1))) |
259 | <li class="relative px-6 py-3"> | 259 | <li class="relative px-6 py-3"> |
260 | <a | 260 | <a |
261 | 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') }}" | 261 | 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') }}" |
262 | > | 262 | > |
263 | <svg | 263 | <svg |
264 | class="w-5 h-5" | 264 | class="w-5 h-5" |
265 | aria-hidden="true" | 265 | aria-hidden="true" |
266 | fill="none" | 266 | fill="none" |
267 | stroke-linecap="round" | 267 | stroke-linecap="round" |
268 | stroke-linejoin="round" | 268 | stroke-linejoin="round" |
269 | stroke-width="2" | 269 | stroke-width="2" |
270 | viewBox="0 0 24 24" | 270 | viewBox="0 0 24 24" |
271 | stroke="currentColor" | 271 | stroke="currentColor" |
272 | > | 272 | > |
273 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 273 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
274 | </svg> | 274 | </svg> |
275 | <span class="ml-4">Заявки на рассылку</span> | 275 | <span class="ml-4">Заявки на рассылку</span> |
276 | </a> | 276 | </a> |
277 | </li> | 277 | </li> |
278 | @endif | 278 | @endif |
279 | @endif | 279 | @endif |
280 | 280 | ||
281 | @if ($cont->url_page == "admin/groups") | 281 | @if ($cont->url_page == "admin/groups") |
282 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 282 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
283 | (($cont->is_manager == 1) && ($is_manager == 1))) | 283 | (($cont->is_manager == 1) && ($is_manager == 1))) |
284 | <li class="relative px-6 py-3"> | 284 | <li class="relative px-6 py-3"> |
285 | <a | 285 | <a |
286 | 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') }}" | 286 | 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') }}" |
287 | > | 287 | > |
288 | <svg | 288 | <svg |
289 | class="w-5 h-5" | 289 | class="w-5 h-5" |
290 | aria-hidden="true" | 290 | aria-hidden="true" |
291 | fill="none" | 291 | fill="none" |
292 | stroke-linecap="round" | 292 | stroke-linecap="round" |
293 | stroke-linejoin="round" | 293 | stroke-linejoin="round" |
294 | stroke-width="2" | 294 | stroke-width="2" |
295 | viewBox="0 0 24 24" | 295 | viewBox="0 0 24 24" |
296 | stroke="currentColor" | 296 | stroke="currentColor" |
297 | > | 297 | > |
298 | <path | 298 | <path |
299 | 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" | 299 | 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" |
300 | ></path> | 300 | ></path> |
301 | </svg> | 301 | </svg> |
302 | <span class="ml-4">Группы пользователей</span> | 302 | <span class="ml-4">Группы пользователей</span> |
303 | </a> | 303 | </a> |
304 | </li> | 304 | </li> |
305 | @endif | 305 | @endif |
306 | @endif | 306 | @endif |
307 | 307 | ||
308 | @if ($cont->url_page == "admin/media") | 308 | @if ($cont->url_page == "admin/media") |
309 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 309 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
310 | (($cont->is_manager == 1) && ($is_manager == 1))) | 310 | (($cont->is_manager == 1) && ($is_manager == 1))) |
311 | <li class="relative px-6 py-3"> | 311 | <li class="relative px-6 py-3"> |
312 | <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') }}"> | 312 | <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') }}"> |
313 | <svg | 313 | <svg |
314 | class="w-5 h-5" | 314 | class="w-5 h-5" |
315 | aria-hidden="true" | 315 | aria-hidden="true" |
316 | fill="none" | 316 | fill="none" |
317 | stroke-linecap="round" | 317 | stroke-linecap="round" |
318 | stroke-linejoin="round" | 318 | stroke-linejoin="round" |
319 | stroke-width="2" | 319 | stroke-width="2" |
320 | viewBox="0 0 24 24" | 320 | viewBox="0 0 24 24" |
321 | stroke="currentColor" | 321 | stroke="currentColor" |
322 | > | 322 | > |
323 | <path | 323 | <path |
324 | 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" | 324 | 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" |
325 | ></path> | 325 | ></path> |
326 | </svg> | 326 | </svg> |
327 | <span class="ml-4">Медиа</span> | 327 | <span class="ml-4">Медиа</span> |
328 | </a> | 328 | </a> |
329 | </li> | 329 | </li> |
330 | @endif | 330 | @endif |
331 | @endif | 331 | @endif |
332 | 332 | ||
333 | @if ($cont->url_page == "admin/roles") | 333 | @if ($cont->url_page == "admin/roles") |
334 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 334 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
335 | (($cont->is_manager == 1) && ($is_manager == 1))) | 335 | (($cont->is_manager == 1) && ($is_manager == 1))) |
336 | <li class="relative px-6 py-3"> | 336 | <li class="relative px-6 py-3"> |
337 | <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') }}"> | 337 | <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') }}"> |
338 | <svg | 338 | <svg |
339 | class="w-5 h-5" | 339 | class="w-5 h-5" |
340 | aria-hidden="true" | 340 | aria-hidden="true" |
341 | fill="none" | 341 | fill="none" |
342 | stroke-linecap="round" | 342 | stroke-linecap="round" |
343 | stroke-linejoin="round" | 343 | stroke-linejoin="round" |
344 | stroke-width="2" | 344 | stroke-width="2" |
345 | viewBox="0 0 24 24" | 345 | viewBox="0 0 24 24" |
346 | stroke="currentColor" | 346 | stroke="currentColor" |
347 | > | 347 | > |
348 | <path | 348 | <path |
349 | 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" | 349 | 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" |
350 | ></path> | 350 | ></path> |
351 | </svg> | 351 | </svg> |
352 | <span class="ml-4">Роли пользователей</span> | 352 | <span class="ml-4">Роли пользователей</span> |
353 | </a> | 353 | </a> |
354 | </li> | 354 | </li> |
355 | @endif | 355 | @endif |
356 | @endif | 356 | @endif |
357 | 357 | ||
358 | @if ($cont->url_page == "admin/basedata") | 358 | @if ($cont->url_page == "admin/basedata") |
359 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 359 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
360 | (($cont->is_manager == 1) && ($is_manager == 1))) | 360 | (($cont->is_manager == 1) && ($is_manager == 1))) |
361 | <li class="relative px-6 py-3"> | 361 | <li class="relative px-6 py-3"> |
362 | <a | 362 | <a |
363 | 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') }}" | 363 | 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') }}" |
364 | > | 364 | > |
365 | <svg | 365 | <svg |
366 | class="w-5 h-5" | 366 | class="w-5 h-5" |
367 | aria-hidden="true" | 367 | aria-hidden="true" |
368 | fill="none" | 368 | fill="none" |
369 | stroke-linecap="round" | 369 | stroke-linecap="round" |
370 | stroke-linejoin="round" | 370 | stroke-linejoin="round" |
371 | stroke-width="2" | 371 | stroke-width="2" |
372 | viewBox="0 0 24 24" | 372 | viewBox="0 0 24 24" |
373 | stroke="currentColor" | 373 | stroke="currentColor" |
374 | > | 374 | > |
375 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 375 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
376 | </svg> | 376 | </svg> |
377 | <span class="ml-4">Базы данных</span> | 377 | <span class="ml-4">Базы данных</span> |
378 | </a> | 378 | </a> |
379 | </li> | 379 | </li> |
380 | @endif | 380 | @endif |
381 | @endif | 381 | @endif |
382 | 382 | ||
383 | @if ($cont->url_page == "admin/education") | 383 | @if ($cont->url_page == "admin/education") |
384 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 384 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
385 | (($cont->is_manager == 1) && ($is_manager == 1))) | 385 | (($cont->is_manager == 1) && ($is_manager == 1))) |
386 | <li class="relative px-6 py-3"> | 386 | <li class="relative px-6 py-3"> |
387 | <a | 387 | <a |
388 | 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') }}" | 388 | 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') }}" |
389 | > | 389 | > |
390 | <svg | 390 | <svg |
391 | class="w-5 h-5" | 391 | class="w-5 h-5" |
392 | aria-hidden="true" | 392 | aria-hidden="true" |
393 | fill="none" | 393 | fill="none" |
394 | stroke-linecap="round" | 394 | stroke-linecap="round" |
395 | stroke-linejoin="round" | 395 | stroke-linejoin="round" |
396 | stroke-width="2" | 396 | stroke-width="2" |
397 | viewBox="0 0 24 24" | 397 | viewBox="0 0 24 24" |
398 | stroke="currentColor" | 398 | stroke="currentColor" |
399 | > | 399 | > |
400 | <path | 400 | <path |
401 | 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" | 401 | 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" |
402 | ></path> | 402 | ></path> |
403 | </svg> | 403 | </svg> |
404 | <span class="ml-4">Учебн.заведения</span> | 404 | <span class="ml-4">Учебн.заведения</span> |
405 | </a> | 405 | </a> |
406 | </li> | 406 | </li> |
407 | @endif | 407 | @endif |
408 | @endif | 408 | @endif |
409 | 409 | ||
410 | @if ($cont->url_page == "admin/statics") | 410 | @if ($cont->url_page == "admin/statics") |
411 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 411 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
412 | (($cont->is_manager == 1) && ($is_manager == 1))) | 412 | (($cont->is_manager == 1) && ($is_manager == 1))) |
413 | <li class="relative px-6 py-3"> | 413 | <li class="relative px-6 py-3"> |
414 | <a | 414 | <a |
415 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.statics') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.statics') }}" | 415 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.statics') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.statics') }}" |
416 | > | 416 | > |
417 | <svg | 417 | <svg |
418 | class="w-5 h-5" | 418 | class="w-5 h-5" |
419 | aria-hidden="true" | 419 | aria-hidden="true" |
420 | fill="none" | 420 | fill="none" |
421 | stroke-linecap="round" | 421 | stroke-linecap="round" |
422 | stroke-linejoin="round" | 422 | stroke-linejoin="round" |
423 | stroke-width="2" | 423 | stroke-width="2" |
424 | viewBox="0 0 24 24" | 424 | viewBox="0 0 24 24" |
425 | stroke="currentColor" | 425 | stroke="currentColor" |
426 | > | 426 | > |
427 | <path | 427 | <path |
428 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" | 428 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" |
429 | ></path> | 429 | ></path> |
430 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> | 430 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> |
431 | </svg> | 431 | </svg> |
432 | <span class="ml-4">Статистика</span> | 432 | <span class="ml-4">Статистика</span> |
433 | </a> | 433 | </a> |
434 | </li> | 434 | </li> |
435 | @endif | 435 | @endif |
436 | @endif | 436 | @endif |
437 | 437 | ||
438 | @if ($cont->url_page == "admin/answers") | 438 | @if ($cont->url_page == "admin/answers") |
439 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 439 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
440 | (($cont->is_manager == 1) && ($is_manager == 1))) | 440 | (($cont->is_manager == 1) && ($is_manager == 1))) |
441 | <li class="relative px-6 py-3"> | 441 | <li class="relative px-6 py-3"> |
442 | <a | 442 | <a |
443 | 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') }}" | 443 | 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') }}" |
444 | > | 444 | > |
445 | <svg | 445 | <svg |
446 | class="w-5 h-5" | 446 | class="w-5 h-5" |
447 | aria-hidden="true" | 447 | aria-hidden="true" |
448 | fill="none" | 448 | fill="none" |
449 | stroke-linecap="round" | 449 | stroke-linecap="round" |
450 | stroke-linejoin="round" | 450 | stroke-linejoin="round" |
451 | stroke-width="2" | 451 | stroke-width="2" |
452 | viewBox="0 0 24 24" | 452 | viewBox="0 0 24 24" |
453 | stroke="currentColor" | 453 | stroke="currentColor" |
454 | > | 454 | > |
455 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 455 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
456 | </svg> | 456 | </svg> |
457 | <span class="ml-4">Модерация</span> | 457 | <span class="ml-4">Модерация</span> |
458 | </a> | 458 | </a> |
459 | </li> | 459 | </li> |
460 | @endif | 460 | @endif |
461 | @endif | 461 | @endif |
462 | 462 | ||
463 | @if ($cont->url_page == "admin/reclames") | 463 | @if ($cont->url_page == "admin/reclames") |
464 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 464 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
465 | (($cont->is_manager == 1) && ($is_manager == 1))) | 465 | (($cont->is_manager == 1) && ($is_manager == 1))) |
466 | <li class="relative px-6 py-3"> | 466 | <li class="relative px-6 py-3"> |
467 | <a | 467 | <a |
468 | 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') }}" | 468 | 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') }}" |
469 | > | 469 | > |
470 | <svg | 470 | <svg |
471 | class="w-5 h-5" | 471 | class="w-5 h-5" |
472 | aria-hidden="true" | 472 | aria-hidden="true" |
473 | fill="none" | 473 | fill="none" |
474 | stroke-linecap="round" | 474 | stroke-linecap="round" |
475 | stroke-linejoin="round" | 475 | stroke-linejoin="round" |
476 | stroke-width="2" | 476 | stroke-width="2" |
477 | viewBox="0 0 24 24" | 477 | viewBox="0 0 24 24" |
478 | stroke="currentColor" | 478 | stroke="currentColor" |
479 | > | 479 | > |
480 | <path | 480 | <path |
481 | 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" | 481 | 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" |
482 | ></path> | 482 | ></path> |
483 | </svg> | 483 | </svg> |
484 | <span class="ml-4">Реклама</span> | 484 | <span class="ml-4">Реклама</span> |
485 | </a> | 485 | </a> |
486 | </li> | 486 | </li> |
487 | @endif | 487 | @endif |
488 | @endif | 488 | @endif |
489 | @endforeach | 489 | @endforeach |
490 | 490 | ||
491 | 491 | ||
492 | <li class="relative px-6 py-3"> | 492 | <li class="relative px-6 py-3"> |
493 | <a | 493 | <a |
494 | 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') }}" | 494 | 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') }}" |
495 | > | 495 | > |
496 | <svg | 496 | <svg |
497 | class="w-5 h-5" | 497 | class="w-5 h-5" |
498 | aria-hidden="true" | 498 | aria-hidden="true" |
499 | fill="none" | 499 | fill="none" |
500 | stroke-linecap="round" | 500 | stroke-linecap="round" |
501 | stroke-linejoin="round" | 501 | stroke-linejoin="round" |
502 | stroke-width="2" | 502 | stroke-width="2" |
503 | viewBox="0 0 24 24" | 503 | viewBox="0 0 24 24" |
504 | stroke="currentColor" | 504 | stroke="currentColor" |
505 | > | 505 | > |
506 | <path | 506 | <path |
507 | 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" | 507 | 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" |
508 | ></path> | 508 | ></path> |
509 | </svg> | 509 | </svg> |
510 | <span class="ml-4">Новости</span> | 510 | <span class="ml-4">Новости</span> |
511 | </a> | 511 | </a> |
512 | </li> | 512 | </li> |
513 | <!-- Справочники --> | 513 | <!-- Справочники --> |
514 | 514 | ||
515 | <li class="relative px-6 py-3" x-data="{ open1: false }"> | 515 | <li class="relative px-6 py-3" x-data="{ open1: false }"> |
516 | <button | 516 | <button |
517 | 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" | 517 | 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" |
518 | @click="open1=!open1" | 518 | @click="open1=!open1" |
519 | aria-haspopup="true"> | 519 | aria-haspopup="true"> |
520 | <span class="inline-flex items-center"> | 520 | <span class="inline-flex items-center"> |
521 | <svg | 521 | <svg |
522 | class="w-5 h-5" | 522 | class="w-5 h-5" |
523 | aria-hidden="true" | 523 | aria-hidden="true" |
524 | fill="none" | 524 | fill="none" |
525 | stroke-linecap="round" | 525 | stroke-linecap="round" |
526 | stroke-linejoin="round" | 526 | stroke-linejoin="round" |
527 | stroke-width="2" | 527 | stroke-width="2" |
528 | viewBox="0 0 24 24" | 528 | viewBox="0 0 24 24" |
529 | stroke="currentColor"> | 529 | stroke="currentColor"> |
530 | <path | 530 | <path |
531 | 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" | 531 | 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" |
532 | ></path> | 532 | ></path> |
533 | </svg> | 533 | </svg> |
534 | <span class="ml-4">Справочники</span> | 534 | <span class="ml-4">Справочники</span> |
535 | </span> | 535 | </span> |
536 | <svg | 536 | <svg |
537 | class="w-4 h-4" | 537 | class="w-4 h-4" |
538 | aria-hidden="true" | 538 | aria-hidden="true" |
539 | fill="currentColor" | 539 | fill="currentColor" |
540 | viewBox="0 0 20 20" | 540 | viewBox="0 0 20 20" |
541 | > | 541 | > |
542 | <path | 542 | <path |
543 | fill-rule="evenodd" | 543 | fill-rule="evenodd" |
544 | 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" | 544 | 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" |
545 | clip-rule="evenodd" | 545 | clip-rule="evenodd" |
546 | ></path> | 546 | ></path> |
547 | </svg> | 547 | </svg> |
548 | </button> | 548 | </button> |
549 | <template x-if="open1"> | 549 | <template x-if="open1"> |
550 | <ul | 550 | <ul |
551 | x-transition:enter="transition-all ease-in-out duration-300" | 551 | x-transition:enter="transition-all ease-in-out duration-300" |
552 | x-transition:enter-start="opacity-25 max-h-0" | 552 | x-transition:enter-start="opacity-25 max-h-0" |
553 | x-transition:enter-end="opacity-100 max-h-xl" | 553 | x-transition:enter-end="opacity-100 max-h-xl" |
554 | x-transition:leave="transition-all ease-in-out duration-300" | 554 | x-transition:leave="transition-all ease-in-out duration-300" |
555 | x-transition:leave-start="opacity-100 max-h-xl" | 555 | x-transition:leave-start="opacity-100 max-h-xl" |
556 | x-transition:leave-end="opacity-0 max-h-0" | 556 | x-transition:leave-end="opacity-0 max-h-0" |
557 | 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" | 557 | 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" |
558 | aria-label="submenu" | 558 | aria-label="submenu" |
559 | > | 559 | > |
560 | @foreach ($contents as $cont) | 560 | @foreach ($contents as $cont) |
561 | @if ($cont->url_page == "admin/job-titles") | 561 | @if ($cont->url_page == "admin/job-titles") |
562 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 562 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
563 | (($cont->is_manager == 1) && ($is_manager == 1))) | 563 | (($cont->is_manager == 1) && ($is_manager == 1))) |
564 | <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 }}"> | 564 | <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 }}"> |
565 | <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a> | 565 | <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a> |
566 | </li> | 566 | </li> |
567 | @endif | 567 | @endif |
568 | @endif | 568 | @endif |
569 | 569 | ||
570 | @if ($cont->url_page == "admin/categories") | 570 | @if ($cont->url_page == "admin/categories") |
571 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 571 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
572 | (($cont->is_manager == 1) && ($is_manager == 1))) | 572 | (($cont->is_manager == 1) && ($is_manager == 1))) |
573 | <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 }}"> | 573 | <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 }}"> |
574 | <a class="w-full" href="{{ route('admin.categories.index') }}">Категории вакансий</a> | 574 | <a class="w-full" href="{{ route('admin.categories.index') }}">Категории вакансий</a> |
575 | </li> | 575 | </li> |
576 | @endif | 576 | @endif |
577 | @endif | 577 | @endif |
578 | 578 | ||
579 | @if ($cont->url_page == "admin/category-emp") | 579 | @if ($cont->url_page == "admin/category-emp") |
580 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 580 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
581 | (($cont->is_manager == 1) && ($is_manager == 1))) | 581 | (($cont->is_manager == 1) && ($is_manager == 1))) |
582 | <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 }}"> | 582 | <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 }}"> |
583 | <a class="w-full" href="{{ route('admin.category-emp.index') }}">Категории работодателей</a> | 583 | <a class="w-full" href="{{ route('admin.category-emp.index') }}">Категории работодателей</a> |
584 | </li> | 584 | </li> |
585 | @endif | 585 | @endif |
586 | @endif | 586 | @endif |
587 | 587 | ||
588 | @if ($cont->url_page == "admin/infobloks") | 588 | @if ($cont->url_page == "admin/infobloks") |
589 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 589 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
590 | (($cont->is_manager == 1) && ($is_manager == 1))) | 590 | (($cont->is_manager == 1) && ($is_manager == 1))) |
591 | <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 }}"> | 591 | <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 }}"> |
592 | <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a> | 592 | <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a> |
593 | </li> | 593 | </li> |
594 | @endif | 594 | @endif |
595 | @endif | 595 | @endif |
596 | @endforeach | 596 | @endforeach |
597 | <!--<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 }}"> | 597 | <!--<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 }}"> |
598 | <a class="w-full" href=" route('admin.position') }}">Позиция</a> | 598 | <a class="w-full" href=" route('admin.position') }}">Позиция</a> |
599 | </li>--> | 599 | </li>--> |
600 | </ul> | 600 | </ul> |
601 | </template> | 601 | </template> |
602 | </li> | 602 | </li> |
603 | 603 | ||
604 | <!-- Редактор --> | 604 | <!-- Редактор --> |
605 | <li class="relative px-6 py-3"> | 605 | <li class="relative px-6 py-3"> |
606 | <button | 606 | <button |
607 | 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" | 607 | 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" |
608 | @click="togglePagesMenu" | 608 | @click="togglePagesMenu" |
609 | aria-haspopup="true"> | 609 | aria-haspopup="true"> |
610 | <span class="inline-flex items-center"> | 610 | <span class="inline-flex items-center"> |
611 | <svg | 611 | <svg |
612 | class="w-5 h-5" | 612 | class="w-5 h-5" |
613 | aria-hidden="true" | 613 | aria-hidden="true" |
614 | fill="none" | 614 | fill="none" |
615 | stroke-linecap="round" | 615 | stroke-linecap="round" |
616 | stroke-linejoin="round" | 616 | stroke-linejoin="round" |
617 | stroke-width="2" | 617 | stroke-width="2" |
618 | viewBox="0 0 24 24" | 618 | viewBox="0 0 24 24" |
619 | stroke="currentColor"> | 619 | stroke="currentColor"> |
620 | <path | 620 | <path |
621 | 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" | 621 | 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" |
622 | ></path> | 622 | ></path> |
623 | </svg> | 623 | </svg> |
624 | <span class="ml-4">Редактор</span> | 624 | <span class="ml-4">Редактор</span> |
625 | </span> | 625 | </span> |
626 | <svg | 626 | <svg |
627 | class="w-4 h-4" | 627 | class="w-4 h-4" |
628 | aria-hidden="true" | 628 | aria-hidden="true" |
629 | fill="currentColor" | 629 | fill="currentColor" |
630 | viewBox="0 0 20 20" | 630 | viewBox="0 0 20 20" |
631 | > | 631 | > |
632 | <path | 632 | <path |
633 | fill-rule="evenodd" | 633 | fill-rule="evenodd" |
634 | 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" | 634 | 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" |
635 | clip-rule="evenodd" | 635 | clip-rule="evenodd" |
636 | ></path> | 636 | ></path> |
637 | </svg> | 637 | </svg> |
638 | </button> | 638 | </button> |
639 | <template x-if="isPagesMenuOpen"> | 639 | <template x-if="isPagesMenuOpen"> |
640 | <ul | 640 | <ul |
641 | x-transition:enter="transition-all ease-in-out duration-300" | 641 | x-transition:enter="transition-all ease-in-out duration-300" |
642 | x-transition:enter-start="opacity-25 max-h-0" | 642 | x-transition:enter-start="opacity-25 max-h-0" |
643 | x-transition:enter-end="opacity-100 max-h-xl" | 643 | x-transition:enter-end="opacity-100 max-h-xl" |
644 | x-transition:leave="transition-all ease-in-out duration-300" | 644 | x-transition:leave="transition-all ease-in-out duration-300" |
645 | x-transition:leave-start="opacity-100 max-h-xl" | 645 | x-transition:leave-start="opacity-100 max-h-xl" |
646 | x-transition:leave-end="opacity-0 max-h-0" | 646 | x-transition:leave-end="opacity-0 max-h-0" |
647 | 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" | 647 | 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" |
648 | aria-label="submenu" | 648 | aria-label="submenu" |
649 | > | 649 | > |
650 | @foreach ($contents as $cont) | 650 | @foreach ($contents as $cont) |
651 | @if ($cont->url_page == "admin/editor-site") | 651 | @if ($cont->url_page == "admin/editor-site") |
652 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 652 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
653 | (($cont->is_manager == 1) && ($is_manager == 1))) | 653 | (($cont->is_manager == 1) && ($is_manager == 1))) |
654 | <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 }}"> | 654 | <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 }}"> |
655 | <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> | 655 | <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> |
656 | </li> | 656 | </li> |
657 | @endif | 657 | @endif |
658 | @endif | 658 | @endif |
659 | 659 | ||
660 | @if ($cont->url_page == "admin/edit-blocks") | 660 | @if ($cont->url_page == "admin/edit-blocks") |
661 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 661 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
662 | (($cont->is_manager == 1) && ($is_manager == 1))) | 662 | (($cont->is_manager == 1) && ($is_manager == 1))) |
663 | <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 }}"> | 663 | <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 }}"> |
664 | <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> | 664 | <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> |
665 | </li> | 665 | </li> |
666 | @endif | 666 | @endif |
667 | @endif | 667 | @endif |
668 | 668 | ||
669 | @if ($cont->url_page == "admin/editor-seo") | 669 | @if ($cont->url_page == "admin/editor-seo") |
670 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 670 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
671 | (($cont->is_manager == 1) && ($is_manager == 1))) | 671 | (($cont->is_manager == 1) && ($is_manager == 1))) |
672 | <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 }}"> | 672 | <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 }}"> |
673 | <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> | 673 | <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> |
674 | </li> | 674 | </li> |
675 | @endif | 675 | @endif |
676 | @endif | 676 | @endif |
677 | 677 | ||
678 | @if ($cont->url_page == "admin/editor-pages") | 678 | @if ($cont->url_page == "admin/editor-pages") |
679 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 679 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
680 | (($cont->is_manager == 1) && ($is_manager == 1))) | 680 | (($cont->is_manager == 1) && ($is_manager == 1))) |
681 | <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 }}"> | 681 | <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 }}"> |
682 | <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> | 682 | <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> |
683 | </li> | 683 | </li> |
684 | @endif | 684 | @endif |
685 | @endif | 685 | @endif |
686 | 686 | ||
687 | @if ($cont->url_page == "admin/job-titles-main") | 687 | @if ($cont->url_page == "admin/job-titles-main") |
688 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 688 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
689 | (($cont->is_manager == 1) && ($is_manager == 1))) | 689 | (($cont->is_manager == 1) && ($is_manager == 1))) |
690 | <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 }}"> | 690 | <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 }}"> |
691 | <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> | 691 | <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> |
692 | </li> | 692 | </li> |
693 | @endif | 693 | @endif |
694 | @endif | 694 | @endif |
695 | 695 | ||
696 | @if ($cont->url_page == "admin/job-titles-main") | ||
697 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | ||
698 | (($cont->is_manager == 1) && ($is_manager == 1))) | ||
699 | <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 }}"> | ||
700 | <a class="w-full" href="{{ route('admin.counters-main') }}">Счетчики на главной</a> | ||
701 | </li> | ||
702 | @endif | ||
703 | @endif | ||
704 | |||
696 | @if ($cont->url_page == "admin/employers-main") | 705 | @if ($cont->url_page == "admin/employers-main") |
697 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 706 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
698 | (($cont->is_manager == 1) && ($is_manager == 1))) | 707 | (($cont->is_manager == 1) && ($is_manager == 1))) |
699 | <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 }}"> | 708 | <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 }}"> |
700 | <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> | 709 | <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> |
701 | </li> | 710 | </li> |
702 | @endif | 711 | @endif |
703 | @endif | 712 | @endif |
704 | 713 | ||
705 | @endforeach | 714 | @endforeach |
706 | </ul> | 715 | </ul> |
707 | </template> | 716 | </template> |
708 | </li> | 717 | </li> |
709 | </ul> | 718 | </ul> |
710 | 719 | ||
711 | <!--<div class="px-6 my-6"> | 720 | <!--<div class="px-6 my-6"> |
712 | <button | 721 | <button |
713 | 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" | 722 | 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" |
714 | > | 723 | > |
715 | Create account | 724 | Create account |
716 | <span class="ml-2" aria-hidden="true">+</span> | 725 | <span class="ml-2" aria-hidden="true">+</span> |
717 | </button> | 726 | </button> |
718 | </div>--> | 727 | </div>--> |
719 | </div> | 728 | </div> |
720 | </aside> | 729 | </aside> |
721 | <!-- Mobile sidebar --> | 730 | <!-- Mobile sidebar --> |
722 | <!-- Backdrop --> | 731 | <!-- Backdrop --> |
723 | <div | 732 | <div |
724 | x-show="isSideMenuOpen" | 733 | x-show="isSideMenuOpen" |
725 | x-transition:enter="transition ease-in-out duration-150" | 734 | x-transition:enter="transition ease-in-out duration-150" |
726 | x-transition:enter-start="opacity-0" | 735 | x-transition:enter-start="opacity-0" |
727 | x-transition:enter-end="opacity-100" | 736 | x-transition:enter-end="opacity-100" |
728 | x-transition:leave="transition ease-in-out duration-150" | 737 | x-transition:leave="transition ease-in-out duration-150" |
729 | x-transition:leave-start="opacity-100" | 738 | x-transition:leave-start="opacity-100" |
730 | x-transition:leave-end="opacity-0" | 739 | x-transition:leave-end="opacity-0" |
731 | class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center" | 740 | class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center" |
732 | ></div> | 741 | ></div> |
733 | <aside | 742 | <aside |
734 | 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" | 743 | 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" |
735 | x-show="isSideMenuOpen" | 744 | x-show="isSideMenuOpen" |
736 | x-transition:enter="transition ease-in-out duration-150" | 745 | x-transition:enter="transition ease-in-out duration-150" |
737 | x-transition:enter-start="opacity-0 transform -translate-x-20" | 746 | x-transition:enter-start="opacity-0 transform -translate-x-20" |
738 | x-transition:enter-end="opacity-100" | 747 | x-transition:enter-end="opacity-100" |
739 | x-transition:leave="transition ease-in-out duration-150" | 748 | x-transition:leave="transition ease-in-out duration-150" |
740 | x-transition:leave-start="opacity-100" | 749 | x-transition:leave-start="opacity-100" |
741 | x-transition:leave-end="opacity-0 transform -translate-x-20" | 750 | x-transition:leave-end="opacity-0 transform -translate-x-20" |
742 | @click.away="closeSideMenu" | 751 | @click.away="closeSideMenu" |
743 | @keydown.escape="closeSideMenu" | 752 | @keydown.escape="closeSideMenu" |
744 | > | 753 | > |
745 | <div class="py-4 text-gray-500 dark:text-gray-400"> | 754 | <div class="py-4 text-gray-500 dark:text-gray-400"> |
746 | <a | 755 | <a |
747 | class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" | 756 | class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" |
748 | href="{{ route('admin.index') }}" | 757 | href="{{ route('admin.index') }}" |
749 | > | 758 | > |
750 | Админка | 759 | Админка |
751 | </a> | 760 | </a> |
752 | <ul class="mt-6"> | 761 | <ul class="mt-6"> |
753 | <li class="relative px-6 py-3"> | 762 | <li class="relative px-6 py-3"> |
754 | <span | 763 | <span |
755 | class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" | 764 | class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" |
756 | aria-hidden="true" | 765 | aria-hidden="true" |
757 | ></span> | 766 | ></span> |
758 | <a | 767 | <a |
759 | 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') }}" | 768 | 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') }}" |
760 | > | 769 | > |
761 | <svg | 770 | <svg |
762 | class="w-5 h-5" | 771 | class="w-5 h-5" |
763 | aria-hidden="true" | 772 | aria-hidden="true" |
764 | fill="none" | 773 | fill="none" |
765 | stroke-linecap="round" | 774 | stroke-linecap="round" |
766 | stroke-linejoin="round" | 775 | stroke-linejoin="round" |
767 | stroke-width="2" | 776 | stroke-width="2" |
768 | viewBox="0 0 24 24" | 777 | viewBox="0 0 24 24" |
769 | stroke="currentColor" | 778 | stroke="currentColor" |
770 | > | 779 | > |
771 | <path | 780 | <path |
772 | 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" | 781 | 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" |
773 | ></path> | 782 | ></path> |
774 | </svg> | 783 | </svg> |
775 | <span class="ml-4">Главная страница</span> | 784 | <span class="ml-4">Главная страница</span> |
776 | </a> | 785 | </a> |
777 | </li> | 786 | </li> |
778 | </ul> | 787 | </ul> |
779 | <ul> | 788 | <ul> |
780 | @foreach ($contents as $cont) | 789 | @foreach ($contents as $cont) |
781 | @if ($cont->url_page == "admin/users") | 790 | @if ($cont->url_page == "admin/users") |
782 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 791 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
783 | (($cont->is_manager == 1) && ($is_manager == 1))) | 792 | (($cont->is_manager == 1) && ($is_manager == 1))) |
784 | <li class="relative px-6 py-3"> | 793 | <li class="relative px-6 py-3"> |
785 | <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') }}"> | 794 | <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') }}"> |
786 | <svg | 795 | <svg |
787 | class="w-5 h-5" | 796 | class="w-5 h-5" |
788 | aria-hidden="true" | 797 | aria-hidden="true" |
789 | fill="none" | 798 | fill="none" |
790 | stroke-linecap="round" | 799 | stroke-linecap="round" |
791 | stroke-linejoin="round" | 800 | stroke-linejoin="round" |
792 | stroke-width="2" | 801 | stroke-width="2" |
793 | viewBox="0 0 24 24" | 802 | viewBox="0 0 24 24" |
794 | stroke="currentColor" | 803 | stroke="currentColor" |
795 | > | 804 | > |
796 | <path | 805 | <path |
797 | 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" | 806 | 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" |
798 | ></path> | 807 | ></path> |
799 | </svg> | 808 | </svg> |
800 | <span class="ml-4">Пользователи</span> | 809 | <span class="ml-4">Пользователи</span> |
801 | </a> | 810 | </a> |
802 | </li> | 811 | </li> |
803 | @endif | 812 | @endif |
804 | @endif | 813 | @endif |
805 | 814 | ||
806 | @if ($cont->url_page == "admin/admin-users") | 815 | @if ($cont->url_page == "admin/admin-users") |
807 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 816 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
808 | (($cont->is_manager == 1) && ($is_manager == 1))) | 817 | (($cont->is_manager == 1) && ($is_manager == 1))) |
809 | <li class="relative px-6 py-3"> | 818 | <li class="relative px-6 py-3"> |
810 | <a | 819 | <a |
811 | 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') }}" | 820 | 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') }}" |
812 | > | 821 | > |
813 | <svg | 822 | <svg |
814 | class="w-5 h-5" | 823 | class="w-5 h-5" |
815 | aria-hidden="true" | 824 | aria-hidden="true" |
816 | fill="none" | 825 | fill="none" |
817 | stroke-linecap="round" | 826 | stroke-linecap="round" |
818 | stroke-linejoin="round" | 827 | stroke-linejoin="round" |
819 | stroke-width="2" | 828 | stroke-width="2" |
820 | viewBox="0 0 24 24" | 829 | viewBox="0 0 24 24" |
821 | stroke="currentColor" | 830 | stroke="currentColor" |
822 | > | 831 | > |
823 | <path | 832 | <path |
824 | 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" | 833 | 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" |
825 | ></path> | 834 | ></path> |
826 | </svg> | 835 | </svg> |
827 | <span class="ml-4">Администраторы</span> | 836 | <span class="ml-4">Администраторы</span> |
828 | </a> | 837 | </a> |
829 | </li> | 838 | </li> |
830 | @endif | 839 | @endif |
831 | @endif | 840 | @endif |
832 | 841 | ||
833 | @if ($cont->url_page == "admin/employers") | 842 | @if ($cont->url_page == "admin/employers") |
834 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 843 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
835 | (($cont->is_manager == 1) && ($is_manager == 1))) | 844 | (($cont->is_manager == 1) && ($is_manager == 1))) |
836 | <li class="relative px-6 py-3"> | 845 | <li class="relative px-6 py-3"> |
837 | <a | 846 | <a |
838 | class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 {{ Request::routeIs('admin.employers') ? 'dark:text-gray-100' : null }}" href="{{ route('admin.employers') }}" | 847 | 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') }}" |
839 | > | 848 | > |
840 | <svg | 849 | <svg |
841 | class="w-5 h-5" | 850 | class="w-5 h-5" |
842 | aria-hidden="true" | 851 | aria-hidden="true" |
843 | fill="none" | 852 | fill="none" |
844 | stroke-linecap="round" | 853 | stroke-linecap="round" |
845 | stroke-linejoin="round" | 854 | stroke-linejoin="round" |
846 | stroke-width="2" | 855 | stroke-width="2" |
847 | viewBox="0 0 24 24" | 856 | viewBox="0 0 24 24" |
848 | stroke="currentColor" | 857 | stroke="currentColor" |
849 | > | 858 | > |
850 | <path | 859 | <path |
851 | 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" | 860 | 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" |
852 | ></path> | 861 | ></path> |
853 | </svg> | 862 | </svg> |
854 | <span class="ml-4">Работодатели</span> | 863 | <span class="ml-4">Работодатели</span> |
855 | </a> | 864 | </a> |
856 | </li> | 865 | </li> |
857 | @endif | 866 | @endif |
858 | @endif | 867 | @endif |
859 | 868 | ||
860 | @if ($cont->url_page == "admin/workers") | 869 | @if ($cont->url_page == "admin/workers") |
861 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 870 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
862 | (($cont->is_manager == 1) && ($is_manager == 1))) | 871 | (($cont->is_manager == 1) && ($is_manager == 1))) |
863 | <li class="relative px-6 py-3"> | 872 | <li class="relative px-6 py-3"> |
864 | <a | 873 | <a |
865 | 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') }}" | 874 | 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') }}" |
866 | > | 875 | > |
867 | <svg | 876 | <svg |
868 | class="w-5 h-5" | 877 | class="w-5 h-5" |
869 | aria-hidden="true" | 878 | aria-hidden="true" |
870 | fill="none" | 879 | fill="none" |
871 | stroke-linecap="round" | 880 | stroke-linecap="round" |
872 | stroke-linejoin="round" | 881 | stroke-linejoin="round" |
873 | stroke-width="2" | 882 | stroke-width="2" |
874 | viewBox="0 0 24 24" | 883 | viewBox="0 0 24 24" |
875 | stroke="currentColor" | 884 | stroke="currentColor" |
876 | > | 885 | > |
877 | <path | 886 | <path |
878 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" | 887 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" |
879 | ></path> | 888 | ></path> |
880 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> | 889 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> |
881 | </svg> | 890 | </svg> |
882 | <span class="ml-4">Соискатели</span> | 891 | <span class="ml-4">Соискатели</span> |
883 | </a> | 892 | </a> |
884 | </li> | 893 | </li> |
885 | @endif | 894 | @endif |
886 | @endif | 895 | @endif |
887 | 896 | ||
888 | @if ($cont->url_page == "admin/ad-employers") | 897 | @if ($cont->url_page == "admin/ad-employers") |
889 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 898 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
890 | (($cont->is_manager == 1) && ($is_manager == 1))) | 899 | (($cont->is_manager == 1) && ($is_manager == 1))) |
891 | <li class="relative px-6 py-3"> | 900 | <li class="relative px-6 py-3"> |
892 | <a | 901 | <a |
893 | 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') }}" | 902 | 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') }}" |
894 | > | 903 | > |
895 | <svg | 904 | <svg |
896 | class="w-5 h-5" | 905 | class="w-5 h-5" |
897 | aria-hidden="true" | 906 | aria-hidden="true" |
898 | fill="none" | 907 | fill="none" |
899 | stroke-linecap="round" | 908 | stroke-linecap="round" |
900 | stroke-linejoin="round" | 909 | stroke-linejoin="round" |
901 | stroke-width="2" | 910 | stroke-width="2" |
902 | viewBox="0 0 24 24" | 911 | viewBox="0 0 24 24" |
903 | stroke="currentColor" | 912 | stroke="currentColor" |
904 | > | 913 | > |
905 | <path | 914 | <path |
906 | 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" | 915 | 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" |
907 | ></path> | 916 | ></path> |
908 | </svg> | 917 | </svg> |
909 | <span class="ml-4">Вакансии</span> | 918 | <span class="ml-4">Вакансии</span> |
910 | </a> | 919 | </a> |
911 | </li> | 920 | </li> |
912 | @endif | 921 | @endif |
913 | @endif | 922 | @endif |
914 | 923 | ||
915 | @if ($cont->url_page == "admin/messages") | 924 | @if ($cont->url_page == "admin/messages") |
916 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 925 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
917 | (($cont->is_manager == 1) && ($is_manager == 1))) | 926 | (($cont->is_manager == 1) && ($is_manager == 1))) |
918 | <li class="relative px-6 py-3"> | 927 | <li class="relative px-6 py-3"> |
919 | <a | 928 | <a |
920 | 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') }}" | 929 | 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') }}" |
921 | > | 930 | > |
922 | <svg | 931 | <svg |
923 | class="w-5 h-5" | 932 | class="w-5 h-5" |
924 | aria-hidden="true" | 933 | aria-hidden="true" |
925 | fill="none" | 934 | fill="none" |
926 | stroke-linecap="round" | 935 | stroke-linecap="round" |
927 | stroke-linejoin="round" | 936 | stroke-linejoin="round" |
928 | stroke-width="2" | 937 | stroke-width="2" |
929 | viewBox="0 0 24 24" | 938 | viewBox="0 0 24 24" |
930 | stroke="currentColor" | 939 | stroke="currentColor" |
931 | > | 940 | > |
932 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 941 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
933 | </svg> | 942 | </svg> |
934 | <span class="ml-4">Сообщения все</span> | 943 | <span class="ml-4">Сообщения все</span> |
935 | </a> | 944 | </a> |
936 | </li> | 945 | </li> |
937 | @endif | 946 | @endif |
938 | @endif | 947 | @endif |
939 | 948 | ||
940 | @if ($cont->url_page == "admin/admin-messages") | 949 | @if ($cont->url_page == "admin/admin-messages") |
941 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 950 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
942 | (($cont->is_manager == 1) && ($is_manager == 1))) | 951 | (($cont->is_manager == 1) && ($is_manager == 1))) |
943 | <li class="relative px-6 py-3"> | 952 | <li class="relative px-6 py-3"> |
944 | <a | 953 | <a |
945 | 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') }}" | 954 | 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') }}" |
946 | > | 955 | > |
947 | <svg | 956 | <svg |
948 | class="w-5 h-5" | 957 | class="w-5 h-5" |
949 | aria-hidden="true" | 958 | aria-hidden="true" |
950 | fill="none" | 959 | fill="none" |
951 | stroke-linecap="round" | 960 | stroke-linecap="round" |
952 | stroke-linejoin="round" | 961 | stroke-linejoin="round" |
953 | stroke-width="2" | 962 | stroke-width="2" |
954 | viewBox="0 0 24 24" | 963 | viewBox="0 0 24 24" |
955 | stroke="currentColor" | 964 | stroke="currentColor" |
956 | > | 965 | > |
957 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 966 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
958 | </svg> | 967 | </svg> |
959 | <span class="ml-4">Заявки на рассылку</span> | 968 | <span class="ml-4">Заявки на рассылку</span> |
960 | </a> | 969 | </a> |
961 | </li> | 970 | </li> |
962 | @endif | 971 | @endif |
963 | @endif | 972 | @endif |
964 | 973 | ||
965 | @if ($cont->url_page == "admin/groups") | 974 | @if ($cont->url_page == "admin/groups") |
966 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 975 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
967 | (($cont->is_manager == 1) && ($is_manager == 1))) | 976 | (($cont->is_manager == 1) && ($is_manager == 1))) |
968 | <li class="relative px-6 py-3"> | 977 | <li class="relative px-6 py-3"> |
969 | <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') }}"> | 978 | <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') }}"> |
970 | <svg | 979 | <svg |
971 | class="w-5 h-5" | 980 | class="w-5 h-5" |
972 | aria-hidden="true" | 981 | aria-hidden="true" |
973 | fill="none" | 982 | fill="none" |
974 | stroke-linecap="round" | 983 | stroke-linecap="round" |
975 | stroke-linejoin="round" | 984 | stroke-linejoin="round" |
976 | stroke-width="2" | 985 | stroke-width="2" |
977 | viewBox="0 0 24 24" | 986 | viewBox="0 0 24 24" |
978 | stroke="currentColor" | 987 | stroke="currentColor" |
979 | > | 988 | > |
980 | <path | 989 | <path |
981 | 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" | 990 | 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" |
982 | ></path> | 991 | ></path> |
983 | </svg> | 992 | </svg> |
984 | <span class="ml-4">Группы пользователей</span> | 993 | <span class="ml-4">Группы пользователей</span> |
985 | </a> | 994 | </a> |
986 | </li> | 995 | </li> |
987 | @endif | 996 | @endif |
988 | @endif | 997 | @endif |
989 | 998 | ||
990 | @if ($cont->url_page == "admin/media") | 999 | @if ($cont->url_page == "admin/media") |
991 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1000 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
992 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1001 | (($cont->is_manager == 1) && ($is_manager == 1))) |
993 | <li class="relative px-6 py-3"> | 1002 | <li class="relative px-6 py-3"> |
994 | <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') }}"> | 1003 | <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') }}"> |
995 | <svg | 1004 | <svg |
996 | class="w-5 h-5" | 1005 | class="w-5 h-5" |
997 | aria-hidden="true" | 1006 | aria-hidden="true" |
998 | fill="none" | 1007 | fill="none" |
999 | stroke-linecap="round" | 1008 | stroke-linecap="round" |
1000 | stroke-linejoin="round" | 1009 | stroke-linejoin="round" |
1001 | stroke-width="2" | 1010 | stroke-width="2" |
1002 | viewBox="0 0 24 24" | 1011 | viewBox="0 0 24 24" |
1003 | stroke="currentColor" | 1012 | stroke="currentColor" |
1004 | > | 1013 | > |
1005 | <path | 1014 | <path |
1006 | 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" | 1015 | 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" |
1007 | ></path> | 1016 | ></path> |
1008 | </svg> | 1017 | </svg> |
1009 | <span class="ml-4">Медиа</span> | 1018 | <span class="ml-4">Медиа</span> |
1010 | </a> | 1019 | </a> |
1011 | </li> | 1020 | </li> |
1012 | @endif | 1021 | @endif |
1013 | @endif | 1022 | @endif |
1014 | 1023 | ||
1015 | @if ($cont->url_page == "admin/roles") | 1024 | @if ($cont->url_page == "admin/roles") |
1016 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1025 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1017 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1026 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1018 | 1027 | ||
1019 | <li class="relative px-6 py-3"> | 1028 | <li class="relative px-6 py-3"> |
1020 | <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') }}"> | 1029 | <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') }}"> |
1021 | <svg | 1030 | <svg |
1022 | class="w-5 h-5" | 1031 | class="w-5 h-5" |
1023 | aria-hidden="true" | 1032 | aria-hidden="true" |
1024 | fill="none" | 1033 | fill="none" |
1025 | stroke-linecap="round" | 1034 | stroke-linecap="round" |
1026 | stroke-linejoin="round" | 1035 | stroke-linejoin="round" |
1027 | stroke-width="2" | 1036 | stroke-width="2" |
1028 | viewBox="0 0 24 24" | 1037 | viewBox="0 0 24 24" |
1029 | stroke="currentColor" | 1038 | stroke="currentColor" |
1030 | > | 1039 | > |
1031 | <path | 1040 | <path |
1032 | 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" | 1041 | 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" |
1033 | ></path> | 1042 | ></path> |
1034 | </svg> | 1043 | </svg> |
1035 | <span class="ml-4">Роли пользователей</span> | 1044 | <span class="ml-4">Роли пользователей</span> |
1036 | </a> | 1045 | </a> |
1037 | </li> | 1046 | </li> |
1038 | @endif | 1047 | @endif |
1039 | @endif | 1048 | @endif |
1040 | 1049 | ||
1041 | @if ($cont->url_page == "admin/basedata") | 1050 | @if ($cont->url_page == "admin/basedata") |
1042 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1051 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1043 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1052 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1044 | <li class="relative px-6 py-3"> | 1053 | <li class="relative px-6 py-3"> |
1045 | <a | 1054 | <a |
1046 | 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') }}" | 1055 | 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') }}" |
1047 | > | 1056 | > |
1048 | <svg | 1057 | <svg |
1049 | class="w-5 h-5" | 1058 | class="w-5 h-5" |
1050 | aria-hidden="true" | 1059 | aria-hidden="true" |
1051 | fill="none" | 1060 | fill="none" |
1052 | stroke-linecap="round" | 1061 | stroke-linecap="round" |
1053 | stroke-linejoin="round" | 1062 | stroke-linejoin="round" |
1054 | stroke-width="2" | 1063 | stroke-width="2" |
1055 | viewBox="0 0 24 24" | 1064 | viewBox="0 0 24 24" |
1056 | stroke="currentColor" | 1065 | stroke="currentColor" |
1057 | > | 1066 | > |
1058 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 1067 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
1059 | </svg> | 1068 | </svg> |
1060 | <span class="ml-4">Базы данных</span> | 1069 | <span class="ml-4">Базы данных</span> |
1061 | </a> | 1070 | </a> |
1062 | </li> | 1071 | </li> |
1063 | @endif | 1072 | @endif |
1064 | @endif | 1073 | @endif |
1065 | 1074 | ||
1066 | @if ($cont->url_page == "admin/education") | 1075 | @if ($cont->url_page == "admin/education") |
1067 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1076 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1068 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1077 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1069 | <li class="relative px-6 py-3"> | 1078 | <li class="relative px-6 py-3"> |
1070 | <a | 1079 | <a |
1071 | 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') }}" | 1080 | 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') }}" |
1072 | > | 1081 | > |
1073 | <svg | 1082 | <svg |
1074 | class="w-5 h-5" | 1083 | class="w-5 h-5" |
1075 | aria-hidden="true" | 1084 | aria-hidden="true" |
1076 | fill="none" | 1085 | fill="none" |
1077 | stroke-linecap="round" | 1086 | stroke-linecap="round" |
1078 | stroke-linejoin="round" | 1087 | stroke-linejoin="round" |
1079 | stroke-width="2" | 1088 | stroke-width="2" |
1080 | viewBox="0 0 24 24" | 1089 | viewBox="0 0 24 24" |
1081 | stroke="currentColor" | 1090 | stroke="currentColor" |
1082 | > | 1091 | > |
1083 | <path | 1092 | <path |
1084 | 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" | 1093 | 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" |
1085 | ></path> | 1094 | ></path> |
1086 | </svg> | 1095 | </svg> |
1087 | <span class="ml-4">Учебн.заведения</span> | 1096 | <span class="ml-4">Учебн.заведения</span> |
1088 | </a> | 1097 | </a> |
1089 | </li> | 1098 | </li> |
1090 | @endif | 1099 | @endif |
1091 | @endif | 1100 | @endif |
1092 | 1101 | ||
1093 | @if ($cont->url_page == "admin/statics") | 1102 | @if ($cont->url_page == "admin/statics") |
1094 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1103 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1095 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1104 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1096 | <li class="relative px-6 py-3"> | 1105 | <li class="relative px-6 py-3"> |
1097 | <a | 1106 | <a |
1098 | 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') }}" | 1107 | 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') }}" |
1099 | > | 1108 | > |
1100 | <svg | 1109 | <svg |
1101 | class="w-5 h-5" | 1110 | class="w-5 h-5" |
1102 | aria-hidden="true" | 1111 | aria-hidden="true" |
1103 | fill="none" | 1112 | fill="none" |
1104 | stroke-linecap="round" | 1113 | stroke-linecap="round" |
1105 | stroke-linejoin="round" | 1114 | stroke-linejoin="round" |
1106 | stroke-width="2" | 1115 | stroke-width="2" |
1107 | viewBox="0 0 24 24" | 1116 | viewBox="0 0 24 24" |
1108 | stroke="currentColor" | 1117 | stroke="currentColor" |
1109 | > | 1118 | > |
1110 | <path | 1119 | <path |
1111 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" | 1120 | d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" |
1112 | ></path> | 1121 | ></path> |
1113 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> | 1122 | <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> |
1114 | </svg> | 1123 | </svg> |
1115 | <span class="ml-4">Статистика</span> | 1124 | <span class="ml-4">Статистика</span> |
1116 | </a> | 1125 | </a> |
1117 | </li> | 1126 | </li> |
1118 | @endif | 1127 | @endif |
1119 | @endif | 1128 | @endif |
1120 | 1129 | ||
1121 | @if ($cont->url_page == "admin/messages") | 1130 | @if ($cont->url_page == "admin/messages") |
1122 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1131 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1123 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1132 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1124 | <li class="relative px-6 py-3"> | 1133 | <li class="relative px-6 py-3"> |
1125 | <a | 1134 | <a |
1126 | 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') }}" | 1135 | 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') }}" |
1127 | > | 1136 | > |
1128 | <svg | 1137 | <svg |
1129 | class="w-5 h-5" | 1138 | class="w-5 h-5" |
1130 | aria-hidden="true" | 1139 | aria-hidden="true" |
1131 | fill="none" | 1140 | fill="none" |
1132 | stroke-linecap="round" | 1141 | stroke-linecap="round" |
1133 | stroke-linejoin="round" | 1142 | stroke-linejoin="round" |
1134 | stroke-width="2" | 1143 | stroke-width="2" |
1135 | viewBox="0 0 24 24" | 1144 | viewBox="0 0 24 24" |
1136 | stroke="currentColor" | 1145 | stroke="currentColor" |
1137 | > | 1146 | > |
1138 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> | 1147 | <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> |
1139 | </svg> | 1148 | </svg> |
1140 | <span class="ml-4">Сообщения все</span> | 1149 | <span class="ml-4">Сообщения все</span> |
1141 | </a> | 1150 | </a> |
1142 | </li> | 1151 | </li> |
1143 | @endif | 1152 | @endif |
1144 | @endif | 1153 | @endif |
1145 | 1154 | ||
1146 | @if ($cont->url_page == "admin/reclames") | 1155 | @if ($cont->url_page == "admin/reclames") |
1147 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1156 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1148 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1157 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1149 | <li class="relative px-6 py-3"> | 1158 | <li class="relative px-6 py-3"> |
1150 | <a | 1159 | <a |
1151 | 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') }}" | 1160 | 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') }}" |
1152 | > | 1161 | > |
1153 | <svg | 1162 | <svg |
1154 | class="w-5 h-5" | 1163 | class="w-5 h-5" |
1155 | aria-hidden="true" | 1164 | aria-hidden="true" |
1156 | fill="none" | 1165 | fill="none" |
1157 | stroke-linecap="round" | 1166 | stroke-linecap="round" |
1158 | stroke-linejoin="round" | 1167 | stroke-linejoin="round" |
1159 | stroke-width="2" | 1168 | stroke-width="2" |
1160 | viewBox="0 0 24 24" | 1169 | viewBox="0 0 24 24" |
1161 | stroke="currentColor" | 1170 | stroke="currentColor" |
1162 | > | 1171 | > |
1163 | <path | 1172 | <path |
1164 | 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" | 1173 | 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" |
1165 | ></path> | 1174 | ></path> |
1166 | </svg> | 1175 | </svg> |
1167 | <span class="ml-4">Реклама</span> | 1176 | <span class="ml-4">Реклама</span> |
1168 | </a> | 1177 | </a> |
1169 | </li> | 1178 | </li> |
1170 | @endif | 1179 | @endif |
1171 | @endif | 1180 | @endif |
1172 | @endforeach | 1181 | @endforeach |
1173 | 1182 | ||
1174 | <!-- Справочники --> | 1183 | <!-- Справочники --> |
1175 | <li class="relative px-6 py-3" x-data="{ open2: false }"> | 1184 | <li class="relative px-6 py-3" x-data="{ open2: false }"> |
1176 | <button | 1185 | <button |
1177 | 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" | 1186 | 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" |
1178 | @click="open2=!open2" | 1187 | @click="open2=!open2" |
1179 | aria-haspopup="true"> | 1188 | aria-haspopup="true"> |
1180 | <span class="inline-flex items-center"> | 1189 | <span class="inline-flex items-center"> |
1181 | <svg | 1190 | <svg |
1182 | class="w-5 h-5" | 1191 | class="w-5 h-5" |
1183 | aria-hidden="true" | 1192 | aria-hidden="true" |
1184 | fill="none" | 1193 | fill="none" |
1185 | stroke-linecap="round" | 1194 | stroke-linecap="round" |
1186 | stroke-linejoin="round" | 1195 | stroke-linejoin="round" |
1187 | stroke-width="2" | 1196 | stroke-width="2" |
1188 | viewBox="0 0 24 24" | 1197 | viewBox="0 0 24 24" |
1189 | stroke="currentColor"> | 1198 | stroke="currentColor"> |
1190 | <path | 1199 | <path |
1191 | 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" | 1200 | 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" |
1192 | ></path> | 1201 | ></path> |
1193 | </svg> | 1202 | </svg> |
1194 | <span class="ml-4">Справочники</span> | 1203 | <span class="ml-4">Справочники</span> |
1195 | </span> | 1204 | </span> |
1196 | <svg | 1205 | <svg |
1197 | class="w-4 h-4" | 1206 | class="w-4 h-4" |
1198 | aria-hidden="true" | 1207 | aria-hidden="true" |
1199 | fill="currentColor" | 1208 | fill="currentColor" |
1200 | viewBox="0 0 20 20" | 1209 | viewBox="0 0 20 20" |
1201 | > | 1210 | > |
1202 | <path | 1211 | <path |
1203 | fill-rule="evenodd" | 1212 | fill-rule="evenodd" |
1204 | 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" | 1213 | 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" |
1205 | clip-rule="evenodd" | 1214 | clip-rule="evenodd" |
1206 | ></path> | 1215 | ></path> |
1207 | </svg> | 1216 | </svg> |
1208 | </button> | 1217 | </button> |
1209 | <template x-if="open2"> | 1218 | <template x-if="open2"> |
1210 | <ul | 1219 | <ul |
1211 | x-transition:enter="transition-all ease-in-out duration-300" | 1220 | x-transition:enter="transition-all ease-in-out duration-300" |
1212 | x-transition:enter-start="opacity-25 max-h-0" | 1221 | x-transition:enter-start="opacity-25 max-h-0" |
1213 | x-transition:enter-end="opacity-100 max-h-xl" | 1222 | x-transition:enter-end="opacity-100 max-h-xl" |
1214 | x-transition:leave="transition-all ease-in-out duration-300" | 1223 | x-transition:leave="transition-all ease-in-out duration-300" |
1215 | x-transition:leave-start="opacity-100 max-h-xl" | 1224 | x-transition:leave-start="opacity-100 max-h-xl" |
1216 | x-transition:leave-end="opacity-0 max-h-0" | 1225 | x-transition:leave-end="opacity-0 max-h-0" |
1217 | 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" | 1226 | 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" |
1218 | aria-label="submenu" | 1227 | aria-label="submenu" |
1219 | > | 1228 | > |
1220 | @foreach ($contents as $cont) | 1229 | @foreach ($contents as $cont) |
1221 | @if ($cont->url_page == "admin/job-titles") | 1230 | @if ($cont->url_page == "admin/job-titles") |
1222 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1231 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1223 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1232 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1224 | <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 }}"> | 1233 | <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 }}"> |
1225 | <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a> | 1234 | <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a> |
1226 | </li> | 1235 | </li> |
1227 | @endif | 1236 | @endif |
1228 | @endif | 1237 | @endif |
1229 | 1238 | ||
1230 | @if ($cont->url_page == "admin/categories") | 1239 | @if ($cont->url_page == "admin/categories") |
1231 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1240 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1232 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1241 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1233 | <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 }}"> | 1242 | <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 }}"> |
1234 | <a class="w-full" href="{{ route('admin.categories.index') }}">Категории вакансий</a> | 1243 | <a class="w-full" href="{{ route('admin.categories.index') }}">Категории вакансий</a> |
1235 | </li> | 1244 | </li> |
1236 | @endif | 1245 | @endif |
1237 | @endif | 1246 | @endif |
1238 | 1247 | ||
1239 | @if ($cont->url_page == "admin/category-emp") | 1248 | @if ($cont->url_page == "admin/category-emp") |
1240 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1249 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1241 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1250 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1242 | <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 }}"> | 1251 | <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 }}"> |
1243 | <a class="w-full" href="{{ route('admin.category-emp.index') }}">Категории работодателей</a> | 1252 | <a class="w-full" href="{{ route('admin.category-emp.index') }}">Категории работодателей</a> |
1244 | </li> | 1253 | </li> |
1245 | @endif | 1254 | @endif |
1246 | @endif | 1255 | @endif |
1247 | 1256 | ||
1248 | @if ($cont->url_page == "admin/infobloks") | 1257 | @if ($cont->url_page == "admin/infobloks") |
1249 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1258 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1250 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1259 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1251 | <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 }}"> | 1260 | <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 }}"> |
1252 | <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a> | 1261 | <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a> |
1253 | </li> | 1262 | </li> |
1254 | @endif | 1263 | @endif |
1255 | @endif | 1264 | @endif |
1256 | 1265 | ||
1257 | @if ($cont->url_page == "admin/position") | 1266 | @if ($cont->url_page == "admin/position") |
1258 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1267 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1259 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1268 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1260 | <!--<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 }}"> | 1269 | <!--<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 }}"> |
1261 | <a class="w-full" href=" route('admin.position') }}">Позиция</a> | 1270 | <a class="w-full" href=" route('admin.position') }}">Позиция</a> |
1262 | </li>--> | 1271 | </li>--> |
1263 | @endif | 1272 | @endif |
1264 | @endif | 1273 | @endif |
1265 | 1274 | ||
1266 | @endforeach | 1275 | @endforeach |
1267 | </ul> | 1276 | </ul> |
1268 | </template> | 1277 | </template> |
1269 | </li> | 1278 | </li> |
1270 | 1279 | ||
1271 | <!-- Редактор --> | 1280 | <!-- Редактор --> |
1272 | <li class="relative px-6 py-3"> | 1281 | <li class="relative px-6 py-3"> |
1273 | <button | 1282 | <button |
1274 | 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" | 1283 | 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" |
1275 | @click="togglePagesMenu" | 1284 | @click="togglePagesMenu" |
1276 | aria-haspopup="true" | 1285 | aria-haspopup="true" |
1277 | > | 1286 | > |
1278 | <span class="inline-flex items-center"> | 1287 | <span class="inline-flex items-center"> |
1279 | <svg | 1288 | <svg |
1280 | class="w-5 h-5" | 1289 | class="w-5 h-5" |
1281 | aria-hidden="true" | 1290 | aria-hidden="true" |
1282 | fill="none" | 1291 | fill="none" |
1283 | stroke-linecap="round" | 1292 | stroke-linecap="round" |
1284 | stroke-linejoin="round" | 1293 | stroke-linejoin="round" |
1285 | stroke-width="2" | 1294 | stroke-width="2" |
1286 | viewBox="0 0 24 24" | 1295 | viewBox="0 0 24 24" |
1287 | stroke="currentColor" | 1296 | stroke="currentColor" |
1288 | > | 1297 | > |
1289 | <path | 1298 | <path |
1290 | 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" | 1299 | 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" |
1291 | ></path> | 1300 | ></path> |
1292 | </svg> | 1301 | </svg> |
1293 | <span class="ml-4">Редактор</span> | 1302 | <span class="ml-4">Редактор</span> |
1294 | </span> | 1303 | </span> |
1295 | <svg | 1304 | <svg |
1296 | class="w-4 h-4" | 1305 | class="w-4 h-4" |
1297 | aria-hidden="true" | 1306 | aria-hidden="true" |
1298 | fill="currentColor" | 1307 | fill="currentColor" |
1299 | viewBox="0 0 20 20" | 1308 | viewBox="0 0 20 20" |
1300 | > | 1309 | > |
1301 | <path | 1310 | <path |
1302 | fill-rule="evenodd" | 1311 | fill-rule="evenodd" |
1303 | 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" | 1312 | 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" |
1304 | clip-rule="evenodd" | 1313 | clip-rule="evenodd" |
1305 | ></path> | 1314 | ></path> |
1306 | </svg> | 1315 | </svg> |
1307 | </button> | 1316 | </button> |
1308 | <template x-if="isPagesMenuOpen"> | 1317 | <template x-if="isPagesMenuOpen"> |
1309 | <ul | 1318 | <ul |
1310 | x-transition:enter="transition-all ease-in-out duration-300" | 1319 | x-transition:enter="transition-all ease-in-out duration-300" |
1311 | x-transition:enter-start="opacity-25 max-h-0" | 1320 | x-transition:enter-start="opacity-25 max-h-0" |
1312 | x-transition:enter-end="opacity-100 max-h-xl" | 1321 | x-transition:enter-end="opacity-100 max-h-xl" |
1313 | x-transition:leave="transition-all ease-in-out duration-300" | 1322 | x-transition:leave="transition-all ease-in-out duration-300" |
1314 | x-transition:leave-start="opacity-100 max-h-xl" | 1323 | x-transition:leave-start="opacity-100 max-h-xl" |
1315 | x-transition:leave-end="opacity-0 max-h-0" | 1324 | x-transition:leave-end="opacity-0 max-h-0" |
1316 | 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" | 1325 | 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" |
1317 | aria-label="submenu" | 1326 | aria-label="submenu" |
1318 | > | 1327 | > |
1319 | @foreach ($contents as $cont) | 1328 | @foreach ($contents as $cont) |
1320 | @if ($cont->url_page == "admin/editor-site") | 1329 | @if ($cont->url_page == "admin/editor-site") |
1321 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1330 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1322 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1331 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1323 | <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 }}"> | 1332 | <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 }}"> |
1324 | <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> | 1333 | <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> |
1325 | </li> | 1334 | </li> |
1326 | @endif | 1335 | @endif |
1327 | @endif | 1336 | @endif |
1328 | 1337 | ||
1329 | @if ($cont->url_page == "admin/edit-blocks") | 1338 | @if ($cont->url_page == "admin/edit-blocks") |
1330 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1339 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1331 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1340 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1332 | <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 }}"> | 1341 | <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 }}"> |
1333 | <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> | 1342 | <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> |
1334 | </li> | 1343 | </li> |
1335 | @endif | 1344 | @endif |
1336 | @endif | 1345 | @endif |
1337 | 1346 | ||
1338 | @if ($cont->url_page == "admin/editor-seo") | 1347 | @if ($cont->url_page == "admin/editor-seo") |
1339 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1348 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1340 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1349 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1341 | <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 }}"> | 1350 | <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 }}"> |
1342 | <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> | 1351 | <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> |
1343 | </li> | 1352 | </li> |
1344 | @endif | 1353 | @endif |
1345 | @endif | 1354 | @endif |
1346 | 1355 | ||
1347 | @if ($cont->url_page == "admin/editor-pages") | 1356 | @if ($cont->url_page == "admin/editor-pages") |
1348 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1357 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1349 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1358 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1350 | <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 }}"> | 1359 | <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 }}"> |
1351 | <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> | 1360 | <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> |
1352 | </li> | 1361 | </li> |
1353 | @endif | 1362 | @endif |
1354 | @endif | 1363 | @endif |
1355 | 1364 | ||
1356 | @if ($cont->url_page == "admin/job-titles-main") | 1365 | @if ($cont->url_page == "admin/job-titles-main") |
1357 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1366 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1358 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1367 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1359 | <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 }}"> | 1368 | <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 }}"> |
1360 | <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> | 1369 | <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> |
1361 | </li> | 1370 | </li> |
1362 | @endif | 1371 | @endif |
1363 | @endif | 1372 | @endif |
1364 | 1373 | ||
1365 | @if ($cont->url_page == "admin/employers-main") | 1374 | @if ($cont->url_page == "admin/employers-main") |
1366 | @if ((($cont->is_admin == 1) && ($admin == 1)) || | 1375 | @if ((($cont->is_admin == 1) && ($admin == 1)) || |
1367 | (($cont->is_manager == 1) && ($is_manager == 1))) | 1376 | (($cont->is_manager == 1) && ($is_manager == 1))) |
1368 | <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 }}"> | 1377 | <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 }}"> |
1369 | <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> | 1378 | <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> |
1370 | </li> | 1379 | </li> |
1371 | @endif | 1380 | @endif |
1372 | @endif | 1381 | @endif |
1373 | 1382 | ||
1374 | @endforeach | 1383 | @endforeach |
1375 | </ul> | 1384 | </ul> |
1376 | </template> | 1385 | </template> |
1377 | </li> | 1386 | </li> |
1378 | </ul> | 1387 | </ul> |
1379 | <!--<div class="px-6 my-6"> | 1388 | <!--<div class="px-6 my-6"> |
1380 | <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"> | 1389 | <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"> |
1381 | Create account | 1390 | Create account |
1382 | <span class="ml-2" aria-hidden="true">+</span> | 1391 | <span class="ml-2" aria-hidden="true">+</span> |
1383 | </button> | 1392 | </button> |
1384 | </div>--> | 1393 | </div>--> |
1385 | </div> | 1394 | </div> |
1386 | </aside> | 1395 | </aside> |
1387 | <div class="flex flex-col flex-1 w-full"> | 1396 | <div class="flex flex-col flex-1 w-full"> |
1388 | <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800"> | 1397 | <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800"> |
1389 | <div | 1398 | <div |
1390 | class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300" | 1399 | class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300" |
1391 | > | 1400 | > |
1392 | <!-- Mobile hamburger --> | 1401 | <!-- Mobile hamburger --> |
1393 | <button | 1402 | <button |
1394 | class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple" | 1403 | class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple" |
1395 | @click="toggleSideMenu" | 1404 | @click="toggleSideMenu" |
1396 | aria-label="Menu" | 1405 | aria-label="Menu" |
1397 | > | 1406 | > |
1398 | <svg | 1407 | <svg |
1399 | class="w-6 h-6" | 1408 | class="w-6 h-6" |
1400 | aria-hidden="true" | 1409 | aria-hidden="true" |
1401 | fill="currentColor" | 1410 | fill="currentColor" |
1402 | viewBox="0 0 20 20" | 1411 | viewBox="0 0 20 20" |
1403 | > | 1412 | > |
1404 | <path | 1413 | <path |
1405 | fill-rule="evenodd" | 1414 | fill-rule="evenodd" |
1406 | 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" | 1415 | 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" |
1407 | clip-rule="evenodd" | 1416 | clip-rule="evenodd" |
1408 | ></path> | 1417 | ></path> |
1409 | </svg> | 1418 | </svg> |
1410 | </button> | 1419 | </button> |
1411 | <!-- Search input --> | 1420 | <!-- Search input --> |
1412 | <div class="flex justify-center flex-1 lg:mr-32"> | 1421 | <div class="flex justify-center flex-1 lg:mr-32"> |
1413 | <div | 1422 | <div |
1414 | class="relative w-full max-w-xl mr-6 focus-within:text-purple-500" | 1423 | class="relative w-full max-w-xl mr-6 focus-within:text-purple-500" |
1415 | > | 1424 | > |
1416 | 1425 | ||
1417 | @yield('search') | 1426 | @yield('search') |
1418 | </div> | 1427 | </div> |
1419 | </div> | 1428 | </div> |
1420 | <ul class="flex items-center flex-shrink-0 space-x-6"> | 1429 | <ul class="flex items-center flex-shrink-0 space-x-6"> |
1421 | <!-- Theme toggler --> | 1430 | <!-- Theme toggler --> |
1422 | <li class="flex"> | 1431 | <li class="flex"> |
1423 | <button | 1432 | <button |
1424 | class="rounded-md focus:outline-none focus:shadow-outline-purple" | 1433 | class="rounded-md focus:outline-none focus:shadow-outline-purple" |
1425 | @click="toggleTheme" | 1434 | @click="toggleTheme" |
1426 | aria-label="Toggle color mode" | 1435 | aria-label="Toggle color mode" |
1427 | > | 1436 | > |
1428 | <template x-if="!dark"> | 1437 | <template x-if="!dark"> |
1429 | <svg | 1438 | <svg |
1430 | class="w-5 h-5" | 1439 | class="w-5 h-5" |
1431 | aria-hidden="true" | 1440 | aria-hidden="true" |
1432 | fill="currentColor" | 1441 | fill="currentColor" |
1433 | viewBox="0 0 20 20" | 1442 | viewBox="0 0 20 20" |
1434 | > | 1443 | > |
1435 | <path | 1444 | <path |
1436 | d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z" | 1445 | d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z" |
1437 | ></path> | 1446 | ></path> |
1438 | </svg> | 1447 | </svg> |
1439 | </template> | 1448 | </template> |
1440 | <template x-if="dark"> | 1449 | <template x-if="dark"> |
1441 | <svg | 1450 | <svg |
1442 | class="w-5 h-5" | 1451 | class="w-5 h-5" |
1443 | aria-hidden="true" | 1452 | aria-hidden="true" |
1444 | fill="currentColor" | 1453 | fill="currentColor" |
1445 | viewBox="0 0 20 20" | 1454 | viewBox="0 0 20 20" |
1446 | > | 1455 | > |
1447 | <path | 1456 | <path |
1448 | fill-rule="evenodd" | 1457 | fill-rule="evenodd" |
1449 | 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" | 1458 | 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" |
1450 | clip-rule="evenodd" | 1459 | clip-rule="evenodd" |
1451 | ></path> | 1460 | ></path> |
1452 | </svg> | 1461 | </svg> |
1453 | </template> | 1462 | </template> |
1454 | </button> | 1463 | </button> |
1455 | </li> | 1464 | </li> |
1456 | <!-- Notifications menu --> | 1465 | <!-- Notifications menu --> |
1457 | <li class="relative"> | 1466 | <li class="relative"> |
1458 | <button | 1467 | <button |
1459 | class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple" | 1468 | class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple" |
1460 | @click="toggleNotificationsMenu" | 1469 | @click="toggleNotificationsMenu" |
1461 | @keydown.escape="closeNotificationsMenu" | 1470 | @keydown.escape="closeNotificationsMenu" |
1462 | aria-label="Notifications" | 1471 | aria-label="Notifications" |
1463 | aria-haspopup="true" | 1472 | aria-haspopup="true" |
1464 | > | 1473 | > |
1465 | <svg | 1474 | <svg |
1466 | class="w-5 h-5" | 1475 | class="w-5 h-5" |
1467 | aria-hidden="true" | 1476 | aria-hidden="true" |
1468 | fill="currentColor" | 1477 | fill="currentColor" |
1469 | viewBox="0 0 20 20" | 1478 | viewBox="0 0 20 20" |
1470 | > | 1479 | > |
1471 | <path | 1480 | <path |
1472 | 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" | 1481 | 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" |
1473 | ></path> | 1482 | ></path> |
1474 | </svg> | 1483 | </svg> |
1475 | <!-- Notification badge --> | 1484 | <!-- Notification badge --> |
1476 | <span | 1485 | <span |
1477 | aria-hidden="true" | 1486 | aria-hidden="true" |
1478 | 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" | 1487 | 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" |
1479 | ></span> | 1488 | ></span> |
1480 | </button> | 1489 | </button> |
1481 | <template x-if="isNotificationsMenuOpen"> | 1490 | <template x-if="isNotificationsMenuOpen"> |
1482 | <ul | 1491 | <ul |
1483 | x-transition:leave="transition ease-in duration-150" | 1492 | x-transition:leave="transition ease-in duration-150" |
1484 | x-transition:leave-start="opacity-100" | 1493 | x-transition:leave-start="opacity-100" |
1485 | x-transition:leave-end="opacity-0" | 1494 | x-transition:leave-end="opacity-0" |
1486 | @click.away="closeNotificationsMenu" | 1495 | @click.away="closeNotificationsMenu" |
1487 | @keydown.escape="closeNotificationsMenu" | 1496 | @keydown.escape="closeNotificationsMenu" |
1488 | 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" | 1497 | 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" |
1489 | > | 1498 | > |
1490 | <li class="flex"> | 1499 | <li class="flex"> |
1491 | <a | 1500 | <a |
1492 | 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" | 1501 | 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" |
1493 | href="{{ route('admin.admin-messages') }}" | 1502 | href="{{ route('admin.admin-messages') }}" |
1494 | > | 1503 | > |
1495 | <span>Сообщения</span> | 1504 | <span>Сообщения</span> |
1496 | @if($MsgCount > 0) | 1505 | @if($MsgCount > 0) |
1497 | <span | 1506 | <span |
1498 | 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" | 1507 | 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" |
1499 | > | 1508 | > |
1500 | 1509 | ||
1501 | {{ $MsgCount }} | 1510 | {{ $MsgCount }} |
1502 | </span> | 1511 | </span> |
1503 | @endif | 1512 | @endif |
1504 | </a> | 1513 | </a> |
1505 | </li> | 1514 | </li> |
1506 | <!--<li class="flex"> | 1515 | <!--<li class="flex"> |
1507 | <a | 1516 | <a |
1508 | 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" | 1517 | 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 | href="#" | 1518 | href="#" |
1510 | > | 1519 | > |
1511 | <span>Логи</span> | 1520 | <span>Логи</span> |
1512 | </a> | 1521 | </a> |
1513 | </li>--> | 1522 | </li>--> |
1514 | </ul> | 1523 | </ul> |
1515 | </template> | 1524 | </template> |
1516 | </li> | 1525 | </li> |
1517 | <!-- Profile menu --> | 1526 | <!-- Profile menu --> |
1518 | <li class="relative"> | 1527 | <li class="relative"> |
1519 | <button | 1528 | <button |
1520 | class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none" | 1529 | class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none" |
1521 | @click="toggleProfileMenu" | 1530 | @click="toggleProfileMenu" |
1522 | @keydown.escape="closeProfileMenu" | 1531 | @keydown.escape="closeProfileMenu" |
1523 | aria-label="Account" | 1532 | aria-label="Account" |
1524 | aria-haspopup="true" | 1533 | aria-haspopup="true" |
1525 | > | 1534 | > |
1526 | <img | 1535 | <img |
1527 | class="object-cover w-8 h-8 rounded-full" | 1536 | class="object-cover w-8 h-8 rounded-full" |
1528 | src="{{ asset('assets/img/profile.jpg') }}" | 1537 | src="{{ asset('assets/img/profile.jpg') }}" |
1529 | alt="" | 1538 | alt="" |
1530 | aria-hidden="true" | 1539 | aria-hidden="true" |
1531 | /> | 1540 | /> |
1532 | </button> | 1541 | </button> |
1533 | <template x-if="isProfileMenuOpen"> | 1542 | <template x-if="isProfileMenuOpen"> |
1534 | <ul | 1543 | <ul |
1535 | x-transition:leave="transition ease-in duration-150" | 1544 | x-transition:leave="transition ease-in duration-150" |
1536 | x-transition:leave-start="opacity-100" | 1545 | x-transition:leave-start="opacity-100" |
1537 | x-transition:leave-end="opacity-0" | 1546 | x-transition:leave-end="opacity-0" |
1538 | @click.away="closeProfileMenu" | 1547 | @click.away="closeProfileMenu" |
1539 | @keydown.escape="closeProfileMenu" | 1548 | @keydown.escape="closeProfileMenu" |
1540 | 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" | 1549 | 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" |
1541 | aria-label="submenu" | 1550 | aria-label="submenu" |
1542 | > | 1551 | > |
1543 | <li class="flex"> | 1552 | <li class="flex"> |
1544 | <a | 1553 | <a |
1545 | 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" | 1554 | 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" |
1546 | href="{{ route('admin.profile') }}" | 1555 | href="{{ route('admin.profile') }}" |
1547 | > | 1556 | > |
1548 | <svg | 1557 | <svg |
1549 | class="w-4 h-4 mr-3" | 1558 | class="w-4 h-4 mr-3" |
1550 | aria-hidden="true" | 1559 | aria-hidden="true" |
1551 | fill="none" | 1560 | fill="none" |
1552 | stroke-linecap="round" | 1561 | stroke-linecap="round" |
1553 | stroke-linejoin="round" | 1562 | stroke-linejoin="round" |
1554 | stroke-width="2" | 1563 | stroke-width="2" |
1555 | viewBox="0 0 24 24" | 1564 | viewBox="0 0 24 24" |
1556 | stroke="currentColor" | 1565 | stroke="currentColor" |
1557 | > | 1566 | > |
1558 | <path | 1567 | <path |
1559 | d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" | 1568 | d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" |
1560 | ></path> | 1569 | ></path> |
1561 | </svg> | 1570 | </svg> |
1562 | <span>Профиль</span> | 1571 | <span>Профиль</span> |
1563 | </a> | 1572 | </a> |
1564 | </li> | 1573 | </li> |
1565 | <li class="flex"> | 1574 | <li class="flex"> |
1566 | <a | 1575 | <a |
1567 | 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" | 1576 | 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" |
1568 | href="{{ route('admin.config') }}" | 1577 | href="{{ route('admin.config') }}" |
1569 | > | 1578 | > |
1570 | <svg | 1579 | <svg |
1571 | class="w-4 h-4 mr-3" | 1580 | class="w-4 h-4 mr-3" |
1572 | aria-hidden="true" | 1581 | aria-hidden="true" |
1573 | fill="none" | 1582 | fill="none" |
1574 | stroke-linecap="round" | 1583 | stroke-linecap="round" |
1575 | stroke-linejoin="round" | 1584 | stroke-linejoin="round" |
1576 | stroke-width="2" | 1585 | stroke-width="2" |
1577 | viewBox="0 0 24 24" | 1586 | viewBox="0 0 24 24" |
1578 | stroke="currentColor" | 1587 | stroke="currentColor" |
1579 | > | 1588 | > |
1580 | <path | 1589 | <path |
1581 | 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" | 1590 | 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" |
1582 | ></path> | 1591 | ></path> |
1583 | <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path> | 1592 | <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path> |
1584 | </svg> | 1593 | </svg> |
1585 | <span>Настройки</span> | 1594 | <span>Настройки</span> |
1586 | </a> | 1595 | </a> |
1587 | </li> | 1596 | </li> |
1588 | <li class="flex"> | 1597 | <li class="flex"> |
1589 | <a | 1598 | <a |
1590 | 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" | 1599 | 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" |
1591 | href="{{ route('admin.logout') }}" | 1600 | href="{{ route('admin.logout') }}" |
1592 | > | 1601 | > |
1593 | <svg | 1602 | <svg |
1594 | class="w-4 h-4 mr-3" | 1603 | class="w-4 h-4 mr-3" |
1595 | aria-hidden="true" | 1604 | aria-hidden="true" |
1596 | fill="none" | 1605 | fill="none" |
1597 | stroke-linecap="round" | 1606 | stroke-linecap="round" |
1598 | stroke-linejoin="round" | 1607 | stroke-linejoin="round" |
1599 | stroke-width="2" | 1608 | stroke-width="2" |
1600 | viewBox="0 0 24 24" | 1609 | viewBox="0 0 24 24" |
1601 | stroke="currentColor" | 1610 | stroke="currentColor" |
1602 | > | 1611 | > |
1603 | <path | 1612 | <path |
1604 | 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" | 1613 | 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" |
1605 | ></path> | 1614 | ></path> |
1606 | </svg> | 1615 | </svg> |
1607 | <span>Выход</span> | 1616 | <span>Выход</span> |
1608 | </a> | 1617 | </a> |
1609 | </li> | 1618 | </li> |
1610 | </ul> | 1619 | </ul> |
1611 | </template> | 1620 | </template> |
1612 | </li> | 1621 | </li> |
1613 | </ul> | 1622 | </ul> |
1614 | </div> | 1623 | </div> |
1615 | </header> | 1624 | </header> |
1616 | <main class="h-full overflow-y-auto"> | 1625 | <main class="h-full overflow-y-auto"> |
1617 | <div class="container px-6 mx-auto grid"> | 1626 | <div class="container px-6 mx-auto grid"> |
1618 | <h2 | 1627 | <h2 |
1619 | class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200" | 1628 | class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200" |
1620 | > | 1629 | > |
1621 | {{$title}} | 1630 | {{$title}} |
1622 | </h2> | 1631 | </h2> |
1623 | <!-- CTA --> | 1632 | <!-- CTA --> |
1624 | <a | 1633 | <a |
1625 | 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" | 1634 | 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" |
1626 | href="{{ route('admin.admin-users') }}" | 1635 | href="{{ route('admin.admin-users') }}" |
1627 | > | 1636 | > |
1628 | <div class="flex items-center"> | 1637 | <div class="flex items-center"> |
1629 | <svg | 1638 | <svg |
1630 | class="w-5 h-5 mr-2" | 1639 | class="w-5 h-5 mr-2" |
1631 | fill="currentColor" | 1640 | fill="currentColor" |
1632 | viewBox="0 0 20 20" | 1641 | viewBox="0 0 20 20" |
1633 | > | 1642 | > |
1634 | <path | 1643 | <path |
1635 | 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" | 1644 | 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" |
1636 | ></path> | 1645 | ></path> |
1637 | </svg> | 1646 | </svg> |
1638 | <span>Контент для админов</span> | 1647 | <span>Контент для админов</span> |
1639 | </div> | 1648 | </div> |
1640 | <span>Список админов →</span> | 1649 | <span>Список админов →</span> |
1641 | </a> | 1650 | </a> |
1642 | 1651 | ||
1643 | @if ($message = Session::get('success')) | 1652 | @if ($message = Session::get('success')) |
1644 | <section> | 1653 | <section> |
1645 | <div class="alert alert-success alert-dismissible mt-0" role="alert"> | 1654 | <div class="alert alert-success alert-dismissible mt-0" role="alert"> |
1646 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> | 1655 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> |
1647 | <span aria-hidden="true">×</span> | 1656 | <span aria-hidden="true">×</span> |
1648 | </button> | 1657 | </button> |
1649 | {{ $message }} | 1658 | {{ $message }} |
1650 | </div> | 1659 | </div> |
1651 | </section> | 1660 | </section> |
1652 | @endif | 1661 | @endif |
1653 | 1662 | ||
1654 | @if ($errors->any()) | 1663 | @if ($errors->any()) |
1655 | <section> | 1664 | <section> |
1656 | <div class="alert alert-danger alert-dismissible mt-4" role="alert"> | 1665 | <div class="alert alert-danger alert-dismissible mt-4" role="alert"> |
1657 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> | 1666 | <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> |
1658 | <span aria-hidden="true">×</span> | 1667 | <span aria-hidden="true">×</span> |
1659 | </button> | 1668 | </button> |
1660 | <ul class="mb-0"> | 1669 | <ul class="mb-0"> |
1661 | @foreach ($errors->all() as $error) | 1670 | @foreach ($errors->all() as $error) |
1662 | <li>{{ $error }}</li> | 1671 | <li>{{ $error }}</li> |
1663 | @endforeach | 1672 | @endforeach |
1664 | </ul> | 1673 | </ul> |
1665 | </div> | 1674 | </div> |
1666 | </section> | 1675 | </section> |
1667 | @endif | 1676 | @endif |
1668 | 1677 | ||
1669 | @yield('content') | 1678 | @yield('content') |
1670 | 1679 | ||
1671 | <!-- Cards | 1680 | <!-- Cards |
1672 | <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4"> | 1681 | <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4"> |
1673 | 1682 | ||
1674 | <div | 1683 | <div |
1675 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1684 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1676 | > | 1685 | > |
1677 | <div | 1686 | <div |
1678 | class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500" | 1687 | class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500" |
1679 | > | 1688 | > |
1680 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 1689 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
1681 | <path | 1690 | <path |
1682 | 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" | 1691 | 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" |
1683 | ></path> | 1692 | ></path> |
1684 | </svg> | 1693 | </svg> |
1685 | </div> | 1694 | </div> |
1686 | <div> | 1695 | <div> |
1687 | <p | 1696 | <p |
1688 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" | 1697 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" |
1689 | > | 1698 | > |
1690 | Total clients | 1699 | Total clients |
1691 | </p> | 1700 | </p> |
1692 | <p | 1701 | <p |
1693 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" | 1702 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" |
1694 | > | 1703 | > |
1695 | 6389 | 1704 | 6389 |
1696 | </p> | 1705 | </p> |
1697 | </div> | 1706 | </div> |
1698 | </div> | 1707 | </div> |
1699 | 1708 | ||
1700 | <div | 1709 | <div |
1701 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1710 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1702 | > | 1711 | > |
1703 | <div | 1712 | <div |
1704 | class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500" | 1713 | class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500" |
1705 | > | 1714 | > |
1706 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 1715 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
1707 | <path | 1716 | <path |
1708 | fill-rule="evenodd" | 1717 | fill-rule="evenodd" |
1709 | 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" | 1718 | 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" |
1710 | clip-rule="evenodd" | 1719 | clip-rule="evenodd" |
1711 | ></path> | 1720 | ></path> |
1712 | </svg> | 1721 | </svg> |
1713 | </div> | 1722 | </div> |
1714 | <div> | 1723 | <div> |
1715 | <p | 1724 | <p |
1716 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" | 1725 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" |
1717 | > | 1726 | > |
1718 | Account balance | 1727 | Account balance |
1719 | </p> | 1728 | </p> |
1720 | <p | 1729 | <p |
1721 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" | 1730 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" |
1722 | > | 1731 | > |
1723 | $ 46,760.89 | 1732 | $ 46,760.89 |
1724 | </p> | 1733 | </p> |
1725 | </div> | 1734 | </div> |
1726 | </div> | 1735 | </div> |
1727 | 1736 | ||
1728 | <div | 1737 | <div |
1729 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1738 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1730 | > | 1739 | > |
1731 | <div | 1740 | <div |
1732 | class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500" | 1741 | class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500" |
1733 | > | 1742 | > |
1734 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 1743 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
1735 | <path | 1744 | <path |
1736 | 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" | 1745 | 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" |
1737 | ></path> | 1746 | ></path> |
1738 | </svg> | 1747 | </svg> |
1739 | </div> | 1748 | </div> |
1740 | <div> | 1749 | <div> |
1741 | <p | 1750 | <p |
1742 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" | 1751 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" |
1743 | > | 1752 | > |
1744 | New sales | 1753 | New sales |
1745 | </p> | 1754 | </p> |
1746 | <p | 1755 | <p |
1747 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" | 1756 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" |
1748 | > | 1757 | > |
1749 | 376 | 1758 | 376 |
1750 | </p> | 1759 | </p> |
1751 | </div> | 1760 | </div> |
1752 | </div> | 1761 | </div> |
1753 | 1762 | ||
1754 | <div | 1763 | <div |
1755 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 1764 | class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
1756 | > | 1765 | > |
1757 | <div | 1766 | <div |
1758 | class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500" | 1767 | class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500" |
1759 | > | 1768 | > |
1760 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> | 1769 | <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> |
1761 | <path | 1770 | <path |
1762 | fill-rule="evenodd" | 1771 | fill-rule="evenodd" |
1763 | 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" | 1772 | 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" |
1764 | clip-rule="evenodd" | 1773 | clip-rule="evenodd" |
1765 | ></path> | 1774 | ></path> |
1766 | </svg> | 1775 | </svg> |
1767 | </div> | 1776 | </div> |
1768 | <div> | 1777 | <div> |
1769 | <p | 1778 | <p |
1770 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" | 1779 | class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" |
1771 | > | 1780 | > |
1772 | Pending contacts | 1781 | Pending contacts |
1773 | </p> | 1782 | </p> |
1774 | <p | 1783 | <p |
1775 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" | 1784 | class="text-lg font-semibold text-gray-700 dark:text-gray-200" |
1776 | > | 1785 | > |
1777 | 35 | 1786 | 35 |
1778 | </p> | 1787 | </p> |
1779 | </div> | 1788 | </div> |
1780 | </div> | 1789 | </div> |
1781 | </div> | 1790 | </div> |
1782 | --> | 1791 | --> |
1783 | <!-- New Table | 1792 | <!-- New Table |
1784 | <div class="w-full overflow-hidden rounded-lg shadow-xs"> | 1793 | <div class="w-full overflow-hidden rounded-lg shadow-xs"> |
1785 | <div class="w-full overflow-x-auto"> | 1794 | <div class="w-full overflow-x-auto"> |
1786 | <table class="w-full whitespace-no-wrap"> | 1795 | <table class="w-full whitespace-no-wrap"> |
1787 | <thead> | 1796 | <thead> |
1788 | <tr | 1797 | <tr |
1789 | 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" | 1798 | 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" |
1790 | > | 1799 | > |
1791 | <th class="px-4 py-3">Client</th> | 1800 | <th class="px-4 py-3">Client</th> |
1792 | <th class="px-4 py-3">Amount</th> | 1801 | <th class="px-4 py-3">Amount</th> |
1793 | <th class="px-4 py-3">Status</th> | 1802 | <th class="px-4 py-3">Status</th> |
1794 | <th class="px-4 py-3">Date</th> | 1803 | <th class="px-4 py-3">Date</th> |
1795 | </tr> | 1804 | </tr> |
1796 | </thead> | 1805 | </thead> |
1797 | <tbody | 1806 | <tbody |
1798 | class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" | 1807 | class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" |
1799 | > | 1808 | > |
1800 | <tr class="text-gray-700 dark:text-gray-400"> | 1809 | <tr class="text-gray-700 dark:text-gray-400"> |
1801 | <td class="px-4 py-3"> | 1810 | <td class="px-4 py-3"> |
1802 | <div class="flex items-center text-sm"> | 1811 | <div class="flex items-center text-sm"> |
1803 | 1812 | ||
1804 | <div | 1813 | <div |
1805 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1814 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1806 | > | 1815 | > |
1807 | <img | 1816 | <img |
1808 | class="object-cover w-full h-full rounded-full" | 1817 | class="object-cover w-full h-full rounded-full" |
1809 | 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" | 1818 | 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" |
1810 | alt="" | 1819 | alt="" |
1811 | loading="lazy" | 1820 | loading="lazy" |
1812 | /> | 1821 | /> |
1813 | <div | 1822 | <div |
1814 | class="absolute inset-0 rounded-full shadow-inner" | 1823 | class="absolute inset-0 rounded-full shadow-inner" |
1815 | aria-hidden="true" | 1824 | aria-hidden="true" |
1816 | ></div> | 1825 | ></div> |
1817 | </div> | 1826 | </div> |
1818 | <div> | 1827 | <div> |
1819 | <p class="font-semibold">Hans Burger</p> | 1828 | <p class="font-semibold">Hans Burger</p> |
1820 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1829 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1821 | 10x Developer | 1830 | 10x Developer |
1822 | </p> | 1831 | </p> |
1823 | </div> | 1832 | </div> |
1824 | </div> | 1833 | </div> |
1825 | </td> | 1834 | </td> |
1826 | <td class="px-4 py-3 text-sm"> | 1835 | <td class="px-4 py-3 text-sm"> |
1827 | $ 863.45 | 1836 | $ 863.45 |
1828 | </td> | 1837 | </td> |
1829 | <td class="px-4 py-3 text-xs"> | 1838 | <td class="px-4 py-3 text-xs"> |
1830 | <span | 1839 | <span |
1831 | 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" | 1840 | 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" |
1832 | > | 1841 | > |
1833 | Approved | 1842 | Approved |
1834 | </span> | 1843 | </span> |
1835 | </td> | 1844 | </td> |
1836 | <td class="px-4 py-3 text-sm"> | 1845 | <td class="px-4 py-3 text-sm"> |
1837 | 6/10/2020 | 1846 | 6/10/2020 |
1838 | </td> | 1847 | </td> |
1839 | </tr> | 1848 | </tr> |
1840 | 1849 | ||
1841 | <tr class="text-gray-700 dark:text-gray-400"> | 1850 | <tr class="text-gray-700 dark:text-gray-400"> |
1842 | <td class="px-4 py-3"> | 1851 | <td class="px-4 py-3"> |
1843 | <div class="flex items-center text-sm"> | 1852 | <div class="flex items-center text-sm"> |
1844 | 1853 | ||
1845 | <div | 1854 | <div |
1846 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1855 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1847 | > | 1856 | > |
1848 | <img | 1857 | <img |
1849 | class="object-cover w-full h-full rounded-full" | 1858 | class="object-cover w-full h-full rounded-full" |
1850 | 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" | 1859 | 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" |
1851 | alt="" | 1860 | alt="" |
1852 | loading="lazy" | 1861 | loading="lazy" |
1853 | /> | 1862 | /> |
1854 | <div | 1863 | <div |
1855 | class="absolute inset-0 rounded-full shadow-inner" | 1864 | class="absolute inset-0 rounded-full shadow-inner" |
1856 | aria-hidden="true" | 1865 | aria-hidden="true" |
1857 | ></div> | 1866 | ></div> |
1858 | </div> | 1867 | </div> |
1859 | <div> | 1868 | <div> |
1860 | <p class="font-semibold">Jolina Angelie</p> | 1869 | <p class="font-semibold">Jolina Angelie</p> |
1861 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1870 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1862 | Unemployed | 1871 | Unemployed |
1863 | </p> | 1872 | </p> |
1864 | </div> | 1873 | </div> |
1865 | </div> | 1874 | </div> |
1866 | </td> | 1875 | </td> |
1867 | <td class="px-4 py-3 text-sm"> | 1876 | <td class="px-4 py-3 text-sm"> |
1868 | $ 369.95 | 1877 | $ 369.95 |
1869 | </td> | 1878 | </td> |
1870 | <td class="px-4 py-3 text-xs"> | 1879 | <td class="px-4 py-3 text-xs"> |
1871 | <span | 1880 | <span |
1872 | class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600" | 1881 | class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600" |
1873 | > | 1882 | > |
1874 | Pending | 1883 | Pending |
1875 | </span> | 1884 | </span> |
1876 | </td> | 1885 | </td> |
1877 | <td class="px-4 py-3 text-sm"> | 1886 | <td class="px-4 py-3 text-sm"> |
1878 | 6/10/2020 | 1887 | 6/10/2020 |
1879 | </td> | 1888 | </td> |
1880 | </tr> | 1889 | </tr> |
1881 | 1890 | ||
1882 | <tr class="text-gray-700 dark:text-gray-400"> | 1891 | <tr class="text-gray-700 dark:text-gray-400"> |
1883 | <td class="px-4 py-3"> | 1892 | <td class="px-4 py-3"> |
1884 | <div class="flex items-center text-sm"> | 1893 | <div class="flex items-center text-sm"> |
1885 | 1894 | ||
1886 | <div | 1895 | <div |
1887 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1896 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1888 | > | 1897 | > |
1889 | <img | 1898 | <img |
1890 | class="object-cover w-full h-full rounded-full" | 1899 | class="object-cover w-full h-full rounded-full" |
1891 | 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" | 1900 | 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" |
1892 | alt="" | 1901 | alt="" |
1893 | loading="lazy" | 1902 | loading="lazy" |
1894 | /> | 1903 | /> |
1895 | <div | 1904 | <div |
1896 | class="absolute inset-0 rounded-full shadow-inner" | 1905 | class="absolute inset-0 rounded-full shadow-inner" |
1897 | aria-hidden="true" | 1906 | aria-hidden="true" |
1898 | ></div> | 1907 | ></div> |
1899 | </div> | 1908 | </div> |
1900 | <div> | 1909 | <div> |
1901 | <p class="font-semibold">Sarah Curry</p> | 1910 | <p class="font-semibold">Sarah Curry</p> |
1902 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1911 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1903 | Designer | 1912 | Designer |
1904 | </p> | 1913 | </p> |
1905 | </div> | 1914 | </div> |
1906 | </div> | 1915 | </div> |
1907 | </td> | 1916 | </td> |
1908 | <td class="px-4 py-3 text-sm"> | 1917 | <td class="px-4 py-3 text-sm"> |
1909 | $ 86.00 | 1918 | $ 86.00 |
1910 | </td> | 1919 | </td> |
1911 | <td class="px-4 py-3 text-xs"> | 1920 | <td class="px-4 py-3 text-xs"> |
1912 | <span | 1921 | <span |
1913 | 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" | 1922 | 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" |
1914 | > | 1923 | > |
1915 | Denied | 1924 | Denied |
1916 | </span> | 1925 | </span> |
1917 | </td> | 1926 | </td> |
1918 | <td class="px-4 py-3 text-sm"> | 1927 | <td class="px-4 py-3 text-sm"> |
1919 | 6/10/2020 | 1928 | 6/10/2020 |
1920 | </td> | 1929 | </td> |
1921 | </tr> | 1930 | </tr> |
1922 | 1931 | ||
1923 | <tr class="text-gray-700 dark:text-gray-400"> | 1932 | <tr class="text-gray-700 dark:text-gray-400"> |
1924 | <td class="px-4 py-3"> | 1933 | <td class="px-4 py-3"> |
1925 | <div class="flex items-center text-sm"> | 1934 | <div class="flex items-center text-sm"> |
1926 | 1935 | ||
1927 | <div | 1936 | <div |
1928 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1937 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1929 | > | 1938 | > |
1930 | <img | 1939 | <img |
1931 | class="object-cover w-full h-full rounded-full" | 1940 | class="object-cover w-full h-full rounded-full" |
1932 | 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" | 1941 | 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" |
1933 | alt="" | 1942 | alt="" |
1934 | loading="lazy" | 1943 | loading="lazy" |
1935 | /> | 1944 | /> |
1936 | <div | 1945 | <div |
1937 | class="absolute inset-0 rounded-full shadow-inner" | 1946 | class="absolute inset-0 rounded-full shadow-inner" |
1938 | aria-hidden="true" | 1947 | aria-hidden="true" |
1939 | ></div> | 1948 | ></div> |
1940 | </div> | 1949 | </div> |
1941 | <div> | 1950 | <div> |
1942 | <p class="font-semibold">Rulia Joberts</p> | 1951 | <p class="font-semibold">Rulia Joberts</p> |
1943 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1952 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1944 | Actress | 1953 | Actress |
1945 | </p> | 1954 | </p> |
1946 | </div> | 1955 | </div> |
1947 | </div> | 1956 | </div> |
1948 | </td> | 1957 | </td> |
1949 | <td class="px-4 py-3 text-sm"> | 1958 | <td class="px-4 py-3 text-sm"> |
1950 | $ 1276.45 | 1959 | $ 1276.45 |
1951 | </td> | 1960 | </td> |
1952 | <td class="px-4 py-3 text-xs"> | 1961 | <td class="px-4 py-3 text-xs"> |
1953 | <span | 1962 | <span |
1954 | 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" | 1963 | 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" |
1955 | > | 1964 | > |
1956 | Approved | 1965 | Approved |
1957 | </span> | 1966 | </span> |
1958 | </td> | 1967 | </td> |
1959 | <td class="px-4 py-3 text-sm"> | 1968 | <td class="px-4 py-3 text-sm"> |
1960 | 6/10/2020 | 1969 | 6/10/2020 |
1961 | </td> | 1970 | </td> |
1962 | </tr> | 1971 | </tr> |
1963 | 1972 | ||
1964 | <tr class="text-gray-700 dark:text-gray-400"> | 1973 | <tr class="text-gray-700 dark:text-gray-400"> |
1965 | <td class="px-4 py-3"> | 1974 | <td class="px-4 py-3"> |
1966 | <div class="flex items-center text-sm"> | 1975 | <div class="flex items-center text-sm"> |
1967 | 1976 | ||
1968 | <div | 1977 | <div |
1969 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 1978 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
1970 | > | 1979 | > |
1971 | <img | 1980 | <img |
1972 | class="object-cover w-full h-full rounded-full" | 1981 | class="object-cover w-full h-full rounded-full" |
1973 | 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" | 1982 | 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" |
1974 | alt="" | 1983 | alt="" |
1975 | loading="lazy" | 1984 | loading="lazy" |
1976 | /> | 1985 | /> |
1977 | <div | 1986 | <div |
1978 | class="absolute inset-0 rounded-full shadow-inner" | 1987 | class="absolute inset-0 rounded-full shadow-inner" |
1979 | aria-hidden="true" | 1988 | aria-hidden="true" |
1980 | ></div> | 1989 | ></div> |
1981 | </div> | 1990 | </div> |
1982 | <div> | 1991 | <div> |
1983 | <p class="font-semibold">Wenzel Dashington</p> | 1992 | <p class="font-semibold">Wenzel Dashington</p> |
1984 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 1993 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
1985 | Actor | 1994 | Actor |
1986 | </p> | 1995 | </p> |
1987 | </div> | 1996 | </div> |
1988 | </div> | 1997 | </div> |
1989 | </td> | 1998 | </td> |
1990 | <td class="px-4 py-3 text-sm"> | 1999 | <td class="px-4 py-3 text-sm"> |
1991 | $ 863.45 | 2000 | $ 863.45 |
1992 | </td> | 2001 | </td> |
1993 | <td class="px-4 py-3 text-xs"> | 2002 | <td class="px-4 py-3 text-xs"> |
1994 | <span | 2003 | <span |
1995 | 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" | 2004 | 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" |
1996 | > | 2005 | > |
1997 | Expired | 2006 | Expired |
1998 | </span> | 2007 | </span> |
1999 | </td> | 2008 | </td> |
2000 | <td class="px-4 py-3 text-sm"> | 2009 | <td class="px-4 py-3 text-sm"> |
2001 | 6/10/2020 | 2010 | 6/10/2020 |
2002 | </td> | 2011 | </td> |
2003 | </tr> | 2012 | </tr> |
2004 | 2013 | ||
2005 | <tr class="text-gray-700 dark:text-gray-400"> | 2014 | <tr class="text-gray-700 dark:text-gray-400"> |
2006 | <td class="px-4 py-3"> | 2015 | <td class="px-4 py-3"> |
2007 | <div class="flex items-center text-sm"> | 2016 | <div class="flex items-center text-sm"> |
2008 | 2017 | ||
2009 | <div | 2018 | <div |
2010 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 2019 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
2011 | > | 2020 | > |
2012 | <img | 2021 | <img |
2013 | class="object-cover w-full h-full rounded-full" | 2022 | class="object-cover w-full h-full rounded-full" |
2014 | 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" | 2023 | 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" |
2015 | alt="" | 2024 | alt="" |
2016 | loading="lazy" | 2025 | loading="lazy" |
2017 | /> | 2026 | /> |
2018 | <div | 2027 | <div |
2019 | class="absolute inset-0 rounded-full shadow-inner" | 2028 | class="absolute inset-0 rounded-full shadow-inner" |
2020 | aria-hidden="true" | 2029 | aria-hidden="true" |
2021 | ></div> | 2030 | ></div> |
2022 | </div> | 2031 | </div> |
2023 | <div> | 2032 | <div> |
2024 | <p class="font-semibold">Dave Li</p> | 2033 | <p class="font-semibold">Dave Li</p> |
2025 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 2034 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
2026 | Influencer | 2035 | Influencer |
2027 | </p> | 2036 | </p> |
2028 | </div> | 2037 | </div> |
2029 | </div> | 2038 | </div> |
2030 | </td> | 2039 | </td> |
2031 | <td class="px-4 py-3 text-sm"> | 2040 | <td class="px-4 py-3 text-sm"> |
2032 | $ 863.45 | 2041 | $ 863.45 |
2033 | </td> | 2042 | </td> |
2034 | <td class="px-4 py-3 text-xs"> | 2043 | <td class="px-4 py-3 text-xs"> |
2035 | <span | 2044 | <span |
2036 | 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" | 2045 | 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" |
2037 | > | 2046 | > |
2038 | Approved | 2047 | Approved |
2039 | </span> | 2048 | </span> |
2040 | </td> | 2049 | </td> |
2041 | <td class="px-4 py-3 text-sm"> | 2050 | <td class="px-4 py-3 text-sm"> |
2042 | 6/10/2020 | 2051 | 6/10/2020 |
2043 | </td> | 2052 | </td> |
2044 | </tr> | 2053 | </tr> |
2045 | 2054 | ||
2046 | <tr class="text-gray-700 dark:text-gray-400"> | 2055 | <tr class="text-gray-700 dark:text-gray-400"> |
2047 | <td class="px-4 py-3"> | 2056 | <td class="px-4 py-3"> |
2048 | <div class="flex items-center text-sm"> | 2057 | <div class="flex items-center text-sm"> |
2049 | 2058 | ||
2050 | <div | 2059 | <div |
2051 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 2060 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
2052 | > | 2061 | > |
2053 | <img | 2062 | <img |
2054 | class="object-cover w-full h-full rounded-full" | 2063 | class="object-cover w-full h-full rounded-full" |
2055 | 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" | 2064 | 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" |
2056 | alt="" | 2065 | alt="" |
2057 | loading="lazy" | 2066 | loading="lazy" |
2058 | /> | 2067 | /> |
2059 | <div | 2068 | <div |
2060 | class="absolute inset-0 rounded-full shadow-inner" | 2069 | class="absolute inset-0 rounded-full shadow-inner" |
2061 | aria-hidden="true" | 2070 | aria-hidden="true" |
2062 | ></div> | 2071 | ></div> |
2063 | </div> | 2072 | </div> |
2064 | <div> | 2073 | <div> |
2065 | <p class="font-semibold">Maria Ramovic</p> | 2074 | <p class="font-semibold">Maria Ramovic</p> |
2066 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 2075 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
2067 | Runner | 2076 | Runner |
2068 | </p> | 2077 | </p> |
2069 | </div> | 2078 | </div> |
2070 | </div> | 2079 | </div> |
2071 | </td> | 2080 | </td> |
2072 | <td class="px-4 py-3 text-sm"> | 2081 | <td class="px-4 py-3 text-sm"> |
2073 | $ 863.45 | 2082 | $ 863.45 |
2074 | </td> | 2083 | </td> |
2075 | <td class="px-4 py-3 text-xs"> | 2084 | <td class="px-4 py-3 text-xs"> |
2076 | <span | 2085 | <span |
2077 | 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" | 2086 | 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" |
2078 | > | 2087 | > |
2079 | Approved | 2088 | Approved |
2080 | </span> | 2089 | </span> |
2081 | </td> | 2090 | </td> |
2082 | <td class="px-4 py-3 text-sm"> | 2091 | <td class="px-4 py-3 text-sm"> |
2083 | 6/10/2020 | 2092 | 6/10/2020 |
2084 | </td> | 2093 | </td> |
2085 | </tr> | 2094 | </tr> |
2086 | 2095 | ||
2087 | <tr class="text-gray-700 dark:text-gray-400"> | 2096 | <tr class="text-gray-700 dark:text-gray-400"> |
2088 | <td class="px-4 py-3"> | 2097 | <td class="px-4 py-3"> |
2089 | <div class="flex items-center text-sm"> | 2098 | <div class="flex items-center text-sm"> |
2090 | 2099 | ||
2091 | <div | 2100 | <div |
2092 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 2101 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
2093 | > | 2102 | > |
2094 | <img | 2103 | <img |
2095 | class="object-cover w-full h-full rounded-full" | 2104 | class="object-cover w-full h-full rounded-full" |
2096 | 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" | 2105 | 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" |
2097 | alt="" | 2106 | alt="" |
2098 | loading="lazy" | 2107 | loading="lazy" |
2099 | /> | 2108 | /> |
2100 | <div | 2109 | <div |
2101 | class="absolute inset-0 rounded-full shadow-inner" | 2110 | class="absolute inset-0 rounded-full shadow-inner" |
2102 | aria-hidden="true" | 2111 | aria-hidden="true" |
2103 | ></div> | 2112 | ></div> |
2104 | </div> | 2113 | </div> |
2105 | <div> | 2114 | <div> |
2106 | <p class="font-semibold">Hitney Wouston</p> | 2115 | <p class="font-semibold">Hitney Wouston</p> |
2107 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 2116 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
2108 | Singer | 2117 | Singer |
2109 | </p> | 2118 | </p> |
2110 | </div> | 2119 | </div> |
2111 | </div> | 2120 | </div> |
2112 | </td> | 2121 | </td> |
2113 | <td class="px-4 py-3 text-sm"> | 2122 | <td class="px-4 py-3 text-sm"> |
2114 | $ 863.45 | 2123 | $ 863.45 |
2115 | </td> | 2124 | </td> |
2116 | <td class="px-4 py-3 text-xs"> | 2125 | <td class="px-4 py-3 text-xs"> |
2117 | <span | 2126 | <span |
2118 | 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" | 2127 | 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" |
2119 | > | 2128 | > |
2120 | Approved | 2129 | Approved |
2121 | </span> | 2130 | </span> |
2122 | </td> | 2131 | </td> |
2123 | <td class="px-4 py-3 text-sm"> | 2132 | <td class="px-4 py-3 text-sm"> |
2124 | 6/10/2020 | 2133 | 6/10/2020 |
2125 | </td> | 2134 | </td> |
2126 | </tr> | 2135 | </tr> |
2127 | 2136 | ||
2128 | <tr class="text-gray-700 dark:text-gray-400"> | 2137 | <tr class="text-gray-700 dark:text-gray-400"> |
2129 | <td class="px-4 py-3"> | 2138 | <td class="px-4 py-3"> |
2130 | <div class="flex items-center text-sm"> | 2139 | <div class="flex items-center text-sm"> |
2131 | 2140 | ||
2132 | <div | 2141 | <div |
2133 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 2142 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
2134 | > | 2143 | > |
2135 | <img | 2144 | <img |
2136 | class="object-cover w-full h-full rounded-full" | 2145 | class="object-cover w-full h-full rounded-full" |
2137 | 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" | 2146 | 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" |
2138 | alt="" | 2147 | alt="" |
2139 | loading="lazy" | 2148 | loading="lazy" |
2140 | /> | 2149 | /> |
2141 | <div | 2150 | <div |
2142 | class="absolute inset-0 rounded-full shadow-inner" | 2151 | class="absolute inset-0 rounded-full shadow-inner" |
2143 | aria-hidden="true" | 2152 | aria-hidden="true" |
2144 | ></div> | 2153 | ></div> |
2145 | </div> | 2154 | </div> |
2146 | <div> | 2155 | <div> |
2147 | <p class="font-semibold">Hans Burger</p> | 2156 | <p class="font-semibold">Hans Burger</p> |
2148 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 2157 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
2149 | 10x Developer | 2158 | 10x Developer |
2150 | </p> | 2159 | </p> |
2151 | </div> | 2160 | </div> |
2152 | </div> | 2161 | </div> |
2153 | </td> | 2162 | </td> |
2154 | <td class="px-4 py-3 text-sm"> | 2163 | <td class="px-4 py-3 text-sm"> |
2155 | $ 863.45 | 2164 | $ 863.45 |
2156 | </td> | 2165 | </td> |
2157 | <td class="px-4 py-3 text-xs"> | 2166 | <td class="px-4 py-3 text-xs"> |
2158 | <span | 2167 | <span |
2159 | 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" | 2168 | 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" |
2160 | > | 2169 | > |
2161 | Approved | 2170 | Approved |
2162 | </span> | 2171 | </span> |
2163 | </td> | 2172 | </td> |
2164 | <td class="px-4 py-3 text-sm"> | 2173 | <td class="px-4 py-3 text-sm"> |
2165 | 6/10/2020 | 2174 | 6/10/2020 |
2166 | </td> | 2175 | </td> |
2167 | </tr> | 2176 | </tr> |
2168 | </tbody> | 2177 | </tbody> |
2169 | </table> | 2178 | </table> |
2170 | </div> | 2179 | </div> |
2171 | <div | 2180 | <div |
2172 | 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" | 2181 | 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" |
2173 | > | 2182 | > |
2174 | <span class="flex items-center col-span-3"> | 2183 | <span class="flex items-center col-span-3"> |
2175 | Showing 21-30 of 100 | 2184 | Showing 21-30 of 100 |
2176 | </span> | 2185 | </span> |
2177 | <span class="col-span-2"></span> | 2186 | <span class="col-span-2"></span> |
2178 | 2187 | ||
2179 | <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> | 2188 | <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> |
2180 | <nav aria-label="Table navigation"> | 2189 | <nav aria-label="Table navigation"> |
2181 | <ul class="inline-flex items-center"> | 2190 | <ul class="inline-flex items-center"> |
2182 | <li> | 2191 | <li> |
2183 | <button | 2192 | <button |
2184 | class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" | 2193 | class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" |
2185 | aria-label="Previous" | 2194 | aria-label="Previous" |
2186 | > | 2195 | > |
2187 | <svg | 2196 | <svg |
2188 | aria-hidden="true" | 2197 | aria-hidden="true" |
2189 | class="w-4 h-4 fill-current" | 2198 | class="w-4 h-4 fill-current" |
2190 | viewBox="0 0 20 20" | 2199 | viewBox="0 0 20 20" |
2191 | > | 2200 | > |
2192 | <path | 2201 | <path |
2193 | 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" | 2202 | 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" |
2194 | clip-rule="evenodd" | 2203 | clip-rule="evenodd" |
2195 | fill-rule="evenodd" | 2204 | fill-rule="evenodd" |
2196 | ></path> | 2205 | ></path> |
2197 | </svg> | 2206 | </svg> |
2198 | </button> | 2207 | </button> |
2199 | </li> | 2208 | </li> |
2200 | <li> | 2209 | <li> |
2201 | <button | 2210 | <button |
2202 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 2211 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
2203 | > | 2212 | > |
2204 | 1 | 2213 | 1 |
2205 | </button> | 2214 | </button> |
2206 | </li> | 2215 | </li> |
2207 | <li> | 2216 | <li> |
2208 | <button | 2217 | <button |
2209 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 2218 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
2210 | > | 2219 | > |
2211 | 2 | 2220 | 2 |
2212 | </button> | 2221 | </button> |
2213 | </li> | 2222 | </li> |
2214 | <li> | 2223 | <li> |
2215 | <button | 2224 | <button |
2216 | 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" | 2225 | 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" |
2217 | > | 2226 | > |
2218 | 3 | 2227 | 3 |
2219 | </button> | 2228 | </button> |
2220 | </li> | 2229 | </li> |
2221 | <li> | 2230 | <li> |
2222 | <button | 2231 | <button |
2223 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 2232 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
2224 | > | 2233 | > |
2225 | 4 | 2234 | 4 |
2226 | </button> | 2235 | </button> |
2227 | </li> | 2236 | </li> |
2228 | <li> | 2237 | <li> |
2229 | <span class="px-3 py-1">...</span> | 2238 | <span class="px-3 py-1">...</span> |
2230 | </li> | 2239 | </li> |
2231 | <li> | 2240 | <li> |
2232 | <button | 2241 | <button |
2233 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 2242 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
2234 | > | 2243 | > |
2235 | 8 | 2244 | 8 |
2236 | </button> | 2245 | </button> |
2237 | </li> | 2246 | </li> |
2238 | <li> | 2247 | <li> |
2239 | <button | 2248 | <button |
2240 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" | 2249 | class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" |
2241 | > | 2250 | > |
2242 | 9 | 2251 | 9 |
2243 | </button> | 2252 | </button> |
2244 | </li> | 2253 | </li> |
2245 | <li> | 2254 | <li> |
2246 | <button | 2255 | <button |
2247 | class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" | 2256 | class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" |
2248 | aria-label="Next" | 2257 | aria-label="Next" |
2249 | > | 2258 | > |
2250 | <svg | 2259 | <svg |
2251 | class="w-4 h-4 fill-current" | 2260 | class="w-4 h-4 fill-current" |
2252 | aria-hidden="true" | 2261 | aria-hidden="true" |
2253 | viewBox="0 0 20 20" | 2262 | viewBox="0 0 20 20" |
2254 | > | 2263 | > |
2255 | <path | 2264 | <path |
2256 | 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" | 2265 | 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" |
2257 | clip-rule="evenodd" | 2266 | clip-rule="evenodd" |
2258 | fill-rule="evenodd" | 2267 | fill-rule="evenodd" |
2259 | ></path> | 2268 | ></path> |
2260 | </svg> | 2269 | </svg> |
2261 | </button> | 2270 | </button> |
2262 | </li> | 2271 | </li> |
2263 | </ul> | 2272 | </ul> |
2264 | </nav> | 2273 | </nav> |
2265 | </span> | 2274 | </span> |
2266 | </div> | 2275 | </div> |
2267 | </div> | 2276 | </div> |
2268 | --> | 2277 | --> |
2269 | <!-- Charts --> | 2278 | <!-- Charts --> |
2270 | <!-- | 2279 | <!-- |
2271 | <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"> | 2280 | <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"> |
2272 | Графики | 2281 | Графики |
2273 | </h2> | 2282 | </h2> |
2274 | <div class="grid gap-6 mb-8 md:grid-cols-2"> | 2283 | <div class="grid gap-6 mb-8 md:grid-cols-2"> |
2275 | <div | 2284 | <div |
2276 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 2285 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
2277 | > | 2286 | > |
2278 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> | 2287 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> |
2279 | Revenue | 2288 | Revenue |
2280 | </h4> | 2289 | </h4> |
2281 | <canvas id="pie"></canvas> | 2290 | <canvas id="pie"></canvas> |
2282 | <div | 2291 | <div |
2283 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" | 2292 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" |
2284 | > | 2293 | > |
2285 | 2294 | ||
2286 | <div class="flex items-center"> | 2295 | <div class="flex items-center"> |
2287 | <span | 2296 | <span |
2288 | class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full" | 2297 | class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full" |
2289 | ></span> | 2298 | ></span> |
2290 | <span>Shirts</span> | 2299 | <span>Shirts</span> |
2291 | </div> | 2300 | </div> |
2292 | <div class="flex items-center"> | 2301 | <div class="flex items-center"> |
2293 | <span | 2302 | <span |
2294 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" | 2303 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" |
2295 | ></span> | 2304 | ></span> |
2296 | <span>Shoes</span> | 2305 | <span>Shoes</span> |
2297 | </div> | 2306 | </div> |
2298 | <div class="flex items-center"> | 2307 | <div class="flex items-center"> |
2299 | <span | 2308 | <span |
2300 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" | 2309 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" |
2301 | ></span> | 2310 | ></span> |
2302 | <span>Bags</span> | 2311 | <span>Bags</span> |
2303 | </div> | 2312 | </div> |
2304 | </div> | 2313 | </div> |
2305 | </div> | 2314 | </div> |
2306 | <div | 2315 | <div |
2307 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" | 2316 | class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" |
2308 | > | 2317 | > |
2309 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> | 2318 | <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> |
2310 | Traffic | 2319 | Traffic |
2311 | </h4> | 2320 | </h4> |
2312 | <canvas id="line"></canvas> | 2321 | <canvas id="line"></canvas> |
2313 | <div | 2322 | <div |
2314 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" | 2323 | class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" |
2315 | > | 2324 | > |
2316 | 2325 | ||
2317 | <div class="flex items-center"> | 2326 | <div class="flex items-center"> |
2318 | <span | 2327 | <span |
2319 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" | 2328 | class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" |
2320 | ></span> | 2329 | ></span> |
2321 | <span>Organic</span> | 2330 | <span>Organic</span> |
2322 | </div> | 2331 | </div> |
2323 | <div class="flex items-center"> | 2332 | <div class="flex items-center"> |
2324 | <span | 2333 | <span |
2325 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" | 2334 | class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" |
2326 | ></span> | 2335 | ></span> |
2327 | <span>Paid</span> | 2336 | <span>Paid</span> |
2328 | </div> | 2337 | </div> |
2329 | </div> | 2338 | </div> |
2330 | </div> | 2339 | </div> |
2331 | </div> | 2340 | </div> |
2332 | --> | 2341 | --> |
2333 | </div> | 2342 | </div> |
2334 | </main> | 2343 | </main> |
2335 | </div> | 2344 | </div> |
2336 | </div> | 2345 | </div> |
2337 | @yield('modal') | 2346 | @yield('modal') |
2338 | </body> | 2347 | </body> |
2339 | @yield('script') | 2348 | @yield('script') |
2340 | </html> | 2349 | </html> |
2341 | 2350 |
routes/web.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | use App\Http\Controllers\Ad_jobsController; | 3 | use App\Http\Controllers\Ad_jobsController; |
4 | use App\Http\Controllers\AdEmployerController; | 4 | use App\Http\Controllers\AdEmployerController; |
5 | use App\Http\Controllers\Admin\AdminController; | 5 | use App\Http\Controllers\Admin\AdminController; |
6 | use App\Http\Controllers\Admin\CategoryController; | 6 | use App\Http\Controllers\Admin\CategoryController; |
7 | use App\Http\Controllers\Admin\CategoryEmpController; | 7 | use App\Http\Controllers\Admin\CategoryEmpController; |
8 | use App\Http\Controllers\Admin\EducationController; | 8 | use App\Http\Controllers\Admin\EducationController; |
9 | use App\Http\Controllers\Admin\EmployersController; | 9 | use App\Http\Controllers\Admin\EmployersController; |
10 | use App\Http\Controllers\EmployerController as FrontEmployersController; | 10 | use App\Http\Controllers\EmployerController as FrontEmployersController; |
11 | use App\Http\Controllers\Admin\InfoBloksController; | 11 | use App\Http\Controllers\Admin\InfoBloksController; |
12 | use App\Http\Controllers\Admin\JobTitlesController; | 12 | use App\Http\Controllers\Admin\JobTitlesController; |
13 | use App\Http\Controllers\Admin\UsersController; | 13 | use App\Http\Controllers\Admin\UsersController; |
14 | use App\Http\Controllers\Admin\WorkersController; | 14 | use App\Http\Controllers\Admin\WorkersController; |
15 | use App\Http\Controllers\Auth\ForgotPasswordController; | 15 | use App\Http\Controllers\Auth\ForgotPasswordController; |
16 | use App\Http\Controllers\Auth\LoginController; | 16 | use App\Http\Controllers\Auth\LoginController; |
17 | use App\Http\Controllers\Auth\RegisterController; | 17 | use App\Http\Controllers\Auth\RegisterController; |
18 | use App\Http\Controllers\CKEditorController; | 18 | use App\Http\Controllers\CKEditorController; |
19 | use App\Http\Controllers\MediaController; | 19 | use App\Http\Controllers\MediaController; |
20 | use App\Http\Controllers\WorkerController; | 20 | use App\Http\Controllers\WorkerController; |
21 | use App\Models\Ad_jobs; | 21 | use App\Models\Ad_jobs; |
22 | use App\Models\User; | 22 | use App\Models\User; |
23 | use App\Http\Controllers\MainController; | 23 | use App\Http\Controllers\MainController; |
24 | use App\Http\Controllers\HomeController; | 24 | use App\Http\Controllers\HomeController; |
25 | use Illuminate\Support\Facades\Route; | 25 | use Illuminate\Support\Facades\Route; |
26 | use App\Http\Controllers\Admin\CompanyController; | 26 | use App\Http\Controllers\Admin\CompanyController; |
27 | use App\Http\Controllers\Admin\Ad_EmployersController; | 27 | use App\Http\Controllers\Admin\Ad_EmployersController; |
28 | use App\Http\Controllers\Admin\MsgAnswersController; | 28 | use App\Http\Controllers\Admin\MsgAnswersController; |
29 | use App\Http\Controllers\Admin\GroupsController; | 29 | use App\Http\Controllers\Admin\GroupsController; |
30 | use App\Http\Controllers\PagesController; | 30 | use App\Http\Controllers\PagesController; |
31 | use Illuminate\Support\Facades\Storage; | 31 | use Illuminate\Support\Facades\Storage; |
32 | use App\Http\Controllers\EmployerController; | 32 | use App\Http\Controllers\EmployerController; |
33 | use App\Http\Controllers\CompanyController as FrontCompanyController; | 33 | use App\Http\Controllers\CompanyController as FrontCompanyController; |
34 | 34 | ||
35 | 35 | ||
36 | /* | 36 | /* |
37 | |-------------------------------------------------------------------------- | 37 | |-------------------------------------------------------------------------- |
38 | | Web Routes | 38 | | Web Routes |
39 | |-------------------------------------------------------------------------- | 39 | |-------------------------------------------------------------------------- |
40 | | | 40 | | |
41 | | Here is where you can register web routes for your application. These | 41 | | Here is where you can register web routes for your application. These |
42 | | routes are loaded by the RouteServiceProvider within a group which | 42 | | routes are loaded by the RouteServiceProvider within a group which |
43 | | contains the "web" middleware group. Now create something great! | 43 | | contains the "web" middleware group. Now create something great! |
44 | | | 44 | | |
45 | */ | 45 | */ |
46 | /* | 46 | /* |
47 | Route::get('/', function () { | 47 | Route::get('/', function () { |
48 | return view('welcome'); | 48 | return view('welcome'); |
49 | })->name('index'); | 49 | })->name('index'); |
50 | */ | 50 | */ |
51 | 51 | ||
52 | Route::get('/', [MainController::class, 'index'])->name('index'); | 52 | Route::get('/', [MainController::class, 'index'])->name('index'); |
53 | 53 | ||
54 | //Роуты авторизации, регистрации, восстановления, аутентификации | 54 | //Роуты авторизации, регистрации, восстановления, аутентификации |
55 | Auth::routes(['verify' => true]); | 55 | Auth::routes(['verify' => true]); |
56 | 56 | ||
57 | // роуты регистрации, авторизации, восстановления пароля, верификации почты | 57 | // роуты регистрации, авторизации, восстановления пароля, верификации почты |
58 | /*Route::group([ | 58 | /*Route::group([ |
59 | 'as' => 'auth.', //имя маршрута, например auth.index | 59 | 'as' => 'auth.', //имя маршрута, например auth.index |
60 | 'prefix' => 'auth', // префикс маршрута, например, auth/index | 60 | 'prefix' => 'auth', // префикс маршрута, например, auth/index |
61 | ], function () { | 61 | ], function () { |
62 | //форма регистрации | 62 | //форма регистрации |
63 | Route::get('register', [RegisterController::class, 'register'])->name('register'); | 63 | Route::get('register', [RegisterController::class, 'register'])->name('register'); |
64 | 64 | ||
65 | //создание пользователя | 65 | //создание пользователя |
66 | Route::post('register', [RegisterController::class, 'create'])->name('create'); | 66 | Route::post('register', [RegisterController::class, 'create'])->name('create'); |
67 | 67 | ||
68 | //форма входа авторизации | 68 | //форма входа авторизации |
69 | Route::get('login', [LoginController::class, 'login'])->name('login'); | 69 | Route::get('login', [LoginController::class, 'login'])->name('login'); |
70 | 70 | ||
71 | //аутентификация | 71 | //аутентификация |
72 | Route::post('login', [LoginController::class, 'authenticate'])->name('auth'); | 72 | Route::post('login', [LoginController::class, 'authenticate'])->name('auth'); |
73 | 73 | ||
74 | //выход | 74 | //выход |
75 | Route::get('logout', [LoginController::class, 'logout'])->name('logout'); | 75 | Route::get('logout', [LoginController::class, 'logout'])->name('logout'); |
76 | 76 | ||
77 | //форма ввода адреса почты | 77 | //форма ввода адреса почты |
78 | Route::get('forgot-password', [ForgotPasswordController::class, 'form'])->name('forgot-form'); | 78 | Route::get('forgot-password', [ForgotPasswordController::class, 'form'])->name('forgot-form'); |
79 | 79 | ||
80 | //письмо на почту | 80 | //письмо на почту |
81 | Route::post('forgot-password', [ForgotPasswordController::class, 'mail'])->name('forgot-mail'); | 81 | Route::post('forgot-password', [ForgotPasswordController::class, 'mail'])->name('forgot-mail'); |
82 | 82 | ||
83 | //форма восстановления пароля | 83 | //форма восстановления пароля |
84 | Route::get('reset-password/token/{token}/email/{email}', | 84 | Route::get('reset-password/token/{token}/email/{email}', |
85 | [ResetPasswordController::class, 'form'] | 85 | [ResetPasswordController::class, 'form'] |
86 | )->name('reset-form'); | 86 | )->name('reset-form'); |
87 | 87 | ||
88 | //восстановление пароля | 88 | //восстановление пароля |
89 | Route::post('reset-password', | 89 | Route::post('reset-password', |
90 | [ResetPasswordController::class, 'reset'] | 90 | [ResetPasswordController::class, 'reset'] |
91 | )->name('reset-password'); | 91 | )->name('reset-password'); |
92 | 92 | ||
93 | //сообщение о необходимости проверки адреса почты | 93 | //сообщение о необходимости проверки адреса почты |
94 | Route::get('verify-message', [VerifyEmailController::class, 'message'])->name('verify-message'); | 94 | Route::get('verify-message', [VerifyEmailController::class, 'message'])->name('verify-message'); |
95 | 95 | ||
96 | //подтверждение адреса почты нового пользователя | 96 | //подтверждение адреса почты нового пользователя |
97 | Route::get('verify-email/token/{token}/id/{id}', [VerifyEmailController::class, 'verify']) | 97 | Route::get('verify-email/token/{token}/id/{id}', [VerifyEmailController::class, 'verify']) |
98 | ->where('token', '[a-f0-9]{32}') | 98 | ->where('token', '[a-f0-9]{32}') |
99 | ->where('id', '[0-9]+') | 99 | ->where('id', '[0-9]+') |
100 | ->name('verify-email'); | 100 | ->name('verify-email'); |
101 | });*/ | 101 | });*/ |
102 | 102 | ||
103 | //Личный кабинет пользователя | 103 | //Личный кабинет пользователя |
104 | Route::get('/home', [HomeController::class, 'index'])->name('home'); | 104 | Route::get('/home', [HomeController::class, 'index'])->name('home'); |
105 | 105 | ||
106 | /* | 106 | /* |
107 | Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) { | 107 | Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) { |
108 | $user = User::where('email',$request->input('email'))->first(); | 108 | $user = User::where('email',$request->input('email'))->first(); |
109 | 109 | ||
110 | $user->sendEmailVerificationNotification(); | 110 | $user->sendEmailVerificationNotification(); |
111 | 111 | ||
112 | return 'your response'; | 112 | return 'your response'; |
113 | })->middleware('throttle:6,1')->name('verification.resend'); | 113 | })->middleware('throttle:6,1')->name('verification.resend'); |
114 | */ | 114 | */ |
115 | 115 | ||
116 | // Авторизация, регистрация в админку | 116 | // Авторизация, регистрация в админку |
117 | Route::group([ | 117 | Route::group([ |
118 | 'as' => 'admin.', // имя маршрута, например auth.index | 118 | 'as' => 'admin.', // имя маршрута, например auth.index |
119 | 'prefix' => 'admin', // префикс маршрута, например auth/index | 119 | 'prefix' => 'admin', // префикс маршрута, например auth/index |
120 | 'middleware' => ['guest'], | 120 | 'middleware' => ['guest'], |
121 | ], function () { | 121 | ], function () { |
122 | // Форма регистрации | 122 | // Форма регистрации |
123 | Route::get('register', [AdminController::class, 'register'])->name('register'); | 123 | Route::get('register', [AdminController::class, 'register'])->name('register'); |
124 | // Создание пользователя | 124 | // Создание пользователя |
125 | Route::post('register', [AdminController::class, 'create'])->name('create'); | 125 | Route::post('register', [AdminController::class, 'create'])->name('create'); |
126 | 126 | ||
127 | //Форма входа | 127 | //Форма входа |
128 | Route::get('login', [AdminController::class, 'login'])->name('login'); | 128 | Route::get('login', [AdminController::class, 'login'])->name('login'); |
129 | 129 | ||
130 | // аутентификация | 130 | // аутентификация |
131 | Route::post('login', [AdminController::class, 'autenticate'])->name('auth'); | 131 | Route::post('login', [AdminController::class, 'autenticate'])->name('auth'); |
132 | 132 | ||
133 | }); | 133 | }); |
134 | 134 | ||
135 | // Личный кабинет админки | 135 | // Личный кабинет админки |
136 | Route::group([ | 136 | Route::group([ |
137 | 'as' => 'admin.', // имя маршрута, например auth.index | 137 | 'as' => 'admin.', // имя маршрута, например auth.index |
138 | 'prefix' => 'admin', // префикс маршрута, например auth/index | 138 | 'prefix' => 'admin', // префикс маршрута, например auth/index |
139 | 'middleware' => ['auth'], ['admin'], | 139 | 'middleware' => ['auth'], ['admin'], |
140 | ], function() { | 140 | ], function() { |
141 | 141 | ||
142 | // выход | 142 | // выход |
143 | Route::get('logout', [AdminController::class, 'logout'])->name('logout'); | 143 | Route::get('logout', [AdminController::class, 'logout'])->name('logout'); |
144 | 144 | ||
145 | // кабинет главная страница | 145 | // кабинет главная страница |
146 | Route::get('cabinet', [AdminController::class, 'index'])->name('index'); | 146 | Route::get('cabinet', [AdminController::class, 'index'])->name('index'); |
147 | 147 | ||
148 | // кабинет профиль админа - форма | 148 | // кабинет профиль админа - форма |
149 | Route::get('profile', [AdminController::class, 'profile'])->name('profile'); | 149 | Route::get('profile', [AdminController::class, 'profile'])->name('profile'); |
150 | // кабинет профиль админа - сохранение формы | 150 | // кабинет профиль админа - сохранение формы |
151 | Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile'); | 151 | Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile'); |
152 | 152 | ||
153 | //кабинет сообщения админа | 153 | //кабинет сообщения админа |
154 | //Route::get('messages', [AdminController::class, 'profile'])->name('profile'); | 154 | //Route::get('messages', [AdminController::class, 'profile'])->name('profile'); |
155 | 155 | ||
156 | 156 | ||
157 | // кабинет профиль - форма пароли | 157 | // кабинет профиль - форма пароли |
158 | Route::get('password', [AdminController::class, 'profile_password'])->name('password'); | 158 | Route::get('password', [AdminController::class, 'profile_password'])->name('password'); |
159 | // кабинет профиль - сохранение формы пароля | 159 | // кабинет профиль - сохранение формы пароля |
160 | Route::post('password', [AdminController::class, 'profile_password_new'])->name('password'); | 160 | Route::post('password', [AdminController::class, 'profile_password_new'])->name('password'); |
161 | 161 | ||
162 | 162 | ||
163 | // кабинет профиль пользователя - форма | 163 | // кабинет профиль пользователя - форма |
164 | Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile'); | 164 | Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile'); |
165 | // кабинет профиль пользователя - сохранение формы | 165 | // кабинет профиль пользователя - сохранение формы |
166 | Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile'); | 166 | Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile'); |
167 | 167 | ||
168 | // кабинет профиль работодатель - форма | 168 | // кабинет профиль работодатель - форма |
169 | Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile'); | 169 | Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile'); |
170 | // кабинет профиль работодатель - сохранение формы | 170 | // кабинет профиль работодатель - сохранение формы |
171 | Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile'); | 171 | Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile'); |
172 | // кабинет удаление профиль работодателя и юзера | 172 | // кабинет удаление профиль работодателя и юзера |
173 | Route::delete('employers/delete/{employer}/{user}', [EmployersController::class, 'delete_employer'])->name('delete-employer'); | 173 | Route::delete('employers/delete/{employer}/{user}', [EmployersController::class, 'delete_employer'])->name('delete-employer'); |
174 | 174 | ||
175 | // кабинет профиль работник - форма | 175 | // кабинет профиль работник - форма |
176 | Route::get('worker-profile/add/{user}', [WorkersController::class, 'form_add_worker'])->name('worker-profile-add'); | 176 | Route::get('worker-profile/add/{user}', [WorkersController::class, 'form_add_worker'])->name('worker-profile-add'); |
177 | Route::post('worker-profile/add/{user}', [WorkersController::class, 'form_store_worker'])->name('worker-profile-store'); | 177 | Route::post('worker-profile/add/{user}', [WorkersController::class, 'form_store_worker'])->name('worker-profile-store'); |
178 | Route::get('worker-profile/{worker}', [WorkersController::class, 'form_edit_worker'])->name('worker-profile-edit'); | 178 | Route::get('worker-profile/{worker}', [WorkersController::class, 'form_edit_worker'])->name('worker-profile-edit'); |
179 | // кабинет профиль работник - сохранение формы | 179 | // кабинет профиль работник - сохранение формы |
180 | Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile-update'); | 180 | Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile-update'); |
181 | 181 | ||
182 | // Медиа | 182 | // Медиа |
183 | Route::get('media', [MediaController::class, 'index'])->name('media'); | 183 | Route::get('media', [MediaController::class, 'index'])->name('media'); |
184 | Route::delete('media/{media}', [MediaController::class, 'delete'])->name('delete-media'); | 184 | Route::delete('media/{media}', [MediaController::class, 'delete'])->name('delete-media'); |
185 | 185 | ||
186 | // кабинет настройки сайта - форма | 186 | // кабинет настройки сайта - форма |
187 | Route::get('config', [AdminController::class, 'config_form'])->name('config'); | 187 | Route::get('config', [AdminController::class, 'config_form'])->name('config'); |
188 | // кабинет настройки сайта сохранение формы | 188 | // кабинет настройки сайта сохранение формы |
189 | Route::post('config', [AdminController::class, 'store_config'])->name('store_config'); | 189 | Route::post('config', [AdminController::class, 'store_config'])->name('store_config'); |
190 | 190 | ||
191 | // кабинет - новости | 191 | // кабинет - новости |
192 | Route::get('news-list', [AdminController::class, 'news_admin'])->name('news_admin'); | 192 | Route::get('news-list', [AdminController::class, 'news_admin'])->name('news_admin'); |
193 | Route::get('news/add', [AdminController::class, 'new_admin_add'])->name('new_admin_add'); | 193 | Route::get('news/add', [AdminController::class, 'new_admin_add'])->name('new_admin_add'); |
194 | Route::post('news/add', [AdminController::class, 'new_admin_add_save'])->name('new_admin_save_add'); | 194 | Route::post('news/add', [AdminController::class, 'new_admin_add_save'])->name('new_admin_save_add'); |
195 | Route::get('news/edit/{new}', [AdminController::class, 'new_admin_edit'])->name('new_admin_edit'); | 195 | Route::get('news/edit/{new}', [AdminController::class, 'new_admin_edit'])->name('new_admin_edit'); |
196 | Route::post('news/edit/{new}', [AdminController::class, 'new_admin_update_save'])->name('new_admin_update'); | 196 | Route::post('news/edit/{new}', [AdminController::class, 'new_admin_update_save'])->name('new_admin_update'); |
197 | Route::get('news/delete/{new}', [AdminController::class, 'new_admin_delete'])->name('new_admin_delete'); | 197 | Route::get('news/delete/{new}', [AdminController::class, 'new_admin_delete'])->name('new_admin_delete'); |
198 | 198 | ||
199 | // кабинет - пользователи | 199 | // кабинет - пользователи |
200 | Route::get('users', [UsersController::class, 'index'])->name('users'); | 200 | Route::get('users', [UsersController::class, 'index'])->name('users'); |
201 | Route::get('user-delete/{user}', [UsersController::class, 'user_delete'])->name('user_delete'); | 201 | Route::get('user-delete/{user}', [UsersController::class, 'user_delete'])->name('user_delete'); |
202 | 202 | ||
203 | // кабинет - пользователи | 203 | // кабинет - пользователи |
204 | Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users'); | 204 | Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users'); |
205 | 205 | ||
206 | // кабинет - работодатели | 206 | // кабинет - работодатели |
207 | Route::get('employers', [EmployersController::class, 'index'])->name('employers'); | 207 | Route::get('employers', [EmployersController::class, 'index'])->name('employers'); |
208 | 208 | ||
209 | Route::get('employers/comment/{employer}', [EmployersController::class, 'comment_read'])->name('comment-employer'); | 209 | Route::get('employers/comment/{employer}', [EmployersController::class, 'comment_read'])->name('comment-employer'); |
210 | 210 | ||
211 | Route::get('flot/add/{employer}', [EmployersController::class, 'add_flot'])->name('flot_add'); | 211 | Route::get('flot/add/{employer}', [EmployersController::class, 'add_flot'])->name('flot_add'); |
212 | Route::post('flot/add', [EmployersController::class, 'save_add_flot'])->name('flot_add_save'); | 212 | Route::post('flot/add', [EmployersController::class, 'save_add_flot'])->name('flot_add_save'); |
213 | Route::get('flot/{flot}/{employer}', [EmployersController::class, 'edit_flot'])->name('flot'); | 213 | Route::get('flot/{flot}/{employer}', [EmployersController::class, 'edit_flot'])->name('flot'); |
214 | Route::put('flot/{flot}', [EmployersController::class, 'edit_save_flot'])->name('flot_edit'); | 214 | Route::put('flot/{flot}', [EmployersController::class, 'edit_save_flot'])->name('flot_edit'); |
215 | Route::get('flot/{flot}/{employer_id}/delete', [EmployersController::class, 'delete_flot'])->name('flot_delete'); | 215 | Route::get('flot/{flot}/{employer_id}/delete', [EmployersController::class, 'delete_flot'])->name('flot_delete'); |
216 | 216 | ||
217 | // кабинет - соискатели | 217 | // кабинет - соискатели |
218 | Route::get('workers', [WorkersController::class, 'index'])->name('workers'); | 218 | Route::get('workers', [WorkersController::class, 'index'])->name('workers'); |
219 | 219 | ||
220 | // кабинет - база данных | 220 | // кабинет - база данных |
221 | Route::get('basedata', [UsersController::class, 'index_bd'])->name('basedata'); | 221 | Route::get('basedata', [UsersController::class, 'index_bd'])->name('basedata'); |
222 | Route::get('basedata/add', [UsersController::class, 'add_bd'])->name('add-basedata'); | 222 | Route::get('basedata/add', [UsersController::class, 'add_bd'])->name('add-basedata'); |
223 | Route::post('basedata/add', [UsersController::class, 'add_store_bd'])->name('add-store-basedata'); | 223 | Route::post('basedata/add', [UsersController::class, 'add_store_bd'])->name('add-store-basedata'); |
224 | Route::get('basedata/edit/{user}', [UsersController::class, 'edit_bd'])->name('edit-basedata'); | 224 | Route::get('basedata/edit/{user}', [UsersController::class, 'edit_bd'])->name('edit-basedata'); |
225 | Route::put('basedata/edit/{user}', [UsersController::class, 'update_bd'])->name('update-basedata'); | 225 | Route::put('basedata/edit/{user}', [UsersController::class, 'update_bd'])->name('update-basedata'); |
226 | Route::delete('basedata/delete/{user}', [UsersController::class, 'destroy_bd'])->name('delete-basedata'); | 226 | Route::delete('basedata/delete/{user}', [UsersController::class, 'destroy_bd'])->name('delete-basedata'); |
227 | Route::get('basedata/doc/{user}', [UsersController::class, 'doc_bd'])->name('doc-basedata'); | 227 | Route::get('basedata/doc/{user}', [UsersController::class, 'doc_bd'])->name('doc-basedata'); |
228 | 228 | ||
229 | // кабинет - вакансии | 229 | // кабинет - вакансии |
230 | Route::get('ad-employers', [Ad_EmployersController::class, 'index'])->name('ad-employers'); | 230 | Route::get('ad-employers', [Ad_EmployersController::class, 'index'])->name('ad-employers'); |
231 | Route::get('ad-employers/add', [Ad_EmployersController::class, 'create'])->name('add-ad-employers'); | 231 | Route::get('ad-employers/add', [Ad_EmployersController::class, 'create'])->name('add-ad-employers'); |
232 | Route::post('ad-employers/add', [Ad_EmployersController::class, 'store'])->name('store-ad-employers'); | 232 | Route::post('ad-employers/add', [Ad_EmployersController::class, 'store'])->name('store-ad-employers'); |
233 | Route::get('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'edit'])->name('edit-ad-employers'); | 233 | Route::get('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'edit'])->name('edit-ad-employers'); |
234 | Route::post('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'update'])->name('update-ad-employers'); | 234 | Route::post('ad-employers/edit/{ad_employer}', [Ad_EmployersController::class, 'update'])->name('update-ad-employers'); |
235 | Route::delete('ad-employers/delete/{ad_employer}', [Ad_EmployersController::class, 'destroy'])->name('delete-ad-employer'); | 235 | Route::delete('ad-employers/delete/{ad_employer}', [Ad_EmployersController::class, 'destroy'])->name('delete-ad-employer'); |
236 | 236 | ||
237 | // Редактирование должности в вакансии | 237 | // Редактирование должности в вакансии |
238 | Route::put('update-jobs/{ad_jobs}', [Ad_EmployersController::class, 'update_ad_jobs'])->name('update_jobs'); | 238 | Route::put('update-jobs/{ad_jobs}', [Ad_EmployersController::class, 'update_ad_jobs'])->name('update_jobs'); |
239 | Route::get('edit-jobs/{ad_jobs}', [Ad_EmployersController::class, 'edit_jobs'])->name('edit_jobs'); | 239 | Route::get('edit-jobs/{ad_jobs}', [Ad_EmployersController::class, 'edit_jobs'])->name('edit_jobs'); |
240 | 240 | ||
241 | 241 | ||
242 | // кабинет - категории | 242 | // кабинет - категории |
243 | //Route::get('categories', [AdminController::class, 'index'])->name('categories'); | 243 | //Route::get('categories', [AdminController::class, 'index'])->name('categories'); |
244 | 244 | ||
245 | // СRUD-операции над Справочником Категории | 245 | // СRUD-операции над Справочником Категории |
246 | 246 | ||
247 | Route::resource('categories', CategoryController::class, ['except' => ['show']]); | 247 | Route::resource('categories', CategoryController::class, ['except' => ['show']]); |
248 | 248 | ||
249 | // CRUD-операции над справочником Категории для работодателей | 249 | // CRUD-операции над справочником Категории для работодателей |
250 | Route::resource('category-emp', CategoryEmpController::class, ['except' => ['show']]); | 250 | Route::resource('category-emp', CategoryEmpController::class, ['except' => ['show']]); |
251 | 251 | ||
252 | // CRUD-операции над справочником Образование | 252 | // CRUD-операции над справочником Образование |
253 | Route::resource('education', EducationController::class, ['except' => ['show']]); | 253 | Route::resource('education', EducationController::class, ['except' => ['show']]); |
254 | 254 | ||
255 | Route::get('rename-program-education', [EducationController::class, 'rename_program'])->name('rename-program-education'); | 255 | Route::get('rename-program-education', [EducationController::class, 'rename_program'])->name('rename-program-education'); |
256 | Route::get('program-education', [EducationController::class, 'add_program'])->name('add-program-education'); | 256 | Route::get('program-education', [EducationController::class, 'add_program'])->name('add-program-education'); |
257 | Route::post('program-education', [EducationController::class, 'store_program'])->name('store-program-education'); | 257 | Route::post('program-education', [EducationController::class, 'store_program'])->name('store-program-education'); |
258 | 258 | ||
259 | Route::get('program-education/edit/{program}/{education}', [EducationController::class, 'edit_program'])->name('edit-program-education'); | 259 | Route::get('program-education/edit/{program}/{education}', [EducationController::class, 'edit_program'])->name('edit-program-education'); |
260 | Route::post('program-education/edit/{program}/{education}', [EducationController::class, 'update_program'])->name('update-program-education'); | 260 | Route::post('program-education/edit/{program}/{education}', [EducationController::class, 'update_program'])->name('update-program-education'); |
261 | 261 | ||
262 | Route::get('program-education/delete/{program}/{education}', [EducationController::class, 'delete_program'])->name('delete-program-education'); | 262 | Route::get('program-education/delete/{program}/{education}', [EducationController::class, 'delete_program'])->name('delete-program-education'); |
263 | 263 | ||
264 | //Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles'); | 264 | //Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles'); |
265 | /* | 265 | /* |
266 | * кабинет - CRUD-операции по справочнику должности | 266 | * кабинет - CRUD-операции по справочнику должности |
267 | * | 267 | * |
268 | */ | 268 | */ |
269 | Route::resource('job-titles', JobTitlesController::class, ['except' => ['show']]); | 269 | Route::resource('job-titles', JobTitlesController::class, ['except' => ['show']]); |
270 | 270 | ||
271 | // кабинет - сообщения (чтение чужих) | 271 | // кабинет - сообщения (чтение чужих) |
272 | Route::get('messages', [MsgAnswersController::class, 'messages'])->name('messages'); | 272 | Route::get('messages', [MsgAnswersController::class, 'messages'])->name('messages'); |
273 | // кабинет - просмотр сообщения чужого (чтение) | 273 | // кабинет - просмотр сообщения чужого (чтение) |
274 | Route::get('messages/{message}', [MsgAnswersController::class, 'read_message'])->name('read-message'); | 274 | Route::get('messages/{message}', [MsgAnswersController::class, 'read_message'])->name('read-message'); |
275 | 275 | ||
276 | // кабинет - сообщения (админские) | 276 | // кабинет - сообщения (админские) |
277 | Route::get('admin-messages', [MsgAnswersController::class, 'admin_messages'])->name('admin-messages'); | 277 | Route::get('admin-messages', [MsgAnswersController::class, 'admin_messages'])->name('admin-messages'); |
278 | // кабинет - сообщения (админские) | 278 | // кабинет - сообщения (админские) |
279 | Route::post('admin-messages', [MsgAnswersController::class, 'admin_messages_post'])->name('admin-messages-post'); | 279 | Route::post('admin-messages', [MsgAnswersController::class, 'admin_messages_post'])->name('admin-messages-post'); |
280 | // кабинет - sql - конструкция запросов | 280 | // кабинет - sql - конструкция запросов |
281 | Route::get('messages-sql', [MsgAnswersController::class, 'messages_sql'])->name('messages-sql'); | 281 | Route::get('messages-sql', [MsgAnswersController::class, 'messages_sql'])->name('messages-sql'); |
282 | 282 | ||
283 | /* | 283 | /* |
284 | * Расписанный подход в описании каждой директорий групп пользователей. | 284 | * Расписанный подход в описании каждой директорий групп пользователей. |
285 | */ | 285 | */ |
286 | // кабинет - группы пользователей | 286 | // кабинет - группы пользователей |
287 | Route::get('groups', [GroupsController::class, 'index'])->name('groups'); | 287 | Route::get('groups', [GroupsController::class, 'index'])->name('groups'); |
288 | // кабинет - добавление форма группы пользователей | 288 | // кабинет - добавление форма группы пользователей |
289 | Route::get('groups/add', [GroupsController::class, 'add'])->name('add-group'); | 289 | Route::get('groups/add', [GroupsController::class, 'add'])->name('add-group'); |
290 | // кабинет - сохранение формы группы пользователей | 290 | // кабинет - сохранение формы группы пользователей |
291 | Route::post('groups/add', [GroupsController::class, 'store'])->name('add-group-store'); | 291 | Route::post('groups/add', [GroupsController::class, 'store'])->name('add-group-store'); |
292 | // кабинет - редактирование форма группы пользователей | 292 | // кабинет - редактирование форма группы пользователей |
293 | Route::get('groups/edit/{group}', [GroupsController::class, 'edit'])->name('edit-group'); | 293 | Route::get('groups/edit/{group}', [GroupsController::class, 'edit'])->name('edit-group'); |
294 | // кабинет - сохранение редактированной формы группы пользователей | 294 | // кабинет - сохранение редактированной формы группы пользователей |
295 | Route::post('groups/edit/{group}', [GroupsController::class, 'update'])->name('update-group'); | 295 | Route::post('groups/edit/{group}', [GroupsController::class, 'update'])->name('update-group'); |
296 | // кабинет - удаление группы пользователей | 296 | // кабинет - удаление группы пользователей |
297 | Route::delete('groups/delete/{group}', [GroupsController::class, 'destroy'])->name('delete-group'); | 297 | Route::delete('groups/delete/{group}', [GroupsController::class, 'destroy'])->name('delete-group'); |
298 | 298 | ||
299 | 299 | ||
300 | // кабинет - список админов | 300 | // кабинет - список админов |
301 | Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin'); | 301 | Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin'); |
302 | 302 | ||
303 | // справочник Позиции | 303 | // справочник Позиции |
304 | Route::get('positions', [AdminController::class, 'position'])->name('position'); | 304 | Route::get('positions', [AdminController::class, 'position'])->name('position'); |
305 | Route::get('positions/add', [AdminController::class, 'position_add'])->name('add-position'); | 305 | Route::get('positions/add', [AdminController::class, 'position_add'])->name('add-position'); |
306 | Route::post('positions/add', [AdminController::class, 'position_add_save'])->name('add-save-position'); | 306 | Route::post('positions/add', [AdminController::class, 'position_add_save'])->name('add-save-position'); |
307 | Route::get('positions/edit/{position}', [AdminController::class, 'position_edit'])->name('edit-position'); | 307 | Route::get('positions/edit/{position}', [AdminController::class, 'position_edit'])->name('edit-position'); |
308 | Route::post('position/edit/{position}', [AdminController::class, 'position_update'])->name('update-position'); | 308 | Route::post('position/edit/{position}', [AdminController::class, 'position_update'])->name('update-position'); |
309 | Route::get('position/delete/{position}', [AdminController::class, 'position_delete'])->name('delete-position'); | 309 | Route::get('position/delete/{position}', [AdminController::class, 'position_delete'])->name('delete-position'); |
310 | 310 | ||
311 | /////редактор////// кабинет - редактор сайта//////////////////////// | 311 | /////редактор////// кабинет - редактор сайта//////////////////////// |
312 | Route::get('editor-site', function() { | 312 | Route::get('editor-site', function() { |
313 | return view('admin.editor.index'); | 313 | return view('admin.editor.index'); |
314 | })->name('editor-site'); | 314 | })->name('editor-site'); |
315 | 315 | ||
316 | 316 | ||
317 | // кабинет - редактор шапки-футера сайта | 317 | // кабинет - редактор шапки-футера сайта |
318 | Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks'); | 318 | Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks'); |
319 | Route::get('edit-bloks/add', [CompanyController::class, 'editblock_add'])->name('add-block'); | 319 | Route::get('edit-bloks/add', [CompanyController::class, 'editblock_add'])->name('add-block'); |
320 | Route::post('edit-bloks/add', [CompanyController::class, 'editblock_store'])->name('add-block-store'); | 320 | Route::post('edit-bloks/add', [CompanyController::class, 'editblock_store'])->name('add-block-store'); |
321 | Route::get('edit-bloks/ajax', [CompanyController::class, 'editblock_ajax'])->name('ajax.block'); | 321 | Route::get('edit-bloks/ajax', [CompanyController::class, 'editblock_ajax'])->name('ajax.block'); |
322 | Route::get('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_edit'])->name('edit-block'); | 322 | Route::get('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_edit'])->name('edit-block'); |
323 | Route::put('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_update'])->name('update-block'); | 323 | Route::put('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_update'])->name('update-block'); |
324 | Route::delete('edit-bloks/delete/{block}', [CompanyController::class, 'editblock_destroy'])->name('delete-block'); | 324 | Route::delete('edit-bloks/delete/{block}', [CompanyController::class, 'editblock_destroy'])->name('delete-block'); |
325 | 325 | ||
326 | 326 | ||
327 | // кабинет - редактор должности на главной | 327 | // кабинет - редактор должности на главной |
328 | Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main'); | 328 | Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main'); |
329 | 329 | ||
330 | // кабинет - счетчики на главной | ||
331 | Route::get('counters-main', [CompanyController::class, 'counters_main'])->name('counters-main'); | ||
332 | Route::post('counters-main/edit/{name}', [CompanyController::class, 'counters_main_update'])->name('counters-main-update'); | ||
333 | |||
330 | // кабинет - редактор работодатели на главной | 334 | // кабинет - редактор работодатели на главной |
331 | Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main'); | 335 | Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main'); |
332 | 336 | ||
333 | 337 | ||
334 | // кабинет - редактор seo-сайта | 338 | // кабинет - редактор seo-сайта |
335 | Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo'); | 339 | Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo'); |
336 | Route::get('editor-seo/add', [CompanyController::class, 'editor_seo_add'])->name('add-seo'); | 340 | Route::get('editor-seo/add', [CompanyController::class, 'editor_seo_add'])->name('add-seo'); |
337 | Route::post('editor-seo/add', [CompanyController::class, 'editor_seo_store'])->name('add-seo-store'); | 341 | Route::post('editor-seo/add', [CompanyController::class, 'editor_seo_store'])->name('add-seo-store'); |
338 | Route::get('editor-seo/ajax', [CompanyController::class, 'editor_seo_ajax'])->name('ajax.seo'); | 342 | Route::get('editor-seo/ajax', [CompanyController::class, 'editor_seo_ajax'])->name('ajax.seo'); |
339 | Route::get('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_edit'])->name('edit-seo'); | 343 | Route::get('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_edit'])->name('edit-seo'); |
340 | Route::put('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_update'])->name('update-seo'); | 344 | Route::put('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_update'])->name('update-seo'); |
341 | Route::delete('editor-seo/delete/{page}', [CompanyController::class, 'editor_seo_destroy'])->name('delete-seo'); | 345 | Route::delete('editor-seo/delete/{page}', [CompanyController::class, 'editor_seo_destroy'])->name('delete-seo'); |
342 | 346 | ||
343 | 347 | ||
344 | // кабинет - редактор страниц | 348 | // кабинет - редактор страниц |
345 | Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages'); | 349 | Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages'); |
346 | // кабинет - добавление страницы | 350 | // кабинет - добавление страницы |
347 | Route::get('editor-pages/add', [CompanyController::class, 'editor_pages_add'])->name('add-page'); | 351 | Route::get('editor-pages/add', [CompanyController::class, 'editor_pages_add'])->name('add-page'); |
348 | // кабинет - сохранение формы страницы | 352 | // кабинет - сохранение формы страницы |
349 | Route::post('editor-page/add', [CompanyController::class, 'editor_pages_store'])->name('add-page-store'); | 353 | Route::post('editor-page/add', [CompanyController::class, 'editor_pages_store'])->name('add-page-store'); |
350 | // кабинет - редактирование форма страницы | 354 | // кабинет - редактирование форма страницы |
351 | Route::get('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_edit'])->name('edit-page'); | 355 | Route::get('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_edit'])->name('edit-page'); |
352 | // кабинет - сохранение редактированной формы страницы | 356 | // кабинет - сохранение редактированной формы страницы |
353 | Route::put('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_update'])->name('update-page'); | 357 | Route::put('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_update'])->name('update-page'); |
354 | // кабинет - удаление страницы | 358 | // кабинет - удаление страницы |
355 | Route::delete('editor-pages/delete/{page}', [CompanyController::class, 'editor_pages_destroy'])->name('delete-page'); | 359 | Route::delete('editor-pages/delete/{page}', [CompanyController::class, 'editor_pages_destroy'])->name('delete-page'); |
356 | 360 | ||
357 | 361 | ||
358 | // кабинет - реклама сайта | 362 | // кабинет - реклама сайта |
359 | Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames'); | 363 | Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames'); |
360 | Route::get('reclames/add', [CompanyController::class, 'reclames_add'])->name('add-reclames'); | 364 | Route::get('reclames/add', [CompanyController::class, 'reclames_add'])->name('add-reclames'); |
361 | Route::post('reclames/add', [CompanyController::class, 'reclames_store'])->name('add-reclames-store'); | 365 | Route::post('reclames/add', [CompanyController::class, 'reclames_store'])->name('add-reclames-store'); |
362 | Route::get('reclames/edit/{reclame}', [CompanyController::class, 'reclames_edit'])->name('edit-reclames'); | 366 | Route::get('reclames/edit/{reclame}', [CompanyController::class, 'reclames_edit'])->name('edit-reclames'); |
363 | Route::put('reclames/edit/{reclame}', [CompanyController::class, 'reclames_update'])->name('update-reclames'); | 367 | Route::put('reclames/edit/{reclame}', [CompanyController::class, 'reclames_update'])->name('update-reclames'); |
364 | Route::delete('reclames/delete/{reclame}', [CompanyController::class, 'reclames_destroy'])->name('delete-reclames'); | 368 | Route::delete('reclames/delete/{reclame}', [CompanyController::class, 'reclames_destroy'])->name('delete-reclames'); |
365 | //////////////////////////////////////////////////////////////////////// | 369 | //////////////////////////////////////////////////////////////////////// |
366 | 370 | ||
367 | 371 | ||
368 | // кабинет - отзывы о работодателе для модерации | 372 | // кабинет - отзывы о работодателе для модерации |
369 | Route::get('answers', [EmployersController::class, 'answers'])->name('answers'); | 373 | Route::get('answers', [EmployersController::class, 'answers'])->name('answers'); |
370 | 374 | ||
371 | // Общая страница статистики | 375 | // Общая страница статистики |
372 | Route::get('statics', function () { | 376 | Route::get('statics', function () { |
373 | return view('admin.static.index'); | 377 | return view('admin.static.index'); |
374 | })->name('statics'); | 378 | })->name('statics'); |
375 | 379 | ||
376 | // кабинет - статистика работников | 380 | // кабинет - статистика работников |
377 | Route::get('static-workers', [WorkersController::class, 'static_workers'])->name('static-workers'); | 381 | Route::get('static-workers', [WorkersController::class, 'static_workers'])->name('static-workers'); |
378 | 382 | ||
379 | // кабинет - статистика вакансий работодателя | 383 | // кабинет - статистика вакансий работодателя |
380 | Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads'); | 384 | Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads'); |
381 | 385 | ||
382 | // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника | 386 | // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника |
383 | /* | 387 | /* |
384 | * CRUD-операции над справочником дипломы и документы | 388 | * CRUD-операции над справочником дипломы и документы |
385 | */ | 389 | */ |
386 | //Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks'); | 390 | //Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks'); |
387 | Route::resource('infobloks', InfoBloksController::class, ['except' => ['show']]); | 391 | Route::resource('infobloks', InfoBloksController::class, ['except' => ['show']]); |
388 | 392 | ||
389 | // кабинет - роли пользователя | 393 | // кабинет - роли пользователя |
390 | Route::get('roles', [UsersController::class, 'roles'])->name('roles'); | 394 | Route::get('roles', [UsersController::class, 'roles'])->name('roles'); |
391 | 395 | ||
392 | Route::get('admin_roles', [UsersController::class, 'admin_roles'])->name('admin_roles'); | 396 | Route::get('admin_roles', [UsersController::class, 'admin_roles'])->name('admin_roles'); |
393 | 397 | ||
394 | Route::get('logs', function() { | 398 | Route::get('logs', function() { |
395 | $files = Storage::files('logs/laravel.log'); | 399 | $files = Storage::files('logs/laravel.log'); |
396 | })->name('logs'); | 400 | })->name('logs'); |
397 | }); | 401 | }); |
398 | 402 | ||
399 | // Инструментальные страницы | 403 | // Инструментальные страницы |
400 | Route::post('ckeditor/upload', [CKEditorController::class, 'upload'])->name('ckeditor.image-upload'); | 404 | Route::post('ckeditor/upload', [CKEditorController::class, 'upload'])->name('ckeditor.image-upload'); |
401 | 405 | ||
402 | Route::get('redis/', [PagesController::class, 'redis'])->name('redis'); | 406 | Route::get('redis/', [PagesController::class, 'redis'])->name('redis'); |
403 | 407 | ||
404 | Route::get('excel/', [PagesController::class, 'excel'])->name('excel'); | 408 | Route::get('excel/', [PagesController::class, 'excel'])->name('excel'); |
405 | 409 | ||
406 | // Страницы с произвольным контентом | 410 | // Страницы с произвольным контентом |
407 | Route::get('pages/{pages:slug}', [PagesController::class, 'pages'])->name('page'); | 411 | Route::get('pages/{pages:slug}', [PagesController::class, 'pages'])->name('page'); |
408 | 412 | ||
409 | // Форма обратной связи | 413 | // Форма обратной связи |
410 | Route::post('form_feedback', [PagesController::class, 'form_feedback'])->name('form_feedback'); | 414 | Route::post('form_feedback', [PagesController::class, 'form_feedback'])->name('form_feedback'); |
411 | 415 | ||
412 | // Публичные страницы соискателя | 416 | // Публичные страницы соискателя |
413 | Route::get('workers/profile/{worker}', [WorkerController::class, 'profile'])->name('worker_page'); | 417 | Route::get('workers/profile/{worker}', [WorkerController::class, 'profile'])->name('worker_page'); |
414 | 418 | ||
415 | //Страница вакансии | 419 | //Страница вакансии |
416 | Route::get('employer/ad/{ad_employer}', [AdEmployerController::class, 'ad_employer'])->name('ad-employer'); | 420 | Route::get('employer/ad/{ad_employer}', [AdEmployerController::class, 'ad_employer'])->name('ad-employer'); |
417 | 421 | ||
418 | //Вакансии | 422 | //Вакансии |
419 | Route::get('vacancies', [MainController::class, 'vacancies'])->name('vacancies'); | 423 | Route::get('vacancies', [MainController::class, 'vacancies'])->name('vacancies'); |
420 | 424 | ||
421 | //Вакансии поиск на главной | 425 | //Вакансии поиск на главной |
422 | Route::get('search-vacancies', [MainController::class, 'search_vacancies'])->name('search_vacancies'); | 426 | Route::get('search-vacancies', [MainController::class, 'search_vacancies'])->name('search_vacancies'); |
423 | 427 | ||
424 | //Вакансии категория детальная | 428 | //Вакансии категория детальная |
425 | Route::get('list-vacancies/{categories?}', [MainController::class, 'list_vacancies'])->name('list-vacancies'); | 429 | Route::get('list-vacancies/{categories?}', [MainController::class, 'list_vacancies'])->name('list-vacancies'); |
426 | 430 | ||
427 | // Лайк вакансии | 431 | // Лайк вакансии |
428 | Route::get('like-vacancy', [MainController::class, 'like_vacancy'])->name('like-vacancy'); | 432 | Route::get('like-vacancy', [MainController::class, 'like_vacancy'])->name('like-vacancy'); |
429 | 433 | ||
430 | //Детальная страница вакансии - работодателя | 434 | //Детальная страница вакансии - работодателя |
431 | Route::get('vacancie/{vacancy}', [FrontEmployersController::class, 'vacancie'])->name('vacancie'); | 435 | Route::get('vacancie/{vacancy}', [FrontEmployersController::class, 'vacancie'])->name('vacancie'); |
432 | 436 | ||
433 | //Судоходные компании | 437 | //Судоходные компании |
434 | Route::get('shipping-companies', [FrontCompanyController::class, 'shipping_companies'])->name('shipping_companies'); | 438 | Route::get('shipping-companies', [FrontCompanyController::class, 'shipping_companies'])->name('shipping_companies'); |
435 | 439 | ||
436 | //Детальная инфа о компании | 440 | //Детальная инфа о компании |
437 | Route::get('info-company/{company}', [FrontCompanyController::class, 'info_company'])->name('info_company'); | 441 | Route::get('info-company/{company}', [FrontCompanyController::class, 'info_company'])->name('info_company'); |
438 | 442 | ||
439 | //Образование | 443 | //Образование |
440 | Route::get('education', [MainController::class, 'education'])->name('education'); | 444 | Route::get('education', [MainController::class, 'education'])->name('education'); |
441 | 445 | ||
442 | //Новости | 446 | //Новости |
443 | Route::get('news', [MainController::class, 'news'])->name('news'); | 447 | Route::get('news', [MainController::class, 'news'])->name('news'); |
444 | Route::get('detail-new/{new}', [MainController::class, 'detail_new'])->name('detail_new'); | 448 | Route::get('detail-new/{new}', [MainController::class, 'detail_new'])->name('detail_new'); |
445 | 449 | ||
446 | //Контакты | 450 | //Контакты |
447 | Route::get('contacts', [MainController::class, 'contacts'])->name('contacts'); | 451 | Route::get('contacts', [MainController::class, 'contacts'])->name('contacts'); |
448 | 452 | ||
449 | //База резюме | 453 | //База резюме |
450 | Route::get('bd-resume', [WorkerController::class, 'bd_resume'])->name('bd_resume'); | 454 | Route::get('bd-resume', [WorkerController::class, 'bd_resume'])->name('bd_resume'); |
451 | Route::get('bd_resume_danger', function(){ | 455 | Route::get('bd_resume_danger', function(){ |
452 | return view('employers.bd_resume_danger'); | 456 | return view('employers.bd_resume_danger'); |
453 | })->name('bd_resume_danger'); | 457 | })->name('bd_resume_danger'); |
454 | 458 | ||
455 | Route::get('like-resume', [MainController::class, 'like_worker'])->name('like_resume'); | 459 | Route::get('like-resume', [MainController::class, 'like_worker'])->name('like_resume'); |
456 | 460 | ||
457 | //Анкета соискателя | 461 | //Анкета соискателя |
458 | Route::get('resume-profile/{worker}', [WorkerController::class, 'resume_profile'])->name('resume_profile'); | 462 | Route::get('resume-profile/{worker}', [WorkerController::class, 'resume_profile'])->name('resume_profile'); |
459 | 463 | ||
460 | //Скачать резюме | 464 | //Скачать резюме |
461 | Route::get('resume-download/{worker}', [WorkerController::class, 'resume_download'])->name('resume_download'); | 465 | Route::get('resume-download/{worker}', [WorkerController::class, 'resume_download'])->name('resume_download'); |
462 | Route::get('resume-download/all', [WorkerController::class, 'resume_download_all'])->name('resume_download_all2'); | 466 | Route::get('resume-download/all', [WorkerController::class, 'resume_download_all'])->name('resume_download_all2'); |
463 | Route::get('resume-download', [WorkerController::class, 'resume_download_all'])->name('resume_download_all'); | 467 | Route::get('resume-download', [WorkerController::class, 'resume_download_all'])->name('resume_download_all'); |
464 | 468 | ||
465 | 469 | ||
466 | //Вход в кабинет | 470 | //Вход в кабинет |
467 | Route::get('login', [MainController::class, 'input_login'])->name('login'); | 471 | Route::get('login', [MainController::class, 'input_login'])->name('login'); |
468 | 472 | ||
469 | // Выход из кабинета | 473 | // Выход из кабинета |
470 | Route::get('logout', [EmployerController::class, 'logout'])->name('logout'); | 474 | Route::get('logout', [EmployerController::class, 'logout'])->name('logout'); |
471 | 475 | ||
472 | Route::get( 'register_worker', [WorkerController::class, 'register_worker'])->name('register_worker'); | 476 | Route::get( 'register_worker', [WorkerController::class, 'register_worker'])->name('register_worker'); |
473 | Route::get('register_employer', [EmployerController::class, 'register_employer'])->name('register_employer'); | 477 | Route::get('register_employer', [EmployerController::class, 'register_employer'])->name('register_employer'); |
474 | 478 | ||
475 | //восстановление пароля | 479 | //восстановление пароля |
476 | Route::get('repair-password', [MainController::class, 'repair_password'])->name('repair_password'); | 480 | Route::get('repair-password', [MainController::class, 'repair_password'])->name('repair_password'); |
477 | // Звезда сообщения | 481 | // Звезда сообщения |
478 | Route::post('stars-answer', [WorkerController::class, 'stars_answer'])->name('stars_answer'); | 482 | Route::post('stars-answer', [WorkerController::class, 'stars_answer'])->name('stars_answer'); |
479 | 483 | ||
480 | // Борьба | 484 | // Борьба |
481 | Route::get('clear_cookie', function() { | 485 | Route::get('clear_cookie', function() { |
482 | \App\Classes\Cookies_vacancy::clear_vacancy(); | 486 | \App\Classes\Cookies_vacancy::clear_vacancy(); |
483 | return redirect()->route('index'); | 487 | return redirect()->route('index'); |
484 | })->name('clear_cookie'); | 488 | })->name('clear_cookie'); |
485 | 489 | ||
486 | Route::get('cookies', function() { | 490 | Route::get('cookies', function() { |
487 | return view('cookies'); | 491 | return view('cookies'); |
488 | })->name('cookies'); | 492 | })->name('cookies'); |
489 | 493 | ||
490 | // Личный кабинет работник | 494 | // Личный кабинет работник |
491 | Route::group([ | 495 | Route::group([ |
492 | 'as' => 'worker.', // имя маршрута, например auth.index | 496 | 'as' => 'worker.', // имя маршрута, например auth.index |
493 | 'prefix' => 'worker', // префикс маршрута, например auth/index | 497 | 'prefix' => 'worker', // префикс маршрута, например auth/index |
494 | 'middleware' => ['auth'], ['is_worker'], | 498 | 'middleware' => ['auth'], ['is_worker'], |
495 | ], function() { | 499 | ], function() { |
496 | // 1 страница - Моя анкета | 500 | // 1 страница - Моя анкета |
497 | Route::get('cabinet', [WorkerController::class, 'cabinet'])->name('cabinet'); | 501 | Route::get('cabinet', [WorkerController::class, 'cabinet'])->name('cabinet'); |
498 | Route::post('cabinet/{worker}', [WorkerController::class, 'cabinet_save'])->name('cabinet_save'); | 502 | Route::post('cabinet/{worker}', [WorkerController::class, 'cabinet_save'])->name('cabinet_save'); |
499 | 503 | ||
500 | // 2 страница - Сообщения | 504 | // 2 страница - Сообщения |
501 | Route::get('cabinet/messages/{type_message}', [WorkerController::class, 'messages'])->name('messages'); | 505 | Route::get('cabinet/messages/{type_message}', [WorkerController::class, 'messages'])->name('messages'); |
502 | Route::get('cabinet/dialog/{user1}/{user2}', [WorkerController::class, 'dialog'])->name('dialog'); | 506 | Route::get('cabinet/dialog/{user1}/{user2}', [WorkerController::class, 'dialog'])->name('dialog'); |
503 | // 3 страница - Избранные вакансии | 507 | // 3 страница - Избранные вакансии |
504 | Route::get('cabinet/favorite', [WorkerController::class, 'favorite'])->name('favorite'); | 508 | Route::get('cabinet/favorite', [WorkerController::class, 'favorite'])->name('favorite'); |
505 | // Продолжение борьбы против колорадов - избранные вакансии | 509 | // Продолжение борьбы против колорадов - избранные вакансии |
506 | Route::get('кабинет/favorite', [WorkerController::class, 'colorado'])->name('colorado'); | 510 | Route::get('кабинет/favorite', [WorkerController::class, 'colorado'])->name('colorado'); |
507 | 511 | ||
508 | // 4 страница - Сменить пароль | 512 | // 4 страница - Сменить пароль |
509 | Route::get('кабинет/new_password', [WorkerController::class, 'new_password'])->name('new_password'); | 513 | Route::get('кабинет/new_password', [WorkerController::class, 'new_password'])->name('new_password'); |
510 | Route::post('кабинет/new_password/save', [WorkerController::class, 'save_new_password'])->name('save_new_password'); | 514 | Route::post('кабинет/new_password/save', [WorkerController::class, 'save_new_password'])->name('save_new_password'); |
511 | 515 | ||
512 | // 5 страница - Удалить профиль | 516 | // 5 страница - Удалить профиль |
513 | Route::get('кабинет/delete_profile', [WorkerController::class, 'delete_profile'])->name('delete_profile'); | 517 | Route::get('кабинет/delete_profile', [WorkerController::class, 'delete_profile'])->name('delete_profile'); |
514 | Route::post('кабинет/delete_profile/delete', [WorkerController::class, 'delete_profile_result'])->name('deleteprofile_result'); | 518 | Route::post('кабинет/delete_profile/delete', [WorkerController::class, 'delete_profile_result'])->name('deleteprofile_result'); |
515 | 519 | ||
516 | // Резюме -pdf | 520 | // Резюме -pdf |
517 | Route::get('кабинет/download/{worker}', [WorkerController::class, 'download'])->name('download'); | 521 | Route::get('кабинет/download/{worker}', [WorkerController::class, 'download'])->name('download'); |
518 | 522 | ||
519 | // Поднятие анкеты | 523 | // Поднятие анкеты |
520 | Route::get('кабинет/up/{worker}', [WorkerController::class, 'up'])->name('up'); | 524 | Route::get('кабинет/up/{worker}', [WorkerController::class, 'up'])->name('up'); |
521 | 525 | ||
522 | Route::post('test123', [WorkerController::class, 'test123'])->name('test123'); | 526 | Route::post('test123', [WorkerController::class, 'test123'])->name('test123'); |
523 | 527 | ||
524 | // Добавление сертификата | 528 | // Добавление сертификата |
525 | Route::get('кабинет/new_sertificate/{worker}', [WorkerController::class, 'new_sertificate'])->name('new_sertificate'); | 529 | Route::get('кабинет/new_sertificate/{worker}', [WorkerController::class, 'new_sertificate'])->name('new_sertificate'); |
526 | Route::get('кабинет/add_sertificate', [WorkerController::class, 'add_serificate'])->name('add_serificate'); | 530 | Route::get('кабинет/add_sertificate', [WorkerController::class, 'add_serificate'])->name('add_serificate'); |
527 | Route::get('кабинет/edit_sertificate/{worker}/{doc}', [WorkerController::class, 'edit_sertificate'])->name('edit_sertificate'); | 531 | Route::get('кабинет/edit_sertificate/{worker}/{doc}', [WorkerController::class, 'edit_sertificate'])->name('edit_sertificate'); |
528 | Route::get('кабинет/edit_sertificate/{doc}', [WorkerController::class, 'update_serificate'])->name('update_serificate'); | 532 | Route::get('кабинет/edit_sertificate/{doc}', [WorkerController::class, 'update_serificate'])->name('update_serificate'); |
529 | Route::get('кабинет/delete_sertificate/{doc}', [WorkerController::class, 'delete_sertificate'])->name('delete_sertificate'); | 533 | Route::get('кабинет/delete_sertificate/{doc}', [WorkerController::class, 'delete_sertificate'])->name('delete_sertificate'); |
530 | 534 | ||
531 | // Добавление предыдущих контактов компании | 535 | // Добавление предыдущих контактов компании |
532 | Route::get('кабинет/prev_company/{worker}', [WorkerController::class, 'new_prev_company'])->name('new_prev_company'); | 536 | Route::get('кабинет/prev_company/{worker}', [WorkerController::class, 'new_prev_company'])->name('new_prev_company'); |
533 | Route::get('кабинет/add_prev_company', [WorkerController::class, 'add_prev_company'])->name('add_prev_company'); | 537 | Route::get('кабинет/add_prev_company', [WorkerController::class, 'add_prev_company'])->name('add_prev_company'); |
534 | Route::get('кабинет/edit_prev_company/{doc}/{worker}', [WorkerController::class, 'edit_prev_company'])->name('edit_prev_company'); | 538 | Route::get('кабинет/edit_prev_company/{doc}/{worker}', [WorkerController::class, 'edit_prev_company'])->name('edit_prev_company'); |
535 | Route::post('кабинет/update_prev_company/{doc}', [WorkerController::class, 'update_prev_company'])->name('update_prev_company'); | 539 | Route::post('кабинет/update_prev_company/{doc}', [WorkerController::class, 'update_prev_company'])->name('update_prev_company'); |
536 | Route::get('кабинет/delete_prev_company/{doc}', [WorkerController::class, 'delete_prev_company'])->name('delete_prev_company'); | 540 | Route::get('кабинет/delete_prev_company/{doc}', [WorkerController::class, 'delete_prev_company'])->name('delete_prev_company'); |
537 | 541 | ||
538 | // Добавление документа-диплома | 542 | // Добавление документа-диплома |
539 | Route::get('кабинет/add_diplom/{worker}', [WorkerController::class, 'add_diplom'])->name('add_diplom'); | 543 | Route::get('кабинет/add_diplom/{worker}', [WorkerController::class, 'add_diplom'])->name('add_diplom'); |
540 | Route::post('кабинет/add_diplom', [WorkerController::class, 'add_diplom_save'])->name('dop_info_save'); | 544 | Route::post('кабинет/add_diplom', [WorkerController::class, 'add_diplom_save'])->name('dop_info_save'); |
541 | Route::get('кабинет/delete_ad_diplom/{worker}', [WorkerController::class, 'delete_add_diplom'])->name('delete_add_diplom'); | 545 | Route::get('кабинет/delete_ad_diplom/{worker}', [WorkerController::class, 'delete_add_diplom'])->name('delete_add_diplom'); |
542 | 546 | ||
543 | // Добавление стандартного диплома | 547 | // Добавление стандартного диплома |
544 | Route::get('кабинет/add_document/{worker}', [WorkerController::class, 'add_document'])->name('add_document'); | 548 | Route::get('кабинет/add_document/{worker}', [WorkerController::class, 'add_document'])->name('add_document'); |
545 | Route::post('кабинет/add_document/', [WorkerController::class, 'add_document_save'])->name('add_document_save'); | 549 | Route::post('кабинет/add_document/', [WorkerController::class, 'add_document_save'])->name('add_document_save'); |
546 | Route::get('кабинет/edit_document/{doc}/{worker}', [WorkerController::class, 'edit_document'])->name('edit_document'); | 550 | Route::get('кабинет/edit_document/{doc}/{worker}', [WorkerController::class, 'edit_document'])->name('edit_document'); |
547 | Route::post('кабинет/edit_document/{doc}', [WorkerController::class, 'edit_document_save'])->name('edit_document_save'); | 551 | Route::post('кабинет/edit_document/{doc}', [WorkerController::class, 'edit_document_save'])->name('edit_document_save'); |
548 | Route::get('кабинет/delete_document/{doc}', [WorkerController::class, 'delete_document'])->name('delete_document'); | 552 | Route::get('кабинет/delete_document/{doc}', [WorkerController::class, 'delete_document'])->name('delete_document'); |
549 | 553 | ||
550 | // Отправка сообщения работодателю от соискателя | 554 | // Отправка сообщения работодателю от соискателя |
551 | Route::post('сообщение/', [WorkerController::class, 'new_message'])->name('new_message'); | 555 | Route::post('сообщение/', [WorkerController::class, 'new_message'])->name('new_message'); |
552 | }); | 556 | }); |
553 | 557 | ||
554 | // Личный кабинет работодателя | 558 | // Личный кабинет работодателя |
555 | Route::group([ | 559 | Route::group([ |
556 | 'as' => 'employer.', // имя маршрута, например auth.index | 560 | 'as' => 'employer.', // имя маршрута, например auth.index |
557 | 'prefix' => 'employer', // префикс маршрута, например auth/index | 561 | 'prefix' => 'employer', // префикс маршрута, например auth/index |
558 | 'middleware' => ['auth'], !['is_worker'], | 562 | 'middleware' => ['auth'], !['is_worker'], |
559 | ], function() { | 563 | ], function() { |
560 | // 0 страница - Личные данные работодателя | 564 | // 0 страница - Личные данные работодателя |
561 | Route::get('cabinet/employer_info', [EmployerController::class, 'employer_info'])->name('employer_info'); | 565 | Route::get('cabinet/employer_info', [EmployerController::class, 'employer_info'])->name('employer_info'); |
562 | Route::post('cabinet/employer_info/{user}', [EmployerController::class, 'employer_info_save'])->name('employer_info_save'); | 566 | Route::post('cabinet/employer_info/{user}', [EmployerController::class, 'employer_info_save'])->name('employer_info_save'); |
563 | 567 | ||
564 | // 1 страница - Профиль | 568 | // 1 страница - Профиль |
565 | Route::get('cabinet', [EmployerController::class, 'cabinet'])->name('cabinet'); | 569 | Route::get('cabinet', [EmployerController::class, 'cabinet'])->name('cabinet'); |
566 | Route::post('cabinet/{Employer}', [EmployerController::class, 'cabinet_save'])->name('cabinet_save'); | 570 | Route::post('cabinet/{Employer}', [EmployerController::class, 'cabinet_save'])->name('cabinet_save'); |
567 | Route::post('flot_add_ajax', [EmployerController::class, 'save_add_flot'])->name('save_add_flot'); | 571 | Route::post('flot_add_ajax', [EmployerController::class, 'save_add_flot'])->name('save_add_flot'); |
568 | Route::get('flot_delete_ajax/{Flot}', [EmployerController::class, 'delete_flot'])->name('delete_flot'); | 572 | Route::get('flot_delete_ajax/{Flot}', [EmployerController::class, 'delete_flot'])->name('delete_flot'); |
569 | Route::get('cabinet/flot_edit/{Flot}/{Employer}', [EmployerController::class, 'edit_flot'])->name('edit_flot'); | 573 | Route::get('cabinet/flot_edit/{Flot}/{Employer}', [EmployerController::class, 'edit_flot'])->name('edit_flot'); |
570 | Route::post('cabinet/flot_edit/{Flot}', [EmployerController::class, 'update_flot'])->name('update_flot_save'); | 574 | Route::post('cabinet/flot_edit/{Flot}', [EmployerController::class, 'update_flot'])->name('update_flot_save'); |
571 | Route::get('cabinet/flot', [EmployerController::class, 'slider_flot'])->name('slider_flot'); | 575 | Route::get('cabinet/flot', [EmployerController::class, 'slider_flot'])->name('slider_flot'); |
572 | 576 | ||
573 | // 2 страница - Добавление вакансий | 577 | // 2 страница - Добавление вакансий |
574 | Route::get('cabinet/vacancie', [EmployerController::class, 'cabinet_vacancie'])->name('cabinet_vacancie'); | 578 | Route::get('cabinet/vacancie', [EmployerController::class, 'cabinet_vacancie'])->name('cabinet_vacancie'); |
575 | Route::post('vacancie', [EmployerController::class, 'cabinet_vacancy_save1'])->name('vac_save'); | 579 | Route::post('vacancie', [EmployerController::class, 'cabinet_vacancy_save1'])->name('vac_save'); |
576 | Route::get('cabinet/vacancie_danger', [EmployerController::class, 'cabinet_vacancie_danger'])->name('cabinet_vacancie_danger'); | 580 | Route::get('cabinet/vacancie_danger', [EmployerController::class, 'cabinet_vacancie_danger'])->name('cabinet_vacancie_danger'); |
577 | 581 | ||
578 | 582 | ||
579 | Route::get('selected_people', [EmployerController::class, 'selected_people'])->name('selected_people'); | 583 | Route::get('selected_people', [EmployerController::class, 'selected_people'])->name('selected_people'); |
580 | 584 | ||
581 | // 3 страница - Мои вакансии | 585 | // 3 страница - Мои вакансии |
582 | Route::get('cabinet/vacancy_list', [EmployerController::class, 'vacancy_list'])->name('vacancy_list'); | 586 | Route::get('cabinet/vacancy_list', [EmployerController::class, 'vacancy_list'])->name('vacancy_list'); |
583 | Route::get('cabinet/vacancy/{ad_employer}', [EmployerController::class, 'vacancy_edit'])->name('vacancy_edit'); | 587 | Route::get('cabinet/vacancy/{ad_employer}', [EmployerController::class, 'vacancy_edit'])->name('vacancy_edit'); |
584 | Route::get('cabinet/vacancy-delete/{ad_employer}', [EmployerController::class, 'vacancy_delete'])->name('vacancy_delete'); | 588 | Route::get('cabinet/vacancy-delete/{ad_employer}', [EmployerController::class, 'vacancy_delete'])->name('vacancy_delete'); |
585 | Route::get('cabinet/vacancy-up/{ad_employer}', [EmployerController::class, 'vacancy_up'])->name('vacancy_up'); | 589 | Route::get('cabinet/vacancy-up/{ad_employer}', [EmployerController::class, 'vacancy_up'])->name('vacancy_up'); |
586 | Route::get('cabinet/vacancy-eye/{ad_employer}/{status}', [EmployerController::class, 'vacancy_eye'])->name('vacancy_eye'); | 590 | Route::get('cabinet/vacancy-eye/{ad_employer}/{status}', [EmployerController::class, 'vacancy_eye'])->name('vacancy_eye'); |
587 | Route::get('cabinet/vacancy-edit/{ad_employer}', [EmployerController::class, 'vacancy_edit'])->name('vacancy_edit'); | 591 | Route::get('cabinet/vacancy-edit/{ad_employer}', [EmployerController::class, 'vacancy_edit'])->name('vacancy_edit'); |
588 | Route::post('cabinet/vacancy-edit/{ad_employer}', [EmployerController::class, 'vacancy_save_me'])->name('vacancy_save_me'); | 592 | Route::post('cabinet/vacancy-edit/{ad_employer}', [EmployerController::class, 'vacancy_save_me'])->name('vacancy_save_me'); |
589 | 593 | ||
590 | // 4.1Ю. | 594 | // 4.1Ю. |
591 | Route::get('cabinet/ad_jobs/create/{ad_employer}', [Ad_jobsController::class, 'add_job_in_vac'])->name('add_job_in_vac'); | 595 | Route::get('cabinet/ad_jobs/create/{ad_employer}', [Ad_jobsController::class, 'add_job_in_vac'])->name('add_job_in_vac'); |
592 | Route::post('cabinet/ad_jobs/create', [Ad_jobsController::class, 'add_job_in_vac_save'])->name('add_job_in_vac_save'); | 596 | Route::post('cabinet/ad_jobs/create', [Ad_jobsController::class, 'add_job_in_vac_save'])->name('add_job_in_vac_save'); |
593 | Route::get('cabinet/ad_jobs/edit/{ad_job}/{ad_employer}', [Ad_jobsController::class, 'edit_job_in_vac'])->name('edit_job_in_vac'); | 597 | Route::get('cabinet/ad_jobs/edit/{ad_job}/{ad_employer}', [Ad_jobsController::class, 'edit_job_in_vac'])->name('edit_job_in_vac'); |
594 | Route::post('cabinet/ad_jobs/edit/{ad_job}', [Ad_jobsController::class, 'edit_job_in_vac_save'])->name('edit_job_in_vac_save'); | 598 | Route::post('cabinet/ad_jobs/edit/{ad_job}', [Ad_jobsController::class, 'edit_job_in_vac_save'])->name('edit_job_in_vac_save'); |
595 | Route::get('cabinet/ad_jobs/delete/{ad_job}', [Ad_jobsController::class, 'delete_job_in_vac'])->name('delete_job_in_vac'); | 599 | Route::get('cabinet/ad_jobs/delete/{ad_job}', [Ad_jobsController::class, 'delete_job_in_vac'])->name('delete_job_in_vac'); |
596 | 600 | ||
597 | // 4 страница - Отклики на вакансии | 601 | // 4 страница - Отклики на вакансии |
598 | Route::get('cabinet/answers/{employer}', [EmployerController::class, 'answers'])->name('answers'); | 602 | Route::get('cabinet/answers/{employer}', [EmployerController::class, 'answers'])->name('answers'); |
599 | Route::get('cabinet/status/{employer}', [EmployerController::class, 'supple_status2'])->name('supple'); | 603 | Route::get('cabinet/status/{employer}', [EmployerController::class, 'supple_status2'])->name('supple'); |
600 | Route::get('status/{employer}/{ad_response}/{flag}', [EmployerController::class, 'supple_status'])->name('status_msg'); | 604 | Route::get('status/{employer}/{ad_response}/{flag}', [EmployerController::class, 'supple_status'])->name('status_msg'); |
601 | 605 | ||
602 | // 5 страница - Сообщения | 606 | // 5 страница - Сообщения |
603 | Route::get('cabinet/messages/{type_message}', [EmployerController::class, 'messages'])->name('messages'); | 607 | Route::get('cabinet/messages/{type_message}', [EmployerController::class, 'messages'])->name('messages'); |
604 | Route::get('cabinet/dialog/{user1}/{user2}', [EmployerController::class, 'dialog'])->name('dialog'); | 608 | Route::get('cabinet/dialog/{user1}/{user2}', [EmployerController::class, 'dialog'])->name('dialog'); |
605 | Route::post('cabinet/send-message', [EmployerController::class, 'send_message'])->name('send_message'); | 609 | Route::post('cabinet/send-message', [EmployerController::class, 'send_message'])->name('send_message'); |
606 | Route::post('test123', [EmployerController::class, 'test123'])->name('test123'); | 610 | Route::post('test123', [EmployerController::class, 'test123'])->name('test123'); |
607 | 611 | ||
608 | // 6 страница - Избранный | 612 | // 6 страница - Избранный |
609 | Route::get('cabinet/favorites', [EmployerController::class, 'favorites'])->name('favorites'); | 613 | Route::get('cabinet/favorites', [EmployerController::class, 'favorites'])->name('favorites'); |
610 | 614 | ||
611 | //7 страница - База данных | 615 | //7 страница - База данных |
612 | Route::get('cabinet/bd', [EmployerController::class, 'bd'])->name('bd'); | 616 | Route::get('cabinet/bd', [EmployerController::class, 'bd'])->name('bd'); |
613 | 617 | ||
614 | //8 страница - База резюме | 618 | //8 страница - База резюме |
615 | Route::get('cabinet/bd-tupe', [EmployerController::class, 'bd_tupe'])->name('bd-tupe'); | 619 | Route::get('cabinet/bd-tupe', [EmployerController::class, 'bd_tupe'])->name('bd-tupe'); |
616 | 620 | ||
617 | // 9 рассылка сообщений | 621 | // 9 рассылка сообщений |
618 | Route::get('cabinet/send-all-messages', [EmployerController::class, 'send_all_messages'])->name('send_all_messages'); | 622 | Route::get('cabinet/send-all-messages', [EmployerController::class, 'send_all_messages'])->name('send_all_messages'); |
619 | Route::post('cabinet/send-all-messages/send', [EmployerController::class, 'send_all_post'])->name('send_all_post'); | 623 | Route::post('cabinet/send-all-messages/send', [EmployerController::class, 'send_all_post'])->name('send_all_post'); |
620 | 624 | ||
621 | // 10 страница FAQ вопросы | 625 | // 10 страница FAQ вопросы |
622 | Route::get('cabinet/faq', [EmployerController::class, 'faq'])->name('faq'); | 626 | Route::get('cabinet/faq', [EmployerController::class, 'faq'])->name('faq'); |
623 | 627 | ||
624 | // 11 страница - Настройка уведомлений | 628 | // 11 страница - Настройка уведомлений |
625 | Route::get('cabinet/subscribe', [EmployerController::class, 'subscribe'])->name('subscribe'); | 629 | Route::get('cabinet/subscribe', [EmployerController::class, 'subscribe'])->name('subscribe'); |
626 | Route::get('cabinet/subscribe/save', [EmployerController::class, 'save_subscribe'])->name('save_subscribe'); | 630 | Route::get('cabinet/subscribe/save', [EmployerController::class, 'save_subscribe'])->name('save_subscribe'); |
627 | 631 | ||
628 | // 12 страница - Сменить пароль | 632 | // 12 страница - Сменить пароль |
629 | Route::get('cabinet/password-reset', [EmployerController::class, 'password_reset'])->name('password_reset'); | 633 | Route::get('cabinet/password-reset', [EmployerController::class, 'password_reset'])->name('password_reset'); |
630 | Route::get('cabinet/password-reset/new', [EmployerController::class, 'new_password'])->name('new_password'); | 634 | Route::get('cabinet/password-reset/new', [EmployerController::class, 'new_password'])->name('new_password'); |
631 | 635 | ||
632 | // 13 страница - Удаление профиля | 636 | // 13 страница - Удаление профиля |
633 | Route::get('cabinet/delete-people', [EmployerController::class, 'delete_people'])->name('delete_people'); | 637 | Route::get('cabinet/delete-people', [EmployerController::class, 'delete_people'])->name('delete_people'); |
634 | Route::get('cabinet/action-delete-people', [EmployerController::class, 'action_delete_user'])->name('action_delete_user'); | 638 | Route::get('cabinet/action-delete-people', [EmployerController::class, 'action_delete_user'])->name('action_delete_user'); |
635 | Route::get('cabinet/action-ajax-delete-people', [EmployerController::class, 'ajax_delete_user'])->name('ajax_delete_user'); | 639 | Route::get('cabinet/action-ajax-delete-people', [EmployerController::class, 'ajax_delete_user'])->name('ajax_delete_user'); |
636 | 640 | ||
637 | // Отправил сообщение | 641 | // Отправил сообщение |
638 | Route::post('сообщение/', [EmployerController::class, 'new_message'])->name('new_message'); | 642 | Route::post('сообщение/', [EmployerController::class, 'new_message'])->name('new_message'); |
639 | }); | 643 | }); |
640 | 644 | ||
641 | Route::get('TestWorker', [WorkerController::class, 'TestWorker'])->name('TestWorker'); | 645 | Route::get('TestWorker', [WorkerController::class, 'TestWorker'])->name('TestWorker'); |
642 | 646 | ||
643 | 647 |