summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Brachold <vdr07@deltab.de>2008-07-27 15:18:27 +0000
committerAndreas Brachold <vdr07@deltab.de>2008-07-27 15:18:27 +0000
commit6033fafd7efae9185362fb0e22e1fe429a951405 (patch)
tree648a81901c60b498a90ffbc566e8197103c27c40
parent3b87157ecc2c573d2181171ab670383b4ab353eb (diff)
downloadxxv-6033fafd7efae9185362fb0e22e1fe429a951405.tar.gz
xxv-6033fafd7efae9185362fb0e22e1fe429a951405.tar.bz2
* Redesign SVDRP Communation to support more as one video disk recorder (Change database schema to version 30)
l---------skins/blue/vdrlist.tmpl1
l---------skins/blue_flat/vdrlist.tmpl1
-rw-r--r--skins/deltab/clist.tmpl14
-rw-r--r--skins/deltab/now.tmpl2
-rw-r--r--skins/deltab/search.tmpl2
-rw-r--r--skins/deltab/style.css11
-rw-r--r--skins/deltab/tlist.tmpl1
-rw-r--r--skins/deltab/tooltip.js9
-rw-r--r--skins/deltab/ulist.tmpl2
-rw-r--r--skins/deltab/vdrlist.tmpl81
-rw-r--r--skins/deltab/widgets/littlemenu.tmpl19
-rw-r--r--skins/deltab/widgets/remote.tmpl47
l---------skins/lcars/vdrlist.tmpl1
l---------skins/lcars_flat/vdrlist.tmpl1
l---------skins/snow/vdrlist.tmpl1
-rw-r--r--skins/snow_flat/style.css22
l---------skins/snow_flat/vdrlist.tmpl1
-rw-r--r--skins/stone/clist.tmpl48
-rw-r--r--skins/stone/now.tmpl2
-rw-r--r--skins/stone/search.tmpl2
-rw-r--r--skins/stone/skin.cfg3
-rw-r--r--skins/stone/skin.cfg.default4
-rw-r--r--skins/stone/style.css2
-rw-r--r--skins/stone/tlist.tmpl2
-rw-r--r--skins/stone/tooltip.js9
-rw-r--r--skins/stone/vdrlist.tmpl118
-rw-r--r--skins/stone/widgets/littlemenu.tmpl15
-rw-r--r--skins/stone/widgets/remote.tmpl47
-rw-r--r--skins/stone_flat/clist.tmpl14
-rw-r--r--skins/stone_flat/now.tmpl2
-rw-r--r--skins/stone_flat/search.tmpl2
-rw-r--r--skins/stone_flat/style.css26
-rw-r--r--skins/stone_flat/tlist.tmpl2
-rw-r--r--skins/stone_flat/vdrlist.tmpl98
-rw-r--r--skins/xstyle/bloecke/event_links.tmpl2
-rw-r--r--skins/xstyle/clist.tmpl14
-rw-r--r--skins/xstyle/mainmenu.inc63
-rw-r--r--skins/xstyle/vdrlist.tmpl45
-rw-r--r--skins/xstyle/widgets/remote.tmpl47
39 files changed, 661 insertions, 122 deletions
diff --git a/skins/blue/vdrlist.tmpl b/skins/blue/vdrlist.tmpl
new file mode 120000
index 0000000..b800e1f
--- /dev/null
+++ b/skins/blue/vdrlist.tmpl
@@ -0,0 +1 @@
+../stone/vdrlist.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/vdrlist.tmpl b/skins/blue_flat/vdrlist.tmpl
new file mode 120000
index 0000000..064ef23
--- /dev/null
+++ b/skins/blue_flat/vdrlist.tmpl
@@ -0,0 +1 @@
+../stone_flat/vdrlist.tmpl \ No newline at end of file
diff --git a/skins/deltab/clist.tmpl b/skins/deltab/clist.tmpl
index 9001a4e..53f772e 100644
--- a/skins/deltab/clist.tmpl
+++ b/skins/deltab/clist.tmpl
@@ -31,7 +31,7 @@
<?% ######################################################################## %?>
<?% BLOCK RowButtons %?>
<?% IF allow('program') %?>
- <a href="?cmd=program&data=<?% POS %?>">
+ <a href="?cmd=program&data=<?% id %?>">
<img src="images/watch.<?% global.imagetyp %?>" alt="" title="<?% gettext("Program guide") %?>" />
</a>
<?% END %?>
@@ -41,7 +41,7 @@
</a>
<?% END %?>
<?% IF allow('cdelete') %?>
- <a href="javascript:sure('<?% gettext("Would you like to delete this channel?") %?> : \'<?% escape( name ) %?>\' ?','?cmd=cdelete&amp;data=<?% POS %?>')">
+ <a href="javascript:sure('<?% gettext("Would you like to delete this channel?") %?> : \'<?% escape( name ) %?>\' ?','?cmd=cdelete&amp;data=<?% id %?>')">
<img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete channel") %?>" />
</a>
<?% END %?>
@@ -51,7 +51,7 @@
<tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
<td>
<?% IF enableform %?>
- <input class="push" type="checkbox" value="<?% POS %?>" name="<?% name %?>" />
+ <input class="push" type="checkbox" value="<?% id %?>" name="<?% name %?>" />
<?% END %?>
</td>
<td>
@@ -109,7 +109,7 @@
<?%- id=zeile.0;name=zeile.1;frequency=zeile.2;parameters=zeile.3;
source=zeile.4;srate=zeile.5;VPID=zeile.6;APID=zeile.7;TPID=zeile.8;
CA=zeile.9;SID=zeile.10;NID=zeile.11;TID=zeile.12;RID=zeile.13;GRP=zeile.14;
- POS=zeile.15;CGRP=zeile.16; -%?>
+ POS=zeile.15;CGRP=zeile.16;HOST=zeile.17; -%?>
<?% IF loop.count == 1 || ( !sortby.defined && ( !OLDCGRP.defined || CGRP != OLDCGRP )) %?>
<?% IF OLDCGRP.defined %?>
</table>
@@ -117,7 +117,11 @@
<?% IF !sortby.defined %?>
<?% OLDCGRP = CGRP %?>
<?% END %?>
- <?% IF CGRP.defined && loop.count != 1 %?><h2><?% CGRP %?></h2><?% END %?>
+ <?% IF not sortby.defined && OLDHOST != HOST %?>
+ <h2><?% gettext("Video disk recorder") %?> : <?% HOST %?></h2>
+ <?% OLDHOST = HOST %?>
+ <?% END %?>
+ <?% IF CGRP.defined && loop.count != 1 %?><h3><?% CGRP %?></h3><?% END %?>
<table summary="" width="100%">
<tr><th width="20"></th>
<th width="120"><?% gettext('Name') %?></th>
diff --git a/skins/deltab/now.tmpl b/skins/deltab/now.tmpl
index 5f3b697..1352aed 100644
--- a/skins/deltab/now.tmpl
+++ b/skins/deltab/now.tmpl
@@ -38,7 +38,7 @@
<img src="images/webcast.<?% global.imagetyp %?>" alt="" title="<?% gettext("Live TV web cast") %?>" /></a>
<?% END %?>
<a style="vertical-align:bottom;" href="?cmd=program&amp;data=<?% channel %?>" title="<?% gettext("Program guide for") %?>&nbsp;<?% sender %?>">
- <font class="channel<?% IF state != "";" ";state;END %?>"><?% channel %?>.&nbsp;<?% sender %?></font>
+ <font class="channel<?% IF state != "";" ";state;END %?>"><?% sender %?></font>
</a>
</td>
<td>
diff --git a/skins/deltab/search.tmpl b/skins/deltab/search.tmpl
index 15442e9..bd28ef6 100644
--- a/skins/deltab/search.tmpl
+++ b/skins/deltab/search.tmpl
@@ -28,7 +28,7 @@
<?% PROCESS SetState %?>
<td >
<a style="vertical-align:bottom;" href="?cmd=program&amp;data=<?% channel %?><?% IF id > 0 %?>#E<?% id %?><?% END %?>" title="<?% gettext("Program guide for") %?>&nbsp;<?% sender %?>">
- <font class="channel<?% IF state != "";" ";state;END %?>"><?% channel %?>.&nbsp;<?% sender %?></font>
+ <font class="channel<?% IF state != "";" ";state;END %?>"><?% sender %?></font>
</a>
</td>
<td>
diff --git a/skins/deltab/style.css b/skins/deltab/style.css
index fc8945a..81eb59a 100644
--- a/skins/deltab/style.css
+++ b/skins/deltab/style.css
@@ -20,7 +20,7 @@ background-color:#FFF;
font-size:12px;
}
-h1,h2 {
+h1,h2,h3 {
color:#4080ff;
border-bottom-color:#4080ff;
font-weight:700;
@@ -38,6 +38,11 @@ font-size:14px;
margin-bottom:10px;
}
+h3 {
+font-size:12px;
+margin-bottom:10px;
+}
+
table.schema {
border:1px dotted #4080ff;
border-right:0;
@@ -174,12 +179,12 @@ font-size:12px;
}
.subtitle {
-font-size:10px;
+font-size:11px;
}
.description {
padding-left:5px;
-font-size:8px;
+font-size:10px;
}
a:active,a:link,a:visited {
diff --git a/skins/deltab/tlist.tmpl b/skins/deltab/tlist.tmpl
index 81047f1..a343151 100644
--- a/skins/deltab/tlist.tmpl
+++ b/skins/deltab/tlist.tmpl
@@ -80,7 +80,6 @@
<?% PROCESS StateImage %?>
<?% "</a>" IF allow('ttoggle') %?>
<a class="fieldinline" href="?cmd=program&amp;data=<?% channel %?><?% IF eventid %?>#E<?% eventid %?><?% END %?>" title="<?% gettext("Jump to program:") %?><?% sender %?>" style="<?% IF state != "" %?><?% state %?><?% END %?>vertical-align:bottom;">
- <font class="channel<?% IF state != "";" ";state;END %?>"><?% channel %?>.&nbsp;</font>
<font class="title<?% IF state != "";" ";state;END %?>"><?% sender %?></font>
</a>
</td>
diff --git a/skins/deltab/tooltip.js b/skins/deltab/tooltip.js
index ea83b17..28e64ff 100644
--- a/skins/deltab/tooltip.js
+++ b/skins/deltab/tooltip.js
@@ -202,7 +202,7 @@ function ttp_make_tlist_visable(title, tlist, x, y){
var content = "";
var values = eval('(' + oAnswer.responseText + ')');
if(values && values.data && typeof(values.data) == 'object'){
- for (var i = 1; i < values.data.length; i++) {
+ for (var i = 0; i < values.data.length; i++) {
var x = values.data[i];
var len = 23;
@@ -210,7 +210,12 @@ function ttp_make_tlist_visable(title, tlist, x, y){
content += '<span class="deactive">';
}
//var d = new Date(x[9] * 1000);
- content += x[4]; //Day
+ var d = new Date(x[4] * 1000);
+ if(0) {
+ content += d.getDate() + "/" + (d.getMonth()+1) + "/" + (d.getYear() + 1900); //Day
+ } else {
+ content += d.getDate() + "." + (d.getMonth()+1) + "." + (d.getYear() + 1900); //Day
+ }
content += " - ";
content += x[5]; //Start
content += "-";
diff --git a/skins/deltab/ulist.tmpl b/skins/deltab/ulist.tmpl
index 2abe308..6bed1f0 100644
--- a/skins/deltab/ulist.tmpl
+++ b/skins/deltab/ulist.tmpl
@@ -38,6 +38,7 @@
<?% END %?>
</div>
<!-- ###### Seite ###### -->
+<?% IF allow('unew') %?>
<div id="sidebar">
<p class="section"><?% gettext("User administration",20) %?></p>
<p>
@@ -46,3 +47,4 @@
</p>
</div>
<?% global.sidebar = 1 %?>
+<?% END %?>
diff --git a/skins/deltab/vdrlist.tmpl b/skins/deltab/vdrlist.tmpl
new file mode 100644
index 0000000..2e6710c
--- /dev/null
+++ b/skins/deltab/vdrlist.tmpl
@@ -0,0 +1,81 @@
+<!-- vlist Template -->
+<div id="body">
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+<?% IF allow('vdredit') %?>
+ <a href="?cmd=vdredit&amp;data=<?% id %?>">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit definition of video disk recorder") %?>" />
+ </a>
+<?% END %?>
+<?% IF allow('vdrdelete') %?>
+ <a href="javascript:sureandreload('<?% gettext("Would you like to delete this definition of video disk recorder?") %?>','<?% escape(host) %?>','vdrdelete','<?% id %?>')">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete definition of video disk recorder") %?>" />
+ </a>
+<?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% UNLESS active == 'y' %?>
+ <?% state = "deactive" %?>
+ <?% ELSIF primary == 'y' %?>
+ <?% state = "running" %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% aus = gettext('Off') %?>
+<?% an = gettext('On') %?>
+<?% BLOCK StateImage %?>
+ <?% IF active == 'y' %?>
+ <img id="toggle<?% id %?>" src="images/on.<?% global.imagetyp %?>" alt="" title="<?% an %?>" />
+ <?% ELSE %?>
+ <img id="toggle<?% id %?>" src="images/off.<?% global.imagetyp %?>" alt="" title="<?% aus %?>" />
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsFlat %?>
+ <?% PROCESS SetState %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <td>
+ <?% PROCESS StateImage %?>
+ <?% IF allow('vdredit') %?>
+ <a title="<?% gettext("Edit definition of video disk recorder") %?>" href="?cmd=vdredit&amp;data=<?% id %?>">
+ <?% END %?>
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% host %?></font>
+ <?% IF allow('vdredit') %?>
+ </a>
+ <?% END %?>
+ </td>
+ <td>
+ <font class="subtitle<?% IF state != "";" ";state;END %?>"><?% cards %?></font>
+ </td>
+ <td class="push">
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+<?% END %?>
+<?% ######################################################################## %?>
+<h1><?% gettext("Administration of video disk recorder") %?></h1>
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+ <table summary="" width="100%">
+ <tr height="0"><th></th><th></th><th width="60" align="right"></th></tr>
+ <?% FOREACH zeile = data %?>
+ <?% IF verbose;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;active=zeile.1;primary=zeile.2;host=zeile.3;cards=zeile.4 %?>
+ <?% PROCESS ItemAsFlat %?>
+ <?% END %?>
+ </table>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<?% IF allow('vdrnew') %?>
+<div id="sidebar">
+ <p class="section"><?% gettext("Administration of video disk recorder",20) %?></p>
+ <p>
+ <a title="<?% gettext("Create new definition of video disk recorder") %?>" href="?cmd=vdrnew"><img src="images/new.<?% global.imagetyp %?>" alt="" title="<?% gettext("Create new definition of video disk recorder") %?>" /></a>&nbsp;
+ <a title="<?% gettext("Create new definition of video disk recorder") %?>" href="?cmd=vdrnew"><?% gettext("Create new definition of video disk recorder",20) %?></a><br />
+ </p>
+</div>
+<?% global.sidebar = 1 %?>
+<?% END %?>
diff --git a/skins/deltab/widgets/littlemenu.tmpl b/skins/deltab/widgets/littlemenu.tmpl
index ff6db64..e335dfa 100644
--- a/skins/deltab/widgets/littlemenu.tmpl
+++ b/skins/deltab/widgets/littlemenu.tmpl
@@ -1,16 +1,23 @@
<!-- LittleMenuTemplate -->
<?% global.sidebar = 1 %?>
<div id="sidebar">
- <?% IF allow('cedit') %?>
- <p class="section"><?% gettext("Channels",20) %?></p>
+ <?% IF allow('vdrlist') || allow('clist') %?>
+ <p class="section"><?% gettext("Preferences",20) %?></p>
<p>
- <a href="?cmd=clist">
- <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit channels") %?>" />
+ <?% END %?>
+ <?% IF allow('vdrlist') %?>
+ <a href="?cmd=vdrlist">
+ <?% gettext("Video disk recorder",20) %?>
</a>
- &nbsp;
+ <br />
+ <?% END %?>
+ <?% IF allow('clist') %?>
<a href="?cmd=clist">
- <?% gettext("Edit channels",20) %?>
+ <?% gettext("Channels",20) %?>
</a>
+ <br />
+ <?% END %?>
+ <?% IF allow('vdrlist') || allow('clist') %?>
</p>
<?% END %?>
<?% IF allow( 'ul') || allow( 'uprefs' ) %?>
diff --git a/skins/deltab/widgets/remote.tmpl b/skins/deltab/widgets/remote.tmpl
index 055b34c..4cd9f89 100644
--- a/skins/deltab/widgets/remote.tmpl
+++ b/skins/deltab/widgets/remote.tmpl
@@ -13,7 +13,8 @@ var interval = 5
var last = 0;
function remote(key) {
- post('remote',key);
+ var vdr = ( document.channelform.vdr.options ? document.channelform.vdr.options[document.channelform.vdr.options.selectedIndex].value : document.channelform.vdr.value );
+ post('remote',key + '&__vdr=' + vdr );
<?% IF monitor %?>
if(last + 1000 < Date.UTC()) {
grab();
@@ -24,8 +25,9 @@ function remote(key) {
<?% IF monitor %?>
function grab() {
if(document.remoteform.grabinterval.value > 0) {
- Now = new Date();
- document.livepicture.src = '?cmd=gdisplay&random=' + Now.getTime();
+ Now = new Date();
+ var vdr = ( document.channelform.vdr.options ? document.channelform.vdr.options[document.channelform.vdr.options.selectedIndex].value : document.channelform.vdr.value );
+ document.livepicture.src = '?cmd=gdisplay&__vdr='+vdr+'&random=' + Now.getTime();
}
last = Date.UTC();
}
@@ -48,6 +50,7 @@ aktiv = window.setInterval("grab()", inter);
<table summary="">
<tr>
<td width="200" >
+ <form name="channelform" action="">
<table summary="">
<tr>
<td width="200" height="<?% totalheight %?>" >
@@ -222,10 +225,46 @@ aktiv = window.setInterval("grab()", inter);
</table>
</td>
</tr>
+ <?% IF param.vdrlist.size > 1 %?>
+ <tr>
+ <td colspan="7" align="center">
+ <select style="width:175px;" 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="7" align="center">
+ <select style="width:175px;" name="channels" onchange="post('switch', this.form.channels.options[this.form.channels.options.selectedIndex].value + '&amp;__vdr=' + ( this.form.vdr.options ? this.form.vdr.options[this.form.vdr.options.selectedIndex].value : this.form.vdr.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>
</table>
</td>
</tr>
</table>
+ </form>
</td>
<?% IF monitor %?>
<td width="20">
@@ -239,7 +278,7 @@ aktiv = window.setInterval("grab()", inter);
<table summary="">
<tr>
<td valign="middle" align="center">
- <img alt="<?% date.now %?>" src="?cmd=gdisplay&amp;random=<?% date.now %?>" width="<?% width %?>" height="<?% height %?>" name="livepicture" />
+ <img alt="<?% date.now %?>" src="?cmd=gdisplay&amp;random=<?% date.now %?>&amp;__vdr=<?% param.vdr %?>" width="<?% width %?>" height="<?% height %?>" name="livepicture" />
</td>
</tr>
</table>
diff --git a/skins/lcars/vdrlist.tmpl b/skins/lcars/vdrlist.tmpl
new file mode 120000
index 0000000..b800e1f
--- /dev/null
+++ b/skins/lcars/vdrlist.tmpl
@@ -0,0 +1 @@
+../stone/vdrlist.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/vdrlist.tmpl b/skins/lcars_flat/vdrlist.tmpl
new file mode 120000
index 0000000..064ef23
--- /dev/null
+++ b/skins/lcars_flat/vdrlist.tmpl
@@ -0,0 +1 @@
+../stone_flat/vdrlist.tmpl \ No newline at end of file
diff --git a/skins/snow/vdrlist.tmpl b/skins/snow/vdrlist.tmpl
new file mode 120000
index 0000000..b800e1f
--- /dev/null
+++ b/skins/snow/vdrlist.tmpl
@@ -0,0 +1 @@
+../stone/vdrlist.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/style.css b/skins/snow_flat/style.css
index e2c599c..4361413 100644
--- a/skins/snow_flat/style.css
+++ b/skins/snow_flat/style.css
@@ -17,7 +17,7 @@ padding:0 0 0 185px;
input,select,textarea {
font-family:Tahoma, Arial, Helvetica, sans-serif;
color:#000;
-font-size:11px;
+font-size:12px;
}
#body {
@@ -165,12 +165,12 @@ text-align:right;
}
.title {
-font-size:11px;
+font-size:12px;
font-weight:700;
}
.description {
-font-size:9px;
+font-size:10px;
}
.deactive {
@@ -360,13 +360,13 @@ padding:0;
}
td {
-font-size:11px;
+font-size:12px;
}
table.fieldtable {
width:200px;
color:#000;
-font-size:11px;
+font-size:12px;
}
div.remotehead,
@@ -410,12 +410,12 @@ width:100%;
fieldinline {
color:#000;
-font-size:11px;
+font-size:12px;
}
#fieldinline input {
color:#000;
-font-size:8px;
+font-size:12px;
}
#sidebar table {
@@ -439,7 +439,7 @@ white-space:nowrap;
td.sidetext {
vertical-align:top;
background:url(images/dark180.gif) repeat-y;
-font-size:11px;
+font-size:12px;
padding:4px 12px 4px 4px;
}
@@ -470,7 +470,7 @@ white-space:nowrap;
table.areatable {
width:400px;
color:#000;
-font-size:11px;
+font-size:12px;
}
td.areahead {
@@ -498,7 +498,7 @@ height:15px;
table.editortable {
width:600px;
color:#000;
-font-size:11px;
+font-size:12px;
}
div.editorhead {
@@ -625,7 +625,7 @@ clear:both;
}
.subtitle,.channel {
-font-size:10px;
+font-size:11px;
}
a,a:visited,a:active,a:link {
diff --git a/skins/snow_flat/vdrlist.tmpl b/skins/snow_flat/vdrlist.tmpl
new file mode 120000
index 0000000..064ef23
--- /dev/null
+++ b/skins/snow_flat/vdrlist.tmpl
@@ -0,0 +1 @@
+../stone_flat/vdrlist.tmpl \ No newline at end of file
diff --git a/skins/stone/clist.tmpl b/skins/stone/clist.tmpl
index 6bfbdde..987b3c0 100644
--- a/skins/stone/clist.tmpl
+++ b/skins/stone/clist.tmpl
@@ -9,11 +9,35 @@
<?% sortby = cgi.param('__sortby') %?>
<?% orderby = cgi.param('__desc') %?>
<?% END %?>
+ <?% cmd = cgi.param('cmd') %?>
+ <?% IF cgi.param('data') %?>
+ <?% daten = url( cgi.param('data') ) %?>
+ <?% daten = "&amp;data=${daten}" %?>
+ <?% END %?>
+<?% END %?>
+ <?% IF cgi.param('start') %?>
+ <?% start = cgi.param('start') %?>
+ <?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK PageButtons %?>
+ <div style="text-align:right">
+ <?% IF ( start - global.pagelimit ) >= 0 %?>
+ <a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% sortby %?>&amp;__desc=<?% orderby %?>&amp;start=<?% start - global.pagelimit %?>&amp;limit=<?% global.pagelimit %?>" >
+ <img src="images/back.<?% global.imagetyp %?>" alt="" title="<?% gettext('Previous page') %?>" />
+ </a>
+ <?% END %?>
+ <?% IF ( start + global.pagelimit ) < param.rows %?>
+ <a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% sortby %?>&amp;__desc=<?% orderby %?>&amp;start=<?% start + global.pagelimit %?>&amp;limit=<?% global.pagelimit %?>" >
+ <img src="images/forward.<?% global.imagetyp %?>" alt="" title="<?% gettext("Next page") %?>" />
+ </a>
+ <?% END %?>
+ </div>
+ <div style="clear:both"></div>
<?% END %?>
<?% ######################################################################## %?>
<?% BLOCK RowButtons %?>
<?% IF allow('program') %?>
- <a href="?cmd=program&data=<?% POS %?>">
+ <a href="?cmd=program&data=<?% id %?>">
<img src="images/watch.<?% global.imagetyp %?>" alt="" title="<?% gettext("Program guide") %?>" />
</a>
<?% END %?>
@@ -23,7 +47,7 @@
</a>
<?% END %?>
<?% IF allow('cdelete') %?>
- <a href="javascript:surecmd('<?% gettext("Would you like to delete this channel?") %?>','<?% escape(name) %?>','cdelete','<?% POS %?>',620,670)">
+ <a href="javascript:surecmd('<?% gettext("Would you like to delete this channel?") %?>','<?% escape(name) %?>','cdelete','<?% id %?>',620,670)">
<img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete channel") %?>" />
</a>
<?% END %?>
@@ -33,12 +57,12 @@
<tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
<td class="fieldinline">
<?% IF enableform %?>
- <input type="checkbox" value="<?% POS %?>" name="<?% name %?>" />
+ <input type="checkbox" value="<?% id %?>" name="<?% name %?>" />
<?% END %?>
</td>
<td class="fieldinline">
<?% IF allow('cedit') %?>
- <a name="<?% POS %?>" href="javascript:popup('cedit','<?% id %?>',620,670,1)">
+ <a href="javascript:popup('cedit','<?% id %?>',620,670,1)">
<?% END %?>
<?% POS %?>.<?% name %?>
<?% IF allow('cedit') %?>
@@ -79,9 +103,12 @@
<?% search = cgi.param('data') %?>
<?% END %?>
<h1>
+ <div style="float:left;">
<?% gettext("Channels") %?>
<?% IF search.defined %?> : "<?% search %?>"
<?% END %?>
+ </div>
+ <?% PROCESS PageButtons %?>
</h1>
<?% IF data.size > 1 %?>
<?% fields = data.shift %?>
@@ -91,8 +118,8 @@
<?%- id=zeile.0;name=zeile.1;frequency=zeile.2;parameters=zeile.3;
source=zeile.4;srate=zeile.5;VPID=zeile.6;APID=zeile.7;TPID=zeile.8;
CA=zeile.9;SID=zeile.10;NID=zeile.11;TID=zeile.12;RID=zeile.13;GRP=zeile.14;
- POS=zeile.15;CGRP=zeile.16; -%?>
-
+ POS=zeile.15;CGRP=zeile.16;HOST=zeile.17; -%?>
+ <?% LAST IF loop.count > global.pagelimit %?>
<?% IF loop.count == 1 || ( !sortby.defined && ( !OLDCGRP.defined || CGRP != OLDCGRP )) %?>
<?% IF OLDCGRP.defined %?>
</table>
@@ -107,6 +134,10 @@
<?% IF !sortby.defined %?>
<?% OLDCGRP = CGRP %?>
<?% END %?>
+ <?% IF not sortby.defined && OLDHOST != HOST %?>
+ <h2><?% gettext("Video disk recorder") %?> : <?% HOST %?></h2>
+ <?% OLDHOST = HOST %?>
+ <?% END %?>
<?% IF enableform && not sortby.defined %?>
<fieldset id="fieldset_<?% CGRP %?>" style="border: 0px; padding: 0px; margin: 0px;">
<?% END %?>
@@ -175,11 +206,6 @@
</table>
<?% END %?>
<?% IF param.sortable.defined %?>
- <?% cmd = cgi.param('cmd') %?>
- <?% IF cgi.param('data') %?>
- <?% daten = url( cgi.param('data') ) %?>
- <?% daten = "&amp;data=${daten}" %?>
- <?% END %?>
<table summary="">
<tr><td class="sidehead"><?% gettext("Sorting") %?></td></tr>
<tr>
diff --git a/skins/stone/now.tmpl b/skins/stone/now.tmpl
index 81c758e..d8ab32f 100644
--- a/skins/stone/now.tmpl
+++ b/skins/stone/now.tmpl
@@ -64,7 +64,7 @@
<?% END %?>
<?% END %?>
<a href="?cmd=program&amp;data=<?% channel %?>" title="<?% gettext("Program guide for") %?>&nbsp;<?% sender %?>">
- <font class="fieldinline<?% IF state != "";" ";state;END %?>"><?% channel %?>.&nbsp;<?% chop(sender,20) %?></font>
+ <font class="fieldinline<?% IF state != "";" ";state;END %?>"><?% chop(sender,20) %?></font>
</a>
</div>
</td>
diff --git a/skins/stone/search.tmpl b/skins/stone/search.tmpl
index 1db2c08..1f02520 100644
--- a/skins/stone/search.tmpl
+++ b/skins/stone/search.tmpl
@@ -49,7 +49,7 @@
<td class="fieldhead">
<div class="fieldhead">
<a class="fieldinline<?% IF state != "";" ";state;END %?>" style="vertical-align:bottom;" href="?cmd=program&amp;data=<?% channel %?><?% IF id > 0 %?>#E<?% id %?><?% END %?>" title="<?% gettext("Program guide for") %?>&nbsp;<?% sender %?>">
- <font class="fieldinline<?% IF state != "";" ";state;END %?>"><?% channel %?>.&nbsp;<?% chop(sender,20) %?></font>
+ <font class="fieldinline<?% IF state != "";" ";state;END %?>"><?% chop(sender,20) %?></font>
</a>
</div>
</td>
diff --git a/skins/stone/skin.cfg b/skins/stone/skin.cfg
index ee28941..b96c568 100644
--- a/skins/stone/skin.cfg
+++ b/skins/stone/skin.cfg
@@ -6,3 +6,6 @@
<?% # 0 = Stream live TV / recording as webcast %?>
<?% # 1 = Switch channel / Start playback with SVDRP %?>
<?% SET global.preferedlocal = 0 %?>
+<?% ######################################################################## %?>
+<?% # Limit rows per page %?>
+<?% SET global.pagelimit = 250 %?>
diff --git a/skins/stone/skin.cfg.default b/skins/stone/skin.cfg.default
index 10dc2f4..f8df3cc 100644
--- a/skins/stone/skin.cfg.default
+++ b/skins/stone/skin.cfg.default
@@ -6,4 +6,6 @@
<?% # 0 = Stream live TV / recording as webcast %?>
<?% # 1 = Switch channel / Start playback with SVDRP %?>
<?% SET global.preferedlocal = 0 %?>
-
+<?% ######################################################################## %?>
+<?% # Limit rows per page %?>
+<?% SET global.pagelimit = 200 %?>
diff --git a/skins/stone/style.css b/skins/stone/style.css
index 1859883..c05e72e 100644
--- a/skins/stone/style.css
+++ b/skins/stone/style.css
@@ -151,6 +151,8 @@ text-align:right;
.title {
font-size:11px;
font-weight:700;
+overflow:hidden;
+white-space:nowrap;
}
a:active {
diff --git a/skins/stone/tlist.tmpl b/skins/stone/tlist.tmpl
index e260dfc..c9571b0 100644
--- a/skins/stone/tlist.tmpl
+++ b/skins/stone/tlist.tmpl
@@ -98,7 +98,7 @@
<?% PROCESS StateImage %?>
<?% '</a>' IF allow('ttoggle') %?>
<?% IF allow('program') %?><a class="fieldinline" href="?cmd=program&amp;data=<?% channel %?><?% IF eventid %?>#E<?% eventid %?><?% END %?>" title="<?% gettext("Jump to program:") %?><?% sender %?><?% END %?>">
- <font class="fieldinline<?% IF state != "";" ";state;END %?>"><?% channel %?>.&nbsp;<?% chop(sender,20) %?></font>
+ <font class="fieldinline<?% IF state != "";" ";state;END %?>"><?% chop(sender,20) %?></font>
<?% '</a>' IF allow('program') %?>
</div>
</td>
diff --git a/skins/stone/tooltip.js b/skins/stone/tooltip.js
index 02ed692..458539b 100644
--- a/skins/stone/tooltip.js
+++ b/skins/stone/tooltip.js
@@ -202,7 +202,7 @@ function ttp_make_tlist_visable(title, tlist, x, y){
var content = "";
var values = eval('(' + oAnswer.responseText + ')');
if(values && values.data && typeof(values.data) == 'object'){
- for (var i = 1; i < values.data.length; i++) {
+ for (var i = 0; i < values.data.length; i++) {
var x = values.data[i];
var len = 23;
@@ -210,7 +210,12 @@ function ttp_make_tlist_visable(title, tlist, x, y){
content += '<span class="deactive">';
}
//var d = new Date(x[9] * 1000);
- content += x[4]; //Day
+ var d = new Date(x[4] * 1000);
+ if(0) {
+ content += d.getDate() + "/" + (d.getMonth()+1) + "/" + (d.getYear() + 1900); //Day
+ } else {
+ content += d.getDate() + "." + (d.getMonth()+1) + "." + (d.getYear() + 1900); //Day
+ }
content += " - ";
content += x[5]; //Start
content += "-";
diff --git a/skins/stone/vdrlist.tmpl b/skins/stone/vdrlist.tmpl
new file mode 100644
index 0000000..4627347
--- /dev/null
+++ b/skins/stone/vdrlist.tmpl
@@ -0,0 +1,118 @@
+<!-- vlist Template -->
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+<?% IF allow('vdredit') %?>
+ <a href="javascript:popup('vdredit','<?% id %?>',620,670,1)">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit definition of video disk recorder") %?>" />
+ </a>
+<?% END %?>
+<?% IF allow('vdrdelete') %?>
+ <a href="javascript:sureandreload('<?% gettext("Would you like to delete this definition of video disk recorder?") %?>','<?% escape(host) %?>','vdrdelete','<?% id %?>')">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete definition of video disk recorder") %?>" />
+ </a>
+<?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% UNLESS active == 'y' %?>
+ <?% state = "deactive" %?>
+ <?% ELSIF primary == 'y' %?>
+ <?% state = "running" %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% aus = gettext('Off') %?>
+<?% an = gettext('On') %?>
+<?% BLOCK StateImage %?>
+ <?% IF active == 'y' %?>
+ <img id="toggle<?% id %?>" src="images/on.<?% global.imagetyp %?>" alt="" title="<?% an %?>" />
+ <?% ELSE %?>
+ <img id="toggle<?% id %?>" src="images/off.<?% global.imagetyp %?>" alt="" title="<?% aus %?>" />
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsArea %?>
+ <?% PROCESS SetState %?>
+ <div class="areabegin">
+ <table class="fieldtable" summary="">
+ <tr>
+ <td class="fieldhead">
+ <?% IF allow('vdredit') %?>
+ <a title="<?% gettext("Edit definition of video disk recorder") %?>" href="javascript:popup('vdredit','<?% id %?>',620,670,1)" class="fieldinline" >
+ <?% END %?>
+ <?% PROCESS StateImage %?>
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% host %?></font>
+ <?% IF allow('vdredit') %?>
+ </a>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext" height="50" >
+ <?% IF allow('vdredit') %?>
+ <a title="<?% gettext("Edit definition of video disk recorder") %?>" href="javascript:popup('vdredit','<?% id %?>',620,670,1)" class="fieldinline" >
+ <?% END %?>
+ <font class="subtitle<?% IF state != "";" ";state;END %?>"><?% cards %?></font>
+ <?% IF allow('vdredit') %?>
+ </a>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext">
+ <table class="fieldinline" summary="">
+ <tr>
+ <td valign="middle" align="left" class="fieldinline" >
+ &nbsp;
+ </td>
+ <td class="fieldinline push">
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldbottom"></td>
+ </tr>
+ </table>
+ </div>
+<?% END %?>
+<?% ######################################################################## %?>
+<h1><?% gettext("Administration of video disk recorder") %?></h1>
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+ <?% FOREACH zeile = data %?>
+ <?% IF verbose;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;active=zeile.1;primary=zeile.2;host=zeile.3;cards=zeile.4 %?>
+ <?% IF zeile.size <= 1 %?>
+ <div class="areaclose"></div>
+ <strong><?% zeile %?></strong>
+ <?% ELSE %?>
+ <?% PROCESS ItemAsArea %?>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Administration of video disk recorder",20) %?></td></tr>
+<?% IF allow('vdrnew') %?>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Create new definition of video disk recorder") %?>" href="javascript:popupcmd('vdrnew',620,670,1)"><img src="images/new.<?% global.imagetyp %?>" alt="" title="<?% gettext("Create new definition of video disk recorder") %?>" /></a>&nbsp;
+ <a title="<?% gettext("Create new definition of video disk recorder") %?>" href="javascript:popupcmd('vdrnew',620,670,1)"><?% gettext("Create new definition of video disk recorder",20) %?></a><br />
+ </td>
+ </tr>
+<?% END %?>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone/widgets/littlemenu.tmpl b/skins/stone/widgets/littlemenu.tmpl
index f06d52d..5f80b5c 100644
--- a/skins/stone/widgets/littlemenu.tmpl
+++ b/skins/stone/widgets/littlemenu.tmpl
@@ -6,16 +6,15 @@
<div id="sidebar">
<?% IF allow('cedit') %?>
<table summary="">
- <tr><td class="sidehead"><?% gettext("Channels",20) %?></td></tr>
+ <tr><td class="sidehead"><?% gettext("Preferences") %?></td></tr>
<tr>
<td class="sidetext">
- <a href="?cmd=clist">
- <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit channels") %?>" />
- </a>
- &nbsp;
- <a href="?cmd=clist">
- <?% gettext("Edit channels",20) %?>
- </a>
+ <a href="?cmd=vdrlist"><img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Video disk recorder") %?>" /></a>&nbsp;<a href="?cmd=vdrlist"><?% gettext("Video disk recorder",20) %?></a>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidetext">
+ <a href="?cmd=clist"><img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Channels") %?>" /></a>&nbsp;<a href="?cmd=clist"><?% gettext("Channels",20) %?></a>
</td>
</tr>
<tr>
diff --git a/skins/stone/widgets/remote.tmpl b/skins/stone/widgets/remote.tmpl
index 1d8882e..a70ecc9 100644
--- a/skins/stone/widgets/remote.tmpl
+++ b/skins/stone/widgets/remote.tmpl
@@ -40,7 +40,8 @@ var interval = 5
var last = 0;
function remote(key) {
- post('remote',key);
+ var vdr = ( document.channelform.vdr.options ? document.channelform.vdr.options[document.channelform.vdr.options.selectedIndex].value : document.channelform.vdr.value );
+ post('remote',key + '&__vdr=' + vdr );
<?% IF monitor %?>
if(last + 1000 < Date.UTC()) {
grab();
@@ -51,8 +52,9 @@ function remote(key) {
<?% IF monitor %?>
function grab() {
if(document.remoteform.grabinterval.value > 0) {
- Now = new Date();
- document.livepicture.src = '?cmd=gdisplay&random=' + Now.getTime();
+ Now = new Date();
+ var vdr = ( document.channelform.vdr.options ? document.channelform.vdr.options[document.channelform.vdr.options.selectedIndex].value : document.channelform.vdr.value );
+ document.livepicture.src = '?cmd=gdisplay&__vdr='+vdr+'&random=' + Now.getTime();
}
last = Date.UTC();
}
@@ -82,7 +84,7 @@ aktiv = window.setInterval("grab()", inter);
<table class="fieldinline" summary="">
<tr>
<td class="fieldinline" valign="middle" align="center">
- <img alt="<?% date.now %?>" src="?cmd=gdisplay&amp;random=<?% date.now %?>" width="<?% width %?>" height="<?% height %?>" name="livepicture" />
+ <img alt="<?% date.now %?>" src="?cmd=gdisplay&amp;random=<?% date.now %?>&amp;__vdr=<?% param.vdr %?>" width="<?% width %?>" height="<?% height %?>" name="livepicture" />
</td>
</tr>
</table>
@@ -102,6 +104,7 @@ aktiv = window.setInterval("grab()", inter);
</td>
<?% END %?>
<td>
+ <form name="channelform" action="">
<table class="fieldtable" summary="">
<tr><td class="fieldhead"><div class="remotehead"><?% gettext("Remote") %?></div><?% INCLUDE shutter.inc %?></td></tr>
<tr>
@@ -284,11 +287,47 @@ aktiv = window.setInterval("grab()", inter);
</table>
</td>
</tr>
+ <?% IF param.vdrlist.size > 1 %?>
+ <tr>
+ <td colspan="7" align="center">
+ <select style="width:175px;" 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="7" align="center">
+ <select style="width:175px;" name="channels" onchange="post('switch', this.form.channels.options[this.form.channels.options.selectedIndex].value + '&amp;__vdr=' + ( this.form.vdr.options ? this.form.vdr.options[this.form.vdr.options.selectedIndex].value : this.form.vdr.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>
</table>
</td>
</tr>
<tr><td class="fieldbottom"></td></tr>
</table>
+ </form>
</td>
</tr>
</table>
diff --git a/skins/stone_flat/clist.tmpl b/skins/stone_flat/clist.tmpl
index b75d33f..bde6c5e 100644
--- a/skins/stone_flat/clist.tmpl
+++ b/skins/stone_flat/clist.tmpl
@@ -13,7 +13,7 @@
<?% ######################################################################## %?>
<?% BLOCK RowButtons %?>
<?% IF allow('program') %?>
- <a href="?cmd=program&data=<?% POS %?>">
+ <a href="?cmd=program&data=<?% id %?>">
<img src="images/watch.<?% global.imagetyp %?>" alt="" title="<?% gettext("Program guide") %?>" />
</a>
<?% END %?>
@@ -23,7 +23,7 @@
</a>
<?% END %?>
<?% IF allow('cdelete') %?>
- <a href="javascript:surecmd('<?% gettext("Would you like to delete this channel?") %?>','<?% escape(name) %?>','cdelete','<?% POS %?>',620,670)">
+ <a href="javascript:surecmd('<?% gettext("Would you like to delete this channel?") %?>','<?% escape(name) %?>','cdelete','<?% id %?>',620,670)">
<img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete channel") %?>" />
</a>
<?% END %?>
@@ -33,12 +33,12 @@
<tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
<td class="fieldinline">
<?% IF enableform %?>
- <input type="checkbox" value="<?% POS %?>" name="<?% name %?>" />
+ <input type="checkbox" value="<?% id %?>" name="<?% name %?>" />
<?% END %?>
</td>
<td class="fieldinline">
<?% IF allow('cedit') %?>
- <a name="<?% POS %?>" href="javascript:popup('cedit','<?% id %?>',620,670,1)">
+ <a href="javascript:popup('cedit','<?% id %?>',620,670,1)">
<?% END %?>
<?% POS %?>.<?% name %?>
<?% IF allow('cedit') %?>
@@ -91,7 +91,7 @@
<?%- id=zeile.0;name=zeile.1;frequency=zeile.2;parameters=zeile.3;
source=zeile.4;srate=zeile.5;VPID=zeile.6;APID=zeile.7;TPID=zeile.8;
CA=zeile.9;SID=zeile.10;NID=zeile.11;TID=zeile.12;RID=zeile.13;GRP=zeile.14;
- POS=zeile.15;CGRP=zeile.16; -%?>
+ POS=zeile.15;CGRP=zeile.16;HOST=zeile.17; -%?>
<?% IF loop.count == 1 || ( !sortby.defined && ( !OLDCGRP.defined || CGRP != OLDCGRP )) %?>
<?% IF OLDCGRP.defined %?>
@@ -107,6 +107,10 @@
<?% IF !sortby.defined %?>
<?% OLDCGRP = CGRP %?>
<?% END %?>
+ <?% IF not sortby.defined && OLDHOST != HOST %?>
+ <h2><?% gettext("Video disk recorder") %?> : <?% HOST %?></h2>
+ <?% OLDHOST = HOST %?>
+ <?% END %?>
<?% IF enableform && not sortby.defined %?>
<fieldset id="fieldset_<?% CGRP %?>" style="border: 0px; padding: 0px; margin: 0px;">
<?% END %?>
diff --git a/skins/stone_flat/now.tmpl b/skins/stone_flat/now.tmpl
index 0f3e4a6..3b05c8c 100644
--- a/skins/stone_flat/now.tmpl
+++ b/skins/stone_flat/now.tmpl
@@ -59,7 +59,7 @@
<?% END %?>
<?% END %?>
<a href="?cmd=program&amp;data=<?% channel %?>" title="<?% gettext("Program guide for") %?>&nbsp;<?% sender %?>">
- <font class="channel<?% IF state != "";" ";state;END %?>"><?% channel %?>.&nbsp;<?% chop(sender,20) %?></font></a>
+ <font class="channel<?% IF state != "";" ";state;END %?>"><?% chop(sender,20) %?></font></a>
</td>
<td class="fieldinline">
<a href="javascript:popup('display','<?% id %?>',620,670,0)" class="fieldinline">
diff --git a/skins/stone_flat/search.tmpl b/skins/stone_flat/search.tmpl
index e62160c..2e40b61 100644
--- a/skins/stone_flat/search.tmpl
+++ b/skins/stone_flat/search.tmpl
@@ -37,7 +37,7 @@
<tr<?% ' class="two"' IF z mod 2 == 0 %?>>
<td class="fieldinline">
<a class="fieldinline" style="vertical-align:bottom;" href="?cmd=program&amp;data=<?% channel %?><?% IF id > 0 %?>#E<?% id %?><?% END %?>" title="<?% gettext("Program guide for") %?>&nbsp;<?% sender %?>">
- <font class="channel<?% IF state != "";" ";state;END %?>"><?% channel %?>.&nbsp;<?% chop(sender,20) %?></font>
+ <font class="channel<?% IF state != "";" ";state;END %?>"><?% chop(sender,20) %?></font>
</a>
</td>
<td class="fieldinline">
diff --git a/skins/stone_flat/style.css b/skins/stone_flat/style.css
index 0e3435f..20499d8 100644
--- a/skins/stone_flat/style.css
+++ b/skins/stone_flat/style.css
@@ -167,7 +167,7 @@ text-align:right;
}
.title {
-font-size:11px;
+font-size:12px;
font-weight:700;
}
@@ -365,7 +365,7 @@ vertical-align:middle;
background:url(images/headfield.gif) no-repeat;
height:20px;
color:#000;
-font-size:11px;
+font-size:12px;
font-weight:700;
padding:0 2px 0 2px;
}
@@ -374,7 +374,7 @@ td.fieldtext {
vertical-align:top;
background:url(images/darkfield.gif) repeat-y;
color:#000;
-font-size:11px;
+font-size:12px;
padding:2px;
}
@@ -390,13 +390,13 @@ width:100%;
fieldinline {
color:#000;
-font-size:11px;
+font-size:12px;
}
#fieldinline input {
font-family:'Trebuchet MS', Lucida, Verdana, Helvetica, Arial, sans-serif;
color:#000;
-font-size:8px;
+font-size:12px;
}
#sidebar table {
@@ -421,7 +421,7 @@ td.sidetext {
vertical-align:top;
background:url(images/dark150.gif) repeat-y;
color:#000;
-font-size:11px;
+font-size:10px;
padding:4px;
}
@@ -469,7 +469,7 @@ td.areatext {
vertical-align:top;
background:url(images/dark400.gif) repeat-y;
color:#000;
-font-size:11px;
+font-size:12px;
padding:4px;
}
@@ -507,7 +507,7 @@ td.editortext {
vertical-align:top;
background:url(images/dark600.gif) repeat-y;
color:#000;
-font-size:11px;
+font-size:12px;
padding:4px;
}
@@ -537,7 +537,7 @@ td.largetext {
vertical-align:top;
background:url(images/dark800.gif) repeat-y;
color:#000;
-font-size:11px;
+font-size:12px;
padding:1px;
}
@@ -642,12 +642,12 @@ z-index:5;
visibility:hidden;
}
-.subtitle,td {
-font-size:10px;
+.subtitle,.channel,td {
+font-size:11px;
}
-.description,.channel {
-font-size:9px;
+.description {
+font-size:10px;
}
a,a:visited,a:active,a:link {
diff --git a/skins/stone_flat/tlist.tmpl b/skins/stone_flat/tlist.tmpl
index 598f733..a589706 100644
--- a/skins/stone_flat/tlist.tmpl
+++ b/skins/stone_flat/tlist.tmpl
@@ -97,7 +97,7 @@
</td>
<td class="fieldinline">
<?% IF allow('program') %?><a class="fieldinline" href="?cmd=program&amp;data=<?% channel %?><?% IF eventid %?>#E<?% eventid %?><?% END %?>" title="<?% gettext("Jump to program:") %?><?% sender %?>" style="vertical-align:bottom;"><?% END %?>
- <font class="channel<?% IF state != "";" ";state;END %?>"><?% channel %?>.</font>&nbsp;<font class="title<?% IF state != "";" ";state;END %?>"><?% sender %?></font>
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% sender %?></font>
<?% '</a>' IF allow('program') %?>
</td>
<td class="fieldinline">
diff --git a/skins/stone_flat/vdrlist.tmpl b/skins/stone_flat/vdrlist.tmpl
new file mode 100644
index 0000000..6bf916c
--- /dev/null
+++ b/skins/stone_flat/vdrlist.tmpl
@@ -0,0 +1,98 @@
+<!-- vlist Template -->
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+<?% IF allow('vdredit') %?>
+ <a href="javascript:popup('vdredit','<?% id %?>',620,670,1)">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit definition of video disk recorder") %?>" />
+ </a>
+<?% END %?>
+<?% IF allow('vdrdelete') %?>
+ <a href="javascript:sureandreload('<?% gettext("Would you like to delete this definition of video disk recorder?") %?>','<?% escape(host) %?>','vdrdelete','<?% id %?>')">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete definition of video disk recorder") %?>" />
+ </a>
+<?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% UNLESS active == 'y' %?>
+ <?% state = "deactive" %?>
+ <?% ELSIF primary == 'y' %?>
+ <?% state = "running" %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% aus = gettext('Off') %?>
+<?% an = gettext('On') %?>
+<?% BLOCK StateImage %?>
+ <?% IF active == 'y' %?>
+ <img id="toggle<?% id %?>" src="images/on.<?% global.imagetyp %?>" alt="" title="<?% an %?>" />
+ <?% ELSE %?>
+ <img id="toggle<?% id %?>" src="images/off.<?% global.imagetyp %?>" alt="" title="<?% aus %?>" />
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsFlat %?>
+ <?% PROCESS SetState %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <td>
+ <?% PROCESS StateImage %?>
+ <?% IF allow('vdredit') %?>
+ <a title="<?% gettext("Edit definition of video disk recorder") %?>" href="javascript:popup('vdredit','<?% id %?>',620,670,1)" class="fieldinline" >
+ <?% END %?>
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% host %?></font>
+ <?% IF allow('vdredit') %?>
+ </a>
+ <?% END %?>
+ </td>
+ <td>
+ <font class="subtitle<?% IF state != "";" ";state;END %?>"><?% cards %?></font>
+ </td>
+ <td class="push">
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+<?% END %?>
+<?% ######################################################################## %?>
+<h1><?% gettext("Administration of video disk recorder") %?></h1>
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+ <table class="largetable" summary="">
+ <tr><td class="largehead"><?% gettext("Administration of video disk recorder") %?></td></tr>
+ <tr>
+ <td class="largetext" align="left">
+ <table summary="" width="100%">
+ <tr height="0"><th></th><th></th><th width="60" align="right"></th></tr>
+ <?% FOREACH zeile = data %?>
+ <?% IF verbose;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;active=zeile.1;primary=zeile.2;host=zeile.3;cards=zeile.4 %?>
+ <?% PROCESS ItemAsFlat %?>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Administration of video disk recorder",20) %?></td></tr>
+<?% IF allow('vdrnew') %?>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Create new definition of video disk recorder") %?>" href="javascript:popupcmd('vdrnew',620,670,1)"><img src="images/new.<?% global.imagetyp %?>" alt="" title="<?% gettext("Create new definition of video disk recorder") %?>" /></a>&nbsp;
+ <a title="<?% gettext("Create new definition of video disk recorder") %?>" href="javascript:popupcmd('vdrnew',620,670,1)"><?% gettext("Create new definition of video disk recorder",20) %?></a><br />
+ </td>
+ </tr>
+<?% END %?>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/xstyle/bloecke/event_links.tmpl b/skins/xstyle/bloecke/event_links.tmpl
index 13d38e4..1cd30de 100644
--- a/skins/xstyle/bloecke/event_links.tmpl
+++ b/skins/xstyle/bloecke/event_links.tmpl
@@ -9,7 +9,7 @@
<a href="?cmd=tnew&amp;data=<?% data.0 %?>"><img src="images/record.png" title="<?% gettext("To record") %?>" name='recordlink' id='<?% data.0 %?>' /></a><?% umbruch %?>
<?% END %?>
<?% IF allow('switch') && switch %?>
- <a href="?cmd=switch&amp;data=<?% url(data.4) %?>"><img src="images/switch.png" title="<?% gettext("Switch to channel") %?>&nbsp;<?% data.4 %?>" /></a><?% umbruch %?>
+ <a href="?cmd=switch&amp;data=<?% url(data.4) %?>"><img src="images/switch.png" title="<?% gettext("Switch to channel") %?>&nbsp;<?% data.3 %?>" /></a><?% umbruch %?>
<?% END %?>
<?% INCLUDE 'bloecke/stars.tmpl' eventid=data.0 %?>
<?% IF data.7;
diff --git a/skins/xstyle/clist.tmpl b/skins/xstyle/clist.tmpl
index cf6c5c2..9c09a6f 100644
--- a/skins/xstyle/clist.tmpl
+++ b/skins/xstyle/clist.tmpl
@@ -37,7 +37,7 @@
<a href="?cmd=cedit&amp;data=<?% id %?>" title="<?% gettext("Edit channel") %?>"><img src="images/edit.png"></a>
<?%- END -%?>
<?%- IF allow('cdelete') -%?>
-<a href="javascript:sure(document.KanalListe, '<?% gettext("Would you like to delete this channel?") %?>\n\'<?% escape(name) %?>\' ?','?cmd=cdelete&amp;data=<?% POS %?>')"
+<a href="javascript:sure(document.KanalListe, '<?% gettext("Would you like to delete this channel?") %?>\n\'<?% escape(name) %?>\' ?','?cmd=cdelete&amp;data=<?% id %?>')"
title="<?% gettext("Delete channel") %?>" ><img src="images/delete.png"></a>
</div>
<?%- END -%?>
@@ -47,7 +47,7 @@
<tr<?% ' bgcolor="#F5F5F5"' IF loop.count mod 2 == 0 %?>>
<td>
<?% IF enableform %?>
- <input type="checkbox" value="<?% POS %?>" name="<?% name %?>" />
+ <input type="checkbox" value="<?% id %?>" name="<?% name %?>" />
<?% END %?>
</td>
<td>
@@ -141,8 +141,14 @@
<th align="right"></th>
</tr>
<?% FOREACH zeile = data %?>
- <?% id=zeile.0;name=zeile.1;frequency=zeile.2;parameters=zeile.3;source=zeile.4;srate=zeile.5;VPID=zeile.6;APID=zeile.7;TPID=zeile.8;CA=zeile.9;SID=zeile.10;NID=zeile.11;TID=zeile.12;RID=zeile.13;GRP=zeile.14;POS=zeile.15;CGRP=zeile.16 %?>
- <?% IF CGRP != CGRP_OLD %?>
+ <?% id=zeile.0;name=zeile.1;frequency=zeile.2;parameters=zeile.3;source=zeile.4;srate=zeile.5;VPID=zeile.6;APID=zeile.7;TPID=zeile.8;CA=zeile.9;SID=zeile.10;NID=zeile.11;TID=zeile.12;RID=zeile.13;GRP=zeile.14;POS=zeile.15;CGRP=zeile.16;HOST=zeile.17; %?>
+ <?% IF not sortby.defined && OLDHOST != HOST %?>
+ <tr>
+ <td colspan=10 bgcolor='#CCCCCC'><b><?% gettext("Video disk recorder") %?> : <?% HOST %?></b></td>
+ <tr>
+ <?% OLDHOST = HOST %?>
+ <?% END %?>
+ <?% IF not sortby.defined && CGRP != CGRP_OLD %?>
<tr>
<td colspan=10 bgcolor='#DDDDDD'><b><?% CGRP %?></b></td>
<tr>
diff --git a/skins/xstyle/mainmenu.inc b/skins/xstyle/mainmenu.inc
index 0a4cd35..c0d737c 100644
--- a/skins/xstyle/mainmenu.inc
+++ b/skins/xstyle/mainmenu.inc
@@ -6,6 +6,8 @@ webfxMenuImagePath = "images/"
webfxMenuUseHover = true;
webfxMenuHideTime = 500;
webfxMenuShowTime = 200;
+WebFXMenu.prototype.width = 175;
+<?% cuttext = 25 %?>
var myBar = new WebFXMenuBar;
@@ -16,13 +18,13 @@ var myBar = new WebFXMenuBar;
<?% FOREACH group = getModule('CHANNELS').ChannelGroupsArray('Name') %?>
runnowGrp.add(new WebFXMenuItem('<?% group.first %?>', "?cmd=now&data=&__cgrp=<?% group.last %?>"));
<?% END %?>
- runnow.add(new WebFXMenuItem("<?% gettext("Running now",12) %?>",null,null,runnowGrp));
+ runnow.add(new WebFXMenuItem("<?% gettext("Running now",cuttext ) %?>",null,null,runnowGrp));
var runnextGrp = new WebFXMenu;
<?% FOREACH group = getModule('CHANNELS').ChannelGroupsArray('Name') %?>
runnextGrp.add(new WebFXMenuItem('<?% group.first %?>', "?cmd=next&data=&__cgrp=<?% group.last %?>"));
<?% END %?>
- runnow.add(new WebFXMenuItem("<?% gettext("Next",12) %?>",null,null,runnextGrp));
+ runnow.add(new WebFXMenuItem("<?% gettext("Next",cuttext ) %?>",null,null,runnextGrp));
runnow.add(new WebFXMenuSeparator());
<?% USE date %?>
@@ -60,20 +62,24 @@ var myBar = new WebFXMenuBar;
<?% IF allow('topten') %?>program.add(new WebFXMenuItem("<?% gettext("Top ten entry") %?>", "?cmd=t10"));<?% END %?>
program.add(new WebFXMenuItem("<?% gettext("Search") %?>", "?cmd=search"));
program.add(new WebFXMenuSeparator());
- <?% FOREACH group = getModule('CHANNELS').ChannelGroupsArray('Name') %?>
- var programGrp<?% group.last %?> = new WebFXMenu;
- <?% z = 0 %?>
- <?% FOREACH ch = getModule('CHANNELS').ChannelArray('Name', "GRP = ${group.last}") %?>
- <?% z = z + 1 %?>
- <?% LAST IF z > global.cfgMaxChannelMenuEntrys %?>
- programGrp<?% group.last %?>.add(new WebFXMenuItem('<?% escape(ch.first) %?>', '?cmd=program&data=<?% ch.last %?>'));
+
+ <?% FOREACH ch = getModule('CHANNELS').ChannelWithGroup('c.name,c.hash') %?>
+ <?% LAST IF global.cfgMaxChannelMenuEntrys && loop.count > global.cfgMaxChannelMenuEntrys %?>
+ <?% IF ch.2 != lastgroup %?>
+ <?% IF lastgroup %?>
+ program.add(new WebFXMenuItem('<?% chop(lastgroup,cuttext) %?>',null,null,programGrp<?% z %?>));
+ <?% END %?>
+ <?% lastgroup = ch.2 %?>
+ <?% z = z + 1 %?>
+ var programGrp<?% z %?> = new WebFXMenu;
<?% END %?>
- program.add(new WebFXMenuItem('<?% group.first %?>',null,null,programGrp<?% group.last %?>));
+ programGrp<?% z %?>.add(new WebFXMenuItem('<?% escape(chop(ch.0,cuttext)) %?>', '?cmd=program&data=<?% ch.1 %?>'));
<?% END %?>
+ program.add(new WebFXMenuItem('<?% chop(lastgroup,cuttext) %?>',null,null,programGrp<?% z %?>));
<?% IF allow('erestart') %?>
program.add(new WebFXMenuSeparator());
- program.add(new WebFXMenuItem("<?% gettext("Update EPG data",12) %?>","?cmd=erestart"));
+ program.add(new WebFXMenuItem("<?% gettext("Update EPG data",cuttext ) %?>","?cmd=erestart"));
<?% END %?>
myBar.add(new WebFXMenuButton("<?% gettext("Program guide") %?>",null,null,program));
@@ -81,35 +87,36 @@ var myBar = new WebFXMenuBar;
// -----
var control = new WebFXMenu;
- <?% IF allow('alist') %?>control.add(new WebFXMenuItem("<?% gettext("Autotimer",12) %?>", "?cmd=alist"));<?% END %?>
- <?% IF allow('tlist') %?>control.add(new WebFXMenuItem("<?% gettext("Timers",12) %?>", "?cmd=tlist"));<?% END %?>
- <?% IF allow('movetimerlist') %?>control.add(new WebFXMenuItem("<?% gettext("Rules to move timer",12) %?>","?cmd=movetimerlist"));<?% END %?>
+ <?% IF allow('alist') %?>control.add(new WebFXMenuItem("<?% gettext("Autotimer",cuttext ) %?>", "?cmd=alist"));<?% END %?>
+ <?% IF allow('tlist') %?>control.add(new WebFXMenuItem("<?% gettext("Timers",cuttext ) %?>", "?cmd=tlist"));<?% END %?>
+ <?% IF allow('movetimerlist') %?>control.add(new WebFXMenuItem("<?% gettext("Rules to move timer",cuttext ) %?>","?cmd=movetimerlist"));<?% END %?>
myBar.add(new WebFXMenuButton("<?% gettext("Programming") %?>",null,null,control));
var media = new WebFXMenu;
- <?% IF allow('rlist') %?>media.add(new WebFXMenuItem("<?% gettext("Recordings",12) %?>", "?cmd=rlist"));<?% END %?>
- <?% IF allow('mlist') %?>media.add(new WebFXMenuItem("<?% gettext("Music",12) %?>", "?cmd=mlist"));<?% END %?>
- <?% IF allow('mllist') %?>media.add(new WebFXMenuItem("<?% gettext("Media library",12) %?>","?cmd=mllist"));<?% END %?>
+ <?% IF allow('rlist') %?>media.add(new WebFXMenuItem("<?% gettext("Recordings",cuttext ) %?>", "?cmd=rlist"));<?% END %?>
+ <?% IF allow('mlist') %?>media.add(new WebFXMenuItem("<?% gettext("Music",cuttext ) %?>", "?cmd=mlist"));<?% END %?>
+ <?% IF allow('mllist') %?>media.add(new WebFXMenuItem("<?% gettext("Media library",cuttext ) %?>","?cmd=mllist"));<?% END %?>
myBar.add(new WebFXMenuButton("<?% gettext("Media content") %?>",null,null,media));
var tools = new WebFXMenu;
- <?% IF allow('remote') %?>tools.add(new WebFXMenuItem("<?% gettext("Remote",12) %?>", "?cmd=remote"));<?% END %?>
- <?% IF allow('vtxpage') %?>tools.add(new WebFXMenuItem("<?% gettext("Teletext",12) %?>", "?cmd=vtxpage"));<?% END %?>
- <?% IF allow('cmdlist') %?>tools.add(new WebFXMenuItem("<?% gettext("Commands",12) %?>", "?cmd=cmdlist"));<?% END %?>
- <?% IF allow('report') %?>tools.add(new WebFXMenuItem("<?% gettext("Report",12) %?>","?cmd=report"));<?% END %?>
+ <?% IF allow('remote') %?>tools.add(new WebFXMenuItem("<?% gettext("Remote",cuttext ) %?>", "?cmd=remote"));<?% END %?>
+ <?% IF allow('vtxpage') %?>tools.add(new WebFXMenuItem("<?% gettext("Teletext",cuttext ) %?>", "?cmd=vtxpage"));<?% END %?>
+ <?% IF allow('cmdlist') %?>tools.add(new WebFXMenuItem("<?% gettext("Commands",cuttext ) %?>", "?cmd=cmdlist"));<?% END %?>
+ <?% IF allow('report') %?>tools.add(new WebFXMenuItem("<?% gettext("Report",cuttext ) %?>","?cmd=report"));<?% END %?>
myBar.add(new WebFXMenuButton("<?% gettext("Tools") %?>",null,null,tools));
// -----
var admin = new WebFXMenu;
- <?% IF allow('cl') %?>admin.add(new WebFXMenuItem("<?% gettext("Channels",12) %?>", "?cmd=cl"));<?% END %?>
- <?% IF allow('ul') %?>admin.add(new WebFXMenuItem("<?% gettext("User",12) %?>","?cmd=ul"));
- <?% ELSIF allow('uprefs') %?>admin.add(new WebFXMenuItem("<?% gettext("Personality",12) %?>","?cmd=uprefs"));<?% END %?>
- <?% IF allow('rel') %?>admin.add(new WebFXMenuItem("<?% gettext("Reload",12) %?>","?cmd=rel"));<?% END %?>
- <?% IF allow('logout') %?>admin.add(new WebFXMenuItem("<?% gettext("Logout",12) %?>","?cmd=logout"));<?% END %?>
- <?% IF allow('restart') %?>admin.add(new WebFXMenuItem("<?% gettext("Restart",12) %?>","?cmd=restart"));<?% END %?>
+ <?% IF allow('vl') %?>admin.add(new WebFXMenuItem("<?% gettext("Video disk recorder",cuttext ) %?>","?cmd=vl"));<?% END %?>
+ <?% IF allow('cl') %?>admin.add(new WebFXMenuItem("<?% gettext("Channels",cuttext ) %?>", "?cmd=cl"));<?% END %?>
+ <?% IF allow('ul') %?>admin.add(new WebFXMenuItem("<?% gettext("User",cuttext ) %?>","?cmd=ul"));
+ <?% ELSIF allow('uprefs') %?>admin.add(new WebFXMenuItem("<?% gettext("Personality",cuttext ) %?>","?cmd=uprefs"));<?% END %?>
+ <?% IF allow('rel') %?>admin.add(new WebFXMenuItem("<?% gettext("Reload",cuttext ) %?>","?cmd=rel"));<?% END %?>
+ <?% IF allow('logout') %?>admin.add(new WebFXMenuItem("<?% gettext("Logout",cuttext ) %?>","?cmd=logout"));<?% END %?>
+ <?% IF allow('restart') %?>admin.add(new WebFXMenuItem("<?% gettext("Restart",cuttext ) %?>","?cmd=restart"));<?% END %?>
myBar.add(new WebFXMenuButton("<?% gettext("Administration") %?>",null,null,admin));
@@ -119,7 +126,7 @@ var myBar = new WebFXMenuBar;
var prefs = new WebFXMenu;
<?% FOREACH co = getModule('CONFIG').realModNames %?>
<?% IF co != "CONFIG" %?>
- prefs.add(new WebFXMenuItem("<?% chop(co,12) %?>", "?cmd=configedit&amp;data=<?% co %?>"));
+ prefs.add(new WebFXMenuItem("<?% chop(co,cuttext ) %?>", "?cmd=configedit&amp;data=<?% co %?>"));
<?% END %?>
<?% END %?>
myBar.add(new WebFXMenuButton("<?% gettext("Preferences") %?>",null,null,prefs));
diff --git a/skins/xstyle/vdrlist.tmpl b/skins/xstyle/vdrlist.tmpl
new file mode 100644
index 0000000..4fbb418
--- /dev/null
+++ b/skins/xstyle/vdrlist.tmpl
@@ -0,0 +1,45 @@
+<!-- TableTemplate -->
+<h1><?% gettext("Administration of video disk recorder") %?></h1>
+
+<div id="navcontainer">
+<ul id="navlist">
+ <li><a href="?cmd=vdrnew"><?% gettext("Create new definition of video disk recorder") %?></a></li>
+</ul>
+</div>
+<p>
+
+<table border="0" width="95%">
+<form name='vdrlist'>
+<?% INCLUDE 'widgets/referer.tmpl' %?>
+<?% IF data.size %?>
+ <?% fields = data.shift %?>
+ <tr>
+ <?% FOREACH field = fields %?>
+ <th><?% field %?></th>
+ <?% END %?>
+ </tr>
+ <?% x = -1 %?>
+ <?% FOREACH zeile = data %?>
+ <?% x = x + 1 %?>
+ <tr class="<?% myclass %?>" <?% IF (x mod 2) != 0 %?>bgcolor='#F5F5F5'<?% END %?>>
+ <?% c = 0 %?>
+ <?% FOREACH field = zeile %?>
+ <?% c = c + 1 %?>
+ <?% IF c == 1; # Id Field %?>
+ <td>
+ <a title="<?% gettext("Edit definition of video disk recorder") %?>" href="?cmd=vdredit&amp;data=<?% zeile.0 %?>">
+ <img src='images/edit.png'></a>&nbsp;
+ <a title="<?% gettext("Delete definition of video disk recorder") %?>"
+ href="#" onclick="sure(document.vdrlist, '<?% gettext("Would you like to delete this definition of video disk recorder?") %?>: <?% escape(zeile.3) %?>','?cmd=vdrdelete&amp;data=<?% zeile.0 %?>')">
+ <img src='images/delete.png'>
+ </a>
+ </td>
+ <?% ELSE %?>
+ <td><?% field %?></td>
+ <?% END %?>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+<?% END %?>
+</form>
+</table>
diff --git a/skins/xstyle/widgets/remote.tmpl b/skins/xstyle/widgets/remote.tmpl
index 4acb00f..942481d 100644
--- a/skins/xstyle/widgets/remote.tmpl
+++ b/skins/xstyle/widgets/remote.tmpl
@@ -10,9 +10,10 @@ 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;
+ img.src = url + '&__vdr=' + vdr;
}
function switch_channel(url) {
@@ -27,8 +28,9 @@ function switch_channel(url) {
<?% IF monitor %?>
function grab() {
if(document.remoteform.grabinterval.value > 0) {
- Now = new Date();
- document.livepicture.src = '?cmd=gdisplay&random=' + Now.getTime();
+ 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();
}
@@ -57,8 +59,8 @@ aktiv = window.setInterval("grab()", inter);
<table border=0 cellpadding=0 cellspacing=0>
<tr>
<?% IF monitor %?>
- <td rowspan="12">
- <img src="?cmd=gdisplay&random=<?% date.now %?>" width="<?% param.width %?>" height="<?% param.height %?>" name="livepicture">
+ <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="2" align="left"><nobr><input type="button" onclick="self.location.href='?cmd=r&monitor=<?% monitor ? 0 : 1 %?>'" name="monitor" value="<?% gettext("Monitor") %?>"></td>
@@ -117,6 +119,41 @@ aktiv = window.setInterval("grab()", inter);
<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">