diff options
| author | Andreas Brachold <vdr07@deltab.de> | 2008-07-27 15:18:27 +0000 |
|---|---|---|
| committer | Andreas Brachold <vdr07@deltab.de> | 2008-07-27 15:18:27 +0000 |
| commit | 6033fafd7efae9185362fb0e22e1fe429a951405 (patch) | |
| tree | 648a81901c60b498a90ffbc566e8197103c27c40 | |
| parent | 3b87157ecc2c573d2181171ab670383b4ab353eb (diff) | |
| download | xxv-6033fafd7efae9185362fb0e22e1fe429a951405.tar.gz xxv-6033fafd7efae9185362fb0e22e1fe429a951405.tar.bz2 | |
* Redesign SVDRP Communation to support more as one video disk recorder (Change database schema to version 30)
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&data=<?% POS %?>')"> + <a href="javascript:sure('<?% gettext("Would you like to delete this channel?") %?> : \'<?% escape( name ) %?>\' ?','?cmd=cdelete&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&data=<?% channel %?>" title="<?% gettext("Program guide for") %?> <?% sender %?>"> - <font class="channel<?% IF state != "";" ";state;END %?>"><?% channel %?>. <?% 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&data=<?% channel %?><?% IF id > 0 %?>#E<?% id %?><?% END %?>" title="<?% gettext("Program guide for") %?> <?% sender %?>"> - <font class="channel<?% IF state != "";" ";state;END %?>"><?% channel %?>. <?% 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&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 %?>. </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&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&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> + <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> - + <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 + '&__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&random=<?% date.now %?>" width="<?% width %?>" height="<?% height %?>" name="livepicture" /> + <img alt="<?% date.now %?>" src="?cmd=gdisplay&random=<?% date.now %?>&__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 = "&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 %?>&__sortby=<?% sortby %?>&__desc=<?% orderby %?>&start=<?% start - global.pagelimit %?>&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 %?>&__sortby=<?% sortby %?>&__desc=<?% orderby %?>&start=<?% start + global.pagelimit %?>&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 = "&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&data=<?% channel %?>" title="<?% gettext("Program guide for") %?> <?% sender %?>"> - <font class="fieldinline<?% IF state != "";" ";state;END %?>"><?% channel %?>. <?% 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&data=<?% channel %?><?% IF id > 0 %?>#E<?% id %?><?% END %?>" title="<?% gettext("Program guide for") %?> <?% sender %?>"> - <font class="fieldinline<?% IF state != "";" ";state;END %?>"><?% channel %?>. <?% 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&data=<?% channel %?><?% IF eventid %?>#E<?% eventid %?><?% END %?>" title="<?% gettext("Jump to program:") %?><?% sender %?><?% END %?>"> - <font class="fieldinline<?% IF state != "";" ";state;END %?>"><?% channel %?>. <?% 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" > + + </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> + <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"> </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> - - <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> <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> <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&random=<?% date.now %?>" width="<?% width %?>" height="<?% height %?>" name="livepicture" /> + <img alt="<?% date.now %?>" src="?cmd=gdisplay&random=<?% date.now %?>&__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 + '&__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&data=<?% channel %?>" title="<?% gettext("Program guide for") %?> <?% sender %?>"> - <font class="channel<?% IF state != "";" ";state;END %?>"><?% channel %?>. <?% 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&data=<?% channel %?><?% IF id > 0 %?>#E<?% id %?><?% END %?>" title="<?% gettext("Program guide for") %?> <?% sender %?>"> - <font class="channel<?% IF state != "";" ";state;END %?>"><?% channel %?>. <?% 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&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> <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> + <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"> </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&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&data=<?% url(data.4) %?>"><img src="images/switch.png" title="<?% gettext("Switch to channel") %?> <?% data.4 %?>" /></a><?% umbruch %?> + <a href="?cmd=switch&data=<?% url(data.4) %?>"><img src="images/switch.png" title="<?% gettext("Switch to channel") %?> <?% 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&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&data=<?% POS %?>')" +<a href="javascript:sure(document.KanalListe, '<?% gettext("Would you like to delete this channel?") %?>\n\'<?% escape(name) %?>\' ?','?cmd=cdelete&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&data=<?% co %?>")); + prefs.add(new WebFXMenuItem("<?% chop(co,cuttext ) %?>", "?cmd=configedit&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&data=<?% zeile.0 %?>"> + <img src='images/edit.png'></a> + <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&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 %?>&__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'> </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&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"> |
