summaryrefslogtreecommitdiff
path: root/pages
diff options
context:
space:
mode:
authorDieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de>2007-05-05 23:57:05 +0000
committerDieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de>2007-05-05 23:57:05 +0000
commitaba821e79cdcf657f84fd1be7c574e29f7835d12 (patch)
tree073688a2c98896e8b2a3499d4aa51306848b68b3 /pages
parent36a0bb39d832bef433ee81c4f156411df521b358 (diff)
downloadvdr-plugin-live-aba821e79cdcf657f84fd1be7c574e29f7835d12.tar.gz
vdr-plugin-live-aba821e79cdcf657f84fd1be7c574e29f7835d12.tar.bz2
- General cleanup of recordings. Made design more like other pages
- Bugfix for #289, #291 - Adapted styles and helper classes. - recordings should be now strict XHTML.
Diffstat (limited to 'pages')
-rw-r--r--pages/pageelems.ecpp47
-rw-r--r--pages/recordings.ecpp184
-rw-r--r--pages/tooltip.ecpp8
3 files changed, 121 insertions, 118 deletions
diff --git a/pages/pageelems.ecpp b/pages/pageelems.ecpp
index 7acf72a..a7fcf33 100644
--- a/pages/pageelems.ecpp
+++ b/pages/pageelems.ecpp
@@ -79,7 +79,7 @@ using namespace vdrlive;
string progress = "0";
string id;
</%args>
-<div class="__progress"><div class="__elapsed" <? !id.empty() ? "id=" + id ?> style="width: <$ progress $>px"></div></div>
+<div class="__progress"><div class="__elapsed" <%cpp> if (!id.empty()) { </%cpp>id="<$ id $>"<%cpp> } </%cpp> style="width: <$ progress $>px"></div></div>
</%def>
<# ---------------------------------------------------------------------- #>
@@ -90,7 +90,7 @@ using namespace vdrlive;
tEventID eventid;
</%args>
<%cpp> const cTimer* timer = LiveTimerManager().GetTimer(eventid, channelid);
- if (timer) {
+ if (timer) {
</%cpp>
<a href="edit_timer.html?timerid=<$ LiveTimerManager().GetTimers().GetTimerId(*timer) $>">
<img src="record_timer.png" alt="" <& tooltip.hint text=(tr("Edit this")) &> />
@@ -104,8 +104,8 @@ using namespace vdrlive;
<# ---------------------------------------------------------------------- #>
<%def ajax_js>
- <script type="text/javascript" language="javascript" src="ajax.js"></script>
- <script type="text/javascript" language="javascript" src="vdr_status.js"></script>
+ <script type="text/javascript" src="ajax.js"></script>
+ <script type="text/javascript" src="vdr_status.js"></script>
</%def>
<# ---------------------------------------------------------------------- #>
@@ -119,7 +119,7 @@ using namespace vdrlive;
string alt;
string id;
</%args>
-<%cpp> { </%cpp> <a <? !id.empty() ? "id=" + id ?> <& hide_element hide=(!id.empty()) &> href="javascript:LiveSimpleAjaxRequest('<$ action $>.xml', 'param', '<$ param $>');" <%cpp>if (!tip.empty()) { </%cpp><& tooltip.hint text=(tip) &> <%cpp> } </%cpp>><img src="<$ image $>" alt="<$ alt $>"></img></a> <%cpp> } </%cpp>
+<%cpp> { </%cpp> <a <%cpp> if (!id.empty()) { </%cpp> id="<$ id $>" <%cpp> } </%cpp><& hide_element hide=(!id.empty()) &> href="javascript:LiveSimpleAjaxRequest('<$ action $>.xml', 'param', '<$ param $>');" <%cpp>if (!tip.empty()) { </%cpp><& tooltip.hint text=(tip) &> <%cpp> } </%cpp>><img src="<$ image $>" alt="<$ alt $>"></img></a> <%cpp> } </%cpp>
</%def>
<# ---------------------------------------------------------------------- #>
@@ -133,6 +133,7 @@ using namespace vdrlive;
string title;
string short_descr;
string long_descr;
+ string archived;
int elapsed = -1;
</%args>
<div class="epg_description" id="<$ (boxId) $>">
@@ -141,50 +142,20 @@ using namespace vdrlive;
</div>
<div class="epg_content">
<div class="epg_tools">
- <& (tools_comp) id=(boxId) &>
+ <& (tools_comp) id=(boxId) archived=(archived) &>
</div>
<div>
- <div class="info"><$ (time) $></div>
+ <div class="info"><%cpp> if (!archived.empty()) { </%cpp><span class="bold"><$ (archived + " ") $></span><%cpp> } </%cpp><$ (time) $></div>
% if (elapsed >= 0) {
<div class="progress"><div><& pageelems.progressbar progress=(elapsed) &></div></div>
% }
<div class="title"><$ (title) $></div>
<div class="short"><$ (short_descr) $></div>
<div class="description">
- <{ reply.out() << StringEscapeAndBreak(long_descr); }>
+ <%cpp> reply.out() << StringEscapeAndBreak(long_descr); </%cpp>
</div>
</div>
</div>
</div>
</%def>
-<# ---------------------------------------------------------------------- #>
-
-<%def status_box>
-<%args>
- string type;
- string currentTime;
- string caption;
- string title;
- string duration;
- int elapsed;
- string prev_chan;
- string next_chan;
-</%args>
- <div class="statuscontent">
- <div class="st_header">
- <div class="caption"><$ caption $></div>
- <div class="now">&nbsp;<$ currentTime $></div>
- </div>
- <div class="st_content">
- <div class="name"><$ title $></div>
- <div class="duration">&nbsp;<$ duration $></div>
- </div>
- <div class="st_controls">
- <div class="st_btns"><a href="javascript:LiveStatusToggleUpdate()" <& tooltip.hint text=(tr("Stop updates")) &>><img id="statusReloadBtn" src="stop.png" alt=""></img></a><%cpp>if (!prev_chan.empty()) { </%cpp><& ajax_action_href action=("switch_channel") param=(prev_chan) image=("one_downarrow.png") tip=(tr("previous channel")) &><%cpp> } if (!next_chan.empty()) { </%cpp><& ajax_action_href action=("switch_channel") param=(next_chan) image=("one_uparrow.png") tip=(tr("next channel")) &><%cpp> } </%cpp></div>
-% if (elapsed >= 0) {
- <div class="st_pbar"><& pageelems.progressbar progress=(elapsed) &></div>
-% }
- </div>
- </div>
-</%def>
diff --git a/pages/recordings.ecpp b/pages/recordings.ecpp
index 87c534e..c9f9432 100644
--- a/pages/recordings.ecpp
+++ b/pages/recordings.ecpp
@@ -16,7 +16,7 @@ using namespace std;
<%args>
</%args>
<%session scope="global">
-bool logged_in(false);
+ bool logged_in(false);
</%session>
<%request scope="page">
RecordingsTree recordingsTree(LiveRecordingsManager());
@@ -36,17 +36,20 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html");
<link rel="stylesheet" type="text/css" href="styles.css" />
<& tooltip.javascript var=("domTT_styleClass") value=("domTTepg") &>
<& pageelems.ajax_js &>
- <script type="text/javascript" language="javascript" src="treeview.js"></script>
+ <script type="text/javascript" src="treeview.js"></script>
</head>
<body onload="<& pageelems.infobox_start_update &>">
<& pageelems.logo &>
<& menu active=("recordings") &>
<div class="inhalt">
+ <div class="boxheader"><div><div><$ tr("List of recordings") $></div></div></div>
% if (Recordings.Count() == 0) {
- Keine Aufnahmen vorhanden
+ <$ tr("No recordings found") $>
% } else {
<div class="recordings">
+ <ul class="recordingslist" style="display: block;">
<& recordings.recordings_item &>
+ </ul>
</div>
<div class="epg_data" style="display: none;">
<& recordings.recordings_data &>
@@ -57,123 +60,152 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html");
</html>
<%include>page_exit.eh</%include>
+<# ---------------------------------------------------------------------- #>
+
<%def recordings_item>
<%args>
-path[];
-int level = 0;
+ path[];
+ int level = 0;
</%args>
-<{
-if (level > 0) {
-}>
- <ul class="recordingslist" style="display: none;">
-<{
-}
-else {
-}>
- <ul class="recordingslist" style="display: block;">
-<{
-} // if (level > 0)
+<%cpp>
RecordingsTree::Map::iterator iter;
RecordingsTree::Map::iterator end = recordingsTree.end(path);
-}>
- <li class="recording">
-<{
+
for (iter = recordingsTree.begin(path); iter != end; ++iter) {
RecordingsTree::RecordingsItemPtr recItem = iter->second;
string folderimg("folder_closed.png");
string collapseimg("plus.png");
if (recItem->IsDir()) {
- reply.out() << string("\t\t\t")
- + string("<div class=\"recording_item\" onclick=\"Toggle(this)\">\n")
- + string("\t\t\t<div class=\"recording_imgs\">")
- + StringRepeat(level, "<img src=\"transparent.png\" alt=\"\" width=\"16px\" height=\"16px\" />")
- + string("<img class=\"recording_expander\" src=\"") + collapseimg + string("\" alt=\"\" />")
- + string("<img class=\"recording_folder\" src=\"") + folderimg + string("\" alt=\"\" />")
- + string("</div>");
-}>
- <div class="recording_spec">
- <div class="recording_name"><$ recItem->Name() $></div>
- </div>
- <div class="recording_actions">&nbsp;</div>
- </div>
-<{
+</%cpp>
+ <li class="recording">
+ <& rec_item_dir name=(recItem->Name()) level=(level) &>
+<%cpp>
cxxtools::QueryParams recItemParams(qparam, false);
for (path_type::const_iterator i = path.begin(); i != path.end(); ++i) {
recItemParams.add("path", *i);
}
recItemParams.add("path", recItem->Name());
recItemParams.add("level", lexical_cast<string, int>(level + 1));
- callComp("recordings.recordings_item", request, reply, recItemParams);
- }
-}
+</%cpp>
+ <ul class="recordingslist" style="display: none;">
+% callComp("recordings.recordings_item", request, reply, recItemParams);
+ </ul>
+ </li>
+% }
+%}
+<%cpp>
for (iter = recordingsTree.begin(path); iter != end; ++iter) {
RecordingsTree::RecordingsItemPtr recItem = iter->second;
- string folderimg("folder_closed.png");
- string collapseimg("plus.png");
if (!recItem->IsDir()) {
- const cRecordingInfo* info = recItem->RecInfo();
- if (info) {
- EpgEventPtr epgEvent(new EpgEvent(recItem->Id(),
- recItem->Name(),
- info->Title() ? info->Title() : recItem->Name(),
- info->ShortText() ? info->ShortText() : "",
- info->Description() ? info->Description() : "",
- recItem->StartTime(),
- recItem->StartTime()));
+ EpgEventPtr epgEvent(RecordingsTree::CreateEpgEvent(recItem));
+ if (epgEvent) {
epgEvents.push_back(epgEvent);
}
string day(FormatDateTime("%a,", recItem->StartTime()));
string dayLen(lexical_cast<string, int>(day.length() - 1) + ".25em;");
- reply.out() << string("\t\t\t")
- + string("<div class=\"recording_item\">\n")
- + string("\t\t\t<div class=\"recording_imgs\">")
- + StringRepeat(level, "<img src=\"transparent.png\" alt=\"\" width=\"16px\" height=\"16px\" />")
- + string("<img src=\"transparent.png\" alt=\"\" width=\"16px\" height=\"16px\" />")
- + string("<img src=\"movie.png\" alt=\"movie\" />")
- + string("</div>");
-
- string shortDescr(tr("Click to view details.")); if (info && info->ShortText()) shortDescr = (string("") + info->ShortText() + string("<br />") + shortDescr);
-}>
- <div class="recording_spec">
- <div class="recording_day" style="width: <$ dayLen $>"><$ day $></div>
- <div class="recording_date"><$ FormatDateTime(tr("%b %d %y"), recItem->StartTime()) $></div>
- <div class="recording_time"><$ FormatDateTime(tr("%I:%M %p"), recItem->StartTime()) $></div>
- <div class="recording_name" <& tooltip.hint text=(shortDescr) &><& tooltip.display domId=(recItem->Id()) &>><$ recItem->Name() $></div>
- </div>
- <div class="recording_actions">
- <& pageelems.ajax_action_href action="play_recording" param=(recItem->Id()) tip=(tr("play this recording.")) image="play.png" alt="" &>
- <img src="edit.png" alt="" />
- <img src="del.png" alt="" />
- </div>
- </div>
-% }
- </li>
-<{
+ string shortDescr(tr("Click to view details.")); if (epgEvent && !epgEvent->ShortDescr().empty()) shortDescr = (epgEvent->ShortDescr() + string("<br />") + shortDescr);
+</%cpp>
+ <li class="recording">
+ <& rec_item_file name=(recItem->Name()) level=(level) id=(recItem->Id()) day=(day) dayLen=(dayLen) startTime=(recItem->StartTime()) shortDescr=(shortDescr) archived=(epgEvent ? epgEvent->Archived() : "") archiveId=(recItem->ArchiveId()) &>
+ </li>
+<%cpp>
+ }
}
-}>
- </ul>
+</%cpp>
</%def>
+<# ---------------------------------------------------------------------- #>
<%def recordings_data>
<{
-
// create hidden div for the tooltip hints.
for (vector<EpgEventPtr>::iterator i = epgEvents.begin(); i != epgEvents.end(); ++i) {
EpgEventPtr epg = *i;
string start(epg->StartTime("%a,") + string(" ")
+ epg->StartTime(tr("%b %d %y")) + string(" ")
+ epg->StartTime(tr("%I:%M %p")));
+ string tools_component = epg->Archived().empty() ? "recordings.rec_tools" : "recordings.archived_disc" ;
}>
- <& pageelems.epg_tt_box boxId=(epg->Id()) caption=(epg->Caption()) tools_comp=("recordings.rec_tools") time=(start) title=(epg->Title()) short_descr=(epg->ShortDescr()) long_descr=(epg->LongDescr()) elapsed=(epg->Elapsed()) &>
+ <& pageelems.epg_tt_box boxId=(epg->Id()) caption=(epg->Caption()) tools_comp=(tools_component) time=(start) title=(epg->Title()) short_descr=(epg->ShortDescr()) long_descr=(epg->LongDescr()) archived=(epg->Archived()) elapsed=(epg->Elapsed()) &>
<{
}
}>
</%def>
+<# ---------------------------------------------------------------------- #>
+
<%def rec_tools>
<%args>
string id;
</%args>
<& pageelems.ajax_action_href action="play_recording" param=(id) tip=(tr("play this recording.")) image="play.png" alt="" &>
</%def>
+
+<# ---------------------------------------------------------------------- #>
+
+<%def archived_disc>
+<%args>
+ string archived;
+</%args>
+<img src="on_dvd.png" alt="on_dvd" <& tooltip.hint text=(archived) &> />
+</%def>
+
+<# ---------------------------------------------------------------------- #>
+
+<%def rec_item_dir>
+<%args>
+ string name;
+ int level;
+ string collapseimg = "plus.png";
+ string folderimg = "folder_closed.png";
+</%args>
+ <div class="recording_item" onclick="Toggle(this)">
+ <div class="recording_imgs"><%cpp> reply.out() << StringRepeat(level, "<img src=\"transparent.png\" alt=\"\" width=\"16px\" height=\"16px\" />"); </%cpp><img class="recording_expander" src="<$ collapseimg $>" alt="" /><img class="recording_folder" src="<$ folderimg $>" alt="" /></div>
+ <div class="recording_spec">
+ <div class="recording_name"><$ name $></div>
+ </div>
+ <div class="recording_actions">&nbsp;</div>
+ </div>
+</%def>
+
+<# ---------------------------------------------------------------------- #>
+
+<%def rec_item_file>
+<%args>
+ string name;
+ int level;
+ string id;
+ string day;
+ string dayLen;
+ time_t startTime;
+ string shortDescr;
+ string archived;
+ string archiveId;
+</%args>
+ <div class="recording_item">
+ <div class="recording_imgs"><%cpp> reply.out() << StringRepeat(level + 1, "<img src=\"transparent.png\" alt=\"\" width=\"16px\" height=\"16px\" />"); </%cpp><%cpp> if (!archived.empty()) { </%cpp><& archived_disc archived=(archived) &><%cpp> } else { </%cpp><img src="movie.png" alt="movie" /><%cpp> } </%cpp></div>
+ <div class="recording_spec">
+ <div class="recording_day" style="width: <$ dayLen $>"><$ day $></div>
+ <div class="recording_date"><$ FormatDateTime(tr("%b %d %y"), startTime) $></div>
+ <div class="recording_time"><$ FormatDateTime(tr("%I:%M %p"), startTime) $></div>
+ <div class="recording_name" <& tooltip.hint text=(shortDescr) &><& tooltip.display domId=(id) &>><$ name $></div>
+ <%cpp> if (! archived.empty()) { </%cpp><div><$ archived $></div><%cpp> } </%cpp>
+ </div>
+ <div class="recording_actions">
+<%cpp>
+ if (archived.empty()) {
+</%cpp>
+ <& pageelems.ajax_action_href action="play_recording" param=(id) tip=(tr("play this recording.")) image="play.png" alt="" &>
+<%cpp>
+ }
+ else {
+</%cpp>
+ <img src="transparent.png" alt="" width="16px" height="16px" />
+<%cpp>
+ }
+</%cpp>
+ <img src="edit.png" alt="" />
+ <img src="del.png" alt="" />
+ </div>
+ </div>
+</%def>
diff --git a/pages/tooltip.ecpp b/pages/tooltip.ecpp
index a52eb7b..47af850 100644
--- a/pages/tooltip.ecpp
+++ b/pages/tooltip.ecpp
@@ -4,10 +4,10 @@ styleClass="domTThint";
var[];
value[];
</%args>
- <script type="text/javascript" language="javascript" src="domLib.js"></script>
- <script type="text/javascript" language="javascript" src="domTT.js"></script>
- <script type="text/javascript" language="javascript" src="domTT_drag.js"></script>
- <script type="text/javascript" language="javascript">
+ <script type="text/javascript" src="domLib.js"></script>
+ <script type="text/javascript" src="domTT.js"></script>
+ <script type="text/javascript" src="domTT_drag.js"></script>
+ <script type="text/javascript">
var domTT_styleClass = "<$ styleClass $>";
% int idx = 0;
% for (var_type::const_iterator it = var.begin(); it != var.end(); ++it, idx++) {