summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pages/edit_searchtimer.ecpp710
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 $>"/>&nbsp;&nbsp;
+ <$ 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>