Skip to content

Commit 2f61416

Browse files
Merge pull request #57 from justinhartman/feat/upload-two-additional-images
Add cinema mode toggle
2 parents 33c25f6 + db86e84 commit 2f61416

File tree

4 files changed

+46
-5
lines changed

4 files changed

+46
-5
lines changed

public/css/style.css

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ a.btn-primary:hover {
2626
display: flex;
2727
flex-direction: column;
2828
}
29+
.series-controls {
30+
width: 100%;
31+
}
2932

3033
/* Home page scrolling containers with buttons. */
3134
.scroll-row {
@@ -60,11 +63,22 @@ a.btn-primary:hover {
6063
grid-template-columns: 2fr 1fr;
6164
grid-template-areas:
6265
"player episodes"
66+
"controls episodes"
6367
"seasons episodes"
6468
"info episodes";
6569
column-gap: 1rem;
6670
}
71+
.series-layout.cinema-mode {
72+
grid-template-columns: 3fr 2fr;
73+
grid-template-areas:
74+
"player player"
75+
"controls controls"
76+
"seasons episodes"
77+
"info episodes";
78+
row-gap: 1rem;
79+
}
6780
.series-player { grid-area: player; }
81+
.series-controls { grid-area: controls; }
6882
.series-episodes { grid-area: episodes; }
6983
.series-seasons { grid-area: seasons; }
7084
.series-info { grid-area: info; }

views/partials/footer.ejs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,5 +91,27 @@
9191
applyServer(next);
9292
});
9393
})();
94+
95+
(function() {
96+
const cinemaToggle = document.getElementById('cinema-toggle');
97+
const seriesLayout = document.querySelector('.series-layout');
98+
if (!cinemaToggle || !seriesLayout) return;
99+
100+
const updateCinemaToggle = (enabled) => {
101+
cinemaToggle.innerHTML = `<i class="bi bi-camera-reels"></i> ${enabled ? 'Cinema Off' : 'Cinema On'}`;
102+
cinemaToggle.classList.toggle('bg-info', enabled);
103+
cinemaToggle.classList.toggle('text-dark', enabled);
104+
cinemaToggle.classList.toggle('bg-info-subtle', !enabled);
105+
seriesLayout.classList.toggle('cinema-mode', enabled);
106+
};
107+
108+
updateCinemaToggle(seriesLayout.classList.contains('cinema-mode'));
109+
110+
cinemaToggle.addEventListener('click', (event) => {
111+
event.preventDefault();
112+
const enableCinema = !seriesLayout.classList.contains('cinema-mode');
113+
updateCinemaToggle(enableCinema);
114+
});
115+
})();
94116
</script>
95117
</html>

views/partials/series-buttons.ejs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ if (episodeNum >= maxEpisodes) {
3131
<div id="series-buttons" class="px-1 w-100">
3232
<div class="btn-group mb-2 w-100">
3333
<a href="<%= prevLink %>" class="btn bg-primary border border-primary-subtle btn-sm p-2 <%= prevDisabled ? 'disabled' : '' %>"><i class="bi bi-caret-left-square"></i> Previous</a>
34+
<button type="button" id="cinema-toggle" class="btn btn-sm p-2 bg-info-subtle border border-gray-subtle">
35+
<i class="bi bi-camera-reels"></i> Cinema On
36+
</button>
3437
<% if (server2Src && server2Src.trim() !== '') { -%>
3538
<a href="#" id="server-toggle" data-current="<%= currentServer %>" data-server1="<%= server1Src %>" data-server2="<%= server2Src %>" data-preference-key="<%= preferenceKeySeries %>" class="btn text-secondary bg-secondary-subtle border border-secondary-subtle btn-sm p-2">
3639
<i class="bi bi-hdd-stack"></i> Server <%= currentServer === '1' ? '2' : '1' %>

views/view.ejs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,8 @@
6060
<iframe id="player" src="<%= iframeSrc %>" referrerpolicy="origin" allow="autoplay; fullscreen" class="w-100"></iframe>
6161
</div>
6262
</div>
63-
<div class="series-episodes d-flex flex-wrap flex-md-column mt-2 mt-md-0">
63+
<div class="series-controls mt-2 mt-md-0">
6464
<%- include('./partials/series-buttons.ejs') -%>
65-
<% const currentSeason = seriesDetail.currentSeason || { episodes: [] }; %>
66-
<% currentSeason.episodes.forEach(ep => { %>
67-
<a href="<%= `${APP_URL}/view/${id}/${type}/${season}/${ep.episode}` %>" class="btn btn-outline-info btn-sm text-start m-1 <%= Number(episode) === ep.episode ? 'active' : '' %>"><%= ep.episode %>. <%= ep.title || `Episode ${ep.episode}` %></a>
68-
<% }) %>
6965
</div>
7066
<div class="series-seasons d-flex flex-wrap mt-2 h-25">
7167
<% for (let s = 1; s <= seriesDetail.totalSeasons; s++) { %>
@@ -94,6 +90,12 @@
9490
</div>
9591
</div>
9692
<% } -%>
93+
<div class="series-episodes d-flex flex-wrap flex-md-column mt-2 mt-md-0">
94+
<% const currentSeason = seriesDetail.currentSeason || { episodes: [] }; %>
95+
<% currentSeason.episodes.forEach(ep => { %>
96+
<a href="<%= `${APP_URL}/view/${id}/${type}/${season}/${ep.episode}` %>" class="btn btn-outline-info btn-sm text-start m-1 <%= Number(episode) === ep.episode ? 'active' : '' %>"><%= ep.episode %>. <%= ep.title || `Episode ${ep.episode}` %></a>
97+
<% }) %>
98+
</div>
9799
</div>
98100
<% } else { %>
99101
<div class="row">

0 commit comments

Comments
 (0)