Commit 04ab791c1e9d23fce48a8637bdcdcbf561581de6
1 parent
a82fb8ae68
Exists in
master
Обновление данных
Showing 3 changed files with 0 additions and 16 deletions Inline Diff
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', | 24 | 'status', |
25 | 'sroch_vacancy', | 25 | 'sroch_vacancy', |
26 | 'favorite_vacancy' | 26 | 'favorite_vacancy' |
27 | ]; | 27 | ]; |
28 | /* | 28 | /* |
29 | * Связь таблицы employers с таблицей ad_employers | 29 | * Связь таблицы employers с таблицей ad_employers |
30 | многие-к-одному | 30 | многие-к-одному |
31 | */ | 31 | */ |
32 | public function employer() { | 32 | public function employer() { |
33 | return $this->belongsTo(Employer::class, 'employer_id'); | 33 | return $this->belongsTo(Employer::class, 'employer_id'); |
34 | } | 34 | } |
35 | 35 | ||
36 | /* | 36 | /* |
37 | * Связь модели Вакансии (Ad_employer) с моделью Должности (Job_title) | 37 | * Связь модели Вакансии (Ad_employer) с моделью Должности (Job_title) |
38 | многие-ко-многим | 38 | многие-ко-многим |
39 | */ | 39 | */ |
40 | public function jobs() { | 40 | public function jobs() { |
41 | return $this->belongsToMany(Job_title::class, 'ad_jobs'); | 41 | return $this->belongsToMany(Job_title::class, 'ad_jobs'); |
42 | } | 42 | } |
43 | 43 | ||
44 | // Связь модели Вакансии с моделью Коды должностей и вакансий | 44 | // Связь модели Вакансии с моделью Коды должностей и вакансий |
45 | public function jobs_code() { | 45 | public function jobs_code() { |
46 | return $this->hasMany(Ad_jobs::class); | 46 | return $this->hasMany(Ad_jobs::class); |
47 | } | 47 | } |
48 | 48 | ||
49 | /* | 49 | /* |
50 | * Связь модели Вакансия (Ad_employers) с моделью Отклик на Вакансию (Ad_response) | 50 | * Связь модели Вакансия (Ad_employers) с моделью Отклик на Вакансию (Ad_response) |
51 | один-ко-многим | 51 | один-ко-многим |
52 | */ | 52 | */ |
53 | public function response() { | 53 | public function response() { |
54 | return $this->hasMany(ad_response::class); | 54 | return $this->hasMany(ad_response::class); |
55 | } | 55 | } |
56 | 56 | ||
57 | // Связь модели Категории (Categories) с моделью Вакансии | 57 | // Связь модели Категории (Categories) с моделью Вакансии |
58 | public function cat() { | 58 | public function cat() { |
59 | return $this->hasMany(Category::class, 'id'); | 59 | return $this->hasMany(Category::class, 'id'); |
60 | } | 60 | } |
61 | 61 | ||
62 | <<<<<<< HEAD | ||
63 | ======= | ||
64 | 62 | ||
65 | >>>>>>> e3c7b0ffb6cc8d6ffa38081411b3e113215722e6 | ||
66 | public function scopeActive($query) { | 63 | public function scopeActive($query) { |
67 | return $query->where('is_remove', '=', '0'); | 64 | return $query->where('is_remove', '=', '0'); |
68 | } | 65 | } |
69 | 66 | ||
70 | // | 67 | // |
71 | public function ad_job() { | 68 | public function ad_job() { |
72 | return $this->hasMany(Ad_jobs::class); | 69 | return $this->hasMany(Ad_jobs::class); |
73 | } | 70 | } |
74 | } | 71 | } |
75 | 72 |
resources/views/admin/education/form.blade.php
1 | @csrf | 1 | @csrf |
2 | 2 | ||
3 | @isset($education) | 3 | @isset($education) |
4 | @method('PUT') | 4 | @method('PUT') |
5 | @endisset | 5 | @endisset |
6 | 6 | ||
7 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> | 7 | <div class="px-4 py-3 mb-8 bg-white rounded-lg shadow-md dark:bg-gray-800"> |
8 | <form method="POST" action="{{ route('admin.education.update', ['education' => $education->id]) }}" enctype="multipart/form-data"> | 8 | <form method="POST" action="{{ route('admin.education.update', ['education' => $education->id]) }}" enctype="multipart/form-data"> |
9 | <label class="block text-sm"> | 9 | <label class="block text-sm"> |
10 | <span class="text-gray-700 dark:text-gray-400">Название учебного заведения</span> | 10 | <span class="text-gray-700 dark:text-gray-400">Название учебного заведения</span> |
11 | <input name="name" id="name" | 11 | <input name="name" id="name" |
12 | 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 | 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" |
13 | placeholder="Название учебного заведения" value="{{ old('name') ?? $education->name ?? '' }}" | 13 | placeholder="Название учебного заведения" value="{{ old('name') ?? $education->name ?? '' }}" |
14 | /> | 14 | /> |
15 | @error('name') | 15 | @error('name') |
16 | <span class="text-xs text-red-600 dark:text-red-400"> | 16 | <span class="text-xs text-red-600 dark:text-red-400"> |
17 | {{ $message }} | 17 | {{ $message }} |
18 | </span> | 18 | </span> |
19 | @enderror | 19 | @enderror |
20 | </label><br> | 20 | </label><br> |
21 | 21 | ||
22 | <label class="block text-sm"> | 22 | <label class="block text-sm"> |
23 | <span class="text-gray-700 dark:text-gray-400">Текст</span> | 23 | <span class="text-gray-700 dark:text-gray-400">Текст</span> |
24 | <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 ckeditor_" name="text" placeholder="Текст (html)" required | 24 | <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 ckeditor_" name="text" placeholder="Текст (html)" required |
25 | rows="10">{{ old('text') ?? $education->text ?? '' }}</textarea> | 25 | rows="10">{{ old('text') ?? $education->text ?? '' }}</textarea> |
26 | @error('text') | 26 | @error('text') |
27 | <span class="text-xs text-red-600 dark:text-red-400"> | 27 | <span class="text-xs text-red-600 dark:text-red-400"> |
28 | {{ $message }} | 28 | {{ $message }} |
29 | </span> | 29 | </span> |
30 | @enderror | 30 | @enderror |
31 | </label><br> | 31 | </label><br> |
32 | 32 | ||
33 | <label class="block text-sm"> | 33 | <label class="block text-sm"> |
34 | <span class="text-gray-700 dark:text-gray-400">Картинка</span> | 34 | <span class="text-gray-700 dark:text-gray-400">Картинка</span> |
35 | <input type="file" class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 | 35 | <input type="file" class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 |
36 | focus:border-purple-400 focus:outline-none focus:shadow-outline-purple | 36 | focus:border-purple-400 focus:outline-none focus:shadow-outline-purple |
37 | dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 37 | dark:text-gray-300 dark:focus:shadow-outline-gray form-input" |
38 | id="image" name="image" accept="image/png, image/jpeg"> | 38 | id="image" name="image" accept="image/png, image/jpeg"> |
39 | @error('image') | 39 | @error('image') |
40 | <span class="text-xs text-red-600 dark:text-red-400"> | 40 | <span class="text-xs text-red-600 dark:text-red-400"> |
41 | {{ $message }} | 41 | {{ $message }} |
42 | </span> | 42 | </span> |
43 | @enderror | 43 | @enderror |
44 | @isset($education->image) | 44 | @isset($education->image) |
45 | <img src="{{asset(Storage::url($education->image))}}" width="100px"/> | 45 | <img src="{{asset(Storage::url($education->image))}}" width="100px"/> |
46 | @endisset | 46 | @endisset |
47 | </label><br> | 47 | </label><br> |
48 | 48 | ||
49 | <hr> | 49 | <hr> |
50 | <h5 class="text-gray-700 dark:text-gray-400">Контакты: </h5> | 50 | <h5 class="text-gray-700 dark:text-gray-400">Контакты: </h5> |
51 | <label class="block text-sm"> | 51 | <label class="block text-sm"> |
52 | <span class="text-gray-700 dark:text-gray-400">Адрес</span> | 52 | <span class="text-gray-700 dark:text-gray-400">Адрес</span> |
53 | <input name="address" id="address" | 53 | <input name="address" id="address" |
54 | 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" | 54 | 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" |
55 | placeholder="Адрес" value="{{ old('address') ?? $education->address ?? '' }}" | 55 | placeholder="Адрес" value="{{ old('address') ?? $education->address ?? '' }}" |
56 | /> | 56 | /> |
57 | @error('address') | 57 | @error('address') |
58 | <span class="text-xs text-red-600 dark:text-red-400"> | 58 | <span class="text-xs text-red-600 dark:text-red-400"> |
59 | {{ $message }} | 59 | {{ $message }} |
60 | </span> | 60 | </span> |
61 | @enderror | 61 | @enderror |
62 | </label><br> | 62 | </label><br> |
63 | 63 | ||
64 | <label class="block text-sm"> | 64 | <label class="block text-sm"> |
65 | <span class="text-gray-700 dark:text-gray-400">Email</span> | 65 | <span class="text-gray-700 dark:text-gray-400">Email</span> |
66 | <input name="email" id="email" | 66 | <input name="email" id="email" |
67 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 67 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" |
68 | placeholder="Email" value="{{ old('email') ?? $education->email ?? '' }}" | 68 | placeholder="Email" value="{{ old('email') ?? $education->email ?? '' }}" |
69 | /> | 69 | /> |
70 | @error('email') | 70 | @error('email') |
71 | <span class="text-xs text-red-600 dark:text-red-400"> | 71 | <span class="text-xs text-red-600 dark:text-red-400"> |
72 | {{ $message }} | 72 | {{ $message }} |
73 | </span> | 73 | </span> |
74 | @enderror | 74 | @enderror |
75 | </label><br> | 75 | </label><br> |
76 | 76 | ||
77 | <label class="block text-sm"> | 77 | <label class="block text-sm"> |
78 | <span class="text-gray-700 dark:text-gray-400">Телефон</span> | 78 | <span class="text-gray-700 dark:text-gray-400">Телефон</span> |
79 | <input name="telephone" id="telephone" | 79 | <input name="telephone" id="telephone" |
80 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" | 80 | class="block w-full mt-1 text-sm dark:border-gray-600 dark:bg-gray-700 focus:border-purple-400 focus:outline-none focus:shadow-outline-purple dark:text-gray-300 dark:focus:shadow-outline-gray form-input" |
81 | placeholder="Телефон" value="{{ old('telephone') ?? $education->telephone ?? '' }}" | 81 | placeholder="Телефон" value="{{ old('telephone') ?? $education->telephone ?? '' }}" |
82 | /> | 82 | /> |
83 | @error('telephone') | 83 | @error('telephone') |
84 | <span class="text-xs text-red-600 dark:text-red-400"> | 84 | <span class="text-xs text-red-600 dark:text-red-400"> |
85 | {{ $message }} | 85 | {{ $message }} |
86 | </span> | 86 | </span> |
87 | @enderror | 87 | @enderror |
88 | </label><br> | 88 | </label><br> |
89 | 89 | ||
90 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> | 90 | <div class="flex flex-col flex-wrap mb-4 space-y-4 md:flex-row md:items-end md:space-x-4"> |
91 | <div> | 91 | <div> |
92 | <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"> | 92 | <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"> |
93 | Сохранить | 93 | Сохранить |
94 | </button> | 94 | </button> |
95 | <a href="{{ route('admin.education.index') }}" | 95 | <a href="{{ route('admin.education.index') }}" |
96 | 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" | 96 | 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" |
97 | style="display: -webkit-inline-box; height: 30px!important;" | 97 | style="display: -webkit-inline-box; height: 30px!important;" |
98 | >Назад</a> | 98 | >Назад</a> |
99 | </div> | 99 | </div> |
100 | </div> | 100 | </div> |
101 | </form> | 101 | </form> |
102 | 102 | ||
103 | @isset($education) | 103 | @isset($education) |
104 | <div class="tabs_ js_tabs px-4 py-3 bg-white rounded-lg shadow-md dark:bg-gray-800"> | 104 | <div class="tabs_ js_tabs px-4 py-3 bg-white rounded-lg shadow-md dark:bg-gray-800"> |
105 | <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"> | 105 | <h2 class="my-6 text-2xl font-semibold text-gray-700 dark:text-gray-200"> |
106 | Программы образования | 106 | Программы образования |
107 | </h2> | 107 | </h2> |
108 | <form class="tabs__form js_tabs_form" method="GET" action="{{ route('admin.add-program-education') }}"> | 108 | <form class="tabs__form js_tabs_form" method="GET" action="{{ route('admin.add-program-education') }}"> |
109 | <label class="tabs__label block mt-4 text-sm"> | 109 | <label class="tabs__label block mt-4 text-sm"> |
110 | <div class="relative text-gray-500 focus-within:text-purple-600"> | 110 | <div class="relative text-gray-500 focus-within:text-purple-600"> |
111 | <input type="hidden" name="id" value="{{ $education->id }}"/> | 111 | <input type="hidden" name="id" value="{{ $education->id }}"/> |
112 | <input name="level" class="tabs__input js_tabs_input block w-full pr-20 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" placeholder="Введите название таба"/> | 112 | <input name="level" class="tabs__input js_tabs_input block w-full pr-20 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" placeholder="Введите название таба"/> |
113 | <!-- For disabled buttons ADD these classes: opacity-50 cursor-not-allowed | 113 | <!-- For disabled buttons ADD these classes: opacity-50 cursor-not-allowed |
114 | And REMOVE these classes: active:bg-purple-600 hover:bg-purple-700 focus:shadow-outline-purple --> | 114 | And REMOVE these classes: active:bg-purple-600 hover:bg-purple-700 focus:shadow-outline-purple --> |
115 | <button class="tabs__submit-btn js_tabs_submit_btn 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 focus:outline-none opacity-50 cursor-not-allowed" disabled>+</button> | 115 | <button class="tabs__submit-btn js_tabs_submit_btn 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 focus:outline-none opacity-50 cursor-not-allowed" disabled>+</button> |
116 | <!-- <button class="tabs__submit-btn js_tabs_submit_btn 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">+</button> --> | 116 | <!-- <button class="tabs__submit-btn js_tabs_submit_btn 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">+</button> --> |
117 | </div> | 117 | </div> |
118 | </label> | 118 | </label> |
119 | </form> | 119 | </form> |
120 | <div class="tabs__buttons js_tabs_buttons flex flex-col flex-wrap mb-4 md:flex-row md:space-x-4"> | 120 | <div class="tabs__buttons js_tabs_buttons flex flex-col flex-wrap mb-4 md:flex-row md:space-x-4"> |
121 | @if ($program->count()) | 121 | @if ($program->count()) |
122 | @php $bool = true; | 122 | @php $bool = true; |
123 | $i = 1; | 123 | $i = 1; |
124 | $level = ""; | 124 | $level = ""; |
125 | @endphp | 125 | @endphp |
126 | 126 | ||
127 | @foreach ($program as $pro) | 127 | @foreach ($program as $pro) |
128 | @if ((!empty($level)) && ($level <> $pro->level )) | 128 | @if ((!empty($level)) && ($level <> $pro->level )) |
129 | @php $bool = true; $i++; @endphp | 129 | @php $bool = true; $i++; @endphp |
130 | @endif | 130 | @endif |
131 | @if ($bool == true) | 131 | @if ($bool == true) |
132 | <div> | 132 | <div> |
133 | <button class="tabs__btn js_tabs_btn mt-4 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" data-btn="{{ $pro->level }}" data-id="{{$i}}">{{ $pro->level }}</button> | 133 | <button class="tabs__btn js_tabs_btn mt-4 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" data-btn="{{ $pro->level }}" data-id="{{$i}}">{{ $pro->level }}</button> |
134 | </div> | 134 | </div> |
135 | @php $bool = false; | 135 | @php $bool = false; |
136 | $level = $pro->level; | 136 | $level = $pro->level; |
137 | @endphp | 137 | @endphp |
138 | @endif | 138 | @endif |
139 | @endforeach | 139 | @endforeach |
140 | @endif | 140 | @endif |
141 | </div> | 141 | </div> |
142 | <div class="tabs__content js_tabs_content"> | 142 | <div class="tabs__content js_tabs_content"> |
143 | @if ($program->count()) | 143 | @if ($program->count()) |
144 | @php $bool = true; | 144 | @php $bool = true; |
145 | $i = 1; | 145 | $i = 1; |
146 | $level = ""; | 146 | $level = ""; |
147 | @endphp | 147 | @endphp |
148 | 148 | ||
149 | @foreach ($program as $pro) | 149 | @foreach ($program as $pro) |
150 | @php $name_tab = $pro->level; @endphp | 150 | @php $name_tab = $pro->level; @endphp |
151 | @if ((!empty($level)) && ($level <> $pro->level)) | 151 | @if ((!empty($level)) && ($level <> $pro->level)) |
152 | </tbody> | 152 | </tbody> |
153 | </table> | 153 | </table> |
154 | </div> | 154 | </div> |
155 | @php $bool = true; $i++; @endphp | 155 | @php $bool = true; $i++; @endphp |
156 | @endif | 156 | @endif |
157 | 157 | ||
158 | @if ($bool == true) | 158 | @if ($bool == true) |
159 | <div class="tabs__item js_tabs_item @php echo($i>1) ? 'hidden' : ''; @endphp" data-id="{{$i}}"> | 159 | <div class="tabs__item js_tabs_item @php echo($i>1) ? 'hidden' : ''; @endphp" data-id="{{$i}}"> |
160 | <form action="{{ route('admin.add-program-education') }}" method="GET" class="flex flex-col flex-wrap mb-4 md:flex-row md:space-x-4"> | 160 | <form action="{{ route('admin.add-program-education') }}" method="GET" class="flex flex-col flex-wrap mb-4 md:flex-row md:space-x-4"> |
161 | <div> | 161 | <div> |
162 | <input type="hidden" name="id" value="{{ $education->id }}"/> | 162 | <input type="hidden" name="id" value="{{ $education->id }}"/> |
163 | <input type="hidden" name="level" value="{{$name_tab}}"/> | 163 | <input type="hidden" name="level" value="{{$name_tab}}"/> |
164 | <button type="submit" class="mt-4 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">Добавить</button> | 164 | <button type="submit" class="mt-4 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">Добавить</button> |
165 | </div> | 165 | </div> |
166 | </form> | 166 | </form> |
167 | <table class="mb-4 w-full whitespace-no-wrap"> | 167 | <table class="mb-4 w-full whitespace-no-wrap"> |
168 | <thead> | 168 | <thead> |
169 | <tr | 169 | <tr |
170 | 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" | 170 | 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" |
171 | > | 171 | > |
172 | <th class="px-4 py-3">Специализация</th> | 172 | <th class="px-4 py-3">Специализация</th> |
173 | <th class="px-4 py-3">Описание</th> | 173 | <th class="px-4 py-3">Описание</th> |
174 | <th class="px-4 py-3">Редактирование</th> | 174 | <th class="px-4 py-3">Редактирование</th> |
175 | 175 | ||
176 | </tr> | 176 | </tr> |
177 | </thead> | 177 | </thead> |
178 | <tbody | 178 | <tbody |
179 | class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" | 179 | class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" |
180 | > | 180 | > |
181 | @php $bool = false; | 181 | @php $bool = false; |
182 | $level = $pro->level; | 182 | $level = $pro->level; |
183 | @endphp | 183 | @endphp |
184 | @endif | 184 | @endif |
185 | <tr class="text-gray-700 dark:text-gray-400"> | 185 | <tr class="text-gray-700 dark:text-gray-400"> |
186 | <td class="px-4 py-3"> | 186 | <td class="px-4 py-3"> |
187 | <div class="flex items-center text-sm"> | 187 | <div class="flex items-center text-sm"> |
188 | <div> | 188 | <div> |
189 | <p class="font-semibold">Специальность: </p> | 189 | <p class="font-semibold">Специальность: </p> |
190 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 190 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
191 | {{ mb_strimwidth($pro->name, 0, 50, "...") }} | 191 | {{ mb_strimwidth($pro->name, 0, 50, "...") }} |
192 | </p> | 192 | </p> |
193 | </div> | 193 | </div> |
194 | </div> | 194 | </div> |
195 | </td> | 195 | </td> |
196 | <td class="px-4 py-3 text-sm"> | 196 | <td class="px-4 py-3 text-sm"> |
197 | <span class="text-gray-700 dark:text-gray-400">Описание: {{ mb_strimwidth($pro->text, 0, 100, "...")}}</span> | 197 | <span class="text-gray-700 dark:text-gray-400">Описание: {{ mb_strimwidth($pro->text, 0, 100, "...")}}</span> |
198 | </td> | 198 | </td> |
199 | <td class="px-4 py-3 text-xs"> | 199 | <td class="px-4 py-3 text-xs"> |
200 | <a href="{{ route('admin.edit-program-education', ['program' => $pro->id, 'education' => $education->id]) }}">Изменить</a> | | 200 | <a href="{{ route('admin.edit-program-education', ['program' => $pro->id, 'education' => $education->id]) }}">Изменить</a> | |
201 | <a href="{{ route('admin.delete-program-education', ['program' => $pro->id, 'education' => $education->id]) }}">Удалить</a> | 201 | <a href="{{ route('admin.delete-program-education', ['program' => $pro->id, 'education' => $education->id]) }}">Удалить</a> |
202 | </td> | 202 | </td> |
203 | </tr> | 203 | </tr> |
204 | @endforeach | 204 | @endforeach |
205 | @endif | 205 | @endif |
206 | </div> | 206 | </div> |
207 | </div> | 207 | </div> |
208 | @endisset | 208 | @endisset |
209 | </div> | 209 | </div> |
210 | 210 | ||
211 | <<<<<<< HEAD | ||
212 | |||
213 | <!--<script src="{{ asset('/ckeditor/ckeditor.js') }}"></script>--> | ||
214 | |||
215 | <script src="//cdn.ckeditor.com/4.14.0/standard/ckeditor.js"></script> | ||
216 | |||
217 | <!--<script src="{{ asset('./ckeditor/ckeditor.js') }}"></script>--> | ||
218 | |||
219 | ======= | ||
220 | <script src="//cdn.ckeditor.com/4.14.0/standard/ckeditor.js"></script> | 211 | <script src="//cdn.ckeditor.com/4.14.0/standard/ckeditor.js"></script> |
221 | 212 | ||
222 | <!--<script src="{{ asset('./ckeditor/ckeditor.js') }}"></script>--> | 213 | <!--<script src="{{ asset('./ckeditor/ckeditor.js') }}"></script>--> |
223 | >>>>>>> 8018b079503aa01fce021d8de2a8631691fbe310 | ||
224 | <script> | 214 | <script> |
225 | CKEDITOR.replace( 'text', { | 215 | CKEDITOR.replace( 'text', { |
226 | filebrowserUploadUrl: "{{route('ckeditor.image-upload', ['_token' => csrf_token() ])}}", | 216 | filebrowserUploadUrl: "{{route('ckeditor.image-upload', ['_token' => csrf_token() ])}}", |
227 | filebrowserImageUploadUrl: "{{ route('ckeditor.image-upload', ['_token' => csrf_token() ])}}", | 217 | filebrowserImageUploadUrl: "{{ route('ckeditor.image-upload', ['_token' => csrf_token() ])}}", |
228 | filebrowserUploadMethod: 'form' | 218 | filebrowserUploadMethod: 'form' |
229 | }); | 219 | }); |
230 | </script> | 220 | </script> |
231 | <script> | 221 | <script> |
232 | window.addEventListener('DOMContentLoaded', () => { | 222 | window.addEventListener('DOMContentLoaded', () => { |
233 | 223 | ||
234 | setTabs(3); | 224 | setTabs(3); |
235 | 225 | ||
236 | function setTabs(qty) { | 226 | function setTabs(qty) { |
237 | 227 | ||
238 | const tabs = document.querySelector('.js_tabs'); | 228 | const tabs = document.querySelector('.js_tabs'); |
239 | const tabsForm = tabs.querySelector('.js_tabs_form'); | 229 | const tabsForm = tabs.querySelector('.js_tabs_form'); |
240 | const tabsInput = tabs.querySelector('.js_tabs_input'); | 230 | const tabsInput = tabs.querySelector('.js_tabs_input'); |
241 | const tabsSubmitBtn = tabs.querySelector('.js_tabs_submit_btn'); | 231 | const tabsSubmitBtn = tabs.querySelector('.js_tabs_submit_btn'); |
242 | const tabsButtons = tabs.querySelector('.js_tabs_buttons'); | 232 | const tabsButtons = tabs.querySelector('.js_tabs_buttons'); |
243 | const tabsContent = tabs.querySelector('.js_tabs_content'); | 233 | const tabsContent = tabs.querySelector('.js_tabs_content'); |
244 | 234 | ||
245 | tabsForm.addEventListener('submit', (e) => { | 235 | tabsForm.addEventListener('submit', (e) => { |
246 | 236 | ||
247 | //e.preventDefault(); | 237 | //e.preventDefault(); |
248 | 238 | ||
249 | const tabsInputValue = tabsInput.value; | 239 | const tabsInputValue = tabsInput.value; |
250 | const tabsBtns = tabsButtons.querySelectorAll('.js_tabs_btn'); | 240 | const tabsBtns = tabsButtons.querySelectorAll('.js_tabs_btn'); |
251 | const id = Date.now(); | 241 | const id = Date.now(); |
252 | 242 | ||
253 | 243 | ||
254 | if (tabsBtns.length >= qty) { | 244 | if (tabsBtns.length >= qty) { |
255 | console.log('Ветка выполнена'); | 245 | console.log('Ветка выполнена'); |
256 | e.preventDefault(); | 246 | e.preventDefault(); |
257 | } | 247 | } |
258 | 248 | ||
259 | if (tabsInput.dataset.edit) { | 249 | if (tabsInput.dataset.edit) { |
260 | 250 | ||
261 | tabsBtns.forEach(btn => { | 251 | tabsBtns.forEach(btn => { |
262 | if (tabsInput.dataset.edit === btn.dataset.id) { | 252 | if (tabsInput.dataset.edit === btn.dataset.id) { |
263 | console.log('oldname: '+btn.textContent+' newname: '+tabsInputValue+' id_education: '+<?=$education->id?>+''); | 253 | console.log('oldname: '+btn.textContent+' newname: '+tabsInputValue+' id_education: '+<?=$education->id?>+''); |
264 | $.ajax({ | 254 | $.ajax({ |
265 | url: '{{ route('admin.rename-program-education') }}', | 255 | url: '{{ route('admin.rename-program-education') }}', |
266 | method: 'get', /* Метод запроса (post или get) */ | 256 | method: 'get', /* Метод запроса (post или get) */ |
267 | dataType: 'html', /* Тип данных в ответе (xml, json, script, html). */ | 257 | dataType: 'html', /* Тип данных в ответе (xml, json, script, html). */ |
268 | data: {oldname: btn.textContent, newname:tabsInputValue, id_education: <?=$education->id?>}, /* Данные передаваемые в массиве */ | 258 | data: {oldname: btn.textContent, newname:tabsInputValue, id_education: <?=$education->id?>}, /* Данные передаваемые в массиве */ |
269 | success: function(data){ /* функция которая будет выполнена после успешного запроса. */ | 259 | success: function(data){ /* функция которая будет выполнена после успешного запроса. */ |
270 | console.log(data); /* В переменной data содержится ответ от index.php. */ | 260 | console.log(data); /* В переменной data содержится ответ от index.php. */ |
271 | } | 261 | } |
272 | }); | 262 | }); |
273 | 263 | ||
274 | btn.textContent = tabsInputValue; | 264 | btn.textContent = tabsInputValue; |
275 | btn.dataset.btn = tabsInputValue; | 265 | btn.dataset.btn = tabsInputValue; |
276 | } | 266 | } |
277 | }); | 267 | }); |
278 | console.log('Эта ветка выполнилась'); | 268 | console.log('Эта ветка выполнилась'); |
279 | tabsInput.removeAttribute('data-edit'); | 269 | tabsInput.removeAttribute('data-edit'); |
280 | 270 | ||
281 | } else { | 271 | } else { |
282 | 272 | ||
283 | if (!tabsBtns.length) { | 273 | if (!tabsBtns.length) { |
284 | tabsButtons.innerHTML += getTabsBtnTemplate(tabsInputValue, id); | 274 | tabsButtons.innerHTML += getTabsBtnTemplate(tabsInputValue, id); |
285 | //tabsContent.innerHTML += getTabsItemTemplate(id); | 275 | //tabsContent.innerHTML += getTabsItemTemplate(id); |
286 | } | 276 | } |
287 | 277 | ||
288 | if (tabsBtns.length && tabsBtns.length < qty) { | 278 | if (tabsBtns.length && tabsBtns.length < qty) { |
289 | 279 | ||
290 | let isMatch = false; | 280 | let isMatch = false; |
291 | 281 | ||
292 | tabsBtns.forEach(btn => { | 282 | tabsBtns.forEach(btn => { |
293 | if (tabsInputValue === btn.dataset.btn) { | 283 | if (tabsInputValue === btn.dataset.btn) { |
294 | isMatch = true; | 284 | isMatch = true; |
295 | } | 285 | } |
296 | }); | 286 | }); |
297 | 287 | ||
298 | console.log('Альтернативная ветка!'); | 288 | console.log('Альтернативная ветка!'); |
299 | if (!isMatch) { | 289 | if (!isMatch) { |
300 | tabsButtons.innerHTML += getTabsBtnTemplate(tabsInputValue, id); | 290 | tabsButtons.innerHTML += getTabsBtnTemplate(tabsInputValue, id); |
301 | tabsContent.innerHTML += getTabsItemTemplate(id, 'hidden'); | 291 | tabsContent.innerHTML += getTabsItemTemplate(id, 'hidden'); |
302 | } | 292 | } |
303 | } | 293 | } |
304 | } | 294 | } |
305 | 295 | ||
306 | //tabsInput.value = ''; | 296 | //tabsInput.value = ''; |
307 | addDisabledBtnStatus(tabsSubmitBtn); | 297 | addDisabledBtnStatus(tabsSubmitBtn); |
308 | 298 | ||
309 | }); | 299 | }); |
310 | 300 | ||
311 | tabsInput.addEventListener('input', () => { | 301 | tabsInput.addEventListener('input', () => { |
312 | if (tabsInput.value !== '') { | 302 | if (tabsInput.value !== '') { |
313 | removeDisabledBtnStatus(tabsSubmitBtn); | 303 | removeDisabledBtnStatus(tabsSubmitBtn); |
314 | } else { | 304 | } else { |
315 | addDisabledBtnStatus(tabsSubmitBtn); | 305 | addDisabledBtnStatus(tabsSubmitBtn); |
316 | } | 306 | } |
317 | }); | 307 | }); |
318 | 308 | ||
319 | tabsButtons.addEventListener('click', (e) => { | 309 | tabsButtons.addEventListener('click', (e) => { |
320 | 310 | ||
321 | const target = e.target.closest('.js_tabs_btn'); | 311 | const target = e.target.closest('.js_tabs_btn'); |
322 | 312 | ||
323 | if (target) { | 313 | if (target) { |
324 | 314 | ||
325 | const tabsItems = tabs.querySelectorAll('.js_tabs_item'); | 315 | const tabsItems = tabs.querySelectorAll('.js_tabs_item'); |
326 | 316 | ||
327 | tabsItems.forEach(item => { | 317 | tabsItems.forEach(item => { |
328 | 318 | ||
329 | item.classList.add('hidden'); | 319 | item.classList.add('hidden'); |
330 | 320 | ||
331 | if (target.dataset.id === item.dataset.id) { | 321 | if (target.dataset.id === item.dataset.id) { |
332 | item.classList.remove('hidden'); | 322 | item.classList.remove('hidden'); |
333 | } | 323 | } |
334 | }); | 324 | }); |
335 | } | 325 | } |
336 | 326 | ||
337 | }); | 327 | }); |
338 | 328 | ||
339 | tabsButtons.addEventListener('dblclick', (e) => { | 329 | tabsButtons.addEventListener('dblclick', (e) => { |
340 | const target = e.target.closest('.js_tabs_btn'); | 330 | const target = e.target.closest('.js_tabs_btn'); |
341 | 331 | ||
342 | if (target) { | 332 | if (target) { |
343 | tabsInput.value = target.dataset.btn; | 333 | tabsInput.value = target.dataset.btn; |
344 | tabsInput.dataset.edit = target.dataset.id; | 334 | tabsInput.dataset.edit = target.dataset.id; |
345 | removeDisabledBtnStatus(tabsSubmitBtn); | 335 | removeDisabledBtnStatus(tabsSubmitBtn); |
346 | } | 336 | } |
347 | }); | 337 | }); |
348 | 338 | ||
349 | function getTabsBtnTemplate(btnName, id) { | 339 | function getTabsBtnTemplate(btnName, id) { |
350 | return ` | 340 | return ` |
351 | <div> | 341 | <div> |
352 | <button class="tabs__btn js_tabs_btn mt-4 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" data-btn="${btnName}" data-id="${id}">${btnName}</button> | 342 | <button class="tabs__btn js_tabs_btn mt-4 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" data-btn="${btnName}" data-id="${id}">${btnName}</button> |
353 | </div> | 343 | </div> |
354 | `; | 344 | `; |
355 | } | 345 | } |
356 | 346 | ||
357 | function getTabsItemTemplate(id, className = '') { | 347 | function getTabsItemTemplate(id, className = '') { |
358 | return ` | 348 | return ` |
359 | <div class="tabs__item js_tabs_item ${className}" data-id="${id}"> | 349 | <div class="tabs__item js_tabs_item ${className}" data-id="${id}"> |
360 | <div class="mb-4">${id}</div> | 350 | <div class="mb-4">${id}</div> |
361 | <table class="mb-4 w-full whitespace-no-wrap"> | 351 | <table class="mb-4 w-full whitespace-no-wrap"> |
362 | <thead> | 352 | <thead> |
363 | <tr | 353 | <tr |
364 | 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" | 354 | 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" |
365 | > | 355 | > |
366 | <th class="px-4 py-3">Client</th> | 356 | <th class="px-4 py-3">Client</th> |
367 | <th class="px-4 py-3">Amount</th> | 357 | <th class="px-4 py-3">Amount</th> |
368 | <th class="px-4 py-3">Status</th> | 358 | <th class="px-4 py-3">Status</th> |
369 | <th class="px-4 py-3">Date</th> | 359 | <th class="px-4 py-3">Date</th> |
370 | </tr> | 360 | </tr> |
371 | </thead> | 361 | </thead> |
372 | <tbody | 362 | <tbody |
373 | class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" | 363 | class="bg-white divide-y dark:divide-gray-700 dark:bg-gray-800" |
374 | > | 364 | > |
375 | <tr class="text-gray-700 dark:text-gray-400"> | 365 | <tr class="text-gray-700 dark:text-gray-400"> |
376 | <td class="px-4 py-3"> | 366 | <td class="px-4 py-3"> |
377 | <div class="flex items-center text-sm"> | 367 | <div class="flex items-center text-sm"> |
378 | <!-- Avatar with inset shadow --> | 368 | <!-- Avatar with inset shadow --> |
379 | <div | 369 | <div |
380 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 370 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
381 | > | 371 | > |
382 | <img | 372 | <img |
383 | class="object-cover w-full h-full rounded-full" | 373 | class="object-cover w-full h-full rounded-full" |
384 | 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" | 374 | 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" |
385 | alt="" | 375 | alt="" |
386 | loading="lazy" | 376 | loading="lazy" |
387 | /> | 377 | /> |
388 | <div | 378 | <div |
389 | class="absolute inset-0 rounded-full shadow-inner" | 379 | class="absolute inset-0 rounded-full shadow-inner" |
390 | aria-hidden="true" | 380 | aria-hidden="true" |
391 | ></div> | 381 | ></div> |
392 | </div> | 382 | </div> |
393 | <div> | 383 | <div> |
394 | <p class="font-semibold">Hans Burger</p> | 384 | <p class="font-semibold">Hans Burger</p> |
395 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 385 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
396 | 10x Developer | 386 | 10x Developer |
397 | </p> | 387 | </p> |
398 | </div> | 388 | </div> |
399 | </div> | 389 | </div> |
400 | </td> | 390 | </td> |
401 | <td class="px-4 py-3 text-sm"> | 391 | <td class="px-4 py-3 text-sm"> |
402 | $ 863.45 | 392 | $ 863.45 |
403 | </td> | 393 | </td> |
404 | <td class="px-4 py-3 text-xs"> | 394 | <td class="px-4 py-3 text-xs"> |
405 | <span | 395 | <span |
406 | 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 | 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" |
407 | > | 397 | > |
408 | Approved | 398 | Approved |
409 | </span> | 399 | </span> |
410 | </td> | 400 | </td> |
411 | <td class="px-4 py-3 text-sm"> | 401 | <td class="px-4 py-3 text-sm"> |
412 | 6/10/2020 | 402 | 6/10/2020 |
413 | </td> | 403 | </td> |
414 | </tr> | 404 | </tr> |
415 | 405 | ||
416 | <tr class="text-gray-700 dark:text-gray-400"> | 406 | <tr class="text-gray-700 dark:text-gray-400"> |
417 | <td class="px-4 py-3"> | 407 | <td class="px-4 py-3"> |
418 | <div class="flex items-center text-sm"> | 408 | <div class="flex items-center text-sm"> |
419 | <!-- Avatar with inset shadow --> | 409 | <!-- Avatar with inset shadow --> |
420 | <div | 410 | <div |
421 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" | 411 | class="relative hidden w-8 h-8 mr-3 rounded-full md:block" |
422 | > | 412 | > |
423 | <img | 413 | <img |
424 | class="object-cover w-full h-full rounded-full" | 414 | class="object-cover w-full h-full rounded-full" |
425 | 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" | 415 | 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" |
426 | alt="" | 416 | alt="" |
427 | loading="lazy" | 417 | loading="lazy" |
428 | /> | 418 | /> |
429 | <div | 419 | <div |
430 | class="absolute inset-0 rounded-full shadow-inner" | 420 | class="absolute inset-0 rounded-full shadow-inner" |
431 | aria-hidden="true" | 421 | aria-hidden="true" |
432 | ></div> | 422 | ></div> |
433 | </div> | 423 | </div> |
434 | <div> | 424 | <div> |
435 | <p class="font-semibold">Jolina Angelie</p> | 425 | <p class="font-semibold">Jolina Angelie</p> |
436 | <p class="text-xs text-gray-600 dark:text-gray-400"> | 426 | <p class="text-xs text-gray-600 dark:text-gray-400"> |
437 | Unemployed | 427 | Unemployed |
438 | </p> | 428 | </p> |
439 | </div> | 429 | </div> |
440 | </div> | 430 | </div> |
441 | </td> | 431 | </td> |
442 | <td class="px-4 py-3 text-sm"> | 432 | <td class="px-4 py-3 text-sm"> |
443 | $ 369.95 | 433 | $ 369.95 |
444 | </td> | 434 | </td> |
445 | <td class="px-4 py-3 text-xs"> | 435 | <td class="px-4 py-3 text-xs"> |
446 | <span | 436 | <span |
447 | class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600" | 437 | class="px-2 py-1 font-semibold leading-tight text-orange-700 bg-orange-100 rounded-full dark:text-white dark:bg-orange-600" |
448 | > | 438 | > |
449 | Pending | 439 | Pending |
450 | </span> | 440 | </span> |
451 | </td> | 441 | </td> |
452 | <td class="px-4 py-3 text-sm"> | 442 | <td class="px-4 py-3 text-sm"> |
453 | 6/10/2020 | 443 | 6/10/2020 |
454 | </td> | 444 | </td> |
455 | </tr> | 445 | </tr> |
456 | </tbody> | 446 | </tbody> |
457 | </table> | 447 | </table> |
458 | 448 | ||
459 | <div class="flex flex-col flex-wrap mb-4 md:flex-row md:space-x-4"> | 449 | <div class="flex flex-col flex-wrap mb-4 md:flex-row md:space-x-4"> |
460 | <div> | 450 | <div> |
461 | <a href="#" class="mt-4 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">Редактировать</a> | 451 | <a href="#" class="mt-4 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">Редактировать</a> |
462 | </div> | 452 | </div> |
463 | <div> | 453 | <div> |
464 | <a href="#" class="mt-4 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">Удалить</a> | 454 | <a href="#" class="mt-4 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">Удалить</a> |
465 | </div> | 455 | </div> |
466 | </div> | 456 | </div> |
467 | </div> | 457 | </div> |
468 | `; | 458 | `; |
469 | } | 459 | } |
470 | 460 | ||
471 | function addDisabledBtnStatus(btn) { | 461 | function addDisabledBtnStatus(btn) { |
472 | btn.disabled = true; | 462 | btn.disabled = true; |
473 | btn.classList.add('opacity-50', 'cursor-not-allowed'); | 463 | btn.classList.add('opacity-50', 'cursor-not-allowed'); |
474 | btn.classList.remove('active:bg-purple-600', 'hover:bg-purple-700', 'focus:shadow-outline-purple'); | 464 | btn.classList.remove('active:bg-purple-600', 'hover:bg-purple-700', 'focus:shadow-outline-purple'); |
475 | } | 465 | } |
476 | 466 | ||
477 | function removeDisabledBtnStatus(btn) { | 467 | function removeDisabledBtnStatus(btn) { |
478 | btn.disabled = false; | 468 | btn.disabled = false; |
479 | btn.classList.remove('opacity-50', 'cursor-not-allowed'); | 469 | btn.classList.remove('opacity-50', 'cursor-not-allowed'); |
480 | btn.classList.add('active:bg-purple-600', 'hover:bg-purple-700', 'focus:shadow-outline-purple'); | 470 | btn.classList.add('active:bg-purple-600', 'hover:bg-purple-700', 'focus:shadow-outline-purple'); |
481 | } | 471 | } |
482 | 472 | ||
483 | } | 473 | } |
484 | console.log('main.js init'); | 474 | console.log('main.js init'); |
485 | 475 | ||
486 | }); | 476 | }); |
487 | 477 | ||
488 | </script> | 478 | </script> |
489 | 479 | ||
490 | 480 |
resources/views/modals/send_login.blade.php
1 | <div id="sign" class="modal"> | 1 | <div id="sign" class="modal"> |
2 | <div class="modal__body"> | 2 | <div class="modal__body"> |
3 | <div class="modal__title left">Войти</div> | 3 | <div class="modal__title left">Войти</div> |
4 | <form class="modal__sign"> | 4 | <form class="modal__sign"> |
5 | <<<<<<< HEAD | ||
6 | ======= | ||
7 | <div id="message_error" name="message_error"> | 5 | <div id="message_error" name="message_error"> |
8 | </div> | 6 | </div> |
9 | >>>>>>> e3c7b0ffb6cc8d6ffa38081411b3e113215722e6 | ||
10 | <div class="modal__sign-item"> | 7 | <div class="modal__sign-item"> |
11 | <input type="email" class="input" id="email" name="email" placeholder="E-mail" required> | 8 | <input type="email" class="input" id="email" name="email" placeholder="E-mail" required> |
12 | </div> | 9 | </div> |
13 | <div class="modal__sign-item"> | 10 | <div class="modal__sign-item"> |
14 | <input type="password" class="input" id="password" name="password" placeholder="Пароль" required> | 11 | <input type="password" class="input" id="password" name="password" placeholder="Пароль" required> |
15 | <button type="button" class="eye"> | 12 | <button type="button" class="eye"> |
16 | <svg class="js-password-show"> | 13 | <svg class="js-password-show"> |
17 | <use xlink:href="{{ asset('images/sprite.svg#eye') }}"></use> | 14 | <use xlink:href="{{ asset('images/sprite.svg#eye') }}"></use> |
18 | </svg> | 15 | </svg> |
19 | <svg class="js-password-hide"> | 16 | <svg class="js-password-hide"> |
20 | <use xlink:href="{{ asset('images/sprite.svg#eye-2') }}"></use> | 17 | <use xlink:href="{{ asset('images/sprite.svg#eye-2') }}"></use> |
21 | </svg> | 18 | </svg> |
22 | </button> | 19 | </button> |
23 | </div> | 20 | </div> |
24 | <div class="modal__sign-item"> | 21 | <div class="modal__sign-item"> |
25 | <div class="modal__sign-bottom"> | 22 | <div class="modal__sign-bottom"> |
26 | <div> | 23 | <div> |
27 | <label class="checkbox"> | 24 | <label class="checkbox"> |
28 | <input type="checkbox" id="save_me" name="save_me" class="checkbox__input" required> | 25 | <input type="checkbox" id="save_me" name="save_me" class="checkbox__input" required> |
29 | <span class="checkbox__icon"> | 26 | <span class="checkbox__icon"> |
30 | <svg> | 27 | <svg> |
31 | <use xlink:href="{{ asset('images/sprite.svg#v') }}"></use> | 28 | <use xlink:href="{{ asset('images/sprite.svg#v') }}"></use> |
32 | </svg> | 29 | </svg> |
33 | </span> | 30 | </span> |
34 | <span class="checkbox__text"> | 31 | <span class="checkbox__text"> |
35 | <span> | 32 | <span> |
36 | Запомнить меня | 33 | Запомнить меня |
37 | </span> | 34 | </span> |
38 | </span> | 35 | </span> |
39 | </label> | 36 | </label> |
40 | </div> | 37 | </div> |
41 | <div> | 38 | <div> |
42 | <a href="" class="modal__sign-bottom-link">Забыли пароль?</a> | 39 | <a href="" class="modal__sign-bottom-link">Забыли пароль?</a> |
43 | </div> | 40 | </div> |
44 | </div> | 41 | </div> |
45 | </div> | 42 | </div> |
46 | <div class="modal__sign-item"> | 43 | <div class="modal__sign-item"> |
47 | <a id="button_send" name="button_send" class="button">Войти</a> | 44 | <a id="button_send" name="button_send" class="button">Войти</a> |
48 | </div> | 45 | </div> |
49 | </form> | 46 | </form> |
50 | <div class="modal__text"> | 47 | <div class="modal__text"> |
51 | <span>У Вас ещё нет аккаунта?</span> | 48 | <span>У Вас ещё нет аккаунта?</span> |
52 | | 49 | |
53 | <a href="">Создать аккаунт</a> | 50 | <a href="">Создать аккаунт</a> |
54 | </div> | 51 | </div> |
55 | </div> | 52 | </div> |
56 | </div> | 53 | </div> |
57 | 54 |