| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- @extends('layouts.frontend')
- @section('content')
- <div class="container" style="min-height: 450px;">
- <div class="row archivio-news">
- <br>
- <div class="title-section col-sm-12">
- <h1 style="width: 90%"><span>Archivio Calendari</span></h1>
- </div>
- <div class="col-sm-12">
- <form id="archiveFilterForm">
- <div class="row">
- <div class="col-md-12">
- <div class="form-group">
- <label for="season">Stagione:</label>
- <select id="season" name="season_id" class="form-control">
- <option value="">Seleziona Stagione</option>
- @foreach($seasons as $season)
- <option value="{{ $season->id }}">{{ $season->name }}</option>
- @endforeach
- </select>
- </div>
- </div>
- </div>
- <div class="row mt-3" id="typeSection" style="display: none;">
- <div class="col-md-12">
- <div class="form-group">
- <label for="type">Tipo:</label>
- <select id="type" name="type" class="form-control">
- <option value="">Seleziona Tipo</option>
- @foreach($categories->pluck('type')->unique() as $type)
- <option value="{{ $type }}">
- @if($type == 'nation')
- NAZIONALE
- @elseif($type == 'region')
- REGIONALE
- @else
- {{ strtoupper($type) }}
- @endif
- </option>
- @endforeach
- </select>
- </div>
- </div>
- </div>
- <div class="row mt-3" id="categorySection" style="display: none;">
- <div class="col-md-12">
- <div class="form-group">
- <label for="category">Categoria:</label>
- <select id="category" name="category_id" class="form-control">
- <option value="">Seleziona Categoria</option>
- </select>
- </div>
- </div>
- </div>
- <div class="row mt-3" id="groupSection" style="display: none;">
- <div class="col-md-12">
- <div class="form-group">
- <label for="group">Gruppo:</label>
- <select id="group" name="group_id" class="form-control">
- <option value="">Seleziona Gruppo</option>
- </select>
- </div>
- </div>
- </div>
- <div class="row mt-4" id="resultSection" style="display: none;">
- <div class="col-md-12 text-center">
- <div id="searchButtonSection">
- <button type="button" id="searchButton" class="btn btn-primary">
- Vai al Calendario
- </button>
- </div>
- <div id="noResultsSection" style="display: none;">
- <p class="text-danger">Nessun calendario in archivio per i dati inseriti</p>
- </div>
- </div>
- </div>
- </form>
- </div>
- </div>
- </div>
- @stop
- @section('extra_js')
- <script>
- $(document).ready(function() {
- const categories = @json($categories);
- const groups = @json($groups);
- const archivedCalendars = @json($archivedCalendars);
- function findCalendarsForSeason(seasonId) {
- return archivedCalendars.filter(cal => cal.season_id === parseInt(seasonId));
- }
- function findCalendarsForType(seasonId, type) {
- return archivedCalendars.filter(cal =>
- cal.season_id === parseInt(seasonId) &&
- cal.category?.type === type
- );
- }
- function findCalendarsForCategory(seasonId, categoryId) {
- return archivedCalendars.filter(cal =>
- cal.season_id === parseInt(seasonId) &&
- cal.category_id === parseInt(categoryId)
- );
- }
- $('#season').on('change', function() {
- const seasonId = $(this).val();
- if (seasonId) {
- const seasonCalendars = findCalendarsForSeason(seasonId);
- if (seasonCalendars.length > 0) {
- $('#typeSection').show();
- $('#resultSection, #noResultsSection').hide();
- } else {
- $('#typeSection, #categorySection, #groupSection').hide();
- $('#resultSection').show();
- $('#searchButtonSection').hide();
- $('#noResultsSection').show();
- }
- } else {
- $('#typeSection, #categorySection, #groupSection, #resultSection').hide();
- $('#type, #category, #group').val('');
- }
- });
- $('#type').on('change', function() {
- const selectedType = $(this).val();
- const seasonId = $('#season').val();
- if (selectedType && seasonId) {
- const typeCalendars = findCalendarsForType(seasonId, selectedType);
- if (typeCalendars.length > 0) {
- const filteredCategories = categories.filter(cat =>
- cat.type === selectedType &&
- typeCalendars.some(cal => cal.category_id === cat.id)
- );
- const categorySelect = $('#category');
- categorySelect.empty().append('<option value="">Seleziona Categoria</option>');
- filteredCategories.forEach(category => {
- categorySelect.append(`<option value="${category.id}">${category.name}</option>`);
- });
- $('#categorySection').show();
- $('#groupSection').hide();
- $('#group').val('');
- $('#resultSection, #noResultsSection').hide();
- } else {
- $('#categorySection, #groupSection').hide();
- $('#resultSection').show();
- $('#searchButtonSection').hide();
- $('#noResultsSection').show();
- }
- } else {
- $('#categorySection, #groupSection, #resultSection').hide();
- $('#category, #group').val('');
- }
- });
- $('#category').on('change', function() {
- const selectedCategoryId = $(this).val();
- const seasonId = $('#season').val();
- if (selectedCategoryId && seasonId) {
- const categoryCalendars = findCalendarsForCategory(seasonId, selectedCategoryId);
- if (categoryCalendars.length > 0) {
- const filteredGroups = groups.filter(group =>
- group.category_id === parseInt(selectedCategoryId) &&
- categoryCalendars.some(cal => cal.group_id === group.id)
- );
- if (filteredGroups.length > 0) {
- const groupSelect = $('#group');
- groupSelect.empty().append('<option value="">Seleziona Gruppo</option>');
- filteredGroups.forEach(group => {
- groupSelect.append(`<option value="${group.id}">${group.name}</option>`);
- });
- $('#groupSection').show();
- } else {
- $('#searchButtonSection').show();
- $('#noResultsSection').hide();
- }
- $('#resultSection').show();
- } else {
- $('#groupSection').hide();
- $('#resultSection').show();
- $('#searchButtonSection').hide();
- $('#noResultsSection').show();
- }
- } else {
- $('#groupSection, #searchButtonSection').hide();
- $('#group').val('');
- }
- });
- $('#group').on('change', function() {
- const groupId = $(this).val();
- if (groupId) {
- $('#searchButtonSection').show();
- $('#noResultsSection').hide();
- }
- });
- $('#searchButton').on('click', function() {
- const seasonId = $('#season').val();
- const categoryId = $('#category').val();
- const groupId = $('#group').val();
- const selectedCategory = categories.find(c => c.id === parseInt(categoryId));
- if (selectedCategory) {
- const selectedGroup = groupId ? groups.find(g => g.id === parseInt(groupId)) : null;
- let urlName = selectedCategory.name;
- if (selectedGroup) {
- urlName += `-${selectedGroup.name}`;
- }
- const calendarId = groupId || categoryId;
- const url = `/calendario/${urlName}/${calendarId}`;
- window.location.href = url;
- }
- });
- });
- </script>
- @stop
|