Skip to content

Commit d8ead9b

Browse files
Copilotmarcoacierno
andcommitted
Add toggle button to hide/show reviews-bottom-bar
Co-authored-by: marcoacierno <[email protected]>
1 parent d42cd3d commit d8ead9b

File tree

2 files changed

+142
-0
lines changed

2 files changed

+142
-0
lines changed

backend/reviews/templates/grants-recap.html

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@
7575
z-index: 500;
7676
background-color: #417690;
7777
color: #fff;
78+
transition: transform 0.3s ease-in-out;
79+
}
80+
81+
.reviews-bottom-bar.hidden {
82+
transform: translateY(100%);
7883
}
7984

8085
.reviews-bottom-bar-content {
@@ -105,6 +110,37 @@
105110
max-width: 800px;
106111
}
107112

113+
.reviews-bottom-bar-toggle {
114+
position: fixed;
115+
bottom: 10px;
116+
right: 20px;
117+
z-index: 501;
118+
background-color: #417690;
119+
color: #fff;
120+
border: 2px solid #fff;
121+
border-radius: 50%;
122+
width: 50px;
123+
height: 50px;
124+
cursor: pointer;
125+
display: flex;
126+
align-items: center;
127+
justify-content: center;
128+
font-size: 24px;
129+
transition: bottom 0.3s ease-in-out, background-color 0.2s;
130+
}
131+
132+
.reviews-bottom-bar-toggle:hover {
133+
background-color: #2a5d75;
134+
}
135+
136+
.reviews-bottom-bar.hidden ~ .reviews-bottom-bar-toggle {
137+
bottom: 10px;
138+
}
139+
140+
.reviews-bottom-bar:not(.hidden) ~ .reviews-bottom-bar-toggle {
141+
bottom: 100px;
142+
}
143+
108144
.results-table ul {
109145
margin-left: 0;
110146
padding: 0;
@@ -537,6 +573,38 @@
537573
};
538574

539575
window.addEventListener('load', initSorting);
576+
577+
// Toggle bottom bar visibility
578+
const toggleBottomBar = () => {
579+
const bottomBar = document.querySelector('.reviews-bottom-bar');
580+
const toggleIcon = document.getElementById('toggle-icon');
581+
582+
bottomBar.classList.toggle('hidden');
583+
584+
if (bottomBar.classList.contains('hidden')) {
585+
toggleIcon.textContent = '▲';
586+
} else {
587+
toggleIcon.textContent = '▼';
588+
}
589+
590+
// Save preference in localStorage
591+
localStorage.setItem('bottomBarHidden', bottomBar.classList.contains('hidden'));
592+
};
593+
594+
// Restore bottom bar state from localStorage
595+
window.addEventListener('load', () => {
596+
const bottomBarHidden = localStorage.getItem('bottomBarHidden') === 'true';
597+
const bottomBar = document.querySelector('.reviews-bottom-bar');
598+
const toggleIcon = document.getElementById('toggle-icon');
599+
const toggleButton = document.getElementById('bottom-bar-toggle');
600+
601+
if (bottomBarHidden) {
602+
bottomBar.classList.add('hidden');
603+
toggleIcon.textContent = '▲';
604+
}
605+
606+
toggleButton.addEventListener('click', toggleBottomBar);
607+
});
540608
</script>
541609
<ul class="object-tools">
542610
<li>
@@ -904,5 +972,8 @@ <h2 class="current-grants-num">
904972
</div>
905973
</div>
906974
{% endif %}
975+
<button type="button" class="reviews-bottom-bar-toggle" id="bottom-bar-toggle" title="Toggle bottom bar visibility">
976+
<span id="toggle-icon"></span>
977+
</button>
907978
</form>
908979
{% endblock %}

backend/reviews/templates/proposals-recap.html

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@
7070
z-index: 500;
7171
background-color: #417690;
7272
color: #fff;
73+
transition: transform 0.3s ease-in-out;
74+
}
75+
76+
.reviews-bottom-bar.hidden {
77+
transform: translateY(100%);
7378
}
7479

7580
.reviews-bottom-bar-content {
@@ -93,6 +98,37 @@
9398
max-width: 800px;
9499
}
95100

101+
.reviews-bottom-bar-toggle {
102+
position: fixed;
103+
bottom: 10px;
104+
right: 20px;
105+
z-index: 501;
106+
background-color: #417690;
107+
color: #fff;
108+
border: 2px solid #fff;
109+
border-radius: 50%;
110+
width: 50px;
111+
height: 50px;
112+
cursor: pointer;
113+
display: flex;
114+
align-items: center;
115+
justify-content: center;
116+
font-size: 24px;
117+
transition: bottom 0.3s ease-in-out, background-color 0.2s;
118+
}
119+
120+
.reviews-bottom-bar-toggle:hover {
121+
background-color: #2a5d75;
122+
}
123+
124+
.reviews-bottom-bar.hidden ~ .reviews-bottom-bar-toggle {
125+
bottom: 10px;
126+
}
127+
128+
.reviews-bottom-bar:not(.hidden) ~ .reviews-bottom-bar-toggle {
129+
bottom: 100px;
130+
}
131+
96132
ul.proposal-ranking {
97133
margin-top: 0;
98134
margin-left: 30px;
@@ -324,6 +360,38 @@
324360
}
325361
);
326362
};
363+
364+
// Toggle bottom bar visibility
365+
const toggleBottomBar = () => {
366+
const bottomBar = document.querySelector('.reviews-bottom-bar');
367+
const toggleIcon = document.getElementById('toggle-icon');
368+
369+
bottomBar.classList.toggle('hidden');
370+
371+
if (bottomBar.classList.contains('hidden')) {
372+
toggleIcon.textContent = '▲';
373+
} else {
374+
toggleIcon.textContent = '▼';
375+
}
376+
377+
// Save preference in localStorage
378+
localStorage.setItem('bottomBarHidden', bottomBar.classList.contains('hidden'));
379+
};
380+
381+
// Restore bottom bar state from localStorage
382+
window.addEventListener('load', () => {
383+
const bottomBarHidden = localStorage.getItem('bottomBarHidden') === 'true';
384+
const bottomBar = document.querySelector('.reviews-bottom-bar');
385+
const toggleIcon = document.getElementById('toggle-icon');
386+
const toggleButton = document.getElementById('bottom-bar-toggle');
387+
388+
if (bottomBarHidden) {
389+
bottomBar.classList.add('hidden');
390+
toggleIcon.textContent = '▲';
391+
}
392+
393+
toggleButton.addEventListener('click', toggleBottomBar);
394+
});
327395
</script>
328396

329397
<form id="changelist-form" method="post" novalidate="">
@@ -591,5 +659,8 @@ <h2>Waiting List: <span id="waitinglist-proposals-num">0</span></h2>
591659
</div>
592660
</div>
593661
</div>
662+
<button type="button" class="reviews-bottom-bar-toggle" id="bottom-bar-toggle" title="Toggle bottom bar visibility">
663+
<span id="toggle-icon"></span>
664+
</button>
594665
</form>
595666
{% endblock %}

0 commit comments

Comments
 (0)