@@ -386,7 +388,7 @@ for (recIter = recItems.begin(); recIter != recItems.end(); ++recIter) {
<%cpp>
diff --git a/pages/searchresults.ecpp b/pages/searchresults.ecpp
index 6e554ac..0bb7b5e 100644
--- a/pages/searchresults.ecpp
+++ b/pages/searchresults.ecpp
@@ -8,6 +8,8 @@
using namespace vdrlive;
using namespace std;
+string searchterm;
+
%pre>
<%args>
// input parameters
@@ -22,6 +24,7 @@ bool logged_in(false);
<%cpp>
if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html");
+ searchterm = "";
pageTitle = tr("Search results");
SearchResults results;
if (!searchtimerid.empty())
@@ -38,6 +41,8 @@ bool logged_in(false);
s.SetUseSubtitle(false);
s.SetUseDescription(false);
results.GetByQuery(s.ToText());
+
+ searchterm = searchplain;
}
%cpp>
<& pageelems.doc_type &>
@@ -49,7 +54,7 @@ bool logged_in(false);
<& pageelems.logo &>
- <& menu active=("searchepg") &>
+ <& menu active=("searchepg") component=("searchresults.searchresults_actions")>
% if (results.size() == 0) {
<$ tr("No search results") $>
@@ -114,3 +119,6 @@ bool logged_in(false);
<%include>page_exit.eh%include>
+<%def searchresults_actions>
+
<$ tr("New search timer") $>
+%def>
diff --git a/pages/timerconflicts.ecpp b/pages/timerconflicts.ecpp
index 514a9c7..77381de 100644
--- a/pages/timerconflicts.ecpp
+++ b/pages/timerconflicts.ecpp
@@ -108,7 +108,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html");
longDescription = StringEscapeAndBreak(SortedTimers::GetTimerInfo(*timer)) + "
"
+ StringEscapeAndBreak(StringWordTruncate(epgEvent->LongDescr(), maximumDescriptionLength))
+ "
" + tr("Click to view details.");
- searchTimName = SortedTimers::SearchTimerName(*timer);
+ searchTimName = SortedTimers::SearchTimerInfo(*timer, "searchtimer");
title = epgEvent->Title();
}
%cpp>
diff --git a/pages/timers.ecpp b/pages/timers.ecpp
index 7b7be70..e627ca9 100644
--- a/pages/timers.ecpp
+++ b/pages/timers.ecpp
@@ -79,6 +79,7 @@ static const size_t maximumDescriptionLength = 300;
EpgInfoPtr epgEvent;
string longDescription;
string searchTimName;
+ string searchTimId;
#if VDRVERSNUM >= 20301
if (!timer->Event()) {
LOCK_SCHEDULES_READ;
@@ -93,7 +94,8 @@ static const size_t maximumDescriptionLength = 300;
longDescription = StringEscapeAndBreak(SortedTimers::GetTimerInfo(*timer)) + "
"
+ StringEscapeAndBreak(StringWordTruncate(epgEvent->LongDescr(), maximumDescriptionLength))
+ "
" + tr("Click to view details.");
- searchTimName = SortedTimers::SearchTimerName(*timer);
+ searchTimName = SortedTimers::SearchTimerInfo(*timer, "searchtimer");
+ searchTimId = SortedTimers::SearchTimerInfo(*timer, "s-id");
}
string currentDay = SortedTimers::GetTimerDays(*timer);
SortedTimers::iterator nextTimer = timer; ++nextTimer;
@@ -157,7 +159,7 @@ static const size_t maximumDescriptionLength = 300;
% }
><$ timer->File() $>
-
"> <$ searchTimName $> |
+
"> |
">Flags() & tfActive) ? "active.png" : "inactive.png") $>" alt="" <& tooltip.hint text=(tr("Toggle timer active/inactive")) &>> |
"><& pageelems.edit_timer timerId=(timers.GetTimerId(*timer)) &> |
">" alt="" <& tooltip.hint text=(tr("Delete timer")) &>> |
diff --git a/recman.cpp b/recman.cpp
index 7bd7912..4dc816c 100644
--- a/recman.cpp
+++ b/recman.cpp
@@ -431,6 +431,12 @@ namespace vdrlive {
return m_recording->LengthInSeconds() / 60;
}
+ long RecordingsItemRec::GetResume() const
+ {
+ if (!m_recording->FileName()) return 0;
+ return m_recording->GetResume();
+ }
+
/**
* Implementation of class RecordingsTree:
*/
diff --git a/recman.h b/recman.h
index c5a5fbb..dabbb4f 100644
--- a/recman.h
+++ b/recman.h
@@ -171,6 +171,7 @@ namespace vdrlive {
virtual time_t StartTime() const = 0;
virtual bool IsDir() const = 0;
virtual long Duration() const = 0;
+ virtual long GetResume() const = 0;
virtual const std::string& Name() const { return m_name; }
virtual const std::string Id() const = 0;
@@ -203,6 +204,7 @@ namespace vdrlive {
virtual time_t StartTime() const { return 0; }
virtual long Duration() const { return 0; }
virtual bool IsDir() const { return true; }
+ virtual long GetResume() const { return 0; }
virtual std::string const Id() const { return ""; }
private:
@@ -225,6 +227,7 @@ namespace vdrlive {
virtual time_t StartTime() const;
virtual long Duration() const;
virtual bool IsDir() const { return false; }
+ virtual long GetResume() const;
virtual const std::string Id() const { return m_id; }
virtual const cRecording* Recording() const { return m_recording; }
diff --git a/timers.cpp b/timers.cpp
index 98e4ad8..356ebed 100644
--- a/timers.cpp
+++ b/timers.cpp
@@ -146,7 +146,7 @@ namespace vdrlive {
return info.str();
}
- string SortedTimers::SearchTimerName(cTimer const& timer)
+ string SortedTimers::SearchTimerInfo(cTimer const& timer, std::string const& value)
{
ostringstream info;
if (timer.Aux())
@@ -154,9 +154,9 @@ namespace vdrlive {
string epgsearchinfo = GetXMLValue(timer.Aux(), "epgsearch");
if (!epgsearchinfo.empty())
{
- string searchtimer = GetXMLValue(epgsearchinfo, "searchtimer");
- if (!searchtimer.empty())
- info << searchtimer;
+ string data = GetXMLValue(epgsearchinfo, value);
+ if (!data.empty())
+ info << data;
}
}
return info.str();
diff --git a/timers.h b/timers.h
index 30583f3..0202d7c 100644
--- a/timers.h
+++ b/timers.h
@@ -29,7 +29,7 @@ namespace vdrlive {
static std::string GetTimerDays(cTimer const& timer);
static std::string GetTimerInfo(cTimer const& timer);
- static std::string SearchTimerName(cTimer const& timer);
+ static std::string SearchTimerInfo(cTimer const& timer, std::string const& value);
private:
SortedTimers();