diff --git a/js/schedule/App.jsx b/js/schedule/App.jsx
index e2009a86d..579de31b8 100644
--- a/js/schedule/App.jsx
+++ b/js/schedule/App.jsx
@@ -17,6 +17,7 @@ function App() {
const [selectedAgeRanges, setSelectedAgeRanges] = useState([]);
const [onlyFavourites, setOnlyFavourites] = useState(false);
const [onlyFamilyFriendly, setOnlyFamilyFriendly] = useState(false);
+ const [onlyNoRecording, setOnlyNoRecording] = useState(false);
const [onlyTicketed, setOnlyTicketed] = useState(false);
const [includeFinished, setIncludeFinished] = useState(false);
const [debug, setDebug] = useState(false);
@@ -60,9 +61,9 @@ function App() {
useEffect(() => {
if (rawSchedule == null) { return };
- let newSchedule = new ScheduleData(rawSchedule, { currentTime, onlyFavourites, onlyFamilyFriendly, onlyTicketed, includeFinished, selectedVenues, selectedEventTypes, selectedAgeRanges });
+ let newSchedule = new ScheduleData(rawSchedule, { currentTime, onlyFavourites, onlyFamilyFriendly, onlyNoRecording, onlyTicketed, includeFinished, selectedVenues, selectedEventTypes, selectedAgeRanges });
setSchedule(newSchedule);
- }, [currentTime, onlyFavourites, onlyFamilyFriendly, onlyTicketed, includeFinished, selectedVenues, selectedEventTypes, selectedAgeRanges, rawSchedule]);
+ }, [currentTime, onlyFavourites, onlyFamilyFriendly, onlyNoRecording, onlyTicketed, includeFinished, selectedVenues, selectedEventTypes, selectedAgeRanges, rawSchedule]);
// Update time once a minute
useEffect(() => {
@@ -98,7 +99,7 @@ function App() {
}
let filterProps = {
- schedule, onlyFavourites, setOnlyFavourites, onlyFamilyFriendly, setOnlyFamilyFriendly, onlyTicketed, setOnlyTicketed, includeFinished, setIncludeFinished, selectedVenues, setSelectedVenues, selectedEventTypes, setSelectedEventTypes, selectedAgeRanges, setSelectedAgeRanges, debug, currentTime, setCurrentTime
+ schedule, onlyFavourites, setOnlyFavourites, onlyFamilyFriendly, setOnlyFamilyFriendly, onlyNoRecording, setOnlyNoRecording, onlyTicketed, setOnlyTicketed, includeFinished, setIncludeFinished, selectedVenues, setSelectedVenues, selectedEventTypes, setSelectedEventTypes, selectedAgeRanges, setSelectedAgeRanges, debug, currentTime, setCurrentTime
}
return (
diff --git a/js/schedule/Filters.jsx b/js/schedule/Filters.jsx
index 1650d759e..49dfc1605 100644
--- a/js/schedule/Filters.jsx
+++ b/js/schedule/Filters.jsx
@@ -16,7 +16,7 @@ function DebugOptions({ debug, currentTime, setCurrentTime }) {
);
}
-function Filters({ schedule, onlyFavourites, setOnlyFavourites, onlyFamilyFriendly, setOnlyFamilyFriendly, onlyTicketed, setOnlyTicketed, includeFinished, setIncludeFinished, selectedVenues, setSelectedVenues, selectedEventTypes, setSelectedEventTypes, selectedAgeRanges, setSelectedAgeRanges, debug, currentTime, setCurrentTime }) {
+function Filters({ schedule, onlyFavourites, setOnlyFavourites, onlyFamilyFriendly, setOnlyFamilyFriendly, onlyNoRecording, setOnlyNoRecording, onlyTicketed, setOnlyTicketed, includeFinished, setIncludeFinished, selectedVenues, setSelectedVenues, selectedEventTypes, setSelectedEventTypes, selectedAgeRanges, setSelectedAgeRanges, debug, currentTime, setCurrentTime }) {
const [visible, setVisible] = useState(false);
function selectOfficialVenues(ev) {
@@ -44,6 +44,9 @@ function Filters({ schedule, onlyFavourites, setOnlyFavourites, onlyFamilyFriend
Family friendly only
+
+ No Recording only
+
Include finished events
diff --git a/js/schedule/ScheduleData.jsx b/js/schedule/ScheduleData.jsx
index adc52da42..5a54d2530 100644
--- a/js/schedule/ScheduleData.jsx
+++ b/js/schedule/ScheduleData.jsx
@@ -38,6 +38,7 @@ class ScheduleData {
if (options.selectedAgeRanges && options.selectedAgeRanges.indexOf(e.age_range) === -1) { return null; }
if (options.onlyFavourites && !e.is_fave) { return null; }
if (options.onlyFamilyFriendly && !e.is_family_friendly) { return null; }
+ if (options.onlyNoRecording && !e.noRecording) { return null; }
if (options.onlyTicketed && !e.requires_ticket) { return null; }
let startHour = e.startTime.startOf('hour');