Commit 00652ea5794c5fcfdfd58d259a3aecdedf5983f6

Authored by Андрей Ларионов
1 parent 4452df3267

Оптимизация запросов БД, справочник образование, модификация админки по просьбе заказчика

Showing 26 changed files with 736 additions and 31 deletions Inline Diff

app/Http/Controllers/Admin/Ad_EmployersController.php
1 <?php 1 <?php
2 2
3 namespace App\Http\Controllers\Admin; 3 namespace App\Http\Controllers\Admin;
4 4
5 use App\Http\Controllers\Controller; 5 use App\Http\Controllers\Controller;
6 use App\Models\Ad_employer; 6 use App\Models\Ad_employer;
7 use App\Models\User; 7 use App\Models\User;
8 use Illuminate\Http\Request; 8 use Illuminate\Http\Request;
9 use Illuminate\Support\Facades\Auth; 9 use Illuminate\Support\Facades\Auth;
10 10
11 class Ad_EmployersController extends Controller 11 class Ad_EmployersController extends Controller
12 { 12 {
13 /** 13 /**
14 * Display a listing of the resource. 14 * Display a listing of the resource.
15 * 15 *
16 * @return \Illuminate\Http\Response 16 * @return \Illuminate\Http\Response
17 */ 17 */
18 public function index(Request $request) 18 public function index(Request $request)
19 { 19 {
20 $title = 'Админка - Вакансии работодателей'; 20 $title = 'Админка - Вакансии работодателей';
21 $ad_employers = Ad_employer::where('is_remove', '0')->paginate(15); 21 $ad_employers = Ad_employer::with('employer')->with('jobs')->where('is_remove', '0')->paginate(15);
22 22
23 return view('admin.ad_employers.index', compact('ad_employers', 'title')); 23 return view('admin.ad_employers.index', compact('ad_employers', 'title'));
24 24
25 } 25 }
26 26
27 /** 27 /**
28 * Show the form for creating a new resource. 28 * Show the form for creating a new resource.
29 * 29 *
30 * @return \Illuminate\Http\Response 30 * @return \Illuminate\Http\Response
31 */ 31 */
32 public function create() 32 public function create()
33 { 33 {
34 // 34 //
35 } 35 }
36 36
37 /** 37 /**
38 * Store a newly created resource in storage. 38 * Store a newly created resource in storage.
39 * 39 *
40 * @param \Illuminate\Http\Request $request 40 * @param \Illuminate\Http\Request $request
41 * @return \Illuminate\Http\Response 41 * @return \Illuminate\Http\Response
42 */ 42 */
43 public function store(Request $request) 43 public function store(Request $request)
44 { 44 {
45 // 45 //
46 } 46 }
47 47
48 /** 48 /**
49 * Display the specified resource. 49 * Display the specified resource.
50 * 50 *
51 * @param \App\Models\Ad_employer $ad_employer 51 * @param \App\Models\Ad_employer $ad_employer
52 * @return \Illuminate\Http\Response 52 * @return \Illuminate\Http\Response
53 */ 53 */
54 public function show(Ad_employer $ad_employer) 54 public function show(Ad_employer $ad_employer)
55 { 55 {
56 // 56 //
57 } 57 }
58 58
59 /** 59 /**
60 * Show the form for editing the specified resource. 60 * Show the form for editing the specified resource.
61 * 61 *
62 * @param \App\Models\Ad_employer $ad_employer 62 * @param \App\Models\Ad_employer $ad_employer
63 * @return \Illuminate\Http\Response 63 * @return \Illuminate\Http\Response
64 */ 64 */
65 public function edit(Ad_employer $ad_employer) 65 public function edit(Ad_employer $ad_employer)
66 { 66 {
67 // 67 //
68 } 68 }
69 69
70 /** 70 /**
71 * Update the specified resource in storage. 71 * Update the specified resource in storage.
72 * 72 *
73 * @param \Illuminate\Http\Request $request 73 * @param \Illuminate\Http\Request $request
74 * @param \App\Models\Ad_employer $ad_employer 74 * @param \App\Models\Ad_employer $ad_employer
75 * @return \Illuminate\Http\Response 75 * @return \Illuminate\Http\Response
76 */ 76 */
77 public function update(Request $request, Ad_employer $ad_employer) 77 public function update(Request $request, Ad_employer $ad_employer)
78 { 78 {
79 // 79 //
80 } 80 }
81 81
82 /** 82 /**
83 * Remove the specified resource from storage. 83 * Remove the specified resource from storage.
84 * 84 *
85 * @param \App\Models\Ad_employer $ad_employer 85 * @param \App\Models\Ad_employer $ad_employer
86 * @return \Illuminate\Http\Response 86 * @return \Illuminate\Http\Response
87 */ 87 */
88 public function destroy(Ad_employer $ad_employer) 88 public function destroy(Ad_employer $ad_employer)
89 { 89 {
90 // 90 //
91 } 91 }
92 } 92 }
93 93
app/Http/Controllers/Admin/CategoryEmpController.php
1 <?php 1 <?php
2 2
3 namespace App\Http\Controllers\Admin; 3 namespace App\Http\Controllers\Admin;
4 4
5 use App\Http\Controllers\Controller; 5 use App\Http\Controllers\Controller;
6 use App\Http\Requests\CategoryEmpRequest;
6 use App\Models\CategoryEmp; 7 use App\Models\CategoryEmp;
7 use Illuminate\Http\Request; 8 use Illuminate\Http\Request;
8 9
9 class CategoryEmpController extends Controller 10 class CategoryEmpController extends Controller
10 { 11 {
11 /** 12 /**
12 * Display a listing of the resource. 13 * Display a listing of the resource.
13 * 14 *
14 * @return \Illuminate\Http\Response 15 * @return \Illuminate\Http\Response
15 */ 16 */
16 public function index() 17 public function index()
17 { 18 {
18 $category = CategoryEmp::query()->active()->paginate(15); 19 $category = CategoryEmp::query()->active()->paginate(15);
19 return view('admin.category-emp.index', compact('category')); 20 return view('admin.category-emp.index', compact('category'));
20 } 21 }
21 22
22 /** 23 /**
23 * Show the form for creating a new resource. 24 * Show the form for creating a new resource.
24 * 25 *
25 * @return \Illuminate\Http\Response 26 * @return \Illuminate\Http\Response
26 */ 27 */
27 public function create() 28 public function create()
28 { 29 {
29 return view('admin.category-emp.add'); 30 return view('admin.category-emp.add');
30 } 31 }
31 32
32 /** 33 /**
33 * Store a newly created resource in storage. 34 * Store a newly created resource in storage.
34 * 35 *
35 * @param \Illuminate\Http\Request $request 36 * @param \Illuminate\Http\Request $request
36 * @return \Illuminate\Http\Response 37 * @return \Illuminate\Http\Response
37 */ 38 */
38 public function store(Request $request) 39 public function store(CategoryEmpRequest $request)
39 { 40 {
40 CategoryEmp::create($request->all()); 41 CategoryEmp::create($request->all());
41 return redirect()->route('admin.category-emp.index'); 42 return redirect()->route('admin.category-emp.index');
42 } 43 }
43 44
44 /** 45 /**
45 * Display the specified resource. 46 * Display the specified resource.
46 * 47 *
47 * @param \App\Models\CategoryEmp $categoryEmp 48 * @param \App\Models\CategoryEmp $categoryEmp
48 * @return \Illuminate\Http\Response 49 * @return \Illuminate\Http\Response
49 */ 50 */
50 public function show(CategoryEmp $category_emp) 51 public function show(CategoryEmp $category_emp)
51 { 52 {
52 // 53 //
53 } 54 }
54 55
55 /** 56 /**
56 * Show the form for editing the specified resource. 57 * Show the form for editing the specified resource.
57 * 58 *
58 * @param \App\Models\CategoryEmp $categoryEmp 59 * @param \App\Models\CategoryEmp $categoryEmp
59 * @return \Illuminate\Http\Response 60 * @return \Illuminate\Http\Response
60 */ 61 */
61 public function edit(CategoryEmp $category_emp) 62 public function edit(CategoryEmp $category_emp)
62 { 63 {
63 return view('admin.category-emp.edit', compact('category_emp')); 64 return view('admin.category-emp.edit', compact('category_emp'));
64 } 65 }
65 66
66 /** 67 /**
67 * Update the specified resource in storage. 68 * Update the specified resource in storage.
68 * 69 *
69 * @param \Illuminate\Http\Request $request 70 * @param \Illuminate\Http\Request $request
70 * @param \App\Models\CategoryEmp $categoryEmp 71 * @param \App\Models\CategoryEmp $categoryEmp
71 * @return \Illuminate\Http\Response 72 * @return \Illuminate\Http\Response
72 */ 73 */
73 public function update(Request $request, CategoryEmp $category_emp) 74 public function update(CategoryEmpRequest $request, CategoryEmp $category_emp)
74 { 75 {
75 $category_emp->update($request->all()); 76 $category_emp->update($request->all());
76 return redirect()->route('admin.category-emp.index'); 77 return redirect()->route('admin.category-emp.index');
77 } 78 }
78 79
79 /** 80 /**
80 * Remove the specified resource from storage. 81 * Remove the specified resource from storage.
81 * 82 *
82 * @param \App\Models\CategoryEmp $categoryEmp 83 * @param \App\Models\CategoryEmp $categoryEmp
83 * @return \Illuminate\Http\Response 84 * @return \Illuminate\Http\Response
84 */ 85 */
85 public function destroy(CategoryEmp $category_emp) 86 public function destroy(CategoryEmp $category_emp)
86 { 87 {
87 /*if (Auth::user()->id == 1) { 88 /*if (Auth::user()->id == 1) {
88 $category->delete(); 89 $category->delete();
89 } else {*/ 90 } else {*/
90 $category_emp->update(['is_remove' => 1]); 91 $category_emp->update(['is_remove' => 1]);
91 //} 92 //}
92 return redirect()->route('admin.category-emp.index'); 93 return redirect()->route('admin.category-emp.index');
93 } 94 }
94 } 95 }
95 96
app/Http/Controllers/Admin/EducationController.php
File was created 1 <?php
2
3 namespace App\Http\Controllers\Admin;
4
5 use App\Http\Controllers\Controller;
6 use App\Http\Requests\EducationRequest;
7 use App\Models\Education;
8 use Illuminate\Http\Request;
9
10 class EducationController extends Controller
11 {
12 /**
13 * Display a listing of the resource.
14 *
15 * @return \Illuminate\Http\Response
16 */
17 public function index()
18 {
19 $education = Education::query()->active()->paginate(15);
20 return view('admin.education.index', compact('education'));
21 }
22
23 /**
24 * Show the form for creating a new resource.
25 *
26 * @return \Illuminate\Http\Response
27 */
28 public function create()
29 {
30 return view('admin.education.add');
31 }
32
33 /**
34 * Store a newly created resource in storage.
35 *
36 * @param \Illuminate\Http\Request $request
37 * @return \Illuminate\Http\Response
38 */
39 public function store(EducationRequest $request)
40 {
41 Education::create($request->all());
42 return redirect()->route('admin.education.index');
43 }
44
45 /**
46 * Display the specified resource.
47 *
48 * @param \App\Models\Education $education
49 * @return \Illuminate\Http\Response
50 */
51 public function show(Education $education)
52 {
53 //
54 }
55
56 /**
57 * Show the form for editing the specified resource.
58 *
59 * @param \App\Models\Education $education
60 * @return \Illuminate\Http\Response
61 */
62 public function edit(Education $education)
63 {
64 return view('admin.education.edit', compact('education'));
65 }
66
67 /**
68 * Update the specified resource in storage.
69 *
70 * @param \Illuminate\Http\Request $request
71 * @param \App\Models\Education $education
72 * @return \Illuminate\Http\Response
73 */
74 public function update(EducationRequest $request, Education $education)
75 {
76 $education->update($request->all());
77 return redirect()->route('admin.education.index');
78 }
79
80 /**
81 * Remove the specified resource from storage.
82 *
83 * @param \App\Models\Education $education
84 * @return \Illuminate\Http\Response
85 */
86 public function destroy(Education $education)
87 {
88 $education->update(['is_remove' => 1]);
89 return redirect()->route('admin.education.index');
90 }
91 }
92
app/Http/Controllers/Admin/EmployersController.php
1 <?php 1 <?php
2 2
3 namespace App\Http\Controllers\Admin; 3 namespace App\Http\Controllers\Admin;
4 4
5 use App\Http\Controllers\Controller; 5 use App\Http\Controllers\Controller;
6 use App\Models\Ad_employer; 6 use App\Models\Ad_employer;
7 use App\Models\Answer; 7 use App\Models\Answer;
8 use App\Models\CategoryEmp;
8 use App\Models\Employer; 9 use App\Models\Employer;
9 use App\Models\Static_ad; 10 use App\Models\Static_ad;
10 use App\Models\User; 11 use App\Models\User;
11 use Illuminate\Http\Request; 12 use Illuminate\Http\Request;
12 use Illuminate\Support\Facades\DB; 13 use Illuminate\Support\Facades\DB;
13 use Illuminate\Support\Facades\Storage; 14 use Illuminate\Support\Facades\Storage;
14 use Illuminate\Support\Facades\Validator; 15 use Illuminate\Support\Facades\Validator;
15 16
16 class EmployersController extends Controller 17 class EmployersController extends Controller
17 { 18 {
18 public function index(Request $request) { 19 public function index(Request $request) {
19 //$all_employer = User::where('is_worker', '0')->count(); 20 //$all_employer = User::where('is_worker', '0')->count();
20 21
21 if ($request->ajax()) { 22 if ($request->ajax()) {
22 $user = User::find($request->id); 23 $user = User::find($request->id);
23 $request->offsetUnset('id'); 24 $request->offsetUnset('id');
24 $user->update($request->all()); 25 $user->update($request->all());
25 } 26 }
26 27
27 /*$users = User::with('employers')->where('is_worker', '0'); 28 /*$users = User::with('employers')->where('is_worker', '0');
28 $find_key = ""; 29 $find_key = "";
29 if (isset($request->find)) { 30 if (isset($request->find)) {
30 $find_key = $request->find; 31 $find_key = $request->find;
31 $users = $users->where(function($query) use($find_key) { 32 $users = $users->where(function($query) use($find_key) {
32 $query->Where('name', 'LIKE', "%$find_key%") 33 $query->Where('name', 'LIKE', "%$find_key%")
33 ->orWhere('email', 'LIKE', "%$find_key%") 34 ->orWhere('email', 'LIKE', "%$find_key%")
34 ->orWhere('telephone', 'LIKE', "%$find_key%"); 35 ->orWhere('telephone', 'LIKE', "%$find_key%");
35 }); 36 });
36 }*/ 37 }*/
37 38
38 $users = User::select(['users.*','users.id as usr_id', 'emp.id as emp_id', 'emp.*'])->join('employers as emp','emp.user_id','users.id') 39 $users = User::with('employers')->select(['users.*','users.id as usr_id', 'emp.id as emp_id', 'emp.*'])->join('employers as emp','emp.user_id','users.id')
39 ->where('users.is_worker', '0'); 40 ->where('users.is_worker', '0');
40 $all_employer = $users->count(); 41 $all_employer = $users->count();
41 $find_key = ""; 42 $find_key = "";
42 if (isset($request->find)) { 43 if (isset($request->find)) {
43 $find_key = $request->find; 44 $find_key = $request->find;
44 $users = $users->where(function($query) use($find_key) { 45 $users = $users->where(function($query) use($find_key) {
45 $query->Where('users.name', 'LIKE', "%$find_key%") 46 $query->Where('users.name', 'LIKE', "%$find_key%")
46 ->orWhere('emp.email', 'LIKE', "%$find_key%") 47 ->orWhere('emp.email', 'LIKE', "%$find_key%")
47 ->orWhere('emp.telephone', 'LIKE', "%$find_key%"); 48 ->orWhere('emp.telephone', 'LIKE', "%$find_key%");
48 }); 49 });
49 } 50 }
50 51
51 //DB::enableQueryLog(); 52 //DB::enableQueryLog();
52 $users = $users->paginate(15); 53 $users = $users->paginate(15);
53 //dd(DB::getQueryLog()); 54 //dd(DB::getQueryLog());
54 55
55 if ($request->ajax()) { 56 if ($request->ajax()) {
56 return view('admin.employer.index_ajax', compact('users')); 57 return view('admin.employer.index_ajax', compact('users'));
57 } else { 58 } else {
58 return view('admin.employer.index', compact('users', 'find_key', 'all_employer')); 59 return view('admin.employer.index', compact('users', 'find_key', 'all_employer'));
59 } 60 }
60 } 61 }
61 62
62 public function form_update_employer(Employer $employer) { 63 public function form_update_employer(Employer $employer) {
63 return view('admin.employer.edit', compact('employer')); 64 $select_category = CategoryEmp::query()->active()->get();
65 return view('admin.employer.edit', compact('employer', 'select_category'));
64 } 66 }
65 67
66 public function update_employer(Employer $employer, Request $request) 68 public function update_employer(Employer $employer, Request $request)
67 { 69 {
68 $params = $request->all(); 70 $params = $request->all();
69 unset($params['logo']); 71 unset($params['logo']);
70 unset($params['telephone']); 72 unset($params['telephone']);
71 unset($params['email']); 73 unset($params['email']);
72 unset($params['address']); 74 unset($params['address']);
73 unset($params['site']); 75 unset($params['site']);
74 unset($params['status_hidden']); 76 unset($params['status_hidden']);
75 unset($params['oficial_status']); 77 unset($params['oficial_status']);
76 unset($params['social_is']); 78 unset($params['social_is']);
77 unset($params['sending_is']); 79 unset($params['sending_is']);
80 unset($params['category']);
81 unset($params['comment_admin']);
78 82
79 $rules = [ 83 $rules = [
80 'name' => 'required|string|max:255', 84 'name' => 'required|string|max:255',
81 ]; 85 ];
82 86
83 $messages = [ 87 $messages = [
84 'required' => 'Укажите обязательное поле «:attribute»', 88 'required' => 'Укажите обязательное поле «:attribute»',
85 'confirmed' => 'Пароли не совпадают', 89 'confirmed' => 'Пароли не совпадают',
86 'email' => 'Введите корректный email', 90 'email' => 'Введите корректный email',
87 'min' => [ 91 'min' => [
88 'string' => 'Поле «:attribute» должно быть не меньше :min символов', 92 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
89 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' 93 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
90 ], 94 ],
91 'max' => [ 95 'max' => [
92 'string' => 'Поле «:attribute» должно быть не больше :max символов', 96 'string' => 'Поле «:attribute» должно быть не больше :max символов',
93 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' 97 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
94 ], 98 ],
95 ]; 99 ];
96 100
97 $validator = Validator::make($params, $rules, $messages); 101 $validator = Validator::make($params, $rules, $messages);
98 102
99 if ($validator->fails()) { 103 if ($validator->fails()) {
100 return back()->withErrors($validator)->withInput(); //->route('admin.register') 104 return back()->withErrors($validator)->withInput(); //->route('admin.register')
101 105
102 } else { 106 } else {
103 107
104 //$user = User::find($employer->user_id); 108 //$user = User::find($employer->user_id);
105 $user_id = $employer->user_id; 109 $user_id = $employer->user_id;
106 $employer->telephone = $request->telephone; 110 $employer->telephone = $request->telephone;
107 $employer->email = $request->email; 111 $employer->email = $request->email;
108 $employer->address = $request->address; 112 $employer->address = $request->address;
109 $employer->site = $request->site; 113 $employer->site = $request->site;
110 $employer->text = $request->text; 114 $employer->text = $request->text;
111 $employer->status_hidden = $request->status_hidden; 115 $employer->status_hidden = $request->status_hidden;
112 $employer->oficial_status = $request->oficial_status; 116 $employer->oficial_status = $request->oficial_status;
113 $employer->social_is = $request->social_is; 117 $employer->social_is = $request->social_is;
114 $employer->sending_is = $request->sending_is; 118 $employer->sending_is = $request->sending_is;
119 $employer->category = $request->category;
120 $employer->comment_admin = $request->comment_admin;
115 121
116 if ($request->has('logo')) { 122 if ($request->has('logo')) {
117 if (!empty($employer->logo)) { 123 if (!empty($employer->logo)) {
118 Storage::delete($employer->logo); 124 Storage::delete($employer->logo);
119 } 125 }
120 $employer->logo = $request->file('logo')->store("employer/$user_id", 'public'); 126 $employer->logo = $request->file('logo')->store("employer/$user_id", 'public');
121 } 127 }
122 $employer->save(); 128 $employer->save();
123 129
124 $user = User::find($user_id); 130 $user = User::find($user_id);
125 $user->update($params); 131 $user->update($params);
126 132
127 return redirect()->route('admin.employer-profile', ['employer' => $employer->id]) 133 return redirect()->route('admin.employer-profile', ['employer' => $employer->id])
128 ->with('success', 'Данные были успешно сохранены'); 134 ->with('success', 'Данные были успешно сохранены');
129 } 135 }
130 } 136 }
131 137
138 // Удаление работодателя, вакансий и профиля юзера
139 public function delete_employer(Employer $employer, User $user) {
140 try {
141 if (!empty($employer)) {
142 $employer->ads()->delete();
143 if (!empty($employer->logo)) {
144 Storage::delete($employer->logo);
145 }
146 $employer->delete();
147 }
148 } finally {
149 $user->delete();
150 }
151
152 return redirect()->route('admin.employers')->with('success', 'Данные были удалены о работодателе');
153 }
154
132 // кабинет - отзывы о работодателе для модерации 155 // кабинет - отзывы о работодателе для модерации
133 public function answers(Request $request) { 156 public function answers(Request $request) {
134 if ($request->ajax()) { 157 if ($request->ajax()) {
135 $user = Answer::find($request->id); 158 $user = Answer::find($request->id);
136 $request->offsetUnset('id'); 159 $request->offsetUnset('id');
137 $user->update($request->all()); 160 $user->update($request->all());
138 } 161 }
139 162
140 $answers = Answer::query()->orderByDesc('id')->paginate(15); 163 $answers = Answer::query()->orderByDesc('id')->paginate(15);
141 164
142 if ($request->ajax()) { 165 if ($request->ajax()) {
143 return view('admin.answers.index_ajax', compact('answers')); 166 return view('admin.answers.index_ajax', compact('answers'));
144 } else { 167 } else {
145 return view('admin.answers.index', compact('answers')); 168 return view('admin.answers.index', compact('answers'));
146 } 169 }
147 } 170 }
148 171
149 // кабинет - статистика вакансий работодателя 172 // кабинет - статистика вакансий работодателя
150 public function static_ads(Request $request) { 173 public function static_ads(Request $request) {
151 $stat = Static_ad::with('ads'); 174 $stat = Static_ad::with('ads');
152 $ads = Ad_employer::query()->active()->OrderBy('id')->get(); 175 $ads = Ad_employer::query()->active()->OrderBy('id')->get();
153 $periods = Static_ad::query()->distinct('year_month')->select('year_month')->get(); 176 $periods = Static_ad::query()->distinct('year_month')->select('year_month')->get();
154 if ($request->ajax()) { 177 if ($request->ajax()) {
155 if (isset($request->ad_employer_id)) 178 if (isset($request->ad_employer_id))
156 if (!$request->ad_employer_id == "0") 179 if (!$request->ad_employer_id == "0")
157 $stat = $stat->Where('ad_employer_id', '=', $request->ad_employer_id); 180 $stat = $stat->Where('ad_employer_id', '=', $request->ad_employer_id);
158 if (isset($request->year_month)) { 181 if (isset($request->year_month)) {
159 if (!$request->year_month == "0") 182 if (!$request->year_month == "0")
160 $stat = $stat->Where('year_month', '=', $request->year_month); 183 $stat = $stat->Where('year_month', '=', $request->year_month);
161 } 184 }
162 } 185 }
163 186
164 $stat = $stat->OrderByDesc('year_month'); 187 $stat = $stat->OrderByDesc('year_month');
165 $stat = $stat->paginate(15); 188 $stat = $stat->paginate(15);
166 189
167 if ($request->ajax()) 190 if ($request->ajax())
168 return view('admin.static.index_ads_ajax', compact('stat')); 191 return view('admin.static.index_ads_ajax', compact('stat'));
169 else 192 else
170 return view('admin.static.index_ads', compact('stat', 'ads', 'periods')); 193 return view('admin.static.index_ads', compact('stat', 'ads', 'periods'));
171 194
172 } 195 }
173 196
174 197
175 } 198 }
176 199
app/Http/Controllers/Admin/GroupsController.php
1 <?php 1 <?php
2 2
3 namespace App\Http\Controllers\Admin; 3 namespace App\Http\Controllers\Admin;
4 4
5 use App\Http\Controllers\Controller; 5 use App\Http\Controllers\Controller;
6 use App\Models\Group_user; 6 use App\Models\Group_user;
7 use App\Models\Group_works; 7 use App\Models\Group_works;
8 use App\Models\User; 8 use App\Models\User;
9 use Illuminate\Database\Eloquent\Model; 9 use Illuminate\Database\Eloquent\Model;
10 use Illuminate\Http\Request; 10 use Illuminate\Http\Request;
11 use Illuminate\Support\Facades\Auth; 11 use Illuminate\Support\Facades\Auth;
12 use Illuminate\Support\Facades\Validator; 12 use Illuminate\Support\Facades\Validator;
13 13
14 class GroupsController extends Controller 14 class GroupsController extends Controller
15 { 15 {
16 public $limit = 15; 16 public $limit = 15;
17 17
18 // индексная страница 18 // индексная страница
19 public function index() { 19 public function index() {
20 $groups = Group_user::query()->active()->paginate(15); 20 $groups = Group_user::with('user')->with('ingroup')->active()->paginate(15);
21 return view('admin.groups.index', compact('groups')); 21 return view('admin.groups.index', compact('groups'));
22 } 22 }
23 23
24 // форма добавления группы 24 // форма добавления группы
25 public function add(Request $request) { 25 public function add(Request $request) {
26 /*$editor = Auth::user()->id; 26 /*$editor = Auth::user()->id;
27 $users = User::query()->active()->Offset(0)->limit($this->limit)->get(); 27 $users = User::query()->active()->Offset(0)->limit($this->limit)->get();
28 return view('admin.groups.add', compact('editor', 'users'));*/ 28 return view('admin.groups.add', compact('editor', 'users'));*/
29 $hide = false; 29 $hide = false;
30 $total = User::query()->active()->count(); 30 $total = User::query()->active()->count();
31 $amt = ceil($total / $this->limit); 31 $amt = ceil($total / $this->limit);
32 if ($this->limit >= $total) $hide = true; 32 if ($this->limit >= $total) $hide = true;
33 if ($request->ajax()) { 33 if ($request->ajax()) {
34 $page = intval($request->page); 34 $page = intval($request->page);
35 $page = (empty($page)) ? 1 : $page; 35 $page = (empty($page)) ? 1 : $page;
36 $start = ($page != 1) ? $page * $this->limit - $this->limit : 0; 36 $start = ($page != 1) ? $page * $this->limit - $this->limit : 0;
37 $users = User::query()->active()->Offset($start)->limit($this->limit)->get(); 37 $users = User::query()->active()->Offset($start)->limit($this->limit)->get();
38 return view('admin.groups.ajax_add', compact('users', 'amt')); 38 return view('admin.groups.ajax_add', compact('users', 'amt'));
39 39
40 } else { 40 } else {
41 $editor = Auth::user()->id; 41 $editor = Auth::user()->id;
42 $users = User::query()->active()->Offset(0)->limit($this->limit)->get(); 42 $users = User::query()->active()->Offset(0)->limit($this->limit)->get();
43 return view('admin.groups.add', compact('editor', 'users', 'amt', 'hide')); 43 return view('admin.groups.add', compact('editor', 'users', 'amt', 'hide'));
44 } 44 }
45 } 45 }
46 46
47 // форма сохранения добавленной группы 47 // форма сохранения добавленной группы
48 public function store(Request $request) { 48 public function store(Request $request) {
49 $rules = [ 49 $rules = [
50 'name_group' => 'required|min:3', 50 'name_group' => 'required|min:3',
51 ]; 51 ];
52 $messages = [ 52 $messages = [
53 'required' => 'Укажите обязательное поле', 53 'required' => 'Укажите обязательное поле',
54 ]; 54 ];
55 $validator = Validator::make($request->all(), $rules, $messages); 55 $validator = Validator::make($request->all(), $rules, $messages);
56 56
57 if ($validator->fails()) { 57 if ($validator->fails()) {
58 return redirect()->route('admin.add-group') 58 return redirect()->route('admin.add-group')
59 ->withErrors($validator); 59 ->withErrors($validator);
60 } else { 60 } else {
61 $id_group = Group_user::create($request->all())->id; 61 $id_group = Group_user::create($request->all())->id;
62 foreach ($request->usergroup as $user) { 62 foreach ($request->usergroup as $user) {
63 $people = new Group_works(); 63 $people = new Group_works();
64 $people->group_user_id = $id_group; 64 $people->group_user_id = $id_group;
65 $people->user_id = $user; 65 $people->user_id = $user;
66 $people->save(); 66 $people->save();
67 } 67 }
68 return redirect()->route('admin.groups') 68 return redirect()->route('admin.groups')
69 ->with('success', 'Данные были успешно сохранены'); 69 ->with('success', 'Данные были успешно сохранены');
70 } 70 }
71 return redirect()->route('admin.groups'); 71 return redirect()->route('admin.groups');
72 } 72 }
73 73
74 // форма редактирования группы 74 // форма редактирования группы
75 public function edit(Group_user $group, Request $request) { 75 public function edit(Group_user $group, Request $request) {
76 //https://snipp.ru/php/loading-scrolling 76 //https://snipp.ru/php/loading-scrolling
77 $hide = false; 77 $hide = false;
78 $total = User::query()->active()->count(); 78 $total = User::query()->active()->count();
79 $amt = ceil($total / $this->limit); 79 $amt = ceil($total / $this->limit);
80 if ($this->limit >= $total) $hide = true; 80 if ($this->limit >= $total) $hide = true;
81 81
82 if ($request->ajax()) { 82 if ($request->ajax()) {
83 $page = intval($request->page); 83 $page = intval($request->page);
84 $page = (empty($page)) ? 1 : $page; 84 $page = (empty($page)) ? 1 : $page;
85 $start = ($page != 1) ? $page * $this->limit - $this->limit : 0; 85 $start = ($page != 1) ? $page * $this->limit - $this->limit : 0;
86 $users = User::query()->active()->Offset($start)->limit($this->limit)->get(); 86 $users = User::query()->active()->Offset($start)->limit($this->limit)->get();
87 return view('admin.groups.ajax', compact('users', 'group', 'amt')); 87 return view('admin.groups.ajax', compact('users', 'group', 'amt'));
88 88
89 } else { 89 } else {
90 $editor = Auth::user()->id; 90 $editor = Auth::user()->id;
91 $users = User::query()->active()->Offset(0)->limit($this->limit)->get(); 91 $users = User::query()->active()->Offset(0)->limit($this->limit)->get();
92 return view('admin.groups.edit', compact('editor', 'group', 'users', 'amt', 'hide')); 92 return view('admin.groups.edit', compact('editor', 'group', 'users', 'amt', 'hide'));
93 } 93 }
94 } 94 }
95 95
96 // форма сохранения редактированной группы 96 // форма сохранения редактированной группы
97 public function update(Group_user $group, Request $request) { 97 public function update(Group_user $group, Request $request) {
98 $params = $request->all(); 98 $params = $request->all();
99 unset($params['usergroup']); 99 unset($params['usergroup']);
100 $rules = [ 100 $rules = [
101 'name_group' => 'required|min:3', 101 'name_group' => 'required|min:3',
102 ]; 102 ];
103 $messages = [ 103 $messages = [
104 'required' => 'Укажите обязательное поле', 104 'required' => 'Укажите обязательное поле',
105 ]; 105 ];
106 $validator = Validator::make($request->all(), $rules, $messages); 106 $validator = Validator::make($request->all(), $rules, $messages);
107 107
108 if ($validator->fails()) { 108 if ($validator->fails()) {
109 return redirect()->route('admin.edit-group', ['group' => $group->id]) 109 return redirect()->route('admin.edit-group', ['group' => $group->id])
110 ->withErrors($validator); 110 ->withErrors($validator);
111 } else { 111 } else {
112 $group->update($request->all()); 112 $group->update($request->all());
113 $group->ingroup()->sync($request->usergroup); 113 $group->ingroup()->sync($request->usergroup);
114 /*if ($request->usergroup->count()) { 114 /*if ($request->usergroup->count()) {
115 foreach ($request->usergroup as $us) { 115 foreach ($request->usergroup as $us) {
116 Group_works 116 Group_works
117 } 117 }
118 }*/ 118 }*/
119 119
120 return redirect()->route('admin.groups') 120 return redirect()->route('admin.groups')
121 ->with('success', 'Данные были успешно сохранены'); 121 ->with('success', 'Данные были успешно сохранены');
122 } 122 }
123 return redirect()->route('admin.groups'); 123 return redirect()->route('admin.groups');
124 } 124 }
125 125
126 public function destroy(Group_user $group) { 126 public function destroy(Group_user $group) {
127 $group->update(['is_remove' => 1]); 127 $group->update(['is_remove' => 1]);
128 128
129 return redirect()->route('admin.groups'); 129 return redirect()->route('admin.groups');
130 } 130 }
131 } 131 }
132 132
app/Http/Controllers/Admin/MsgAnswersController.php
1 <?php 1 <?php
2 2
3 namespace App\Http\Controllers\Admin; 3 namespace App\Http\Controllers\Admin;
4 4
5 use App\Http\Controllers\Controller; 5 use App\Http\Controllers\Controller;
6 use App\Models\Message; 6 use App\Models\Message;
7 use App\Models\User; 7 use App\Models\User;
8 use Illuminate\Http\Request; 8 use Illuminate\Http\Request;
9 use Illuminate\Support\Facades\Auth; 9 use Illuminate\Support\Facades\Auth;
10 use Illuminate\Support\Facades\DB; 10 use Illuminate\Support\Facades\DB;
11 use Illuminate\Support\Facades\Validator; 11 use Illuminate\Support\Facades\Validator;
12 12
13 class MsgAnswersController extends Controller 13 class MsgAnswersController extends Controller
14 { 14 {
15 public function messages() { 15 public function messages() {
16 $Msgs = Message::query()->orderByDesc('created_at')->paginate(25); 16 $Msgs = Message::with('user_from')->with('user_to')->with('response')->orderByDesc('created_at')->paginate(25);
17 17
18 return view('admin.messages', compact('Msgs')); 18 return view('admin.messages', compact('Msgs'));
19 } 19 }
20 20
21 public function admin_messages(Request $request) { 21 public function admin_messages(Request $request) {
22 if ($request->ajax()) { 22 if ($request->ajax()) {
23 $msg = Message::find($request->id); 23 $msg = Message::find($request->id);
24 $msg->flag_new = !($request->flag_new); 24 $msg->flag_new = !($request->flag_new);
25 $msg->save(); 25 $msg->save();
26 } 26 }
27 27
28 $id_admin = Auth::user()->id; 28 $id_admin = Auth::user()->id;
29 $users = User::query()->OrderBy('name')->get(); 29 $users = User::query()->OrderBy('name')->get();
30 30
31 $Msgs = Message::query()->where('user_id', '=', $id_admin) 31 $Msgs = Message::with('user_from')->with('user_to')->with('response')
32 ->where('user_id', '=', $id_admin)
32 ->orWhere('to_user_id', '=', $id_admin) 33 ->orWhere('to_user_id', '=', $id_admin)
33 ->orderByDesc('created_at')->paginate(5); 34 ->orderByDesc('created_at')->paginate(5);
34 35
35 if ($request->ajax()) 36 if ($request->ajax())
36 return view('admin.message.index_ajax', compact('Msgs', 'id_admin', 'users')); 37 return view('admin.message.index_ajax', compact('Msgs', 'id_admin', 'users'));
37 else 38 else
38 return view('admin.message.index', compact('Msgs', 'id_admin', 'users')); 39 return view('admin.message.index', compact('Msgs', 'id_admin', 'users'));
39 } 40 }
40 41
41 public function messages_sql(Request $request) { 42 public function messages_sql(Request $request) {
42 $id = Auth::user()->id; 43 $id = Auth::user()->id;
43 DB::enableQueryLog(); 44 DB::enableQueryLog();
44 //$query = DB::select('select * from users where id = :id', ['id' => 1]); 45 //$query = DB::select('select * from users where id = :id', ['id' => 1]);
45 $query = DB::select(DB::raw('SELECT u1.name as "To-user", u2.name as "From-user", m1.`text`, m1.created_at 46 $query = DB::select(DB::raw('SELECT u1.name as "To-user", u2.name as "From-user", m1.`text`, m1.created_at
46 FROM messages m1 47 FROM messages m1
47 JOIN (SELECT MAX(id) id FROM messages 48 JOIN (SELECT MAX(id) id FROM messages
48 GROUP BY LEAST(user_id, to_user_id), 49 GROUP BY LEAST(user_id, to_user_id),
49 GREATEST(user_id, to_user_id) 50 GREATEST(user_id, to_user_id)
50 ) m2 USING (id) 51 ) m2 USING (id)
51 JOIN users u1 ON u1.id = m1.user_id 52 JOIN users u1 ON u1.id = m1.user_id
52 JOIN users u2 ON u2.id = m1.to_user_id 53 JOIN users u2 ON u2.id = m1.to_user_id
53 Where ((m1.user_id = :uid) or (m1.to_user_id = :uid2)) 54 Where ((m1.user_id = :uid) or (m1.to_user_id = :uid2))
54 '), ['uid' => $id, 'uid2' => $id]); 55 '), ['uid' => $id, 'uid2' => $id]);
55 //dump(DB::getQueryLog()); 56 //dump(DB::getQueryLog());
56 dd($query); 57 dd($query);
57 return; 58 return;
58 } 59 }
59 60
60 public function admin_messages_post(Request $request) { 61 public function admin_messages_post(Request $request) {
61 $rules = [ 62 $rules = [
62 'title' => 'required|min:3|max:255', 63 'title' => 'required|min:3|max:255',
63 'text' => 'required|min:1' 64 'text' => 'required|min:1'
64 ]; 65 ];
65 66
66 $messages = [ 67 $messages = [
67 'required' => 'Поле не может быть пустым!', 68 'required' => 'Поле не может быть пустым!',
68 ]; 69 ];
69 70
70 $validator = Validator::make($request->all(), $rules, $messages); 71 $validator = Validator::make($request->all(), $rules, $messages);
71 72
72 if ($validator->fails()) { 73 if ($validator->fails()) {
73 return redirect()->route('admin.admin-messages')->withErrors($validator); 74 return redirect()->route('admin.admin-messages')->withErrors($validator);
74 } else { 75 } else {
75 $params = $request->all(); 76 $params = $request->all();
76 $id_admin = Auth::user()->id; 77 $id_admin = Auth::user()->id;
77 if ($request->has('file')) { 78 if ($request->has('file')) {
78 $params['file'] = $request->file('file')->store("upload/".$id_admin, 'public'); 79 $params['file'] = $request->file('file')->store("upload/".$id_admin, 'public');
79 } 80 }
80 Message::create($params); 81 Message::create($params);
81 return redirect()->route('admin.admin-messages'); 82 return redirect()->route('admin.admin-messages');
82 } 83 }
83 } 84 }
84 } 85 }
85 86
app/Http/Controllers/Admin/WorkersController.php
1 <?php 1 <?php
2 2
3 namespace App\Http\Controllers\Admin; 3 namespace App\Http\Controllers\Admin;
4 4
5 use App\Http\Controllers\Controller; 5 use App\Http\Controllers\Controller;
6 use App\Models\Company; 6 use App\Models\Company;
7 use App\Models\Job_title; 7 use App\Models\Job_title;
8 use App\Models\Static_worker; 8 use App\Models\Static_worker;
9 use App\Models\User; 9 use App\Models\User;
10 use App\Models\Worker; 10 use App\Models\Worker;
11 use Illuminate\Http\Request; 11 use Illuminate\Http\Request;
12 use Illuminate\Support\Facades\Storage; 12 use Illuminate\Support\Facades\Storage;
13 use Illuminate\Support\Facades\Validator; 13 use Illuminate\Support\Facades\Validator;
14 14
15 class WorkersController extends Controller 15 class WorkersController extends Controller
16 { 16 {
17 public function index(Request $request) { 17 public function index(Request $request) {
18 if ($request->ajax()) { 18 if ($request->ajax()) {
19 $user = User::find($request->id); 19 $user = User::find($request->id);
20 $request->offsetUnset('id'); 20 $request->offsetUnset('id');
21 $user->update($request->all()); 21 $user->update($request->all());
22 } 22 }
23 23
24 $users = User::where('is_worker', '1'); 24 $users = User::with('workers')->where('is_worker', '1');
25 $find_key = ""; 25 $find_key = "";
26 if (isset($request->find)) { 26 if (isset($request->find)) {
27 $find_key = $request->find; 27 $find_key = $request->find;
28 $users = $users->where(function($query) use($find_key) { 28 $users = $users->where(function($query) use($find_key) {
29 $query->Where('name_man', 'LIKE', "%$find_key%") 29 $query->Where('name_man', 'LIKE', "%$find_key%")
30 ->orWhere('email', 'LIKE', "%$find_key%") 30 ->orWhere('email', 'LIKE', "%$find_key%")
31 ->orWhere('telephone', 'LIKE', "%$find_key%"); 31 ->orWhere('telephone', 'LIKE', "%$find_key%");
32 }); 32 });
33 } 33 }
34 34
35 $users = $users->paginate(15); 35 $users = $users->paginate(15);
36 36
37 if ($request->ajax()) { 37 if ($request->ajax()) {
38 return view('admin.worker.index_ajax', compact('users')); 38 return view('admin.worker.index_ajax', compact('users'));
39 } else { 39 } else {
40 return view('admin.worker.index', compact('users', 'find_key')); 40 return view('admin.worker.index', compact('users', 'find_key'));
41 } 41 }
42 } 42 }
43 43
44 public function form_edit_worker(Worker $worker) { 44 public function form_edit_worker(Worker $worker) {
45 $job_titles = Job_title::query()->active()->orderBy('name')->get(); 45 $job_titles = Job_title::query()->active()->orderBy('name')->get();
46 46
47 $time_end_anketa = 'Бессрочно'; 47 $time_end_anketa = 'Бессрочно';
48 if (!empty($worker->updated_at)) { 48 if (!empty($worker->updated_at)) {
49 $long_days = Company::find(1)->time_resume; 49 $long_days = Company::find(1)->time_resume;
50 $time_end_anketa = date("d.m.Y H:i:s", strtotime($worker->updated_at . "+$long_days days")); 50 $time_end_anketa = date("d.m.Y H:i:s", strtotime($worker->updated_at . "+$long_days days"));
51 } 51 }
52 return view('admin.worker.edit', compact('worker', 'job_titles', 'time_end_anketa')); 52 return view('admin.worker.edit', compact('worker', 'job_titles', 'time_end_anketa'));
53 } 53 }
54 54
55 public function form_update_worker(Request $request, Worker $worker) 55 public function form_update_worker(Request $request, Worker $worker)
56 { 56 {
57 $params = $request->all(); 57 $params = $request->all();
58 58
59 $rules = [ 59 $rules = [
60 'email' => 'email|string|max:255', 60 'email' => 'email|string|max:255',
61 //'photo' => 'mimes:jpeg,jpg,png|max:15000', 61 //'photo' => 'mimes:jpeg,jpg,png|max:15000',
62 ]; 62 ];
63 63
64 $messages = [ 64 $messages = [
65 'required' => 'Укажите обязательное поле «:attribute»', 65 'required' => 'Укажите обязательное поле «:attribute»',
66 'confirmed' => 'Пароли не совпадают', 66 'confirmed' => 'Пароли не совпадают',
67 'email' => 'Введите корректный email', 67 'email' => 'Введите корректный email',
68 'min' => [ 68 'min' => [
69 'string' => 'Поле «:attribute» должно быть не меньше :min символов', 69 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
70 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт' 70 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
71 ], 71 ],
72 'max' => [ 72 'max' => [
73 'string' => 'Поле «:attribute» должно быть не больше :max символов', 73 'string' => 'Поле «:attribute» должно быть не больше :max символов',
74 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт' 74 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
75 ], 75 ],
76 ]; 76 ];
77 77
78 $validator = Validator::make($params, $rules, $messages); 78 $validator = Validator::make($params, $rules, $messages);
79 79
80 if ($validator->fails()) { 80 if ($validator->fails()) {
81 return back()->withErrors($validator)->withInput(); 81 return back()->withErrors($validator)->withInput();
82 } else { 82 } else {
83 $user_id = $worker->user_id; 83 $user_id = $worker->user_id;
84 if ($request->has('photo')) { 84 if ($request->has('photo')) {
85 if (!empty($worker->photo)) { 85 if (!empty($worker->photo)) {
86 Storage::delete($worker->photo); 86 Storage::delete($worker->photo);
87 } 87 }
88 if (!empty($request->photo)) 88 if (!empty($request->photo))
89 $params['photo'] = $request->file('photo')->store("workers/$user_id", 'public'); 89 $params['photo'] = $request->file('photo')->store("workers/$user_id", 'public');
90 } 90 }
91 $worker->update($params); 91 $worker->update($params);
92 92
93 return redirect()->route('admin.workers'); 93 return redirect()->route('admin.workers');
94 } 94 }
95 } 95 }
96 96
97 // кабинет - статистика работников 97 // кабинет - статистика работников
98 public function static_workers(Request $request) { 98 public function static_workers(Request $request) {
99 $stat = Static_worker::with('users'); 99 $stat = Static_worker::with('users');
100 //->join('users', 'users.id', '=', 'static_workers.user_id'); 100 //->join('users', 'users.id', '=', 'static_workers.user_id');
101 $users = User::query()->active()->OrderBy('id')->get(); 101 $users = User::query()->active()->OrderBy('id')->get();
102 $periods = Static_worker::query()->distinct('year_month')->select('year_month')->get(); 102 $periods = Static_worker::query()->distinct('year_month')->select('year_month')->get();
103 if ($request->ajax()) { 103 if ($request->ajax()) {
104 if (isset($request->user_id)) 104 if (isset($request->user_id))
105 if (!$request->user_id == "0") 105 if (!$request->user_id == "0")
106 $stat = $stat->Where('user_id', '=', $request->user_id); 106 $stat = $stat->Where('user_id', '=', $request->user_id);
107 if (isset($request->year_month)) { 107 if (isset($request->year_month)) {
108 if (!$request->year_month == "0") 108 if (!$request->year_month == "0")
109 $stat = $stat->Where('year_month', '=', $request->year_month); 109 $stat = $stat->Where('year_month', '=', $request->year_month);
110 } 110 }
111 } 111 }
112 112
113 $stat = $stat->OrderByDesc('year_month'); 113 $stat = $stat->OrderByDesc('year_month');
114 //->OrderBy('users.name'); 114 //->OrderBy('users.name');
115 //OrderBy('users.name')-> 115 //OrderBy('users.name')->
116 /*$stat->implode() loadMissing(['users' => function (Builder $query) { 116 /*$stat->implode() loadMissing(['users' => function (Builder $query) {
117 $query->orderBy('name', 'asc'); 117 $query->orderBy('name', 'asc');
118 }]);*/ 118 }]);*/
119 119
120 $stat = $stat->paginate(15); 120 $stat = $stat->paginate(15);
121 121
122 if ($request->ajax()) 122 if ($request->ajax())
123 return view('admin.static.index_workers_ajax', compact('stat')); 123 return view('admin.static.index_workers_ajax', compact('stat'));
124 else 124 else
125 return view('admin.static.index_workers', compact('stat', 'users', 'periods')); 125 return view('admin.static.index_workers', compact('stat', 'users', 'periods'));
126 126
127 } 127 }
128 128
129 } 129 }
130 130
app/Http/Requests/CategoryEmpRequest.php
File was created 1 <?php
2
3 namespace App\Http\Requests;
4
5 use Illuminate\Foundation\Http\FormRequest;
6
7 class CategoryEmpRequest extends FormRequest
8 {
9 /**
10 * Determine if the user is authorized to make this request.
11 *
12 * @return bool
13 */
14 public function authorize()
15 {
16 return true;
17 }
18
19 /**
20 * Get the validation rules that apply to the request.
21 *
22 * @return array<string, mixed>
23 */
24 public function rules()
25 {
26 return [
27 'name' => 'required|min:3|max:255',
28 ];
29 }
30
31 public function messages() {
32 return [
33 'required' => 'Поле :attribute обязательно для ввода',
34 'min' => [
35 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
36 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
37 ],
38 'max' => [
39 'string' => 'Поле «:attribute» должно быть не больше :max символов',
40 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
41 ],
42
43 ];
44 }
45 }
46
app/Http/Requests/EducationRequest.php
File was created 1 <?php
2
3 namespace App\Http\Requests;
4
5 use Illuminate\Foundation\Http\FormRequest;
6
7 class EducationRequest extends FormRequest
8 {
9 /**
10 * Determine if the user is authorized to make this request.
11 *
12 * @return bool
13 */
14 public function authorize()
15 {
16 return true;
17 }
18
19 /**
20 * Get the validation rules that apply to the request.
21 *
22 * @return array<string, mixed>
23 */
24 public function rules()
25 {
26 return [
27 'name' => 'required|min:3|max:255',
28 ];
29 }
30
31 public function messages() {
32 return [
33 'required' => 'Поле :attribute обязательно для ввода',
34 'min' => [
35 'string' => 'Поле «:attribute» должно быть не меньше :min символов',
36 'file' => 'Файл «:attribute» должен быть не меньше :min Кбайт'
37 ],
38 'max' => [
39 'string' => 'Поле «:attribute» должно быть не больше :max символов',
40 'file' => 'Файл «:attribute» должен быть не больше :max Кбайт'
41 ],
42
43 ];
44 }
45 }
46
app/Models/Education.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 Education extends Model
9 {
10 use HasFactory;
11
12 protected $fillable = [
13 'name',
14 'is_remove'
15 ];
16
17 public function scopeActive($query) {
18 return $query->where('is_remove', '=', '0');
19 }
20 }
21
app/Providers/MyServiceProvider.php
1 <?php 1 <?php
2 2
3 namespace App\Providers; 3 namespace App\Providers;
4 4
5 use App\Models\Job_title; 5 use App\Models\Job_title;
6 use Illuminate\Support\Facades\Auth; 6 use Illuminate\Support\Facades\Auth;
7 use Illuminate\Support\Facades\DB; 7 use Illuminate\Support\Facades\DB;
8 use Illuminate\Support\Facades\View; 8 use Illuminate\Support\Facades\View;
9 use Illuminate\Support\ServiceProvider; 9 use Illuminate\Support\ServiceProvider;
10 10
11 class MyServiceProvider extends ServiceProvider 11 class MyServiceProvider extends ServiceProvider
12 { 12 {
13 /** 13 /**
14 * Register services. 14 * Register services.
15 * 15 *
16 * @return void 16 * @return void
17 */ 17 */
18 public function register() 18 public function register()
19 { 19 {
20 // 20 //
21 } 21 }
22 22
23 /** 23 /**
24 * Bootstrap services. 24 * Bootstrap services.
25 * 25 *
26 * @return void 26 * @return void
27 */ 27 */
28 public function boot() 28 public function boot()
29 { 29 {
30 $views = ['admin.job_titles.parent_id']; 30 $views = ['admin.job_titles.parent_id'];
31 View::composer($views, 31 View::composer($views,
32 function($view) 32 function($view)
33 { 33 {
34 static $items = null; 34 static $items = null;
35 35
36 if (is_null($items)) { 36 if (is_null($items)) {
37 $items = Job_title::query()-> 37 $items = Job_title::query()->
38 orderByDesc('sort')-> 38 orderByDesc('sort')->
39 orderBy('name')-> 39 orderBy('name')->
40 active()-> 40 active()->
41 get(); 41 get();
42 $parent = 0; 42 $parent = 0;
43 $view->with(['items' => $items, 'parent' => $parent]); 43 $view->with(['items' => $items, 'parent' => $parent]);
44 } else { 44 } else {
45 $view->with(['items' => $items]); 45 $view->with(['items' => $items]);
46 } 46 }
47 47
48 } 48 }
49 ); 49 );
50 50
51 $views2 = ['layout.admin']; 51 $views2 = ['layout.admin', 'admin.index'];
52 52
53 View::composer($views2, 53 View::composer($views2,
54 function($view){ 54 function($view){
55 $id = Auth::user()->id; 55 $id = Auth::user()->id;
56 $query = DB::select(DB::raw('SELECT count(*) as MsgCount 56 $query = DB::select(DB::raw('SELECT count(*) as MsgCount
57 FROM messages m1 57 FROM messages m1
58 Where ((m1.flag_new = 1) and (m1.to_user_id = :uid)) 58 Where ((m1.flag_new = 1) and (m1.to_user_id = :uid))
59 '), ['uid' => $id] 59 '), ['uid' => $id]
60 ); 60 );
61 61
62 $view->with(['MsgCount' => $query[0]->MsgCount]); 62 $view->with(['MsgCount' => $query[0]->MsgCount, 'UserId' => $id]);
63 } 63 }
64 ); 64 );
65 } 65 }
66 } 66 }
67 67
database/migrations/2023_10_03_114608_create_education_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('education', function (Blueprint $table) {
17 $table->id();
18 $table->string('name', 255)->nullable(false);
19 $table->boolean('is_remove')->default(false);
20 $table->timestamps();
21 });
22 }
23
24 /**
25 * Reverse the migrations.
26 *
27 * @return void
28 */
29 public function down()
30 {
31 Schema::dropIfExists('education');
32 }
33 };
34
database/migrations/2023_10_03_114801_alter_table_workers.php
File was created 1 <?php
2
3 use Illuminate\Database\Migrations\Migration;
4 use Illuminate\Database\Schema\Blueprint;
5 use Illuminate\Support\Facades\Schema;
6
7 return new class extends Migration
8 {
9 /**
10 * Run the migrations.
11 *
12 * @return void
13 */
14 public function up()
15 {
16 Schema::table('workers', function (Blueprint $table) {
17 $table->string('education', 255)->default('Не указано');
18 });
19 }
20
21 /**
22 * Reverse the migrations.
23 *
24 * @return void
25 */
26 public function down()
27 {
28 Schema::table('workers', function (Blueprint $table) {
29 $table->dropColumn('education');
30 });
31 }
32 };
33
resources/views/admin/education/add.blade.php
File was created 1 @extends('layout.admin', ['title' => 'Админка - Добавление образования'])
2
3 @section('content')
4 <form method="POST" action="{{ route('admin.education.store') }}">
5 @include('admin.education.form')
6 </form>
7 @endsection
8
resources/views/admin/education/edit.blade.php
File was created 1 @extends('layout.admin', ['title' => 'Админка - Редактирование образования'])
2
3 @section('content')
4 <form method="POST" action="{{ route('admin.education.update', ['education' => $education->id]) }}">
5 @include('admin.education.form')
6 </form>
7 @endsection
8
resources/views/admin/education/form.blade.php
File was created 1 @csrf
2
3 @isset($education)
4 @method('PUT')
5 @endisset
6
7 <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800">
8 <label class="block text-sm">
9 <span class="text-gray-700 dark:text-gray-400">Имя категории</span>
10 <input name="name" id="name"
11 class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
12 placeholder="Имя категории" value="{{ old('name') ?? $education->name ?? '' }}"
13 />
14 @error('name')
15 <span class="text-xs text-red-600 dark:text-red-400">
16 {{ $message }}
17 </span>
18 @enderror
19 </label><br>
20
21 <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4">
22 <div>
23 <button type="submit" class="px-3 py-1 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple">
24 Сохранить
25 </button>
26 <a href="{{ route('admin.education.index') }}"
27 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"
28 style="display: -webkit-inline-box; height: 30px!important;"
29 >Назад</a>
30 </div>
31 </div>
32 </div>
33
resources/views/admin/education/index.blade.php
File was created 1 @extends('layout.admin', ['title' => 'Админка - Справочник образование'])
2
3 @section('script')
4
5 @endsection
6
7 @section('search')
8
9 @endsection
10
11 @section('content')
12
13 <a href="{{ route('admin.education.create') }}" style="width: 195px" 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">
14 Добавить образование
15 </a>
16 <br>
17 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block">
18
19 <div class="w-full overflow-x-auto">
20 <table class="w-full whitespace-no-wrap">
21 <thead>
22 <tr
23 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"
24 >
25 <th class="px-4 py-3">№</th>
26 <th class="px-4 py-3">Название образования</th>
27 <th class="px-4 py-3">Дата создания</th>
28 <th class="px-4 py-3">Редактировать</th>
29 </tr>
30 </thead>
31 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
32 @foreach($education as $cat)
33 <tr class="text-gray-700 dark:text-gray-400">
34 <td class="px-4 py-3">
35 {{$cat->id}}
36 </td>
37 <td class="px-4 py-3">
38 {{$cat->name}}
39 </td>
40 <td class="px-4 py-3">
41 {{$cat->created_at}}
42 </td>
43 <td class="px-4 py-3 text-sm_">
44 <form action="{{ route('admin.education.destroy', ['education' => $cat->id]) }}" method="POST">
45 <a href="{{ route('admin.education.edit', ['education' => $cat->id]) }}">Изменить</a> |
46 @csrf
47 @method('DELETE')
48 <input class="btn btn-danger" type="submit" value="Удалить"/>
49 </form>
50 </td>
51 </tr>
52 @endforeach
53 </tbody>
54 </table>
55 </div>
56
57 <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800">
58 <?=$education->appends($_GET)->links('admin.pagginate'); ?>
59 </div>
60 </div>
61 @endsection
62
resources/views/admin/employer/edit.blade.php
1 @extends('layout.admin', ['title' => 'Админка - Редактирование работодателя']) 1 @extends('layout.admin', ['title' => 'Админка - Редактирование работодателя'])
2 2
3 @section('content') 3 @section('content')
4 <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"> 4 <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300">
5 Работодатель-пользователь: "{{$employer->users->name_man}} ({{$employer->user_id}})" 5 Работодатель-пользователь: "{{$employer->users->name_man}} ({{$employer->user_id}})"
6 </h4> 6 </h4>
7 <form method="POST" action="" enctype="multipart/form-data"> 7 <form method="POST" action="" enctype="multipart/form-data">
8 <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> 8 <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800">
9 @csrf 9 @csrf
10 <div class="tabs"> 10 <div class="tabs">
11 <input type="radio" name="tab-btn" id="tab-btn-1" value="" checked> 11 <input type="radio" name="tab-btn" id="tab-btn-1" value="" checked>
12 <label for="tab-btn-1">Персональная информация</label> 12 <label for="tab-btn-1">Персональная информация</label>
13 <input type="radio" name="tab-btn" id="tab-btn-2" value=""> 13 <input type="radio" name="tab-btn" id="tab-btn-2" value="">
14 <label for="tab-btn-2">Настройки</label> 14 <label for="tab-btn-2">Настройки</label>
15 <!--<input type="radio" name="tab-btn" id="tab-btn-3" value=""> 15 <!--<input type="radio" name="tab-btn" id="tab-btn-3" value="">
16 <label for="tab-btn-3">Вкладка 3</label>--> 16 <label for="tab-btn-3">Вкладка 3</label>-->
17 <div id="content-1"> 17 <div id="content-1">
18 18
19 <label class="block text-sm"> 19 <label class="block text-sm">
20 <span class="text-gray-700 dark:text-gray-400">Имя компании</span> 20 <span class="text-gray-700 dark:text-gray-400">Имя компании</span>
21 <input name="name" id="name" 21 <input name="name" id="name"
22 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" 22 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"
23 placeholder="Имя компании" value="{{ old('name') ?? $employer->users->name ?? '' }}" 23 placeholder="Имя компании" value="{{ old('name') ?? $employer->users->name ?? '' }}"
24 /> 24 />
25 @error('name') 25 @error('name')
26 <span class="text-xs text-red-600 dark:text-red-400"> 26 <span class="text-xs text-red-600 dark:text-red-400">
27 {{ $message }} 27 {{ $message }}
28 </span> 28 </span>
29 @enderror 29 @enderror
30 </label><br> 30 </label><br>
31 31
32 <label class="block text-sm"> 32 <label class="block text-sm">
33 <span class="text-gray-700 dark:text-gray-400">Email</span> 33 <span class="text-gray-700 dark:text-gray-400">Email</span>
34 <input name="email" id="email" disabled 34 <input name="email" id="email" disabled
35 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" 35 class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
36 placeholder="Почта" value="{{ old('email') ?? $employer->email ?? '' }}" 36 placeholder="Почта" value="{{ old('email') ?? $employer->email ?? '' }}"
37 /> 37 />
38 @error('email') 38 @error('email')
39 <span class="text-xs text-red-600 dark:text-red-400"> 39 <span class="text-xs text-red-600 dark:text-red-400">
40 {{ $message }} 40 {{ $message }}
41 </span> 41 </span>
42 @enderror 42 @enderror
43 </label><br> 43 </label><br>
44 44
45 <label class="block text-sm"> 45 <label class="block text-sm">
46 <span class="text-gray-700 dark:text-gray-400">Телефон</span> 46 <span class="text-gray-700 dark:text-gray-400">Телефон</span>
47 <input name="telephone" id="telephone" 47 <input name="telephone" id="telephone"
48 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" 48 class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
49 placeholder="Телефон" value="{{ old('telephone') ?? $employer->telephone ?? '' }}" 49 placeholder="Телефон" value="{{ old('telephone') ?? $employer->telephone ?? '' }}"
50 /> 50 />
51 @error('telephone') 51 @error('telephone')
52 <span class="text-xs text-red-600 dark:text-red-400"> 52 <span class="text-xs text-red-600 dark:text-red-400">
53 {{ $message }} 53 {{ $message }}
54 </span> 54 </span>
55 @enderror 55 @enderror
56 </label><br> 56 </label><br>
57 57
58 <label class="block text-sm"> 58 <label class="block text-sm">
59 <span class="text-gray-700 dark:text-gray-400">Адрес</span> 59 <span class="text-gray-700 dark:text-gray-400">Адрес</span>
60 <input name="address" id="address" 60 <input name="address" id="address"
61 class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" 61 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"
62 placeholder="Адрес" value="{{ old('address') ?? $employer->address ?? '' }}" 62 placeholder="Адрес" value="{{ old('address') ?? $employer->address ?? '' }}"
63 /> 63 />
64 @error('address') 64 @error('address')
65 <span class="text-xs text-red-600 dark:text-red-400"> 65 <span class="text-xs text-red-600 dark:text-red-400">
66 {{ $message }} 66 {{ $message }}
67 </span> 67 </span>
68 @enderror 68 @enderror
69 </label><br> 69 </label><br>
70 70
71 <label class="block text-sm"> 71 <label class="block text-sm">
72 <span class="text-gray-700 dark:text-gray-400">Сайт</span> 72 <span class="text-gray-700 dark:text-gray-400">Сайт</span>
73 <input name="site" id="site" 73 <input name="site" id="site"
74 class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" 74 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"
75 placeholder="Сайт" value="{{ old('site') ?? $employer->site ?? '' }}" 75 placeholder="Сайт" value="{{ old('site') ?? $employer->site ?? '' }}"
76 /> 76 />
77 @error('site') 77 @error('site')
78 <span class="text-xs text-red-600 dark:text-red-400"> 78 <span class="text-xs text-red-600 dark:text-red-400">
79 {{ $message }} 79 {{ $message }}
80 </span> 80 </span>
81 @enderror 81 @enderror
82 </label><br> 82 </label><br>
83 83
84 <label class="block text-sm"> 84 <label class="block text-sm">
85 <span class="text-gray-700 dark:text-gray-400">Лого</span> 85 <span class="text-gray-700 dark:text-gray-400">Лого</span>
86 86
87 <input name="logo" id="logo" type="file" 87 <input name="logo" id="logo" type="file"
88 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" 88 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"
89 placeholder="Лого" value="" 89 placeholder="Лого" value=""
90 /> 90 />
91 @isset($employer->logo) 91 @isset($employer->logo)
92 <img src="<?=asset(Storage::url($employer->logo))?>" width="150"/> 92 <img src="<?=asset(Storage::url($employer->logo))?>" width="150"/>
93 @endisset 93 @endisset
94 @error('logo') 94 @error('logo')
95 <span class="text-xs text-red-600 dark:text-red-400"> 95 <span class="text-xs text-red-600 dark:text-red-400">
96 {{ $message }} 96 {{ $message }}
97 </span> 97 </span>
98 @enderror 98 @enderror
99 </label><br> 99 </label><br>
100 100
101 <label class="block mt-4 text-sm"> 101 <label class="block mt-4 text-sm">
102 <span class="text-gray-700 dark:text-gray-400">Описание</span> 102 <span class="text-gray-700 dark:text-gray-400">Описание</span>
103 <textarea name="text" id="text" 103 <textarea name="text" id="text"
104 class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" 104 class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
105 rows="3" 105 rows="3"
106 placeholder="Описание компании" 106 placeholder="Описание компании"
107 >{{ old('text') ?? $employer->text ?? '' }}</textarea> 107 >{{ old('text') ?? $employer->text ?? '' }}</textarea>
108 </label> 108 </label>
109 109
110 <hr>
111
112 <label class="block mt-4 text-sm">
113 <span class="text-gray-700 dark:text-gray-400">Категории</span>
114
115 <select name="category" id="category" class="form-control">
116 @foreach($select_category as $cat)
117 <option value="{{ $cat->name }}"
118 @isset($employer)
119 @if($cat->name == $employer->category)
120 selected
121 @endif
122 @endisset
123 >{{ $cat->name }}</option>
124 @endforeach
125 </select>
126
127 @error('category')
128 <div class="alert alert-danger">{{ $message }}</div>
129 @enderror
130 </label>
131
132 <label class="block mt-4 text-sm">
133 <span class="text-gray-700 dark:text-gray-400">Комментарий админа</span>
134 <textarea name="comment_admin" id="comment_admin"
135 class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
136 rows="3"
137 placeholder="Комментарий админа"
138 >{{ old('comment_admin') ?? $employer->comment_admin ?? '' }}</textarea>
139 </label>
140
110 </div> 141 </div>
111 <div id="content-2"> 142 <div id="content-2">
112 <label class="block text-sm"> 143 <label class="block text-sm">
113 <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"> 144 <h4 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300">
114 Права работодателя: 145 Права работодателя:
115 </h4> 146 </h4>
116 <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Просмотр базы резюме </p> 147 <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Просмотр базы резюме </p>
117 <input type="hidden" name="is_lookin" value="0" /> 148 <input type="hidden" name="is_lookin" value="0" />
118 <input name="is_lookin" <? if ($employer->users->is_lookin) echo "checked";?> 149 <input name="is_lookin" <? if ($employer->users->is_lookin) echo "checked";?>
119 class="block mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray " 150 class="block mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray "
120 placeholder="" type="checkbox" value="1" 151 placeholder="" type="checkbox" value="1"
121 /><br> 152 /><br>
122 153
123 <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Отправка сообщений</p> 154 <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Отправка сообщений</p>
124 <input type="hidden" name="is_message" value="0" /> 155 <input type="hidden" name="is_message" value="0" />
125 <input name="is_message" id="is_message" <? if ($employer->users->is_message) echo "checked";?> 156 <input name="is_message" id="is_message" <? if ($employer->users->is_message) echo "checked";?>
126 class="block mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray " 157 class="block mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray "
127 placeholder="" type="checkbox" value="1" 158 placeholder="" type="checkbox" value="1"
128 /><br> 159 /><br>
129 160
130 <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Публикация вакансий</p> 161 <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Публикация вакансий</p>
131 <input type="hidden" name="is_public" value="0" /> 162 <input type="hidden" name="is_public" value="0" />
132 <input name="is_public" id="is_public" <? if ($employer->users->is_public) echo "checked";?> 163 <input name="is_public" id="is_public" <? if ($employer->users->is_public) echo "checked";?>
133 class="block mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray " 164 class="block mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray "
134 placeholder="" type="checkbox" value="1" 165 placeholder="" type="checkbox" value="1"
135 /><br> 166 /><br>
136 167
137 </label> 168 </label>
138 169
139 <label class="block text-sm"> 170 <label class="block text-sm">
140 <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Работодатель скрыт </p> 171 <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Работодатель скрыт </p>
141 <input type="hidden" name="status_hidden" value="0" /> 172 <input type="hidden" name="status_hidden" value="0" />
142 <input name="status_hidden" <? if ($employer->status_hidden) echo "checked";?> 173 <input name="status_hidden" <? if ($employer->status_hidden) echo "checked";?>
143 class="block mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray " 174 class="block mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray "
144 placeholder="" type="checkbox" value="1" 175 placeholder="" type="checkbox" value="1"
145 /> 176 />
146 </label><br> 177 </label><br>
147 178
148 <label class="block text-sm"> 179 <label class="block text-sm">
149 <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Компания подтверждена </p> 180 <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Компания подтверждена </p>
150 <input type="hidden" name="oficial_status" value="0" /> 181 <input type="hidden" name="oficial_status" value="0" />
151 <input name="oficial_status" <? if ($employer->oficial_status) echo "checked";?> 182 <input name="oficial_status" <? if ($employer->oficial_status) echo "checked";?>
152 class="block mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray " 183 class="block mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray "
153 placeholder="" type="checkbox" value="1" 184 placeholder="" type="checkbox" value="1"
154 /> 185 />
155 </label><br> 186 </label><br>
156 187
157 <label class="block text-sm"> 188 <label class="block text-sm">
158 <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Разрешение публикации в соц.сетях </p> 189 <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Разрешение публикации в соц.сетях </p>
159 <input type="hidden" name="social_is" value="0" /> 190 <input type="hidden" name="social_is" value="0" />
160 <input name="social_is" <? if ($employer->social_is) echo "checked";?> 191 <input name="social_is" <? if ($employer->social_is) echo "checked";?>
161 class="block mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray " 192 class="block mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray "
162 placeholder="" type="checkbox" value="1" 193 placeholder="" type="checkbox" value="1"
163 /> 194 />
164 </label><br> 195 </label><br>
165 196
166 <label class="block text-sm"> 197 <label class="block text-sm">
167 <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Рассылка </p> 198 <p class="text-gray-700 dark:text-gray-400" style="float:left; margin-right: 10px">Рассылка </p>
168 <input type="hidden" name="sending_is" value="0" /> 199 <input type="hidden" name="sending_is" value="0" />
169 <input name="sending_is" <? if ($employer->sending_is) echo "checked";?> 200 <input name="sending_is" <? if ($employer->sending_is) echo "checked";?>
170 class="block mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray " 201 class="block mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray "
171 placeholder="" type="checkbox" value="1" 202 placeholder="" type="checkbox" value="1"
172 /> 203 />
173 </label><br> 204 </label><br>
174 205
175 </div> 206 </div>
176 <div id="content-3"> 207 <div id="content-3">
177 Содержимое 3... 208 Содержимое 3...
178 </div> 209 </div>
179 </div> 210 </div>
180 <br> 211 <br>
181 <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> 212 <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4">
182 <div> 213 <div>
183 <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"> 214 <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">
184 Сохранить 215 Сохранить
185 </button> 216 </button>
186 <a href="{{ route('admin.employers') }}" 217 <a href="{{ route('admin.employers') }}"
187 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" 218 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"
188 style="display: -webkit-inline-box; height: 30px!important;" 219 style="display: -webkit-inline-box; height: 30px!important;"
189 >Назад</a> 220 >Назад</a>
190 221
191 </div> 222 </div>
192 <!--<div> 223 <!--<div>
193 <a href="">Флот</a> 224 <a href="">Флот</a>
194 </div> 225 </div>
195 <div> 226 <div>
196 <a href="">Вакансии</a> 227 <a href="">Вакансии</a>
197 </div> 228 </div>
198 <div> 229 <div>
199 <a href="">Контакты</a> 230 <a href="">Контакты</a>
200 </div>--> 231 </div>-->
201 </div> 232 </div>
202 </div> 233 </div>
203 </form> 234 </form>
204 <!-- 235 <!--
205 <label class="block mt-4 text-sm"> 236 <label class="block mt-4 text-sm">
206 <span class="text-gray-700 dark:text-gray-400"> 237 <span class="text-gray-700 dark:text-gray-400">
207 Requested Limit 238 Requested Limit
208 </span> 239 </span>
209 <select 240 <select
210 class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" 241 class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
211 > 242 >
212 <option>$1,000</option> 243 <option>$1,000</option>
213 <option>$5,000</option> 244 <option>$5,000</option>
214 <option>$10,000</option> 245 <option>$10,000</option>
215 <option>$25,000</option> 246 <option>$25,000</option>
216 </select> 247 </select>
217 </label> 248 </label>
218 249
219 <label class="block mt-4 text-sm"> 250 <label class="block mt-4 text-sm">
220 <span class="text-gray-700 dark:text-gray-400"> 251 <span class="text-gray-700 dark:text-gray-400">
221 Multiselect 252 Multiselect
222 </span> 253 </span>
223 <select 254 <select
224 class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-multiselect focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" 255 class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-multiselect focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
225 multiple 256 multiple
226 > 257 >
227 <option>Option 1</option> 258 <option>Option 1</option>
228 <option>Option 2</option> 259 <option>Option 2</option>
229 <option>Option 3</option> 260 <option>Option 3</option>
230 <option>Option 4</option> 261 <option>Option 4</option>
231 <option>Option 5</option> 262 <option>Option 5</option>
232 </select> 263 </select>
233 </label> 264 </label>
234 265
235 <label class="block mt-4 text-sm"> 266 <label class="block mt-4 text-sm">
236 <span class="text-gray-700 dark:text-gray-400">Message</span> 267 <span class="text-gray-700 dark:text-gray-400">Message</span>
237 <textarea 268 <textarea
238 class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" 269 class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
239 rows="3" 270 rows="3"
240 placeholder="Enter some long form content." 271 placeholder="Enter some long form content."
241 ></textarea> 272 ></textarea>
242 </label> 273 </label>
243 274
244 <div class="flex mt-6 text-sm"> 275 <div class="flex mt-6 text-sm">
245 <label class="flex items-center dark:text-gray-400"> 276 <label class="flex items-center dark:text-gray-400">
246 <input 277 <input
247 type="checkbox" 278 type="checkbox"
248 class="text-purple-600 form-checkbox focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" 279 class="text-purple-600 form-checkbox focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
249 /> 280 />
250 <span class="ml-2"> 281 <span class="ml-2">
251 I agree to the 282 I agree to the
252 <span class="underline">privacy policy</span> 283 <span class="underline">privacy policy</span>
253 </span> 284 </span>
254 </label> 285 </label>
255 </div> 286 </div>
256 </div> 287 </div>
257 288
258 <!-- Validation inputs --> 289 <!-- Validation inputs -->
259 <!--<h4 290 <!--<h4
260 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" 291 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
261 > 292 >
262 Validation 293 Validation
263 </h4> 294 </h4>
264 <div 295 <div
265 class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" 296 class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"
266 > 297 >
267 <!-- Invalid input --> 298 <!-- Invalid input -->
268 <!--<label class="block text-sm"> 299 <!--<label class="block text-sm">
269 <span class="text-gray-700 dark:text-gray-400"> 300 <span class="text-gray-700 dark:text-gray-400">
270 Invalid input 301 Invalid input
271 </span> 302 </span>
272 <input 303 <input
273 class="block w-full mt-1 text-sm border-red-600 dark:text-gray-300 dark:bg-gray-700 focus:border-red-400 focus:outline-none focus:shadow-outline-red form-input" 304 class="block w-full mt-1 text-sm border-red-600 dark:text-gray-300 dark:bg-gray-700 focus:border-red-400 focus:outline-none focus:shadow-outline-red form-input"
274 placeholder="Jane Doe" 305 placeholder="Jane Doe"
275 /> 306 />
276 <span class="text-xs text-red-600 dark:text-red-400"> 307 <span class="text-xs text-red-600 dark:text-red-400">
277 Your password is too short. 308 Your password is too short.
278 </span> 309 </span>
279 </label> 310 </label>
280 311
281 <!-- Valid input --> 312 <!-- Valid input -->
282 <!--<label class="block mt-4 text-sm"> 313 <!--<label class="block mt-4 text-sm">
283 <span class="text-gray-700 dark:text-gray-400"> 314 <span class="text-gray-700 dark:text-gray-400">
284 Valid input 315 Valid input
285 </span> 316 </span>
286 <input 317 <input
287 class="block w-full mt-1 text-sm border-green-600 dark:text-gray-300 dark:bg-gray-700 focus:border-green-400 focus:outline-none focus:shadow-outline-green form-input" 318 class="block w-full mt-1 text-sm border-green-600 dark:text-gray-300 dark:bg-gray-700 focus:border-green-400 focus:outline-none focus:shadow-outline-green form-input"
288 placeholder="Jane Doe" 319 placeholder="Jane Doe"
289 /> 320 />
290 <span class="text-xs text-green-600 dark:text-green-400"> 321 <span class="text-xs text-green-600 dark:text-green-400">
291 Your password is strong. 322 Your password is strong.
292 </span> 323 </span>
293 </label> 324 </label>
294 325
295 <!-- Helper text --> 326 <!-- Helper text -->
296 <!--<label class="block mt-4 text-sm"> 327 <!--<label class="block mt-4 text-sm">
297 <span class="text-gray-700 dark:text-gray-400"> 328 <span class="text-gray-700 dark:text-gray-400">
298 Helper text 329 Helper text
299 </span> 330 </span>
300 <input 331 <input
301 class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" 332 class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input"
302 placeholder="Jane Doe" 333 placeholder="Jane Doe"
303 /> 334 />
304 <span class="text-xs text-gray-600 dark:text-gray-400"> 335 <span class="text-xs text-gray-600 dark:text-gray-400">
305 Your password must be at least 6 characters long. 336 Your password must be at least 6 characters long.
306 </span> 337 </span>
307 </label> 338 </label>
308 </div> 339 </div>
309 340
310 <!-- Inputs with icons --> 341 <!-- Inputs with icons -->
311 <!--<h4 342 <!--<h4
312 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" 343 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
313 > 344 >
314 Icons 345 Icons
315 </h4> 346 </h4>
316 <div 347 <div
317 class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" 348 class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"
318 > 349 >
319 <label class="block text-sm"> 350 <label class="block text-sm">
320 <span class="text-gray-700 dark:text-gray-400">Icon left</span> 351 <span class="text-gray-700 dark:text-gray-400">Icon left</span>
321 <!-- focus-within sets the color for the icon when input is focused --> 352 <!-- focus-within sets the color for the icon when input is focused -->
322 <!--<div 353 <!--<div
323 class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" 354 class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400"
324 > 355 >
325 <input 356 <input
326 class="block w-full pl-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" 357 class="block w-full pl-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input"
327 placeholder="Jane Doe" 358 placeholder="Jane Doe"
328 /> 359 />
329 <div 360 <div
330 class="absolute inset-y-0 flex items-center ml-3 pointer-events-none" 361 class="absolute inset-y-0 flex items-center ml-3 pointer-events-none"
331 > 362 >
332 <svg 363 <svg
333 class="w-5 h-5" 364 class="w-5 h-5"
334 aria-hidden="true" 365 aria-hidden="true"
335 fill="none" 366 fill="none"
336 stroke-linecap="round" 367 stroke-linecap="round"
337 stroke-linejoin="round" 368 stroke-linejoin="round"
338 stroke-width="2" 369 stroke-width="2"
339 viewBox="0 0 24 24" 370 viewBox="0 0 24 24"
340 stroke="currentColor" 371 stroke="currentColor"
341 > 372 >
342 <path 373 <path
343 d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" 374 d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"
344 ></path> 375 ></path>
345 </svg> 376 </svg>
346 </div> 377 </div>
347 </div> 378 </div>
348 </label> 379 </label>
349 380
350 <label class="block mt-4 text-sm"> 381 <label class="block mt-4 text-sm">
351 <span class="text-gray-700 dark:text-gray-400">Icon right</span> 382 <span class="text-gray-700 dark:text-gray-400">Icon right</span>
352 <!-- focus-within sets the color for the icon when input is focused --> 383 <!-- focus-within sets the color for the icon when input is focused -->
353 <!--<div 384 <!--<div
354 class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400" 385 class="relative text-gray-500 focus-within:text-purple-600 dark:focus-within:text-purple-400"
355 > 386 >
356 <input 387 <input
357 class="block w-full pr-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" 388 class="block w-full pr-10 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input"
358 placeholder="Jane Doe" 389 placeholder="Jane Doe"
359 /> 390 />
360 <div 391 <div
361 class="absolute inset-y-0 right-0 flex items-center mr-3 pointer-events-none" 392 class="absolute inset-y-0 right-0 flex items-center mr-3 pointer-events-none"
362 > 393 >
363 <svg 394 <svg
364 class="w-5 h-5" 395 class="w-5 h-5"
365 aria-hidden="true" 396 aria-hidden="true"
366 fill="none" 397 fill="none"
367 stroke-linecap="round" 398 stroke-linecap="round"
368 stroke-linejoin="round" 399 stroke-linejoin="round"
369 stroke-width="2" 400 stroke-width="2"
370 viewBox="0 0 24 24" 401 viewBox="0 0 24 24"
371 stroke="currentColor" 402 stroke="currentColor"
372 > 403 >
373 <path 404 <path
374 d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" 405 d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"
375 ></path> 406 ></path>
376 </svg> 407 </svg>
377 </div> 408 </div>
378 </div> 409 </div>
379 </label> 410 </label>
380 </div> 411 </div>
381 412
382 <!-- Inputs with buttons --> 413 <!-- Inputs with buttons -->
383 <!--<h4 414 <!--<h4
384 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300" 415 class="mb-4 text-lg font-semibold text-gray-600 dark:text-gray-300"
385 > 416 >
386 Buttons 417 Buttons
387 </h4> 418 </h4>
388 <div 419 <div
389 class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800" 420 class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"
390 > 421 >
391 <label class="block text-sm"> 422 <label class="block text-sm">
392 <span class="text-gray-700 dark:text-gray-400"> 423 <span class="text-gray-700 dark:text-gray-400">
393 Button left 424 Button left
394 </span> 425 </span>
395 <div class="relative"> 426 <div class="relative">
396 <input 427 <input
397 class="block w-full pl-20 mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" 428 class="block w-full pl-20 mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input"
398 placeholder="Jane Doe" 429 placeholder="Jane Doe"
399 /> 430 />
400 <button 431 <button
401 class="absolute inset-y-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-l-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" 432 class="absolute inset-y-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-l-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"
402 > 433 >
403 Click 434 Click
404 </button> 435 </button>
405 </div> 436 </div>
406 </label> 437 </label>
407 438
408 <label class="block mt-4 text-sm"> 439 <label class="block mt-4 text-sm">
409 <span class="text-gray-700 dark:text-gray-400"> 440 <span class="text-gray-700 dark:text-gray-400">
410 Button right 441 Button right
411 </span> 442 </span>
412 <div 443 <div
413 class="relative text-gray-500 focus-within:text-purple-600" 444 class="relative text-gray-500 focus-within:text-purple-600"
414 > 445 >
415 <input 446 <input
416 class="block w-full pr-20 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input" 447 class="block w-full pr-20 mt-1 text-sm text-black dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray form-input"
417 placeholder="Jane Doe" 448 placeholder="Jane Doe"
418 /> 449 />
419 <button 450 <button
420 class="absolute inset-y-0 right-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-r-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple" 451 class="absolute inset-y-0 right-0 px-4 text-sm font-medium leading-5 text-white transition-colors duration-150 bg-purple-600 border border-transparent rounded-r-md active:bg-purple-600 hover:bg-purple-700 focus:outline-none focus:shadow-outline-purple"
421 > 452 >
422 Click 453 Click
423 </button> 454 </button>
424 </div> 455 </div>
425 </label> 456 </label>
426 </div>--> 457 </div>-->
427 @endsection 458 @endsection
428 459
resources/views/admin/employer/index.blade.php
1 @extends('layout.admin', ['title' => 'Админка - Работодатели']) 1 @extends('layout.admin', ['title' => 'Админка - Работодатели'])
2 2
3 @section('script') 3 @section('script')
4 <script> 4 <script>
5 $(document).ready(function() { 5 $(document).ready(function() {
6 $(document).on('click', '.checkban', function () { 6 $(document).on('click', '.checkban', function () {
7 var this_ = $(this); 7 var this_ = $(this);
8 var value = this_.val(); 8 var value = this_.val();
9 var ajax_block = $('#ajax_block'); 9 var ajax_block = $('#ajax_block');
10 var bool = 0; 10 var bool = 0;
11 11
12 if(this.checked){ 12 if(this.checked){
13 bool = 1; 13 bool = 1;
14 } else { 14 } else {
15 bool = 0; 15 bool = 0;
16 } 16 }
17 17
18 $.ajax({ 18 $.ajax({
19 type: "GET", 19 type: "GET",
20 url: "{{ url()->full()}}", 20 url: "{{ url()->full()}}",
21 data: "id=" + value + "&is_ban=" + bool, 21 data: "id=" + value + "&is_ban=" + bool,
22 success: function (data) { 22 success: function (data) {
23 console.log('Обновление таблицы пользователей '); 23 console.log('Обновление таблицы пользователей ');
24 //data = JSON.parse(data); 24 //data = JSON.parse(data);
25 //console.log(data); 25 //console.log(data);
26 ajax_block.html(data); 26 ajax_block.html(data);
27 }, 27 },
28 headers: { 28 headers: {
29 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 29 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
30 }, 30 },
31 error: function (data) { 31 error: function (data) {
32 console.log('Error: ' + data); 32 console.log('Error: ' + data);
33 } 33 }
34 }); 34 });
35 }); 35 });
36 36
37 }); 37 });
38 </script> 38 </script>
39 @endsection 39 @endsection
40 40
41 @section('search') 41 @section('search')
42 @include('admin.find') 42 @include('admin.find')
43 @endsection 43 @endsection
44 44
45 @section('content') 45 @section('content')
46 <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4"> 46 <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4">
47 47
48 <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"> 48 <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800">
49 <div class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500"> 49 <div class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500">
50 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 50 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
51 <path 51 <path
52 d="M13 6a3 3 0 11-6 0 3 3 0 016 0zM18 8a2 2 0 11-4 0 2 2 0 014 0zM14 15a4 4 0 00-8 0v3h8v-3zM6 8a2 2 0 11-4 0 2 2 0 014 0zM16 18v-3a5.972 5.972 0 00-.75-2.906A3.005 3.005 0 0119 15v3h-3zM4.75 12.094A5.973 5.973 0 004 15v3H1v-3a3 3 0 013.75-2.906z"></path> 52 d="M13 6a3 3 0 11-6 0 3 3 0 016 0zM18 8a2 2 0 11-4 0 2 2 0 014 0zM14 15a4 4 0 00-8 0v3h8v-3zM6 8a2 2 0 11-4 0 2 2 0 014 0zM16 18v-3a5.972 5.972 0 00-.75-2.906A3.005 3.005 0 0119 15v3h-3zM4.75 12.094A5.973 5.973 0 004 15v3H1v-3a3 3 0 013.75-2.906z"></path>
53 </svg> 53 </svg>
54 </div> 54 </div>
55 <div> 55 <div>
56 <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"> 56 <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400">
57 Всего работодателей 57 Всего работодателей
58 </p> 58 </p>
59 <p class="text-lg font-semibold text-gray-700 dark:text-gray-200"> 59 <p class="text-lg font-semibold text-gray-700 dark:text-gray-200">
60 {{ $all_employer }} 60 {{ $all_employer }}
61 </p> 61 </p>
62 </div> 62 </div>
63 </div> 63 </div>
64 </div> 64 </div>
65 65
66 66
67 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block"> 67 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block">
68 <div class="w-full overflow-x-auto"> 68 <div class="w-full overflow-x-auto">
69 <table class="w-full whitespace-no-wrap"> 69 <table class="w-full whitespace-no-wrap">
70 <thead> 70 <thead>
71 <tr 71 <tr
72 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" 72 class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800"
73 > 73 >
74 <th class="px-4 py-3">№</th> 74 <th class="px-4 py-3">№</th>
75 <th class="px-4 py-3">Название компании</th> 75 <th class="px-4 py-3">Название компании</th>
76 <th class="px-4 py-3">Email/Телефон</th> 76 <th class="px-4 py-3">Email/Телефон</th>
77 <th class="px-4 py-3">Имя</th> 77 <th class="px-4 py-3">Категория</th>
78 <th class="px-4 py-3">Комментарий</th>
78 <th class="px-4 py-3">Дата регистрации</th> 79 <th class="px-4 py-3">Дата регистрации</th>
79 <th class="px-4 py-3">Изменить</th> 80 <th class="px-4 py-3">Редакт.</th>
80 <th class="px-4 py-3">Бан</th>
81 </tr> 81 </tr>
82 </thead> 82 </thead>
83 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> 83 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
84 @foreach($users as $user) 84 @foreach($users as $user)
85 <tr class="text-gray-700 dark:text-gray-400"> 85 <tr class="text-gray-700 dark:text-gray-400">
86 <td class="px-4 py-3"> 86 <td class="px-4 py-3">
87 {{$user->id}} 87 {{$user->id}}
88 </td> 88 </td>
89 <td class="px-4 py-3"> 89 <td class="px-4 py-3">
90 {{$user->name}} 90 {{$user->name}}
91 </td> 91 </td>
92 <td class="px-4 py-3"> 92 <td class="px-4 py-3">
93 <div class="flex items-center text-sm"> 93 <div class="flex items-center text-sm">
94 <!--<div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> 94 <!--<div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
95 <div 95 <div
96 class="absolute inset-0 rounded-full shadow-inner" 96 class="absolute inset-0 rounded-full shadow-inner"
97 aria-hidden="true" 97 aria-hidden="true"
98 ></div> 98 ></div>
99 </div>--> 99 </div>-->
100 <div> 100 <div>
101 <p class="font-semibold">{{ empty($user->employers->email) ? $user->email : $user->employers->email }}</p> 101 <p class="font-semibold">{{ empty($user->employers->email) ? $user->email : $user->employers->email }}</p>
102 <p class="text-xs text-gray-600 dark:text-gray-400"> 102 <p class="text-xs text-gray-600 dark:text-gray-400">
103 {{ empty($user->employers->telephone) ? $user->telephone : $user->employers->telephone }} 103 {{ empty($user->employers->telephone) ? $user->telephone : $user->employers->telephone }}
104 </p> 104 </p>
105 </div> 105 </div>
106 </div> 106 </div>
107 107
108 </td> 108 </td>
109 <td class="px-4 py-3 text-sm"> 109 <td class="px-4 py-3 text-sm">
110 {{ $user->name_man }} ({{ $user->usr_id }}) 110 {{ $user->category }}
111 </td>
112 <td class="px-4 py-3 text-sm">
113 {{ $user->comment_admin }}
111 </td> 114 </td>
112 <td class="px-4 py-3 text-sm"> 115 <td class="px-4 py-3 text-sm">
113 {{ $user->created_at }} 116 {{ $user->created_at }}
114 </td> 117 </td>
115 <td class="px-4 py-3 text-sm"> 118 <td class="px-4 py-3 text-sm">
116 @if (!empty($user->emp_id)) 119 @if (!empty($user->emp_id))
117 <a href="{{ route('admin.employer-profile', ['employer' => $user->emp_id]) }}">Изменить</a> 120 <form action="{{ route('admin.delete-employer', ['employer' => $user->emp_id, 'user' => $user->user_id]) }}" method="POST">
121 <a href="{{ route('admin.employer-profile', ['employer' => $user->emp_id]) }}">Изменить</a> |
122 @csrf
123 @method('DELETE')
124 <input class="btn btn-danger" type="submit" value="Удалить"/>
125 </form>
118 @endif 126 @endif
119 </td> 127 </td>
120 <td class="px-4 py-3 text-sm"> 128 <!--<td class="px-4 py-3 text-sm">
121 @if ($user->usr_id > 1) 129 @if ($user->usr_id > 1)
122 <input type="checkbox" class="checkban" value="{{$user->usr_id}}" name="ban_{{$user->usr_id}}" {{ ($user->is_ban) ? "checked" : "" }}/> 130 <input type="checkbox" class="checkban" value="{{$user->usr_id}}" name="ban_{{$user->usr_id}}" {{ ($user->is_ban) ? "checked" : "" }}/>
123 @endif 131 @endif
124 </td> 132 </td>-->
125 </tr> 133 </tr>
126 @endforeach 134 @endforeach
127 </tbody> 135 </tbody>
128 </table> 136 </table>
129 </div> 137 </div>
130 138
131 <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800"> 139 <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800">
132 <?=$users->appends($_GET)->links('admin.pagginate'); ?> 140 <?=$users->appends($_GET)->links('admin.pagginate'); ?>
133 </div> 141 </div>
134 </div> 142 </div>
135 @endsection 143 @endsection
resources/views/admin/index.blade.php
1 @extends('layout.admin', ['title' => 'Админка - Главная страница']) 1 @extends('layout.admin', ['title' => 'Админка - Главная страница'])
2 2
3 @section('content') 3 @section('content')
4 <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4"> 4 <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4">
5 5
6 <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"> 6 <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800">
7 <div class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500"> 7 <div class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500">
8 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 8 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
9 <path 9 <path
10 d="M13 6a3 3 0 11-6 0 3 3 0 016 0zM18 8a2 2 0 11-4 0 2 2 0 014 0zM14 15a4 4 0 00-8 0v3h8v-3zM6 8a2 2 0 11-4 0 2 2 0 014 0zM16 18v-3a5.972 5.972 0 00-.75-2.906A3.005 3.005 0 0119 15v3h-3zM4.75 12.094A5.973 5.973 0 004 15v3H1v-3a3 3 0 013.75-2.906z"></path> 10 d="M13 6a3 3 0 11-6 0 3 3 0 016 0zM18 8a2 2 0 11-4 0 2 2 0 014 0zM14 15a4 4 0 00-8 0v3h8v-3zM6 8a2 2 0 11-4 0 2 2 0 014 0zM16 18v-3a5.972 5.972 0 00-.75-2.906A3.005 3.005 0 0119 15v3h-3zM4.75 12.094A5.973 5.973 0 004 15v3H1v-3a3 3 0 013.75-2.906z"></path>
11 </svg> 11 </svg>
12 </div> 12 </div>
13 <div> 13 <div>
14 <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"> 14 <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400">
15 Всего пользователей 15 Всего пользователей
16 </p> 16 </p>
17 <p class="text-lg font-semibold text-gray-700 dark:text-gray-200"> 17 <p class="text-lg font-semibold text-gray-700 dark:text-gray-200">
18 {{ $all_user }} 18 {{ $all_user }}
19 </p> 19 </p>
20 </div> 20 </div>
21 </div> 21 </div>
22 22
23 <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"> 23 <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800">
24 <div class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500"> 24 <div class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500">
25 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 25 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
26 <path 26 <path
27 fill-rule="evenodd" 27 fill-rule="evenodd"
28 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" 28 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"
29 clip-rule="evenodd" 29 clip-rule="evenodd"
30 ></path> 30 ></path>
31 </svg> 31 </svg>
32 </div> 32 </div>
33 <div> 33 <div>
34 <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"> 34 <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400">
35 Работодателей 35 Работодателей
36 </p> 36 </p>
37 <p class="text-lg font-semibold text-gray-700 dark:text-gray-200"> 37 <p class="text-lg font-semibold text-gray-700 dark:text-gray-200">
38 {{ $all_employer }} 38 {{ $all_employer }}
39 </p> 39 </p>
40 </div> 40 </div>
41 </div> 41 </div>
42 42
43 <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"> 43 <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800">
44 <div class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500"> 44 <div class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500">
45 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 45 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
46 <path 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"></path> 46 <path 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"></path>
47 </svg> 47 </svg>
48 </div> 48 </div>
49 <div> 49 <div>
50 <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"> 50 <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400">
51 Соискателей 51 Соискателей
52 </p> 52 </p>
53 <p class="text-lg font-semibold text-gray-700 dark:text-gray-200"> 53 <p class="text-lg font-semibold text-gray-700 dark:text-gray-200">
54 {{$all_worker}} 54 {{$all_worker}}
55 </p> 55 </p>
56 </div> 56 </div>
57 </div> 57 </div>
58 58
59 <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"> 59 <div class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800">
60 <div class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500"> 60 <div class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500">
61 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 61 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
62 <path 62 <path
63 fill-rule="evenodd" 63 fill-rule="evenodd"
64 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" 64 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"
65 clip-rule="evenodd" 65 clip-rule="evenodd"
66 ></path> 66 ></path>
67 </svg> 67 </svg>
68 </div> 68 </div>
69 <div> 69 <div>
70 <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"> 70 <p class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400">
71 Администраторы 71 Администраторы
72 </p> 72 </p>
73 <p class="text-lg font-semibold text-gray-700 dark:text-gray-200"> 73 <p class="text-lg font-semibold text-gray-700 dark:text-gray-200">
74 {{$all_admin}} 74 {{$all_admin}}
75 </p> 75 </p>
76 </div> 76 </div>
77 </div> 77 </div>
78 </div> 78 </div>
79 79
80 <!-- Таблицы --> 80 <!-- Таблицы -->
81 81
82 <div class="w-full overflow-hidden rounded-lg shadow-xs"> 82 <div class="w-full overflow-hidden rounded-lg shadow-xs">
83 <div class="w-full overflow-x-auto"> 83 <div class="w-full overflow-x-auto">
84 <table class="w-full whitespace-no-wrap"> 84 <table class="w-full whitespace-no-wrap">
85 <thead> 85 <thead>
86 <tr 86 <tr
87 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" 87 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"
88 > 88 >
89 <th class="px-4 py-3">Название</th> 89 <th class="px-4 py-3">Название</th>
90 <th class="px-4 py-3">Таблица</th> 90 <th class="px-4 py-3">Таблица</th>
91 <th class="px-4 py-3">Редактирование</th> 91 <th class="px-4 py-3">Редактирование</th>
92 <th class="px-4 py-3">Дата</th> 92 <th class="px-4 py-3">Дата</th>
93 </tr> 93 </tr>
94 </thead> 94 </thead>
95 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> 95 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
96 <tr class="text-gray-700 dark:text-gray-400"> 96 <tr class="text-gray-700 dark:text-gray-400">
97 <td class="px-4 py-3"> 97 <td class="px-4 py-3">
98 <div class="flex items-center text-sm"> 98 <div class="flex items-center text-sm">
99 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> 99 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
100 <div 100 <div
101 class="absolute inset-0 rounded-full shadow-inner" 101 class="absolute inset-0 rounded-full shadow-inner"
102 aria-hidden="true" 102 aria-hidden="true"
103 ></div> 103 ></div>
104 </div> 104 </div>
105 <div> 105 <div>
106 <p class="font-semibold"><a href="{{ route('admin.users') }}">Пользователи</a></p> 106 <p class="font-semibold">
107 @if ($UserId == 1)
108 <a href="{{ route('admin.users') }}">Пользователи</a>
109 @else
110 Пользователи
111 @endif
112 </p>
107 <p class="text-xs text-gray-600 dark:text-gray-400"> 113 <p class="text-xs text-gray-600 dark:text-gray-400">
108 Все пользователи сайта 114 Все пользователи сайта. Управление ими. Только для разработчика!
109 </p> 115 </p>
110 </div> 116 </div>
111 </div> 117 </div>
112 </td> 118 </td>
113 <td class="px-4 py-3 text-sm"> 119 <td class="px-4 py-3 text-sm">
114 users 120 users
115 </td> 121 </td>
116 <td class="px-4 py-3 text-xs"> 122 <td class="px-4 py-3 text-xs">
117 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> 123 <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600">
118 Доступно 124 Недоступно
119 </span> 125 </span>
120 <!--<span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> 126 <!--<span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600">
121 Недоступно 127 Недоступно
122 </span>--> 128 </span>-->
123 </td> 129 </td>
124 <td class="px-4 py-3 text-sm"> 130 <td class="px-4 py-3 text-sm">
125 май 2023 131 май 2023
126 </td> 132 </td>
127 </tr> 133 </tr>
128 134
129 <tr class="text-gray-700 dark:text-gray-400"> 135 <tr class="text-gray-700 dark:text-gray-400">
130 <td class="px-4 py-3"> 136 <td class="px-4 py-3">
131 <div class="flex items-center text-sm"> 137 <div class="flex items-center text-sm">
132 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> 138 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
133 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> 139 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div>
134 </div> 140 </div>
135 <div> 141 <div>
136 <p class="font-semibold"><a href="{{ route('admin.employers') }}">Работодатели</a></p> 142 <p class="font-semibold"><a href="{{ route('admin.employers') }}">Работодатели</a></p>
137 <p class="text-xs text-gray-600 dark:text-gray-400"> 143 <p class="text-xs text-gray-600 dark:text-gray-400">
138 Все работодатели сайта 144 Все работодатели сайта
139 </p> 145 </p>
140 </div> 146 </div>
141 </div> 147 </div>
142 </td> 148 </td>
143 <td class="px-4 py-3 text-sm"> 149 <td class="px-4 py-3 text-sm">
144 employers 150 employers
145 </td> 151 </td>
146 <td class="px-4 py-3 text-xs"> 152 <td class="px-4 py-3 text-xs">
147 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> 153 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100">
148 Доступно 154 Доступно
149 </span> 155 </span>
150 </td> 156 </td>
151 <td class="px-4 py-3 text-sm"> 157 <td class="px-4 py-3 text-sm">
152 май 2023 158 май 2023
153 </td> 159 </td>
154 </tr> 160 </tr>
155 161
156 <tr class="text-gray-700 dark:text-gray-400"> 162 <tr class="text-gray-700 dark:text-gray-400">
157 <td class="px-4 py-3"> 163 <td class="px-4 py-3">
158 <div class="flex items-center text-sm"> 164 <div class="flex items-center text-sm">
159 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> 165 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
160 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> 166 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div>
161 </div> 167 </div>
162 <div> 168 <div>
163 <p class="font-semibold"><a href="{{ route('admin.workers') }}">Соискатели</a></p> 169 <p class="font-semibold"><a href="{{ route('admin.workers') }}">Соискатели</a></p>
164 <p class="text-xs text-gray-600 dark:text-gray-400"> 170 <p class="text-xs text-gray-600 dark:text-gray-400">
165 Все работники сайта 171 Все работники сайта
166 </p> 172 </p>
167 </div> 173 </div>
168 </div> 174 </div>
169 </td> 175 </td>
170 <td class="px-4 py-3 text-sm"> 176 <td class="px-4 py-3 text-sm">
171 workers 177 workers
172 </td> 178 </td>
173 <td class="px-4 py-3 text-xs"> 179 <td class="px-4 py-3 text-xs">
174 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> 180 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100">
175 Доступно 181 Доступно
176 </span> 182 </span>
177 </td> 183 </td>
178 <td class="px-4 py-3 text-sm"> 184 <td class="px-4 py-3 text-sm">
179 май 2023 185 май 2023
180 </td> 186 </td>
181 </tr> 187 </tr>
182 188
183 <tr class="text-gray-700 dark:text-gray-400"> 189 <tr class="text-gray-700 dark:text-gray-400">
184 <td class="px-4 py-3"> 190 <td class="px-4 py-3">
185 <div class="flex items-center text-sm"> 191 <div class="flex items-center text-sm">
186 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> 192 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
187 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> 193 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div>
188 </div> 194 </div>
189 <div> 195 <div>
190 <p class="font-semibold"><a href="{{ route('admin.ad-employers') }}">Вакансии</a></p> 196 <p class="font-semibold"><a href="{{ route('admin.ad-employers') }}">Вакансии</a></p>
191 <p class="text-xs text-gray-600 dark:text-gray-400"> 197 <p class="text-xs text-gray-600 dark:text-gray-400">
192 Все вакансии сайта 198 Все вакансии сайта
193 </p> 199 </p>
194 </div> 200 </div>
195 </div> 201 </div>
196 </td> 202 </td>
197 <td class="px-4 py-3 text-sm"> 203 <td class="px-4 py-3 text-sm">
198 ad_employers 204 ad_employers
199 </td> 205 </td>
200 <td class="px-4 py-3 text-xs"> 206 <td class="px-4 py-3 text-xs">
201 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> 207 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100">
202 Доступно 208 Доступно
203 </span> 209 </span>
204 </td> 210 </td>
205 <td class="px-4 py-3 text-sm"> 211 <td class="px-4 py-3 text-sm">
206 май 2023 212 май 2023
207 </td> 213 </td>
208 </tr> 214 </tr>
209 215
210 <tr class="text-gray-700 dark:text-gray-400"> 216 <tr class="text-gray-700 dark:text-gray-400">
211 <td class="px-4 py-3"> 217 <td class="px-4 py-3">
212 <div class="flex items-center text-sm"> 218 <div class="flex items-center text-sm">
213 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> 219 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
214 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> 220 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div>
215 </div> 221 </div>
216 <div> 222 <div>
223 <p class="font-semibold"><a href="{{ route('admin.education.index') }}">Справочник образования</a></p>
224 <p class="text-xs text-gray-600 dark:text-gray-400">
225 Справочник образование
226 </p>
227 </div>
228 </div>
229 </td>
230 <td class="px-4 py-3 text-sm">
231 education
232 </td>
233 <td class="px-4 py-3 text-xs">
234 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100">
235 Доступно
236 </span>
237 </td>
238 <td class="px-4 py-3 text-sm">
239 октябрь 2023
240 </td>
241 </tr>
242
243 <tr class="text-gray-700 dark:text-gray-400">
244 <td class="px-4 py-3">
245 <div class="flex items-center text-sm">
246 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
247 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div>
248 </div>
249 <div>
217 <p class="font-semibold"><a href="{{ route('admin.categories.index') }}">Категории вакансий</a></p> 250 <p class="font-semibold"><a href="{{ route('admin.categories.index') }}">Категории вакансий</a></p>
218 <p class="text-xs text-gray-600 dark:text-gray-400"> 251 <p class="text-xs text-gray-600 dark:text-gray-400">
219 Справочник категории вакансий (по умолчанию: река, море, река-море) 252 Справочник категории вакансий (по умолчанию: река, море, река-море)
220 </p> 253 </p>
221 </div> 254 </div>
222 </div> 255 </div>
223 </td> 256 </td>
224 <td class="px-4 py-3 text-sm"> 257 <td class="px-4 py-3 text-sm">
225 category 258 category
226 </td> 259 </td>
227 <td class="px-4 py-3 text-xs"> 260 <td class="px-4 py-3 text-xs">
228 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> 261 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100">
229 Доступно 262 Доступно
230 </span> 263 </span>
231 </td> 264 </td>
232 <td class="px-4 py-3 text-sm"> 265 <td class="px-4 py-3 text-sm">
233 май 2023 266 май 2023
234 </td> 267 </td>
235 </tr> 268 </tr>
236 269
237 <tr class="text-gray-700 dark:text-gray-400"> 270 <tr class="text-gray-700 dark:text-gray-400">
238 <td class="px-4 py-3"> 271 <td class="px-4 py-3">
239 <div class="flex items-center text-sm"> 272 <div class="flex items-center text-sm">
240 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> 273 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
241 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> 274 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div>
242 </div> 275 </div>
243 <div> 276 <div>
244 <p class="font-semibold"><a href="{{ route('admin.category-emp.index') }}">Категории работодателей</a></p> 277 <p class="font-semibold"><a href="{{ route('admin.category-emp.index') }}">Категории работодателей</a></p>
245 <p class="text-xs text-gray-600 dark:text-gray-400"> 278 <p class="text-xs text-gray-600 dark:text-gray-400">
246 Справочник категории работодателей <br>(по умолчанию: не определен, оплатили, согласование, не оплачен) 279 Справочник категории работодателей <br>(по умолчанию: не определен, оплатили, согласование, не оплачен)
247 </p> 280 </p>
248 </div> 281 </div>
249 </div> 282 </div>
250 </td> 283 </td>
251 <td class="px-4 py-3 text-sm"> 284 <td class="px-4 py-3 text-sm">
252 category_emps 285 category_emps
253 </td> 286 </td>
254 <td class="px-4 py-3 text-xs"> 287 <td class="px-4 py-3 text-xs">
255 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> 288 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100">
256 Доступно 289 Доступно
257 </span> 290 </span>
258 </td> 291 </td>
259 <td class="px-4 py-3 text-sm"> 292 <td class="px-4 py-3 text-sm">
260 октябрь 2023 293 октябрь 2023
261 </td> 294 </td>
262 </tr> 295 </tr>
263 296
264 <tr class="text-gray-700 dark:text-gray-400"> 297 <tr class="text-gray-700 dark:text-gray-400">
265 <td class="px-4 py-3"> 298 <td class="px-4 py-3">
266 <div class="flex items-center text-sm"> 299 <div class="flex items-center text-sm">
267 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> 300 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
268 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> 301 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div>
269 </div> 302 </div>
270 <div> 303 <div>
271 <p class="font-semibold"><a href="{{ route('admin.job-titles.index') }}">Должности</a></p> 304 <p class="font-semibold"><a href="{{ route('admin.job-titles.index') }}">Должности</a></p>
272 <p class="text-xs text-gray-600 dark:text-gray-400"> 305 <p class="text-xs text-gray-600 dark:text-gray-400">
273 Справочник должности (все должности проекта) 306 Справочник должности (все должности проекта)
274 </p> 307 </p>
275 </div> 308 </div>
276 </div> 309 </div>
277 </td> 310 </td>
278 <td class="px-4 py-3 text-sm"> 311 <td class="px-4 py-3 text-sm">
279 job_titles 312 job_titles
280 </td> 313 </td>
281 <td class="px-4 py-3 text-xs"> 314 <td class="px-4 py-3 text-xs">
282 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> 315 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100">
283 Доступно 316 Доступно
284 </span> 317 </span>
285 </td> 318 </td>
286 <td class="px-4 py-3 text-sm"> 319 <td class="px-4 py-3 text-sm">
287 май 2023 320 май 2023
288 </td> 321 </td>
289 </tr> 322 </tr>
290 323
291 <tr class="text-gray-700 dark:text-gray-400"> 324 <tr class="text-gray-700 dark:text-gray-400">
292 <td class="px-4 py-3"> 325 <td class="px-4 py-3">
293 <div class="flex items-center text-sm"> 326 <div class="flex items-center text-sm">
294 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> 327 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
295 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> 328 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div>
296 </div> 329 </div>
297 <div> 330 <div>
298 <p class="font-semibold"><a href="{{ route('admin.infobloks.index') }}">Документы-Дипломы</a></p> 331 <p class="font-semibold"><a href="{{ route('admin.infobloks.index') }}">Документы-Дипломы</a></p>
299 <p class="text-xs text-gray-600 dark:text-gray-400"> 332 <p class="text-xs text-gray-600 dark:text-gray-400">
300 Справочник документы-дипломы (все блоки-документы необходимые соискателю) 333 Справочник документы-дипломы (все блоки-документы необходимые соискателю)
301 </p> 334 </p>
302 </div> 335 </div>
303 </div> 336 </div>
304 </td> 337 </td>
305 <td class="px-4 py-3 text-sm"> 338 <td class="px-4 py-3 text-sm">
306 infobloks 339 infobloks
307 </td> 340 </td>
308 <td class="px-4 py-3 text-xs"> 341 <td class="px-4 py-3 text-xs">
309 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> 342 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100">
310 Доступно 343 Доступно
311 </span> 344 </span>
312 </td> 345 </td>
313 <td class="px-4 py-3 text-sm"> 346 <td class="px-4 py-3 text-sm">
314 сентябрь 2023 347 сентябрь 2023
315 </td> 348 </td>
316 </tr> 349 </tr>
317 350
318 <tr class="text-gray-700 dark:text-gray-400"> 351 <tr class="text-gray-700 dark:text-gray-400">
319 <td class="px-4 py-3"> 352 <td class="px-4 py-3">
320 <div class="flex items-center text-sm"> 353 <div class="flex items-center text-sm">
321 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> 354 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
322 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> 355 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div>
323 </div> 356 </div>
324 <div> 357 <div>
325 <p class="font-semibold"><a href="{{ route('admin.messages') }}">Сообщения</a></p> 358 <p class="font-semibold"><a href="{{ route('admin.messages') }}">Сообщения</a></p>
326 <p class="text-xs text-gray-600 dark:text-gray-400"> 359 <p class="text-xs text-gray-600 dark:text-gray-400">
327 Все сообщения сайта 360 Все сообщения сайта
328 </p> 361 </p>
329 </div> 362 </div>
330 </div> 363 </div>
331 </td> 364 </td>
332 <td class="px-4 py-3 text-sm"> 365 <td class="px-4 py-3 text-sm">
333 messages 366 messages
334 </td> 367 </td>
335 <td class="px-4 py-3 text-xs"> 368 <td class="px-4 py-3 text-xs">
336 <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> 369 <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600">
337 Недоступно 370 Недоступно
338 </span> 371 </span>
339 </td> 372 </td>
340 <td class="px-4 py-3 text-sm"> 373 <td class="px-4 py-3 text-sm">
341 май 2023 374 май 2023
342 </td> 375 </td>
343 </tr> 376 </tr>
344 377
345 <tr class="text-gray-700 dark:text-gray-400"> 378 <tr class="text-gray-700 dark:text-gray-400">
346 <td class="px-4 py-3"> 379 <td class="px-4 py-3">
347 <div class="flex items-center text-sm"> 380 <div class="flex items-center text-sm">
348 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> 381 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
349 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> 382 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div>
350 </div> 383 </div>
351 <div> 384 <div>
352 <p class="font-semibold"><a href="{{ route('admin.groups') }}">Группы пользователей</a></p> 385 <p class="font-semibold"><a href="{{ route('admin.groups') }}">Группы пользователей</a></p>
353 <p class="text-xs text-gray-600 dark:text-gray-400"> 386 <p class="text-xs text-gray-600 dark:text-gray-400">
354 Группировка людей в именованные группы 387 Группировка людей в именованные группы
355 </p> 388 </p>
356 </div> 389 </div>
357 </div> 390 </div>
358 </td> 391 </td>
359 <td class="px-4 py-3 text-sm"> 392 <td class="px-4 py-3 text-sm">
360 group_users 393 group_users
361 </td> 394 </td>
362 <td class="px-4 py-3 text-xs"> 395 <td class="px-4 py-3 text-xs">
363 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> 396 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100">
364 Доступно 397 Доступно
365 </span> 398 </span>
366 </td> 399 </td>
367 <td class="px-4 py-3 text-sm"> 400 <td class="px-4 py-3 text-sm">
368 май 2023 401 май 2023
369 </td> 402 </td>
370 </tr> 403 </tr>
371 404
372 <tr class="text-gray-700 dark:text-gray-400"> 405 <tr class="text-gray-700 dark:text-gray-400">
373 <td class="px-4 py-3"> 406 <td class="px-4 py-3">
374 <div class="flex items-center text-sm"> 407 <div class="flex items-center text-sm">
375 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> 408 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
376 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> 409 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div>
377 </div> 410 </div>
378 <div> 411 <div>
379 <p class="font-semibold"><a href="{{ route('admin.roles') }}">Роли пользователей</a></p> 412 <p class="font-semibold">
413 @if ($UserId == 1)
414 <a href="{{ route('admin.roles') }}">Роли пользователей</a>
415 @else
416 Роли пользователей
417 @endif
418 </p>
380 <p class="text-xs text-gray-600 dark:text-gray-400"> 419 <p class="text-xs text-gray-600 dark:text-gray-400">
381 Роли людей (запреты и доступы) в системе 420 Роли людей (запреты и доступы) в системе. Только для разработчика!
382 </p> 421 </p>
383 </div> 422 </div>
384 </div> 423 </div>
385 </td> 424 </td>
386 <td class="px-4 py-3 text-sm"> 425 <td class="px-4 py-3 text-sm">
387 users 426 users
388 </td> 427 </td>
389 <td class="px-4 py-3 text-xs"> 428 <td class="px-4 py-3 text-xs">
390 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> 429 <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600">
391 Доступно 430 Недоступно
392 </span> 431 </span>
393 </td> 432 </td>
394 <td class="px-4 py-3 text-sm"> 433 <td class="px-4 py-3 text-sm">
395 сентябрь 2023 434 сентябрь 2023
396 </td> 435 </td>
397 </tr> 436 </tr>
398 437
399 <tr class="text-gray-700 dark:text-gray-400"> 438 <tr class="text-gray-700 dark:text-gray-400">
400 <td class="px-4 py-3"> 439 <td class="px-4 py-3">
401 <div class="flex items-center text-sm"> 440 <div class="flex items-center text-sm">
402 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> 441 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
403 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> 442 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div>
404 </div> 443 </div>
405 <div> 444 <div>
406 <p class="font-semibold"><a href="{{ route('admin.statics') }}">Статистика</a></p> 445 <p class="font-semibold"><a href="{{ route('admin.statics') }}">Статистика</a></p>
407 <p class="text-xs text-gray-600 dark:text-gray-400"> 446 <p class="text-xs text-gray-600 dark:text-gray-400">
408 Статистика соискателей и работодателей 447 Статистика соискателей и работодателей
409 </p> 448 </p>
410 </div> 449 </div>
411 </div> 450 </div>
412 </td> 451 </td>
413 <td class="px-4 py-3 text-sm"> 452 <td class="px-4 py-3 text-sm">
414 static_workers, static_ads 453 static_workers, static_ads
415 </td> 454 </td>
416 <td class="px-4 py-3 text-xs"> 455 <td class="px-4 py-3 text-xs">
417 <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"> 456 <span class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600">
418 Недоступно 457 Недоступно
419 </span> 458 </span>
420 </td> 459 </td>
421 <td class="px-4 py-3 text-sm"> 460 <td class="px-4 py-3 text-sm">
422 сентябрь 2023 461 сентябрь 2023
423 </td> 462 </td>
424 </tr> 463 </tr>
425 464
426 <tr class="text-gray-700 dark:text-gray-400"> 465 <tr class="text-gray-700 dark:text-gray-400">
427 <td class="px-4 py-3"> 466 <td class="px-4 py-3">
428 <div class="flex items-center text-sm"> 467 <div class="flex items-center text-sm">
429 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> 468 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
430 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> 469 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div>
431 </div> 470 </div>
432 <div> 471 <div>
433 <p class="font-semibold"><a href="{{ route('admin.editor-site') }}">Редактор сайта</a></p> 472 <p class="font-semibold"><a href="{{ route('admin.editor-site') }}">Редактор сайта</a></p>
434 <p class="text-xs text-gray-600 dark:text-gray-400"> 473 <p class="text-xs text-gray-600 dark:text-gray-400">
435 Все редакторы системы 474 Все редакторы системы
436 </p> 475 </p>
437 </div> 476 </div>
438 </div> 477 </div>
439 </td> 478 </td>
440 <td class="px-4 py-3 text-sm"> 479 <td class="px-4 py-3 text-sm">
441 header_footer, job_titles_mains, employers_mains,<br> pages, seo, reclames, companies 480 header_footer, job_titles_mains, employers_mains,<br> pages, seo, reclames, companies
442 </td> 481 </td>
443 <td class="px-4 py-3 text-xs"> 482 <td class="px-4 py-3 text-xs">
444 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> 483 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100">
445 Доступно 484 Доступно
446 </span> 485 </span>
447 </td> 486 </td>
448 <td class="px-4 py-3 text-sm"> 487 <td class="px-4 py-3 text-sm">
449 сентябрь 2023 488 сентябрь 2023
450 </td> 489 </td>
451 </tr> 490 </tr>
452 <tr class="text-gray-700 dark:text-gray-400"> 491 <tr class="text-gray-700 dark:text-gray-400">
453 <td class="px-4 py-3"> 492 <td class="px-4 py-3">
454 <div class="flex items-center text-sm"> 493 <div class="flex items-center text-sm">
455 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block"> 494 <div class="relative hidden w-8 h-8 mr-3 rounded-full md:block">
456 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div> 495 <div class="absolute inset-0 rounded-full shadow-inner" aria-hidden="true"></div>
457 </div> 496 </div>
458 <div> 497 <div>
459 <p class="font-semibold"><a href="{{ route('admin.answers') }}">Модерация</a></p> 498 <p class="font-semibold"><a href="{{ route('admin.answers') }}">Модерация</a></p>
460 <p class="text-xs text-gray-600 dark:text-gray-400"> 499 <p class="text-xs text-gray-600 dark:text-gray-400">
461 Модерация отзывов о работодателе 500 Модерация отзывов о работодателе
462 </p> 501 </p>
463 </div> 502 </div>
464 </div> 503 </div>
465 </td> 504 </td>
466 <td class="px-4 py-3 text-sm"> 505 <td class="px-4 py-3 text-sm">
467 answers 506 answers
468 </td> 507 </td>
469 <td class="px-4 py-3 text-xs"> 508 <td class="px-4 py-3 text-xs">
470 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100"> 509 <span class="px-2 py-1 font-semibold leading-tight text-green-700 bg-green-100 rounded-full dark:bg-green-700 dark:text-green-100">
471 Доступно 510 Доступно
472 </span> 511 </span>
473 </td> 512 </td>
474 <td class="px-4 py-3 text-sm"> 513 <td class="px-4 py-3 text-sm">
475 сентябрь 2023 514 сентябрь 2023
476 </td> 515 </td>
477 </tr> 516 </tr>
478 517
479 <!--<tr class="text-gray-700 dark:text-gray-400"> 518 <!--<tr class="text-gray-700 dark:text-gray-400">
480 <td class="px-4 py-3"> 519 <td class="px-4 py-3">
481 <div class="flex items-center text-sm"> 520 <div class="flex items-center text-sm">
482 521
483 <div 522 <div
484 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 523 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
485 > 524 >
486 <img 525 <img
487 class="object-cover w-full h-full rounded-full" 526 class="object-cover w-full h-full rounded-full"
488 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" 527 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"
489 alt="" 528 alt=""
490 loading="lazy" 529 loading="lazy"
491 /> 530 />
492 <div 531 <div
493 class="absolute inset-0 rounded-full shadow-inner" 532 class="absolute inset-0 rounded-full shadow-inner"
494 aria-hidden="true" 533 aria-hidden="true"
495 ></div> 534 ></div>
496 </div> 535 </div>
497 <div> 536 <div>
498 <p class="font-semibold">Sarah Curry</p> 537 <p class="font-semibold">Sarah Curry</p>
499 <p class="text-xs text-gray-600 dark:text-gray-400"> 538 <p class="text-xs text-gray-600 dark:text-gray-400">
500 Designer 539 Designer
501 </p> 540 </p>
502 </div> 541 </div>
503 </div> 542 </div>
504 </td> 543 </td>
505 <td class="px-4 py-3 text-sm"> 544 <td class="px-4 py-3 text-sm">
506 $ 86.00 545 $ 86.00
507 </td> 546 </td>
508 <td class="px-4 py-3 text-xs"> 547 <td class="px-4 py-3 text-xs">
509 <span 548 <span
510 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" 549 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"
511 > 550 >
512 Denied 551 Denied
513 </span> 552 </span>
514 </td> 553 </td>
515 <td class="px-4 py-3 text-sm"> 554 <td class="px-4 py-3 text-sm">
516 6/10/2020 555 6/10/2020
517 </td> 556 </td>
518 </tr> 557 </tr>
519 558
520 <tr class="text-gray-700 dark:text-gray-400"> 559 <tr class="text-gray-700 dark:text-gray-400">
521 <td class="px-4 py-3"> 560 <td class="px-4 py-3">
522 <div class="flex items-center text-sm"> 561 <div class="flex items-center text-sm">
523 562
524 <div 563 <div
525 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 564 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
526 > 565 >
527 <img 566 <img
528 class="object-cover w-full h-full rounded-full" 567 class="object-cover w-full h-full rounded-full"
529 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" 568 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"
530 alt="" 569 alt=""
531 loading="lazy" 570 loading="lazy"
532 /> 571 />
533 <div 572 <div
534 class="absolute inset-0 rounded-full shadow-inner" 573 class="absolute inset-0 rounded-full shadow-inner"
535 aria-hidden="true" 574 aria-hidden="true"
536 ></div> 575 ></div>
537 </div> 576 </div>
538 <div> 577 <div>
539 <p class="font-semibold">Rulia Joberts</p> 578 <p class="font-semibold">Rulia Joberts</p>
540 <p class="text-xs text-gray-600 dark:text-gray-400"> 579 <p class="text-xs text-gray-600 dark:text-gray-400">
541 Actress 580 Actress
542 </p> 581 </p>
543 </div> 582 </div>
544 </div> 583 </div>
545 </td> 584 </td>
546 <td class="px-4 py-3 text-sm"> 585 <td class="px-4 py-3 text-sm">
547 $ 1276.45 586 $ 1276.45
548 </td> 587 </td>
549 <td class="px-4 py-3 text-xs"> 588 <td class="px-4 py-3 text-xs">
550 <span 589 <span
551 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" 590 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"
552 > 591 >
553 Approved 592 Approved
554 </span> 593 </span>
555 </td> 594 </td>
556 <td class="px-4 py-3 text-sm"> 595 <td class="px-4 py-3 text-sm">
557 6/10/2020 596 6/10/2020
558 </td> 597 </td>
559 </tr> 598 </tr>
560 599
561 <tr class="text-gray-700 dark:text-gray-400"> 600 <tr class="text-gray-700 dark:text-gray-400">
562 <td class="px-4 py-3"> 601 <td class="px-4 py-3">
563 <div class="flex items-center text-sm"> 602 <div class="flex items-center text-sm">
564 603
565 <div 604 <div
566 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 605 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
567 > 606 >
568 <img 607 <img
569 class="object-cover w-full h-full rounded-full" 608 class="object-cover w-full h-full rounded-full"
570 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" 609 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"
571 alt="" 610 alt=""
572 loading="lazy" 611 loading="lazy"
573 /> 612 />
574 <div 613 <div
575 class="absolute inset-0 rounded-full shadow-inner" 614 class="absolute inset-0 rounded-full shadow-inner"
576 aria-hidden="true" 615 aria-hidden="true"
577 ></div> 616 ></div>
578 </div> 617 </div>
579 <div> 618 <div>
580 <p class="font-semibold">Wenzel Dashington</p> 619 <p class="font-semibold">Wenzel Dashington</p>
581 <p class="text-xs text-gray-600 dark:text-gray-400"> 620 <p class="text-xs text-gray-600 dark:text-gray-400">
582 Actor 621 Actor
583 </p> 622 </p>
584 </div> 623 </div>
585 </div> 624 </div>
586 </td> 625 </td>
587 <td class="px-4 py-3 text-sm"> 626 <td class="px-4 py-3 text-sm">
588 $ 863.45 627 $ 863.45
589 </td> 628 </td>
590 <td class="px-4 py-3 text-xs"> 629 <td class="px-4 py-3 text-xs">
591 <span 630 <span
592 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" 631 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"
593 > 632 >
594 Expired 633 Expired
595 </span> 634 </span>
596 </td> 635 </td>
597 <td class="px-4 py-3 text-sm"> 636 <td class="px-4 py-3 text-sm">
598 6/10/2020 637 6/10/2020
599 </td> 638 </td>
600 </tr> 639 </tr>
601 640
602 <tr class="text-gray-700 dark:text-gray-400"> 641 <tr class="text-gray-700 dark:text-gray-400">
603 <td class="px-4 py-3"> 642 <td class="px-4 py-3">
604 <div class="flex items-center text-sm"> 643 <div class="flex items-center text-sm">
605 644
606 <div 645 <div
607 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 646 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
608 > 647 >
609 <img 648 <img
610 class="object-cover w-full h-full rounded-full" 649 class="object-cover w-full h-full rounded-full"
611 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" 650 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"
612 alt="" 651 alt=""
613 loading="lazy" 652 loading="lazy"
614 /> 653 />
615 <div 654 <div
616 class="absolute inset-0 rounded-full shadow-inner" 655 class="absolute inset-0 rounded-full shadow-inner"
617 aria-hidden="true" 656 aria-hidden="true"
618 ></div> 657 ></div>
619 </div> 658 </div>
620 <div> 659 <div>
621 <p class="font-semibold">Dave Li</p> 660 <p class="font-semibold">Dave Li</p>
622 <p class="text-xs text-gray-600 dark:text-gray-400"> 661 <p class="text-xs text-gray-600 dark:text-gray-400">
623 Influencer 662 Influencer
624 </p> 663 </p>
625 </div> 664 </div>
626 </div> 665 </div>
627 </td> 666 </td>
628 <td class="px-4 py-3 text-sm"> 667 <td class="px-4 py-3 text-sm">
629 $ 863.45 668 $ 863.45
630 </td> 669 </td>
631 <td class="px-4 py-3 text-xs"> 670 <td class="px-4 py-3 text-xs">
632 <span 671 <span
633 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" 672 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"
634 > 673 >
635 Approved 674 Approved
636 </span> 675 </span>
637 </td> 676 </td>
638 <td class="px-4 py-3 text-sm"> 677 <td class="px-4 py-3 text-sm">
639 6/10/2020 678 6/10/2020
640 </td> 679 </td>
641 </tr> 680 </tr>
642 681
643 <tr class="text-gray-700 dark:text-gray-400"> 682 <tr class="text-gray-700 dark:text-gray-400">
644 <td class="px-4 py-3"> 683 <td class="px-4 py-3">
645 <div class="flex items-center text-sm"> 684 <div class="flex items-center text-sm">
646 685
647 <div 686 <div
648 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 687 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
649 > 688 >
650 <img 689 <img
651 class="object-cover w-full h-full rounded-full" 690 class="object-cover w-full h-full rounded-full"
652 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" 691 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"
653 alt="" 692 alt=""
654 loading="lazy" 693 loading="lazy"
655 /> 694 />
656 <div 695 <div
657 class="absolute inset-0 rounded-full shadow-inner" 696 class="absolute inset-0 rounded-full shadow-inner"
658 aria-hidden="true" 697 aria-hidden="true"
659 ></div> 698 ></div>
660 </div> 699 </div>
661 <div> 700 <div>
662 <p class="font-semibold">Maria Ramovic</p> 701 <p class="font-semibold">Maria Ramovic</p>
663 <p class="text-xs text-gray-600 dark:text-gray-400"> 702 <p class="text-xs text-gray-600 dark:text-gray-400">
664 Runner 703 Runner
665 </p> 704 </p>
666 </div> 705 </div>
667 </div> 706 </div>
668 </td> 707 </td>
669 <td class="px-4 py-3 text-sm"> 708 <td class="px-4 py-3 text-sm">
670 $ 863.45 709 $ 863.45
671 </td> 710 </td>
672 <td class="px-4 py-3 text-xs"> 711 <td class="px-4 py-3 text-xs">
673 <span 712 <span
674 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" 713 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"
675 > 714 >
676 Approved 715 Approved
677 </span> 716 </span>
678 </td> 717 </td>
679 <td class="px-4 py-3 text-sm"> 718 <td class="px-4 py-3 text-sm">
680 6/10/2020 719 6/10/2020
681 </td> 720 </td>
682 </tr> 721 </tr>
683 722
684 <tr class="text-gray-700 dark:text-gray-400"> 723 <tr class="text-gray-700 dark:text-gray-400">
685 <td class="px-4 py-3"> 724 <td class="px-4 py-3">
686 <div class="flex items-center text-sm"> 725 <div class="flex items-center text-sm">
687 726
688 <div 727 <div
689 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 728 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
690 > 729 >
691 <img 730 <img
692 class="object-cover w-full h-full rounded-full" 731 class="object-cover w-full h-full rounded-full"
693 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" 732 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"
694 alt="" 733 alt=""
695 loading="lazy" 734 loading="lazy"
696 /> 735 />
697 <div 736 <div
698 class="absolute inset-0 rounded-full shadow-inner" 737 class="absolute inset-0 rounded-full shadow-inner"
699 aria-hidden="true" 738 aria-hidden="true"
700 ></div> 739 ></div>
701 </div> 740 </div>
702 <div> 741 <div>
703 <p class="font-semibold">Hitney Wouston</p> 742 <p class="font-semibold">Hitney Wouston</p>
704 <p class="text-xs text-gray-600 dark:text-gray-400"> 743 <p class="text-xs text-gray-600 dark:text-gray-400">
705 Singer 744 Singer
706 </p> 745 </p>
707 </div> 746 </div>
708 </div> 747 </div>
709 </td> 748 </td>
710 <td class="px-4 py-3 text-sm"> 749 <td class="px-4 py-3 text-sm">
711 $ 863.45 750 $ 863.45
712 </td> 751 </td>
713 <td class="px-4 py-3 text-xs"> 752 <td class="px-4 py-3 text-xs">
714 <span 753 <span
715 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" 754 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"
716 > 755 >
717 Approved 756 Approved
718 </span> 757 </span>
719 </td> 758 </td>
720 <td class="px-4 py-3 text-sm"> 759 <td class="px-4 py-3 text-sm">
721 6/10/2020 760 6/10/2020
722 </td> 761 </td>
723 </tr> 762 </tr>
724 763
725 <tr class="text-gray-700 dark:text-gray-400"> 764 <tr class="text-gray-700 dark:text-gray-400">
726 <td class="px-4 py-3"> 765 <td class="px-4 py-3">
727 <div class="flex items-center text-sm"> 766 <div class="flex items-center text-sm">
728 767
729 <div 768 <div
730 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 769 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
731 > 770 >
732 <img 771 <img
733 class="object-cover w-full h-full rounded-full" 772 class="object-cover w-full h-full rounded-full"
734 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" 773 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"
735 alt="" 774 alt=""
736 loading="lazy" 775 loading="lazy"
737 /> 776 />
738 <div 777 <div
739 class="absolute inset-0 rounded-full shadow-inner" 778 class="absolute inset-0 rounded-full shadow-inner"
740 aria-hidden="true" 779 aria-hidden="true"
741 ></div> 780 ></div>
742 </div> 781 </div>
743 <div> 782 <div>
744 <p class="font-semibold">Hans Burger</p> 783 <p class="font-semibold">Hans Burger</p>
745 <p class="text-xs text-gray-600 dark:text-gray-400"> 784 <p class="text-xs text-gray-600 dark:text-gray-400">
746 10x Developer 785 10x Developer
747 </p> 786 </p>
748 </div> 787 </div>
749 </div> 788 </div>
750 </td> 789 </td>
751 <td class="px-4 py-3 text-sm"> 790 <td class="px-4 py-3 text-sm">
752 $ 863.45 791 $ 863.45
753 </td> 792 </td>
754 <td class="px-4 py-3 text-xs"> 793 <td class="px-4 py-3 text-xs">
755 <span 794 <span
756 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" 795 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"
757 > 796 >
758 Approved 797 Approved
759 </span> 798 </span>
760 </td> 799 </td>
761 <td class="px-4 py-3 text-sm"> 800 <td class="px-4 py-3 text-sm">
762 6/10/2020 801 6/10/2020
763 </td> 802 </td>
764 </tr>--> 803 </tr>-->
765 </tbody> 804 </tbody>
766 </table> 805 </table>
767 </div> 806 </div>
768 </div> 807 </div>
769 808
770 809
771 <!-- Charts --> 810 <!-- Charts -->
772 811
773 <!--<h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"> 812 <!--<h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200">
774 Графики 813 Графики
775 </h2> 814 </h2>
776 <div class="grid gap-6 mb-8 md:grid-cols-2"> 815 <div class="grid gap-6 mb-8 md:grid-cols-2">
777 <div 816 <div
778 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 817 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
779 > 818 >
780 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> 819 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300">
781 Revenue 820 Revenue
782 </h4> 821 </h4>
783 <canvas id="pie"></canvas> 822 <canvas id="pie"></canvas>
784 <div 823 <div
785 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" 824 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400"
786 > 825 >
787 826
788 <div class="flex items-center"> 827 <div class="flex items-center">
789 <span 828 <span
790 class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full" 829 class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full"
791 ></span> 830 ></span>
792 <span>Shirts</span> 831 <span>Shirts</span>
793 </div> 832 </div>
794 <div class="flex items-center"> 833 <div class="flex items-center">
795 <span 834 <span
796 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" 835 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full"
797 ></span> 836 ></span>
798 <span>Shoes</span> 837 <span>Shoes</span>
799 </div> 838 </div>
800 <div class="flex items-center"> 839 <div class="flex items-center">
801 <span 840 <span
802 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" 841 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full"
803 ></span> 842 ></span>
804 <span>Bags</span> 843 <span>Bags</span>
805 </div> 844 </div>
806 </div> 845 </div>
807 </div> 846 </div>
808 <div 847 <div
809 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 848 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
810 > 849 >
811 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> 850 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300">
812 Посещаемость сайта 851 Посещаемость сайта
813 </h4> 852 </h4>
814 <canvas id="line"></canvas> 853 <canvas id="line"></canvas>
815 <div 854 <div
816 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" 855 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400"
817 > 856 >
818 857
819 <div class="flex items-center"> 858 <div class="flex items-center">
820 <span 859 <span
821 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" 860 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full"
822 ></span> 861 ></span>
823 <span>Organic</span> 862 <span>Organic</span>
824 </div> 863 </div>
825 <div class="flex items-center"> 864 <div class="flex items-center">
826 <span 865 <span
827 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" 866 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full"
828 ></span> 867 ></span>
829 <span>Paid</span> 868 <span>Paid</span>
830 </div> 869 </div>
831 </div> 870 </div>
832 </div> 871 </div>
833 </div>--> 872 </div>-->
834 873
835 @endsection 874 @endsection
836 875
resources/views/admin/message/index.blade.php
1 @extends('layout.admin', ['title' => 'Админка - Сообщения адмистратора']) 1 @extends('layout.admin', ['title' => 'Админка - Сообщения адмистратора'])
2 2
3 @section('script') 3 @section('script')
4 <script> 4 <script>
5 $(document).ready(function() { 5 $(document).ready(function() {
6 $(document).on('change', '.checkread', function () { 6 $(document).on('change', '.checkread', function () {
7 var this_ = $(this); 7 var this_ = $(this);
8 var value = this_.val(); 8 var value = this_.val();
9 var ajax_block = $('#ajax_block'); 9 var ajax_block = $('#ajax_block');
10 var bool = 0; 10 var bool = 0;
11 11
12 if(this.checked){ 12 if(this.checked){
13 bool = 1; 13 bool = 1;
14 } else { 14 } else {
15 bool = 0; 15 bool = 0;
16 } 16 }
17 17
18 $.ajax({ 18 $.ajax({
19 type: "GET", 19 type: "GET",
20 url: "{{ url()->full()}}", 20 url: "{{ url()->full()}}",
21 data: "id=" + value + "&flag_new=" + bool, 21 data: "id=" + value + "&flag_new=" + bool,
22 success: function (data) { 22 success: function (data) {
23 console.log('Обновление таблицы сообщений администратора '); 23 console.log('Обновление таблицы сообщений администратора ');
24 //data = JSON.parse(data); 24 //data = JSON.parse(data);
25 //console.log(data); 25 //console.log(data);
26 ajax_block.html(data); 26 ajax_block.html(data);
27 }, 27 },
28 headers: { 28 headers: {
29 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 29 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
30 }, 30 },
31 error: function (data) { 31 error: function (data) {
32 console.log('Error: ' + data); 32 console.log('Error: ' + data);
33 } 33 }
34 }); 34 });
35 }); 35 });
36 36
37 }); 37 });
38 </script> 38 </script>
39 @endsection 39 @endsection
40 40
41 @section('search') 41 @section('search')
42 42
43 @endsection 43 @endsection
44 44
45 @section('content') 45 @section('content')
46 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block"> 46 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block">
47 <div class="w-full overflow-x-auto"> 47 <div class="w-full overflow-x-auto">
48 <table class="w-full whitespace-no-wrap"> 48 <table class="w-full whitespace-no-wrap">
49 <thead> 49 <thead>
50 <tr 50 <tr
51 class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800" 51 class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800"
52 > 52 >
53 <th class="px-4 py-3">№</th> 53 <th class="px-4 py-3">№</th>
54 <th class="px-4 py-3">От юзера</th> 54 <th class="px-4 py-3">От юзера</th>
55 <th class="px-4 py-3">К юзеру</th> 55 <th class="px-4 py-3">К юзеру</th>
56 <th class="px-4 py-3">Текст</th> 56 <th class="px-4 py-3">Текст</th>
57 <th class="px-4 py-3">Дата</th> 57 <th class="px-4 py-3">Дата</th>
58 <th class="px-4 py-3">Прочтено</th> 58 <th class="px-4 py-3">Прочтено</th>
59 </tr> 59 </tr>
60 </thead> 60 </thead>
61 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> 61 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
62 @foreach($Msgs as $msg) 62 @foreach($Msgs as $msg)
63 <tr class="text-gray-700 dark:text-gray-400" 63 <tr class="text-gray-700 dark:text-gray-400"
64 @if (($msg->user_to->id == $id_admin) && ($msg->flag_new == 1)) style="background-color: #403998;" @endif> 64 @if (isset($msg->user_to->id))
65 @if (($msg->user_to->id == $id_admin) && ($msg->flag_new == 1))
66 style="background-color: #403998;"
67 @endif
68 @endif>
65 <td class="px-4 py-3"> 69 <td class="px-4 py-3">
66 {{$msg->id}} 70 {{$msg->id}}
67 </td> 71 </td>
68 <td class="px-4 py-3"> 72 <td class="px-4 py-3">
73 @if (isset($msg->user_from->name))
69 {{$msg->user_from->name}} ({{$msg->user_from->id}}) 74 {{$msg->user_from->name}} ({{$msg->user_from->id}})
75 @else
76 Пользователь удален
77 @endif
70 </td> 78 </td>
71 <td class="px-4 py-3"> 79 <td class="px-4 py-3">
80 @if (isset($msg->user_to->name))
72 {{$msg->user_to->name}} ({{$msg->user_to->id}}) 81 {{$msg->user_to->name}} ({{$msg->user_to->id}})
82 @else
83 Пользователь удален
84 @endif
73 </td> 85 </td>
74 <td class="px-4 py-3"> 86 <td class="px-4 py-3">
75 {{$msg->title}} 87 {{$msg->title}}
76 <div class="flex items-center text-sm"> 88 <div class="flex items-center text-sm">
77 <textarea cols="7" style="width:250px;">{{ $msg->text }}</textarea> 89 <textarea cols="7" style="width:250px;">{{ $msg->text }}</textarea>
78 </div> 90 </div>
79 </td> 91 </td>
80 <td class="px-4 py-3 text-sm"> 92 <td class="px-4 py-3 text-sm">
81 {{ $msg->created_at }} 93 {{ $msg->created_at }}
82 </td> 94 </td>
83 <td class="px-4 py-3 text-sm"> 95 <td class="px-4 py-3 text-sm">
84 @if (($msg->user_to->id == $id_admin) && ($msg->flag_new == 1)) 96 @if (isset($msg->user_to->id))
97 @if (($msg->user_to->id == $id_admin) && ($msg->flag_new == 1))
85 <input type="checkbox" class="checkread" value="{{$msg->id}}" name="read_{{$msg->id}}"/> 98 <input type="checkbox" class="checkread" value="{{$msg->id}}" name="read_{{$msg->id}}"/>
86 @endif 99 @endif
100 @endif
87 </td> 101 </td>
88 </tr> 102 </tr>
89 @endforeach 103 @endforeach
90 </tbody> 104 </tbody>
91 </table> 105 </table>
92 </div> 106 </div>
93 107
94 <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800"> 108 <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800">
95 <?=$Msgs->appends($_GET)->links('admin.pagginate'); ?> 109 <?=$Msgs->appends($_GET)->links('admin.pagginate'); ?>
96 </div> 110 </div>
97 </div><br> 111 </div><br>
98 112
99 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block2"> 113 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block2">
100 114
101 <form method="POST" action="{{ route('admin.admin-messages-post') }}" enctype="multipart/form-data"> 115 <form method="POST" action="{{ route('admin.admin-messages-post') }}" enctype="multipart/form-data">
102 @csrf 116 @csrf
103 <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> 117 <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800">
104 <h3 class="text-gray-700 dark:text-gray-400">Отправка сообщения</h3> 118 <h3 class="text-gray-700 dark:text-gray-400">Отправка сообщения</h3>
105 <hr> 119 <hr>
106 <label for="ad_employer_id" class="block text-sm"> 120 <label for="ad_employer_id" class="block text-sm">
107 <input type="hidden" name="user_id" id="user_id" value="{{ $id_admin }}"/> 121 <input type="hidden" name="user_id" id="user_id" value="{{ $id_admin }}"/>
108 122
109 <span class="text-gray-700 dark:text-gray-400">Кому:</span> 123 <span class="text-gray-700 dark:text-gray-400">Кому:</span>
110 124
111 <select name="to_user_id" id="to_user_id" class="block change_js mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray"> 125 <select name="to_user_id" id="to_user_id" class="block change_js mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray">
112 @foreach($users as $user) 126 @foreach($users as $user)
113 <option value="{{ $user->id }}">{{ $user->name }} ({{ $user->id }})</option> 127 <option value="{{ $user->id }}">{{ $user->name }} ({{ $user->id }})</option>
114 @endforeach 128 @endforeach
115 </select> 129 </select>
116 </label><br> 130 </label><br>
117 131
118 <label class="block text-sm"> 132 <label class="block text-sm">
119 <span class="text-gray-700 dark:text-gray-400">Заголовок</span> 133 <span class="text-gray-700 dark:text-gray-400">Заголовок</span>
120 <input name="title" id="title" 134 <input name="title" id="title"
121 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" 135 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"
122 placeholder="Заголовок" value="{{ old('title') ?? '' }}" 136 placeholder="Заголовок" value="{{ old('title') ?? '' }}"
123 /> 137 />
124 @error('title') 138 @error('title')
125 <span class="text-xs text-red-600 dark:text-red-400"> 139 <span class="text-xs text-red-600 dark:text-red-400">
126 {{ $message }} 140 {{ $message }}
127 </span> 141 </span>
128 @enderror 142 @enderror
129 </label><br> 143 </label><br>
130 144
131 <label class="block text-sm"> 145 <label class="block text-sm">
132 <span class="text-gray-700 dark:text-gray-400">Текст</span> 146 <span class="text-gray-700 dark:text-gray-400">Текст</span>
133 <textarea class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" name="text" placeholder="Текст" required 147 <textarea class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" name="text" placeholder="Текст" required
134 rows="4">{{ old('text') ?? '' }}</textarea> 148 rows="4">{{ old('text') ?? '' }}</textarea>
135 @error('text') 149 @error('text')
136 <span class="text-xs text-red-600 dark:text-red-400"> 150 <span class="text-xs text-red-600 dark:text-red-400">
137 {{ $message }} 151 {{ $message }}
138 </span> 152 </span>
139 @enderror 153 @enderror
140 </label><br> 154 </label><br>
141 155
142 156
143 <label class="block text-sm"> 157 <label class="block text-sm">
144 <span class="text-gray-700 dark:text-gray-400">Файл</span> 158 <span class="text-gray-700 dark:text-gray-400">Файл</span>
145 <input type="file" class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 159 <input type="file" class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700
146 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple 160 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple
147 dark:text-gray-300 dark:focus:shadow-outline-gray form-input" 161 dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
148 id="file" name="file"> 162 id="file" name="file">
149 @error('file') 163 @error('file')
150 <span class="text-xs text-red-600 dark:text-red-400"> 164 <span class="text-xs text-red-600 dark:text-red-400">
151 {{ $message }} 165 {{ $message }}
152 </span> 166 </span>
153 @enderror 167 @enderror
154 </label><br> 168 </label><br>
155 169
156 <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> 170 <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4">
157 <div> 171 <div>
158 <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"> 172 <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">
159 Отправить 173 Отправить
160 </button> 174 </button>
161 </div> 175 </div>
162 </div> 176 </div>
163 </div> 177 </div>
164 </form> 178 </form>
165 </div> 179 </div>
166 @endsection 180 @endsection
167 181
resources/views/admin/message/index2.blade.php
File was created 1 @extends('layout.admin', ['title' => 'Админка - Сообщения адмистратора'])
2
3 @section('script')
4 <script>
5 $(document).ready(function() {
6 $(document).on('change', '.checkread', function () {
7 var this_ = $(this);
8 var value = this_.val();
9 var ajax_block = $('#ajax_block');
10 var bool = 0;
11
12 if(this.checked){
13 bool = 1;
14 } else {
15 bool = 0;
16 }
17
18 $.ajax({
19 type: "GET",
20 url: "{{ url()->full()}}",
21 data: "id=" + value + "&flag_new=" + bool,
22 success: function (data) {
23 console.log('Обновление таблицы сообщений администратора ');
24 //data = JSON.parse(data);
25 //console.log(data);
26 ajax_block.html(data);
27 },
28 headers: {
29 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
30 },
31 error: function (data) {
32 console.log('Error: ' + data);
33 }
34 });
35 });
36
37 });
38 </script>
39 @endsection
40
41 @section('search')
42
43 @endsection
44
45 @section('content')
46 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block">
47 <div class="w-full overflow-x-auto">
48 <table class="w-full whitespace-no-wrap">
49 <thead>
50 <tr
51 class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800"
52 >
53 <th class="px-4 py-3">№</th>
54 <th class="px-4 py-3">От юзера</th>
55 <th class="px-4 py-3">К юзеру</th>
56 <th class="px-4 py-3">Текст</th>
57 <th class="px-4 py-3">Дата</th>
58 <th class="px-4 py-3">Прочтено</th>
59 </tr>
60 </thead>
61 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
62 @foreach($Msgs as $msg)
63 <tr class="text-gray-700 dark:text-gray-400"
64 @if (($msg->user_to->id == $id_admin) && ($msg->flag_new == 1)) style="background-color: #403998;" @endif>
65 <td class="px-4 py-3">
66 {{$msg->id}}
67 </td>
68 <td class="px-4 py-3">
69 <!--if (isset($msg->user_from->name))
70 $msg->user_from->name ($msg->user_from->id)
71 else
72 Пользователь удален
73 endif-->
74 </td>
75 <td class="px-4 py-3">
76 <!--if (isset($msg->user_to->name))
77 $msg->user_to->name ($msg->user_to->id)
78 else
79 Пользователь удален
80 @endif-->
81 </td>
82 <td class="px-4 py-3">
83 {{$msg->title}}
84 <div class="flex items-center text-sm">
85 <textarea cols="7" style="width:250px;">{{ $msg->text }}</textarea>
86 </div>
87 </td>
88 <td class="px-4 py-3 text-sm">
89 {{ $msg->created_at }}
90 </td>
91 <td class="px-4 py-3 text-sm">
92 @if (($msg->user_to->id == $id_admin) && ($msg->flag_new == 1))
93 <input type="checkbox" class="checkread" value="{{$msg->id}}" name="read_{{$msg->id}}"/>
94 @endif
95 </td>
96 </tr>
97 @endforeach
98 </tbody>
99 </table>
100 </div>
101
102 <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800">
103 <?=$Msgs->appends($_GET)->links('admin.pagginate'); ?>
104 </div>
105 </div><br>
106
107 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block2">
108
109 <form method="POST" action="{{ route('admin.admin-messages-post') }}" enctype="multipart/form-data">
110 @csrf
111 <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800">
112 <h3 class="text-gray-700 dark:text-gray-400">Отправка сообщения</h3>
113 <hr>
114 <label for="ad_employer_id" class="block text-sm">
115 <input type="hidden" name="user_id" id="user_id" value="{{ $id_admin }}"/>
116
117 <span class="text-gray-700 dark:text-gray-400">Кому:</span>
118
119 <select name="to_user_id" id="to_user_id" class="block change_js mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-select focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray">
120 @foreach($users as $user)
121 <option value="{{ $user->id }}">{{ $user->name }} ({{ $user->id }})</option>
122 @endforeach
123 </select>
124 </label><br>
125
126 <label class="block text-sm">
127 <span class="text-gray-700 dark:text-gray-400">Заголовок</span>
128 <input name="title" id="title"
129 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"
130 placeholder="Заголовок" value="{{ old('title') ?? '' }}"
131 />
132 @error('title')
133 <span class="text-xs text-red-600 dark:text-red-400">
134 {{ $message }}
135 </span>
136 @enderror
137 </label><br>
138
139 <label class="block text-sm">
140 <span class="text-gray-700 dark:text-gray-400">Текст</span>
141 <textarea class="block w-full mt-1 text-sm dark:text-gray-300 dark:border-gray-600 dark:bg-gray-700 form-textarea focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:focus:shadow-outline-gray" name="text" placeholder="Текст" required
142 rows="4">{{ old('text') ?? '' }}</textarea>
143 @error('text')
144 <span class="text-xs text-red-600 dark:text-red-400">
145 {{ $message }}
146 </span>
147 @enderror
148 </label><br>
149
150
151 <label class="block text-sm">
152 <span class="text-gray-700 dark:text-gray-400">Файл</span>
153 <input type="file" class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700
154 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple
155 dark:text-gray-300 dark:focus:shadow-outline-gray form-input"
156 id="file" name="file">
157 @error('file')
158 <span class="text-xs text-red-600 dark:text-red-400">
159 {{ $message }}
160 </span>
161 @enderror
162 </label><br>
163
164 <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4">
165 <div>
166 <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">
167 Отправить
168 </button>
169 </div>
170 </div>
171 </div>
172 </form>
173 </div>
174 @endsection
175
resources/views/admin/message/index_ajax.blade.php
1 <div class="w-full overflow-x-auto"> 1 <div class="w-full overflow-x-auto">
2 <table class="w-full whitespace-no-wrap"> 2 <table class="w-full whitespace-no-wrap">
3 <thead> 3 <thead>
4 <tr 4 <tr
5 class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800" 5 class="text-xs font-semibold tracking-wide text-left text-gray-500 uppercase border-b dark:border-gray-700 bg-gray-50 dark:text-gray-400 dark:bg-gray-800"
6 > 6 >
7 <th class="px-4 py-3">№</th> 7 <th class="px-4 py-3">№</th>
8 <th class="px-4 py-3">От юзера</th> 8 <th class="px-4 py-3">От юзера</th>
9 <th class="px-4 py-3">К юзеру</th> 9 <th class="px-4 py-3">К юзеру</th>
10 <th class="px-4 py-3">Текст</th> 10 <th class="px-4 py-3">Текст</th>
11 <th class="px-4 py-3">Дата</th> 11 <th class="px-4 py-3">Дата</th>
12 <th class="px-4 py-3">Прочтено</th> 12 <th class="px-4 py-3">Прочтено</th>
13 </tr> 13 </tr>
14 </thead> 14 </thead>
15 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> 15 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
16 @foreach($Msgs as $msg) 16 @foreach($Msgs as $msg)
17 <tr class="text-gray-700 dark:text-gray-400" 17 <tr class="text-gray-700 dark:text-gray-400"
18 @if (($msg->user_to->id == $id_admin) && ($msg->flag_new == 1)) style="background-color: #403998;" @endif> 18 @if (isset($msg->user_to->id))
19 @if (($msg->user_to->id == $id_admin) && ($msg->flag_new == 1)) style="background-color: #403998;"
20 @endif
21 @endif>
19 <td class="px-4 py-3"> 22 <td class="px-4 py-3">
20 {{$msg->id}} 23 {{$msg->id}}
21 </td> 24 </td>
22 <td class="px-4 py-3"> 25 <td class="px-4 py-3">
26 @if ((isset($msg->user_from->name)) && (!empty($msg->user_from->name)))
23 {{$msg->user_from->name}} ({{$msg->user_from->id}}) 27 {{$msg->user_from->name}} ({{$msg->user_from->id}})
28 @else
29 Пользователь удален
30 @endif
24 </td> 31 </td>
25 <td class="px-4 py-3"> 32 <td class="px-4 py-3">
33 @if ((isset($msg->user_to->name)) && (!empty($msg->user_to->name)))
26 {{$msg->user_to->name}} ({{$msg->user_to->id}}) 34 {{$msg->user_to->name}} ({{$msg->user_to->id}})
35 @else
36 Пользователь удален
37 @endif
27 </td> 38 </td>
28 <td class="px-4 py-3"> 39 <td class="px-4 py-3">
29 {{$msg->title}} 40 {{$msg->title}}
30 <div class="flex items-center text-sm"> 41 <div class="flex items-center text-sm">
31 <textarea cols="7" style="width:250px;">{{ $msg->text }}</textarea> 42 <textarea cols="7" style="width:250px;">{{ $msg->text }}</textarea>
32 </div> 43 </div>
33 </td> 44 </td>
34 <td class="px-4 py-3 text-sm"> 45 <td class="px-4 py-3 text-sm">
35 {{ $msg->created_at }} 46 {{ $msg->created_at }}
36 </td> 47 </td>
37 <td class="px-4 py-3 text-sm"> 48 <td class="px-4 py-3 text-sm">
49 @if (isset($msg->user_to->id))
38 @if (($msg->user_to->id == $id_admin) && ($msg->flag_new == 1)) 50 @if (($msg->user_to->id == $id_admin) && ($msg->flag_new == 1))
39 <input type="checkbox" class="checkread" value="{{$msg->id}}" name="read_{{$msg->id}}"/> 51 <input type="checkbox" class="checkread" value="{{$msg->id}}" name="read_{{$msg->id}}"/>
40 @endif 52 @endif
53 @endif
41 </td> 54 </td>
42 </tr> 55 </tr>
43 @endforeach 56 @endforeach
44 </tbody> 57 </tbody>
45 </table> 58 </table>
46 </div> 59 </div>
47 60
48 <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800"> 61 <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800">
49 <?=$Msgs->appends($_GET)->links('admin.pagginate'); ?> 62 <?=$Msgs->appends($_GET)->links('admin.pagginate'); ?>
50 </div> 63 </div>
51 64
resources/views/admin/messages.blade.php
1 @extends('layout.admin', ['title' => 'Админка - Сообщения']) 1 @extends('layout.admin', ['title' => 'Админка - Сообщения'])
2 2
3 @section('script') 3 @section('script')
4 @endsection 4 @endsection
5 5
6 @section('search') 6 @section('search')
7 <!--<div class="absolute inset-y-0 flex items-center pl-2"> 7 <!--<div class="absolute inset-y-0 flex items-center pl-2">
8 <svg 8 <svg
9 class="w-4 h-4" 9 class="w-4 h-4"
10 aria-hidden="true" 10 aria-hidden="true"
11 fill="currentColor" 11 fill="currentColor"
12 viewBox="0 0 20 20" 12 viewBox="0 0 20 20"
13 > 13 >
14 <path 14 <path
15 fill-rule="evenodd" 15 fill-rule="evenodd"
16 d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z" 16 d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
17 clip-rule="evenodd" 17 clip-rule="evenodd"
18 ></path> 18 ></path>
19 </svg> 19 </svg>
20 </div> 20 </div>
21 <form action="" method="POST"> 21 <form action="" method="POST">
22 <div style="float:left;"><input 22 <div style="float:left;"><input
23 class="w-full pl-8 pr-2 text-sm text-gray-700 placeholder-gray-600 bg-gray-100 border-0 rounded-md dark:placeholder-gray-500 dark:focus:shadow-outline-gray dark:focus:placeholder-gray-600 dark:bg-gray-700 dark:text-gray-200 focus:placeholder-gray-500 focus:bg-white focus:border-purple-300 focus:outline-none focus:shadow-outline-purple form-input" 23 class="w-full pl-8 pr-2 text-sm text-gray-700 placeholder-gray-600 bg-gray-100 border-0 rounded-md dark:placeholder-gray-500 dark:focus:shadow-outline-gray dark:focus:placeholder-gray-600 dark:bg-gray-700 dark:text-gray-200 focus:placeholder-gray-500 focus:bg-white focus:border-purple-300 focus:outline-none focus:shadow-outline-purple form-input"
24 style="width: 400px" 24 style="width: 400px"
25 type="text" 25 type="text"
26 placeholder="Искать компанию или вакансию" 26 placeholder="Искать компанию или вакансию"
27 aria-label="Search" 27 aria-label="Search"
28 /></div> 28 /></div>
29 <div style="float: left"> 29 <div style="float: left">
30 <button type="submit" class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">Поиск</button> 30 <button type="submit" class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">Поиск</button>
31 </div> 31 </div>
32 </form>--> 32 </form>-->
33 @endsection 33 @endsection
34 34
35 @section('content') 35 @section('content')
36 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block"> 36 <div class="w-full overflow-hidden rounded-lg shadow-xs" id="ajax_block">
37 <div class="w-full overflow-x-auto"> 37 <div class="w-full overflow-x-auto">
38 <table class="w-full whitespace-no-wrap"> 38 <table class="w-full whitespace-no-wrap">
39 <thead> 39 <thead>
40 <tr 40 <tr
41 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" 41 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"
42 > 42 >
43 <th class="px-4 py-3">№</th> 43 <th class="px-4 py-3">№</th>
44 <th class="px-4 py-3">От юзера</th> 44 <th class="px-4 py-3">От юзера</th>
45 <th class="px-4 py-3">К юзеру</th> 45 <th class="px-4 py-3">К юзеру</th>
46 <th class="px-4 py-3">Заголовок</th> 46 <th class="px-4 py-3">Заголовок</th>
47 <th class="px-4 py-3">Отклик</th> 47 <th class="px-4 py-3">Отклик</th>
48 <th class="px-4 py-3">Дата</th> 48 <th class="px-4 py-3">Дата</th>
49 </tr> 49 </tr>
50 </thead> 50 </thead>
51 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"> 51 <tbody class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800">
52 @foreach($Msgs as $msg) 52 @foreach($Msgs as $msg)
53 <tr class="text-gray-700 dark:text-gray-400"> 53 <tr class="text-gray-700 dark:text-gray-400">
54 <td class="px-4 py-3"> 54 <td class="px-4 py-3">
55 {{$msg->id}} 55 {{$msg->id}}
56 </td> 56 </td>
57 <td class="px-4 py-3"> 57 <td class="px-4 py-3">
58 @if (isset($msg->user_from->id))
58 {{$msg->user_from->name}} ({{$msg->user_from->id}}) 59 {{$msg->user_from->name}} ({{$msg->user_from->id}})
60 @else
61 Пользователь удален
62 @endif
59 </td> 63 </td>
60 <td class="px-4 py-3"> 64 <td class="px-4 py-3">
65 @if (isset($msg->user_to->id))
61 {{$msg->user_to->name}} ({{$msg->user_to->id}}) 66 {{$msg->user_to->name}} ({{$msg->user_to->id}})
67 @else
68 Пользователь удален
69 @endif
62 </td> 70 </td>
63 <td class="px-4 py-3"> 71 <td class="px-4 py-3">
64 {{$msg->title}} 72 {{$msg->title}}
65 </td> 73 </td>
66 <td class="px-4 py-3"> 74 <td class="px-4 py-3">
67 <div class="flex items-center text-sm"> 75 <div class="flex items-center text-sm">
68 <div> 76 <div>
69 @if ($msg->response->count()) 77 @if ($msg->response->count())
70 Да 78 Да
71 @else 79 @else
72 Нет 80 Нет
73 @endif 81 @endif
74 </div> 82 </div>
75 </div> 83 </div>
76 </td> 84 </td>
77 <td class="px-4 py-3 text-sm"> 85 <td class="px-4 py-3 text-sm">
78 {{ $msg->created_at }} 86 {{ $msg->created_at }}
79 </td> 87 </td>
80 </tr> 88 </tr>
81 @endforeach 89 @endforeach
82 </tbody> 90 </tbody>
83 </table> 91 </table>
84 </div> 92 </div>
85 93
86 <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800"> 94 <div class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-800">
87 <?=$Msgs->appends($_GET)->links('admin.pagginate'); ?> 95 <?=$Msgs->appends($_GET)->links('admin.pagginate'); ?>
88 </div> 96 </div>
89 </div> 97 </div>
90 @endsection 98 @endsection
91 99
resources/views/layout/admin.blade.php
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html :class="{ 'theme-dark': dark }" x-data="data()" lang="{{ str_replace('_', '-', app()->getLocale()) }}"> 2 <html :class="{ 'theme-dark': dark }" x-data="data()" lang="{{ str_replace('_', '-', app()->getLocale()) }}">
3 <head> 3 <head>
4 <meta charset="UTF-8" /> 4 <meta charset="UTF-8" />
5 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6 <title>{{$title}}</title> 6 <title>{{$title}}</title>
7 <link 7 <link
8 href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" 8 href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"
9 rel="stylesheet" 9 rel="stylesheet"
10 /> 10 />
11 <link rel="stylesheet" href="{{ asset('./assets/css/tailwind.output.css')}}" /> 11 <link rel="stylesheet" href="{{ asset('./assets/css/tailwind.output.css')}}" />
12 <link rel="stylesheet" href="{{ asset('./assets/css/tabs.css')}}" /> 12 <link rel="stylesheet" href="{{ asset('./assets/css/tabs.css')}}" />
13 <script 13 <script
14 src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js" 14 src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js"
15 defer 15 defer
16 ></script> 16 ></script>
17 <script src="{{ asset('./assets/js/init-alpine.js') }}"></script> 17 <script src="{{ asset('./assets/js/init-alpine.js') }}"></script>
18 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"/> 18 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.css"/>
19 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js" defer></script> 19 <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js" defer></script>
20 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 20 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
21 <script src="{{ asset('./assets/js/charts-lines.js') }}" defer></script> 21 <script src="{{ asset('./assets/js/charts-lines.js') }}" defer></script>
22 <script src="{{ asset('./assets/js/charts-pie.js') }}" defer></script> 22 <script src="{{ asset('./assets/js/charts-pie.js') }}" defer></script>
23 </head> 23 </head>
24 <body> 24 <body>
25 <div class="flex h-screen bg-gray-50 dark:bg-gray-900" :class="{ 'overflow-hidden': isSideMenuOpen }"> 25 <div class="flex h-screen bg-gray-50 dark:bg-gray-900" :class="{ 'overflow-hidden': isSideMenuOpen }">
26 <!-- Desktop sidebar --> 26 <!-- Desktop sidebar -->
27 <aside 27 <aside
28 class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0" 28 class="z-20 hidden w-64 overflow-y-auto bg-white dark:bg-gray-800 md:block flex-shrink-0"
29 > 29 >
30 <div class="py-4 text-gray-500 dark:text-gray-400"> 30 <div class="py-4 text-gray-500 dark:text-gray-400">
31 <a class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" 31 <a class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
32 href="{{ route('admin.index') }}"> 32 href="{{ route('admin.index') }}">
33 Админка 33 Админка
34 </a> 34 </a>
35 <ul class="mt-6"> 35 <ul class="mt-6">
36 <li class="relative px-6 py-3"> 36 <li class="relative px-6 py-3">
37 <span 37 <span
38 class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" 38 class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
39 aria-hidden="true" 39 aria-hidden="true"
40 ></span> 40 ></span>
41 <a 41 <a
42 class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100" 42 class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
43 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 <ul> 63 <ul>
64 @if ($UserId == 1)
64 <li class="relative px-6 py-3"> 65 <li class="relative px-6 py-3">
65 <a 66 <a
66 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 67 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
67 href="{{ route('admin.users') }}" 68 href="{{ route('admin.users') }}"
68 > 69 >
69 <svg 70 <svg
70 class="w-5 h-5" 71 class="w-5 h-5"
71 aria-hidden="true" 72 aria-hidden="true"
72 fill="none" 73 fill="none"
73 stroke-linecap="round" 74 stroke-linecap="round"
74 stroke-linejoin="round" 75 stroke-linejoin="round"
75 stroke-width="2" 76 stroke-width="2"
76 viewBox="0 0 24 24" 77 viewBox="0 0 24 24"
77 stroke="currentColor" 78 stroke="currentColor"
78 > 79 >
79 <path 80 <path
80 d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" 81 d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
81 ></path> 82 ></path>
82 </svg> 83 </svg>
83 <span class="ml-4">Пользователи</span> 84 <span class="ml-4">Пользователи</span>
84 </a> 85 </a>
85 </li> 86 </li>
87 @endif
86 <li class="relative px-6 py-3"> 88 <li class="relative px-6 py-3">
87 <a 89 <a
88 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 90 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
89 href="{{ route('admin.employers') }}" 91 href="{{ route('admin.employers') }}"
90 > 92 >
91 <svg 93 <svg
92 class="w-5 h-5" 94 class="w-5 h-5"
93 aria-hidden="true" 95 aria-hidden="true"
94 fill="none" 96 fill="none"
95 stroke-linecap="round" 97 stroke-linecap="round"
96 stroke-linejoin="round" 98 stroke-linejoin="round"
97 stroke-width="2" 99 stroke-width="2"
98 viewBox="0 0 24 24" 100 viewBox="0 0 24 24"
99 stroke="currentColor" 101 stroke="currentColor"
100 > 102 >
101 <path 103 <path
102 d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10" 104 d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"
103 ></path> 105 ></path>
104 </svg> 106 </svg>
105 <span class="ml-4">Работодатели</span> 107 <span class="ml-4">Работодатели</span>
106 </a> 108 </a>
107 </li> 109 </li>
108 <li class="relative px-6 py-3"> 110 <li class="relative px-6 py-3">
109 <a 111 <a
110 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 112 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
111 href="{{ route('admin.workers') }}" 113 href="{{ route('admin.workers') }}"
112 > 114 >
113 <svg 115 <svg
114 class="w-5 h-5" 116 class="w-5 h-5"
115 aria-hidden="true" 117 aria-hidden="true"
116 fill="none" 118 fill="none"
117 stroke-linecap="round" 119 stroke-linecap="round"
118 stroke-linejoin="round" 120 stroke-linejoin="round"
119 stroke-width="2" 121 stroke-width="2"
120 viewBox="0 0 24 24" 122 viewBox="0 0 24 24"
121 stroke="currentColor" 123 stroke="currentColor"
122 > 124 >
123 <path 125 <path
124 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" 126 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
125 ></path> 127 ></path>
126 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> 128 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
127 </svg> 129 </svg>
128 <span class="ml-4">Соискатели</span> 130 <span class="ml-4">Соискатели</span>
129 </a> 131 </a>
130 </li> 132 </li>
131 <li class="relative px-6 py-3"> 133 <li class="relative px-6 py-3">
132 <a 134 <a
133 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 135 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
134 href="{{ route('admin.ad-employers') }}" 136 href="{{ route('admin.ad-employers') }}"
135 > 137 >
136 <svg 138 <svg
137 class="w-5 h-5" 139 class="w-5 h-5"
138 aria-hidden="true" 140 aria-hidden="true"
139 fill="none" 141 fill="none"
140 stroke-linecap="round" 142 stroke-linecap="round"
141 stroke-linejoin="round" 143 stroke-linejoin="round"
142 stroke-width="2" 144 stroke-width="2"
143 viewBox="0 0 24 24" 145 viewBox="0 0 24 24"
144 stroke="currentColor" 146 stroke="currentColor"
145 > 147 >
146 <path 148 <path
147 d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122" 149 d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
148 ></path> 150 ></path>
149 </svg> 151 </svg>
150 <span class="ml-4">Вакансии</span> 152 <span class="ml-4">Вакансии</span>
151 </a> 153 </a>
152 </li> 154 </li>
153 155
154 <li class="relative px-6 py-3"> 156 <li class="relative px-6 py-3">
155 <a 157 <a
156 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 158 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
157 href="{{ route('admin.messages') }}" 159 href="{{ route('admin.messages') }}"
158 > 160 >
159 <svg 161 <svg
160 class="w-5 h-5" 162 class="w-5 h-5"
161 aria-hidden="true" 163 aria-hidden="true"
162 fill="none" 164 fill="none"
163 stroke-linecap="round" 165 stroke-linecap="round"
164 stroke-linejoin="round" 166 stroke-linejoin="round"
165 stroke-width="2" 167 stroke-width="2"
166 viewBox="0 0 24 24" 168 viewBox="0 0 24 24"
167 stroke="currentColor" 169 stroke="currentColor"
168 > 170 >
169 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 171 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
170 </svg> 172 </svg>
171 <span class="ml-4">Сообщения</span> 173 <span class="ml-4">Сообщения все</span>
172 </a> 174 </a>
173 </li> 175 </li>
174 <li class="relative px-6 py-3"> 176 <li class="relative px-6 py-3">
175 <a 177 <a
176 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 178 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
177 href="{{ route('admin.groups') }}" 179 href="{{ route('admin.groups') }}"
178 > 180 >
179 <svg 181 <svg
180 class="w-5 h-5" 182 class="w-5 h-5"
181 aria-hidden="true" 183 aria-hidden="true"
182 fill="none" 184 fill="none"
183 stroke-linecap="round" 185 stroke-linecap="round"
184 stroke-linejoin="round" 186 stroke-linejoin="round"
185 stroke-width="2" 187 stroke-width="2"
186 viewBox="0 0 24 24" 188 viewBox="0 0 24 24"
187 stroke="currentColor" 189 stroke="currentColor"
188 > 190 >
189 <path 191 <path
190 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" 192 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"
191 ></path> 193 ></path>
192 </svg> 194 </svg>
193 <span class="ml-4">Группы пользователей</span> 195 <span class="ml-4">Группы пользователей</span>
194 </a> 196 </a>
195 </li> 197 </li>
198 @if ($UserId == 1)
196 <li class="relative px-6 py-3"> 199 <li class="relative px-6 py-3">
197 <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" 200 <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"
198 href="{{ route('admin.roles') }}"> 201 href="{{ route('admin.roles') }}">
199 <svg 202 <svg
200 class="w-5 h-5" 203 class="w-5 h-5"
201 aria-hidden="true" 204 aria-hidden="true"
202 fill="none" 205 fill="none"
203 stroke-linecap="round" 206 stroke-linecap="round"
204 stroke-linejoin="round" 207 stroke-linejoin="round"
205 stroke-width="2" 208 stroke-width="2"
206 viewBox="0 0 24 24" 209 viewBox="0 0 24 24"
207 stroke="currentColor" 210 stroke="currentColor"
208 > 211 >
209 <path 212 <path
210 d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" 213 d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"
211 ></path> 214 ></path>
212 </svg> 215 </svg>
213 <span class="ml-4">Роли пользователей</span> 216 <span class="ml-4">Роли пользователей</span>
214 </a> 217 </a>
215 </li> 218 </li>
219 @endif
216 <li class="relative px-6 py-3"> 220 <li class="relative px-6 py-3">
217 <a 221 <a
218 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 222 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
219 href="{{ route('admin.statics') }}" 223 href="{{ route('admin.statics') }}"
220 > 224 >
221 <svg 225 <svg
222 class="w-5 h-5" 226 class="w-5 h-5"
223 aria-hidden="true" 227 aria-hidden="true"
224 fill="none" 228 fill="none"
225 stroke-linecap="round" 229 stroke-linecap="round"
226 stroke-linejoin="round" 230 stroke-linejoin="round"
227 stroke-width="2" 231 stroke-width="2"
228 viewBox="0 0 24 24" 232 viewBox="0 0 24 24"
229 stroke="currentColor" 233 stroke="currentColor"
230 > 234 >
231 <path 235 <path
232 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" 236 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
233 ></path> 237 ></path>
234 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> 238 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
235 </svg> 239 </svg>
236 <span class="ml-4">Статистика</span> 240 <span class="ml-4">Статистика</span>
237 </a> 241 </a>
238 </li> 242 </li>
239 <li class="relative px-6 py-3"> 243 <li class="relative px-6 py-3">
240 <a 244 <a
241 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 245 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
242 href="{{ route('admin.answers') }}" 246 href="{{ route('admin.answers') }}"
243 > 247 >
244 <svg 248 <svg
245 class="w-5 h-5" 249 class="w-5 h-5"
246 aria-hidden="true" 250 aria-hidden="true"
247 fill="none" 251 fill="none"
248 stroke-linecap="round" 252 stroke-linecap="round"
249 stroke-linejoin="round" 253 stroke-linejoin="round"
250 stroke-width="2" 254 stroke-width="2"
251 viewBox="0 0 24 24" 255 viewBox="0 0 24 24"
252 stroke="currentColor" 256 stroke="currentColor"
253 > 257 >
254 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 258 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
255 </svg> 259 </svg>
256 <span class="ml-4">Модерация</span> 260 <span class="ml-4">Модерация</span>
257 </a> 261 </a>
258 </li> 262 </li>
259 <!-- Справочники --> 263 <!-- Справочники -->
260 <li class="relative px-6 py-3" x-data="{ open1: false }"> 264 <li class="relative px-6 py-3" x-data="{ open1: false }">
261 <button 265 <button
262 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" 266 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"
263 @click="open1=!open1" 267 @click="open1=!open1"
264 aria-haspopup="true"> 268 aria-haspopup="true">
265 <span class="inline-flex items-center"> 269 <span class="inline-flex items-center">
266 <svg 270 <svg
267 class="w-5 h-5" 271 class="w-5 h-5"
268 aria-hidden="true" 272 aria-hidden="true"
269 fill="none" 273 fill="none"
270 stroke-linecap="round" 274 stroke-linecap="round"
271 stroke-linejoin="round" 275 stroke-linejoin="round"
272 stroke-width="2" 276 stroke-width="2"
273 viewBox="0 0 24 24" 277 viewBox="0 0 24 24"
274 stroke="currentColor"> 278 stroke="currentColor">
275 <path 279 <path
276 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" 280 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"
277 ></path> 281 ></path>
278 </svg> 282 </svg>
279 <span class="ml-4">Справочники</span> 283 <span class="ml-4">Справочники</span>
280 </span> 284 </span>
281 <svg 285 <svg
282 class="w-4 h-4" 286 class="w-4 h-4"
283 aria-hidden="true" 287 aria-hidden="true"
284 fill="currentColor" 288 fill="currentColor"
285 viewBox="0 0 20 20" 289 viewBox="0 0 20 20"
286 > 290 >
287 <path 291 <path
288 fill-rule="evenodd" 292 fill-rule="evenodd"
289 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" 293 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"
290 clip-rule="evenodd" 294 clip-rule="evenodd"
291 ></path> 295 ></path>
292 </svg> 296 </svg>
293 </button> 297 </button>
294 <template x-if="open1"> 298 <template x-if="open1">
295 <ul 299 <ul
296 x-transition:enter="transition-all ease-in-out duration-300" 300 x-transition:enter="transition-all ease-in-out duration-300"
297 x-transition:enter-start="opacity-25 max-h-0" 301 x-transition:enter-start="opacity-25 max-h-0"
298 x-transition:enter-end="opacity-100 max-h-xl" 302 x-transition:enter-end="opacity-100 max-h-xl"
299 x-transition:leave="transition-all ease-in-out duration-300" 303 x-transition:leave="transition-all ease-in-out duration-300"
300 x-transition:leave-start="opacity-100 max-h-xl" 304 x-transition:leave-start="opacity-100 max-h-xl"
301 x-transition:leave-end="opacity-0 max-h-0" 305 x-transition:leave-end="opacity-0 max-h-0"
302 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" 306 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"
303 aria-label="submenu" 307 aria-label="submenu"
304 > 308 >
305 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 309 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
306 <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a> 310 <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a>
307 </li> 311 </li>
308 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 312 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
309 <a class="w-full" href="{{ route('admin.categories.index') }}">Категории вакансий</a> 313 <a class="w-full" href="{{ route('admin.categories.index') }}">Категории вакансий</a>
310 </li> 314 </li>
311 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 315 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
312 <a class="w-full" href="{{ route('admin.category-emp.index') }}">Категории работодателей</a> 316 <a class="w-full" href="{{ route('admin.category-emp.index') }}">Категории работодателей</a>
313 </li> 317 </li>
314 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 318 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
319 <a class="w-full" href="{{ route('admin.education.index') }}">Образование</a>
320 </li>
321 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
315 <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a> 322 <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a>
316 </li> 323 </li>
317 324
318 </ul> 325 </ul>
319 </template> 326 </template>
320 </li> 327 </li>
321 328
322 329
323 <!-- Редактор --> 330 <!-- Редактор -->
324 <li class="relative px-6 py-3"> 331 <li class="relative px-6 py-3">
325 <button 332 <button
326 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" 333 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"
327 @click="togglePagesMenu" 334 @click="togglePagesMenu"
328 aria-haspopup="true"> 335 aria-haspopup="true">
329 <span class="inline-flex items-center"> 336 <span class="inline-flex items-center">
330 <svg 337 <svg
331 class="w-5 h-5" 338 class="w-5 h-5"
332 aria-hidden="true" 339 aria-hidden="true"
333 fill="none" 340 fill="none"
334 stroke-linecap="round" 341 stroke-linecap="round"
335 stroke-linejoin="round" 342 stroke-linejoin="round"
336 stroke-width="2" 343 stroke-width="2"
337 viewBox="0 0 24 24" 344 viewBox="0 0 24 24"
338 stroke="currentColor"> 345 stroke="currentColor">
339 <path 346 <path
340 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" 347 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"
341 ></path> 348 ></path>
342 </svg> 349 </svg>
343 <span class="ml-4">Редактор</span> 350 <span class="ml-4">Редактор</span>
344 </span> 351 </span>
345 <svg 352 <svg
346 class="w-4 h-4" 353 class="w-4 h-4"
347 aria-hidden="true" 354 aria-hidden="true"
348 fill="currentColor" 355 fill="currentColor"
349 viewBox="0 0 20 20" 356 viewBox="0 0 20 20"
350 > 357 >
351 <path 358 <path
352 fill-rule="evenodd" 359 fill-rule="evenodd"
353 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" 360 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"
354 clip-rule="evenodd" 361 clip-rule="evenodd"
355 ></path> 362 ></path>
356 </svg> 363 </svg>
357 </button> 364 </button>
358 <template x-if="isPagesMenuOpen"> 365 <template x-if="isPagesMenuOpen">
359 <ul 366 <ul
360 x-transition:enter="transition-all ease-in-out duration-300" 367 x-transition:enter="transition-all ease-in-out duration-300"
361 x-transition:enter-start="opacity-25 max-h-0" 368 x-transition:enter-start="opacity-25 max-h-0"
362 x-transition:enter-end="opacity-100 max-h-xl" 369 x-transition:enter-end="opacity-100 max-h-xl"
363 x-transition:leave="transition-all ease-in-out duration-300" 370 x-transition:leave="transition-all ease-in-out duration-300"
364 x-transition:leave-start="opacity-100 max-h-xl" 371 x-transition:leave-start="opacity-100 max-h-xl"
365 x-transition:leave-end="opacity-0 max-h-0" 372 x-transition:leave-end="opacity-0 max-h-0"
366 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" 373 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"
367 aria-label="submenu" 374 aria-label="submenu"
368 > 375 >
369 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 376 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
370 <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> 377 <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a>
371 </li> 378 </li>
372 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 379 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
373 <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> 380 <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a>
374 </li> 381 </li>
375 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 382 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
376 <a class="w-full" href="{{ route('admin.reclames') }}">Реклама</a> 383 <a class="w-full" href="{{ route('admin.reclames') }}">Реклама</a>
377 </li> 384 </li>
378 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 385 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
379 <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> 386 <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a>
380 </li> 387 </li>
381 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 388 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
382 <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> 389 <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a>
383 </li> 390 </li>
384 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 391 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
385 <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> 392 <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a>
386 </li> 393 </li>
387 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 394 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
388 <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> 395 <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a>
389 </li> 396 </li>
390 </ul> 397 </ul>
391 </template> 398 </template>
392 </li> 399 </li>
393 400
394 </ul> 401 </ul>
395 <!--<div class="px-6 my-6"> 402 <!--<div class="px-6 my-6">
396 <button 403 <button
397 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" 404 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"
398 > 405 >
399 Create account 406 Create account
400 <span class="ml-2" aria-hidden="true">+</span> 407 <span class="ml-2" aria-hidden="true">+</span>
401 </button> 408 </button>
402 </div>--> 409 </div>-->
403 </div> 410 </div>
404 </aside> 411 </aside>
405 <!-- Mobile sidebar --> 412 <!-- Mobile sidebar -->
406 <!-- Backdrop --> 413 <!-- Backdrop -->
407 <div 414 <div
408 x-show="isSideMenuOpen" 415 x-show="isSideMenuOpen"
409 x-transition:enter="transition ease-in-out duration-150" 416 x-transition:enter="transition ease-in-out duration-150"
410 x-transition:enter-start="opacity-0" 417 x-transition:enter-start="opacity-0"
411 x-transition:enter-end="opacity-100" 418 x-transition:enter-end="opacity-100"
412 x-transition:leave="transition ease-in-out duration-150" 419 x-transition:leave="transition ease-in-out duration-150"
413 x-transition:leave-start="opacity-100" 420 x-transition:leave-start="opacity-100"
414 x-transition:leave-end="opacity-0" 421 x-transition:leave-end="opacity-0"
415 class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center" 422 class="fixed inset-0 z-10 flex items-end bg-black bg-opacity-50 sm:items-center sm:justify-center"
416 ></div> 423 ></div>
417 <aside 424 <aside
418 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" 425 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"
419 x-show="isSideMenuOpen" 426 x-show="isSideMenuOpen"
420 x-transition:enter="transition ease-in-out duration-150" 427 x-transition:enter="transition ease-in-out duration-150"
421 x-transition:enter-start="opacity-0 transform -translate-x-20" 428 x-transition:enter-start="opacity-0 transform -translate-x-20"
422 x-transition:enter-end="opacity-100" 429 x-transition:enter-end="opacity-100"
423 x-transition:leave="transition ease-in-out duration-150" 430 x-transition:leave="transition ease-in-out duration-150"
424 x-transition:leave-start="opacity-100" 431 x-transition:leave-start="opacity-100"
425 x-transition:leave-end="opacity-0 transform -translate-x-20" 432 x-transition:leave-end="opacity-0 transform -translate-x-20"
426 @click.away="closeSideMenu" 433 @click.away="closeSideMenu"
427 @keydown.escape="closeSideMenu" 434 @keydown.escape="closeSideMenu"
428 > 435 >
429 <div class="py-4 text-gray-500 dark:text-gray-400"> 436 <div class="py-4 text-gray-500 dark:text-gray-400">
430 <a 437 <a
431 class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200" 438 class="ml-6 text-lg font-bold text-gray-800 dark:text-gray-200"
432 href="{{ route('admin.index') }}" 439 href="{{ route('admin.index') }}"
433 > 440 >
434 Админка 441 Админка
435 </a> 442 </a>
436 <ul class="mt-6"> 443 <ul class="mt-6">
437 <li class="relative px-6 py-3"> 444 <li class="relative px-6 py-3">
438 <span 445 <span
439 class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg" 446 class="absolute inset-y-0 left-0 w-1 bg-purple-600 rounded-tr-lg rounded-br-lg"
440 aria-hidden="true" 447 aria-hidden="true"
441 ></span> 448 ></span>
442 <a 449 <a
443 class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100" 450 class="inline-flex items-center w-full text-sm font-semibold text-gray-800 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200 dark:text-gray-100"
444 href="{{ route('admin.index') }}" 451 href="{{ route('admin.index') }}"
445 > 452 >
446 <svg 453 <svg
447 class="w-5 h-5" 454 class="w-5 h-5"
448 aria-hidden="true" 455 aria-hidden="true"
449 fill="none" 456 fill="none"
450 stroke-linecap="round" 457 stroke-linecap="round"
451 stroke-linejoin="round" 458 stroke-linejoin="round"
452 stroke-width="2" 459 stroke-width="2"
453 viewBox="0 0 24 24" 460 viewBox="0 0 24 24"
454 stroke="currentColor" 461 stroke="currentColor"
455 > 462 >
456 <path 463 <path
457 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" 464 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"
458 ></path> 465 ></path>
459 </svg> 466 </svg>
460 <span class="ml-4">Главная страница</span> 467 <span class="ml-4">Главная страница</span>
461 </a> 468 </a>
462 </li> 469 </li>
463 </ul> 470 </ul>
464 <ul> 471 <ul>
472 @if ($UserId == 1)
465 <li class="relative px-6 py-3"> 473 <li class="relative px-6 py-3">
466 <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" 474 <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"
467 href="{{ route('admin.users') }}"> 475 href="{{ route('admin.users') }}">
468 <svg 476 <svg
469 class="w-5 h-5" 477 class="w-5 h-5"
470 aria-hidden="true" 478 aria-hidden="true"
471 fill="none" 479 fill="none"
472 stroke-linecap="round" 480 stroke-linecap="round"
473 stroke-linejoin="round" 481 stroke-linejoin="round"
474 stroke-width="2" 482 stroke-width="2"
475 viewBox="0 0 24 24" 483 viewBox="0 0 24 24"
476 stroke="currentColor" 484 stroke="currentColor"
477 > 485 >
478 <path 486 <path
479 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" 487 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"
480 ></path> 488 ></path>
481 </svg> 489 </svg>
482 <span class="ml-4">Пользователи</span> 490 <span class="ml-4">Пользователи</span>
483 </a> 491 </a>
484 </li> 492 </li>
493 @endif
485 <li class="relative px-6 py-3"> 494 <li class="relative px-6 py-3">
486 <a 495 <a
487 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 496 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
488 href="{{ route('admin.employers') }}" 497 href="{{ route('admin.employers') }}"
489 > 498 >
490 <svg 499 <svg
491 class="w-5 h-5" 500 class="w-5 h-5"
492 aria-hidden="true" 501 aria-hidden="true"
493 fill="none" 502 fill="none"
494 stroke-linecap="round" 503 stroke-linecap="round"
495 stroke-linejoin="round" 504 stroke-linejoin="round"
496 stroke-width="2" 505 stroke-width="2"
497 viewBox="0 0 24 24" 506 viewBox="0 0 24 24"
498 stroke="currentColor" 507 stroke="currentColor"
499 > 508 >
500 <path 509 <path
501 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" 510 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"
502 ></path> 511 ></path>
503 </svg> 512 </svg>
504 <span class="ml-4">Работодатели</span> 513 <span class="ml-4">Работодатели</span>
505 </a> 514 </a>
506 </li> 515 </li>
507 <li class="relative px-6 py-3"> 516 <li class="relative px-6 py-3">
508 <a 517 <a
509 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 518 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
510 href="{{ route('admin.workers') }}" 519 href="{{ route('admin.workers') }}"
511 > 520 >
512 <svg 521 <svg
513 class="w-5 h-5" 522 class="w-5 h-5"
514 aria-hidden="true" 523 aria-hidden="true"
515 fill="none" 524 fill="none"
516 stroke-linecap="round" 525 stroke-linecap="round"
517 stroke-linejoin="round" 526 stroke-linejoin="round"
518 stroke-width="2" 527 stroke-width="2"
519 viewBox="0 0 24 24" 528 viewBox="0 0 24 24"
520 stroke="currentColor" 529 stroke="currentColor"
521 > 530 >
522 <path 531 <path
523 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" 532 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
524 ></path> 533 ></path>
525 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> 534 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
526 </svg> 535 </svg>
527 <span class="ml-4">Соискатели</span> 536 <span class="ml-4">Соискатели</span>
528 </a> 537 </a>
529 </li> 538 </li>
530 <li class="relative px-6 py-3"> 539 <li class="relative px-6 py-3">
531 <a 540 <a
532 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 541 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
533 href="{{ route('admin.ad-employers') }}" 542 href="{{ route('admin.ad-employers') }}"
534 > 543 >
535 <svg 544 <svg
536 class="w-5 h-5" 545 class="w-5 h-5"
537 aria-hidden="true" 546 aria-hidden="true"
538 fill="none" 547 fill="none"
539 stroke-linecap="round" 548 stroke-linecap="round"
540 stroke-linejoin="round" 549 stroke-linejoin="round"
541 stroke-width="2" 550 stroke-width="2"
542 viewBox="0 0 24 24" 551 viewBox="0 0 24 24"
543 stroke="currentColor" 552 stroke="currentColor"
544 > 553 >
545 <path 554 <path
546 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" 555 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"
547 ></path> 556 ></path>
548 </svg> 557 </svg>
549 <span class="ml-4">Вакансии</span> 558 <span class="ml-4">Вакансии</span>
550 </a> 559 </a>
551 </li> 560 </li>
552 <li class="relative px-6 py-3"> 561 <li class="relative px-6 py-3">
553 <a 562 <a
554 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 563 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
555 href="{{ route('admin.messages') }}" 564 href="{{ route('admin.messages') }}"
556 > 565 >
557 <svg 566 <svg
558 class="w-5 h-5" 567 class="w-5 h-5"
559 aria-hidden="true" 568 aria-hidden="true"
560 fill="none" 569 fill="none"
561 stroke-linecap="round" 570 stroke-linecap="round"
562 stroke-linejoin="round" 571 stroke-linejoin="round"
563 stroke-width="2" 572 stroke-width="2"
564 viewBox="0 0 24 24" 573 viewBox="0 0 24 24"
565 stroke="currentColor" 574 stroke="currentColor"
566 > 575 >
567 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 576 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
568 </svg> 577 </svg>
569 <span class="ml-4">Сообщения</span> 578 <span class="ml-4">Сообщения все</span>
570 </a> 579 </a>
571 </li> 580 </li>
572 <li class="relative px-6 py-3"> 581 <li class="relative px-6 py-3">
573 <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" 582 <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"
574 href="{{ route('admin.groups') }}"> 583 href="{{ route('admin.groups') }}">
575 <svg 584 <svg
576 class="w-5 h-5" 585 class="w-5 h-5"
577 aria-hidden="true" 586 aria-hidden="true"
578 fill="none" 587 fill="none"
579 stroke-linecap="round" 588 stroke-linecap="round"
580 stroke-linejoin="round" 589 stroke-linejoin="round"
581 stroke-width="2" 590 stroke-width="2"
582 viewBox="0 0 24 24" 591 viewBox="0 0 24 24"
583 stroke="currentColor" 592 stroke="currentColor"
584 > 593 >
585 <path 594 <path
586 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" 595 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"
587 ></path> 596 ></path>
588 </svg> 597 </svg>
589 <span class="ml-4">Группы пользователей</span> 598 <span class="ml-4">Группы пользователей</span>
590 </a> 599 </a>
591 </li> 600 </li>
601 @if ($UserId == 1)
592 <li class="relative px-6 py-3"> 602 <li class="relative px-6 py-3">
593 <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" 603 <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"
594 href="{{ route('admin.roles') }}"> 604 href="{{ route('admin.roles') }}">
595 <svg 605 <svg
596 class="w-5 h-5" 606 class="w-5 h-5"
597 aria-hidden="true" 607 aria-hidden="true"
598 fill="none" 608 fill="none"
599 stroke-linecap="round" 609 stroke-linecap="round"
600 stroke-linejoin="round" 610 stroke-linejoin="round"
601 stroke-width="2" 611 stroke-width="2"
602 viewBox="0 0 24 24" 612 viewBox="0 0 24 24"
603 stroke="currentColor" 613 stroke="currentColor"
604 > 614 >
605 <path 615 <path
606 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" 616 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"
607 ></path> 617 ></path>
608 </svg> 618 </svg>
609 <span class="ml-4">Роли пользователей</span> 619 <span class="ml-4">Роли пользователей</span>
610 </a> 620 </a>
611 </li> 621 </li>
622 @endif
612 <li class="relative px-6 py-3"> 623 <li class="relative px-6 py-3">
613 <a 624 <a
614 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 625 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
615 href="{{ route('admin.statics') }}" 626 href="{{ route('admin.statics') }}"
616 > 627 >
617 <svg 628 <svg
618 class="w-5 h-5" 629 class="w-5 h-5"
619 aria-hidden="true" 630 aria-hidden="true"
620 fill="none" 631 fill="none"
621 stroke-linecap="round" 632 stroke-linecap="round"
622 stroke-linejoin="round" 633 stroke-linejoin="round"
623 stroke-width="2" 634 stroke-width="2"
624 viewBox="0 0 24 24" 635 viewBox="0 0 24 24"
625 stroke="currentColor" 636 stroke="currentColor"
626 > 637 >
627 <path 638 <path
628 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z" 639 d="M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z"
629 ></path> 640 ></path>
630 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path> 641 <path d="M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z"></path>
631 </svg> 642 </svg>
632 <span class="ml-4">Статистика</span> 643 <span class="ml-4">Статистика</span>
633 </a> 644 </a>
634 </li> 645 </li>
635 <li class="relative px-6 py-3"> 646 <li class="relative px-6 py-3">
636 <a 647 <a
637 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200" 648 class="inline-flex items-center w-full text-sm font-semibold transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"
638 href="{{ route('admin.messages') }}" 649 href="{{ route('admin.messages') }}"
639 > 650 >
640 <svg 651 <svg
641 class="w-5 h-5" 652 class="w-5 h-5"
642 aria-hidden="true" 653 aria-hidden="true"
643 fill="none" 654 fill="none"
644 stroke-linecap="round" 655 stroke-linecap="round"
645 stroke-linejoin="round" 656 stroke-linejoin="round"
646 stroke-width="2" 657 stroke-width="2"
647 viewBox="0 0 24 24" 658 viewBox="0 0 24 24"
648 stroke="currentColor" 659 stroke="currentColor"
649 > 660 >
650 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path> 661 <path d="M4 6h16M4 10h16M4 14h16M4 18h16"></path>
651 </svg> 662 </svg>
652 <span class="ml-4">Сообщения</span> 663 <span class="ml-4">Сообщения</span>
653 </a> 664 </a>
654 </li> 665 </li>
655 <!-- Справочники --> 666 <!-- Справочники -->
656 <li class="relative px-6 py-3" x-data="{ open2: false }"> 667 <li class="relative px-6 py-3" x-data="{ open2: false }">
657 <button 668 <button
658 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" 669 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"
659 @click="open2=!open2" 670 @click="open2=!open2"
660 aria-haspopup="true"> 671 aria-haspopup="true">
661 <span class="inline-flex items-center"> 672 <span class="inline-flex items-center">
662 <svg 673 <svg
663 class="w-5 h-5" 674 class="w-5 h-5"
664 aria-hidden="true" 675 aria-hidden="true"
665 fill="none" 676 fill="none"
666 stroke-linecap="round" 677 stroke-linecap="round"
667 stroke-linejoin="round" 678 stroke-linejoin="round"
668 stroke-width="2" 679 stroke-width="2"
669 viewBox="0 0 24 24" 680 viewBox="0 0 24 24"
670 stroke="currentColor"> 681 stroke="currentColor">
671 <path 682 <path
672 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" 683 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"
673 ></path> 684 ></path>
674 </svg> 685 </svg>
675 <span class="ml-4">Справочники</span> 686 <span class="ml-4">Справочники</span>
676 </span> 687 </span>
677 <svg 688 <svg
678 class="w-4 h-4" 689 class="w-4 h-4"
679 aria-hidden="true" 690 aria-hidden="true"
680 fill="currentColor" 691 fill="currentColor"
681 viewBox="0 0 20 20" 692 viewBox="0 0 20 20"
682 > 693 >
683 <path 694 <path
684 fill-rule="evenodd" 695 fill-rule="evenodd"
685 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" 696 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"
686 clip-rule="evenodd" 697 clip-rule="evenodd"
687 ></path> 698 ></path>
688 </svg> 699 </svg>
689 </button> 700 </button>
690 <template x-if="open2"> 701 <template x-if="open2">
691 <ul 702 <ul
692 x-transition:enter="transition-all ease-in-out duration-300" 703 x-transition:enter="transition-all ease-in-out duration-300"
693 x-transition:enter-start="opacity-25 max-h-0" 704 x-transition:enter-start="opacity-25 max-h-0"
694 x-transition:enter-end="opacity-100 max-h-xl" 705 x-transition:enter-end="opacity-100 max-h-xl"
695 x-transition:leave="transition-all ease-in-out duration-300" 706 x-transition:leave="transition-all ease-in-out duration-300"
696 x-transition:leave-start="opacity-100 max-h-xl" 707 x-transition:leave-start="opacity-100 max-h-xl"
697 x-transition:leave-end="opacity-0 max-h-0" 708 x-transition:leave-end="opacity-0 max-h-0"
698 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" 709 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"
699 aria-label="submenu" 710 aria-label="submenu"
700 > 711 >
701 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 712 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
702 <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a> 713 <a class="w-full" href="{{ route('admin.job-titles.index') }}">Должности</a>
703 </li> 714 </li>
704 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 715 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
705 <a class="w-full" href="{{ route('admin.categories.index') }}">Категории вакансий</a> 716 <a class="w-full" href="{{ route('admin.categories.index') }}">Категории вакансий</a>
706 </li> 717 </li>
707 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 718 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
708 <a class="w-full" href="{{ route('admin.category-emp.index') }}">Категории работодателей</a> 719 <a class="w-full" href="{{ route('admin.category-emp.index') }}">Категории работодателей</a>
709 </li> 720 </li>
710 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 721 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
722 <a class="w-full" href="{{ route('admin.education.index') }}">Образование</a>
723 </li>
724 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
711 <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a> 725 <a class="w-full" href="{{ route('admin.infobloks.index') }}">Блоки-Дипломы</a>
712 </li> 726 </li>
713 727
714 </ul> 728 </ul>
715 </template> 729 </template>
716 </li> 730 </li>
717 731
718 732
719 <!-- Редактор --> 733 <!-- Редактор -->
720 <li class="relative px-6 py-3"> 734 <li class="relative px-6 py-3">
721 <button 735 <button
722 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" 736 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"
723 @click="togglePagesMenu" 737 @click="togglePagesMenu"
724 aria-haspopup="true" 738 aria-haspopup="true"
725 > 739 >
726 <span class="inline-flex items-center"> 740 <span class="inline-flex items-center">
727 <svg 741 <svg
728 class="w-5 h-5" 742 class="w-5 h-5"
729 aria-hidden="true" 743 aria-hidden="true"
730 fill="none" 744 fill="none"
731 stroke-linecap="round" 745 stroke-linecap="round"
732 stroke-linejoin="round" 746 stroke-linejoin="round"
733 stroke-width="2" 747 stroke-width="2"
734 viewBox="0 0 24 24" 748 viewBox="0 0 24 24"
735 stroke="currentColor" 749 stroke="currentColor"
736 > 750 >
737 <path 751 <path
738 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" 752 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"
739 ></path> 753 ></path>
740 </svg> 754 </svg>
741 <span class="ml-4">Редактор</span> 755 <span class="ml-4">Редактор</span>
742 </span> 756 </span>
743 <svg 757 <svg
744 class="w-4 h-4" 758 class="w-4 h-4"
745 aria-hidden="true" 759 aria-hidden="true"
746 fill="currentColor" 760 fill="currentColor"
747 viewBox="0 0 20 20" 761 viewBox="0 0 20 20"
748 > 762 >
749 <path 763 <path
750 fill-rule="evenodd" 764 fill-rule="evenodd"
751 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" 765 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"
752 clip-rule="evenodd" 766 clip-rule="evenodd"
753 ></path> 767 ></path>
754 </svg> 768 </svg>
755 </button> 769 </button>
756 <template x-if="isPagesMenuOpen"> 770 <template x-if="isPagesMenuOpen">
757 <ul 771 <ul
758 x-transition:enter="transition-all ease-in-out duration-300" 772 x-transition:enter="transition-all ease-in-out duration-300"
759 x-transition:enter-start="opacity-25 max-h-0" 773 x-transition:enter-start="opacity-25 max-h-0"
760 x-transition:enter-end="opacity-100 max-h-xl" 774 x-transition:enter-end="opacity-100 max-h-xl"
761 x-transition:leave="transition-all ease-in-out duration-300" 775 x-transition:leave="transition-all ease-in-out duration-300"
762 x-transition:leave-start="opacity-100 max-h-xl" 776 x-transition:leave-start="opacity-100 max-h-xl"
763 x-transition:leave-end="opacity-0 max-h-0" 777 x-transition:leave-end="opacity-0 max-h-0"
764 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" 778 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"
765 aria-label="submenu" 779 aria-label="submenu"
766 > 780 >
767 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 781 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
768 <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a> 782 <a class="w-full" href="{{ route('admin.editor-site') }}">Редактор сайта</a>
769 </li> 783 </li>
770 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 784 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
771 <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a> 785 <a class="w-full" href="{{ route('admin.edit-blocks') }}">Шапка-футер сайта</a>
772 </li> 786 </li>
773 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 787 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
774 <a class="w-full" href="{{ route('admin.reclames') }}">Реклама</a> 788 <a class="w-full" href="{{ route('admin.reclames') }}">Реклама</a>
775 </li> 789 </li>
776 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 790 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
777 <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a> 791 <a class="w-full" href="{{ route('admin.editor-seo') }}">SEO сайта</a>
778 </li> 792 </li>
779 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 793 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
780 <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a> 794 <a class="w-full" href="{{ route('admin.editor-pages') }}">Редактор страниц</a>
781 </li> 795 </li>
782 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 796 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
783 <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a> 797 <a class="w-full" href="{{ route('admin.job-titles-main') }}">Должности на главной</a>
784 </li> 798 </li>
785 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200"> 799 <li class="px-2 py-1 transition-colors duration-150 hover:text-gray-800 dark:hover:text-gray-200">
786 <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a> 800 <a class="w-full" href="{{ route('admin.employers-main') }}">Работодатели на главной</a>
787 </li> 801 </li>
788 802
789 </ul> 803 </ul>
790 </template> 804 </template>
791 </li> 805 </li>
792 </ul> 806 </ul>
793 <!--<div class="px-6 my-6"> 807 <!--<div class="px-6 my-6">
794 <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"> 808 <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">
795 Create account 809 Create account
796 <span class="ml-2" aria-hidden="true">+</span> 810 <span class="ml-2" aria-hidden="true">+</span>
797 </button> 811 </button>
798 </div>--> 812 </div>-->
799 </div> 813 </div>
800 </aside> 814 </aside>
801 <div class="flex flex-col flex-1 w-full"> 815 <div class="flex flex-col flex-1 w-full">
802 <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800"> 816 <header class="z-10 py-4 bg-white shadow-md dark:bg-gray-800">
803 <div 817 <div
804 class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300" 818 class="container flex items-center justify-between h-full px-6 mx-auto text-purple-600 dark:text-purple-300"
805 > 819 >
806 <!-- Mobile hamburger --> 820 <!-- Mobile hamburger -->
807 <button 821 <button
808 class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple" 822 class="p-1 mr-5 -ml-1 rounded-md md:hidden focus:outline-none focus:shadow-outline-purple"
809 @click="toggleSideMenu" 823 @click="toggleSideMenu"
810 aria-label="Menu" 824 aria-label="Menu"
811 > 825 >
812 <svg 826 <svg
813 class="w-6 h-6" 827 class="w-6 h-6"
814 aria-hidden="true" 828 aria-hidden="true"
815 fill="currentColor" 829 fill="currentColor"
816 viewBox="0 0 20 20" 830 viewBox="0 0 20 20"
817 > 831 >
818 <path 832 <path
819 fill-rule="evenodd" 833 fill-rule="evenodd"
820 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" 834 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"
821 clip-rule="evenodd" 835 clip-rule="evenodd"
822 ></path> 836 ></path>
823 </svg> 837 </svg>
824 </button> 838 </button>
825 <!-- Search input --> 839 <!-- Search input -->
826 <div class="flex justify-center flex-1 lg:mr-32"> 840 <div class="flex justify-center flex-1 lg:mr-32">
827 <div 841 <div
828 class="relative w-full max-w-xl mr-6 focus-within:text-purple-500" 842 class="relative w-full max-w-xl mr-6 focus-within:text-purple-500"
829 > 843 >
830 844
831 @yield('search') 845 @yield('search')
832 </div> 846 </div>
833 </div> 847 </div>
834 <ul class="flex items-center flex-shrink-0 space-x-6"> 848 <ul class="flex items-center flex-shrink-0 space-x-6">
835 <!-- Theme toggler --> 849 <!-- Theme toggler -->
836 <li class="flex"> 850 <li class="flex">
837 <button 851 <button
838 class="rounded-md focus:outline-none focus:shadow-outline-purple" 852 class="rounded-md focus:outline-none focus:shadow-outline-purple"
839 @click="toggleTheme" 853 @click="toggleTheme"
840 aria-label="Toggle color mode" 854 aria-label="Toggle color mode"
841 > 855 >
842 <template x-if="!dark"> 856 <template x-if="!dark">
843 <svg 857 <svg
844 class="w-5 h-5" 858 class="w-5 h-5"
845 aria-hidden="true" 859 aria-hidden="true"
846 fill="currentColor" 860 fill="currentColor"
847 viewBox="0 0 20 20" 861 viewBox="0 0 20 20"
848 > 862 >
849 <path 863 <path
850 d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z" 864 d="M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"
851 ></path> 865 ></path>
852 </svg> 866 </svg>
853 </template> 867 </template>
854 <template x-if="dark"> 868 <template x-if="dark">
855 <svg 869 <svg
856 class="w-5 h-5" 870 class="w-5 h-5"
857 aria-hidden="true" 871 aria-hidden="true"
858 fill="currentColor" 872 fill="currentColor"
859 viewBox="0 0 20 20" 873 viewBox="0 0 20 20"
860 > 874 >
861 <path 875 <path
862 fill-rule="evenodd" 876 fill-rule="evenodd"
863 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" 877 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"
864 clip-rule="evenodd" 878 clip-rule="evenodd"
865 ></path> 879 ></path>
866 </svg> 880 </svg>
867 </template> 881 </template>
868 </button> 882 </button>
869 </li> 883 </li>
870 <!-- Notifications menu --> 884 <!-- Notifications menu -->
871 <li class="relative"> 885 <li class="relative">
872 <button 886 <button
873 class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple" 887 class="relative align-middle rounded-md focus:outline-none focus:shadow-outline-purple"
874 @click="toggleNotificationsMenu" 888 @click="toggleNotificationsMenu"
875 @keydown.escape="closeNotificationsMenu" 889 @keydown.escape="closeNotificationsMenu"
876 aria-label="Notifications" 890 aria-label="Notifications"
877 aria-haspopup="true" 891 aria-haspopup="true"
878 > 892 >
879 <svg 893 <svg
880 class="w-5 h-5" 894 class="w-5 h-5"
881 aria-hidden="true" 895 aria-hidden="true"
882 fill="currentColor" 896 fill="currentColor"
883 viewBox="0 0 20 20" 897 viewBox="0 0 20 20"
884 > 898 >
885 <path 899 <path
886 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" 900 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"
887 ></path> 901 ></path>
888 </svg> 902 </svg>
889 <!-- Notification badge --> 903 <!-- Notification badge -->
890 <span 904 <span
891 aria-hidden="true" 905 aria-hidden="true"
892 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" 906 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"
893 ></span> 907 ></span>
894 </button> 908 </button>
895 <template x-if="isNotificationsMenuOpen"> 909 <template x-if="isNotificationsMenuOpen">
896 <ul 910 <ul
897 x-transition:leave="transition ease-in duration-150" 911 x-transition:leave="transition ease-in duration-150"
898 x-transition:leave-start="opacity-100" 912 x-transition:leave-start="opacity-100"
899 x-transition:leave-end="opacity-0" 913 x-transition:leave-end="opacity-0"
900 @click.away="closeNotificationsMenu" 914 @click.away="closeNotificationsMenu"
901 @keydown.escape="closeNotificationsMenu" 915 @keydown.escape="closeNotificationsMenu"
902 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" 916 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"
903 > 917 >
904 <li class="flex"> 918 <li class="flex">
905 <a 919 <a
906 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" 920 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"
907 href="{{ route('admin.admin-messages') }}" 921 href="{{ route('admin.admin-messages') }}"
908 > 922 >
909 <span>Сообщения</span> 923 <span>Сообщения</span>
910 @if($MsgCount > 0) 924 @if($MsgCount > 0)
911 <span 925 <span
912 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" 926 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"
913 > 927 >
914 928
915 {{ $MsgCount }} 929 {{ $MsgCount }}
916 </span> 930 </span>
917 @endif 931 @endif
918 </a> 932 </a>
919 </li> 933 </li>
920 <!--<li class="flex"> 934 <!--<li class="flex">
921 <a 935 <a
922 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" 936 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"
923 href="#" 937 href="#"
924 > 938 >
925 <span>Логи</span> 939 <span>Логи</span>
926 </a> 940 </a>
927 </li>--> 941 </li>-->
928 </ul> 942 </ul>
929 </template> 943 </template>
930 </li> 944 </li>
931 <!-- Profile menu --> 945 <!-- Profile menu -->
932 <li class="relative"> 946 <li class="relative">
933 <button 947 <button
934 class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none" 948 class="align-middle rounded-full focus:shadow-outline-purple focus:outline-none"
935 @click="toggleProfileMenu" 949 @click="toggleProfileMenu"
936 @keydown.escape="closeProfileMenu" 950 @keydown.escape="closeProfileMenu"
937 aria-label="Account" 951 aria-label="Account"
938 aria-haspopup="true" 952 aria-haspopup="true"
939 > 953 >
940 <img 954 <img
941 class="object-cover w-8 h-8 rounded-full" 955 class="object-cover w-8 h-8 rounded-full"
942 src="{{ asset('assets/img/profile.jpg') }}" 956 src="{{ asset('assets/img/profile.jpg') }}"
943 alt="" 957 alt=""
944 aria-hidden="true" 958 aria-hidden="true"
945 /> 959 />
946 </button> 960 </button>
947 <template x-if="isProfileMenuOpen"> 961 <template x-if="isProfileMenuOpen">
948 <ul 962 <ul
949 x-transition:leave="transition ease-in duration-150" 963 x-transition:leave="transition ease-in duration-150"
950 x-transition:leave-start="opacity-100" 964 x-transition:leave-start="opacity-100"
951 x-transition:leave-end="opacity-0" 965 x-transition:leave-end="opacity-0"
952 @click.away="closeProfileMenu" 966 @click.away="closeProfileMenu"
953 @keydown.escape="closeProfileMenu" 967 @keydown.escape="closeProfileMenu"
954 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" 968 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"
955 aria-label="submenu" 969 aria-label="submenu"
956 > 970 >
957 <li class="flex"> 971 <li class="flex">
958 <a 972 <a
959 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" 973 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"
960 href="{{ route('admin.profile') }}" 974 href="{{ route('admin.profile') }}"
961 > 975 >
962 <svg 976 <svg
963 class="w-4 h-4 mr-3" 977 class="w-4 h-4 mr-3"
964 aria-hidden="true" 978 aria-hidden="true"
965 fill="none" 979 fill="none"
966 stroke-linecap="round" 980 stroke-linecap="round"
967 stroke-linejoin="round" 981 stroke-linejoin="round"
968 stroke-width="2" 982 stroke-width="2"
969 viewBox="0 0 24 24" 983 viewBox="0 0 24 24"
970 stroke="currentColor" 984 stroke="currentColor"
971 > 985 >
972 <path 986 <path
973 d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" 987 d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
974 ></path> 988 ></path>
975 </svg> 989 </svg>
976 <span>Профиль</span> 990 <span>Профиль</span>
977 </a> 991 </a>
978 </li> 992 </li>
979 <li class="flex"> 993 <li class="flex">
980 <a 994 <a
981 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" 995 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"
982 href="{{ route('admin.config') }}" 996 href="{{ route('admin.config') }}"
983 > 997 >
984 <svg 998 <svg
985 class="w-4 h-4 mr-3" 999 class="w-4 h-4 mr-3"
986 aria-hidden="true" 1000 aria-hidden="true"
987 fill="none" 1001 fill="none"
988 stroke-linecap="round" 1002 stroke-linecap="round"
989 stroke-linejoin="round" 1003 stroke-linejoin="round"
990 stroke-width="2" 1004 stroke-width="2"
991 viewBox="0 0 24 24" 1005 viewBox="0 0 24 24"
992 stroke="currentColor" 1006 stroke="currentColor"
993 > 1007 >
994 <path 1008 <path
995 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" 1009 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"
996 ></path> 1010 ></path>
997 <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path> 1011 <path d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
998 </svg> 1012 </svg>
999 <span>Настройки</span> 1013 <span>Настройки</span>
1000 </a> 1014 </a>
1001 </li> 1015 </li>
1002 <li class="flex"> 1016 <li class="flex">
1003 <a 1017 <a
1004 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" 1018 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"
1005 href="{{ route('admin.logout') }}" 1019 href="{{ route('admin.logout') }}"
1006 > 1020 >
1007 <svg 1021 <svg
1008 class="w-4 h-4 mr-3" 1022 class="w-4 h-4 mr-3"
1009 aria-hidden="true" 1023 aria-hidden="true"
1010 fill="none" 1024 fill="none"
1011 stroke-linecap="round" 1025 stroke-linecap="round"
1012 stroke-linejoin="round" 1026 stroke-linejoin="round"
1013 stroke-width="2" 1027 stroke-width="2"
1014 viewBox="0 0 24 24" 1028 viewBox="0 0 24 24"
1015 stroke="currentColor" 1029 stroke="currentColor"
1016 > 1030 >
1017 <path 1031 <path
1018 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" 1032 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"
1019 ></path> 1033 ></path>
1020 </svg> 1034 </svg>
1021 <span>Выход</span> 1035 <span>Выход</span>
1022 </a> 1036 </a>
1023 </li> 1037 </li>
1024 </ul> 1038 </ul>
1025 </template> 1039 </template>
1026 </li> 1040 </li>
1027 </ul> 1041 </ul>
1028 </div> 1042 </div>
1029 </header> 1043 </header>
1030 <main class="h-full overflow-y-auto"> 1044 <main class="h-full overflow-y-auto">
1031 <div class="container px-6 mx-auto grid"> 1045 <div class="container px-6 mx-auto grid">
1032 <h2 1046 <h2
1033 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200" 1047 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"
1034 > 1048 >
1035 {{$title}} 1049 {{$title}}
1036 </h2> 1050 </h2>
1037 <!-- CTA --> 1051 <!-- CTA -->
1038 <a 1052 <a
1039 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" 1053 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"
1040 href="{{ route('admin.admin-users') }}" 1054 href="{{ route('admin.admin-users') }}"
1041 > 1055 >
1042 <div class="flex items-center"> 1056 <div class="flex items-center">
1043 <svg 1057 <svg
1044 class="w-5 h-5 mr-2" 1058 class="w-5 h-5 mr-2"
1045 fill="currentColor" 1059 fill="currentColor"
1046 viewBox="0 0 20 20" 1060 viewBox="0 0 20 20"
1047 > 1061 >
1048 <path 1062 <path
1049 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" 1063 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"
1050 ></path> 1064 ></path>
1051 </svg> 1065 </svg>
1052 <span>Контент для админов</span> 1066 <span>Контент для админов</span>
1053 </div> 1067 </div>
1054 <span>Список админов &RightArrow;</span> 1068 <span>Список админов &RightArrow;</span>
1055 </a> 1069 </a>
1056 1070
1057 @if ($message = Session::get('success')) 1071 @if ($message = Session::get('success'))
1058 <section> 1072 <section>
1059 <div class="alert alert-success alert-dismissible mt-0" role="alert"> 1073 <div class="alert alert-success alert-dismissible mt-0" role="alert">
1060 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> 1074 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть">
1061 <span aria-hidden="true">&times;</span> 1075 <span aria-hidden="true">&times;</span>
1062 </button> 1076 </button>
1063 {{ $message }} 1077 {{ $message }}
1064 </div> 1078 </div>
1065 </section> 1079 </section>
1066 @endif 1080 @endif
1067 1081
1068 @if ($errors->any()) 1082 @if ($errors->any())
1069 <section> 1083 <section>
1070 <div class="alert alert-danger alert-dismissible mt-4" role="alert"> 1084 <div class="alert alert-danger alert-dismissible mt-4" role="alert">
1071 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть"> 1085 <button type="button" class="close" data-dismiss="alert" aria-label="Закрыть">
1072 <span aria-hidden="true">&times;</span> 1086 <span aria-hidden="true">&times;</span>
1073 </button> 1087 </button>
1074 <ul class="mb-0"> 1088 <ul class="mb-0">
1075 @foreach ($errors->all() as $error) 1089 @foreach ($errors->all() as $error)
1076 <li>{{ $error }}</li> 1090 <li>{{ $error }}</li>
1077 @endforeach 1091 @endforeach
1078 </ul> 1092 </ul>
1079 </div> 1093 </div>
1080 </section> 1094 </section>
1081 @endif 1095 @endif
1082 1096
1083 @yield('content') 1097 @yield('content')
1084 1098
1085 <!-- Cards 1099 <!-- Cards
1086 <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4"> 1100 <div class="grid gap-6 mb-8 md:grid-cols-2 xl:grid-cols-4">
1087 1101
1088 <div 1102 <div
1089 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1103 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1090 > 1104 >
1091 <div 1105 <div
1092 class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500" 1106 class="p-3 mr-4 text-orange-500 bg-orange-100 rounded-full dark:text-orange-100 dark:bg-orange-500"
1093 > 1107 >
1094 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 1108 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
1095 <path 1109 <path
1096 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" 1110 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"
1097 ></path> 1111 ></path>
1098 </svg> 1112 </svg>
1099 </div> 1113 </div>
1100 <div> 1114 <div>
1101 <p 1115 <p
1102 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" 1116 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
1103 > 1117 >
1104 Total clients 1118 Total clients
1105 </p> 1119 </p>
1106 <p 1120 <p
1107 class="text-lg font-semibold text-gray-700 dark:text-gray-200" 1121 class="text-lg font-semibold text-gray-700 dark:text-gray-200"
1108 > 1122 >
1109 6389 1123 6389
1110 </p> 1124 </p>
1111 </div> 1125 </div>
1112 </div> 1126 </div>
1113 1127
1114 <div 1128 <div
1115 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1129 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1116 > 1130 >
1117 <div 1131 <div
1118 class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500" 1132 class="p-3 mr-4 text-green-500 bg-green-100 rounded-full dark:text-green-100 dark:bg-green-500"
1119 > 1133 >
1120 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 1134 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
1121 <path 1135 <path
1122 fill-rule="evenodd" 1136 fill-rule="evenodd"
1123 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" 1137 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"
1124 clip-rule="evenodd" 1138 clip-rule="evenodd"
1125 ></path> 1139 ></path>
1126 </svg> 1140 </svg>
1127 </div> 1141 </div>
1128 <div> 1142 <div>
1129 <p 1143 <p
1130 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" 1144 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
1131 > 1145 >
1132 Account balance 1146 Account balance
1133 </p> 1147 </p>
1134 <p 1148 <p
1135 class="text-lg font-semibold text-gray-700 dark:text-gray-200" 1149 class="text-lg font-semibold text-gray-700 dark:text-gray-200"
1136 > 1150 >
1137 $ 46,760.89 1151 $ 46,760.89
1138 </p> 1152 </p>
1139 </div> 1153 </div>
1140 </div> 1154 </div>
1141 1155
1142 <div 1156 <div
1143 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1157 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1144 > 1158 >
1145 <div 1159 <div
1146 class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500" 1160 class="p-3 mr-4 text-blue-500 bg-blue-100 rounded-full dark:text-blue-100 dark:bg-blue-500"
1147 > 1161 >
1148 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 1162 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
1149 <path 1163 <path
1150 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" 1164 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"
1151 ></path> 1165 ></path>
1152 </svg> 1166 </svg>
1153 </div> 1167 </div>
1154 <div> 1168 <div>
1155 <p 1169 <p
1156 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" 1170 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
1157 > 1171 >
1158 New sales 1172 New sales
1159 </p> 1173 </p>
1160 <p 1174 <p
1161 class="text-lg font-semibold text-gray-700 dark:text-gray-200" 1175 class="text-lg font-semibold text-gray-700 dark:text-gray-200"
1162 > 1176 >
1163 376 1177 376
1164 </p> 1178 </p>
1165 </div> 1179 </div>
1166 </div> 1180 </div>
1167 1181
1168 <div 1182 <div
1169 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1183 class="flex items-center p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1170 > 1184 >
1171 <div 1185 <div
1172 class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500" 1186 class="p-3 mr-4 text-teal-500 bg-teal-100 rounded-full dark:text-teal-100 dark:bg-teal-500"
1173 > 1187 >
1174 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 1188 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
1175 <path 1189 <path
1176 fill-rule="evenodd" 1190 fill-rule="evenodd"
1177 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" 1191 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"
1178 clip-rule="evenodd" 1192 clip-rule="evenodd"
1179 ></path> 1193 ></path>
1180 </svg> 1194 </svg>
1181 </div> 1195 </div>
1182 <div> 1196 <div>
1183 <p 1197 <p
1184 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400" 1198 class="mb-2 text-sm font-medium text-gray-600 dark:text-gray-400"
1185 > 1199 >
1186 Pending contacts 1200 Pending contacts
1187 </p> 1201 </p>
1188 <p 1202 <p
1189 class="text-lg font-semibold text-gray-700 dark:text-gray-200" 1203 class="text-lg font-semibold text-gray-700 dark:text-gray-200"
1190 > 1204 >
1191 35 1205 35
1192 </p> 1206 </p>
1193 </div> 1207 </div>
1194 </div> 1208 </div>
1195 </div> 1209 </div>
1196 --> 1210 -->
1197 <!-- New Table 1211 <!-- New Table
1198 <div class="w-full overflow-hidden rounded-lg shadow-xs"> 1212 <div class="w-full overflow-hidden rounded-lg shadow-xs">
1199 <div class="w-full overflow-x-auto"> 1213 <div class="w-full overflow-x-auto">
1200 <table class="w-full whitespace-no-wrap"> 1214 <table class="w-full whitespace-no-wrap">
1201 <thead> 1215 <thead>
1202 <tr 1216 <tr
1203 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" 1217 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"
1204 > 1218 >
1205 <th class="px-4 py-3">Client</th> 1219 <th class="px-4 py-3">Client</th>
1206 <th class="px-4 py-3">Amount</th> 1220 <th class="px-4 py-3">Amount</th>
1207 <th class="px-4 py-3">Status</th> 1221 <th class="px-4 py-3">Status</th>
1208 <th class="px-4 py-3">Date</th> 1222 <th class="px-4 py-3">Date</th>
1209 </tr> 1223 </tr>
1210 </thead> 1224 </thead>
1211 <tbody 1225 <tbody
1212 class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" 1226 class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800"
1213 > 1227 >
1214 <tr class="text-gray-700 dark:text-gray-400"> 1228 <tr class="text-gray-700 dark:text-gray-400">
1215 <td class="px-4 py-3"> 1229 <td class="px-4 py-3">
1216 <div class="flex items-center text-sm"> 1230 <div class="flex items-center text-sm">
1217 1231
1218 <div 1232 <div
1219 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1233 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1220 > 1234 >
1221 <img 1235 <img
1222 class="object-cover w-full h-full rounded-full" 1236 class="object-cover w-full h-full rounded-full"
1223 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" 1237 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"
1224 alt="" 1238 alt=""
1225 loading="lazy" 1239 loading="lazy"
1226 /> 1240 />
1227 <div 1241 <div
1228 class="absolute inset-0 rounded-full shadow-inner" 1242 class="absolute inset-0 rounded-full shadow-inner"
1229 aria-hidden="true" 1243 aria-hidden="true"
1230 ></div> 1244 ></div>
1231 </div> 1245 </div>
1232 <div> 1246 <div>
1233 <p class="font-semibold">Hans Burger</p> 1247 <p class="font-semibold">Hans Burger</p>
1234 <p class="text-xs text-gray-600 dark:text-gray-400"> 1248 <p class="text-xs text-gray-600 dark:text-gray-400">
1235 10x Developer 1249 10x Developer
1236 </p> 1250 </p>
1237 </div> 1251 </div>
1238 </div> 1252 </div>
1239 </td> 1253 </td>
1240 <td class="px-4 py-3 text-sm"> 1254 <td class="px-4 py-3 text-sm">
1241 $ 863.45 1255 $ 863.45
1242 </td> 1256 </td>
1243 <td class="px-4 py-3 text-xs"> 1257 <td class="px-4 py-3 text-xs">
1244 <span 1258 <span
1245 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" 1259 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"
1246 > 1260 >
1247 Approved 1261 Approved
1248 </span> 1262 </span>
1249 </td> 1263 </td>
1250 <td class="px-4 py-3 text-sm"> 1264 <td class="px-4 py-3 text-sm">
1251 6/10/2020 1265 6/10/2020
1252 </td> 1266 </td>
1253 </tr> 1267 </tr>
1254 1268
1255 <tr class="text-gray-700 dark:text-gray-400"> 1269 <tr class="text-gray-700 dark:text-gray-400">
1256 <td class="px-4 py-3"> 1270 <td class="px-4 py-3">
1257 <div class="flex items-center text-sm"> 1271 <div class="flex items-center text-sm">
1258 1272
1259 <div 1273 <div
1260 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1274 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1261 > 1275 >
1262 <img 1276 <img
1263 class="object-cover w-full h-full rounded-full" 1277 class="object-cover w-full h-full rounded-full"
1264 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" 1278 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"
1265 alt="" 1279 alt=""
1266 loading="lazy" 1280 loading="lazy"
1267 /> 1281 />
1268 <div 1282 <div
1269 class="absolute inset-0 rounded-full shadow-inner" 1283 class="absolute inset-0 rounded-full shadow-inner"
1270 aria-hidden="true" 1284 aria-hidden="true"
1271 ></div> 1285 ></div>
1272 </div> 1286 </div>
1273 <div> 1287 <div>
1274 <p class="font-semibold">Jolina Angelie</p> 1288 <p class="font-semibold">Jolina Angelie</p>
1275 <p class="text-xs text-gray-600 dark:text-gray-400"> 1289 <p class="text-xs text-gray-600 dark:text-gray-400">
1276 Unemployed 1290 Unemployed
1277 </p> 1291 </p>
1278 </div> 1292 </div>
1279 </div> 1293 </div>
1280 </td> 1294 </td>
1281 <td class="px-4 py-3 text-sm"> 1295 <td class="px-4 py-3 text-sm">
1282 $ 369.95 1296 $ 369.95
1283 </td> 1297 </td>
1284 <td class="px-4 py-3 text-xs"> 1298 <td class="px-4 py-3 text-xs">
1285 <span 1299 <span
1286 class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600" 1300 class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600"
1287 > 1301 >
1288 Pending 1302 Pending
1289 </span> 1303 </span>
1290 </td> 1304 </td>
1291 <td class="px-4 py-3 text-sm"> 1305 <td class="px-4 py-3 text-sm">
1292 6/10/2020 1306 6/10/2020
1293 </td> 1307 </td>
1294 </tr> 1308 </tr>
1295 1309
1296 <tr class="text-gray-700 dark:text-gray-400"> 1310 <tr class="text-gray-700 dark:text-gray-400">
1297 <td class="px-4 py-3"> 1311 <td class="px-4 py-3">
1298 <div class="flex items-center text-sm"> 1312 <div class="flex items-center text-sm">
1299 1313
1300 <div 1314 <div
1301 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1315 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1302 > 1316 >
1303 <img 1317 <img
1304 class="object-cover w-full h-full rounded-full" 1318 class="object-cover w-full h-full rounded-full"
1305 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" 1319 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"
1306 alt="" 1320 alt=""
1307 loading="lazy" 1321 loading="lazy"
1308 /> 1322 />
1309 <div 1323 <div
1310 class="absolute inset-0 rounded-full shadow-inner" 1324 class="absolute inset-0 rounded-full shadow-inner"
1311 aria-hidden="true" 1325 aria-hidden="true"
1312 ></div> 1326 ></div>
1313 </div> 1327 </div>
1314 <div> 1328 <div>
1315 <p class="font-semibold">Sarah Curry</p> 1329 <p class="font-semibold">Sarah Curry</p>
1316 <p class="text-xs text-gray-600 dark:text-gray-400"> 1330 <p class="text-xs text-gray-600 dark:text-gray-400">
1317 Designer 1331 Designer
1318 </p> 1332 </p>
1319 </div> 1333 </div>
1320 </div> 1334 </div>
1321 </td> 1335 </td>
1322 <td class="px-4 py-3 text-sm"> 1336 <td class="px-4 py-3 text-sm">
1323 $ 86.00 1337 $ 86.00
1324 </td> 1338 </td>
1325 <td class="px-4 py-3 text-xs"> 1339 <td class="px-4 py-3 text-xs">
1326 <span 1340 <span
1327 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" 1341 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"
1328 > 1342 >
1329 Denied 1343 Denied
1330 </span> 1344 </span>
1331 </td> 1345 </td>
1332 <td class="px-4 py-3 text-sm"> 1346 <td class="px-4 py-3 text-sm">
1333 6/10/2020 1347 6/10/2020
1334 </td> 1348 </td>
1335 </tr> 1349 </tr>
1336 1350
1337 <tr class="text-gray-700 dark:text-gray-400"> 1351 <tr class="text-gray-700 dark:text-gray-400">
1338 <td class="px-4 py-3"> 1352 <td class="px-4 py-3">
1339 <div class="flex items-center text-sm"> 1353 <div class="flex items-center text-sm">
1340 1354
1341 <div 1355 <div
1342 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1356 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1343 > 1357 >
1344 <img 1358 <img
1345 class="object-cover w-full h-full rounded-full" 1359 class="object-cover w-full h-full rounded-full"
1346 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" 1360 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"
1347 alt="" 1361 alt=""
1348 loading="lazy" 1362 loading="lazy"
1349 /> 1363 />
1350 <div 1364 <div
1351 class="absolute inset-0 rounded-full shadow-inner" 1365 class="absolute inset-0 rounded-full shadow-inner"
1352 aria-hidden="true" 1366 aria-hidden="true"
1353 ></div> 1367 ></div>
1354 </div> 1368 </div>
1355 <div> 1369 <div>
1356 <p class="font-semibold">Rulia Joberts</p> 1370 <p class="font-semibold">Rulia Joberts</p>
1357 <p class="text-xs text-gray-600 dark:text-gray-400"> 1371 <p class="text-xs text-gray-600 dark:text-gray-400">
1358 Actress 1372 Actress
1359 </p> 1373 </p>
1360 </div> 1374 </div>
1361 </div> 1375 </div>
1362 </td> 1376 </td>
1363 <td class="px-4 py-3 text-sm"> 1377 <td class="px-4 py-3 text-sm">
1364 $ 1276.45 1378 $ 1276.45
1365 </td> 1379 </td>
1366 <td class="px-4 py-3 text-xs"> 1380 <td class="px-4 py-3 text-xs">
1367 <span 1381 <span
1368 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" 1382 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"
1369 > 1383 >
1370 Approved 1384 Approved
1371 </span> 1385 </span>
1372 </td> 1386 </td>
1373 <td class="px-4 py-3 text-sm"> 1387 <td class="px-4 py-3 text-sm">
1374 6/10/2020 1388 6/10/2020
1375 </td> 1389 </td>
1376 </tr> 1390 </tr>
1377 1391
1378 <tr class="text-gray-700 dark:text-gray-400"> 1392 <tr class="text-gray-700 dark:text-gray-400">
1379 <td class="px-4 py-3"> 1393 <td class="px-4 py-3">
1380 <div class="flex items-center text-sm"> 1394 <div class="flex items-center text-sm">
1381 1395
1382 <div 1396 <div
1383 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1397 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1384 > 1398 >
1385 <img 1399 <img
1386 class="object-cover w-full h-full rounded-full" 1400 class="object-cover w-full h-full rounded-full"
1387 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" 1401 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"
1388 alt="" 1402 alt=""
1389 loading="lazy" 1403 loading="lazy"
1390 /> 1404 />
1391 <div 1405 <div
1392 class="absolute inset-0 rounded-full shadow-inner" 1406 class="absolute inset-0 rounded-full shadow-inner"
1393 aria-hidden="true" 1407 aria-hidden="true"
1394 ></div> 1408 ></div>
1395 </div> 1409 </div>
1396 <div> 1410 <div>
1397 <p class="font-semibold">Wenzel Dashington</p> 1411 <p class="font-semibold">Wenzel Dashington</p>
1398 <p class="text-xs text-gray-600 dark:text-gray-400"> 1412 <p class="text-xs text-gray-600 dark:text-gray-400">
1399 Actor 1413 Actor
1400 </p> 1414 </p>
1401 </div> 1415 </div>
1402 </div> 1416 </div>
1403 </td> 1417 </td>
1404 <td class="px-4 py-3 text-sm"> 1418 <td class="px-4 py-3 text-sm">
1405 $ 863.45 1419 $ 863.45
1406 </td> 1420 </td>
1407 <td class="px-4 py-3 text-xs"> 1421 <td class="px-4 py-3 text-xs">
1408 <span 1422 <span
1409 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" 1423 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"
1410 > 1424 >
1411 Expired 1425 Expired
1412 </span> 1426 </span>
1413 </td> 1427 </td>
1414 <td class="px-4 py-3 text-sm"> 1428 <td class="px-4 py-3 text-sm">
1415 6/10/2020 1429 6/10/2020
1416 </td> 1430 </td>
1417 </tr> 1431 </tr>
1418 1432
1419 <tr class="text-gray-700 dark:text-gray-400"> 1433 <tr class="text-gray-700 dark:text-gray-400">
1420 <td class="px-4 py-3"> 1434 <td class="px-4 py-3">
1421 <div class="flex items-center text-sm"> 1435 <div class="flex items-center text-sm">
1422 1436
1423 <div 1437 <div
1424 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1438 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1425 > 1439 >
1426 <img 1440 <img
1427 class="object-cover w-full h-full rounded-full" 1441 class="object-cover w-full h-full rounded-full"
1428 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" 1442 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"
1429 alt="" 1443 alt=""
1430 loading="lazy" 1444 loading="lazy"
1431 /> 1445 />
1432 <div 1446 <div
1433 class="absolute inset-0 rounded-full shadow-inner" 1447 class="absolute inset-0 rounded-full shadow-inner"
1434 aria-hidden="true" 1448 aria-hidden="true"
1435 ></div> 1449 ></div>
1436 </div> 1450 </div>
1437 <div> 1451 <div>
1438 <p class="font-semibold">Dave Li</p> 1452 <p class="font-semibold">Dave Li</p>
1439 <p class="text-xs text-gray-600 dark:text-gray-400"> 1453 <p class="text-xs text-gray-600 dark:text-gray-400">
1440 Influencer 1454 Influencer
1441 </p> 1455 </p>
1442 </div> 1456 </div>
1443 </div> 1457 </div>
1444 </td> 1458 </td>
1445 <td class="px-4 py-3 text-sm"> 1459 <td class="px-4 py-3 text-sm">
1446 $ 863.45 1460 $ 863.45
1447 </td> 1461 </td>
1448 <td class="px-4 py-3 text-xs"> 1462 <td class="px-4 py-3 text-xs">
1449 <span 1463 <span
1450 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" 1464 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"
1451 > 1465 >
1452 Approved 1466 Approved
1453 </span> 1467 </span>
1454 </td> 1468 </td>
1455 <td class="px-4 py-3 text-sm"> 1469 <td class="px-4 py-3 text-sm">
1456 6/10/2020 1470 6/10/2020
1457 </td> 1471 </td>
1458 </tr> 1472 </tr>
1459 1473
1460 <tr class="text-gray-700 dark:text-gray-400"> 1474 <tr class="text-gray-700 dark:text-gray-400">
1461 <td class="px-4 py-3"> 1475 <td class="px-4 py-3">
1462 <div class="flex items-center text-sm"> 1476 <div class="flex items-center text-sm">
1463 1477
1464 <div 1478 <div
1465 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1479 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1466 > 1480 >
1467 <img 1481 <img
1468 class="object-cover w-full h-full rounded-full" 1482 class="object-cover w-full h-full rounded-full"
1469 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" 1483 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"
1470 alt="" 1484 alt=""
1471 loading="lazy" 1485 loading="lazy"
1472 /> 1486 />
1473 <div 1487 <div
1474 class="absolute inset-0 rounded-full shadow-inner" 1488 class="absolute inset-0 rounded-full shadow-inner"
1475 aria-hidden="true" 1489 aria-hidden="true"
1476 ></div> 1490 ></div>
1477 </div> 1491 </div>
1478 <div> 1492 <div>
1479 <p class="font-semibold">Maria Ramovic</p> 1493 <p class="font-semibold">Maria Ramovic</p>
1480 <p class="text-xs text-gray-600 dark:text-gray-400"> 1494 <p class="text-xs text-gray-600 dark:text-gray-400">
1481 Runner 1495 Runner
1482 </p> 1496 </p>
1483 </div> 1497 </div>
1484 </div> 1498 </div>
1485 </td> 1499 </td>
1486 <td class="px-4 py-3 text-sm"> 1500 <td class="px-4 py-3 text-sm">
1487 $ 863.45 1501 $ 863.45
1488 </td> 1502 </td>
1489 <td class="px-4 py-3 text-xs"> 1503 <td class="px-4 py-3 text-xs">
1490 <span 1504 <span
1491 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" 1505 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"
1492 > 1506 >
1493 Approved 1507 Approved
1494 </span> 1508 </span>
1495 </td> 1509 </td>
1496 <td class="px-4 py-3 text-sm"> 1510 <td class="px-4 py-3 text-sm">
1497 6/10/2020 1511 6/10/2020
1498 </td> 1512 </td>
1499 </tr> 1513 </tr>
1500 1514
1501 <tr class="text-gray-700 dark:text-gray-400"> 1515 <tr class="text-gray-700 dark:text-gray-400">
1502 <td class="px-4 py-3"> 1516 <td class="px-4 py-3">
1503 <div class="flex items-center text-sm"> 1517 <div class="flex items-center text-sm">
1504 1518
1505 <div 1519 <div
1506 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1520 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1507 > 1521 >
1508 <img 1522 <img
1509 class="object-cover w-full h-full rounded-full" 1523 class="object-cover w-full h-full rounded-full"
1510 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" 1524 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"
1511 alt="" 1525 alt=""
1512 loading="lazy" 1526 loading="lazy"
1513 /> 1527 />
1514 <div 1528 <div
1515 class="absolute inset-0 rounded-full shadow-inner" 1529 class="absolute inset-0 rounded-full shadow-inner"
1516 aria-hidden="true" 1530 aria-hidden="true"
1517 ></div> 1531 ></div>
1518 </div> 1532 </div>
1519 <div> 1533 <div>
1520 <p class="font-semibold">Hitney Wouston</p> 1534 <p class="font-semibold">Hitney Wouston</p>
1521 <p class="text-xs text-gray-600 dark:text-gray-400"> 1535 <p class="text-xs text-gray-600 dark:text-gray-400">
1522 Singer 1536 Singer
1523 </p> 1537 </p>
1524 </div> 1538 </div>
1525 </div> 1539 </div>
1526 </td> 1540 </td>
1527 <td class="px-4 py-3 text-sm"> 1541 <td class="px-4 py-3 text-sm">
1528 $ 863.45 1542 $ 863.45
1529 </td> 1543 </td>
1530 <td class="px-4 py-3 text-xs"> 1544 <td class="px-4 py-3 text-xs">
1531 <span 1545 <span
1532 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" 1546 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"
1533 > 1547 >
1534 Approved 1548 Approved
1535 </span> 1549 </span>
1536 </td> 1550 </td>
1537 <td class="px-4 py-3 text-sm"> 1551 <td class="px-4 py-3 text-sm">
1538 6/10/2020 1552 6/10/2020
1539 </td> 1553 </td>
1540 </tr> 1554 </tr>
1541 1555
1542 <tr class="text-gray-700 dark:text-gray-400"> 1556 <tr class="text-gray-700 dark:text-gray-400">
1543 <td class="px-4 py-3"> 1557 <td class="px-4 py-3">
1544 <div class="flex items-center text-sm"> 1558 <div class="flex items-center text-sm">
1545 1559
1546 <div 1560 <div
1547 class="relative hidden w-8 h-8 mr-3 rounded-full md:block" 1561 class="relative hidden w-8 h-8 mr-3 rounded-full md:block"
1548 > 1562 >
1549 <img 1563 <img
1550 class="object-cover w-full h-full rounded-full" 1564 class="object-cover w-full h-full rounded-full"
1551 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" 1565 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"
1552 alt="" 1566 alt=""
1553 loading="lazy" 1567 loading="lazy"
1554 /> 1568 />
1555 <div 1569 <div
1556 class="absolute inset-0 rounded-full shadow-inner" 1570 class="absolute inset-0 rounded-full shadow-inner"
1557 aria-hidden="true" 1571 aria-hidden="true"
1558 ></div> 1572 ></div>
1559 </div> 1573 </div>
1560 <div> 1574 <div>
1561 <p class="font-semibold">Hans Burger</p> 1575 <p class="font-semibold">Hans Burger</p>
1562 <p class="text-xs text-gray-600 dark:text-gray-400"> 1576 <p class="text-xs text-gray-600 dark:text-gray-400">
1563 10x Developer 1577 10x Developer
1564 </p> 1578 </p>
1565 </div> 1579 </div>
1566 </div> 1580 </div>
1567 </td> 1581 </td>
1568 <td class="px-4 py-3 text-sm"> 1582 <td class="px-4 py-3 text-sm">
1569 $ 863.45 1583 $ 863.45
1570 </td> 1584 </td>
1571 <td class="px-4 py-3 text-xs"> 1585 <td class="px-4 py-3 text-xs">
1572 <span 1586 <span
1573 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" 1587 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"
1574 > 1588 >
1575 Approved 1589 Approved
1576 </span> 1590 </span>
1577 </td> 1591 </td>
1578 <td class="px-4 py-3 text-sm"> 1592 <td class="px-4 py-3 text-sm">
1579 6/10/2020 1593 6/10/2020
1580 </td> 1594 </td>
1581 </tr> 1595 </tr>
1582 </tbody> 1596 </tbody>
1583 </table> 1597 </table>
1584 </div> 1598 </div>
1585 <div 1599 <div
1586 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" 1600 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"
1587 > 1601 >
1588 <span class="flex items-center col-span-3"> 1602 <span class="flex items-center col-span-3">
1589 Showing 21-30 of 100 1603 Showing 21-30 of 100
1590 </span> 1604 </span>
1591 <span class="col-span-2"></span> 1605 <span class="col-span-2"></span>
1592 1606
1593 <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end"> 1607 <span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end">
1594 <nav aria-label="Table navigation"> 1608 <nav aria-label="Table navigation">
1595 <ul class="inline-flex items-center"> 1609 <ul class="inline-flex items-center">
1596 <li> 1610 <li>
1597 <button 1611 <button
1598 class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple" 1612 class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple"
1599 aria-label="Previous" 1613 aria-label="Previous"
1600 > 1614 >
1601 <svg 1615 <svg
1602 aria-hidden="true" 1616 aria-hidden="true"
1603 class="w-4 h-4 fill-current" 1617 class="w-4 h-4 fill-current"
1604 viewBox="0 0 20 20" 1618 viewBox="0 0 20 20"
1605 > 1619 >
1606 <path 1620 <path
1607 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" 1621 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"
1608 clip-rule="evenodd" 1622 clip-rule="evenodd"
1609 fill-rule="evenodd" 1623 fill-rule="evenodd"
1610 ></path> 1624 ></path>
1611 </svg> 1625 </svg>
1612 </button> 1626 </button>
1613 </li> 1627 </li>
1614 <li> 1628 <li>
1615 <button 1629 <button
1616 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1630 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1617 > 1631 >
1618 1 1632 1
1619 </button> 1633 </button>
1620 </li> 1634 </li>
1621 <li> 1635 <li>
1622 <button 1636 <button
1623 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1637 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1624 > 1638 >
1625 2 1639 2
1626 </button> 1640 </button>
1627 </li> 1641 </li>
1628 <li> 1642 <li>
1629 <button 1643 <button
1630 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" 1644 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"
1631 > 1645 >
1632 3 1646 3
1633 </button> 1647 </button>
1634 </li> 1648 </li>
1635 <li> 1649 <li>
1636 <button 1650 <button
1637 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1651 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1638 > 1652 >
1639 4 1653 4
1640 </button> 1654 </button>
1641 </li> 1655 </li>
1642 <li> 1656 <li>
1643 <span class="px-3 py-1">...</span> 1657 <span class="px-3 py-1">...</span>
1644 </li> 1658 </li>
1645 <li> 1659 <li>
1646 <button 1660 <button
1647 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1661 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1648 > 1662 >
1649 8 1663 8
1650 </button> 1664 </button>
1651 </li> 1665 </li>
1652 <li> 1666 <li>
1653 <button 1667 <button
1654 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple" 1668 class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple"
1655 > 1669 >
1656 9 1670 9
1657 </button> 1671 </button>
1658 </li> 1672 </li>
1659 <li> 1673 <li>
1660 <button 1674 <button
1661 class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple" 1675 class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple"
1662 aria-label="Next" 1676 aria-label="Next"
1663 > 1677 >
1664 <svg 1678 <svg
1665 class="w-4 h-4 fill-current" 1679 class="w-4 h-4 fill-current"
1666 aria-hidden="true" 1680 aria-hidden="true"
1667 viewBox="0 0 20 20" 1681 viewBox="0 0 20 20"
1668 > 1682 >
1669 <path 1683 <path
1670 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" 1684 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"
1671 clip-rule="evenodd" 1685 clip-rule="evenodd"
1672 fill-rule="evenodd" 1686 fill-rule="evenodd"
1673 ></path> 1687 ></path>
1674 </svg> 1688 </svg>
1675 </button> 1689 </button>
1676 </li> 1690 </li>
1677 </ul> 1691 </ul>
1678 </nav> 1692 </nav>
1679 </span> 1693 </span>
1680 </div> 1694 </div>
1681 </div> 1695 </div>
1682 --> 1696 -->
1683 <!-- Charts --> 1697 <!-- Charts -->
1684 <!-- 1698 <!--
1685 <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"> 1699 <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200">
1686 Графики 1700 Графики
1687 </h2> 1701 </h2>
1688 <div class="grid gap-6 mb-8 md:grid-cols-2"> 1702 <div class="grid gap-6 mb-8 md:grid-cols-2">
1689 <div 1703 <div
1690 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1704 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1691 > 1705 >
1692 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> 1706 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300">
1693 Revenue 1707 Revenue
1694 </h4> 1708 </h4>
1695 <canvas id="pie"></canvas> 1709 <canvas id="pie"></canvas>
1696 <div 1710 <div
1697 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" 1711 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400"
1698 > 1712 >
1699 1713
1700 <div class="flex items-center"> 1714 <div class="flex items-center">
1701 <span 1715 <span
1702 class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full" 1716 class="inline-block w-3 h-3 mr-1 bg-blue-500 rounded-full"
1703 ></span> 1717 ></span>
1704 <span>Shirts</span> 1718 <span>Shirts</span>
1705 </div> 1719 </div>
1706 <div class="flex items-center"> 1720 <div class="flex items-center">
1707 <span 1721 <span
1708 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" 1722 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full"
1709 ></span> 1723 ></span>
1710 <span>Shoes</span> 1724 <span>Shoes</span>
1711 </div> 1725 </div>
1712 <div class="flex items-center"> 1726 <div class="flex items-center">
1713 <span 1727 <span
1714 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" 1728 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full"
1715 ></span> 1729 ></span>
1716 <span>Bags</span> 1730 <span>Bags</span>
1717 </div> 1731 </div>
1718 </div> 1732 </div>
1719 </div> 1733 </div>
1720 <div 1734 <div
1721 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800" 1735 class="min-w-0 p-4 bg-white rounded-lg shadow-xs dark:bg-gray-800"
1722 > 1736 >
1723 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300"> 1737 <h4 class="mb-4 font-semibold text-gray-800 dark:text-gray-300">
1724 Traffic 1738 Traffic
1725 </h4> 1739 </h4>
1726 <canvas id="line"></canvas> 1740 <canvas id="line"></canvas>
1727 <div 1741 <div
1728 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400" 1742 class="flex justify-center mt-4 space-x-3 text-sm text-gray-600 dark:text-gray-400"
1729 > 1743 >
1730 1744
1731 <div class="flex items-center"> 1745 <div class="flex items-center">
1732 <span 1746 <span
1733 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full" 1747 class="inline-block w-3 h-3 mr-1 bg-teal-600 rounded-full"
1734 ></span> 1748 ></span>
1735 <span>Organic</span> 1749 <span>Organic</span>
1736 </div> 1750 </div>
1737 <div class="flex items-center"> 1751 <div class="flex items-center">
1738 <span 1752 <span
1739 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full" 1753 class="inline-block w-3 h-3 mr-1 bg-purple-600 rounded-full"
1740 ></span> 1754 ></span>
1741 <span>Paid</span> 1755 <span>Paid</span>
1742 </div> 1756 </div>
1743 </div> 1757 </div>
1744 </div> 1758 </div>
1745 </div> 1759 </div>
1746 --> 1760 -->
1747 </div> 1761 </div>
1748 </main> 1762 </main>
1749 </div> 1763 </div>
1750 </div> 1764 </div>
1751 </body> 1765 </body>
1752 @yield('script') 1766 @yield('script')
1753 </html> 1767 </html>
1754 1768
1 <?php 1 <?php
2 2
3 use App\Http\Controllers\Admin\AdminController; 3 use App\Http\Controllers\Admin\AdminController;
4 use App\Http\Controllers\Admin\CategoryController; 4 use App\Http\Controllers\Admin\CategoryController;
5 use App\Http\Controllers\Admin\CategoryEmpController; 5 use App\Http\Controllers\Admin\CategoryEmpController;
6 use App\Http\Controllers\Admin\EducationController;
6 use App\Http\Controllers\Admin\EmployersController; 7 use App\Http\Controllers\Admin\EmployersController;
7 use App\Http\Controllers\Admin\InfoBloksController; 8 use App\Http\Controllers\Admin\InfoBloksController;
8 use App\Http\Controllers\Admin\JobTitlesController; 9 use App\Http\Controllers\Admin\JobTitlesController;
9 use App\Http\Controllers\Admin\UsersController; 10 use App\Http\Controllers\Admin\UsersController;
10 use App\Http\Controllers\Admin\WorkersController; 11 use App\Http\Controllers\Admin\WorkersController;
11 use App\Http\Controllers\Auth\ForgotPasswordController; 12 use App\Http\Controllers\Auth\ForgotPasswordController;
12 use App\Http\Controllers\Auth\LoginController; 13 use App\Http\Controllers\Auth\LoginController;
13 use App\Http\Controllers\Auth\RegisterController; 14 use App\Http\Controllers\Auth\RegisterController;
14 use App\Http\Controllers\CKEditorController; 15 use App\Http\Controllers\CKEditorController;
15 use App\Models\User; 16 use App\Models\User;
16 use App\Http\Controllers\MainController; 17 use App\Http\Controllers\MainController;
17 use App\Http\Controllers\HomeController; 18 use App\Http\Controllers\HomeController;
18 use Illuminate\Support\Facades\Route; 19 use Illuminate\Support\Facades\Route;
19 use App\Http\Controllers\Admin\CompanyController; 20 use App\Http\Controllers\Admin\CompanyController;
20 use App\Http\Controllers\Admin\Ad_EmployersController; 21 use App\Http\Controllers\Admin\Ad_EmployersController;
21 use App\Http\Controllers\Admin\MsgAnswersController; 22 use App\Http\Controllers\Admin\MsgAnswersController;
22 use App\Http\Controllers\Admin\GroupsController; 23 use App\Http\Controllers\Admin\GroupsController;
23 use App\Http\Controllers\PagesController; 24 use App\Http\Controllers\PagesController;
24 use Illuminate\Support\Facades\Storage; 25 use Illuminate\Support\Facades\Storage;
25 26
26 27
27 /* 28 /*
28 |-------------------------------------------------------------------------- 29 |--------------------------------------------------------------------------
29 | Web Routes 30 | Web Routes
30 |-------------------------------------------------------------------------- 31 |--------------------------------------------------------------------------
31 | 32 |
32 | Here is where you can register web routes for your application. These 33 | Here is where you can register web routes for your application. These
33 | routes are loaded by the RouteServiceProvider within a group which 34 | routes are loaded by the RouteServiceProvider within a group which
34 | contains the "web" middleware group. Now create something great! 35 | contains the "web" middleware group. Now create something great!
35 | 36 |
36 */ 37 */
37 /* 38 /*
38 Route::get('/', function () { 39 Route::get('/', function () {
39 return view('welcome'); 40 return view('welcome');
40 })->name('index'); 41 })->name('index');
41 */ 42 */
42 Route::get('/', [MainController::class, 'index'])->name('index'); 43 Route::get('/', [MainController::class, 'index'])->name('index');
43 44
44 //Роуты авторизации, регистрации, восстановления, аутентификации 45 //Роуты авторизации, регистрации, восстановления, аутентификации
45 Auth::routes(['verify' => true]); 46 Auth::routes(['verify' => true]);
46 47
47 // роуты регистрации, авторизации, восстановления пароля, верификации почты 48 // роуты регистрации, авторизации, восстановления пароля, верификации почты
48 /*Route::group([ 49 /*Route::group([
49 'as' => 'auth.', //имя маршрута, например auth.index 50 'as' => 'auth.', //имя маршрута, например auth.index
50 'prefix' => 'auth', // префикс маршрута, например, auth/index 51 'prefix' => 'auth', // префикс маршрута, например, auth/index
51 ], function () { 52 ], function () {
52 //форма регистрации 53 //форма регистрации
53 Route::get('register', [RegisterController::class, 'register'])->name('register'); 54 Route::get('register', [RegisterController::class, 'register'])->name('register');
54 55
55 //создание пользователя 56 //создание пользователя
56 Route::post('register', [RegisterController::class, 'create'])->name('create'); 57 Route::post('register', [RegisterController::class, 'create'])->name('create');
57 58
58 //форма входа авторизации 59 //форма входа авторизации
59 Route::get('login', [LoginController::class, 'login'])->name('login'); 60 Route::get('login', [LoginController::class, 'login'])->name('login');
60 61
61 //аутентификация 62 //аутентификация
62 Route::post('login', [LoginController::class, 'authenticate'])->name('auth'); 63 Route::post('login', [LoginController::class, 'authenticate'])->name('auth');
63 64
64 //выход 65 //выход
65 Route::get('logout', [LoginController::class, 'logout'])->name('logout'); 66 Route::get('logout', [LoginController::class, 'logout'])->name('logout');
66 67
67 //форма ввода адреса почты 68 //форма ввода адреса почты
68 Route::get('forgot-password', [ForgotPasswordController::class, 'form'])->name('forgot-form'); 69 Route::get('forgot-password', [ForgotPasswordController::class, 'form'])->name('forgot-form');
69 70
70 //письмо на почту 71 //письмо на почту
71 Route::post('forgot-password', [ForgotPasswordController::class, 'mail'])->name('forgot-mail'); 72 Route::post('forgot-password', [ForgotPasswordController::class, 'mail'])->name('forgot-mail');
72 73
73 //форма восстановления пароля 74 //форма восстановления пароля
74 Route::get('reset-password/token/{token}/email/{email}', 75 Route::get('reset-password/token/{token}/email/{email}',
75 [ResetPasswordController::class, 'form'] 76 [ResetPasswordController::class, 'form']
76 )->name('reset-form'); 77 )->name('reset-form');
77 78
78 //восстановление пароля 79 //восстановление пароля
79 Route::post('reset-password', 80 Route::post('reset-password',
80 [ResetPasswordController::class, 'reset'] 81 [ResetPasswordController::class, 'reset']
81 )->name('reset-password'); 82 )->name('reset-password');
82 83
83 //сообщение о необходимости проверки адреса почты 84 //сообщение о необходимости проверки адреса почты
84 Route::get('verify-message', [VerifyEmailController::class, 'message'])->name('verify-message'); 85 Route::get('verify-message', [VerifyEmailController::class, 'message'])->name('verify-message');
85 86
86 //подтверждение адреса почты нового пользователя 87 //подтверждение адреса почты нового пользователя
87 Route::get('verify-email/token/{token}/id/{id}', [VerifyEmailController::class, 'verify']) 88 Route::get('verify-email/token/{token}/id/{id}', [VerifyEmailController::class, 'verify'])
88 ->where('token', '[a-f0-9]{32}') 89 ->where('token', '[a-f0-9]{32}')
89 ->where('id', '[0-9]+') 90 ->where('id', '[0-9]+')
90 ->name('verify-email'); 91 ->name('verify-email');
91 });*/ 92 });*/
92 93
93 //Личный кабинет пользователя 94 //Личный кабинет пользователя
94 Route::get('/home', [HomeController::class, 'index'])->name('home'); 95 Route::get('/home', [HomeController::class, 'index'])->name('home');
95 96
96 /* 97 /*
97 Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) { 98 Route::post('resend/verification-email', function (\Illuminate\Http\Request $request) {
98 $user = User::where('email',$request->input('email'))->first(); 99 $user = User::where('email',$request->input('email'))->first();
99 100
100 $user->sendEmailVerificationNotification(); 101 $user->sendEmailVerificationNotification();
101 102
102 return 'your response'; 103 return 'your response';
103 })->middleware('throttle:6,1')->name('verification.resend'); 104 })->middleware('throttle:6,1')->name('verification.resend');
104 */ 105 */
105 106
106 // Авторизация, регистрация в админку 107 // Авторизация, регистрация в админку
107 Route::group([ 108 Route::group([
108 'as' => 'admin.', // имя маршрута, например auth.index 109 'as' => 'admin.', // имя маршрута, например auth.index
109 'prefix' => 'admin', // префикс маршрута, например auth/index 110 'prefix' => 'admin', // префикс маршрута, например auth/index
110 'middleware' => ['guest'], 111 'middleware' => ['guest'],
111 ], function () { 112 ], function () {
112 // Форма регистрации 113 // Форма регистрации
113 Route::get('register', [AdminController::class, 'register'])->name('register'); 114 Route::get('register', [AdminController::class, 'register'])->name('register');
114 115
115 // Создание пользователя 116 // Создание пользователя
116 Route::post('register', [AdminController::class, 'create'])->name('create'); 117 Route::post('register', [AdminController::class, 'create'])->name('create');
117 //Форма входа 118 //Форма входа
118 Route::get('login', [AdminController::class, 'login'])->name('login'); 119 Route::get('login', [AdminController::class, 'login'])->name('login');
119 120
120 // аутентификация 121 // аутентификация
121 Route::post('login', [AdminController::class, 'autenticate'])->name('auth'); 122 Route::post('login', [AdminController::class, 'autenticate'])->name('auth');
122 123
123 }); 124 });
124 125
125 // Личный кабинет админки 126 // Личный кабинет админки
126 Route::group([ 127 Route::group([
127 'as' => 'admin.', // имя маршрута, например auth.index 128 'as' => 'admin.', // имя маршрута, например auth.index
128 'prefix' => 'admin', // префикс маршрута, например auth/index 129 'prefix' => 'admin', // префикс маршрута, например auth/index
129 'middleware' => ['auth'], ['admin'], 130 'middleware' => ['auth'], ['admin'],
130 ], function() { 131 ], function() {
131 132
132 // выход 133 // выход
133 Route::get('logout', [AdminController::class, 'logout'])->name('logout'); 134 Route::get('logout', [AdminController::class, 'logout'])->name('logout');
134 135
135 // кабинет главная страница 136 // кабинет главная страница
136 Route::get('cabinet', [AdminController::class, 'index'])->name('index'); 137 Route::get('cabinet', [AdminController::class, 'index'])->name('index');
137 138
138 // кабинет профиль админа - форма 139 // кабинет профиль админа - форма
139 Route::get('profile', [AdminController::class, 'profile'])->name('profile'); 140 Route::get('profile', [AdminController::class, 'profile'])->name('profile');
140 // кабинет профиль админа - сохранение формы 141 // кабинет профиль админа - сохранение формы
141 Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile'); 142 Route::post('profile', [AdminController::class, 'store_profile'])->name('store_profile');
142 143
143 //кабинет сообщения админа 144 //кабинет сообщения админа
144 //Route::get('messages', [AdminController::class, 'profile'])->name('profile'); 145 //Route::get('messages', [AdminController::class, 'profile'])->name('profile');
145 146
146 147
147 // кабинет профиль - форма пароли 148 // кабинет профиль - форма пароли
148 Route::get('password', [AdminController::class, 'profile_password'])->name('password'); 149 Route::get('password', [AdminController::class, 'profile_password'])->name('password');
149 // кабинет профиль - сохранение формы пароля 150 // кабинет профиль - сохранение формы пароля
150 Route::post('password', [AdminController::class, 'profile_password_new'])->name('password'); 151 Route::post('password', [AdminController::class, 'profile_password_new'])->name('password');
151 152
152 153
153 // кабинет профиль пользователя - форма 154 // кабинет профиль пользователя - форма
154 Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile'); 155 Route::get('user-profile/{user}', [AdminController::class, 'profile_user'])->name('user-profile');
155 // кабинет профиль пользователя - сохранение формы 156 // кабинет профиль пользователя - сохранение формы
156 Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile'); 157 Route::post('user-profile/{user}', [AdminController::class, 'store_profile_user'])->name('user-store_profile');
157 158
158 // кабинет профиль работодатель - форма 159 // кабинет профиль работодатель - форма
159 Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile'); 160 Route::get('employer-profile/{employer}', [EmployersController::class, 'form_update_employer'])->name('employer-profile');
160 // кабинет профиль работодатель - сохранение формы 161 // кабинет профиль работодатель - сохранение формы
161 Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile'); 162 Route::post('employer-profile/{employer}', [EmployersController::class, 'update_employer'])->name('update-employer-profile');
163 // кабинет удаление профиль работодателя и юзера
164 Route::delete('employer-profile/delete/{employer}/{user}', [EmployersController::class, 'delete_employer'])->name('delete-employer');
162 165
163 // кабинет профиль работник - форма 166 // кабинет профиль работник - форма
164 Route::get('worker-profile/{worker}', [WorkersController::class, 'form_edit_worker'])->name('worker-profile-edit'); 167 Route::get('worker-profile/{worker}', [WorkersController::class, 'form_edit_worker'])->name('worker-profile-edit');
165 // кабинет профиль работник - сохранение формы 168 // кабинет профиль работник - сохранение формы
166 Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile-update'); 169 Route::post('worker-profile/{worker}', [WorkersController::class, 'form_update_worker'])->name('worker-profile-update');
167 170
168 171
169 // кабинет настройки сайта - форма 172 // кабинет настройки сайта - форма
170 Route::get('config', [AdminController::class, 'config_form'])->name('config'); 173 Route::get('config', [AdminController::class, 'config_form'])->name('config');
171 // кабинет настройки сайта сохранение формы 174 // кабинет настройки сайта сохранение формы
172 Route::post('config', [AdminController::class, 'store_config'])->name('store_config'); 175 Route::post('config', [AdminController::class, 'store_config'])->name('store_config');
173 176
174 // кабинет - пользователи 177 // кабинет - пользователи
175 Route::get('users', [UsersController::class, 'index'])->name('users'); 178 Route::get('users', [UsersController::class, 'index'])->name('users');
176 179
177 // кабинет - пользователи 180 // кабинет - пользователи
178 Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users'); 181 Route::get('admin-users', [AdminController::class, 'index_admin'])->name('admin-users');
179 182
180 // кабинет - работодатели 183 // кабинет - работодатели
181 Route::get('employers', [EmployersController::class, 'index'])->name('employers'); 184 Route::get('employers', [EmployersController::class, 'index'])->name('employers');
182 185
183 // кабинет - соискатели 186 // кабинет - соискатели
184 Route::get('workers', [WorkersController::class, 'index'])->name('workers'); 187 Route::get('workers', [WorkersController::class, 'index'])->name('workers');
185 188
186 // кабинет - вакансии 189 // кабинет - вакансии
187 Route::get('ad-employers', [Ad_EmployersController::class, 'index'])->name('ad-employers'); 190 Route::get('ad-employers', [Ad_EmployersController::class, 'index'])->name('ad-employers');
188 191
189 // кабинет - категории 192 // кабинет - категории
190 //Route::get('categories', [AdminController::class, 'index'])->name('categories'); 193 //Route::get('categories', [AdminController::class, 'index'])->name('categories');
191 /* 194 /*
192 * CRUD-операции над Справочником Категории 195 * CRUD-операции над Справочником Категории
193 */ 196 */
194 Route::resource('categories', CategoryController::class, ['except' => ['show']]); 197 Route::resource('categories', CategoryController::class, ['except' => ['show']]);
195 198
196 // CRUD-операции над справочником Категории для работодателей 199 // CRUD-операции над справочником Категории для работодателей
197 Route::resource('category-emp', CategoryEmpController::class, ['except' => ['show']]); 200 Route::resource('category-emp', CategoryEmpController::class, ['except' => ['show']]);
198 201
202 // CRUD-операции над справочником Образование
203 Route::resource('education', EducationController::class, ['except' => ['show']]);
204
199 //Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles'); 205 //Route::get('job-titles', [AdminController::class, 'index'])->name('job-titles');
200 /* 206 /*
201 * кабинет - CRUD-операции по справочнику должности 207 * кабинет - CRUD-операции по справочнику должности
202 * 208 *
203 */ 209 */
204 Route::resource('job-titles', JobTitlesController::class, ['except' => ['show']]); 210 Route::resource('job-titles', JobTitlesController::class, ['except' => ['show']]);
205 211
206 // кабинет - сообщения (чтение чужих) 212 // кабинет - сообщения (чтение чужих)
207 Route::get('messages', [MsgAnswersController::class, 'messages'])->name('messages'); 213 Route::get('messages', [MsgAnswersController::class, 'messages'])->name('messages');
208 // кабинет - сообщения (админские) 214 // кабинет - сообщения (админские)
209 Route::get('admin-messages', [MsgAnswersController::class, 'admin_messages'])->name('admin-messages'); 215 Route::get('admin-messages', [MsgAnswersController::class, 'admin_messages'])->name('admin-messages');
210 // кабинет - сообщения (админские) 216 // кабинет - сообщения (админские)
211 Route::post('admin-messages', [MsgAnswersController::class, 'admin_messages_post'])->name('admin-messages-post'); 217 Route::post('admin-messages', [MsgAnswersController::class, 'admin_messages_post'])->name('admin-messages-post');
212 // кабинет - sql - конструкция запросов 218 // кабинет - sql - конструкция запросов
213 Route::get('messages-sql', [MsgAnswersController::class, 'messages_sql'])->name('messages-sql'); 219 Route::get('messages-sql', [MsgAnswersController::class, 'messages_sql'])->name('messages-sql');
214 220
215 /* 221 /*
216 * Расписанный подход в описании каждой директорий групп пользователей. 222 * Расписанный подход в описании каждой директорий групп пользователей.
217 */ 223 */
218 // кабинет - группы пользователей 224 // кабинет - группы пользователей
219 Route::get('groups', [GroupsController::class, 'index'])->name('groups'); 225 Route::get('groups', [GroupsController::class, 'index'])->name('groups');
220 // кабинет - добавление форма группы пользователей 226 // кабинет - добавление форма группы пользователей
221 Route::get('groups/add', [GroupsController::class, 'add'])->name('add-group'); 227 Route::get('groups/add', [GroupsController::class, 'add'])->name('add-group');
222 // кабинет - сохранение формы группы пользователей 228 // кабинет - сохранение формы группы пользователей
223 Route::post('groups/add', [GroupsController::class, 'store'])->name('add-group-store'); 229 Route::post('groups/add', [GroupsController::class, 'store'])->name('add-group-store');
224 // кабинет - редактирование форма группы пользователей 230 // кабинет - редактирование форма группы пользователей
225 Route::get('groups/edit/{group}', [GroupsController::class, 'edit'])->name('edit-group'); 231 Route::get('groups/edit/{group}', [GroupsController::class, 'edit'])->name('edit-group');
226 // кабинет - сохранение редактированной формы группы пользователей 232 // кабинет - сохранение редактированной формы группы пользователей
227 Route::post('groups/edit/{group}', [GroupsController::class, 'update'])->name('update-group'); 233 Route::post('groups/edit/{group}', [GroupsController::class, 'update'])->name('update-group');
228 // кабинет - удаление группы пользователей 234 // кабинет - удаление группы пользователей
229 Route::delete('groups/delete/{group}', [GroupsController::class, 'destroy'])->name('delete-group'); 235 Route::delete('groups/delete/{group}', [GroupsController::class, 'destroy'])->name('delete-group');
230 236
231 237
232 // кабинет - список админов 238 // кабинет - список админов
233 Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin'); 239 Route::get('group-admin', [AdminController::class, 'index'])->name('group-admin');
234 240
235 241
236 /////редактор////// кабинет - редактор сайта//////////////////////// 242 /////редактор////// кабинет - редактор сайта////////////////////////
237 Route::get('editor-site', function() { 243 Route::get('editor-site', function() {
238 return view('admin.editor.index'); 244 return view('admin.editor.index');
239 })->name('editor-site'); 245 })->name('editor-site');
240 246
241 247
242 // кабинет - редактор шапки-футера сайта 248 // кабинет - редактор шапки-футера сайта
243 Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks'); 249 Route::get('edit-blocks', [CompanyController::class, 'editblocks'])->name('edit-blocks');
244 Route::get('edit-bloks/add', [CompanyController::class, 'editblock_add'])->name('add-block'); 250 Route::get('edit-bloks/add', [CompanyController::class, 'editblock_add'])->name('add-block');
245 Route::post('edit-bloks/add', [CompanyController::class, 'editblock_store'])->name('add-block-store'); 251 Route::post('edit-bloks/add', [CompanyController::class, 'editblock_store'])->name('add-block-store');
246 Route::get('edit-bloks/ajax', [CompanyController::class, 'editblock_ajax'])->name('ajax.block'); 252 Route::get('edit-bloks/ajax', [CompanyController::class, 'editblock_ajax'])->name('ajax.block');
247 Route::get('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_edit'])->name('edit-block'); 253 Route::get('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_edit'])->name('edit-block');
248 Route::put('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_update'])->name('update-block'); 254 Route::put('edit-bloks/edit/{block}', [CompanyController::class, 'editblock_update'])->name('update-block');
249 Route::delete('edit-bloks/delete/{block}', [CompanyController::class, 'editblock_destroy'])->name('delete-block'); 255 Route::delete('edit-bloks/delete/{block}', [CompanyController::class, 'editblock_destroy'])->name('delete-block');
250 256
251 257
252 // кабинет - редактор должности на главной 258 // кабинет - редактор должности на главной
253 Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main'); 259 Route::get('job-titles-main', [CompanyController::class, 'job_titles_main'])->name('job-titles-main');
254 260
255 // кабинет - редактор работодатели на главной 261 // кабинет - редактор работодатели на главной
256 Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main'); 262 Route::get('employers-main', [CompanyController::class, 'employers_main'])->name('employers-main');
257 263
258 264
259 // кабинет - редактор seo-сайта 265 // кабинет - редактор seo-сайта
260 Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo'); 266 Route::get('editor-seo', [CompanyController::class, 'editor_seo'])->name('editor-seo');
261 Route::get('editor-seo/add', [CompanyController::class, 'editor_seo_add'])->name('add-seo'); 267 Route::get('editor-seo/add', [CompanyController::class, 'editor_seo_add'])->name('add-seo');
262 Route::post('editor-seo/add', [CompanyController::class, 'editor_seo_store'])->name('add-seo-store'); 268 Route::post('editor-seo/add', [CompanyController::class, 'editor_seo_store'])->name('add-seo-store');
263 Route::get('editor-seo/ajax', [CompanyController::class, 'editor_seo_ajax'])->name('ajax.seo'); 269 Route::get('editor-seo/ajax', [CompanyController::class, 'editor_seo_ajax'])->name('ajax.seo');
264 Route::get('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_edit'])->name('edit-seo'); 270 Route::get('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_edit'])->name('edit-seo');
265 Route::put('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_update'])->name('update-seo'); 271 Route::put('editor-seo/edit/{page}', [CompanyController::class, 'editor_seo_update'])->name('update-seo');
266 Route::delete('editor-seo/delete/{page}', [CompanyController::class, 'editor_seo_destroy'])->name('delete-seo'); 272 Route::delete('editor-seo/delete/{page}', [CompanyController::class, 'editor_seo_destroy'])->name('delete-seo');
267 273
268 274
269 // кабинет - редактор страниц 275 // кабинет - редактор страниц
270 Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages'); 276 Route::get('editor-pages', [CompanyController::class, 'editor_pages'])->name('editor-pages');
271 // кабинет - добавление страницы 277 // кабинет - добавление страницы
272 Route::get('editor-pages/add', [CompanyController::class, 'editor_pages_add'])->name('add-page'); 278 Route::get('editor-pages/add', [CompanyController::class, 'editor_pages_add'])->name('add-page');
273 // кабинет - сохранение формы страницы 279 // кабинет - сохранение формы страницы
274 Route::post('editor-page/add', [CompanyController::class, 'editor_pages_store'])->name('add-page-store'); 280 Route::post('editor-page/add', [CompanyController::class, 'editor_pages_store'])->name('add-page-store');
275 // кабинет - редактирование форма страницы 281 // кабинет - редактирование форма страницы
276 Route::get('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_edit'])->name('edit-page'); 282 Route::get('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_edit'])->name('edit-page');
277 // кабинет - сохранение редактированной формы страницы 283 // кабинет - сохранение редактированной формы страницы
278 Route::put('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_update'])->name('update-page'); 284 Route::put('editor-pages/edit/{page}', [CompanyController::class, 'editor_pages_update'])->name('update-page');
279 // кабинет - удаление страницы 285 // кабинет - удаление страницы
280 Route::delete('editor-pages/delete/{page}', [CompanyController::class, 'editor_pages_destroy'])->name('delete-page'); 286 Route::delete('editor-pages/delete/{page}', [CompanyController::class, 'editor_pages_destroy'])->name('delete-page');
281 287
282 288
283 // кабинет - реклама сайта 289 // кабинет - реклама сайта
284 Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames'); 290 Route::get('reclames', [CompanyController::class, 'reclames'])->name('reclames');
285 Route::get('reclames/add', [CompanyController::class, 'reclames_add'])->name('add-reclames'); 291 Route::get('reclames/add', [CompanyController::class, 'reclames_add'])->name('add-reclames');
286 Route::post('reclames/add', [CompanyController::class, 'reclames_store'])->name('add-reclames-store'); 292 Route::post('reclames/add', [CompanyController::class, 'reclames_store'])->name('add-reclames-store');
287 Route::get('reclames/edit/{reclame}', [CompanyController::class, 'reclames_edit'])->name('edit-reclames'); 293 Route::get('reclames/edit/{reclame}', [CompanyController::class, 'reclames_edit'])->name('edit-reclames');
288 Route::put('reclames/edit/{reclame}', [CompanyController::class, 'reclames_update'])->name('update-reclames'); 294 Route::put('reclames/edit/{reclame}', [CompanyController::class, 'reclames_update'])->name('update-reclames');
289 Route::delete('reclames/delete/{reclame}', [CompanyController::class, 'reclames_destroy'])->name('delete-reclames'); 295 Route::delete('reclames/delete/{reclame}', [CompanyController::class, 'reclames_destroy'])->name('delete-reclames');
290 //////////////////////////////////////////////////////////////////////// 296 ////////////////////////////////////////////////////////////////////////
291 297
292 298
293 // кабинет - отзывы о работодателе для модерации 299 // кабинет - отзывы о работодателе для модерации
294 Route::get('answers', [EmployersController::class, 'answers'])->name('answers'); 300 Route::get('answers', [EmployersController::class, 'answers'])->name('answers');
295 301
296 // Общая страница статистики 302 // Общая страница статистики
297 Route::get('statics', function () { 303 Route::get('statics', function () {
298 return view('admin.static.index'); 304 return view('admin.static.index');
299 })->name('statics'); 305 })->name('statics');
300 306
301 // кабинет - статистика работников 307 // кабинет - статистика работников
302 Route::get('static-workers', [WorkersController::class, 'static_workers'])->name('static-workers'); 308 Route::get('static-workers', [WorkersController::class, 'static_workers'])->name('static-workers');
303 309
304 // кабинет - статистика вакансий работодателя 310 // кабинет - статистика вакансий работодателя
305 Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads'); 311 Route::get('static-ads', [EmployersController::class, 'static_ads'])->name('static-ads');
306 312
307 // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника 313 // кабинет - справочник - блоки информации (дипломы и документы) для резюме работника
308 /* 314 /*
309 * CRUD-операции над справочником дипломы и документы 315 * CRUD-операции над справочником дипломы и документы
310 */ 316 */
311 //Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks'); 317 //Route::get('infobloks', [WorkersController::class, 'infobloks'])->name('infobloks');
312 Route::resource('infobloks', InfoBloksController::class, ['except' => ['show']]); 318 Route::resource('infobloks', InfoBloksController::class, ['except' => ['show']]);
313 319
314 // кабинет - роли пользователя 320 // кабинет - роли пользователя
315 Route::get('roles', [UsersController::class, 'roles'])->name('roles'); 321 Route::get('roles', [UsersController::class, 'roles'])->name('roles');
316 322
317 Route::get('logs', function() { 323 Route::get('logs', function() {
318 $files = Storage::files('logs/laravel.log'); 324 $files = Storage::files('logs/laravel.log');
319 print_r($files); 325 print_r($files);
320 })->name('logs'); 326 })->name('logs');
321 327
322 }); 328 });
323 329
324 Route::post('ckeditor/upload', [CKEditorController::class, 'upload'])->name('ckeditor.image-upload'); 330 Route::post('ckeditor/upload', [CKEditorController::class, 'upload'])->name('ckeditor.image-upload');
325 331
326 Route::get('pages/{pages:slug}', [PagesController::class, 'pages'])->name('page'); 332 Route::get('pages/{pages:slug}', [PagesController::class, 'pages'])->name('page');
327 333
328 Route::get('redis/', [PagesController::class, 'redis'])->name('redis'); 334 Route::get('redis/', [PagesController::class, 'redis'])->name('redis');
329 335