diff options
author | Dieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de> | 2007-04-29 18:02:47 +0000 |
---|---|---|
committer | Dieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de> | 2007-04-29 18:02:47 +0000 |
commit | 162677a55f93defc8fc124b89b137a444ab78edb (patch) | |
tree | 45c93e9f54581c473295187d462c1073da48f3f2 /pages | |
parent | c23da7907f180eed81032e1f63e1421f2b39cb61 (diff) | |
download | vdr-plugin-live-162677a55f93defc8fc124b89b137a444ab78edb.tar.gz vdr-plugin-live-162677a55f93defc8fc124b89b137a444ab78edb.tar.bz2 |
- xml version of infobox, updates only pagelements inside the box not
whole box. This circumvents the tooltip stacking problem.
- updated styles for this change.
- updated i18n.cpp for this change.
- Changed javascript implementation for infobox.
- Box doesn't change size after first update.
- added some <%cpp> { </%cpp> tags to prevent newlines inserted by
tntnet. See tntnet documentation about this.
- Added infobox to all pages that didn't had one.
Diffstat (limited to 'pages')
-rw-r--r-- | pages/Makefile | 5 | ||||
-rw-r--r-- | pages/edit_searchtimer.ecpp | 147 | ||||
-rw-r--r-- | pages/edit_timer.ecpp | 12 | ||||
-rw-r--r-- | pages/ibox.ecpp (renamed from pages/infobox.ecpp) | 72 | ||||
-rw-r--r-- | pages/menu.ecpp | 3 | ||||
-rw-r--r-- | pages/pageelems.ecpp | 57 | ||||
-rw-r--r-- | pages/recordings.ecpp | 2 | ||||
-rw-r--r-- | pages/remote.ecpp | 2 | ||||
-rw-r--r-- | pages/schedule.ecpp | 2 | ||||
-rw-r--r-- | pages/searchepg.ecpp | 479 | ||||
-rw-r--r-- | pages/searchtimers.ecpp | 5 | ||||
-rw-r--r-- | pages/timers.ecpp | 2 | ||||
-rw-r--r-- | pages/tooltip.ecpp | 2 | ||||
-rw-r--r-- | pages/whats_on.ecpp | 2 |
14 files changed, 433 insertions, 359 deletions
diff --git a/pages/Makefile b/pages/Makefile index d9be777..f9dec2d 100644 --- a/pages/Makefile +++ b/pages/Makefile @@ -19,8 +19,9 @@ OBJS = menu.o channels.o recordings.o schedule.o \ screenshot.o timers.o whats_on.o switch_channel.o \ keypress.o remote.o channels_widget.o edit_timer.o \ error.o pageelems.o tooltip.o play_recording.o \ - searchtimers.o infobox.o edit_searchtimer.o \ - searchresults.o login.o searchepg.o + searchtimers.o infobox.o edit_searchtimer.o \ + searchresults.o login.o searchepg.o \ + ibox.o ibox_status.o ### Default rules: diff --git a/pages/edit_searchtimer.ecpp b/pages/edit_searchtimer.ecpp index 92b6170..c1e2695 100644 --- a/pages/edit_searchtimer.ecpp +++ b/pages/edit_searchtimer.ecpp @@ -92,8 +92,8 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); }> <%cpp> -#define SELECTIF(x) reply.out() << ( (x) ? "selected=\"selected\"" : "" ); -#define CHECKIF(x) reply.out() << ( (x) ? "checked=\"checked\"" : "" ); +#define SELECTIF(x) reply.out() << ( (x) ? "selected=\"selected\"" : "" ); +#define CHECKIF(x) reply.out() << ( (x) ? "checked=\"checked\"" : "" ); SearchTimers searchtimers; searchtimer = 0; @@ -130,7 +130,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); infos.push_back(os.str()); } searchtimer->SetExtEPGInfo(infos); - } + } searchtimer->SetUseChannel((SearchTimer::eUseChannel)usechannel); if (usechannel == SearchTimer::Interval) { @@ -139,19 +139,19 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); } if (usechannel == SearchTimer::Group) searchtimer->SetChannelText(changrpsel); - + searchtimer->SetUseTime(usetime); if (usetime) { searchtimer->SetStartTime(StringToInt(start_h) * 100 + StringToInt(start_m)); searchtimer->SetStopTime(StringToInt(stop_h) * 100 + StringToInt(stop_m)); - } + } searchtimer->SetUseDuration(useduration); if (useduration) { searchtimer->SetMinDuration(durationmin); searchtimer->SetMaxDuration(durationmax); - } + } searchtimer->SetUseDayOfWeek(useweekday); if (useweekday) { @@ -167,7 +167,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); } searchtimer->SetUseInFavorites(useinfavorites); searchtimer->SetUseAsSearchTimer(useassearchtimer); - searchtimer->SetSearchTimerAction(searchtimeraction); + searchtimer->SetSearchTimerAction(searchtimeraction); searchtimer->SetUseSeriesRecording(seriesrecording); searchtimer->SetDirectory(directory); searchtimer->SetDelRecsAfterDays(delrecafterdays); @@ -176,9 +176,9 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); searchtimer->SetBlacklistMode(blacklistmode); if (blacklistmode == 1) searchtimer->ParseBlacklist(blacklistids_internal); - + searchtimer->SetSwitchMinBefore(switchminbefore); - + searchtimer->SetAvoidRepeats(avoidrepeats); if (avoidrepeats) { @@ -187,21 +187,21 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); searchtimer->SetCompareTitle(comparetitle); searchtimer->SetCompareSubtitle(comparesubtitle); searchtimer->SetCompareSummary(comparesummary); - } - unsigned long catsselected = 0; + } + unsigned long catsselected = 0; for (unsigned int i=0; i< avoidrepeatscatselected.size(); i++) catsselected |= (1<< (avoidrepeatscatselected[i]-1)); - + searchtimer->SetCompareCategories(catsselected); searchtimer->SetPriority(priority); searchtimer->SetLifetime(lifetime); searchtimer->SetMarginStart(marginstart); searchtimer->SetMarginStop(marginstop); searchtimer->SetUseVPS(usevps); - + if (!testmode) { - searchtimers.Save(searchtimer); + searchtimers.Save(searchtimer); return reply.redirect("searchtimers.html"); } else @@ -214,7 +214,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); pageTitle = searchtimer ? tr("Edit search timer") : tr("New search timer"); if ( searchtimer != 0 ) { - search = searchtimer->Search(); + search = searchtimer->Search(); mode = searchtimer->SearchMode(); tolerance = searchtimer->Tolerance(); matchcase = searchtimer->MatchCase(); @@ -263,18 +263,18 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); } else { - wday_sun = -dayofweek & 0x01; - wday_mon = -dayofweek & 0x02; - wday_tue = -dayofweek & 0x04; - wday_wed = -dayofweek & 0x08; - wday_thu = -dayofweek & 0x10; - wday_fri = -dayofweek & 0x20; - wday_sat = -dayofweek & 0x40; + wday_sun = -dayofweek & 0x01; + wday_mon = -dayofweek & 0x02; + wday_tue = -dayofweek & 0x04; + wday_wed = -dayofweek & 0x08; + wday_thu = -dayofweek & 0x10; + wday_fri = -dayofweek & 0x20; + wday_sat = -dayofweek & 0x40; } - } + } useinfavorites = searchtimer->UseInFavorites(); useassearchtimer = searchtimer->UseAsSearchTimer(); - searchtimeraction = searchtimer->SearchTimerAction(); + searchtimeraction = searchtimer->SearchTimerAction(); seriesrecording = searchtimer->UseSeriesRecording(); directory = searchtimer->Directory(); delrecafterdays = searchtimer->DelRecsAfterDays(); @@ -287,7 +287,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); for(unsigned int i=0; i<extEPGInfos.size(); i++) { if (i<infos.size()) - { + { vector< string > parts = StringSplit( infos[i], '#' ); extepgvalues.push_back(parts.size() > 1?parts[1]:""); } @@ -320,13 +320,15 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); usetitle = true; usesubtitle = true; usedescr = true; - } + } </%cpp> <& pageelems.doc_type &> <html> <head> - <& pageelems.ajax_js &> + <title>VDR Live - <$ searchtimer ? tr("Edit search timer") : tr("New search timer") $></title> + <link rel="stylesheet" type="text/css" href="styles.css" /> <& tooltip.javascript var=("domTT_styleClass") value=("domTTepg") &> + <& pageelems.ajax_js &> <script type="text/javascript"><!-- function initform() @@ -383,10 +385,10 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); function changedsearchtimermode(selection) { - document.getElementById("searchtimermode1settings").style.display = + document.getElementById("searchtimermode1settings").style.display = (selection.options[selection.selectedIndex].value == 0 & document.getElementById("useassearchtimer").checked ? "block" : "none"); - document.getElementById("searchtimermode3settings").style.display = + document.getElementById("searchtimermode3settings").style.display = (selection.options[selection.selectedIndex].value == 2 & document.getElementById("useassearchtimer").checked ? "block" : "none"); } @@ -398,15 +400,15 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); function changedextepginfo(selection) { - var i; + var i; document.getElementById(selection.name + "_value").value = ""; - for(i=0;i<selection.length;i++) - { + for(i=0;i<selection.length;i++) + { if (selection.options[i].selected) { if (document.getElementById(selection.name + "_value").value != "") document.getElementById(selection.name + "_value").value += ","; - document.getElementById(selection.name + "_value").value += selection.options[i].value; + document.getElementById(selection.name + "_value").value += selection.options[i].value; } } } @@ -418,21 +420,21 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); function changedblacklistmode(selection) { - document.getElementById("blacklistmodesettings").style.display = + document.getElementById("blacklistmodesettings").style.display = (selection.options[selection.selectedIndex].value == 1 ? "block" : "none"); } function changedblacklistsel(selection) { - var i; + var i; document.getElementById("blacklistids_internal").value = ""; - for(i=0;i<selection.length;i++) - { + for(i=0;i<selection.length;i++) + { if (selection.options[i].selected) { if (document.getElementById("blacklistids_internal").value != "") document.getElementById("blacklistids_internal").value += "|"; - document.getElementById("blacklistids_internal").value += selection.options[i].value; + document.getElementById("blacklistids_internal").value += selection.options[i].value; } } } @@ -441,16 +443,10 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); document.getElementById("directory").value = selection.value; } //--></script> - - <title>VDR Live - <$ searchtimer ? tr("Edit search timer") : tr("New search timer") $></title> - <link rel="stylesheet" type="text/css" href="styles.css" /> </head> - <body onload="initform()"> - <div class="left_area"> - <& pageelems.logo &> - <& menu active=("searchtimers") &> - </div> - <div class="right_area"> + <body onload="<& pageelems.infobox_start_update &>; initform()"> + <& pageelems.logo &> + <& menu active=("searchtimers") &> <div class="inhalt"> <form method="POST" name="edit_searchtimer" action="edit_searchtimer.ecpp"> <input type="hidden" name="searchtimerid" value="<$ searchtimerid $>"/> @@ -459,7 +455,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <tr> <td class="head" colspan="4"><div class="boxheader"><div><div><$ searchtimer ? tr("Edit search timer") : tr("New search timer") $></div></div></div></td> </tr> - + <!-- Search term --> <tr> <td class="border" style="border-left: 1px solid black"></td> @@ -467,7 +463,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <td><input type="text" name="search" value="<$ search $>" size="90" id="searchterm" /></td> <td class="border" style="border-right: 1px solid black"></td> </tr> - + <!-- Search mode --> <tr> <td class="border" style="border-left: 1px solid black"></td> @@ -498,7 +494,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <td><input type="checkbox" name="matchcase" value="1" <{ CHECKIF(matchcase) }> id="matchcase"/></td> <td class="border" style="border-right: 1px solid black"></td> </tr> - + <!-- Search in --> <tr> <td class="border" style="border-left: 1px solid black"></td> @@ -506,10 +502,10 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <td> <input type="checkbox" name="usetitle" value="1" <{ CHECKIF(usetitle) }> /> <label for="usetitle"><$ tr("Title") $> </label> - + <input type="checkbox" name="usesubtitle" value="1" <{ CHECKIF(usesubtitle) }> /> <label for="usesubtitle"><$ tr("Episode") $> </label> - + <input type="checkbox" name="usedescr" value="1" <{ CHECKIF(usedescr) }> /> <label for="usedescr"><$ tr("Description") $> </label> </td> @@ -525,7 +521,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <input type="checkbox" name="useextepginfo" value="1" <{ CHECKIF(useextepginfo) }> onclick="changeduseextepginfo(this)" id="useextepginfo"/> <div id="use_extepg_settings" style="display: none"> <table border="0" cellspacing="0" cellpadding="0"> -% int i=0; for (ExtEPGInfos::iterator extinfo = extEPGInfos.begin(); extinfo != extEPGInfos.end(); ++extinfo, i++) { +% int i=0; for (ExtEPGInfos::iterator extinfo = extEPGInfos.begin(); extinfo != extEPGInfos.end(); ++extinfo, i++) { <tr valign="top"> <td align="left" valign="top"><$ extinfo->Name() $></td> <td align="left" valign="top"> @@ -559,21 +555,21 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <td class="border" style="border-left: 1px solid black"></td> <td class="label"><$ tr("Use channel" ) $>:</td> <td> - + <select onchange="changedchannelmode(this)" name="usechannel" size="1" id="channel_mode"> <option value="0" <{ SELECTIF(usechannel == 0) }> ><$ tr("no") $></option> <option value="1" <{ SELECTIF(usechannel == 1) }> ><$ tr("interval") $></option> <option value="2" <{ SELECTIF(usechannel == 2) }> ><$ tr("channel group") $></option> <option value="3" <{ SELECTIF(usechannel == 3) }> ><$ tr("only FTA") $></option> </select> - + <div id="channelinterval" style="display: none;" class="dependent"> <$ tr("from channel" ) $>: <& channels_widget name=("channelfrom") channelid=(true) selected=(channelfrom) &><br /> <$ tr("to channel" ) $>: <& channels_widget name=("channelto") channelid=(true) selected=(channelto) &> </div> - + <div id="channelgroup" style="display: none"> % if (channelGroups.size() > 0) { <select name="changrpsel" size="1" id="changrpsel"> @@ -590,7 +586,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <!-- Use time --> <tr> <td class="border" style="border-left: 1px solid black"></td> - <td class="label"><$ tr("Use time") $>:</td> + <td class="label"><$ tr("Use time") $>:</td> <td> <input type="checkbox" name="usetime" value="1" <{ CHECKIF(usetime) }> onclick="changedusetime(this)" id="usetime" /> <div id="timesettings" style="display: none"> @@ -618,7 +614,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <!-- Use duration --> <tr> <td class="border" style="border-left: 1px solid black"></td> - <td class="label"><$ tr("Use duration") $>:</td> + <td class="label"><$ tr("Use duration") $>:</td> <td> <input type="checkbox" name="useduration" value="1" <{ CHECKIF(useduration) }> onclick="changeduseduration(this)" id="useduration" /> <div id="durationsettings" style="display: none"> @@ -636,11 +632,11 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); </td> <td class="border" style="border-right: 1px solid black"></td> </tr> - + <!-- Use weekday --> <tr> <td class="border" style="border-left: 1px solid black"></td> - <td class="label"><$ tr("Use day of week") $>:</td> + <td class="label"><$ tr("Use day of week") $>:</td> <td> <input type="checkbox" name="useweekday" value="1" <{ CHECKIF(useweekday) }> onclick="changeduseweekday(this)" id="useweekday" /> <div id="weekdaysettings" style="display: none" class="dependent"> @@ -659,7 +655,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <!-- Use blacklists --> <tr> <td class="border" style="border-left: 1px solid black"></td> - <td class="label"><$ tr("Use blacklists" ) $>:</td> + <td class="label"><$ tr("Use blacklists" ) $>:</td> <td> <select onchange="changedblacklistmode(this)" name="blacklistmode" size="1" id="blacklistmode"> <option value="0" <{ SELECTIF(blacklistmode == 0) }> ><$ tr("no") $></option> @@ -690,7 +686,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <!-- Use as search timer --> <tr> <td class="border" style="border-left: 1px solid black"></td> - <td class="label"><$ tr("Use as search timer" ) $>:</td> + <td class="label"><$ tr("Use as search timer" ) $>:</td> <td> <div style="float:left; max-width:50%; margin-right:20px"> <input type="checkbox" name="useassearchtimer" value="1" <{ CHECKIF(useassearchtimer) }> onclick="changeduseassearchtimer(this)" id="useassearchtimer"/> @@ -708,7 +704,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <td><$ tr("Series recording") $>:</td> <td><input type="checkbox" name="seriesrecording" value="1" <{ CHECKIF(seriesrecording) }>/></td> </tr> - + <tr> <td><$ tr("Directory") $>:</td> <td><input type="text" name="directory" id="directory" value="<$ directory $>" size="70" /><br> @@ -720,7 +716,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); </select> </td> </tr> - + <tr> <td><$ tr("Delete recordings after ... days") $>:</td> <td> @@ -729,14 +725,14 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <input type="text" name="keeprecs" size="2" value="<$ keeprecs $>"/> </td> </tr> - + <tr> <td><$ tr("Pause when ... recordings exist") $>:</td> <td><input type="text" name="pauseonrecs" id="pauseonrecs" size="2" value="<$ pauseonrecs $>"/></td> </tr> - + <tr> - <td><$ tr("Avoid repeats" ) $>:</td> + <td><$ tr("Avoid repeats" ) $>:</td> <td><input type="checkbox" name="avoidrepeats" value="1" <{ CHECKIF(avoidrepeats) }> onclick="changedavoidrepeats(this)" id="avoidrepeats"/> <div id="avoidrepeatssettings" style="display: none"> <table border="0" cellpadding="0" cellspacing="0"> @@ -746,9 +742,9 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <input type="text" size="3" maxlength="3" name="allowedrepeats" value="<$ allowedrepeats $>" /> <$ tr("Only repeats within ... days") $>:<input type="text" size="3" maxlength="3" name="repeatswithindays" value="<$ repeatswithindays $>" /> </td> </tr> - + <tr> - <td><$ tr("Compare title" ) $>:</td> + <td><$ tr("Compare title" ) $>:</td> <td><input type="checkbox" name="comparetitle" value="1" <{ CHECKIF(comparetitle) }>/> </tr> @@ -756,9 +752,9 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <td><$ tr("Compare subtitle" ) $>:</td> <td><input type="checkbox" name="comparesubtitle" value="1" <{ CHECKIF(comparesubtitle) }>/> </tr> - + <tr> - <td><$ tr("Compare summary" ) $>:</td> + <td><$ tr("Compare summary" ) $>:</td> <td><input type="checkbox" name="comparesummary" value="1" <{ CHECKIF(comparesummary) }>/> </tr> @@ -779,22 +775,22 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <td><$ tr("Priority") $>:</td> <td><input type="text" name="priority" size="2" value="<$ priority $>"/></td> </tr> - + <tr> <td><$ tr("Lifetime") $>:</td> <td><input type="text" name="lifetime" size="2" value="<$ lifetime $>"/></td> </tr> - + <tr> <td><$ tr("Setup.Recording$Margin at start (min)") $>:</td> <td><input type="text" name="marginstart" size="2" value="<$ marginstart $>"/></td> </tr> - + <tr> <td><$ tr("Setup.Recording$Margin at stop (min)") $>:</td> <td><input type="text" name="marginstop" size="2" value="<$ marginstop $>"/></td> </tr> - + <tr> <td class="blank"><$ tr("Use VPS") $>:</td> <td class="blank"><input type="checkbox" name="usevps" value="1" <{ CHECKIF(usevps) }>/></td> @@ -826,7 +822,6 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); </table> </form> </div> - </div> </body> </html> <%include>page_exit.eh</%include> diff --git a/pages/edit_timer.ecpp b/pages/edit_timer.ecpp index 734a531..843e4af 100644 --- a/pages/edit_timer.ecpp +++ b/pages/edit_timer.ecpp @@ -117,13 +117,12 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <head> <title>VDR Live - <$ timer ? tr("Edit timer") : tr("New timer") $></title> <link rel="stylesheet" type="text/css" href="styles.css" /> + <& tooltip.javascript var=("domTT_styleClass") value=("domTTepg") &> + <& pageelems.ajax_js &> </head> - <body> - <div class="left_area"> - <& pageelems.logo &> - <& menu active=("timers") &> - </div> - <div class="right_area"> + <body onload="<& pageelems.infobox_start_update &>"> + <& pageelems.logo &> + <& menu active=("timers") &> <div class="inhalt"> <form method="POST" name="edit_timer" action="edit_timer.ecpp"> <input type="hidden" name="timerid" value="<$ timerid $>"/> @@ -224,7 +223,6 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); </table> </form> </div> - </div> </body> </html> <%include>page_exit.eh</%include> diff --git a/pages/infobox.ecpp b/pages/ibox.ecpp index afc44b4..badd690 100644 --- a/pages/infobox.ecpp +++ b/pages/ibox.ecpp @@ -14,13 +14,17 @@ using namespace vdrlive; using namespace std; </%pre> -<%include>page_init.eh</%include> -<{ +<%args> + int update; +</%args> +<%cpp> EpgEvents epgEvents; string EMPTY_STR; tChannelID prev_chan; tChannelID next_chan; + reply.setContentType( "application/xml" ); + if (cReplayControl::NowReplaying()) { cThreadLock RecordingsLock(&Recordings); cRecording *Recording = Recordings.GetByName(cReplayControl::NowReplaying()); @@ -44,8 +48,6 @@ using namespace std; if (cDevice::CurrentChannel()) { cChannel* Channel = Channels.GetByNumber(cDevice::CurrentChannel()); - if (!Channel) - throw HtmlError("got invalid channel number!"); cChannel* tmp = Channels.GetByNumber(Channels.GetPrevNormal(cDevice::CurrentChannel())); if (tmp) @@ -116,26 +118,60 @@ using namespace std; EpgEventPtr epg = *i; if (prev_chan.Valid() && next_chan.Valid()) { -}> - <& pageelems.status_box type=(epg->Id()) caption=(epg->Caption()) currentTime=(epg->CurrentTime(tr("%I:%M:%S %p"))) duration=(epg->StartTime(tr("%I:%M %p")) + string(" - ") + epg->EndTime(tr("%I:%M %p"))) title=(epg->Title()) elapsed=(epg->Elapsed()) prev_chan=(prev_chan) next_chan=(next_chan) &> -<{ +</%cpp> +<& xmlresponse update=(update) type=(epg->Id()) caption=(epg->Caption()) currentTime=(epg->CurrentTime(tr("%I:%M:%S %p"))) duration=(epg->StartTime(tr("%I:%M %p")) + string(" - ") + epg->EndTime(tr("%I:%M %p"))) title=(epg->Title()) elapsed=(epg->Elapsed()) prev_chan=(prev_chan) next_chan=(next_chan) &> +<%cpp> } else if (prev_chan.Valid()) { -}> - <& pageelems.status_box type=(epg->Id()) caption=(epg->Caption()) currentTime=(epg->CurrentTime(tr("%I:%M:%S %p"))) duration=(epg->StartTime(tr("%I:%M %p")) + string(" - ") + epg->EndTime(tr("%I:%M %p"))) title=(epg->Title()) elapsed=(epg->Elapsed()) prev_chan=(prev_chan) &> -<{ +</%cpp> +<& xmlresponse update=(update) type=(epg->Id()) caption=(epg->Caption()) currentTime=(epg->CurrentTime(tr("%I:%M:%S %p"))) duration=(epg->StartTime(tr("%I:%M %p")) + string(" - ") + epg->EndTime(tr("%I:%M %p"))) title=(epg->Title()) elapsed=(epg->Elapsed()) prev_chan=(prev_chan) &> +<%cpp> } else if (next_chan.Valid()) { -}> - <& pageelems.status_box type=(epg->Id()) caption=(epg->Caption()) currentTime=(epg->CurrentTime(tr("%I:%M:%S %p"))) duration=(epg->StartTime(tr("%I:%M %p")) + string(" - ") + epg->EndTime(tr("%I:%M %p"))) title=(epg->Title()) elapsed=(epg->Elapsed()) next_chan=(next_chan) &> -<{ +</%cpp> +<& xmlresponse update=(update) type=(epg->Id()) caption=(epg->Caption()) currentTime=(epg->CurrentTime(tr("%I:%M:%S %p"))) duration=(epg->StartTime(tr("%I:%M %p")) + string(" - ") + epg->EndTime(tr("%I:%M %p"))) title=(epg->Title()) elapsed=(epg->Elapsed()) next_chan=(next_chan) &> +<%cpp> } else { -}> - <& pageelems.status_box type=(epg->Id()) caption=(epg->Caption()) currentTime=(epg->CurrentTime(tr("%I:%M:%S %p"))) duration=(epg->StartTime(tr("%I:%M %p")) + string(" - ") + epg->EndTime(tr("%I:%M %p"))) title=(epg->Title()) elapsed=(epg->Elapsed()) &> -<{ +</%cpp> +<& xmlresponse update=(update) type=(epg->Id()) caption=(epg->Caption()) currentTime=(epg->CurrentTime(tr("%I:%M:%S %p"))) duration=(epg->StartTime(tr("%I:%M %p")) + string(" - ") + epg->EndTime(tr("%I:%M %p"))) title=(epg->Title()) elapsed=(epg->Elapsed()) &> +<%cpp> } break; } -}> -<%include>page_exit.eh</%include> +</%cpp> + +<%def xmlresponse> +<%args> + int update; + string type; + string currentTime; + string caption; + string title; + string duration; + int elapsed; + string prev_chan; + string next_chan; +</%args> +<?xml version="1.0"?> +<service> + <request name="ibox"> + <param name="update"><$ update $></param> + </request> + <response>1</response> + <error></error> + <values> + <update><$ update $></update> + <epginfo> + <type><$ type $></type> + <caption><$ caption $></caption> + <timenow><$ currentTime $></timenow> + <name><$ title $></name> + <duration><$ duration $></duration> + <elapsed><$ elapsed $></elapsed> + <nextchan><$ next_chan $></nextchan> + <prevchan><$ prev_chan $></prevchan> + </epginfo> + </values> +</service> +</%def> diff --git a/pages/menu.ecpp b/pages/menu.ecpp index cc81879..fb6b2f9 100644 --- a/pages/menu.ecpp +++ b/pages/menu.ecpp @@ -30,6 +30,9 @@ std::string set_component; % } <a href="recordings.html" <& menu.setactive current=("recordings") &>><$ tr("Recordings") $></a> | <a href="remote.html" <& menu.setactive current=("remote") &>><$ tr("Remote Control") $></a> +<!-- Used by D.H. to test infobox (not part of the released version) + | <a href="ibox_status.html" <& menu.setactive current=("status") &>><$ tr("Status Test") $></a> +--> % if (LiveSetup().UseAuth()) { | <a id="login" href="login.html?action=logout"><$ tr("Logout") $></a> % } diff --git a/pages/pageelems.ecpp b/pages/pageelems.ecpp index 6ed608a..6f70d94 100644 --- a/pages/pageelems.ecpp +++ b/pages/pageelems.ecpp @@ -3,6 +3,7 @@ #include <vdr/menu.h> #include <vdr/epg.h> #include "tools.h" +#include "i18n.h" using namespace std; using namespace vdrlive; @@ -20,19 +21,64 @@ using namespace vdrlive; <%def logo> <div class="page_header"> <img src="logo.png" alt="VDR Live!" class="logo"/> - <div id="infobox"> - </div> + <& infobox &> </div> <div style="clear: both"></div> </%def> <# ---------------------------------------------------------------------- #> +<%def infobox> +<div id="infobox"> + <div class="statuscontent"> + <div class="st_header"> + <div id="infobox_caption" class="caption"><$ tr("retrieving status ...") $></div> + <div id="infobox_timenow" class="now">--:--</div> + </div> + <div class="st_content"> + <div id="infobox_name" class="name"></div> + <div id="infobox_duration" class="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="" /></a> + <span id="infobox_recording_buttons" style="display: none"></span> + <span id="infobox_channel_buttons"> + <& ajax_action_href action=("switch_channel") id=("infobox_prevchan") image=("one_downarrow.png") tip=(tr("previous channel")) &> + <& ajax_action_href action=("switch_channel") id=("infobox_nextchan") image=("one_uparrow.png") tip=(tr("next channel")) &> + </span> + </div> + <div class="st_pbar"> + <& progressbar id=("infobox_elapsed") &> + </div> + </div> + </div> +</div> +</%def> + +<# ---------------------------------------------------------------------- #> + +<%def infobox_start_update> +<%cpp> { </%cpp>LiveStatusRequest('ibox.xml', 'infobox')<%cpp> } </%cpp> +</%def> + +<# ---------------------------------------------------------------------- #> + +<%def hide_element> +<%args> + bool hide = true; +</%args> +<%cpp> if (hide) { </%cpp>style="visibility: hidden"<%cpp> } </%cpp> +</%def> + +<# ---------------------------------------------------------------------- #> + <%def progressbar> <%args> - string progress; + string progress = "0"; + string id; </%args> -<div class="__progress"><div class="__elapsed" style="width: <$ progress $>px"></div></div> +<div class="__progress"><div class="__elapsed" <? !id.empty() ? "id=" + id ?> style="width: <$ progress $>px"></div></div> </%def> <# ---------------------------------------------------------------------- #> @@ -61,8 +107,9 @@ using namespace vdrlive; string param; string image; string alt; + string id; </%args> - <a href="javascript:LiveSimpleAjaxRequest('<$ action $>.xml', 'param', '<$ param $>');" <%cpp>if (!tip.empty()) { </%cpp><& tooltip.hint text=(tip) &> <%cpp> } </%cpp>><img src="<$ image $>" alt="<$ alt $>" /></a> +<%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 $>" /></a> <%cpp> } </%cpp> </%def> <# ---------------------------------------------------------------------- #> diff --git a/pages/recordings.ecpp b/pages/recordings.ecpp index d9c620d..87c534e 100644 --- a/pages/recordings.ecpp +++ b/pages/recordings.ecpp @@ -38,7 +38,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <& pageelems.ajax_js &> <script type="text/javascript" language="javascript" src="treeview.js"></script> </head> - <body onload="LiveStatusAjaxRequest('infobox.html', 'infobox')"> + <body onload="<& pageelems.infobox_start_update &>"> <& pageelems.logo &> <& menu active=("recordings") &> <div class="inhalt"> diff --git a/pages/remote.ecpp b/pages/remote.ecpp index c8293aa..354f9b6 100644 --- a/pages/remote.ecpp +++ b/pages/remote.ecpp @@ -70,7 +70,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); } //--></script> </head> - <body onload="StreamInit(); FillIntervals(); LiveStatusAjaxRequest('infobox.html', 'infobox')"> + <body onload="StreamInit(); FillIntervals(); <& pageelems.infobox_start_update &>"> <& pageelems.logo &> <& menu active="remote" component=("remote.remote_actions")> <div class="inhalt"> diff --git a/pages/schedule.ecpp b/pages/schedule.ecpp index db775d3..1de1e66 100644 --- a/pages/schedule.ecpp +++ b/pages/schedule.ecpp @@ -55,7 +55,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <& tooltip.javascript var=("domTT_styleClass") value=("domTTepg") &> <& pageelems.ajax_js &> </head> - <body onload="LiveStatusAjaxRequest('infobox.html', 'infobox')"> + <body onload="<& pageelems.infobox_start_update &>"> <& pageelems.logo &> <& menu active=("schedule") component=("schedule.channel_selection")> <div class="inhalt"> diff --git a/pages/searchepg.ecpp b/pages/searchepg.ecpp index bb33c91..da86589 100644 --- a/pages/searchepg.ecpp +++ b/pages/searchepg.ecpp @@ -69,8 +69,8 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); }> <%cpp> -#define SELECTIF(x) reply.out() << ( (x) ? "selected=\"selected\"" : "" ); -#define CHECKIF(x) reply.out() << ( (x) ? "checked=\"checked\"" : "" ); +#define SELECTIF(x) reply.out() << ( (x) ? "selected=\"selected\"" : "" ); +#define CHECKIF(x) reply.out() << ( (x) ? "checked=\"checked\"" : "" ); searchtimer = 0; @@ -96,7 +96,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); infos.push_back(os.str()); } searchtimer.SetExtEPGInfo(infos); - } + } searchtimer.SetUseChannel((SearchTimer::eUseChannel)usechannel); if (usechannel == SearchTimer::Interval) { @@ -105,19 +105,19 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); } if (usechannel == SearchTimer::Group) searchtimer.SetChannelText(changrpsel); - + searchtimer.SetUseTime(usetime); if (usetime) { searchtimer.SetStartTime(StringToInt(start_h) * 100 + StringToInt(start_m)); searchtimer.SetStopTime(StringToInt(stop_h) * 100 + StringToInt(stop_m)); - } + } searchtimer.SetUseDuration(useduration); if (useduration) { searchtimer.SetMinDuration(durationmin); searchtimer.SetMaxDuration(durationmax); - } + } searchtimer.SetUseDayOfWeek(useweekday); if (useweekday) { @@ -134,7 +134,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); searchtimer.SetBlacklistMode(blacklistmode); if (blacklistmode == 1) searchtimer.ParseBlacklist(blacklistids_internal); - + searchtimer.SetId(0); string md5 = SearchResults::AddQuery(searchtimer.ToText()); return reply.redirect("searchresults.html?searchtimerquery=" + md5); @@ -150,8 +150,10 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <& pageelems.doc_type &> <html> <head> - <& pageelems.ajax_js &> + <title>VDR Live - <$ tr("Search") $></title> + <link rel="stylesheet" type="text/css" href="styles.css" /> <& tooltip.javascript var=("domTT_styleClass") value=("domTTepg") &> + <& pageelems.ajax_js &> <script type="text/javascript"><!-- function initform() @@ -211,279 +213,272 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); function changedextepginfo(selection) { - var i; + var i; document.getElementById(selection.name + "_value").value = ""; - for(i=0;i<selection.length;i++) - { + for(i=0;i<selection.length;i++) + { if (selection.options[i].selected) { if (document.getElementById(selection.name + "_value").value != "") document.getElementById(selection.name + "_value").value += ","; - document.getElementById(selection.name + "_value").value += selection.options[i].value; + document.getElementById(selection.name + "_value").value += selection.options[i].value; } } } function changedblacklistmode(selection) { - document.getElementById("blacklistmodesettings").style.display = + document.getElementById("blacklistmodesettings").style.display = (selection.options[selection.selectedIndex].value == 1 ? "block" : "none"); } function changedblacklistsel(selection) { - var i; + var i; document.getElementById("blacklistids_internal").value = ""; - for(i=0;i<selection.length;i++) - { + for(i=0;i<selection.length;i++) + { if (selection.options[i].selected) { if (document.getElementById("blacklistids_internal").value != "") document.getElementById("blacklistids_internal").value += "|"; - document.getElementById("blacklistids_internal").value += selection.options[i].value; + document.getElementById("blacklistids_internal").value += selection.options[i].value; } } } //--></script> - - <title>VDR Live - <$ tr("Search") $></title> - <link rel="stylesheet" type="text/css" href="styles.css" /> </head> - <body onload="initform()"> - <div class="left_area"> - <& pageelems.logo &> - <& menu active=("searchepg") &> - </div> - <div class="right_area"> - <div class="inhalt"> - <form method="POST" name="searchepg" action="searchepg.ecpp"> - <input type="hidden" name="blacklistids_internal" value="<$ blacklistids_internal $>" id="blacklistids_internal"/> - <table class="edit" cellpadding="0" cellspacing="0"> + <body onload="<& pageelems.infobox_start_update &>; initform()"> + <& pageelems.logo &> + <& menu active=("searchepg") &> + <div class="inhalt"> + <form method="POST" name="searchepg" action="searchepg.ecpp"> + <input type="hidden" name="blacklistids_internal" value="<$ blacklistids_internal $>" id="blacklistids_internal"/> + <table class="edit" cellpadding="0" cellspacing="0"> + <tr> + <td class="head" colspan="4"><div class="boxheader"><div><div><$ tr("Search settings") $></div></div></div></td> + </tr> + + <!-- Search term --> + <tr> + <td class="border" style="border-left: 1px solid black"></td> + <td class="label"><$ tr("Search term") $>:</td> + <td><input type="text" name="search" value="<$ search $>" size="90" id="searchterm" /></td> + <td class="border" style="border-right: 1px solid black"></td> + </tr> + <tr> + <td class="border" style="border-left: 1px solid black"></td> + <td class="label"><$ tr("Extended search") $>:</td> + <td> + <input type="checkbox" name="useextendedsearch" value="1" <{ CHECKIF(useextendedsearch) }> onclick="changeduseextendedsearch(this)" id="useextendedsearch"/> + <div id="extendedsearch" style="display: none"> + <table class="dependent" border="0" cellpadding="0" cellspacing="0"> + <!-- Search mode --> + <tr> + <td class="label"><$ tr("Search mode" ) $>:</td> + <td> + <div style="float:left; max-width:50%; margin-right:20px"> + <select onchange="changedsearchmode(this)" name="mode" size="1" id="search_mode"> + <option value="0" <{ SELECTIF(mode == 0) }> ><$ tr("phrase") $></option> + <option value="1" <{ SELECTIF(mode == 1) }> ><$ tr("all words") $></option> + <option value="2" <{ SELECTIF(mode == 2) }> ><$ tr("at least one word") $></option> + <option value="3" <{ SELECTIF(mode == 3) }> ><$ tr("match exactly") $></option> + <option value="4" <{ SELECTIF(mode == 4) }> ><$ tr("regular expression") $></option> + <option value="5" <{ SELECTIF(mode == 5) }> ><$ tr("fuzzy") $></option> + </select> + </div> + <div id="tolerance" style="display: none"> + <$ tr("Tolerance" ) $>: + <input type="text" name="tolerance" size="2" value="<$ tolerance $>" /> + </div> + </td> + </tr> + + <!-- Match case --> <tr> - <td class="head" colspan="4"><div class="boxheader"><div><div><$ tr("Search settings") $></div></div></div></td> + <td class="label"><$ tr("Match case") $>:</td> + <td><input type="checkbox" name="matchcase" value="1" <{ CHECKIF(matchcase) }> id="matchcase"/></td> </tr> - - <!-- Search term --> + + <!-- Search in --> <tr> - <td class="border" style="border-left: 1px solid black"></td> - <td class="label"><$ tr("Search term") $>:</td> - <td><input type="text" name="search" value="<$ search $>" size="90" id="searchterm" /></td> - <td class="border" style="border-right: 1px solid black"></td> + <td class="label"><$ tr("Search in") $>:</td> + <td> + <input type="checkbox" name="usetitle" value="1" <{ CHECKIF(usetitle) }> /> + <label for="usetitle"><$ tr("Title") $> </label> + + <input type="checkbox" name="usesubtitle" value="1" <{ CHECKIF(usesubtitle) }> /> + <label for="usesubtitle"><$ tr("Episode") $> </label> + + <input type="checkbox" name="usedescr" value="1" <{ CHECKIF(usedescr) }> /> + <label for="usedescr"><$ tr("Description") $> </label> + </td> </tr> + +% if (extEPGInfos.size() > 0) { + <!-- Use ext. EPG categories --> <tr> - <td class="border" style="border-left: 1px solid black"></td> - <td class="label"><$ tr("Extended search") $>:</td> + <td class="label"><$ tr("Use extended EPG info" ) $>:</td> <td> - <input type="checkbox" name="useextendedsearch" value="1" <{ CHECKIF(useextendedsearch) }> onclick="changeduseextendedsearch(this)" id="useextendedsearch"/> - <div id="extendedsearch" style="display: none"> - <table class="dependent" border="0" cellpadding="0" cellspacing="0"> - <!-- Search mode --> - <tr> - <td class="label"><$ tr("Search mode" ) $>:</td> - <td> - <div style="float:left; max-width:50%; margin-right:20px"> - <select onchange="changedsearchmode(this)" name="mode" size="1" id="search_mode"> - <option value="0" <{ SELECTIF(mode == 0) }> ><$ tr("phrase") $></option> - <option value="1" <{ SELECTIF(mode == 1) }> ><$ tr("all words") $></option> - <option value="2" <{ SELECTIF(mode == 2) }> ><$ tr("at least one word") $></option> - <option value="3" <{ SELECTIF(mode == 3) }> ><$ tr("match exactly") $></option> - <option value="4" <{ SELECTIF(mode == 4) }> ><$ tr("regular expression") $></option> - <option value="5" <{ SELECTIF(mode == 5) }> ><$ tr("fuzzy") $></option> - </select> - </div> - <div id="tolerance" style="display: none"> - <$ tr("Tolerance" ) $>: - <input type="text" name="tolerance" size="2" value="<$ tolerance $>" /> - </div> - </td> - </tr> - - <!-- Match case --> - <tr> - <td class="label"><$ tr("Match case") $>:</td> - <td><input type="checkbox" name="matchcase" value="1" <{ CHECKIF(matchcase) }> id="matchcase"/></td> - </tr> - - <!-- Search in --> - <tr> - <td class="label"><$ tr("Search in") $>:</td> - <td> - <input type="checkbox" name="usetitle" value="1" <{ CHECKIF(usetitle) }> /> - <label for="usetitle"><$ tr("Title") $> </label> - - <input type="checkbox" name="usesubtitle" value="1" <{ CHECKIF(usesubtitle) }> /> - <label for="usesubtitle"><$ tr("Episode") $> </label> - - <input type="checkbox" name="usedescr" value="1" <{ CHECKIF(usedescr) }> /> - <label for="usedescr"><$ tr("Description") $> </label> - </td> - </tr> - -% if (extEPGInfos.size() > 0) { - <!-- Use ext. EPG categories --> - <tr> - <td class="label"><$ tr("Use extended EPG info" ) $>:</td> - <td> - <input type="checkbox" name="useextepginfo" value="1" <{ CHECKIF(useextepginfo) }> onclick="changeduseextepginfo(this)" id="useextepginfo"/> - <div id="use_extepg_settings" style="display: none"> - <table border="0" cellspacing="0" cellpadding="0"> -% int i=0; for (ExtEPGInfos::iterator extinfo = extEPGInfos.begin(); extinfo != extEPGInfos.end(); ++extinfo, i++) { - <tr valign="top"> - <td align="left" valign="top"><$ extinfo->Name() $></td> - <td align="left" valign="top"> - <input type="text" name="extepgvalues" value="<$extepgvalues[i]$>" size="10" id="extepg_<{ reply.out() << extinfo->Id(); }>_value"/> - </td> -% if (extinfo->Values().size() > 0) { - <td> - <select size="3" multiple="multiple" align="left" valign="top" name="extepg_<{ reply.out() << extinfo->Id(); }>" onchange="changedextepginfo(this)"> -% for (unsigned int j=0; j<extinfo->Values().size(); j++) { - <option value="<{ reply.out() << extinfo->Values()[j];}>" -% if (extinfo->Selected(j, extepgvalues[i])) { - selected="selected" -% } - > <{ reply.out() << extinfo->Values()[j]; }> </option> -% } - </select> - </td> - </tr> -% } + <input type="checkbox" name="useextepginfo" value="1" <{ CHECKIF(useextepginfo) }> onclick="changeduseextepginfo(this)" id="useextepginfo"/> + <div id="use_extepg_settings" style="display: none"> + <table border="0" cellspacing="0" cellpadding="0"> +% int i=0; for (ExtEPGInfos::iterator extinfo = extEPGInfos.begin(); extinfo != extEPGInfos.end(); ++extinfo, i++) { + <tr valign="top"> + <td align="left" valign="top"><$ extinfo->Name() $></td> + <td align="left" valign="top"> + <input type="text" name="extepgvalues" value="<$extepgvalues[i]$>" size="10" id="extepg_<{ reply.out() << extinfo->Id(); }>_value"/> + </td> +% if (extinfo->Values().size() > 0) { + <td> + <select size="3" multiple="multiple" align="left" valign="top" name="extepg_<{ reply.out() << extinfo->Id(); }>" onchange="changedextepginfo(this)"> +% for (unsigned int j=0; j<extinfo->Values().size(); j++) { + <option value="<{ reply.out() << extinfo->Values()[j];}>" +% if (extinfo->Selected(j, extepgvalues[i])) { + selected="selected" +% } + > <{ reply.out() << extinfo->Values()[j]; }> </option> +% } + </select> + </td> + </tr> % } - </table> - </div> - </td> - </tr> -% } - - - <!-- Use channel --> - <tr> - <td class="label"><$ tr("Use channel" ) $>:</td> - <td> - - <select onchange="changedchannelmode(this)" name="usechannel" size="1" id="channel_mode"> - <option value="0" <{ SELECTIF(usechannel == 0) }> ><$ tr("no") $></option> - <option value="1" <{ SELECTIF(usechannel == 1) }> ><$ tr("interval") $></option> - <option value="2" <{ SELECTIF(usechannel == 2) }> ><$ tr("channel group") $></option> - <option value="3" <{ SELECTIF(usechannel == 3) }> ><$ tr("only FTA") $></option> - </select> - - <div id="channelinterval" style="display: none;" class="dependent"> - <$ tr("from channel" ) $>: - <& channels_widget name=("channelfrom") channelid=(true) selected=(channelfrom) &><br /> - <$ tr("to channel" ) $>: - <& channels_widget name=("channelto") channelid=(true) selected=(channelto) &> - </div> - - <div id="channelgroup" style="display: none"> -% if (channelGroups.size() > 0) { - <select name="changrpsel" size="1" id="changrpsel"> -% int i=0; for (ChannelGroups::iterator changrp = channelGroups.begin(); changrp != channelGroups.end(); ++changrp, i++) { - <option value="<$ changrp->Name() $>" <{ SELECTIF(changrpsel == changrp->Name()) }> ><$ changrp->Name() $></option> -% } - </select> -% } - </div> - </td> - </tr> - - <!-- Use time --> - <tr> - <td class="label"><$ tr("Use time") $>:</td> - <td> - <input type="checkbox" name="usetime" value="1" <{ CHECKIF(usetime) }> onclick="changedusetime(this)" id="usetime" /> - <div id="timesettings" style="display: none"> - <table border="0" cellpadding="0" cellspacing="0" class="dependent"> - <tr> - <td><$ tr("Start after") $>:</td> - <td> - <input type="text" size="2" maxlength="2" name="start_h" value="<$ start_h $>" /> : <input type="text" size="2" maxlength="2" name="start_m" value="<$ start_m $>" /> - <& tooltip.help text=(tr("The time the show may start at the earliest")) &> - </td> - </tr> - <tr> - <td><$ tr("Start before") $>:</td> - <td> - <input type="text" size="2" maxlength="2" name="stop_h" value="<$ stop_h $>" /> : <input type="text" size="2" maxlength="2" name="stop_m" value="<$ stop_m $>" /> - <& tooltip.help text=(tr("The time the show may start at the latest")) &> - </td> - </tr> - </table> - </div> - </td> - </tr> - - <!-- Use duration --> - <tr> - <td class="label"><$ tr("Use duration") $>:</td> - <td> - <input type="checkbox" name="useduration" value="1" <{ CHECKIF(useduration) }> onclick="changeduseduration(this)" id="useduration" /> - <div id="durationsettings" style="display: none"> - <table border="0" cellpadding="0" cellspacing="0" class="dependent"> - <tr> - <td><$ tr("Min. duration") $>:</td> - <td><input type="text" size="3" maxlength="3" name="durationmin" value="<$ durationmin $>" /> min</td> - </tr> - <tr> - <td><$ tr("Max. duration") $>:</td> - <td><input type="text" size="3" maxlength="3" name="durationmax" value="<$ durationmax $>" /> min</td> - </tr> - </table> - </div> - </td> - </tr> - - <!-- Use weekday --> - <tr> - <td class="label"><$ tr("Use day of week") $>:</td> - <td> - <input type="checkbox" name="useweekday" value="1" <{ CHECKIF(useweekday) }> onclick="changeduseweekday(this)" id="useweekday" /> - <div id="weekdaysettings" style="display: none" class="dependent"> - <input type="checkbox" name="wday_mon" value="1" <{ CHECKIF(wday_mon) }> /> <$ tr("Monday") $> - <input type="checkbox" name="wday_tue" value="1" <{ CHECKIF(wday_tue) }> /> <$ tr("Tuesday") $> - <input type="checkbox" name="wday_wed" value="1" <{ CHECKIF(wday_wed) }> /> <$ tr("Wednesday") $> - <input type="checkbox" name="wday_thu" value="1" <{ CHECKIF(wday_thu) }> /> <$ tr("Thursday") $> - <input type="checkbox" name="wday_fri" value="1" <{ CHECKIF(wday_fri) }> /> <$ tr("Friday") $> - <input type="checkbox" name="wday_sat" value="1" <{ CHECKIF(wday_sat) }> /> <$ tr("Saturday") $> - <input type="checkbox" name="wday_sun" value="1" <{ CHECKIF(wday_sun) }> /> <$ tr("Sunday") $> - </div> - </td> - </tr> - - <!-- Use blacklists --> - <tr> - <td class="label"><$ tr("Use blacklists" ) $>:</td> - <td> - <select onchange="changedblacklistmode(this)" name="blacklistmode" size="1" id="blacklistmode"> - <option value="0" <{ SELECTIF(blacklistmode == 0) }> ><$ tr("no") $></option> - <option value="1" <{ SELECTIF(blacklistmode == 1) }> ><$ tr("Selection") $></option> - <option value="2" <{ SELECTIF(blacklistmode == 2) }> ><$ tr("all") $></option> - </select> - <div class="dependent" id="blacklistmodesettings" style="display: none"> -% if (blacklists.size() > 0) { - <select name="blacklists" multiple="multiple" size="5" onchange="changedblacklistsel(this)"> -% int i=0; for (Blacklists::iterator blacklist = blacklists.begin(); blacklist != blacklists.end(); ++blacklist, i++) { - <option value="<$ blacklist->Id() $>" <{ SELECTIF(searchtimer && searchtimer->BlacklistSelected(blacklist->Id())) }>><$ blacklist->Search() $></option> +% } + </table> + </div> + </td> + </tr> +% } + + + <!-- Use channel --> + <tr> + <td class="label"><$ tr("Use channel" ) $>:</td> + <td> + + <select onchange="changedchannelmode(this)" name="usechannel" size="1" id="channel_mode"> + <option value="0" <{ SELECTIF(usechannel == 0) }> ><$ tr("no") $></option> + <option value="1" <{ SELECTIF(usechannel == 1) }> ><$ tr("interval") $></option> + <option value="2" <{ SELECTIF(usechannel == 2) }> ><$ tr("channel group") $></option> + <option value="3" <{ SELECTIF(usechannel == 3) }> ><$ tr("only FTA") $></option> + </select> + + <div id="channelinterval" style="display: none;" class="dependent"> + <$ tr("from channel" ) $>: + <& channels_widget name=("channelfrom") channelid=(true) selected=(channelfrom) &><br /> + <$ tr("to channel" ) $>: + <& channels_widget name=("channelto") channelid=(true) selected=(channelto) &> + </div> + + <div id="channelgroup" style="display: none"> +% if (channelGroups.size() > 0) { + <select name="changrpsel" size="1" id="changrpsel"> +% int i=0; for (ChannelGroups::iterator changrp = channelGroups.begin(); changrp != channelGroups.end(); ++changrp, i++) { + <option value="<$ changrp->Name() $>" <{ SELECTIF(changrpsel == changrp->Name()) }> ><$ changrp->Name() $></option> % } - </select> + </select> % } - </div> - </td> - </tr> - </table> - </div> - </td> - <td class="border" style="border-right: 1px solid black"></td> + </div> + </td> + </tr> + + <!-- Use time --> + <tr> + <td class="label"><$ tr("Use time") $>:</td> + <td> + <input type="checkbox" name="usetime" value="1" <{ CHECKIF(usetime) }> onclick="changedusetime(this)" id="usetime" /> + <div id="timesettings" style="display: none"> + <table border="0" cellpadding="0" cellspacing="0" class="dependent"> + <tr> + <td><$ tr("Start after") $>:</td> + <td> + <input type="text" size="2" maxlength="2" name="start_h" value="<$ start_h $>" /> : <input type="text" size="2" maxlength="2" name="start_m" value="<$ start_m $>" /> + <& tooltip.help text=(tr("The time the show may start at the earliest")) &> + </td> + </tr> + <tr> + <td><$ tr("Start before") $>:</td> + <td> + <input type="text" size="2" maxlength="2" name="stop_h" value="<$ stop_h $>" /> : <input type="text" size="2" maxlength="2" name="stop_m" value="<$ stop_m $>" /> + <& tooltip.help text=(tr("The time the show may start at the latest")) &> + </td> + </tr> + </table> + </div> + </td> + </tr> + + <!-- Use duration --> + <tr> + <td class="label"><$ tr("Use duration") $>:</td> + <td> + <input type="checkbox" name="useduration" value="1" <{ CHECKIF(useduration) }> onclick="changeduseduration(this)" id="useduration" /> + <div id="durationsettings" style="display: none"> + <table border="0" cellpadding="0" cellspacing="0" class="dependent"> + <tr> + <td><$ tr("Min. duration") $>:</td> + <td><input type="text" size="3" maxlength="3" name="durationmin" value="<$ durationmin $>" /> min</td> + </tr> + <tr> + <td><$ tr("Max. duration") $>:</td> + <td><input type="text" size="3" maxlength="3" name="durationmax" value="<$ durationmax $>" /> min</td> + </tr> + </table> + </div> + </td> + </tr> + + <!-- Use weekday --> + <tr> + <td class="label"><$ tr("Use day of week") $>:</td> + <td> + <input type="checkbox" name="useweekday" value="1" <{ CHECKIF(useweekday) }> onclick="changeduseweekday(this)" id="useweekday" /> + <div id="weekdaysettings" style="display: none" class="dependent"> + <input type="checkbox" name="wday_mon" value="1" <{ CHECKIF(wday_mon) }> /> <$ tr("Monday") $> + <input type="checkbox" name="wday_tue" value="1" <{ CHECKIF(wday_tue) }> /> <$ tr("Tuesday") $> + <input type="checkbox" name="wday_wed" value="1" <{ CHECKIF(wday_wed) }> /> <$ tr("Wednesday") $> + <input type="checkbox" name="wday_thu" value="1" <{ CHECKIF(wday_thu) }> /> <$ tr("Thursday") $> + <input type="checkbox" name="wday_fri" value="1" <{ CHECKIF(wday_fri) }> /> <$ tr("Friday") $> + <input type="checkbox" name="wday_sat" value="1" <{ CHECKIF(wday_sat) }> /> <$ tr("Saturday") $> + <input type="checkbox" name="wday_sun" value="1" <{ CHECKIF(wday_sun) }> /> <$ tr("Sunday") $> + </div> + </td> </tr> + + <!-- Use blacklists --> <tr> - <td class="border" style="border-left: 1px solid black"></td> - <td class="buttonpanel" colspan="2"> - <button class="green" type="submit" name="save" onclick="return checksearch();"><$ tr("Search") $></button> + <td class="label"><$ tr("Use blacklists" ) $>:</td> + <td> + <select onchange="changedblacklistmode(this)" name="blacklistmode" size="1" id="blacklistmode"> + <option value="0" <{ SELECTIF(blacklistmode == 0) }> ><$ tr("no") $></option> + <option value="1" <{ SELECTIF(blacklistmode == 1) }> ><$ tr("Selection") $></option> + <option value="2" <{ SELECTIF(blacklistmode == 2) }> ><$ tr("all") $></option> + </select> + <div class="dependent" id="blacklistmodesettings" style="display: none"> +% if (blacklists.size() > 0) { + <select name="blacklists" multiple="multiple" size="5" onchange="changedblacklistsel(this)"> +% int i=0; for (Blacklists::iterator blacklist = blacklists.begin(); blacklist != blacklists.end(); ++blacklist, i++) { + <option value="<$ blacklist->Id() $>" <{ SELECTIF(searchtimer && searchtimer->BlacklistSelected(blacklist->Id())) }>><$ blacklist->Search() $></option> +% } + </select> +% } + </div> </td> - <td class="border" style="border-right: 1px solid black"></td> </tr> - </table> - </form> - </div> + </table> + </div> + </td> + <td class="border" style="border-right: 1px solid black"></td> + </tr> + <tr> + <td class="border" style="border-left: 1px solid black"></td> + <td class="buttonpanel" colspan="2"> + <button class="green" type="submit" name="save" onclick="return checksearch();"><$ tr("Search") $></button> + </td> + <td class="border" style="border-right: 1px solid black"></td> + </tr> + </table> + </form> </div> </body> </html> diff --git a/pages/searchtimers.ecpp b/pages/searchtimers.ecpp index 41284c0..81c53aa 100644 --- a/pages/searchtimers.ecpp +++ b/pages/searchtimers.ecpp @@ -34,13 +34,12 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <& pageelems.doc_type &> <html> <head> - <& pageelems.ajax_js &> <title>VDR-Live - <$ pageTitle $></title> - <link rel="stylesheet" type="text/css" href="/styles.css" /> + <link rel="stylesheet" type="text/css" href="styles.css" /> <& tooltip.javascript var=("domTT_styleClass") value=("domTTepg") &> <& pageelems.ajax_js &> </head> - <body onload="LiveStatusAjaxRequest('infobox.html', 'infobox')"> + <body onload="<& pageelems.infobox_start_update &>"> <& pageelems.logo &> <& menu active=("searchtimers") component=("searchtimers.searchtimer_actions")> <div class="inhalt"> diff --git a/pages/timers.ecpp b/pages/timers.ecpp index db45dd6..a910224 100644 --- a/pages/timers.ecpp +++ b/pages/timers.ecpp @@ -52,7 +52,7 @@ if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); <& tooltip.javascript var=("domTT_styleClass") value=("domTTepg") &> <& pageelems.ajax_js &> </head> - <body onload="LiveStatusAjaxRequest('infobox.html', 'infobox')"> + <body onload="<& pageelems.infobox_start_update &>"> <& pageelems.logo &> <& menu active=("timers") component=("timers.timer_actions")> <div class="inhalt"> diff --git a/pages/tooltip.ecpp b/pages/tooltip.ecpp index 8dedc49..a52eb7b 100644 --- a/pages/tooltip.ecpp +++ b/pages/tooltip.ecpp @@ -23,7 +23,7 @@ value[]; <%args> text; </%args> - onmouseover="domTT_activate(this, event, 'predefined', 'tipHint', 'content', '<$ text $>');" +<%cpp> { </%cpp> onmouseover="domTT_activate(this, event, 'predefined', 'tipHint', 'content', '<$ text $>');" <%cpp> } </%cpp> </%def> <%def info> diff --git a/pages/whats_on.ecpp b/pages/whats_on.ecpp index 68ad112..2e81e23 100644 --- a/pages/whats_on.ecpp +++ b/pages/whats_on.ecpp @@ -43,7 +43,7 @@ if (type == "now") { <& tooltip.javascript var=("domTT_styleClass") value=("domTTepg") &> <& pageelems.ajax_js &> </head> - <body onload="LiveStatusAjaxRequest('infobox.html', 'infobox')"> + <body onload="<& pageelems.infobox_start_update &>"> <& pageelems.logo &> <& menu active=(type) &> <div class="inhalt"> |