summaryrefslogtreecommitdiff
path: root/pages
diff options
context:
space:
mode:
authorDieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de>2007-01-06 17:17:33 +0000
committerDieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de>2007-01-06 17:17:33 +0000
commit8a08fe2731a08e595530376a1a8856d851fc8f27 (patch)
tree06625d02124669c997a7535d37e4472a5995df9b /pages
parent9d30ca58281c0aaedcb5aa6c3a825bab892a3a12 (diff)
downloadvdr-plugin-live-8a08fe2731a08e595530376a1a8856d851fc8f27.tar.gz
vdr-plugin-live-8a08fe2731a08e595530376a1a8856d851fc8f27.tar.bz2
Collapsable treeview of recordings (almost)
Diffstat (limited to 'pages')
-rw-r--r--pages/Makefile3
-rw-r--r--pages/recordings.ecpp69
-rw-r--r--pages/recordings_item.ecpp4
3 files changed, 62 insertions, 14 deletions
diff --git a/pages/Makefile b/pages/Makefile
index 5c96adc..246a6c5 100644
--- a/pages/Makefile
+++ b/pages/Makefile
@@ -17,8 +17,7 @@ VDRDIR ?= ../../../..
OBJS = menu.o event_widget.o channels.o recordings.o schedule.o \
screenshot.o timers.o whats_on_now.o whats_on_next.o \
- keypress.o remote.o channels_widget.o edit_timer.o \
- recordings_item.o
+ keypress.o remote.o channels_widget.o edit_timer.o
### Default rules:
diff --git a/pages/recordings.ecpp b/pages/recordings.ecpp
index 6a3a8cf..97ef983 100644
--- a/pages/recordings.ecpp
+++ b/pages/recordings.ecpp
@@ -1,4 +1,5 @@
<%pre>
+#include <sstream>
#include <vdr/plugin.h>
#include <vdr/config.h>
#include <vdr/i18n.h>
@@ -8,6 +9,9 @@
using namespace vdrlive;
</%pre>
+<%request scope="page">
+RecordingsTree recordingsTree;
+</%request>
<%args>
</%args>
<{
@@ -16,6 +20,7 @@ using namespace vdrlive;
<head>
<title>VDR-Live - <$ tr("Recordings") $></title>
<link rel="stylesheet" type="text/css" href="/styles.css" />
+ <script src="treetoggle.js" type="text/javascript" />
</head>
<body>
<div class="left_area">
@@ -29,19 +34,63 @@ using namespace vdrlive;
% if (Recordings.Count() == 0) {
Keine Aufnahmen vorhanden
% } else {
- <table class="recording" cellspacing="0" cellpadding="0">
- <tr>
- <td class="head"><$ tr("Structure") $></td>
- <td class="head"><$ tr("Date") $></td>
- <td class="head"><$ tr("Time") $></td>
- <td class="head"><$ tr("Name") $></td>
- </tr>
- </table>
-% RecordingsTree recordingsTree;
<div class="recordings">
-<& recordings_item &>
+<& recordings.recordings_item &>
</div>
% }
</div>
</body>
</html>
+<%def recordings_item>
+<%args>
+path[];
+int level = 0;
+</%args>
+<{
+if (level > 0) {
+}>
+<ul class="recordingslist" style="display: none;">
+<{
+}
+else {
+}>
+<ul class="recordingslist" style="display: block;">
+<{
+} // if (level > 0)
+
+RecordingsTree::Map::iterator iter;
+RecordingsTree::Map::iterator end = recordingsTree.end(path);
+for (iter = recordingsTree.begin(path); iter != end; iter++) {
+ RecordingsTree::RecordingsItemPtr recItem = iter->second;
+ std::string folderimg(level > 0 ? "folder_closed.png" : "folder_closed.png");
+ std::string collapseimg(level > 0 ? "plus.png" : "plus.png");
+}>
+ <li class="recording">
+% if (recItem->IsDir()) {
+% // Die folgenden img-Tags muessen direkt auf einander folgen
+% // wegen dem etwas 'beschraenkten' treetoggle.js.
+ <a onClick="Toggle(this)" href="#"><img src="/<$ collapseimg $>" alt="" /><img src="/<$ folderimg $>" alt="" />
+ <span class="recordingname"><$ recItem->Name() $></span>
+ </a><{
+ cxxtools::QueryParams recItemParams(qparam, false);
+ for (path_type::const_iterator i = path.begin(); i != path.end(); ++i) {
+ recItemParams.add("path", *i);
+ }
+ ostringstream levelStr;
+ levelStr << ++level;
+ recItemParams.add("path", recItem->Name());
+ recItemParams.add("level", levelStr.str());
+ callComp("recordings.recordings_item", request, reply, recItemParams);
+ } else {
+}>
+ <img src="/transparent.png" alt="" width="16" height="16" /><img src="/file.png" alt="file" />
+ <span class="recordingdate"><$ FormatDateTime(tr("%a, %b %d"), recItem->StartTime()) $></span>
+ <span class="recordingtime"><$ FormatDateTime(tr("%I:%M %p"), recItem->StartTime()) $></span>
+ <span class="recordingname"><$ recItem->Name() $></span>
+% }
+ </li>
+<{
+}
+}>
+</ul>
+</%def>
diff --git a/pages/recordings_item.ecpp b/pages/recordings_item.ecpp
index b152bbe..2c73d39 100644
--- a/pages/recordings_item.ecpp
+++ b/pages/recordings_item.ecpp
@@ -24,11 +24,11 @@ for (iter = recordingsTree.begin(path); iter != end; iter++) {
}>
<li class="recording <? active ? "active" ?>">
% if (recItem->IsDir()) {
- <span class="recordingexpand">DirIcon</span>
+ <span class="recordingmime"><img src="/folder_open.png" alt="folder_open" /></span>
<span class="recordingdate"><$ recItem->StartTime() $></span>
<span class="recordingtime"><$ recItem->StartTime() $></span>
% } else {
- <span class="recordingexpand">FileIcon</span>
+ <span class="recordingmime"><img src="/file.png" alt="file" /></span>
<span class="recordingdate"><$ FormatDateTime(tr("%a, %b %d"), recItem->StartTime()) $></span>
<span class="recordingtime"><$ FormatDateTime(tr("%I:%M %p"), recItem->StartTime()) $></span>
% }