Added a Year Dropdown and all the functionality to select different Years
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
[
|
||||
{
|
||||
"eventDates": "FEBRUARY 27 – MARCH 8, 2025",
|
||||
"restaurants": [
|
||||
{
|
||||
"name": "1898 Public House",
|
||||
"slug": "1898",
|
||||
@@ -6748,4 +6750,5 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
@@ -1,4 +1,6 @@
|
||||
[
|
||||
{
|
||||
"eventDates": "FEBRUARY 26 – MARCH 7, 2026",
|
||||
"restaurants": [
|
||||
{
|
||||
"name": "315",
|
||||
"slug": "315cuisine",
|
||||
@@ -7159,4 +7161,5 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -74,7 +74,8 @@ header p{font-size:0.85rem;color:#f0cca0;margin-top:3px}
|
||||
@keyframes pop{from{transform:scale(0.85);opacity:0}to{transform:scale(1);opacity:1}}
|
||||
.no-results{padding:30px;text-align:center;color:#5a3a20}
|
||||
::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:#1a0a00}::-webkit-scrollbar-thumb{background:#5a2a00;border-radius:3px}
|
||||
.course-browse-bar{background:#241000;padding:8px 24px;display:flex;gap:10px;border-bottom:1px solid #5a2a00}
|
||||
.course-browse-bar{background:#241000;padding:8px 24px;display:flex;gap:10px;align-items:center;border-bottom:1px solid #5a2a00}
|
||||
.course-browse-bar select{background:#3a1a00;border:1px solid #7a4a00;color:#f0e6d3;padding:7px 10px;border-radius:6px;font-size:0.85rem;cursor:pointer;margin-left:auto;flex-shrink:0}
|
||||
.btn-course{background:#3a1a00;border:1px solid #7a4a00;color:#f5c842;padding:7px 20px;border-radius:20px;cursor:pointer;font-size:0.85rem;font-weight:600;transition:all 0.2s}
|
||||
.btn-course:hover{background:#5a2a00;border-color:#f5c842}
|
||||
.course-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.78);z-index:100;display:flex;align-items:center;justify-content:center}
|
||||
@@ -97,8 +98,9 @@ header p{font-size:0.85rem;color:#f0cca0;margin-top:3px}
|
||||
.toolbar select{flex:1;min-width:0}
|
||||
.spacer{display:none}
|
||||
.tag-counts{width:100%;order:10;text-align:center}
|
||||
.course-browse-bar{padding:8px 12px}
|
||||
.course-browse-bar{padding:8px 12px;flex-wrap:wrap}
|
||||
.btn-course{flex:1;padding:7px 6px;text-align:center}
|
||||
.course-browse-bar select{margin-left:0;width:100%}
|
||||
.main{height:auto;min-height:calc(100svh - 98px);flex-direction:column}
|
||||
.list-panel{width:100%;min-width:0;border-right:none;min-height:calc(100svh - 98px)}
|
||||
.detail-panel{display:none;width:100%;padding:16px 14px}
|
||||
@@ -120,7 +122,7 @@ header p{font-size:0.85rem;color:#f0cca0;margin-top:3px}
|
||||
<h1>🍽️ Inlander Restaurant Week Picker</h1>
|
||||
<p>Browse menus · Mark favorites · Let fate decide</p>
|
||||
</div>
|
||||
<span style="margin-left:auto;font-size:1.5rem;font-weight:700;color:#f5c842;white-space:nowrap">FEBRUARY 26 – MARCH 7, 2026</span>
|
||||
<span id="eventDates" style="margin-left:auto;font-size:1.5rem;font-weight:700;color:#f5c842;white-space:nowrap">FEBRUARY 26 – MARCH 7, 2026</span>
|
||||
</header>
|
||||
<div class="toolbar">
|
||||
<input type="text" id="search" placeholder="Search restaurants..." oninput="applyFilters()"/>
|
||||
@@ -147,6 +149,10 @@ header p{font-size:0.85rem;color:#f0cca0;margin-top:3px}
|
||||
<button class="btn btn-course" onclick="openCourseBrowse('First Course')">🥗 First Course</button>
|
||||
<button class="btn btn-course" onclick="openCourseBrowse('Second Course')">🍖 Second Course</button>
|
||||
<button class="btn btn-course" onclick="openCourseBrowse('Third Course')">🍮 Third Course</button>
|
||||
<select id="yearSelect" onchange="loadYear(this.value)">
|
||||
<option value="2026">2026</option>
|
||||
<option value="2025">2025</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="main">
|
||||
<div class="list-panel" id="listPanel"></div>
|
||||
@@ -172,8 +178,8 @@ header p{font-size:0.85rem;color:#f0cca0;margin-top:3px}
|
||||
</div>
|
||||
<script>
|
||||
let RESTAURANTS = [];
|
||||
|
||||
let interests = JSON.parse(localStorage.getItem('irw_interests')||'{}');
|
||||
let currentYear = '2026';
|
||||
let interests = JSON.parse(localStorage.getItem('irw_interests_2026')||'{}');
|
||||
let filteredList = [];
|
||||
let activeSlug = null;
|
||||
let currentWinner = null;
|
||||
@@ -240,7 +246,7 @@ function toggleInterest(slug,who,checked){
|
||||
if(!interests[slug]) interests[slug]={};
|
||||
interests[slug][who]=checked;
|
||||
if(!interests[slug].you && !interests[slug].wife) delete interests[slug];
|
||||
localStorage.setItem('irw_interests',JSON.stringify(interests));
|
||||
localStorage.setItem('irw_interests_'+currentYear,JSON.stringify(interests));
|
||||
renderList();
|
||||
updateCounts();
|
||||
if(activeSlug===slug) showDetail(slug);
|
||||
@@ -249,7 +255,7 @@ function toggleInterest(slug,who,checked){
|
||||
function clearAll(){
|
||||
if(!confirm('Clear all your selections?')) return;
|
||||
interests={};
|
||||
localStorage.setItem('irw_interests',JSON.stringify(interests));
|
||||
localStorage.setItem('irw_interests_'+currentYear,JSON.stringify(interests));
|
||||
renderList(); updateCounts();
|
||||
}
|
||||
function resetFilters(){
|
||||
@@ -354,15 +360,34 @@ function openCourseBrowse(course){
|
||||
function closeCourseBrowse(){ document.getElementById('courseBrowseOverlay').style.display = 'none'; }
|
||||
function selectCourseDish(slug){ closeCourseBrowse(); showDetail(slug); }
|
||||
|
||||
function loadYear(year){
|
||||
currentYear = year;
|
||||
interests = JSON.parse(localStorage.getItem('irw_interests_'+year)||'{}');
|
||||
activeSlug = null;
|
||||
currentWinner = null;
|
||||
document.querySelector('.main').classList.remove('show-detail');
|
||||
document.getElementById('detailPanel').innerHTML = `
|
||||
<div class="detail-empty">
|
||||
<div class="icon">🍴</div>
|
||||
<h3 style="color:#8b4a20">Select a restaurant to see its menu</h3>
|
||||
<p>Check boxes to mark ones you're interested in, then hit "Pick for Us!"</p>
|
||||
</div>`;
|
||||
document.getElementById('filterArea').innerHTML = '<option value="">All Areas</option>';
|
||||
document.getElementById('filterCuisine').innerHTML = '<option value="">All Cuisines</option>';
|
||||
resetFilters();
|
||||
fetch(year+'-restaurants.json')
|
||||
.then(function(r){ return r.json(); })
|
||||
.then(function(data){
|
||||
RESTAURANTS = data.restaurants;
|
||||
document.getElementById('eventDates').textContent = data.eventDates;
|
||||
initDropdowns();
|
||||
applyFilters();
|
||||
updateCounts();
|
||||
});
|
||||
}
|
||||
|
||||
// Init
|
||||
fetch('2026-restaurants.json')
|
||||
.then(function(r){ return r.json(); })
|
||||
.then(function(data){
|
||||
RESTAURANTS = data;
|
||||
initDropdowns();
|
||||
applyFilters();
|
||||
updateCounts();
|
||||
});
|
||||
loadYear('2026');
|
||||
</script>
|
||||
<div class="course-modal-overlay" id="courseBrowseOverlay" style="display:none" onclick="if(event.target===this)closeCourseBrowse()">
|
||||
<div class="course-modal">
|
||||
|
||||
Reference in New Issue
Block a user