From 9074a5491582295994a429640d7758018473032e Mon Sep 17 00:00:00 2001 From: Markus Ehrnsperger <> Date: Sun, 29 Oct 2023 18:53:33 +0100 Subject: [PATCH] backNavigation --- live/css/DatePicker.css | 73 --------------------------------------- live/html/back.html | 9 +++++ pages/edit_recording.ecpp | 17 +++++++-- pages/edit_timer.ecpp | 14 ++++++-- pages/multischedule.ecpp | 1 + pages/recordings.ecpp | 1 + pages/schedule.ecpp | 1 + pages/searchresults.ecpp | 1 + pages/timers.ecpp | 16 +++++++-- pages/whats_on.ecpp | 1 + preload.cpp | 3 ++ tntconfig.cpp | 9 +++++ 12 files changed, 66 insertions(+), 80 deletions(-) delete mode 100644 live/css/DatePicker.css create mode 100644 live/html/back.html diff --git a/live/css/DatePicker.css b/live/css/DatePicker.css deleted file mode 100644 index afb7e7e7..00000000 --- a/live/css/DatePicker.css +++ /dev/null @@ -1,73 +0,0 @@ - -input.DatePicker{ - display: block; - width: 150px; - padding: 3px 3px 3px 24px; - border: 1px solid #0070bf; - cursor: pointer; -} - -.dp_container{ - position: relative; - padding: 0; - z-index: 500; -} -.dp_cal{ - background-color: #fff; - border: 1px solid #0070bf; - position: absolute; - width: 177px; - top: 24px; - left: 0; - margin: 0px 0px 3px 0px; -} -.dp_cal table{ - width: 100%; - border-collapse: collapse; - border-spacing: 0; -} -.dp_cal select{ - margin: 2px 3px; - font-size: 11px; -} -.dp_cal select option{ - padding: 1px 3px; -} -.dp_cal th, -.dp_cal td{ - width: 14.2857%; - text-align: center; - font-size: 11px; - padding: 2px 0; -} -.dp_cal th{ - border: solid #aad4f2; - border-width: 1px 0; - color: #797774; - background: #daf2e6; - font-weight: bold; -} -.dp_cal td{ - cursor: pointer; -} -.dp_cal thead th{ - background: #d9eefc; -} -.dp_cal td.dp_roll{ - color: #000; - background: #fff6bf; -} -/* must have this for the IE6 select box hiding */ -.dp_hide{ - visibility: hidden; -} -.dp_empty{ - background: #eee; -} -.dp_today{ - background: #daf2e6; -} -.dp_selected{ - color: #ff0000; - background: #328dcf; -} diff --git a/live/html/back.html b/live/html/back.html new file mode 100644 index 00000000..2e3778fe --- /dev/null +++ b/live/html/back.html @@ -0,0 +1,9 @@ + + + + Back + + + diff --git a/pages/edit_recording.ecpp b/pages/edit_recording.ecpp index b985f64a..e8fe0bf1 100644 --- a/pages/edit_recording.ecpp +++ b/pages/edit_recording.ecpp @@ -51,6 +51,7 @@ const cRecording* recording; throw HtmlError(tr("Couldn't find recording. Maybe you mistyped your request?")); } + bool returnToReferer = false; if (request.getMethod() == "POST") { if (name.empty()) message = tr("Please set a name for the recording!"); @@ -62,11 +63,22 @@ const cRecording* recording; if (newdir != ".") directory = newdir; std::string filename = directory.empty() ? name : StringReplace(directory, "/", "~") + "~" + name; if (LiveRecordingsManager()->MoveRecording(recording, FileSystemExchangeChars(filename, true), copy_only)) - return reply.redirect(!edit_rec_referer.empty() ? edit_rec_referer : "recordings.html"); + returnToReferer = true; +// return reply.redirect(!edit_rec_referer.empty() ? edit_rec_referer : "recordings.html"); else message = tr("Cannot copy, rename or move the recording."); } - } + } + if (returnToReferer) { + + + + + +<%cpp> + } else { // if (message.empty()) edit_rec_referer = request.getHeader("Referer:", "recordings.html"); @@ -232,4 +244,5 @@ if (recording && recording->Info()->Aux()) { +% } <%include>page_exit.eh diff --git a/pages/edit_timer.ecpp b/pages/edit_timer.ecpp index 1026fd7f..b18210ab 100644 --- a/pages/edit_timer.ecpp +++ b/pages/edit_timer.ecpp @@ -106,9 +106,18 @@ const cTimer* timer; // dsyslog("live: remote '%s'", remote); LiveTimerManager().UpdateTimer( timerId, remote, oldRemote, flags, channel, weekdays, date, start, stop, priority, lifetime, title, aux ); timerNotifier.SetTimerModification(); - return reply.redirect(!edit_timerreferer.empty()?edit_timerreferer:"timers.html"); + + + + + +<%cpp> +// return reply.redirect("html/back.html"); +// return reply.redirect(!edit_timerreferer.empty()?edit_timerreferer:"timers.html"); } - } + } else { if (message.empty()) edit_timerreferer = request.getHeader("Referer:", "timers.html"); @@ -374,4 +383,5 @@ const cTimer* timer; +% } <%include>page_exit.eh diff --git a/pages/multischedule.ecpp b/pages/multischedule.ecpp index 86421b8a..66661678 100644 --- a/pages/multischedule.ecpp +++ b/pages/multischedule.ecpp @@ -54,6 +54,7 @@ std::vector times_start; <%include>page_init.eh <%cpp> + reply.setHeader (tnt::httpheader::cacheControl, "no-store, no-cache, max-age=0, must-revalidate, proxy-revalidate", true); if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); pageTitle = tr("MultiSchedule"); diff --git a/pages/recordings.ecpp b/pages/recordings.ecpp index 22970cdb..a740d202 100644 --- a/pages/recordings.ecpp +++ b/pages/recordings.ecpp @@ -41,6 +41,7 @@ using namespace vdrlive; <%include>page_init.eh <%cpp> +reply.setHeader (tnt::httpheader::cacheControl, "no-store, no-cache, max-age=0, must-revalidate, proxy-revalidate", true); if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); // create the "current" values of the global request parameters, based on their old values and the current arguments diff --git a/pages/schedule.ecpp b/pages/schedule.ecpp index 67c74843..9b61d69c 100644 --- a/pages/schedule.ecpp +++ b/pages/schedule.ecpp @@ -31,6 +31,7 @@ bool logged_in(false); <%include>page_init.eh <%cpp> +reply.setHeader (tnt::httpheader::cacheControl, "no-store, no-cache, max-age=0, must-revalidate, proxy-revalidate", true); if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <%cpp> diff --git a/pages/searchresults.ecpp b/pages/searchresults.ecpp index cb517edd..1999ac54 100644 --- a/pages/searchresults.ecpp +++ b/pages/searchresults.ecpp @@ -26,6 +26,7 @@ bool logged_in(false); <%include>page_init.eh <%cpp> + reply.setHeader (tnt::httpheader::cacheControl, "no-store, no-cache, max-age=0, must-revalidate, proxy-revalidate", true); if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); pageTitle = tr("Search results"); diff --git a/pages/timers.ecpp b/pages/timers.ecpp index c13700ff..76af9f64 100644 --- a/pages/timers.ecpp +++ b/pages/timers.ecpp @@ -25,6 +25,7 @@ using namespace vdrlive; <%include>page_init.eh <%cpp> + reply.setHeader (tnt::httpheader::cacheControl, "no-store, no-cache, max-age=0, must-revalidate, proxy-revalidate", true); if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); pageTitle = trVDR("Timers"); @@ -47,14 +48,22 @@ using namespace vdrlive; // dsyslog("live: timers.ecpp timer->Remote() %s", timer->Remote()); LiveTimerManager().DelTimer(timer->Id(), timer->Remote()); timerNotifier.SetTimerModification(); - return reply.redirect("timers.html"); +// return reply.redirect("timers.html"); } if (action == "toggle") { LiveTimerManager().ToggleTimerActive(timer->Id(), timer->Remote()); timerNotifier.SetTimerModification(); - return reply.redirect("timers.html"); +// return reply.redirect("timers.html"); } - } + + + + + +<%cpp> + } else { std::string previousDay = ""; @@ -217,6 +226,7 @@ using namespace vdrlive; +% } <%include>page_exit.eh <%def timer_actions> diff --git a/pages/whats_on.ecpp b/pages/whats_on.ecpp index 29523840..928accca 100644 --- a/pages/whats_on.ecpp +++ b/pages/whats_on.ecpp @@ -32,6 +32,7 @@ std::string current_displaytime; <%include>page_init.eh <%cpp> +reply.setHeader (tnt::httpheader::cacheControl, "no-store, no-cache, max-age=0, must-revalidate, proxy-revalidate", true); if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); diff --git a/preload.cpp b/preload.cpp index 0f242d2d..463614c4 100644 --- a/preload.cpp +++ b/preload.cpp @@ -95,9 +95,11 @@ namespace vdrlive { "img/playlist.png", "img/sd.png", "img/hd.png", + "img/rd.png", "img/RecordingErrors.png", "img/NoRecordingErrors.png", "img/NotCheckedForRecordingErrors.png", + "js/live/browserwin.js", "js/live/vdr_status.js", "js/live/infowin.js", "js/live/header.js", @@ -108,6 +110,7 @@ namespace vdrlive { "js/live/epg_tt_box.js", "js/live/treeview.js", "js/mootools/mootools.v1.11.js", + "html/back.html", 0 }; diff --git a/tntconfig.cpp b/tntconfig.cpp index c71afd42..6b718faf 100644 --- a/tntconfig.cpp +++ b/tntconfig.cpp @@ -288,6 +288,15 @@ namespace vdrlive { "/img/$1.$2", "image/$2"); + // map to 'html/basename(uri)' + // inserted by 'MarkusE' -- verified with above, but not counterchecked yet! + MapUrl(app, + "^/html.*/(.+)", + "content", + GetResourcePath(), + "/html/$1", + "text/html"); + // Map favicon.ico into img directory MapUrl(app, "^/favicon.ico$",