diff --git a/docker/Dockerfile b/docker/Dockerfile index b1b91a65f..0bced8c3a 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -46,6 +46,7 @@ RUN pip3 wheel --wheel-dir=/wheels -r requirements-wheels.txt FROM debian:11-slim ARG TARGETARCH +ARG JELLYFIN_FFMPEG_VERSION=4.3.2-1 # https://askubuntu.com/questions/972516/debian-frontend-environment-variable ARG DEBIAN_FRONTEND="noninteractive" # http://stackoverflow.com/questions/48162574/ddg#49462622 @@ -72,9 +73,6 @@ RUN apt-get -qq update \ && apt-key adv --fetch-keys https://packages.cloud.google.com/apt/doc/apt-key.gpg \ && echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" > /etc/apt/sources.list.d/coral-edgetpu.list \ && echo "libedgetpu1-max libedgetpu/accepted-eula select true" | debconf-set-selections \ - # jellyfin-ffmpeg - && wget -O - https://repo.jellyfin.org/jellyfin_team.gpg.key | apt-key add - \ - && echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release ) $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release ) main" | tee /etc/apt/sources.list.d/jellyfin.list \ && apt-get -qq update \ && apt-get -qq install --no-install-recommends --no-install-suggests -y \ # coral drivers @@ -82,8 +80,11 @@ RUN apt-get -qq update \ && pip3 install -U /wheels/*.whl \ # arch specific packages && if [ "${TARGETARCH}" = "amd64" ]; then \ - apt-get -qq install --no-install-recommends --no-install-suggests -y \ - mesa-va-drivers jellyfin-ffmpeg; else \ + # jellyfin-ffmpeg + wget -O /tmp/jellyfin.deb "https://repo.jellyfin.org/releases/server/debian/versions/jellyfin-ffmpeg/${JELLYFIN_FFMPEG_VERSION}/jellyfin-ffmpeg_${JELLYFIN_FFMPEG_VERSION}-$( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release )_$( dpkg --print-architecture ).deb" \ + && apt-get -qq install --no-install-recommends --no-install-suggests -y \ + mesa-va-drivers /tmp/jellyfin.deb \ + && rm /tmp/jellyfin.deb; else \ apt-get -qq install --no-install-recommends --no-install-suggests -y \ ffmpeg; \ fi \ diff --git a/web/src/routes/Events.jsx b/web/src/routes/Events.jsx index b56fb103a..729087101 100644 --- a/web/src/routes/Events.jsx +++ b/web/src/routes/Events.jsx @@ -60,6 +60,10 @@ export default function Events({ path, ...props }) { has_snapshot: false, plus_id: undefined, }); + const [deleteFavoriteState, setDeleteFavoriteState] = useState({ + deletingFavoriteEventId: null, + showDeleteFavorite: false, + }); const eventsFetcher = useCallback((path, params) => { params = { ...params, include_thumbnails: 0, limit: API_LIMIT }; @@ -118,11 +122,16 @@ export default function Events({ path, ...props }) { } }; - const onDelete = async (e, eventId) => { + const onDelete = async (e, eventId, saved) => { e.stopPropagation(); - const response = await axios.delete(`events/${eventId}`); - if (response.status === 200) { - mutate(); + + if (saved) { + setDeleteFavoriteState({ deletingFavoriteEventId: eventId, showDeleteFavorite: true }); + } else { + const response = await axios.delete(`events/${eventId}`); + if (response.status === 200) { + mutate(); + } } }; @@ -393,6 +402,19 @@ export default function Events({ path, ...props }) { )} + {deleteFavoriteState.showDeleteFavorite && ( + +
+ Delete Saved Event? +

Confirm deletion of saved event.

+
+
+ +
+
+ )}
{eventPages ? ( eventPages.map((page, i) => { @@ -460,7 +482,7 @@ export default function Events({ path, ...props }) { )}
- onDelete(e, event.id)} /> + onDelete(e, event.id, event.retain_indefinitely)} />