migrating
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1789 2a923420-c742-0410-a762-8d5b09965624
|
@ -10,7 +10,7 @@ httpheader
|
|||
|
||||
set service [cgi_get service 0]
|
||||
set event [cgi_get event 0]
|
||||
if {![cgi_exists bare]} header
|
||||
if {![cgi_exists bare]} header else noheader
|
||||
|
||||
set record [lindex [epg fetch dump -service $service -event $event] 0]
|
||||
$record get_channel_info
|
||||
|
|
|
@ -4,12 +4,11 @@ package require cgi
|
|||
source /mod/webif/lib/setup
|
||||
require epg.class spinner.class altrow settings.class
|
||||
|
||||
jqplugin highlight
|
||||
header
|
||||
|
||||
require totop
|
||||
|
||||
puts "<script type=text/javascript src=/js/jquery.highlight.js></script>"
|
||||
|
||||
set ct [cgi_get ct 0]
|
||||
set crid [cgi_get crid ""]
|
||||
set scrid [cgi_get scrid ""]
|
||||
|
@ -56,6 +55,11 @@ if {$ct > 0 } {
|
|||
}
|
||||
|
||||
set favlist [epg favlist]
|
||||
if {[$s service_style] eq "standard"} {
|
||||
set surl xservice
|
||||
} else {
|
||||
set surl service
|
||||
}
|
||||
|
||||
if {[llength $records] > 0} {
|
||||
puts {
|
||||
|
@ -105,7 +109,7 @@ foreach record [lsort -command rsort $records] {
|
|||
puts "<td>[$record get channel_num]</td>"
|
||||
puts "<td>[$record channel_icon 50]</td>"
|
||||
puts "<td nowrap>
|
||||
<a href=/cgi-bin/epg/service.jim?service=[$record get service_id]>
|
||||
<a href=/epg/$surl.jim?service=[$record get service_id]>
|
||||
[$record get channel_name]
|
||||
</a></td>"
|
||||
puts [$record cell]
|
||||
|
|
|
@ -1,133 +0,0 @@
|
|||
#!/mod/bin/jimsh
|
||||
|
||||
package require cgi
|
||||
source /mod/webif/lib/setup
|
||||
require epg.class spinner.class altrow
|
||||
|
||||
header
|
||||
|
||||
require totop
|
||||
|
||||
[spinner new {
|
||||
text "Loading EPG Data..."
|
||||
size "1.2em"
|
||||
style "margin: 1em;"
|
||||
}] start
|
||||
|
||||
require epg_popup
|
||||
|
||||
set service [cgi_get service 4170]
|
||||
set records [epg dbfetch dump \
|
||||
-service $service \
|
||||
-sort "strftime('%%H%%J', start, 'unixepoch'), strftime('%%M', start, 'unixepoch')" \
|
||||
-debug 0
|
||||
]
|
||||
|
||||
if {[llength $records] == 0} {
|
||||
puts "No data for service.."
|
||||
exit
|
||||
}
|
||||
|
||||
# Load the channel information from the first entry
|
||||
set tr [lindex $records 0]
|
||||
$tr get_channel_info
|
||||
set channel_num [$tr get channel_num]
|
||||
set channel_name [$tr get channel_name]
|
||||
|
||||
puts "
|
||||
<link type=text/css rel=Stylesheet href=service.css />
|
||||
<div style=\"margin: 0 1em 1em 1em\">
|
||||
[$tr channel_icon 40 {vertical-align:middle}]
|
||||
<span style=\"vertical-align: middle\">
|
||||
$channel_num - $channel_name
|
||||
</span>
|
||||
</div>
|
||||
"
|
||||
|
||||
puts "
|
||||
<div class=weekview>
|
||||
<table class=weekview>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class=hour></th>
|
||||
"
|
||||
set t [clock seconds]
|
||||
set firstday [clock format $t -format {%Y%m%d}]
|
||||
set daymap {}
|
||||
loop i 0 7 {
|
||||
puts "<th class=\"day day-$i\">[clock format $t -format {%a}]<br>"
|
||||
puts "[clock format $t -format {%e %b}]</th>"
|
||||
set daymap([clock format $t -format {%Y%m%d}]) $i
|
||||
incr t 86400
|
||||
}
|
||||
puts "
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
"
|
||||
|
||||
set currhour -1
|
||||
set currday -1
|
||||
foreach e $records {
|
||||
set start [$e get start]
|
||||
set day [clock format $start -format "%Y%m%d"]
|
||||
if {$day ni $daymap} continue
|
||||
set hour [clock format $start -format "%H"]
|
||||
if {$hour != $currhour} {
|
||||
if {$currhour ne "-1"} {
|
||||
loop i $daymap($currday) 6 {
|
||||
puts "</td><td class=\"dayhour\">"
|
||||
}
|
||||
puts -nonewline "</td></tr>"
|
||||
}
|
||||
puts "
|
||||
<tr class=\"hour\">
|
||||
<th class=hour>$hour:00</th>
|
||||
<td class=\"dayhour\">
|
||||
"
|
||||
set currhour $hour
|
||||
set currday $firstday
|
||||
set newcell 1
|
||||
}
|
||||
if {$day ne $currday} {
|
||||
loop i $daymap($currday) $daymap($day) {
|
||||
puts "</td><td class=\"dayhour\">"
|
||||
}
|
||||
set currday $day
|
||||
set newcell 1
|
||||
}
|
||||
set class "prog"
|
||||
if {!$newcell} { set class "prog progp" }
|
||||
if {[$e get series_crid] ne ""} {
|
||||
set ro 2
|
||||
} else {
|
||||
set ro 1
|
||||
}
|
||||
set st [$e scheduled]
|
||||
puts "
|
||||
<div class=\"$class\">
|
||||
<div class=time>
|
||||
[clock format $start -format {%H:%M}]-[clock format [$e end] -format {%H:%M}]
|
||||
</div>
|
||||
<div class=title>
|
||||
<a class=event href=# xs=$service xe=[$e get event_id] sch=$st rec=$ro>
|
||||
[$e get name]
|
||||
</a>
|
||||
</div>
|
||||
<div class=synopsis>[$e get text] [join [$e icon_set 14] '']</div>
|
||||
</div>
|
||||
"
|
||||
set newcell 0
|
||||
}
|
||||
|
||||
puts "
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
"
|
||||
|
||||
epg cleanup
|
||||
footer
|
||||
|
|
@ -19,6 +19,7 @@ if {[cgi_get now] eq "yes"} {
|
|||
}
|
||||
|
||||
system restartpending 0
|
||||
jqplugin progressbar
|
||||
header
|
||||
|
||||
# Commit pending reservations on older mod versions.
|
||||
|
@ -27,8 +28,6 @@ if {![file exists /sbin/rsvsync] && ![file exists /mod/boot/rsvsync]} {
|
|||
}
|
||||
|
||||
puts {
|
||||
<link href=/css/jquery.progressbar.css rel=stylesheet type=text/css />
|
||||
<script type="text/javascript" src="/js/jquery.progressbar.js"></script>
|
||||
|
||||
<script type=text/javascript>
|
||||
var handle = 0;
|
||||
|
|
|
@ -36,6 +36,7 @@ set hostname [$settings hostname]
|
|||
set smtp_server [$settings smtp_server]
|
||||
set channel_group [$settings channel_group]
|
||||
set epg_style [$settings epg_style]
|
||||
set service_style [$settings service_style]
|
||||
set pkgdev [$settings pkgdev]
|
||||
set notoolbar [$settings notoolbar]
|
||||
set nomobile [$settings nomobile]
|
||||
|
@ -83,6 +84,7 @@ _handle_update ascii smtp_server $smtp_server "SMTP Server"
|
|||
handle_int_update channel_group $channel_group "Channel Group"
|
||||
handle_int_update xepghours $xepghours "Grid EPG Hours"
|
||||
handle_str_update epg_style $epg_style "EPG Type"
|
||||
handle_str_update service_style $service_style "EPG Channel Type"
|
||||
handle_int_update pkgdev $pkgdev "Development Package Display"
|
||||
handle_int_update notoolbar $notoolbar "Disable toolbar"
|
||||
handle_int_update nomobile $nomobile "Disable mobile link"
|
||||
|
@ -122,13 +124,11 @@ if {$aclact ne "-" && $acluser ne "-"} {
|
|||
exit
|
||||
}
|
||||
|
||||
jqplugin form iphone-style-checkboxes
|
||||
header
|
||||
|
||||
puts {
|
||||
<script type="text/javascript" src="/cgi-bin/settings.js"></script>
|
||||
<script type="text/javascript" src="/js/jquery.form.js"></script>
|
||||
<script type="text/javascript" src="/js/iphone-style-checkboxes.js"></script>
|
||||
<link href=/css/iphone-style-checkboxes.css rel=stylesheet type=text/css />
|
||||
<script type="text/javascript" src="settings.js"></script>
|
||||
<div id=accordion>
|
||||
}
|
||||
|
||||
|
@ -247,6 +247,30 @@ puts "
|
|||
</tr>
|
||||
"
|
||||
|
||||
puts "
|
||||
<tr>
|
||||
<form class=auto id=service_style method=get action=$env(REQUEST_URI)>
|
||||
<th class=key>Default Single-channel style</th>
|
||||
<td><select id=service_style name=service_style
|
||||
class=\"text ui-widget-content ui-corner-all\">
|
||||
"
|
||||
puts "<option value=standard"
|
||||
if {$service_style eq "standard"} { puts " selected" }
|
||||
puts ">Standard\n"
|
||||
puts "<option value=grid"
|
||||
if {$service_style ne "standard"} { puts " selected" }
|
||||
puts ">Grid\n"
|
||||
puts "
|
||||
</select>
|
||||
<small>
|
||||
<input name=service_style value=\"set\" type=submit>
|
||||
</small>
|
||||
<div id=service_style_output></div>
|
||||
</td>
|
||||
</form>
|
||||
</tr>
|
||||
"
|
||||
|
||||
puts "
|
||||
<tr>
|
||||
<form class=auto id=channel_group method=get action=$env(REQUEST_URI)>
|
||||
|
|
|
@ -4,25 +4,29 @@ package require cgi
|
|||
source /mod/webif/lib/setup
|
||||
require settings.class
|
||||
|
||||
jqplugin enadis
|
||||
jscss xepg.js /css/xepg.css
|
||||
header
|
||||
|
||||
require epg.class spinner.class altrow epg_search totop system.class
|
||||
|
||||
set irinst [system pkginst ir]
|
||||
|
||||
puts {
|
||||
<link type="text/css" href="/css/xepg.css" rel="Stylesheet" />
|
||||
<script type=text/javascript src=/js/enadis.js></script>
|
||||
<script type=text/javascript src=xepg.js></script>
|
||||
}
|
||||
set s [settings]
|
||||
|
||||
if {[[settings] chanchangenc]} {
|
||||
if {[$s chanchangenc]} {
|
||||
puts { <script type=text/javascript src=/js/chanchangenc.js></script> }
|
||||
} else {
|
||||
jqplugin confirmAction
|
||||
puts { <script type=text/javascript src=/js/chanchange.js></script> }
|
||||
}
|
||||
|
||||
if {[$s service_style] eq "standard"} {
|
||||
set surl xservice
|
||||
} else {
|
||||
set surl service
|
||||
}
|
||||
|
||||
[spinner new {
|
||||
text "Loading EPG Information..."
|
||||
size "1.2em"
|
||||
|
@ -40,7 +44,7 @@ if {$stt <= $now} {
|
|||
set current 0
|
||||
}
|
||||
|
||||
set favgroup [[settings] channel_group]
|
||||
set favgroup [$s channel_group]
|
||||
|
||||
set hours [expr 1.0 * [[settings] xepghours]]
|
||||
if {$hours == 0} { set hours 4.0 }
|
||||
|
@ -139,7 +143,7 @@ foreach e $records {
|
|||
puts "[$e channel_icon 30] "
|
||||
if {$irinst} { puts "</a>" }
|
||||
puts "$chnum
|
||||
<a href=\"/cgi-bin/epg/service.jim?service=[$e get service_id]\"
|
||||
<a href=\"/epg/$surl.jim?service=[$e get service_id]\"
|
||||
title=\"[$e get channel_name]\">
|
||||
[$e get channel_name]
|
||||
</a></div>"
|
||||
|
|
|
@ -5,6 +5,8 @@ package require cgi
|
|||
source /mod/webif/lib/setup
|
||||
require ts.class system.class
|
||||
|
||||
jqplugin progressbar
|
||||
jscss audio.js
|
||||
header
|
||||
|
||||
set rfile [cgi_get file]
|
||||
|
@ -12,10 +14,8 @@ set ts [ts fetch $rfile]
|
|||
set dir [file dirname $rfile]
|
||||
set len [$ts duration 1]
|
||||
|
||||
|
||||
puts "
|
||||
<link href=/css/jquery.progressbar.css rel=stylesheet type=text/css />
|
||||
<script type=text/javascript src=/js/jquery.progressbar.js></script>
|
||||
<script type=text/javascript src=audio.js></script>
|
||||
|
||||
<fieldset class=cleft>
|
||||
<legend>Audio Extraction</legend>
|
||||
|
|
|
@ -4,6 +4,8 @@ package require cgi
|
|||
source /mod/webif/lib/setup
|
||||
require ts.class pretty_size
|
||||
|
||||
jqplugin progressbar
|
||||
jscss chunk.js chunk.css
|
||||
header
|
||||
|
||||
set rfile [cgi_get file]
|
||||
|
@ -19,10 +21,6 @@ set esttime $(int($len * 0.025))
|
|||
if {[$ts get definition] eq "HD"} { set esttime $($esttime * 4) }
|
||||
|
||||
puts "
|
||||
<script type=text/javascript src=/js/jquery.progressbar.js></script>
|
||||
<script type=text/javascript src=chunk.js></script>
|
||||
<link href=/css/jquery.progressbar.css rel=stylesheet type=text/css />
|
||||
<link href=chunk.css rel=stylesheet type=text/css />
|
||||
|
||||
<fieldset class=cleft>
|
||||
<legend>Split recording into 45 minute segments</legend>
|
||||
|
|
|
@ -4,6 +4,8 @@ package require cgi
|
|||
source /mod/webif/lib/setup
|
||||
require ts.class pretty_size
|
||||
|
||||
jqplugin progressbar
|
||||
jscss crop.js
|
||||
header
|
||||
|
||||
set rfile [cgi_get file]
|
||||
|
@ -13,10 +15,6 @@ set dir [file dirname $rfile]
|
|||
set len [$ts duration 1]
|
||||
|
||||
puts "
|
||||
<link href=/css/jquery.progressbar.css rel=stylesheet type=text/css />
|
||||
<script type=text/javascript src=/js/jquery.progressbar.js></script>
|
||||
<script type=text/javascript src=crop.js></script>
|
||||
|
||||
<fieldset class=cleft>
|
||||
<legend>Crop recording</legend>
|
||||
|
||||
|
|
|
@ -5,6 +5,8 @@ package require cgi
|
|||
source /mod/webif/lib/setup
|
||||
require ts.class
|
||||
|
||||
jqplugin progressbar
|
||||
jscss decrypt.js
|
||||
header
|
||||
|
||||
set rfile [cgi_get file]
|
||||
|
@ -14,9 +16,6 @@ set len [$ts duration 1]
|
|||
lassign [$ts dlnaloc "127.0.0.1"] url
|
||||
|
||||
puts "
|
||||
<link href=/css/jquery.progressbar.css rel=stylesheet type=text/css />
|
||||
<script type=text/javascript src=/js/jquery.progressbar.js></script>
|
||||
<script type=text/javascript src=decrypt.js></script>
|
||||
|
||||
<fieldset class=cleft>
|
||||
<legend>Decrypt in-place</legend>
|
||||
|
|
|
@ -4,6 +4,8 @@ package require cgi
|
|||
source /mod/webif/lib/setup
|
||||
require ts.class pretty_size system.class settings.class escape browse.class
|
||||
|
||||
jqplugin contextMenu bar enadis
|
||||
jscss script.js style.css
|
||||
header
|
||||
|
||||
set nicesplice [system pkginst nicesplice]
|
||||
|
@ -249,16 +251,6 @@ set dir [cgi_get dir $mroot]
|
|||
######################################################################
|
||||
# Render web page
|
||||
|
||||
puts {
|
||||
<link href=/css/jquery.contextMenu.css rel=stylesheet type=text/css />
|
||||
<script type=text/javascript src=/js/jquery.contextMenu.js></script>
|
||||
<link href=/css/jquery.bar.css rel=stylesheet type=text/css />
|
||||
<script type=text/javascript src=/js/jquery.bar.js></script>
|
||||
<script type=text/javascript src=/js/enadis.js></script>
|
||||
<script type=text/javascript src=script.js></script>
|
||||
<link type=text/css rel=stylesheet href=style.css />
|
||||
}
|
||||
|
||||
source assets.jim
|
||||
|
||||
puts "
|
||||
|
|
|
@ -4,18 +4,14 @@ package require cgi
|
|||
source /mod/webif/lib/setup
|
||||
require ts.class pretty_size
|
||||
|
||||
jqplugin progressbar touchbridge
|
||||
jscss join.js join.css
|
||||
header
|
||||
|
||||
cgi_input 1
|
||||
#cgi_dump
|
||||
|
||||
puts "
|
||||
<link href=/css/jquery.progressbar.css rel=stylesheet type=text/css />
|
||||
<link href=join.css rel=stylesheet type=text/css />
|
||||
<script type=text/javascript src=/js/jquery.progressbar.js></script>
|
||||
<script type=text/javascript src=/js/touchbridge.js></script>
|
||||
<script type/text/javascript src=join.js></script>
|
||||
|
||||
<p><b>
|
||||
Drag the files below into order, enter a name for the resulting file and then
|
||||
click the <i>Join</i> button.</b>
|
||||
|
|
|
@ -5,6 +5,8 @@ package require cgi
|
|||
source /mod/webif/lib/setup
|
||||
require ts.class system.class
|
||||
|
||||
jqplugin progressbar
|
||||
jscss mpg.js
|
||||
header
|
||||
|
||||
set rfile [cgi_get file]
|
||||
|
@ -13,9 +15,6 @@ set dir [file dirname $rfile]
|
|||
set len [$ts duration 1]
|
||||
|
||||
puts "
|
||||
<link href=/css/jquery.progressbar.css rel=stylesheet type=text/css />
|
||||
<script type=text/javascript src=/js/jquery.progressbar.js></script>
|
||||
<script type=text/javascript src=mpg.js></script>
|
||||
|
||||
<fieldset class=cleft>
|
||||
<legend>Extract to MPG</legend>
|
||||
|
|
|
@ -4,6 +4,8 @@ package require cgi
|
|||
source /mod/webif/lib/setup
|
||||
require ts.class pretty_size
|
||||
|
||||
jqplugin progressbar
|
||||
jscss strip.js
|
||||
header
|
||||
|
||||
set rfile [cgi_get file]
|
||||
|
@ -15,10 +17,6 @@ set len [$ts duration 1]
|
|||
set esttime $([$ts size] / 5700000)
|
||||
|
||||
puts "
|
||||
<link href=/css/jquery.progressbar.css rel=stylesheet type=text/css />
|
||||
<script type=text/javascript src=/js/jquery.progressbar.js></script>
|
||||
<script type=text/javascript src=strip.js></script>
|
||||
|
||||
<fieldset class=cleft>
|
||||
<legend>Make recordings smaller by removing unecessary frames</legend>
|
||||
|
||||
|
|
|
@ -4,6 +4,8 @@ package require cgi
|
|||
source /mod/webif/lib/setup
|
||||
require ts.class pretty_size
|
||||
|
||||
jqplugin enadis
|
||||
jscss script.js
|
||||
header
|
||||
|
||||
set rfile [cgi_get file]
|
||||
|
@ -20,8 +22,6 @@ set pos $($pos + 0)
|
|||
if {$pos < 0} { set pos 0 }
|
||||
|
||||
puts "
|
||||
<script type=text/javascript src=script.js></script>
|
||||
<script type=text/javascript src=/js/enadis.js></script>
|
||||
|
||||
<fieldset class=cleft>
|
||||
<legend>Replace Thumbnail</legend>
|
||||
|
|
|
@ -12,7 +12,7 @@ source process.jim
|
|||
set dir [cgi_get dir "/media/My Video"]
|
||||
set doit [cgi_get doit 0]
|
||||
|
||||
puts "<script type=text/javascript src=script.js></script>"
|
||||
jscss script.js
|
||||
|
||||
puts "<fieldset style=\"display: inline\">
|
||||
<legend>De-duplicate <span id=dir>$dir</span></legend>
|
||||
|
|
|
@ -4,19 +4,16 @@ package require cgi
|
|||
source /mod/webif/lib/setup
|
||||
require pretty_size system.class pkg.class
|
||||
|
||||
jqplugin enadis
|
||||
jscss script.js style.css
|
||||
header
|
||||
|
||||
pkg loaddiagmeta
|
||||
|
||||
set smv [system modversion 1]
|
||||
|
||||
puts {
|
||||
<style>
|
||||
button.half { width: 48%; }
|
||||
</style>
|
||||
<script type=text/javascript src=/js/enadis.js></script>
|
||||
<script type=text/javascript src=script.js></script>
|
||||
|
||||
puts {
|
||||
<fieldset class=cleft>
|
||||
<legend>Utilities</legend>
|
||||
<table>
|
||||
|
|
|
@ -4,6 +4,7 @@ package require cgi
|
|||
source /mod/webif/lib/setup
|
||||
require system.class settings.class
|
||||
|
||||
jqplugin enadis
|
||||
header
|
||||
|
||||
set device [system disk]
|
||||
|
@ -20,7 +21,6 @@ if {$line ne ""} {
|
|||
}
|
||||
|
||||
puts "
|
||||
<script type=text/javascript src=/js/enadis.js></script>
|
||||
<h3 class=va>
|
||||
<img class=va width=100 src=/img/disc.png>
|
||||
SMART data read from device $device
|
||||
|
|
|
@ -4,13 +4,9 @@ package require cgi
|
|||
source /mod/webif/lib/setup
|
||||
require system.class pretty_size
|
||||
|
||||
header
|
||||
jqplugin easy-pie-chart
|
||||
|
||||
puts {
|
||||
<link href=style.css rel=stylesheet type=text/css />
|
||||
<script type=text/javascript src=script.js></script>
|
||||
}
|
||||
jscss script.js style.css
|
||||
header
|
||||
|
||||
set dustbin [system dustbin 1]
|
||||
set root [system mediaroot]
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
button.half { width: 48%; }
|
|
@ -42,8 +42,8 @@ if {[system is_listening 9000]} {
|
|||
set img "745_1_11_Video_1REC.png"
|
||||
}
|
||||
|
||||
jscss script.js
|
||||
puts "
|
||||
<script type=text/javascript src=script.js></script>
|
||||
<fieldset class=cleft>
|
||||
<legend>DLNA Server Information</legend>
|
||||
|
||||
|
|
|
@ -4,17 +4,13 @@ package require cgi
|
|||
source /mod/webif/lib/setup
|
||||
require plugin
|
||||
|
||||
jqplugin enadis tabsupport filetree
|
||||
jscss script.js style.css
|
||||
header
|
||||
|
||||
set file [cgi_get file "/tmp/hosts"]
|
||||
|
||||
puts {
|
||||
<script type=text/javascript src=/js/enadis.js></script>
|
||||
<script type=text/javascript src=/js/tabsupport.js></script>
|
||||
<script type=text/javascript src=/js/jqueryFileTree.js></script>
|
||||
<link rel=stylesheet type=text/css href=/css/jqueryFileTree.css />
|
||||
<script type=text/javascript src=script.js></script>
|
||||
<link rel=stylesheet href=style.css type=text/css />
|
||||
|
||||
<fieldset class=cleft>
|
||||
<legend>File Editor</legend>
|
||||
|
|
|
@ -37,6 +37,12 @@ td.dayhour
|
|||
background: #ffffcc;
|
||||
}
|
||||
|
||||
td.sdayhour
|
||||
{
|
||||
vertical-align: middle;
|
||||
background: #ffffcc;
|
||||
}
|
||||
|
||||
div.prog
|
||||
{
|
||||
margin: 5px;
|
||||
|
@ -66,3 +72,8 @@ div.synopsis
|
|||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
img.cimg
|
||||
{
|
||||
width: 100%;
|
||||
}
|
||||
|
|
@ -0,0 +1,253 @@
|
|||
#!/mod/bin/jimsh
|
||||
|
||||
package require cgi
|
||||
source /mod/webif/lib/setup
|
||||
require epg.class spinner.class altrow
|
||||
|
||||
jqplugin iphone-style-checkboxes freezeheader
|
||||
jscss service.js service.css
|
||||
header
|
||||
|
||||
require totop
|
||||
|
||||
[spinner new {
|
||||
text "Loading EPG Data..."
|
||||
size "1.2em"
|
||||
style "margin: 1em;"
|
||||
}] start
|
||||
|
||||
require epg_popup
|
||||
|
||||
set service [cgi_get service 4170]
|
||||
set records [epg dbfetch dump \
|
||||
-service $service \
|
||||
-sort "strftime('%%H%%J', start, 'unixepoch'), strftime('%%M', start, 'unixepoch')" \
|
||||
-debug 0
|
||||
]
|
||||
|
||||
if {[llength $records] == 0} {
|
||||
puts "No data for service.."
|
||||
exit
|
||||
}
|
||||
|
||||
# Load the channel information from the first entry
|
||||
set tr [lindex $records 0]
|
||||
$tr get_channel_info
|
||||
set channel_num [$tr get channel_num]
|
||||
set channel_name [$tr get channel_name]
|
||||
puts "
|
||||
|
||||
<div style=\"margin: 0 1em 1em 1em\">
|
||||
<table class=va><tr><td class=va>
|
||||
[$tr channel_icon 40 {vertical-align:middle}]
|
||||
</td><td>
|
||||
$channel_num - $channel_name
|
||||
</td><td style=\"width: 50px\"> </td><td>
|
||||
Show synopsis?
|
||||
</td><td>
|
||||
<input type=checkbox id=synopsis value=1 checked />
|
||||
</td><td style=\"width: 50px\"> </td><td>
|
||||
<button id=listview service=$service>List View</button>
|
||||
</td></tr></table>
|
||||
</div>
|
||||
"
|
||||
puts {
|
||||
<script type=text/javascript>
|
||||
$('button').button();
|
||||
$('#synopsis').iphoneStyle({checkedLabel: 'YES', uncheckedLabel: 'NO'});
|
||||
</script>
|
||||
}
|
||||
|
||||
puts "
|
||||
<div class=weekview>
|
||||
<table class=weekview>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class=hour></th>
|
||||
"
|
||||
set t [clock seconds]
|
||||
set firstday [clock format $t -format {%Y%m%d}]
|
||||
set daymap {}
|
||||
loop i 0 8 {
|
||||
puts "<th class=\"day day-$i\">[clock format $t -format {%a}]<br>"
|
||||
puts "[clock format $t -format {%e %b}]</th>"
|
||||
set day [clock format $t -format {%Y%m%d}]
|
||||
set daymap($day) $i
|
||||
set dayrmap($i) $day
|
||||
incr t 86400
|
||||
}
|
||||
puts "
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
"
|
||||
|
||||
set contprog {}
|
||||
|
||||
proc slink {e} {
|
||||
global service
|
||||
if {[$e get series_crid] ne ""} {
|
||||
set ro 2
|
||||
} else {
|
||||
set ro 1
|
||||
}
|
||||
set st [$e scheduled]
|
||||
return "<a class=event href=# xs=$service xe=[$e get event_id] sch=$st rec=$ro>"
|
||||
}
|
||||
|
||||
proc prog {e {cont 0} {hour 99}} {
|
||||
global service day contprog
|
||||
|
||||
set start [$e get start]
|
||||
set end [$e end]
|
||||
set class "prog"
|
||||
if {$cont} { set class "prog progp" }
|
||||
puts "
|
||||
<div class=\"$class\">
|
||||
<div class=time>
|
||||
[clock format $start -format {%H:%M}]-[clock format $end -format {%H:%M}]
|
||||
</div>
|
||||
<div class=title>
|
||||
[slink $e]
|
||||
[$e get name]
|
||||
</a>
|
||||
</div>
|
||||
<div class=synopsis>[$e get text] [join [$e icon_set 14] ""]</div>
|
||||
</div>
|
||||
"
|
||||
|
||||
# Programmes which cross the hour boundary
|
||||
if {[clock format $end -format "%H%M"] > "$($hour + 1)00"} {
|
||||
puts "<div class=cont><img class=cimg src=/img/contt.png></div>"
|
||||
set contprog($day) $e
|
||||
}
|
||||
}
|
||||
|
||||
proc cprog {} {
|
||||
global service day contprog hour
|
||||
|
||||
set e $contprog($day)
|
||||
|
||||
set end [$e end]
|
||||
|
||||
if {[clock format $end -format "%H%M"] eq "${hour}00"} {
|
||||
dict unset contprog $day
|
||||
return 0
|
||||
}
|
||||
|
||||
set start [$e get start]
|
||||
|
||||
puts "
|
||||
<div class=cont><img class=cimg src=/img/contb.png></div>
|
||||
<div class=prog>
|
||||
<div class=time>
|
||||
...... -[clock format $end -format {%H:%M}]
|
||||
</div>
|
||||
<div class=title>
|
||||
[slink $e]
|
||||
[$e get name]
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
"
|
||||
if {[clock format $end -format "%H"] > $hour} {
|
||||
puts "<div class=cont><img class=cimg src=/img/contt.png></div>"
|
||||
} else {
|
||||
dict unset contprog $day
|
||||
}
|
||||
return 1
|
||||
}
|
||||
|
||||
proc jcprog {day} {
|
||||
global contprog
|
||||
|
||||
set e $contprog($day)
|
||||
|
||||
set start [$e get start]
|
||||
set end [$e end]
|
||||
|
||||
puts "
|
||||
<div class=cont><img class=cimg src=/img/contb.png></div>
|
||||
<div class=prog>
|
||||
<div class=time>
|
||||
[clock format $start -format {%H:%M}]-[clock format $end -format {%H:%M}]
|
||||
</div>
|
||||
<div class=title>
|
||||
[slink $e]
|
||||
[$e get name]
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class=cont><img class=cimg src=/img/contt.png></div>
|
||||
"
|
||||
}
|
||||
|
||||
proc skiptoday {day} {
|
||||
global daymap dayrmap currday contprog oldcell
|
||||
if {!$oldcell && [dict exists $contprog $currday]} {
|
||||
jcprog $currday
|
||||
}
|
||||
#puts "Skiptoday: $day ($daymap($currday))<br>"
|
||||
if {$daymap($currday) eq $day} return
|
||||
puts "</td><td class=dayhour>"
|
||||
incr day -1
|
||||
loop i $daymap($currday) $day {
|
||||
set j $($i + 1)
|
||||
if {[dict exists $contprog $dayrmap($j)]} {
|
||||
jcprog $dayrmap($j)
|
||||
}
|
||||
puts "</td><td class=dayhour>"
|
||||
}
|
||||
}
|
||||
|
||||
set currhour -1
|
||||
set currday -1
|
||||
set oldcell 0
|
||||
foreach e $records {
|
||||
set start [$e get start]
|
||||
set day [clock format $start -format "%Y%m%d"]
|
||||
if {$day ni $daymap} continue
|
||||
set hour [clock format $start -format "%H"]
|
||||
if {$hour != $currhour} {
|
||||
if {$currhour ne "-1"} {
|
||||
if {$daymap($currday) < 7} {
|
||||
skiptoday 7
|
||||
if {[dict exists $contprog $dayrmap(7)]} {
|
||||
jcprog $dayrmap(7)
|
||||
}
|
||||
}
|
||||
puts -nonewline "</td></tr>"
|
||||
}
|
||||
puts "
|
||||
<tr class=hour>
|
||||
<th class=hour>$hour:00</th>
|
||||
<td class=dayhour>
|
||||
"
|
||||
set currhour $hour
|
||||
set currday $firstday
|
||||
set oldcell 0
|
||||
}
|
||||
if {$day ne $currday} {
|
||||
skiptoday $daymap($day)
|
||||
set currday $day
|
||||
set oldcell 0
|
||||
}
|
||||
# Continuations from previous hour...
|
||||
if {!$oldcell && [dict exists $contprog $day]} {
|
||||
if {[cprog]} { set oldcell 1 }
|
||||
}
|
||||
prog $e $oldcell $hour
|
||||
set oldcell 1
|
||||
}
|
||||
|
||||
puts "
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
"
|
||||
|
||||
epg cleanup
|
||||
footer
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
|
||||
$(function() {
|
||||
|
||||
$('button').button();
|
||||
|
||||
$('#synopsis').iphoneStyle({
|
||||
checkedLabel: 'YES',
|
||||
uncheckedLabel: 'NO'
|
||||
}).bind('change', function() {
|
||||
if ($(this).attr('checked'))
|
||||
$('.synopsis').slideDown();
|
||||
else
|
||||
$('.synopsis').slideUp();
|
||||
});
|
||||
|
||||
$('#listview').bind('click', function() {
|
||||
var service = $(this).attr('service');
|
||||
window.location.href = '/epg/xservice.jim?service=' + service;
|
||||
});
|
||||
|
||||
$('table.weekview').freezeHeader();
|
||||
|
||||
});
|
||||
|
|
@ -26,14 +26,28 @@ set channel_name [$tr get channel_name]
|
|||
|
||||
puts "
|
||||
<div style=\"margin: 0 1em 1em 1em\">
|
||||
[$tr channel_icon 80 {vertical-align:middle}]
|
||||
<span style=\"vertical-align: middle\">
|
||||
<table class=va><tr><td class=va>
|
||||
[$tr channel_icon 40 {vertical-align:middle}]
|
||||
</td><td>
|
||||
$channel_num - $channel_name
|
||||
</span>
|
||||
</td><td style=\"width: 50px\"> </td><td>
|
||||
<button id=gridview>
|
||||
Grid View
|
||||
</button>
|
||||
</td></tr></table>
|
||||
</div>
|
||||
"
|
||||
puts "
|
||||
<script type=text/javascript>
|
||||
\$('button').button();
|
||||
\$('#gridview').button().bind('click', function() {
|
||||
document.location.href = '/epg/service.jim?service=$service';
|
||||
});
|
||||
</script>
|
||||
"
|
||||
|
||||
puts {
|
||||
<div id=list>
|
||||
<table class=borders>
|
||||
<tr>
|
||||
<th></th>
|
||||
|
@ -61,7 +75,7 @@ foreach record $records {
|
|||
puts "<td>[$record get warning]</td>"
|
||||
puts "</tr>"
|
||||
}
|
||||
puts "</table>"
|
||||
puts "</table></div>"
|
||||
|
||||
epg cleanup
|
||||
footer
|
After Width: | Height: | Size: 531 B |
After Width: | Height: | Size: 580 B |
|
@ -0,0 +1,72 @@
|
|||
$(function() {
|
||||
function doschedule(type)
|
||||
{
|
||||
$('#epginfo_extra').load('/cgi-bin/epg/schedule.jim?' +
|
||||
'service=' +
|
||||
encodeURIComponent($('#dialogue').attr('xs')) +
|
||||
'&event=' +
|
||||
encodeURIComponent($('#dialogue').attr('xe')) +
|
||||
'&type=' + type, function() {
|
||||
$('#restart_block')
|
||||
.load('/cgi-bin/restartblock.jim');
|
||||
});
|
||||
$(":button:contains('Record')").fadeOut('slow');
|
||||
$(":button:contains('Reminder')").fadeOut('slow');
|
||||
}
|
||||
|
||||
var $buttons1 = {
|
||||
"Close" : function() {$(this).dialog('close');}
|
||||
};
|
||||
var $buttons2 = $.extend(
|
||||
{"Record Programme": function() { doschedule(1) }},
|
||||
{"Set Reminder": function() { doschedule(3) }},
|
||||
$buttons1);
|
||||
var $buttons3 = $.extend(
|
||||
{"Record Series": function() { doschedule(2) }},
|
||||
$buttons2);
|
||||
|
||||
var $dialog = $('#dialogue').dialog({
|
||||
title: "Programme Details",
|
||||
modal: false, autoOpen: false,
|
||||
height: 500, width: 700,
|
||||
show: 'scale', hide: 'fade',
|
||||
draggable: true, resizable: true,
|
||||
buttons: $buttons1,
|
||||
close: function(e,u) { $('#dialogue').empty().html(
|
||||
'<img src="/img/loading.gif" alt="loading">'); }
|
||||
});
|
||||
|
||||
function epgpopup(e, o)
|
||||
{
|
||||
e.preventDefault();
|
||||
var sch = o.attr('sch');
|
||||
var rec = o.attr('rec');
|
||||
if (sch != 0)
|
||||
$dialog.dialog("option", "buttons", $buttons1);
|
||||
else if (rec == 2)
|
||||
$dialog.dialog("option", "buttons", $buttons3);
|
||||
else if (rec == 1)
|
||||
$dialog.dialog("option", "buttons", $buttons2);
|
||||
else
|
||||
$dialog.dialog("option", "buttons", $buttons1);
|
||||
var url = '/cgi-bin/epg/info.jim?service=' +
|
||||
o.attr('xs') + '&event=' +
|
||||
o.attr('xe') + '&bare=1';
|
||||
$('#dialogue')
|
||||
.html('<img src=/img/loading.gif> Loading details...' +
|
||||
' Please wait...')
|
||||
.load(url, function() {
|
||||
$('#dialogue a.event').click(function(e) {
|
||||
epgpopup(e, $(this));
|
||||
});
|
||||
});
|
||||
$('#dialogue')
|
||||
.attr('xs', o.attr('xs'))
|
||||
.attr('xe', o.attr('xe'));
|
||||
$dialog.dialog('open');
|
||||
}
|
||||
$('a.event').click(function(e) {
|
||||
e.preventDefault();
|
||||
epgpopup(e, $(this))
|
||||
});
|
||||
});
|
|
@ -24,6 +24,16 @@ puts {
|
|||
<link href="/css/EXTRA.css" rel="Stylesheet" type="text/css" />
|
||||
<script type="text/javascript" src="/js/jquery.js"></script>
|
||||
<script type="text/javascript" src="/lib/jquery.ui/js/jquery-ui.js"></script>
|
||||
}
|
||||
if {[info exists _mws_js]} {
|
||||
foreach js $_mws_js {
|
||||
puts "<script type=text/javascript src=\"$js\"></script>"
|
||||
}
|
||||
foreach css $_mws_css {
|
||||
puts "<link href=\"$css\" rel=stylesheet type=text/css />"
|
||||
}
|
||||
}
|
||||
puts {
|
||||
</head>
|
||||
<body>
|
||||
}
|
||||
|
|
|
@ -1,142 +0,0 @@
|
|||
/*!
|
||||
* jQuery contextMenu - Plugin for simple contextMenu handling
|
||||
*
|
||||
* Version: git-master
|
||||
*
|
||||
* Authors: Rodney Rehm, Addy Osmani (patches for FF)
|
||||
* Web: http://medialize.github.com/jQuery-contextMenu/
|
||||
*
|
||||
* Licensed under
|
||||
* MIT License http://www.opensource.org/licenses/mit-license
|
||||
* GPL v3 http://opensource.org/licenses/GPL-3.0
|
||||
*
|
||||
*/
|
||||
|
||||
.context-menu-list {
|
||||
margin:0;
|
||||
padding:0;
|
||||
|
||||
min-width: 120px;
|
||||
max-width: 250px;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
list-style-type: none;
|
||||
|
||||
border: 1px solid #DDD;
|
||||
background: #EEE;
|
||||
|
||||
-webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
|
||||
-moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
|
||||
-ms-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
|
||||
-o-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
|
||||
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
|
||||
|
||||
font-family: Verdana, Arial, Helvetica, sans-serif;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.context-menu-item {
|
||||
padding: 2px 2px 2px 24px;
|
||||
background-color: #EEE;
|
||||
position: relative;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: -moz-none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.context-menu-separator {
|
||||
padding-bottom:0;
|
||||
border-bottom: 1px solid #DDD;
|
||||
}
|
||||
|
||||
.context-menu-item > label > input,
|
||||
.context-menu-item > label > textarea {
|
||||
-webkit-user-select: text;
|
||||
-moz-user-select: text;
|
||||
-ms-user-select: text;
|
||||
user-select: text;
|
||||
}
|
||||
|
||||
.context-menu-item.hover {
|
||||
cursor: pointer;
|
||||
background-color: #39F;
|
||||
}
|
||||
|
||||
.context-menu-item.disabled {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.context-menu-input.hover,
|
||||
.context-menu-item.disabled.hover {
|
||||
cursor: default;
|
||||
background-color: #EEE;
|
||||
}
|
||||
|
||||
.context-menu-submenu:after {
|
||||
content: ">";
|
||||
color: #666;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 3px;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/* icons
|
||||
#protip:
|
||||
In case you want to use sprites for icons (which I would suggest you do) have a look at
|
||||
http://css-tricks.com/13224-pseudo-spriting/ to get an idea of how to implement
|
||||
.context-menu-item.icon:before {}
|
||||
*/
|
||||
.context-menu-item.icon { min-height: 18px; background-repeat: no-repeat; background-position: 4px 2px; }
|
||||
.context-menu-item.icon-edit { background-image: url(images/page_white_edit.png); }
|
||||
.context-menu-item.icon-cut { background-image: url(images/cut.png); }
|
||||
.context-menu-item.icon-copy { background-image: url(images/page_white_copy.png); }
|
||||
.context-menu-item.icon-paste { background-image: url(images/page_white_paste.png); }
|
||||
.context-menu-item.icon-delete { background-image: url(images/page_white_delete.png); }
|
||||
.context-menu-item.icon-add { background-image: url(images/page_white_add.png); }
|
||||
.context-menu-item.icon-quit { background-image: url(images/door.png); }
|
||||
|
||||
/* vertically align inside labels */
|
||||
.context-menu-input > label > * { vertical-align: top; }
|
||||
|
||||
/* position checkboxes and radios as icons */
|
||||
.context-menu-input > label > input[type="checkbox"],
|
||||
.context-menu-input > label > input[type="radio"] {
|
||||
margin-left: -17px;
|
||||
}
|
||||
.context-menu-input > label > span {
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.context-menu-input > label,
|
||||
.context-menu-input > label > input[type="text"],
|
||||
.context-menu-input > label > textarea,
|
||||
.context-menu-input > label > select {
|
||||
display: block;
|
||||
width: 100%;
|
||||
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
-o-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.context-menu-input > label > textarea {
|
||||
height: 100px;
|
||||
}
|
||||
.context-menu-item > .context-menu-list {
|
||||
display: none;
|
||||
/* re-positioned by js */
|
||||
right: -5px;
|
||||
top: 5px;
|
||||
}
|
||||
|
||||
.context-menu-item.hover > .context-menu-list {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.context-menu-accesskey {
|
||||
text-decoration: underline;
|
||||
}
|
Before Width: | Height: | Size: 648 B After Width: | Height: | Size: 648 B |
Before Width: | Height: | Size: 412 B After Width: | Height: | Size: 412 B |
Before Width: | Height: | Size: 442 B After Width: | Height: | Size: 442 B |
Before Width: | Height: | Size: 309 B After Width: | Height: | Size: 309 B |
Before Width: | Height: | Size: 536 B After Width: | Height: | Size: 536 B |
Before Width: | Height: | Size: 618 B After Width: | Height: | Size: 618 B |
Before Width: | Height: | Size: 620 B After Width: | Height: | Size: 620 B |
|
@ -0,0 +1,130 @@
|
|||
/* ------------------------------------------------------------------------
|
||||
Class: freezeHeader
|
||||
Use:freeze header row in html table
|
||||
Example 1: $('#tableid').freezeHeader();
|
||||
Example 2: $("#tableid").freezeHeader({ 'height': '300px' });
|
||||
Example 3: $("table").freezeHeader();
|
||||
Example 4: $(".table2").freezeHeader();
|
||||
Author: Laerte Mercier Junior
|
||||
Version: 1.0.5
|
||||
-------------------------------------------------------------------------*/
|
||||
(function ($) {
|
||||
var TABLE_ID = 0;
|
||||
$.fn.freezeHeader = function (params) {
|
||||
|
||||
var copiedHeader = false;
|
||||
|
||||
function freezeHeader(elem) {
|
||||
var idObj = elem.attr('id') || ('tbl-' + (++TABLE_ID));
|
||||
if (elem.length > 0 && elem[0].tagName.toLowerCase() == "table") {
|
||||
|
||||
var obj = {
|
||||
id: idObj,
|
||||
grid: elem,
|
||||
container: null,
|
||||
header: null,
|
||||
divScroll: null,
|
||||
openDivScroll: null,
|
||||
closeDivScroll: null,
|
||||
scroller: null
|
||||
};
|
||||
|
||||
if (params && params.height !== undefined) {
|
||||
obj.divScroll = '<div id="hdScroll' + obj.id + '" style="height: ' + params.height + '; overflow-y: scroll">';
|
||||
obj.closeDivScroll = '</div>';
|
||||
}
|
||||
|
||||
obj.header = obj.grid.find('thead');
|
||||
|
||||
if (params && params.height !== undefined) {
|
||||
if ($('#hdScroll' + obj.id).length == 0) {
|
||||
obj.grid.wrapAll(obj.divScroll);
|
||||
}
|
||||
}
|
||||
|
||||
obj.scroller = params && params.height !== undefined
|
||||
? $('#hdScroll' + obj.id)
|
||||
: $(window);
|
||||
|
||||
obj.scroller.on('scroll', function () {
|
||||
|
||||
if ($('#hd' + obj.id).length == 0) {
|
||||
obj.grid.before('<div id="hd' + obj.id + '"></div>');
|
||||
}
|
||||
|
||||
obj.container = $('#hd' + obj.id);
|
||||
|
||||
if (obj.header.offset() != null) {
|
||||
if (limiteAlcancado(obj, params)) {
|
||||
if (!copiedHeader) {
|
||||
cloneHeaderRow(obj);
|
||||
copiedHeader = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
if (($(document).scrollTop() > obj.header.offset().top)) {
|
||||
obj.container.css("position", "absolute");
|
||||
obj.container.css("top", (obj.grid.find("tr:last").offset().top - obj.header.height()) + "px");
|
||||
}
|
||||
else {
|
||||
obj.container.css("visibility", "hidden");
|
||||
obj.container.css("top", "0px");
|
||||
obj.container.width(0);
|
||||
}
|
||||
copiedHeader = false;
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function limiteAlcancado(obj, params) {
|
||||
if (params && params.height !== undefined) {
|
||||
return (obj.header.offset().top <= obj.scroller.offset().top);
|
||||
}
|
||||
else {
|
||||
return ($(document).scrollTop() > obj.header.offset().top && $(document).scrollTop() < (obj.grid.height() - obj.header.height() - obj.grid.find("tr:last").height()) + obj.header.offset().top);
|
||||
}
|
||||
}
|
||||
|
||||
function cloneHeaderRow(obj) {
|
||||
obj.container.html('');
|
||||
obj.container.val('');
|
||||
var tabela = $('<table style="margin: 0 0;"></table>');
|
||||
var atributos = obj.grid.prop("attributes");
|
||||
|
||||
$.each(atributos, function () {
|
||||
if (this.name != "id") {
|
||||
tabela.attr(this.name, this.value);
|
||||
}
|
||||
});
|
||||
|
||||
tabela.append('<thead>' + obj.header.html() + '</thead>');
|
||||
|
||||
obj.container.append(tabela);
|
||||
obj.container.width(obj.header.width());
|
||||
obj.container.height(obj.header.height);
|
||||
obj.container.find('th').each(function (index) {
|
||||
var cellWidth = obj.grid.find('th').eq(index).width();
|
||||
$(this).css('width', cellWidth);
|
||||
});
|
||||
|
||||
obj.container.css("visibility", "visible");
|
||||
|
||||
if (params && params.height !== undefined) {
|
||||
obj.container.css("top", obj.scroller.offset().top + "px");
|
||||
obj.container.css("position", "absolute");
|
||||
} else {
|
||||
obj.container.css("top", "0px");
|
||||
obj.container.css("position", "fixed");
|
||||
}
|
||||
}
|
||||
|
||||
return this.each(function (i, e) {
|
||||
freezeHeader($(e));
|
||||
});
|
||||
|
||||
};
|
||||
})(jQuery);
|
|
@ -24,14 +24,16 @@ puts {
|
|||
<script type="text/javascript" src="/js/jquery.js"></script>
|
||||
<script type="text/javascript" src="/lib/jquery.mobile/jquery.mobile.js">
|
||||
</script>
|
||||
<script type="text/javascript" src="/js/enadis.js">
|
||||
</script>
|
||||
<script type="text/javascript" src="/m/script.js"></script>
|
||||
<link rel="apple-touch-icon" href="/img/mobile_57.png" />
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="/img/mobile_57.png" />
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="/img/mobile_72.png" />
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="/img/mobile_114.png" />
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="/img/mobile_144.png" />
|
||||
}
|
||||
noheader
|
||||
jqplugin enadis
|
||||
puts {
|
||||
</head>
|
||||
}
|
||||
|
||||
|
|
18
var/mongoose/html/pkg/index.shtml → var/mongoose/html/pkg/index.jim
Normal file → Executable file
|
@ -1,6 +1,12 @@
|
|||
<!--#include virtual="/lib/header.shtml" -->
|
||||
#!/mod/bin/jimsh
|
||||
|
||||
<link href=style.css rel=stylesheet type=text/css />
|
||||
source /mod/webif/lib/setup
|
||||
|
||||
jqplugin enadis iajax
|
||||
jscss script.js style.css
|
||||
header
|
||||
|
||||
puts {
|
||||
|
||||
<div class=va style="padding: 0 0 1em 0">
|
||||
<h1 style="display: inline" class=va>
|
||||
|
@ -35,10 +41,6 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<script type=text/javascript src=/js/enadis.js></script>
|
||||
<script type=text/javascript src=/js/iajax.js></script>
|
||||
<script type=text/javascript src=script.js></script>
|
||||
|
||||
<div id=pkgtabs>
|
||||
<ul>
|
||||
<li>
|
||||
|
@ -56,5 +58,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
}
|
||||
|
||||
footer
|
||||
|
||||
<!--#include virtual="/lib/footer.shtml" -->
|
|
@ -28,11 +28,8 @@ puts "
|
|||
<span id=duration style=\"display: none\">[$ts duration 1]</span>
|
||||
"
|
||||
|
||||
jscss {vlc.js play.js} vlc.css
|
||||
puts {
|
||||
<script language=javascript src=vlc.js></script>
|
||||
<link rel=stylesheet type=text/css href=vlc.css />
|
||||
<script type=text/javascript src=play.js></script>
|
||||
|
||||
<fieldset class=cleft style="margin: 0 1em 1em 1em">
|
||||
<legend>VLC Player</legend>
|
||||
}
|
||||
|
|
|
@ -4,6 +4,8 @@ package require cgi
|
|||
source /mod/webif/lib/setup
|
||||
require altrow rsv.class progressbar epg.class system.class
|
||||
|
||||
jqplugin tablesorter contextMenu form freezeheader
|
||||
jscss script.js
|
||||
header
|
||||
|
||||
set svcmap {}
|
||||
|
@ -17,13 +19,6 @@ set svckeys [array names svcmap]
|
|||
require epg_popup
|
||||
|
||||
puts {
|
||||
<script type=text/javascript src=/js/jquery.tablesorter.js></script>
|
||||
<link type=text/css href=/css/tsort.css rel=Stylesheet />
|
||||
<link href=/css/jquery.contextMenu.css rel=stylesheet type=text/css />
|
||||
<script type=text/javascript src=/js/jquery.contextMenu.js></script>
|
||||
<script type=text/javascript src=/js/jquery.form.js></script>
|
||||
<script type=text/javascript src=script.js></script>
|
||||
|
||||
<div id=output class=hidden></div>
|
||||
<div id=sdialogue></div>
|
||||
}
|
||||
|
|
|
@ -30,7 +30,7 @@ $('table.tablesorter').tablesorter({
|
|||
6: { sorter: false },
|
||||
7: { sorter: false }
|
||||
}
|
||||
});
|
||||
}).freezeHeader();
|
||||
|
||||
$('table.tablesorter thead th').filter('[class!=header]')
|
||||
.addClass('headerplain');
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<!--#include virtual="/lib/header.shtml" -->
|
||||
<link href=/css/iphone-style-checkboxes.css rel=stylesheet type=text/css />
|
||||
<script type="text/javascript" src="/js/iphone-style-checkboxes.js"></script>
|
||||
<script type="text/javascript" src="/js/enadis.js"></script>
|
||||
<link href=/lib/jquery.plugin/iphone-style-checkboxes/iphone-style-checkboxes.css rel=stylesheet type=text/css />
|
||||
<script type="text/javascript" src="/lib/jquery.plugin/iphone-style-checkboxes/iphone-style-checkboxes.js"></script>
|
||||
<script type="text/javascript" src="/lib/jquery.plugin/enadis/enadis.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function() {
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
test
|
|
@ -0,0 +1 @@
|
|||
test
|
|
@ -3,8 +3,8 @@
|
|||
source /mod/webif/lib/setup
|
||||
require altrow rsv.class
|
||||
|
||||
jscss /cgi-bin/backup/backup.js
|
||||
puts {
|
||||
<script type=text/javascript src=/cgi-bin/backup/backup.js></script>
|
||||
<h2>Backup/Restore</h2>
|
||||
|
||||
<div id=restore_warning class="hidden warningbox">
|
||||
|
|
|
@ -32,10 +32,10 @@ if {$::qepg} {
|
|||
set got [clock milliseconds]
|
||||
|
||||
if {[[settings] chanchangenc]} {
|
||||
puts { <script type=text/javascript src=/js/chanchangenc.js></script> }
|
||||
jscss /js/chanchangeenc.js
|
||||
} else {
|
||||
jqplugin confirmAction
|
||||
puts { <script type=text/javascript src=/js/chanchange.js></script> }
|
||||
jscss /js/chanchange.js
|
||||
}
|
||||
|
||||
puts {
|
||||
|
@ -71,7 +71,7 @@ foreach record $records {
|
|||
if {$irinst} { puts "</a>" }
|
||||
puts "</td>
|
||||
<td>
|
||||
<a href=\"/cgi-bin/epg/service.jim?service=[\
|
||||
<a href=\"/epg/service.jim?service=[\
|
||||
$record get service_id]\">
|
||||
[$record get channel_name]
|
||||
</a></td>"
|
||||
|
|
|
@ -62,7 +62,7 @@ if {[[settings] nomobile] eq "0"} {
|
|||
menuitem "Service Management" "/img/spanner.png" \
|
||||
/services.shtml 217 228
|
||||
menuitem "Package Management" "/img/packages.png" \
|
||||
/pkg/index.shtml 217 228
|
||||
/pkg/index.jim 217 228
|
||||
menuitem "Settings" "/images/326_1_00_Menu_Settings.png" \
|
||||
/cgi-bin/settings.jim 217 228
|
||||
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
#!/mod/bin/jimsh
|
||||
|
||||
source /mod/webif/lib/setup
|
||||
|
||||
puts {
|
||||
<script type=text/javascript src=/js/packages.js></script>
|
||||
|
||||
<style type=text/css>
|
||||
button.install
|
||||
{
|
||||
display: none;
|
||||
background-image: none;
|
||||
background: #ccff99;
|
||||
}
|
||||
button.remove
|
||||
{
|
||||
display: none;
|
||||
background-image: none;
|
||||
background: #ff6666;
|
||||
}
|
||||
button.upgrade
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id=pkgtabs>
|
||||
<ul>
|
||||
<li>
|
||||
<a href=/cgi-bin/pkg.jim?type=inst>
|
||||
<span>Installed</span>
|
||||
</a>
|
||||
</li><li>
|
||||
<a href=/cgi-bin/pkg.jim?type=upgr>
|
||||
<span>Upgrades</span>
|
||||
</a>
|
||||
</li><li>
|
||||
<a href=/cgi-bin/pkg.jim?type=avail>
|
||||
<span>Available</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
}
|
||||
|
||||
|
|
@ -42,7 +42,7 @@ tb "/images/323_1_10_Menu_Video.png" "Browse" "/browse/index.jim"
|
|||
tb "/images/321_1_00_Menu_CHList.png" "Schedule" "/sched/sched.jim"
|
||||
tb "/images/328_1_26_Menu_TV_Guide.png" "EPG" $epglink
|
||||
tb "/img/spanner.png" "Services" "/services.shtml"
|
||||
tb "/img/packages.png" "Packages" "/pkg/index.shtml"
|
||||
tb "/img/packages.png" "Packages" "/pkg/index.jim"
|
||||
tb "/images/326_1_00_Menu_Settings.png" "Settings" "/cgi-bin/settings.jim"
|
||||
tb "/img/diagnostics.png" "Diag" "/diag/diag.jim"
|
||||
eval_plugins toolbar
|
||||
|
|
|
@ -1,78 +1,5 @@
|
|||
puts {
|
||||
<div id=dialogue></div>
|
||||
<script type=text/javascript>
|
||||
$(document).ready(function() {
|
||||
function doschedule(type)
|
||||
{
|
||||
$('#epginfo_extra').load('/cgi-bin/epg/schedule.jim?' +
|
||||
'service=' +
|
||||
encodeURIComponent($('#dialogue').attr('xs')) +
|
||||
'&event=' +
|
||||
encodeURIComponent($('#dialogue').attr('xe')) +
|
||||
'&type=' + type, function() {
|
||||
$('#restart_block')
|
||||
.load('/cgi-bin/restartblock.jim');
|
||||
});
|
||||
$(":button:contains('Record')").fadeOut('slow');
|
||||
$(":button:contains('Reminder')").fadeOut('slow');
|
||||
}
|
||||
|
||||
var $buttons1 = {
|
||||
"Close" : function() {$(this).dialog('close');}
|
||||
};
|
||||
var $buttons2 = $.extend(
|
||||
{"Record Programme": function() { doschedule(1) }},
|
||||
{"Set Reminder": function() { doschedule(3) }},
|
||||
$buttons1);
|
||||
var $buttons3 = $.extend(
|
||||
{"Record Series": function() { doschedule(2) }},
|
||||
$buttons2);
|
||||
|
||||
var $dialog = $('#dialogue').dialog({
|
||||
title: "Programme Details",
|
||||
modal: false, autoOpen: false,
|
||||
height: 500, width: 700,
|
||||
show: 'scale', hide: 'fade',
|
||||
draggable: true, resizable: true,
|
||||
buttons: $buttons1,
|
||||
close: function(e,u) { $('#dialogue').empty().html(
|
||||
'<img src="/img/loading.gif" alt="loading">'); }
|
||||
});
|
||||
|
||||
function epgpopup(e, o)
|
||||
{
|
||||
e.preventDefault();
|
||||
var sch = o.attr('sch');
|
||||
var rec = o.attr('rec');
|
||||
if (sch != 0)
|
||||
$dialog.dialog("option", "buttons", $buttons1);
|
||||
else if (rec == 2)
|
||||
$dialog.dialog("option", "buttons", $buttons3);
|
||||
else if (rec == 1)
|
||||
$dialog.dialog("option", "buttons", $buttons2);
|
||||
else
|
||||
$dialog.dialog("option", "buttons", $buttons1);
|
||||
var url = '/cgi-bin/epg/info.jim?service=' +
|
||||
o.attr('xs') + '&event=' +
|
||||
o.attr('xe') + '&bare=1';
|
||||
$('#dialogue')
|
||||
.html('<img src=/img/loading.gif> Loading details...' +
|
||||
' Please wait...')
|
||||
.load(url, function() {
|
||||
$('#dialogue a.event').click(function(e) {
|
||||
epgpopup(e, $(this));
|
||||
});
|
||||
});
|
||||
$('#dialogue')
|
||||
.attr('xs', o.attr('xs'))
|
||||
.attr('xe', o.attr('xe'));
|
||||
$dialog.dialog('open');
|
||||
}
|
||||
$('a.event').click(function(e) {
|
||||
e.preventDefault();
|
||||
epgpopup(e, $(this))
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<script type=text/javascript src=/js/epg_popup.js></script>
|
||||
}
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@ class settings {
|
|||
hostname ""
|
||||
channel_group 0
|
||||
epg_style "standard"
|
||||
service_style "grid"
|
||||
smtp_server ""
|
||||
pkgdev 0
|
||||
notoolbar 0
|
||||
|
@ -138,16 +139,24 @@ settings method xepghours {{hours -1}} {
|
|||
|
||||
settings method epg_style {{style -1}} {
|
||||
if {$style != -1} {
|
||||
if {$style eq "grid"} { set style 1 } else { set style 0}
|
||||
if {$style eq "grid"} { set style 1 } else { set style 0 }
|
||||
return [$self _nval_setting epg_style $style]
|
||||
}
|
||||
set val [$self _nval_setting epg_style]
|
||||
if {$val == 1} {
|
||||
return "grid"
|
||||
}
|
||||
if {$val == 1} { return "grid" }
|
||||
return "standard"
|
||||
}
|
||||
|
||||
settings method service_style {{style -1}} {
|
||||
if {$style != -1} {
|
||||
if {$style eq "grid"} { set style 0 } else { set style 1 }
|
||||
return [$self _nval_setting service_style $style]
|
||||
}
|
||||
set val [$self _nval_setting service_style]
|
||||
if {$val == 1} { return "standard" }
|
||||
return "grid"
|
||||
}
|
||||
|
||||
settings method pkgdev {{val -1}} {
|
||||
return [$self _nval_setting pkgdev $val]
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ if {![exists -proc require]} {
|
|||
if {!$cache} {
|
||||
puts -nonewline "Content-Type: $type; charset=\"UTF-8\"; no-cache\r\n"
|
||||
puts -nonewline "Expires: -1\r\n"
|
||||
puts -nonewline "Connection: close\r\n"
|
||||
puts -nonewline "Pragma: no-cache\r\n"
|
||||
puts -nonewline "Cache-Control: no-cache\r\n"
|
||||
} else {
|
||||
|
@ -24,9 +25,17 @@ if {![exists -proc require]} {
|
|||
set done 1
|
||||
}
|
||||
|
||||
set ::_mws_headerdone 0
|
||||
set ::_mws_js {}
|
||||
set ::_mws_css {}
|
||||
proc header {{type "text/html"} {cache 0}} {
|
||||
httpheader $type $cache
|
||||
uplevel source /mod/webif/html/lib/header.jim
|
||||
incr ::_mws_headerdone
|
||||
}
|
||||
|
||||
proc noheader {} {
|
||||
incr ::_mws_headerdone
|
||||
}
|
||||
|
||||
proc footer {} {
|
||||
|
@ -41,17 +50,44 @@ if {![exists -proc require]} {
|
|||
uplevel source /mod/webif/html/m/lib/footer.jim
|
||||
}
|
||||
|
||||
proc jqplugin {name} {{done {}}} {
|
||||
if {$name in $done} return
|
||||
proc _css {file} {
|
||||
if {$::_mws_headerdone} {
|
||||
puts "<link href=\"$file\" rel=stylesheet type=text/css />"
|
||||
} else {
|
||||
lappend ::_mws_css $file
|
||||
}
|
||||
}
|
||||
|
||||
proc _js {file} {
|
||||
if {$::_mws_headerdone} {
|
||||
puts "<script type=text/javascript src=\"$file\"></script>"
|
||||
} else {
|
||||
lappend ::_mws_js $file
|
||||
}
|
||||
}
|
||||
|
||||
proc jqplugin {args} {{done {}}} {
|
||||
foreach name $args {
|
||||
if {$name in $done} continue
|
||||
lappend done $name
|
||||
foreach file [glob "/mod/webif/html/lib/jquery.$name/*.js"] {
|
||||
set file [join [lrange [split $file /] 4 end] /]
|
||||
puts "<script type=text/javascript src=/$file></script>"
|
||||
set dir "/mod/webif/html/lib/jquery.plugin/$name"
|
||||
if {![file isdirectory $dir]} {
|
||||
error "Unknown JQ Plugin - '$name'"
|
||||
}
|
||||
foreach file [glob "/mod/webif/html/lib/jquery.$name/*.css"] {
|
||||
foreach file [glob -nocomplain "$dir/*.js"] {
|
||||
set file [join [lrange [split $file /] 4 end] /]
|
||||
puts "<link href=/$file rel=stylesheet type=text/css />"
|
||||
_js "/$file"
|
||||
}
|
||||
foreach file [glob -nocomplain "$dir/*.css"] {
|
||||
set file [join [lrange [split $file /] 4 end] /]
|
||||
_css "/$file"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
proc jscss {{js ""} {css ""}} {
|
||||
foreach j $js { _js $j }
|
||||
foreach c $css { _css $c }
|
||||
}
|
||||
|
||||
require fileops overrides
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
jqplugin ui.totop
|
||||
jqplugin easing
|
||||
puts {
|
||||
<script type="text/javascript" src="/js/jquery.ui.totop.js"></script>
|
||||
<script type="text/javascript" src="/js/easing.js"></script>
|
||||
<link href=/css/ui.totop.css rel=stylesheet type=text/css />
|
||||
<script type=text/javascript>
|
||||
$(document).ready(function() {
|
||||
$().UItoTop({easingType: 'easeOutQuart'});
|
||||
|
|