summaryrefslogtreecommitdiff
path: root/skins/html/widgets
diff options
context:
space:
mode:
authoranbr <vdr07@deltab.de>2011-10-08 07:43:51 +0200
committeranbr <vdr07@deltab.de>2011-10-08 07:43:51 +0200
commit85d4bfa04ce28b5ec3eb0054306c43bc59c55128 (patch)
treed7878021068d70e2a4ab3044beb5f770a57fc980 /skins/html/widgets
parenta71b70567ed73853367d972a95d2a346b2f93989 (diff)
downloadxxv-85d4bfa04ce28b5ec3eb0054306c43bc59c55128.tar.gz
xxv-85d4bfa04ce28b5ec3eb0054306c43bc59c55128.tar.bz2
Merge skins into common directory
Diffstat (limited to 'skins/html/widgets')
-rw-r--r--skins/html/widgets/checkbox.tmpl17
-rw-r--r--skins/html/widgets/confirm.tmpl12
-rw-r--r--skins/html/widgets/date.tmpl32
-rw-r--r--skins/html/widgets/dir.tmpl20
-rw-r--r--skins/html/widgets/err.tmpl2
-rw-r--r--skins/html/widgets/file.tmpl20
-rw-r--r--skins/html/widgets/footer.tmpl61
-rw-r--r--skins/html/widgets/formEnd.tmpl11
-rw-r--r--skins/html/widgets/formStart.tmpl10
-rw-r--r--skins/html/widgets/hidden.tmpl2
-rw-r--r--skins/html/widgets/host.tmpl23
-rw-r--r--skins/html/widgets/integer.tmpl9
-rw-r--r--skins/html/widgets/link.tmpl2
-rw-r--r--skins/html/widgets/list.tmpl47
-rw-r--r--skins/html/widgets/littlemenu.tmpl12
-rw-r--r--skins/html/widgets/menu.tmpl21
-rw-r--r--skins/html/widgets/message.tmpl4
-rw-r--r--skins/html/widgets/password.tmpl11
-rw-r--r--skins/html/widgets/player.tmpl187
-rw-r--r--skins/html/widgets/radio.tmpl12
-rw-r--r--skins/html/widgets/redirect.tmpl4
-rw-r--r--skins/html/widgets/referer.tmpl8
-rw-r--r--skins/html/widgets/remote.tmpl177
-rw-r--r--skins/html/widgets/start.tmpl30
-rw-r--r--skins/html/widgets/string.tmpl16
-rw-r--r--skins/html/widgets/table.tmpl47
-rw-r--r--skins/html/widgets/textfield.tmpl17
-rw-r--r--skins/html/widgets/time.tmpl16
-rw-r--r--skins/html/widgets/wait.tmpl34
29 files changed, 864 insertions, 0 deletions
diff --git a/skins/html/widgets/checkbox.tmpl b/skins/html/widgets/checkbox.tmpl
new file mode 100644
index 0000000..631db79
--- /dev/null
+++ b/skins/html/widgets/checkbox.tmpl
@@ -0,0 +1,17 @@
+<!-- string -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <table style="border:0px solid #000000;"><tr>
+ <?% c = 0 %?>
+ <?% FOREACH wert = data.choices %?>
+ <?% "</tr><tr>" IF (c mod 3) == 0 %?>
+ <td><input type="checkbox" name="<?% data.NAME %?>" value="<?% wert %?>" <?% "checked" IF val.grep("^${wert}").size %?> <?% FOREACH p = param.tags; "$p ";END %?>><?% wert %?></td>
+ <?% c = c + 1 %?>
+ <?% END %?>
+ </tr></table>
+ </td>
+</tr>
diff --git a/skins/html/widgets/confirm.tmpl b/skins/html/widgets/confirm.tmpl
new file mode 100644
index 0000000..5bb046b
--- /dev/null
+++ b/skins/html/widgets/confirm.tmpl
@@ -0,0 +1,12 @@
+<!-- confirm -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <nobr>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input type="radio" name="<?% data.NAME %?>" value="y" <?% "checked" IF val == 'y' %?>><?% gettext("yes") %?>&nbsp;
+ <input type="radio" name="<?% data.NAME %?>" value="n" <?% "checked" IF val == 'n' %?>><?% gettext("no") %?>
+ </td>
+</tr>
diff --git a/skins/html/widgets/date.tmpl b/skins/html/widgets/date.tmpl
new file mode 100644
index 0000000..565d3f2
--- /dev/null
+++ b/skins/html/widgets/date.tmpl
@@ -0,0 +1,32 @@
+<script type="text/javascript">
+
+var weekstring = '<?% gettext('MTWTFSS') %?>';
+var weekdays = weekstring.split('');
+
+function ch_input (checkbox, input) {
+ var txt = '';
+ for(var i=0;i<checkbox.length;++i) {
+ if(checkbox[i].checked) {
+ txt = txt + weekdays[i];
+ } else {
+ txt = txt + '-';
+ }
+ }
+ input.value = txt;
+}
+</script>
+<!-- date -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input type="text" name="<?% data.NAME %?>" value="<?% val %?>" <?% FOREACH p = param.tags; "$p ";END %?>><br/>
+ <?% valarr = val.split(''); z = 0 %?>
+ <?% FOREACH dd = gettext('Mon Tue Wed Thu Fri Sat Sun').split(' ') %?>
+ <input type="checkbox" name="Weekday" <?% "checked" IF ! val.search('^\d+') && valarr.$z != '-' %?> onchange='ch_input(this.form.Weekday, this.form.<?% data.NAME %?>)'><?% dd %?>
+ <?% z = z + 1;
+ END %?>
+ </td>
+</tr>
diff --git a/skins/html/widgets/dir.tmpl b/skins/html/widgets/dir.tmpl
new file mode 100644
index 0000000..fa41e1b
--- /dev/null
+++ b/skins/html/widgets/dir.tmpl
@@ -0,0 +1,20 @@
+<!-- dir -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input type="text" name="<?% data.NAME %?>" value="<?% val %?>" <?% FOREACH p = param.tags; "$p ";END %?>
+ onBlur="check<?% data.NAME %?>Dir()"><br>
+ <span id='id<?% param.count %?>'></span>
+ </td>
+</tr>
+<script>
+function check<?% data.NAME %?>Dir () {
+ checkValue(document.forms[0].<?% data.NAME %?>, 'id<?% param.count %?>', "isdir",
+ '<?% gettext("Directory does not exist!") %?>',
+ '<?% gettext("Directory exists!") %?>');
+}
+window.setTimeout("check<?% data.NAME %?>Dir()", 500);
+</script>
diff --git a/skins/html/widgets/err.tmpl b/skins/html/widgets/err.tmpl
new file mode 100644
index 0000000..69f24a3
--- /dev/null
+++ b/skins/html/widgets/err.tmpl
@@ -0,0 +1,2 @@
+<!-- MessageTemplate -->
+<br><h3><font color="red"><?% data.join('<br>') %?></font></h3><br>
diff --git a/skins/html/widgets/file.tmpl b/skins/html/widgets/file.tmpl
new file mode 100644
index 0000000..2c41fe4
--- /dev/null
+++ b/skins/html/widgets/file.tmpl
@@ -0,0 +1,20 @@
+<!-- file -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input type="text" name="<?% data.NAME %?>" value="<?% val %?>" <?% FOREACH p = param.tags; "$p ";END %?>
+ onBlur="check<?% data.NAME %?>File()"><br>
+ <span id='id<?% param.count %?>'></span>
+ </td>
+</tr>
+<script>
+function check<?% data.NAME %?>File () {
+ checkValue(document.forms[0].<?% data.NAME %?>, 'id<?% param.count %?>', "isfile",
+ '<?% gettext("File does not exist!") %?>',
+ '<?% gettext("File exists!") %?>');
+}
+window.setTimeout("check<?% data.NAME %?>File()", 500);
+</script>
diff --git a/skins/html/widgets/footer.tmpl b/skins/html/widgets/footer.tmpl
new file mode 100644
index 0000000..55980ce
--- /dev/null
+++ b/skins/html/widgets/footer.tmpl
@@ -0,0 +1,61 @@
+<?% IF !global.hidefooter %?>
+<?% IF verbose %?>
+ <?% data = bench %?>
+
+<div class="tab-pane" id="tabPane1">
+
+ <div class="tab-page" id="tabPage1">
+ <h2 class="tab">Last Logs</h2>
+
+ <table>
+ <?% FOREACH logline = llog(5) %?>
+ <tr><td>
+ <div style='font-size:10px'><?% logline %?><br></div>
+ </td></tr>
+ <?% END %?>
+ </table>
+
+ </div>
+
+ <div class="tab-page" id="tabPage2">
+ <h2 class="tab">Benchmark</h2>
+ <table width=100%>
+ <?% FOREACH n = data.keys.sort %?>
+ <?% NEXT IF data.$n > 1000 %?>
+ <?% ges = data.$n + ges %?>
+ <tr>
+ <td><div style='font-size:10px'><?% n %?></div></td>
+ <td><div style='font-size:10px'><?% data.$n %?></div></td>
+ </tr>
+ <?% END %?>
+ <tr>
+ <td><b><div style='font-size:10px'>Summary:</div></b></td>
+ <td><b><div style='font-size:10px'><?% ges %?></div></b></td>
+ </tr>
+ </table>
+ </div>
+
+ <div class="tab-page" id="tabPage3">
+ <h2 class="tab">Variables</h2>
+
+ <table><tr><td>
+ <pre><?% PERL %?>
+use Data::Dumper;
+print Dumper($stash->_dump_frame(5));
+ <?% END %?></pre>
+ </td></tr></table>
+
+ </div>
+
+</div>
+<?% END %?>
+
+<!-- ###### Tooltips ###### -->
+<div id="TOOLTIP"></div>
+
+<center class='footer'>
+<a href="http://xxv.berlios.de">XXV System</a> -- Version: <?% version %?>
+</center>
+<?% END; #global.hidefooter %?>
+ </body>
+</HTML>
diff --git a/skins/html/widgets/formEnd.tmpl b/skins/html/widgets/formEnd.tmpl
new file mode 100644
index 0000000..125126f
--- /dev/null
+++ b/skins/html/widgets/formEnd.tmpl
@@ -0,0 +1,11 @@
+<!-- FormEnd -->
+<tr><td colspan=2>&nbsp;</td></tr>
+<tr>
+ <td>
+ <input type='submit' value='<?% gettext("Apply") %?>'>&nbsp;
+ <input type='reset' value='<?% gettext("Reset") %?>'>&nbsp;
+ </td>
+ <td>&nbsp;</td>
+<tr>
+</form>
+</table>
diff --git a/skins/html/widgets/formStart.tmpl b/skins/html/widgets/formStart.tmpl
new file mode 100644
index 0000000..8e5bb25
--- /dev/null
+++ b/skins/html/widgets/formStart.tmpl
@@ -0,0 +1,10 @@
+<!-- FormStart -->
+<?% IF data %?>
+<h1><?% data %?></h1>
+<?% END %?>
+<table border='0' width='95%' style="margin-top:15px">
+<form method="post" action="?cmd=<?% cgi.param('cmd') %?>">
+ <input type='hidden' name='data' value='<?% cgi.param('data') %?>'>
+ <input type='hidden' name='__action' value='save'>
+
+ <?% INCLUDE 'widgets/referer.tmpl' %?>
diff --git a/skins/html/widgets/hidden.tmpl b/skins/html/widgets/hidden.tmpl
new file mode 100644
index 0000000..e641c54
--- /dev/null
+++ b/skins/html/widgets/hidden.tmpl
@@ -0,0 +1,2 @@
+<!-- hidden -->
+<input type="hidden" name="<?% data.NAME %?>" value="<?% cgi.param(data.NAME) || data.def %?>">
diff --git a/skins/html/widgets/host.tmpl b/skins/html/widgets/host.tmpl
new file mode 100644
index 0000000..cf90c8a
--- /dev/null
+++ b/skins/html/widgets/host.tmpl
@@ -0,0 +1,23 @@
+<!-- host -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input
+ type="text"
+ name="<?% data.NAME %?>"
+ value="<?% val %?>"
+ <?% FOREACH p = param.tags; "$p ";END %?>
+ onBlur="check<?% data.NAME %?>Host()"
+ ><br/>
+ <span id='id<?% param.count %?>'></span>
+ </td>
+</tr>
+<script>
+function check<?% data.NAME %?>Host () {
+ checkValue(document.forms[0].<?% data.NAME %?>, 'id<?% param.count %?>', 'getip', '<?% gettext("Host does not exist!") %?>', 'IP: %s');
+}
+window.setTimeout("check<?% data.NAME %?>Host()", 500);
+</script>
diff --git a/skins/html/widgets/integer.tmpl b/skins/html/widgets/integer.tmpl
new file mode 100644
index 0000000..bbde2c3
--- /dev/null
+++ b/skins/html/widgets/integer.tmpl
@@ -0,0 +1,9 @@
+<!-- integer -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <input type="text" name="<?% data.NAME %?>" value="<?% cgi.param(data.NAME) || data.def %?>" <?% FOREACH p = param.tags; "$p ";END %?>>
+ </td>
+</tr>
diff --git a/skins/html/widgets/link.tmpl b/skins/html/widgets/link.tmpl
new file mode 100644
index 0000000..5ac989f
--- /dev/null
+++ b/skins/html/widgets/link.tmpl
@@ -0,0 +1,2 @@
+<!-- Link -->
+<a href="<?% reentities(data.url) %?>">[<?% data.text %?>]</a>
diff --git a/skins/html/widgets/list.tmpl b/skins/html/widgets/list.tmpl
new file mode 100644
index 0000000..a4bdcf2
--- /dev/null
+++ b/skins/html/widgets/list.tmpl
@@ -0,0 +1,47 @@
+<!-- list -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <?% UNLESS val.max %?>
+ <?% values = val.join(',').split(',') %?>
+ <?% ELSE %?>
+ <?% values = val %?>
+ <?% END %?>
+ <?% IF data.options == 'multi' %?>
+ <select name="<?% data.NAME %?>" multiple size="10" <?% FOREACH p = param.tags; "$p ";END %?>>
+ <?% ELSE %?>
+ <select name="<?% data.NAME %?>" <?% FOREACH p = param.tags; "$p ";END %?>>
+ <?% END %?>
+ <?% FOREACH l = data.choices %?>
+ <?% sel = '' %?>
+ <?% dis = '' %?>
+ <?% FOREACH valch = values %?>
+ <?% IF valch == l.1 %?>
+ <?% sel = ' selected="selected"';LAST %?>
+ <?% END %?>
+ <?% END %?>
+ <?% FOREACH valch = data.disabled %?>
+ <?% IF valch == l.1 %?>
+ <?% dis = ' disabled="disabled"';LAST %?>
+ <?% END %?>
+ <?% END %?>
+ <?% IF l.2 && l.2 != optgroup %?>
+ <?% IF optgroup %?>
+ </optgroup>
+ <?% END %?>
+ <optgroup label="<?% optgroup = l.2;l.2 %?>">
+ <?% END %?>
+ <option value='<?% l.1 %?>'<?% sel %?><?% dis %?>><?% l.0 %?></option>
+ <?% END %?>
+ <?% IF optgroup %?>
+ </optgroup>
+ <?% END %?>
+ </select>
+ </td>
+</tr>
+
+<pre>
+</pre>
diff --git a/skins/html/widgets/littlemenu.tmpl b/skins/html/widgets/littlemenu.tmpl
new file mode 100644
index 0000000..8ae191f
--- /dev/null
+++ b/skins/html/widgets/littlemenu.tmpl
@@ -0,0 +1,12 @@
+<!-- LittleMenuTemplate -->
+
+<?% IF data.title %?>
+<h1><?% data.title %?></h1>
+<?% END %?>
+
+<?% FOREACH l = data.links %?>
+<?% "<b>" IF data.highlight == l.key %?>
+<a href="<?% l.value.link %?>">[<?% l.value.text %?>]</a>&nbsp;
+<?% "</b>" IF data.highlight == l.key %?>
+<?% END %?>
+<p>
diff --git a/skins/html/widgets/menu.tmpl b/skins/html/widgets/menu.tmpl
new file mode 100644
index 0000000..41bfc5f
--- /dev/null
+++ b/skins/html/widgets/menu.tmpl
@@ -0,0 +1,21 @@
+<!-- MenuTemplate -->
+<?% message = data.shift %?>
+<?% IF message %?>
+<h1><pre><?% gettext("ERROR")%?> : <?% message %?></pre></h1>
+<?% END %?>
+
+<ul>
+<?% FOREACH field = data %?>
+ <?% group = field.0; short = field.1; name = field.2; descr = field.3 %?>
+ <?% IF ! oldgroup.defined %?>
+<li><?% group %?><ul>
+ <?% ELSIF oldgroup != group && oldgroup.defined %?>
+</ul></li></ul>
+<ul><li><?% group %?><ul>
+ <?% END %?>
+<li><a href="?cmd=<?% name %?>" title="<?% descr %?>"><?% name %?></a></li>
+ <?% oldgroup = group %?>
+<?% END %?>
+</ul>
+</li>
+</ul>
diff --git a/skins/html/widgets/message.tmpl b/skins/html/widgets/message.tmpl
new file mode 100644
index 0000000..aa52e9b
--- /dev/null
+++ b/skins/html/widgets/message.tmpl
@@ -0,0 +1,4 @@
+<!-- MessageTemplate -->
+<?% IF param.tags; param.tags.first; END %?>
+<?% data.join('<br>') %?><br>
+<?% IF param.tags; param.tags.last; END %?>
diff --git a/skins/html/widgets/password.tmpl b/skins/html/widgets/password.tmpl
new file mode 100644
index 0000000..f6b043e
--- /dev/null
+++ b/skins/html/widgets/password.tmpl
@@ -0,0 +1,11 @@
+<!-- password -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input type="password" name="<?% data.NAME %?>" value="" <?% FOREACH p = param.tags; "$p ";END %?>><br/>
+ <input type="password" name="<?% data.NAME %?>" value="" <?% FOREACH p = param.tags; "$p ";END %?> title='<?% gettext("Repeat entry") %?>'>
+ </td>
+</tr>
diff --git a/skins/html/widgets/player.tmpl b/skins/html/widgets/player.tmpl
new file mode 100644
index 0000000..d6354e8
--- /dev/null
+++ b/skins/html/widgets/player.tmpl
@@ -0,0 +1,187 @@
+<!-- player -->
+<?% width = param.width %?>
+<?% height = param.height %?>
+<?% widget = param.widget %?>
+
+<?% IF info.http_useragent.match('.*MSIE.*') && !info.http_useragent.match('.*Opera.*');
+ msie = 1;
+ELSE;
+ msie = 0;
+END %?>
+
+
+
+<h1><?% param.title %?></h1>
+
+<?% IF widget == 'vlc' && !msie %?>
+
+<!-- vlc with mozilla -->
+<script language="javascript">
+<!--
+ function volume_up()
+ {
+ var previous = document.vlc.get_volume();
+ var newvolume = previous + 10;
+ if( newvolume > 200 ) newvolume = 200;
+ document.vlc.set_volume( newvolume );
+ var volume = document.getElementById("volume_status");
+ var current = document.vlc.get_volume();
+ volume.innerHTML = current + " %";
+ }
+
+ function volume_down()
+ {
+ var previous = document.vlc.get_volume();
+ var newvolume = previous - 10;
+ if( newvolume < 0 ) newvolume = 0;
+ document.vlc.set_volume( newvolume );
+ var current = document.vlc.get_volume();
+ volume.innerHTML = current + " %";
+ }
+ function status()
+ {
+ var play_status = document.getElementById("play_status");
+ play_status.innerHTML = document.vlc.isplaying()
+ ? "<?% gettext("Playing") %?>"
+ : "<?% gettext("Not playing") %?>";
+ setTimeout("status()", 1000 );
+ }
+//-->
+</script>
+<p align='center'>
+ <embed type="application/x-vlc-plugin"
+ pluginspage="http://www.videolan.org/vlc"
+ name="vlc"
+ autoplay="yes" loop="no" height="<?% height %?>" width="<?% width %?>"
+ target="<?% data %?>" />
+<br />
+ <input type="button" id="play" value="<?% gettext("Playback") %?>" onClick='document.vlc.play()' />
+ <input type="button" id="pause" value="<?% gettext("Pause") %?>" onClick='document.vlc.pause()' />
+ <input type="button" id="stop" value="<?% gettext("Stop") %?>" onClick='document.vlc.stop()' />
+ &nbsp;
+ <input type="button" id="quiet" value="<?% gettext("Decrease volume") %?>" onClick='volume_down()' />
+ <input type="button" id="loud" value="<?% gettext("Increase volume") %?>" onClick='volume_up()' />
+ <input type="button" id="mute" value="<?% gettext("Mute") %?>" onClick='document.vlc.mute()' />
+ &nbsp;
+ <input type="button" id="fullscreen" value="<?% gettext("Full screen") %?>" onClick='document.vlc.fullscreen()' />
+<br />
+ <table summary="">
+ <tr><td><?% gettext("Status") %?> : </td>
+ <td><span id="play_status"><?% gettext("Unknown") %?></span></td></tr>
+ <tr><td><?% gettext("Volume") %?> : </td><td><span id="volume_status"></span></td></tr>
+ </table>
+</p>
+
+<script language="javascript">
+<!--
+ var volume = document.getElementById("volume_status");
+ var current = document.vlc.get_volume();
+ volume.innerHTML = current + " %";
+ setTimeout("status()", 1 );
+//-->
+</script>
+
+
+<?% ELSIF widget == 'vlc' %?>
+
+<!-- vlc with activeX -->
+<p align='center'>
+ <object classid="clsid:E23FE9C6-778E-49D4-B537-38FCDE4887D8"
+ codebase="http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab"
+ height="<?% height %?>" width="<?% width %?>" id="vlc" events="True">
+ <param name="Src" value="<?% data %?>" />
+ <param name="ShowDisplay" value="True" />
+ <param name="Loop" value="False" />
+ <param name="AutoPlay" value="True" />
+ </object>
+<br />
+ <input type="button" id="play" value="<?% gettext("Playback") %?>" onClick='doPlayOrPause()' />
+ <input type="button" id="pause" value="<?% gettext("Pause") %?>" onClick='doPlayOrPause()' />
+ <input type="button" id="stop" value="<?% gettext("Stop") %?>" onClick='document.vlc.stop()' />
+ &nbsp;
+ <input type="button" id="mute" value="<?% gettext("Mute") %?>" onClick='document.vlc.toggleMute()' />
+<br />
+ <table summary="">
+ <tr><td><?% gettext("Status") %?> : </td>
+ <td><span id="play_status"><?% gettext("Unknown") %?></span></td></tr>
+ </table>
+</p>
+
+<script LANGUAGE="JScript">
+<!--
+var sliderTimerId = 0;
+
+function onPlay() {
+ document.getElementById("play_status").value = "<?% gettext("Playing") %?>";
+};
+function onPause() {
+ document.getElementById("play_status").value = "<?% gettext("Paused") %?>";
+};
+function onStop() {
+ document.getElementById("play_status").value = "<?% gettext("Not playing") %?>";
+};
+
+function doUpdate() {
+ if( vlc.Playing ) {
+ sliderTimerId = setTimeout("doUpdate()", 1000);
+ }
+ else {
+ onStop();
+ sliderTimerId = 0;
+ }
+};
+
+function doPlayOrPause() {
+ if( document.vlc.playing ) {
+ document.vlc.pause();
+ }
+ else {
+ document.vlc.play();
+ }
+};
+function vlc::play() {
+ if( ! sliderTimerId ) {
+ sliderTimerId = setTimeout("doUpdate()", 1000);
+ }
+ onPlay();
+};
+function vlc::pause() {
+ if( sliderTimerId ) {
+ clearTimeout(sliderTimerId)
+ sliderTimerId = 0;
+ }
+ onPause();
+};
+function vlc::stop() {
+ if( sliderTimerId ) {
+ clearTimeout(sliderTimerId)
+ sliderTimerId = 0;
+ }
+ onStop();
+};
+//-->
+</script>
+<?% ELSE %?>
+<!-- media player with activeX -->
+<p align='center'>
+ <object id="mediaPlayer" width="<?% width %?>" height="<?% height %?>"
+ classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"
+ codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"
+ standby="Loading Microsoft Windows Media Player components..." type="application/x-oleobject">
+ <param name="fileName" value="<?% data %?>" />
+ <param name="animationatStart" value="true" />
+ <param name="transparentatStart" value="true" />
+ <param name="autoStart" value="true" />
+ <param name="showControls" value="true" />
+ <param name="loop" value="true" />
+ <embed type="application/x-mplayer2"
+ pluginspage="http://microsoft.com/windows/mediaplayer/en/download/"
+ id="mediaPlayer" name="mediaPlayer" displaysize="4" autosize="-1"
+ bgcolor='darkblue' showcontrols="true" showtracker="-1"
+ showdisplay="0" showstatusbar="-1" videoborder3d="-1" width="<?% width %?>" height="<?% height %?>"
+ src="<?% data %?>" autostart="true" designtimesp="5311" loop="true">
+ </embed>
+ </object>
+</p>
+<?% END %?>
+
diff --git a/skins/html/widgets/radio.tmpl b/skins/html/widgets/radio.tmpl
new file mode 100644
index 0000000..acd42f5
--- /dev/null
+++ b/skins/html/widgets/radio.tmpl
@@ -0,0 +1,12 @@
+<!-- radio -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <?% FOREACH wert = data.choices %?>
+ <input type="radio" name="<?% data.NAME %?>" value="<?% wert %?>" <?% "checked" IF val == wert %?><?% FOREACH p = param.tags; " $p";END %?>><?% wert %?><br>
+ <?% END %?>
+ </td>
+</tr>
diff --git a/skins/html/widgets/redirect.tmpl b/skins/html/widgets/redirect.tmpl
new file mode 100644
index 0000000..60f4e73
--- /dev/null
+++ b/skins/html/widgets/redirect.tmpl
@@ -0,0 +1,4 @@
+<!-- Redirect -->
+<script type="text/javascript">
+ redirect('<?% reentities(data.url) %?>', '<?% data.wait ? data.wait : 1 %?>', '<?% data.parent %?>');
+</script>
diff --git a/skins/html/widgets/referer.tmpl b/skins/html/widgets/referer.tmpl
new file mode 100644
index 0000000..152158b
--- /dev/null
+++ b/skins/html/widgets/referer.tmpl
@@ -0,0 +1,8 @@
+ <?% command = cgi.param('cmd') %?>
+ <?% IF info.Referer.match("cmd=help") %?>
+ <input type='hidden' name='referer' value='?cmd=<?% cgi.param('cmd') %?>&data=<?% cgi.param('data') %?>'>
+ <?% ELSIF info.Referer.match("cmd=${command}") %?>
+ <input type='hidden' name='referer' value='<?% cgi.param('referer') %?>'>
+ <?% ELSE %?>
+ <input type='hidden' name='referer' value='<?% info.Referer %?>'>
+ <?% END %?>
diff --git a/skins/html/widgets/remote.tmpl b/skins/html/widgets/remote.tmpl
new file mode 100644
index 0000000..3204c74
--- /dev/null
+++ b/skins/html/widgets/remote.tmpl
@@ -0,0 +1,177 @@
+<!-- remote -->
+<?% IF cgi.param('monitor').defined;monitor = cgi.param('monitor');ELSE;monitor = param.monitor;END %?>
+<img src="images/trans.gif" name="switchimage" width="2" height="1">
+<form name="remoteform" onsubmit="changeInterval(document.remoteform.grabinterval.value); return false">
+
+<script language="javascript" type="text/javascript">
+<!--
+
+var interval = 5
+var last = 0;
+
+function post(url) {
+ var vdr = ( document.remoteform.vdr.options ? document.remoteform.vdr.options[document.remoteform.vdr.options.selectedIndex].value : document.remoteform.vdr.value );
+ // Hmm, brutal und gemein, das Laden der URL als Bild funktioniert...
+ var img = new Image();
+ img.src = url + '&__vdr=' + vdr;
+}
+
+function switch_channel(url) {
+ post(url);
+<?% IF monitor %?>
+ if(last + 1000 < Date.UTC()) {
+ grab();
+ }
+<?% END %?>
+}
+
+<?% IF monitor %?>
+function grab() {
+ if(document.remoteform.grabinterval.value > 0) {
+ Now = new Date();
+ var vdr = ( document.remoteform.vdr.options ? document.remoteform.vdr.options[document.remoteform.vdr.options.selectedIndex].value : document.remoteform.vdr.value );
+ document.livepicture.src = '?cmd=gdisplay&__vdr='+vdr+'&random=' + Now.getTime();
+ }
+ last = Date.UTC();
+}
+
+function changeInterval(newinterval) {
+ window.clearInterval(aktiv);
+ if(newinterval > 0) {
+ inter = newinterval * 1000;
+ aktiv = window.setInterval("grab()", inter);
+ }
+}
+
+inter = interval * 1000;
+aktiv = window.setInterval("grab()", inter);
+<?% END %?>
+-->
+</script>
+
+<style type="text/css" media="screen">
+<!--
+#small { font-weight: normal; width: 20px; height: 20px; font-size: 9px; font-family: Verdana, Arial, Geneva, Helvetica, sans-serif}
+-->
+</style>
+<?% USE date %?>
+<!-- remote -->
+<center>
+<table border=0 cellpadding=0 cellspacing=0>
+<tr>
+<?% IF monitor %?>
+ <td rowspan="14">
+ <img src="?cmd=gdisplay&random=<?% date.now %?>&amp;__vdr=<?% param.vdr %?>" width="<?% param.width %?>" height="<?% param.height %?>" name="livepicture">
+ </td>
+<?% END %?>
+ <td colspan="3"><nobr>
+ <input type="button" onclick="self.location.href='?cmd=r&monitor=<?% monitor ? 0 : 1 %?>'" name="monitor" value="<?% gettext("Monitor") %?>">
+ <input type="button" onclick="switch_channel('?cmd=remote&data=Power')" name="power" value="<?% gettext("Switch off") %?>">
+ </td>
+</tr>
+<tr>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=1')" type="button" name="1" value="1"></td>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=2')" type="button" name="2" value="2"></td>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=3')" type="button" name="3" value="3"></td>
+</tr>
+<tr>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=4')" type="button" name="4" value="4"></td>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=5')" type="button" name="5" value="5"></td>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=6')" type="button" name="6" value="6"></td>
+</tr>
+<tr>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=7')" type="button" name="7" value="7"></td>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=8')" type="button" name="8" value="8"></td>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=9')" type="button" name="9" value="9"></td>
+</tr>
+<tr>
+ <td>&nbsp;</td>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=Null')" type="button" name="0" value="0"></td>
+ <td>&nbsp;</td>
+</tr>
+<tr>
+ <td colspan="3" align="center"><nobr>
+ <input id='small' onclick="switch_channel('?cmd=remote&data=Red')" type="button" name="red" value=" " style="background:red">
+ <input id='small' onclick="switch_channel('?cmd=remote&data=Green')" type="button" name="green" value=" " style="background:green">
+ <input id='small' onclick="switch_channel('?cmd=remote&data=Yellow')" type="button" name="yellow" value=" " style="background:yellow">
+ <input id='small' onclick="switch_channel('?cmd=remote&data=Blue')" type="button" name="blue" value=" " style="background:blue">
+ </td>
+</tr>
+<tr>
+ <td>&nbsp;</td>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=Up')" type="button" name="up" value="^"></td>
+ <td>&nbsp;</td>
+</tr>
+<tr>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=Left')" type="button" name="left" value="<"></td>
+ <td align='center'><input onclick="switch_channel('?cmd=remote&data=Ok')" type="button" name="ok" value="<?% gettext("Ok") %?>"></td>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=Right')" type="button" name="right" value=">"></td>
+</tr>
+<tr>
+ <td>&nbsp;</td>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=Down')" type="button" name="down" value="v"></td>
+ <td>&nbsp;</td>
+</tr>
+<tr>
+ <td colspan="3"><nobr>
+ <input type="button" onclick="switch_channel('?cmd=remote&data=Menu')" name="menu" value="<?% gettext("Menu") %?>">
+ <input onclick="switch_channel('?cmd=remote&data=Back')" type="button" name="back" value="<?% gettext("Back") %?>">
+ </td>
+</tr>
+<tr>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=VolumeMinus')" type="button" name="leiser" value="-"></td>
+ <td align='center'>&nbsp;</td>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=VolumePlus')" type="button" name="lauter" value="+"></td>
+</tr>
+<?% IF param.vdrlist.size > 1 %?>
+<tr>
+ <td colspan="3" align="center">
+ <select style="width:150px;" name="vdr">
+ <?% FOREACH l = param.vdrlist %?>
+ <option value='<?% l.1 %?>'<?% IF l.1 == param.vdr %?> selected<?% END %?>><?% l.0 %?></option>
+ <?% END %?>
+ </select>
+ </td>
+</tr>
+<?% ELSE %?>
+<tr>
+ <td colspan="7" align="center">
+ <input type="hidden" name="vdr" value="<?% param.vdr %?>" />
+ </td>
+</tr>
+<?% END %?>
+<tr>
+ <td colspan="3" align="center">
+ <select style="width:150px;" name="channels" onchange="post('?cmd=switch&amp;data='+ this.form.channels.options[this.form.channels.options.selectedIndex].value)">
+ <?% FOREACH l = param.channels %?>
+ <?% IF l.2 && l.2 != optgroup %?>
+ <?% IF optgroup %?>
+ </optgroup>
+ <?% END %?>
+ <optgroup label="<?% optgroup = l.2;l.2 %?>">
+ <?% END %?>
+ <option value='<?% l.1 %?>'><?% l.0 %?></option>
+ <?% END %?>
+ <?% IF optgroup %?>
+ </optgroup>
+ <?% END %?>
+ </select>
+ </td>
+</tr>
+<?% IF monitor %?>
+<tr>
+ <td align='center' colspan="3">
+ <input style='width:20px' name="grabinterval" type="text" size="2">
+ <input type="button" onclick="changeInterval(document.remoteform.grabinterval.value)" value="<?% gettext("Set") %?>">
+ </td>
+</tr>
+<?% END %?>
+</form>
+</table>
+<?% IF monitor %?>
+<script language="javascript" type="text/javascript">
+<!--
+document.remoteform.grabinterval.value = interval;
+//-->
+</script>
+<?% END %?>
diff --git a/skins/html/widgets/start.tmpl b/skins/html/widgets/start.tmpl
new file mode 100644
index 0000000..d1126af
--- /dev/null
+++ b/skins/html/widgets/start.tmpl
@@ -0,0 +1,30 @@
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <title><?% IF param.title.defined;param.title;ELSE %?>XXV - <?% user %?><?% END %?></title>
+<?% IF allow('request') %?>
+ <link rel="alternate" type="application/rss+xml" title="RSS-News 1.0" href="?cmd=request&data=rss&__version=1">
+ <link rel="alternate" type="application/rss+xml" title="RSS-News 2.0" href="?cmd=request&data=rss&__version=2">
+<?% END %?>
+ <link rel="search" type="application/opensearchdescription+xml" href="?cmd=opensearch" title="<?% gettext("Search with XXV") %?>" />
+ <meta http-equiv="Content-Type" content="text/html; charset=<?% charset %?>">
+ <meta name="generator" content="XXV System - Version: <?% version %?>" />
+<!-- Styles -->
+ <link href="style/style.css" type="text/css" rel="stylesheet" />
+<?% IF call == 'vtxpage' %?>
+ <link href="style/vtxgfx.css" type="text/css" rel="stylesheet" />
+<?% END %?>
+<!-- Javascript -->
+ <script type="text/javascript" src="javascript/global.js"></script>
+ <script type="text/javascript" src="javascript/XHConn.js"></script>
+ <script type="text/javascript" src="javascript/tooltip.js"></script>
+ <base target="Daten">
+</head>
+<body>
+
+<?% INCLUDE 'skin.cfg' %?>
+<?%# INCLUDE 'help.tmpl' %?>
+
+<div class="content">
diff --git a/skins/html/widgets/string.tmpl b/skins/html/widgets/string.tmpl
new file mode 100644
index 0000000..3faf4f4
--- /dev/null
+++ b/skins/html/widgets/string.tmpl
@@ -0,0 +1,16 @@
+<!-- string -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <?% IF data.readonly %?>
+ <span<?% FOREACH p = param.tags; "$p ";END %?>>
+ <?% val %?>
+ </span>
+ <?% ELSE %?>
+ <input type="text" name="<?% data.NAME %?>" value="<?% val %?>" <?% FOREACH p = param.tags; "$p ";END %?>>
+ <?% END %?>
+ </td>
+</tr>
diff --git a/skins/html/widgets/table.tmpl b/skins/html/widgets/table.tmpl
new file mode 100644
index 0000000..01d1303
--- /dev/null
+++ b/skins/html/widgets/table.tmpl
@@ -0,0 +1,47 @@
+<p><p>
+<!-- TableTemplate -->
+<?% IF param.headingText %?>
+<table width=100%><tr><td class='tableheader'><h3><?% param.headingText %?></h3>
+<?% END %?>
+<table border="0" width="95%">
+<?% IF type == 'HASH' %?>
+ <?% IF ! param.hide_HeadRow %?>
+ <th width="1%">Name</th><th>Value</th>
+ <?% END %?>
+ <?% FOREACH name = data.keys.sort %?>
+ <?% NEXT IF name.match('^__') %?>
+ <tr>
+ <td width="50%"><?% name %?></td><td><?% data.$name %?></td>
+ </tr>
+ <?% END %?>
+<?% ELSE %?>
+ <?% fields = data.shift %?>
+ <tr>
+ <?% FOREACH field = fields %?>
+ <?% NEXT IF field.match('^__') %?>
+ <th>
+ <nobr><?% field %?>
+ <?% IF param.sortable %?>
+ <a href="?cmd=<?% cgi.param('cmd') %?>&__sortby=<?% field %?>&__desc=0"><img src="images/asc.png"></a>
+ <a href="?cmd=<?% cgi.param('cmd') %?>&__sortby=<?% field %?>&__desc=1"><img src="images/desc.png"></a>
+ <?% END %?>
+ </nobr>
+ </th>
+ <?% END %?>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <tr>
+ <?% c = -1 %?>
+ <?% FOREACH field = zeile %?>
+ <?% c = c + 1 %?>
+ <?% NEXT IF fields.$c.match('^__') %?>
+ <td><?% field %?></td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+<?% END %?>
+</table>
+<?% IF param.headingText %?>
+</td></tr></table>
+<p>
+<?% END %?>
diff --git a/skins/html/widgets/textfield.tmpl b/skins/html/widgets/textfield.tmpl
new file mode 100644
index 0000000..5ab4e7e
--- /dev/null
+++ b/skins/html/widgets/textfield.tmpl
@@ -0,0 +1,17 @@
+<!-- textfield -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <?% IF data.readonly %?>
+ <span<?% FOREACH p = param.tags; "$p ";END %?>>
+ <?% val %?>
+ </span>
+ <?% ELSE %?>
+ <textarea cols='50' rows='5' name="<?% data.NAME %?>" <?% FOREACH p = param.tags; "$p ";END %?>><?% val | replace("<br />","
+") %?></textarea>
+ <?% END %?>
+ </td>
+</tr>
diff --git a/skins/html/widgets/time.tmpl b/skins/html/widgets/time.tmpl
new file mode 100644
index 0000000..5519c0c
--- /dev/null
+++ b/skins/html/widgets/time.tmpl
@@ -0,0 +1,16 @@
+<!-- time -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <?% IF data.readonly %?>
+ <span<?% FOREACH p = param.tags; "$p ";END %?>>
+ <?% val %?>
+ </span>
+ <?% ELSE %?>
+ <input type="text" name="<?% data.NAME %?>" value="<?% val %?>" <?% FOREACH p = param.tags; "$p ";END %?>>
+ <?% END %?>
+ </td>
+</tr>
diff --git a/skins/html/widgets/wait.tmpl b/skins/html/widgets/wait.tmpl
new file mode 100644
index 0000000..4d0b2a5
--- /dev/null
+++ b/skins/html/widgets/wait.tmpl
@@ -0,0 +1,34 @@
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <title>XXV</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=<?% charset %?>">
+ <meta name="copyright" content="copyright 2004 Xpix">
+<style type="text/css">
+<!--
+
+ <?% INCLUDE style/style.css %?>
+
+-->
+</style>
+</head>
+<body>
+<!-- WaitTemplate -->
+<?% percent = (data.current / data.maximum) * 100 %?>
+<?% step = data.maximum / data.steps %?>
+<?% c = 0 %?>
+<center>
+<h3><?% data.msg %?></h3>
+<table border=0 align=center>
+<?% WHILE c < data.steps %?>
+ <?% c = c + 1 %?>
+ <?% color = (step * c) <= data.current ? "red" : "white" %?>
+ <td bgcolor="<?% color %?>">&nbsp;&nbsp;&nbsp;</td>
+<?% END %?>
+ <td>&nbsp;<b><?% percent div 1 | format "%02d" %?>%</b> (<?% data.eta %?>)</td>
+</table>
+</center>
+</body>
+</html>