diff options
author | Dieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de> | 2007-01-06 17:17:33 +0000 |
---|---|---|
committer | Dieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de> | 2007-01-06 17:17:33 +0000 |
commit | 8a08fe2731a08e595530376a1a8856d851fc8f27 (patch) | |
tree | 06625d02124669c997a7535d37e4472a5995df9b /pages | |
parent | 9d30ca58281c0aaedcb5aa6c3a825bab892a3a12 (diff) | |
download | vdr-plugin-live-8a08fe2731a08e595530376a1a8856d851fc8f27.tar.gz vdr-plugin-live-8a08fe2731a08e595530376a1a8856d851fc8f27.tar.bz2 |
Collapsable treeview of recordings (almost)
Diffstat (limited to 'pages')
-rw-r--r-- | pages/Makefile | 3 | ||||
-rw-r--r-- | pages/recordings.ecpp | 69 | ||||
-rw-r--r-- | pages/recordings_item.ecpp | 4 |
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> % } |