diff options
Diffstat (limited to 'pages/recordings.ecpp')
-rw-r--r-- | pages/recordings.ecpp | 62 |
1 files changed, 53 insertions, 9 deletions
diff --git a/pages/recordings.ecpp b/pages/recordings.ecpp index b6630d1..d213b54 100644 --- a/pages/recordings.ecpp +++ b/pages/recordings.ecpp @@ -22,6 +22,7 @@ using namespace std; </%pre> <%args> + string sort; string todel; string diskinfo; string deletions[]; @@ -30,12 +31,22 @@ using namespace std; bool logged_in(false); </%session> <%request scope="page"> + string currentSort; string deleteResult; </%request> <%include>page_init.eh</%include> <%cpp> if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); +currentSort = LiveSetup().GetLastSortingMode(); +if (!sort.empty()) { + if (sort == "date") + currentSort = (currentSort == "dateasc") ? "datedesc" : "dateasc"; + else if (sort == "name") + currentSort = (currentSort == "nameasc") ? "namedesc" : "nameasc"; + LiveSetup().SetLastSortingMode(currentSort); +} + pageTitle = tr("Recordings"); deleteResult = ""; @@ -70,13 +81,13 @@ diskinfo = cString::sprintf("%s %d%% - %2d:%02d %s", trVDR("Disk"), Percent, H <body> <& pageelems.logo &> <%cpp> -if (! deleteResult.empty()) { +if (!deleteResult.empty()) { </%cpp> <& menu active=("recordings") component=("recordings.delete_error") &> <%cpp> } else { </%cpp> - <& menu active=("recordings") &> + <& menu active=("recordings") component=("recordings.sort_options") &> <%cpp> } </%cpp> @@ -116,12 +127,21 @@ if (! deleteResult.empty()) { RecordingsTreePtr recordingsTree(LiveRecordingsManager()->GetRecordingsTree()); RecordingsMap::iterator iter; RecordingsMap::iterator end = recordingsTree->end(path); +list<RecordingsItemPtr> recItems; +list<RecordingsItemPtr>::iterator recIter; for (iter = recordingsTree->begin(path); iter != end; ++iter) { RecordingsItemPtr recItem = iter->second; - string folderimg("folder_closed.png"); - string collapseimg("plus.png"); if (recItem->IsDir()) { + recItems.push_back(recItem); + } +} +if (currentSort == "namedesc") + recItems.sort(RecordingsItemPtrCompare::ByDescendingName); +else + recItems.sort(RecordingsItemPtrCompare::ByAscendingName); +for (recIter = recItems.begin(); recIter != recItems.end(); ++recIter) { + RecordingsItemPtr recItem = *recIter; </%cpp> <li class="recording"> <& rec_item_dir name=(recItem->Name()) level=(level) &> @@ -141,14 +161,27 @@ for (iter = recordingsTree->begin(path); iter != end; ++iter) { <%cpp> callComp("recordings.recordings_item", request, reply, recItemParams); </%cpp> - </ul> + </ul> </li> <%cpp> - } } +recItems.clear(); for (iter = recordingsTree->begin(path); iter != end; ++iter) { RecordingsItemPtr recItem = iter->second; - if (!recItem->IsDir()) { + if (!recItem->IsDir()) { + recItems.push_back(recItem); + } +} +if (currentSort == "dateasc") + recItems.sort(RecordingsItemPtrCompare::ByAscendingDate); +else if (currentSort == "datedesc") + recItems.sort(RecordingsItemPtrCompare::ByDescendingDate); +else if (currentSort == "namedesc") + recItems.sort(RecordingsItemPtrCompare::ByDescendingName); +else + recItems.sort(RecordingsItemPtrCompare::ByAscendingName); +for (recIter = recItems.begin(); recIter != recItems.end(); ++recIter) { + RecordingsItemPtr recItem = *recIter; string day(FormatDateTime("%a,", recItem->StartTime())); string dayLen(lexical_cast<string, int>(day.length() - 1) + ".25em;"); string duration(LiveSetup().GetShowRecDuration() ? "(" + lexical_cast<string, int>(recItem->Duration()) + "')" : ""); @@ -157,15 +190,25 @@ for (iter = recordingsTree->begin(path); iter != end; ++iter) { </%cpp> <li class="recording"> <& rec_item_file name=(recItem->Name()) level=(level) id=(recItem->Id()) day=(day) dayLen=(dayLen) startTime=(recItem->StartTime()) duration=(duration) hint=(hint) shortDescr=(shortDescr) archived=(RecordingsManager::GetArchiveDescr(recItem->Recording())) &> - </li> + </li> <%cpp> - } } </%cpp> </%def> <# ---------------------------------------------------------------------- #> +<%def sort_options> +<%cpp> { </%cpp> +<a href="recordings.html?sort=name" alt="" /><$ tr("Sort by name") $></a> +<span class="sep">|</span> +<a href="recordings.html?sort=date" alt="" /><$ tr("Sort by date") $></a> +<br/> +<%cpp> } </%cpp> +</%def> + +<# ---------------------------------------------------------------------- #> + <%def del_rec> <%args> string id; @@ -281,5 +324,6 @@ for (iter = recordingsTree->begin(path); iter != end; ++iter) { <# ---------------------------------------------------------------------- #> <%def delete_error> +<& recordings.sort_options &> <%cpp> { reply.out() << deleteResult; } </%cpp> </%def> |