Commit 2e3ed5c890ffc845df524f5f4d65005d6ee90a9e

Authored by Андрей Ларионов
Exists in master

Merge branch 'master' of http://gitlab.nologostudio.ru/alarionov/rekamore-su

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