Update PHP version requirement to ^8.2 in composer files, refactor User model access control logic, clean up MainSectionResource, enhance EditMainSection to include related pages, modify AppServiceProvider to clear subsection cache, change fallback locale to 'en', and improve DesktopNavBar and BasicFooter components for better accessibility and content accuracy.
This commit is contained in:
@@ -100,8 +100,7 @@ class User extends Authenticatable implements FilamentUser, SeoTitleInterface, S
|
||||
public function canAccessPanel(Panel|\Filament\Panel $panel): bool
|
||||
{
|
||||
return match ($panel->getId()) {
|
||||
"admin" => $this->hasRole(Utils::getSuperAdminName()),
|
||||
"dashboard" => $this->hasRole(config('filament-shield.dashboard_user.name', 'dashboard_user'))
|
||||
"admin", "dashboard" => $this->hasRole(config('filament-shield.dashboard_user.name', 'dashboard_user'))
|
||||
|| $this->hasRole(Utils::getSuperAdminName())
|
||||
|| $this->hasRole(config('filament-shield.invited_user.name', 'invited_user')),
|
||||
default => false,
|
||||
|
||||
@@ -23,15 +23,8 @@ class MainSectionResource extends Resource
|
||||
|
||||
public static ?string $pluralLabel = 'Главные разделы';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
protected static ?string $navigationGroup = 'Структура приложения';
|
||||
|
||||
|
||||
|
||||
public static function form(Form $form): Form
|
||||
{
|
||||
return $form
|
||||
|
||||
@@ -32,7 +32,7 @@ class EditMainSection extends EditRecord
|
||||
$this->subSection_ids = SubSection::query()->where('main_section_id', '=', $this->record->id)->pluck('id')->toArray();
|
||||
SubSection::query()->where('main_section_id', '=', $this->record->id)->update(['main_section_id' => NULL]);
|
||||
SubSection::whereIn('id', $this->subSection_ids)->update(['main_section_id' => $this->record->id]);
|
||||
$subSections = SubSection::query()->where('main_section_id', '=', $this->record->id)->get();
|
||||
$subSections = SubSection::query()->where('main_section_id', '=', $this->record->id)->with('pages')->get();
|
||||
|
||||
foreach ($subSections as $subSection) {
|
||||
foreach ($subSection->pages as $page) {
|
||||
|
||||
@@ -23,6 +23,7 @@ use App\Containers\User\Observers\UserDetailObserver;
|
||||
use App\Containers\Widget\Models\ContactWidget;
|
||||
use App\Containers\Widget\Models\PageReferenceList;
|
||||
use App\Containers\Widget\Models\Slide;
|
||||
use App\Filament\Resources\MainSectionResource\RelationManagers\SubSectionsRelationManager;
|
||||
use App\Observers\AcademicJournalObserver;
|
||||
use App\Observers\AdditionalEducationObserver;
|
||||
use App\Observers\AdmissionCampaignObserver;
|
||||
@@ -41,6 +42,7 @@ use App\Observers\SlideObserver;
|
||||
use App\Observers\SubSectionObserver;
|
||||
use App\Observers\UserObserver;
|
||||
use App\Services\App\Cache\SliderCacheService;
|
||||
use App\Services\App\Cache\SubSectionCacheService;
|
||||
use App\Ship\Contracts\SeoServiceInterface;
|
||||
use App\Ship\Services\SeoPageService;
|
||||
use Carbon\Carbon;
|
||||
@@ -76,6 +78,7 @@ class AppServiceProvider extends ServiceProvider
|
||||
|
||||
FilamentView::registerRenderHook(TablesRenderHook::TOOLBAR_REORDER_TRIGGER_AFTER, function () {
|
||||
(new SliderCacheService())->clearAllCacheByModel();
|
||||
(new SubSectionCacheService())->clearAllCacheByModel();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
"keywords": ["laravel", "framework"],
|
||||
"license": "MIT",
|
||||
"require": {
|
||||
"php": "^8.1",
|
||||
"php": "^8.2",
|
||||
"ext-curl": "*",
|
||||
"ext-zip": "*",
|
||||
"alxdorosenco/porto-for-laravel": "^10.0",
|
||||
|
||||
Generated
+2
-2
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "46d10b4875c40f8c0425ba3eab11c904",
|
||||
"content-hash": "43b10611f8194dcbafa73ce6ec065b66",
|
||||
"packages": [
|
||||
{
|
||||
"name": "alxdorosenco/porto-for-laravel",
|
||||
@@ -13506,7 +13506,7 @@
|
||||
"prefer-stable": true,
|
||||
"prefer-lowest": false,
|
||||
"platform": {
|
||||
"php": "^8.1",
|
||||
"php": "^8.2",
|
||||
"ext-curl": "*",
|
||||
"ext-zip": "*"
|
||||
},
|
||||
|
||||
+1
-1
@@ -96,7 +96,7 @@ return [
|
||||
|
|
||||
*/
|
||||
|
||||
'fallback_locale' => 'ru',
|
||||
'fallback_locale' => 'en',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
@@ -3,13 +3,14 @@
|
||||
class="hs-collapse hidden overflow-hidden transition-all duration-300 basis-full grow lg:block">
|
||||
<div
|
||||
class="overflow-hidden overflow-y-auto max-h-[75vh] [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300">
|
||||
|
||||
<div
|
||||
class="flex flex-col gap-x-0 mt-5 md:flex-row md:items-center md:justify-end md:gap-x-7 md:mt-0 md:ps-7 md:divide-y-0 md:divide-solid">
|
||||
<template v-if="sections && sections.data">
|
||||
<template v-for="section in sections.data" :key="section.id">
|
||||
<div
|
||||
:id="'nav-section-' + section.slug"
|
||||
class="hs-dropdown [--strategy:static] md:[--strategy:absolute] [--adaptive:none] md:[--trigger:hover] py-3 md:py-6">
|
||||
class="hs-dropdown [--strategy:static] md:[--strategy:absolute] [--adaptive:none] md:[--trigger:hover] py-3">
|
||||
<button
|
||||
:id="'nav-section-btn-' + section.slug"
|
||||
type="button"
|
||||
@@ -59,8 +60,9 @@
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
|
||||
<a @click="this.toggleBvi" href="#" class="hover:opacity-70 py-3 open-bvi ">
|
||||
</div>
|
||||
<div class="flex md:gap-x-7 md:items-center md:justify-end">
|
||||
<a @click="this.toggleBvi" href="#" class="hover:opacity-70 open-bvi ">
|
||||
<svg :class="!underSliderHeader ? 'text-white' : 'text-black'" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5"
|
||||
stroke="currentColor"
|
||||
class="w-6 h-6 duration-300 md:block hidden">
|
||||
@@ -71,8 +73,7 @@
|
||||
<span :class="!underSliderHeader ? 'text-white' : 'text-black'" class="md:hidden">Режим для слабовидящих</span>
|
||||
</a>
|
||||
|
||||
|
||||
<Link :href="route('client.schedule.index')" class="hover:opacity-70 py-3">
|
||||
<Link :href="route('client.schedule.index')" class="hover:opacity-70">
|
||||
<svg :class="!underSliderHeader ? 'text-white' : 'text-black'" xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"
|
||||
class="w-6 h-6 duration-300 md:block hidden">
|
||||
@@ -82,7 +83,7 @@
|
||||
<span :class="!underSliderHeader ? 'text-white' : 'text-black'" class="md:hidden">Расписание</span>
|
||||
</Link>
|
||||
|
||||
<button class="hover:opacity-70 py-3 cursor-pointer" data-hs-overlay="#open-search-modal">
|
||||
<button class="hover:opacity-70 cursor-pointer" data-hs-overlay="#open-search-modal">
|
||||
<svg :class="!underSliderHeader ? 'text-white' : 'text-black'" xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"
|
||||
class="w-6 h-6 duration-300 md:block hidden">
|
||||
@@ -92,7 +93,7 @@
|
||||
<span :class="!underSliderHeader ? 'text-white' : 'text-black'" class="md:hidden">Поиск</span>
|
||||
</button>
|
||||
|
||||
<button class="hover:opacity-70 py-3 cursor-pointer" data-hs-overlay="#open-search-sveden-modal">
|
||||
<button class="hover:opacity-70 cursor-pointer" data-hs-overlay="#open-search-sveden-modal">
|
||||
<svg :class="!underSliderHeader ? 'text-white' : 'text-black'" xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"
|
||||
class="w-6 h-6 duration-300 md:block hidden">
|
||||
@@ -102,10 +103,9 @@
|
||||
|
||||
<span :class="!underSliderHeader ? 'text-white' : 'text-black'" class="md:hidden">Поиск</span>
|
||||
</button>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -16,7 +16,7 @@ export default {
|
||||
<!-- End Language Dropdown -->
|
||||
<div>
|
||||
<div class="mt-3 grid space-y-3 text-sm">
|
||||
<p class="inline-flex gap-x-2 text-[12px]">© Нижнетагильский государственный социально-педагогический институт (Филиал УРГПУ)</p>
|
||||
<p class="inline-flex gap-x-2 text-[12px]">© Нижнетагильский государственный социально-педагогический институт (филиал) УрГПУ</p>
|
||||
<p class="inline-flex gap-x-2 text-[12px]">Красногвардейская улица, 57, Нижний Тагил, Свердловская область, 622031</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -24,7 +24,6 @@ export default {
|
||||
<div>
|
||||
<div class="mt-3 grid space-y-3 text-sm">
|
||||
<p><a class="underline inline-flex gap-x-2 hover:text-gray-200 text-[12px]" target="_blank" href="/sveden/">Сведения об образовательной организации</a></p>
|
||||
<p><a class="underline inline-flex gap-x-2 hover:text-gray-200 text-[12px]" target="_blank" href="/upload/824_%D0%9E%D0%B1_%D1%83%D1%82%D0%B2_%D0%9F%D0%BE%D0%BB%D0%B8%D1%82_%D0%BE%D0%B1%D1%80_%D0%B7%D0%B0%D1%89%D0%B8%D1%82_%D0%BF%D0%B5%D1%80%D1%81_%D0%B4%D0%B0%D0%BD.pdf">Политика обработки персональных данных</a></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user