Feat: Dropdown for faculty navigation
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
<nav x-data="{ open: false }" class="bg-white border-b border-gray-100">
|
<nav x-data="{ open: false, activitiesAttendedOpen: false, activitiesOrganisedOpen: false, ivOrganisedOpen: false }" class="bg-white border-b border-gray-100">
|
||||||
<!-- Primary Navigation Menu -->
|
<!-- Primary Navigation Menu -->
|
||||||
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||||
<div class="flex justify-between h-16">
|
<div class="flex justify-between h-16">
|
||||||
@@ -18,37 +18,80 @@
|
|||||||
|
|
||||||
<!-- Role-specific Links using direct role checks -->
|
<!-- Role-specific Links using direct role checks -->
|
||||||
@if(auth()->user()->role->name === 'Admin')
|
@if(auth()->user()->role->name === 'Admin')
|
||||||
<x-nav-link :href="route('admin.ActivitiesAttendedResponses')" :active="request()->routeIs('admin.ActivitiesAttendedResponses')">
|
<x-nav-link :href="route('admin.ActivitiesAttendedResponses')" :active="request()->routeIs('admin.ActivitiesAttendedResponses')">
|
||||||
{{ __('Activities Attended') }}
|
{{ __('Activities Attended') }}
|
||||||
</x-nav-link>
|
</x-nav-link>
|
||||||
<x-nav-link :href="route('admin.ActivitiesOrganisedResponses')" :active="request()->routeIs('admin.ActivitiesOrganisedResponses')">
|
<x-nav-link :href="route('admin.ActivitiesOrganisedResponses')" :active="request()->routeIs('admin.ActivitiesOrganisedResponses')">
|
||||||
{{ __('Activities Organised') }}
|
{{ __('Activities Organised') }}
|
||||||
</x-nav-link>
|
</x-nav-link>
|
||||||
<x-nav-link :href="route('admin.IvOrganisedResponses')" :active="request()->routeIs('admin.IvOrganisedResponses')">
|
<x-nav-link :href="route('admin.IvOrganisedResponses')" :active="request()->routeIs('admin.IvOrganisedResponses')">
|
||||||
{{ __('IV Organised') }}
|
{{ __('IV Organised') }}
|
||||||
</x-nav-link>
|
</x-nav-link>
|
||||||
<!-- Coordinator Routes -->
|
|
||||||
@elseif(auth()->user()->role->name === 'Coordinator')
|
<!-- Coordinator Routes -->
|
||||||
<x-nav-link :href="route('coordinator.ActivitiesAttendedResponses')" :active="request()->routeIs('coordinator.ActivitiesAttendedResponses')">
|
@elseif(auth()->user()->role->name === 'Coordinator')
|
||||||
{{ __('Activities Attended') }}
|
<x-nav-link :href="route('coordinator.ActivitiesAttendedResponses')" :active="request()->routeIs('coordinator.ActivitiesAttendedResponses')">
|
||||||
</x-nav-link>
|
{{ __('Activities Attended') }}
|
||||||
<x-nav-link :href="route('coordinator.ActivitiesOrganisedResponses')" :active="request()->routeIs('coordinator.ActivitiesOrganisedResponses')">
|
</x-nav-link>
|
||||||
{{ __('Activities Organised') }}
|
<x-nav-link :href="route('coordinator.ActivitiesOrganisedResponses')" :active="request()->routeIs('coordinator.ActivitiesOrganisedResponses')">
|
||||||
</x-nav-link>
|
{{ __('Activities Organised') }}
|
||||||
<x-nav-link :href="route('coordinator.IvOrganisedResponses')" :active="request()->routeIs('coordinator.IvOrganisedResponses')">
|
</x-nav-link>
|
||||||
{{ __('IV Organised') }}
|
<x-nav-link :href="route('coordinator.IvOrganisedResponses')" :active="request()->routeIs('coordinator.IvOrganisedResponses')">
|
||||||
</x-nav-link>
|
{{ __('IV Organised') }}
|
||||||
<!-- Faculty Routes -->
|
</x-nav-link>
|
||||||
@elseif(auth()->user()->role->name === 'Faculty')
|
|
||||||
<x-nav-link :href="route('faculty.ActivitiesAttendedForm')" :active="request()->routeIs('faculty.ActivitiesAttendedForm')">
|
<!-- Faculty Routes with Dropdowns -->
|
||||||
{{ __('Activities Attended') }}
|
@elseif(auth()->user()->role->name === 'Faculty')
|
||||||
</x-nav-link>
|
<!-- Activities Attended Dropdown -->
|
||||||
<x-nav-link :href="route('faculty.ActivitiesOrganisedForm')" :active="request()->routeIs('faculty.ActivitiesOrganisedForm')">
|
<div class="hidden gap-2 sm:flex sm:items-center sm:ms-6">
|
||||||
{{ __('Activities Organised') }}
|
|
||||||
</x-nav-link>
|
<div class="relative" x-data="{ open: false }">
|
||||||
<x-nav-link :href="route('faculty.IvOrganisedForm')" :active="request()->routeIs('faculty.IvOrganisedForm')">
|
<button @click="open = !open" @click.away="open = false" class="inline-flex items-center px-1 pt-1 border-b-2 border-transparent text-sm font-medium leading-5 text-gray-500 hover:text-gray-700 hover:border-gray-300 focus:outline-none focus:text-gray-700 focus:border-gray-300 transition duration-150 ease-in-out">
|
||||||
{{ __('Iv Organised') }}
|
{{ __('Activities Attended') }}
|
||||||
</x-nav-link>
|
<svg class="ml-1 -mr-0.5 h-4 w-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
|
||||||
|
<path fill-rule="evenodd" 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" clip-rule="evenodd" />
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
<div x-show="open" x-transition:enter="transition ease-out duration-100" x-transition:enter-start="transform opacity-0 scale-95" x-transition:enter-end="transform opacity-100 scale-100" x-transition:leave="transition ease-in duration-75" x-transition:leave-start="transform opacity-100 scale-100" x-transition:leave-end="transform opacity-0 scale-95" class="absolute z-50 mt-2 w-48 rounded-md shadow-lg origin-top-right right-0" style="display: none;">
|
||||||
|
<div class="rounded-md ring-1 ring-black ring-opacity-5 py-1 bg-white">
|
||||||
|
<a href="{{ route('faculty.ActivitiesAttendedForm') }}" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">{{ __('Submit Response') }}</a>
|
||||||
|
<a href="{{ route('faculty.ActivitiesAttendedResponses') }}" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">{{ __('View Responses') }}</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Activities Organised Dropdown -->
|
||||||
|
<div class="relative" x-data="{ open: false }">
|
||||||
|
<button @click="open = !open" @click.away="open = false" class="inline-flex items-center px-1 pt-1 border-b-2 border-transparent text-sm font-medium leading-5 text-gray-500 hover:text-gray-700 hover:border-gray-300 focus:outline-none focus:text-gray-700 focus:border-gray-300 transition duration-150 ease-in-out">
|
||||||
|
{{ __('Activities Organised') }}
|
||||||
|
<svg class="ml-1 -mr-0.5 h-4 w-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
|
||||||
|
<path fill-rule="evenodd" 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" clip-rule="evenodd" />
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
<div x-show="open" x-transition:enter="transition ease-out duration-100" x-transition:enter-start="transform opacity-0 scale-95" x-transition:enter-end="transform opacity-100 scale-100" x-transition:leave="transition ease-in duration-75" x-transition:leave-start="transform opacity-100 scale-100" x-transition:leave-end="transform opacity-0 scale-95" class="absolute z-50 mt-2 w-48 rounded-md shadow-lg origin-top-right right-0" style="display: none;">
|
||||||
|
<div class="rounded-md ring-1 ring-black ring-opacity-5 py-1 bg-white">
|
||||||
|
<a href="{{ route('faculty.ActivitiesOrganisedForm') }}" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">{{ __('Submit Response') }}</a>
|
||||||
|
<a href="{{ route('faculty.ActivitiesOrganisedResponses') }}" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">{{ __('View Responses') }}</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- IV Organised Dropdown -->
|
||||||
|
<div class="relative" x-data="{ open: false }">
|
||||||
|
<button @click="open = !open" @click.away="open = false" class="inline-flex items-center px-1 pt-1 border-b-2 border-transparent text-sm font-medium leading-5 text-gray-500 hover:text-gray-700 hover:border-gray-300 focus:outline-none focus:text-gray-700 focus:border-gray-300 transition duration-150 ease-in-out">
|
||||||
|
{{ __('IV Organised') }}
|
||||||
|
<svg class="ml-1 -mr-0.5 h-4 w-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
|
||||||
|
<path fill-rule="evenodd" 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" clip-rule="evenodd" />
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
<div x-show="open" x-transition:enter="transition ease-out duration-100" x-transition:enter-start="transform opacity-0 scale-95" x-transition:enter-end="transform opacity-100 scale-100" x-transition:leave="transition ease-in duration-75" x-transition:leave-start="transform opacity-100 scale-100" x-transition:leave-end="transform opacity-0 scale-95" class="absolute z-50 mt-2 w-48 rounded-md shadow-lg origin-top-right right-0" style="display: none;">
|
||||||
|
<div class="rounded-md ring-1 ring-black ring-opacity-5 py-1 bg-white">
|
||||||
|
<a href="{{ route('faculty.IvOrganisedForm') }}" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">{{ __('Submit Response') }}</a>
|
||||||
|
<a href="{{ route('faculty.IvOrganisedResponses') }}" class="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100">{{ __('View Responses') }}</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -78,7 +121,7 @@
|
|||||||
@csrf
|
@csrf
|
||||||
|
|
||||||
<x-dropdown-link :href="route('logout')"
|
<x-dropdown-link :href="route('logout')"
|
||||||
onclick="event.preventDefault(); this.closest('form').submit();">
|
onclick="event.preventDefault(); this.closest('form').submit();">
|
||||||
{{ __('Log Out') }}
|
{{ __('Log Out') }}
|
||||||
</x-dropdown-link>
|
</x-dropdown-link>
|
||||||
</form>
|
</form>
|
||||||
@@ -107,17 +150,72 @@
|
|||||||
|
|
||||||
<!-- Role-specific Links using direct role checks -->
|
<!-- Role-specific Links using direct role checks -->
|
||||||
@if(auth()->user()->role->name === 'Admin')
|
@if(auth()->user()->role->name === 'Admin')
|
||||||
<x-responsive-nav-link :href="route('admin.ActivitiesAttendedResponses')" :active="request()->routeIs('admin.ActivitiesAttendedResponses')">
|
<x-responsive-nav-link :href="route('admin.ActivitiesAttendedResponses')" :active="request()->routeIs('admin.ActivitiesAttendedResponses')">
|
||||||
{{ __('Activities Attended') }}
|
{{ __('Activities Attended') }}
|
||||||
</x-responsive-nav-link>
|
</x-responsive-nav-link>
|
||||||
|
<!-- Add other admin links here -->
|
||||||
@elseif(auth()->user()->role->name === 'Coordinator')
|
@elseif(auth()->user()->role->name === 'Coordinator')
|
||||||
<x-responsive-nav-link :href="route('coordinator.ActivitiesAttendedResponses')" :active="request()->routeIs('coordinator.ActivitiesAttendedResponses')">
|
<x-responsive-nav-link :href="route('coordinator.ActivitiesAttendedResponses')" :active="request()->routeIs('coordinator.ActivitiesAttendedResponses')">
|
||||||
{{ __('Activities Attended') }}
|
{{ __('Activities Attended') }}
|
||||||
</x-responsive-nav-link>
|
</x-responsive-nav-link>
|
||||||
|
<!-- Add other coordinator links here -->
|
||||||
@elseif(auth()->user()->role->name === 'Faculty')
|
@elseif(auth()->user()->role->name === 'Faculty')
|
||||||
<x-responsive-nav-link :href="route('faculty.ActivitiesAttendedForm')" :active="request()->routeIs('faculty.ActivitiesAttendedForm')">
|
<!-- Mobile Faculty Dropdown for Activities Attended -->
|
||||||
|
<div x-data="{ open: false }">
|
||||||
|
<button @click="open = !open" class="w-full flex items-center text-left px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-100">
|
||||||
{{ __('Activities Attended') }}
|
{{ __('Activities Attended') }}
|
||||||
</x-responsive-nav-link>
|
<svg class="ml-auto h-5 w-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
|
||||||
|
<path x-show="!open" fill-rule="evenodd" 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" clip-rule="evenodd" />
|
||||||
|
<path x-show="open" fill-rule="evenodd" d="M14.707 12.707a1 1 0 01-1.414 0L10 9.414l-3.293 3.293a1 1 0 01-1.414-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 010 1.414z" clip-rule="evenodd" />
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
<div x-show="open" class="pl-4">
|
||||||
|
<x-responsive-nav-link :href="route('faculty.ActivitiesAttendedForm')" :active="request()->routeIs('faculty.ActivitiesAttendedForm')">
|
||||||
|
{{ __('Submit Response') }}
|
||||||
|
</x-responsive-nav-link>
|
||||||
|
<x-responsive-nav-link :href="route('faculty.ActivitiesAttendedResponses')" :active="request()->routeIs('faculty.ActivitiesAttendedResponses')">
|
||||||
|
{{ __('View Responses') }}
|
||||||
|
</x-responsive-nav-link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Faculty Dropdown for Activities Organised -->
|
||||||
|
<div x-data="{ open: false }">
|
||||||
|
<button @click="open = !open" class="w-full flex items-center text-left px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-100">
|
||||||
|
{{ __('Activities Organised') }}
|
||||||
|
<svg class="ml-auto h-5 w-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
|
||||||
|
<path x-show="!open" fill-rule="evenodd" 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" clip-rule="evenodd" />
|
||||||
|
<path x-show="open" fill-rule="evenodd" d="M14.707 12.707a1 1 0 01-1.414 0L10 9.414l-3.293 3.293a1 1 0 01-1.414-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 010 1.414z" clip-rule="evenodd" />
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
<div x-show="open" class="pl-4">
|
||||||
|
<x-responsive-nav-link :href="route('faculty.ActivitiesOrganisedForm')" :active="request()->routeIs('faculty.ActivitiesOrganisedForm')">
|
||||||
|
{{ __('Submit Response') }}
|
||||||
|
</x-responsive-nav-link>
|
||||||
|
<x-responsive-nav-link :href="route('faculty.ActivitiesOrganisedResponses')" :active="request()->routeIs('faculty.ActivitiesOrganisedResponses')">
|
||||||
|
{{ __('View Responses') }}
|
||||||
|
</x-responsive-nav-link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Mobile Faculty Dropdown for IV Organised -->
|
||||||
|
<div x-data="{ open: false }">
|
||||||
|
<button @click="open = !open" class="w-full flex items-center text-left px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-100">
|
||||||
|
{{ __('IV Organised') }}
|
||||||
|
<svg class="ml-auto h-5 w-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
|
||||||
|
<path x-show="!open" fill-rule="evenodd" 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" clip-rule="evenodd" />
|
||||||
|
<path x-show="open" fill-rule="evenodd" d="M14.707 12.707a1 1 0 01-1.414 0L10 9.414l-3.293 3.293a1 1 0 01-1.414-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 010 1.414z" clip-rule="evenodd" />
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
<div x-show="open" class="pl-4">
|
||||||
|
<x-responsive-nav-link :href="route('faculty.IvOrganisedForm')" :active="request()->routeIs('faculty.IvOrganisedForm')">
|
||||||
|
{{ __('Submit Response') }}
|
||||||
|
</x-responsive-nav-link>
|
||||||
|
<x-responsive-nav-link :href="route('faculty.IvOrganisedResponses')" :active="request()->routeIs('faculty.IvOrganisedResponses')">
|
||||||
|
{{ __('View Responses') }}
|
||||||
|
</x-responsive-nav-link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -138,7 +236,7 @@
|
|||||||
@csrf
|
@csrf
|
||||||
|
|
||||||
<x-responsive-nav-link :href="route('logout')"
|
<x-responsive-nav-link :href="route('logout')"
|
||||||
onclick="event.preventDefault(); this.closest('form').submit();">
|
onclick="event.preventDefault(); this.closest('form').submit();">
|
||||||
{{ __('Log Out') }}
|
{{ __('Log Out') }}
|
||||||
</x-responsive-nav-link>
|
</x-responsive-nav-link>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
Reference in New Issue
Block a user