diff options
-rw-r--r-- | pages/edit_searchtimer.ecpp | 710 |
1 files changed, 710 insertions, 0 deletions
diff --git a/pages/edit_searchtimer.ecpp b/pages/edit_searchtimer.ecpp new file mode 100644 index 0000000..7328253 --- /dev/null +++ b/pages/edit_searchtimer.ecpp @@ -0,0 +1,710 @@ +<%pre> +#include <memory> +#include <vdr/channels.h> +#include <vdr/config.h> +#include <vdr/epg.h> +#include <vdr/i18n.h> +#include <iomanip> +#include "exception.h" +#include "tools.h" +#include "epgsearch.h" + +using namespace std; +using namespace vdrlive; + +</%pre> +<%args> + // input parameters + string searchtimerid; + // form parameters + string search = ""; + int mode = 0; + bool matchcase = false; + int tolerance = 1; + bool usetitle = false; + bool usesubtitle = false; + bool usedescr = false; + int usechannel = SearchTimer::NoChannel; + tChannelID channelidfrom; + tChannelID channelfrom; + tChannelID channelidto; + tChannelID channelto; + string changrpsel = ""; + bool usetime = false; + string start_h = "00"; + string start_m = "00"; + string stop_h = "00"; + string stop_m = "00"; + bool useduration = false; + int durationmin = 0; + int durationmax = 90; + bool useweekday = false; + bool wday_mon = false; + bool wday_tue = false; + bool wday_wed = false; + bool wday_thu = false; + bool wday_fri = false; + bool wday_sat = false; + bool wday_sun = false; + bool useinfavorites = false; + bool useassearchtimer = false; + int searchtimeraction = 0; + bool seriesrecording = false; + string directory = ""; + int delrecafterdays = 0; + int keeprecs = 0; + int pauseonrecs = 0; + int blacklistmode = 0; + string blacklistids[]; + int switchminbefore = 0; + bool useextepginfo = false; + string extepgvalues[]; + bool avoidrepeats = false; + bool comparetitle = false; + bool comparesubtitle = false; + bool comparesummary = false; + unsigned avoidrepeatscatselected[]; + int priority = 0; + int lifetime = 0; + int marginstart = 0; + int marginstop = 0; + bool usevps = false; + string blacklistids_internal; +</%args> +<%request scope="page"> +SearchTimer* searchtimer; +ExtEPGInfos extEPGInfos; +ChannelGroups channelGroups; +Blacklists blacklists; + +</%request> +<%include>page_init.eh</%include> +<%cpp> + +#define SELECTIF(x) reply.out() << ( (x) ? "selected=\"selected\"" : "" ); +#define CHECKIF(x) reply.out() << ( (x) ? "checked=\"checked\"" : "" ); + + SearchTimers searchtimers; + + searchtimer = 0; + if ( !searchtimerid.empty() ) { + searchtimer = searchtimers.GetByTimerId( searchtimerid ); + if ( searchtimer == 0 ) + throw HtmlError( tr("Couldn't find searchtimer. Maybe you mistyped your request?") ); + } + + if ( request.getMethod() == "POST" ) { + if ( !searchtimerid.empty() ) + searchtimer = searchtimers.GetByTimerId( searchtimerid ); + else + searchtimer = new SearchTimer; + + searchtimer->SetSearch(search); + searchtimer->SetSearchMode(mode); + searchtimer->SetTolerance(tolerance); + searchtimer->SetMatchCase(matchcase); + searchtimer->SetUseTitle(usetitle); + searchtimer->SetUseSubtitle(usesubtitle); + searchtimer->SetUseDescription(usedescr); + searchtimer->SetUseExtEPGInfo(useextepginfo); + if (useextepginfo) + { + vector< string > infos; + unsigned int i=0; + for (ExtEPGInfos::iterator extinfo = extEPGInfos.begin(); extinfo != extEPGInfos.end(); ++extinfo, i++) + { + ostringstream os; + os << extinfo->Id() << "#" << (i<extepgvalues.size()?extepgvalues[i]:""); + infos.push_back(os.str()); + } + searchtimer->SetExtEPGInfo(infos); + } + searchtimer->SetUseChannel((SearchTimer::eUseChannel)usechannel); + if (usechannel == SearchTimer::Interval) + { + searchtimer->SetChannelMin(channelfrom); + searchtimer->SetChannelMax(channelto); + } + 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) + { + int dayofweek = 0; + if (wday_sun) dayofweek |= 0x01; + if (wday_mon) dayofweek |= 0x02; + if (wday_tue) dayofweek |= 0x04; + if (wday_wed) dayofweek |= 0x08; + if (wday_thu) dayofweek |= 0x10; + if (wday_fri) dayofweek |= 0x20; + if (wday_sat) dayofweek |= 0x40; + searchtimer->SetDayOfWeek(-dayofweek); + } + searchtimer->SetUseInFavorites(useinfavorites); + searchtimer->SetUseAsSearchTimer(useassearchtimer); + searchtimer->SetSearchTimerAction(searchtimeraction); + searchtimer->SetUseSeriesRecording(seriesrecording); + searchtimer->SetDirectory(directory); + searchtimer->SetDelRecsAfterDays(delrecafterdays); + searchtimer->SetKeepRecs(keeprecs); + searchtimer->SetPauseOnRecs(pauseonrecs); + searchtimer->SetBlacklistMode(blacklistmode); + if (blacklistmode == 1) + searchtimer->ParseBlacklist(blacklistids_internal); + + searchtimer->SetSwitchMinBefore(switchminbefore); + + searchtimer->SetAvoidRepeats(avoidrepeats); + if (avoidrepeats) + { + searchtimer->SetCompareTitle(comparetitle); + searchtimer->SetCompareSubtitle(comparesubtitle); + searchtimer->SetCompareSummary(comparesummary); + } + 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); + + searchtimers.Save(searchtimer); + return reply.redirect("searchtimers.html"); + + } + pageTitle = searchtimer ? tr("Edit search timer") : tr("New search timer"); + + if ( searchtimer != 0 ) { + search = searchtimer->Search(); + mode = searchtimer->SearchMode(); + tolerance = searchtimer->Tolerance(); + matchcase = searchtimer->MatchCase(); + usetitle = searchtimer->UseTitle(); + usesubtitle = searchtimer->UseSubtitle(); + usedescr = searchtimer->UseDescription(); + usechannel = searchtimer->UseChannel(); + channelfrom = searchtimer->ChannelMin(); + channelto = searchtimer->ChannelMax(); + if (!channelto.Valid() && channelfrom.Valid()) + channelto = channelfrom; + if (usechannel == SearchTimer::Group) + changrpsel = searchtimer->ChannelText(); + usetime = searchtimer->UseTime(); + ostringstream os; + os << setw(2) << setfill('0') << ( searchtimer->StartTime() / 100 ) % 100; + start_h = os.str(); + os.str(""); + os << setw(2) << setfill('0') << searchtimer->StartTime() % 100; + start_m = os.str(); + os.str(""); + os << setw(2) << setfill('0') << ( searchtimer->StopTime() / 100 ) % 100; + stop_h = os.str(); + os.str(""); + os << setw(2) << setfill('0') << searchtimer->StopTime() % 100; + stop_m = os.str(); + useduration = searchtimer->UseDuration(); + if (useduration) + { + durationmin = searchtimer->MinDuration(); + durationmax = searchtimer->MaxDuration(); + } + useweekday = searchtimer->UseDayOfWeek(); + if (useweekday) + { + int dayofweek = searchtimer->DayOfWeek(); + if (dayofweek >= 0) + { + wday_sun = (dayofweek == 0); + wday_mon = (dayofweek == 1); + wday_tue = (dayofweek == 2); + wday_wed = (dayofweek == 3); + wday_thu = (dayofweek == 4); + wday_fri = (dayofweek == 5); + wday_sat = (dayofweek == 6); + } + 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; + } + } + useinfavorites = searchtimer->UseInFavorites(); + useassearchtimer = searchtimer->UseAsSearchTimer(); + searchtimeraction = searchtimer->SearchTimerAction(); + seriesrecording = searchtimer->UseSeriesRecording(); + directory = searchtimer->Directory(); + delrecafterdays = searchtimer->DelRecsAfterDays(); + keeprecs = searchtimer->KeepRecs(); + pauseonrecs = searchtimer->PauseOnRecs(); + blacklistmode = searchtimer->BlacklistMode(); + switchminbefore = searchtimer->SwitchMinBefore(); + useextepginfo = searchtimer->UseExtEPGInfo(); + vector< string > infos = searchtimer->ExtEPGInfo(); + 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]:""); + } + else + extepgvalues.push_back(""); + } + avoidrepeats = searchtimer->AvoidRepeats(); + comparetitle = searchtimer->CompareTitle(); + comparesubtitle = searchtimer->CompareSubtitle(); + comparesummary = searchtimer->CompareSummary(); + for(unsigned int i=0; i<extEPGInfos.size(); i++) + { + bool selected = searchtimer->CompareCategories() & (1<<i); + avoidrepeatscatselected.push_back(selected); + } + priority = searchtimer->Priority(); + lifetime = searchtimer->Lifetime(); + marginstart = searchtimer->MarginStart(); + marginstop = searchtimer->MarginStop(); + usevps = searchtimer->UseVPS(); + } +</%cpp> +<& pageelems.doc_type &> +<html> + <head> + <& pageelems.ajax_js &> + <script type="text/javascript"><!-- + + function initform() + { + changedsearchmode(document.getElementById("search_mode")); + changedchannelmode(document.getElementById("channel_mode")); + changedusetime(document.getElementById("usetime")); + changeduseduration(document.getElementById("useduration")); + changeduseweekday(document.getElementById("useweekday")); + changeduseassearchtimer(document.getElementById("useassearchtimer")); + changeduseextepginfo(document.getElementById("useextepginfo")); + changedavoidrepeats(document.getElementById("avoidrepeats")); + changedblacklistmode(document.getElementById("blacklistmode")); + } + function changedsearchmode(selection) + { + document.getElementById("tolerance").style.display = (selection.options[selection.selectedIndex].value == 5 ? "block" : "none"); + } + function changedchannelmode(selection) + { + document.getElementById("channelinterval").style.display = (selection.options[selection.selectedIndex].value == 1 ? "block" : "none"); + document.getElementById("channelgroup").style.display = (selection.options[selection.selectedIndex].value == 2 ? "block" : "none"); + } + function changedusetime(selection) + { + document.getElementById("timesettings").style.display = (selection.checked ? "block" : "none"); + } + function changeduseduration(selection) + { + document.getElementById("durationsettings").style.display = (selection.checked ? "block" : "none"); + } + function changeduseweekday(selection) + { + document.getElementById("weekdaysettings").style.display = (selection.checked ? "block" : "none"); + } + function changeduseassearchtimer(selection) + { + document.getElementById("searchtimermodesettings").style.display = (selection.checked ? "block" : "none"); + changedsearchtimermode(document.getElementById("searchtimer_mode")); + } + function changedsearchtimermode(selection) + { + document.getElementById("searchtimermode1settings").style.display = + (selection.options[selection.selectedIndex].value == 0 & + document.getElementById("useassearchtimer").checked ? "block" : "none"); + document.getElementById("searchtimermode3settings").style.display = + (selection.options[selection.selectedIndex].value == 2 & + document.getElementById("useassearchtimer").checked ? "block" : "none"); + } + function changeduseextepginfo(selection) + { + document.getElementById("use_extepg_settings").style.display = (selection.checked ? "block" : "none"); + } + function changedextepginfo(selection) + { + var i; + document.getElementById(selection.name + "_value").value = ""; + 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; + } + } + } + function changedavoidrepeats(selection) + { + document.getElementById("avoidrepeatssettings").style.display = (selection.checked ? "block" : "none"); + } + function changedblacklistmode(selection) + { + document.getElementById("blacklistmodesettings").style.display = + (selection.options[selection.selectedIndex].value == 1 ? "block" : "none"); + } + function changedblacklistsel(selection) + { + var i; + document.getElementById("blacklistids_internal").value = ""; + 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; + } + } + } + //--></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") component=("edit_searchtimer.header") &> + </div> + <div class="right_area"> + <div class="inhalt"> + <form method="POST" name="edit_searchtimer" action="edit_searchtimer.ecpp"> + <input type="hidden" name="searchtimerid" value="<$ searchtimerid $>"/> + <input type="hidden" name="blacklistids_internal" value="<$ blacklistids_internal $>" id="blacklistids_internal"/> + <table class="edit" cellpadding="0" cellspacing="0"> + + <!-- Search term --> + <tr class="active"> + <td class="label"><$ tr("Search term") $>:</td> + <td><input type="text" name="search" value="<$ search $>" size="90" /></td> + </tr> + + <!-- 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 class="active"> + <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 class="active"> + <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> +% } +% } + </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"> + <$ tr("from channel" ) $>: + <& channels_widget name=("channelfrom") channelid=(true) selected=(channelfrom) &> + <$ 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 class="active"> + <div style="float:left max-width:10%; margin-right:20px"> + <td class="label"><$ tr("Use time") $>:</td> + <td><input type="checkbox" name="usetime" value="1" <{ CHECKIF(usetime) }> + onclick="changedusetime(this)" id="usetime" /> + </div> + <div id="timesettings" style="display: none"> + <table border="0" cellpadding="0" cellspacing="0"> + <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 $>" /></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 $>" /></td> + </tr> + </table> + </div> + </tr> + + <!-- Use duration --> + <tr> + <div style="float:left max-width:10%; margin-right:20px"> + <td class="label"><$ tr("Use duration") $>:</td> + <td><input type="checkbox" name="useduration" value="1" <{ CHECKIF(useduration) }> + onclick="changeduseduration(this)" id="useduration" /> + </div> + <div id="durationsettings" style="display: none"> + <table border="0" cellpadding="0" cellspacing="0"> + <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> + </tr> + + <!-- Use weekday --> + <tr class="active"> + <div style="float:left max-width:10%; margin-right:20px"> + <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> + <div id="weekdaysettings" style="display: none"> + <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") $> + </td> + </div> + </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 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->BlacklistSelected(blacklist->Id())) }>><$ blacklist->Search() $></option> +% } + </select> +% } + </div> + </td> + </tr> + + <!-- Use in favorites menu --> + <tr class="active"> + <td class="label"><$ tr("Use in favorites menu") $>:</td> + <td><input type="checkbox" name="useinfavorites" + value="1" <{ CHECKIF(useinfavorites) }>/></td> + </tr> + + <!-- Use as search timer --> + <tr> + <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"/> + </div> + <div id="searchtimermodesettings" style="display: none"> + <select onchange="changedsearchtimermode(this)" name="searchtimeraction" + size="1" id="searchtimer_mode"> + <option value="0" <{ SELECTIF(searchtimeraction == 0) }> ><$ tr("Record") $></option> + <option value="1" <{ SELECTIF(searchtimeraction == 1) }> ><$ tr("Announce only") $></option> + <option value="2" <{ SELECTIF(searchtimeraction == 2) }> ><$ tr("Switch only") $></option> + </select> + </div> + <div id="searchtimermode1settings" style="display: none"> + <table border="0" cellpadding="0" cellspacing="0"> + <tr class="active"> + <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" value="<$ directory $>" size="70" /></td> + </tr> + <tr class="active"> + <td><$ tr("Delete recordings after ... days") $>:</td> + <td><input type="text" name="delrecafterdays" id="delrecafterdays" size="2" + value="<$ delrecafterdays $>"/> + <$ tr("Keep ... recordings") $>: + <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 class="active"> + <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"> + <tr> + <td><$ tr("Compare title" ) $>:</td> + <td><input type="checkbox" name="comparetitle" value="1" <{ CHECKIF(comparetitle) }>/> + </tr> + <tr class= "active"> + <td><$ tr("Compare subtitle" ) $>:</td> + <td><input type="checkbox" name="comparesubtitle" value="1" <{ CHECKIF(comparesubtitle) }>/> + </tr> + <tr> + <td><$ tr("Compare summary" ) $>:</td> + <td><input type="checkbox" name="comparesummary" value="1" <{ CHECKIF(comparesummary) }>/> + </tr> +% if (extEPGInfos.size() > 0) { +% int i=0; for (ExtEPGInfos::iterator extinfo = extEPGInfos.begin(); extinfo != extEPGInfos.end(); ++extinfo, i++) { + <tr valign="top"> + <td align="left" valign="top"><$ tr("Compare" ) $> <$ extinfo->Name() $>:</td> + <td><input type="checkbox" name="avoidrepeatscatselected" value="<$ i+1 $>" + <{ CHECKIF(avoidrepeatscatselected[i]) }>/></td> + </tr> +% } +% } + </table> + </div> + </tr> + <tr> + <td><$ tr("Priority") $>:</td> + <td><input type="text" name="priority" size="2" value="<$ priority $>"/></td> + </tr> + <tr class="active"> + <td><$ tr("Priority") $>:</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 class="active"> + <td><$ tr("Setup.Recording$Margin at stop (min)") $>:</td> + <td><input type="text" name="marginstop" size="2" value="<$ marginstop $>"/></td> + </tr> + <tr> + <td><$ tr("Use VPS") $>:</td> + <td><input type="checkbox" name="usevps" value="1" <{ CHECKIF(usevps) }>/></td> + </tr> + </table> + </div> + <div id="searchtimermode3settings" style="display: none"> + <table border="0" cellpadding="0" cellspacing="0"> + <tr class="active"> + <td><$ tr("Switch ... minutes before start") $>:</td> + <td><input type="text" name="switchminbefore" id="switchminbefore" size="2" value="<$ switchminbefore $>"/></td> </tr> + </table> + </div> + </td> + </tr> + + <tr class="active"> + <td class="buttonpanel" colspan="2"><button name="submit" type="submit"><$ tr("Save") $></button></td> + </tr> + </table> + </form> + </div> + </div> + </body> +</html> +<%include>page_exit.eh</%include> + +<%def header> +<span><$ (searchtimer ? tr("Edit search timer") : tr("New search timer")) $></span> +</%def> |