From 36c5c96439833525063741143a5f9ff843383f1a Mon Sep 17 00:00:00 2001 From: Markus Ehrnsperger <> Date: Fri, 12 Jul 2024 17:38:33 +0200 Subject: [PATCH] navigation from edit_timers --- epg_events.cpp | 3 ++- epg_events.h | 3 ++- pages/edit_timer.ecpp | 11 +++++++++++ pages/pageelems.ecpp | 12 ++++++++++-- pages/searchresults.ecpp | 2 +- pages/timers.ecpp | 2 +- 6 files changed, 27 insertions(+), 6 deletions(-) diff --git a/epg_events.cpp b/epg_events.cpp index c1898d59..967f30e4 100644 --- a/epg_events.cpp +++ b/epg_events.cpp @@ -499,7 +499,7 @@ void AppendScraperData(cToSvConcat<0> &target, cScraperVideo *scraperVideo) { cOrientations(eOrientation::landscape, eOrientation::portrait, eOrientation::banner), false); AppendScraperData(target, s_IMDB_ID, s_image, scraperVideo->getVideoType(), s_title, scraperVideo->getSeasonNumber(), scraperVideo->getEpisodeNumber(), s_episode_name, s_runtime, s_release_date); } -bool appendEpgItem(cToSvConcat<0> &epg_item, RecordingsItemRecPtr &recItem, const cEvent *Event, const cChannel *Channel, bool withChannel) { +bool appendEpgItem(cToSvConcat<0> &epg_item, RecordingsItemRecPtr &recItem, const cEvent *Event, const cChannel *Channel, bool withChannel, bool form) { cGetScraperVideo getScraperVideo(Event, NULL); getScraperVideo.call(LiveSetup().GetPluginScraper()); @@ -512,6 +512,7 @@ bool appendEpgItem(cToSvConcat<0> &epg_item, RecordingsItemRecPtr &recItem, cons epg_item.append(EpgEvents::EncodeDomId(Channel->GetChannelID(), Event->EventID()).c_str() + 6); epg_item.append("\",\""); // [1] : Timer ID + if (form) epg_item.append("-"); // timer id starts with - to indicate that history.back is not working const cTimer* timer = LiveTimerManager().GetTimer(Event->EventID(), Channel->GetChannelID() ); if (timer) epg_item.append(vdrlive::EncodeDomId(LiveTimerManager().GetTimers().GetTimerId(*timer), ".-:", "pmc")); epg_item.append("\","); diff --git a/epg_events.h b/epg_events.h index 83572bc7..d4a698c0 100644 --- a/epg_events.h +++ b/epg_events.h @@ -254,7 +254,8 @@ namespace vdrlive mutable bool m_checkedArchived; mutable std::string m_archived; }; -bool appendEpgItem(cToSvConcat<0> &epg_item, RecordingsItemRecPtr &recItem, const cEvent *Event, const cChannel *Channel, bool withChannel); +bool appendEpgItem(cToSvConcat<0> &epg_item, RecordingsItemRecPtr &recItem, const cEvent *Event, const cChannel *Channel, bool withChannel, bool form = false); +// set form = true if history.back is not working because the list of epg items is a result of an html form }; // namespace vdrlive #endif // VDR_LIVE_EPG_EVENTS_H diff --git a/pages/edit_timer.ecpp b/pages/edit_timer.ecpp index 8da3f217..1ef33598 100644 --- a/pages/edit_timer.ecpp +++ b/pages/edit_timer.ecpp @@ -41,6 +41,7 @@ using namespace vdrlive; std::string aux = ""; std::string directory = ""; int nav_back = 1; + std::string navigate_back = ""; <%session scope="global"> bool logged_in(false); @@ -101,6 +102,7 @@ const cTimer* timer; // dsyslog("live: remote '%s'", remote); LiveTimerManager().UpdateTimer( timerId, remote, oldRemote, flags, channel, weekdays, date, start, stop, priority, lifetime, file, aux ); timerNotifier.SetTimerModification(); + if (navigate_back.empty() ) { @@ -109,6 +111,10 @@ const cTimer* timer; <%cpp> + } else { + timerid.clear(); + return reply.redirect(navigate_back); + } // return reply.redirect("html/back.html"); // return reply.redirect(!edit_timerreferer.empty()?edit_timerreferer:"timers.html"); } else { @@ -203,6 +209,7 @@ const cTimer* timer; + @@ -353,7 +360,11 @@ const cTimer* timer; diff --git a/pages/pageelems.ecpp b/pages/pageelems.ecpp index 530cba24..9e326a8e 100644 --- a/pages/pageelems.ecpp +++ b/pages/pageelems.ecpp @@ -157,13 +157,21 @@ function addEvent(s, bottomrow_i, obj) { let bottomrow = '' if (bottomrow_i != 0) bottomrow = 'bottomrow' s.a += `
<$ timer ? tr("Edit timer") : tr("New timer") $>
+% if (navigate_back.empty() ) { +% } else { + +% }
` - if (obj[1].length != 0) { + if (obj[1].length > 1) { s.a += '