diff options
| author | Andreas Brachold <vdr07@deltab.de> | 2010-10-11 20:22:51 +0000 |
|---|---|---|
| committer | Andreas Brachold <vdr07@deltab.de> | 2010-10-11 20:22:51 +0000 |
| commit | 17b9c4c7b15f2e6e8cf8a288b954d81dcb4fe77d (patch) | |
| tree | 7255c2088673a44d80dbcc4e7562143f18c8a364 /lib | |
| parent | 14f4bcafe4f4c7fc66cdc8486e790d51f29d6208 (diff) | |
| download | xxv-17b9c4c7b15f2e6e8cf8a288b954d81dcb4fe77d.tar.gz xxv-17b9c4c7b15f2e6e8cf8a288b954d81dcb4fe77d.tar.bz2 | |
AJAX: show content of error message
RECORDS: show error message if command 'play' failed
EPG: search data by channel id (instead of channel hash = id+vid)
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/XXV/MODULES/EPG.pm | 21 | ||||
| -rw-r--r-- | lib/XXV/MODULES/RECORDS.pm | 17 | ||||
| -rw-r--r-- | lib/XXV/OUTPUT/Ajax.pm | 2 |
3 files changed, 26 insertions, 14 deletions
diff --git a/lib/XXV/MODULES/EPG.pm b/lib/XXV/MODULES/EPG.pm index d91ef30..b7efa35 100644 --- a/lib/XXV/MODULES/EPG.pm +++ b/lib/XXV/MODULES/EPG.pm @@ -669,8 +669,8 @@ sub search { # Channelsearch if($params->{channel}) { - $search->{query} .= ' AND c.hash = ?'; - push(@{$search->{term}}, $cmod->ToHash($params->{channel})); + $search->{query} .= ' AND c.id = ?'; + push(@{$search->{term}}, $cmod->ToCID($params->{channel})); } # Videoformat search @@ -819,8 +819,8 @@ sub program { $search->{query} .= ' AND '; } - $search->{query} .= ' c.hash = ?'; - $cid = $cmod->ToHash($cid); + $search->{query} .= ' c.id = ?'; + $cid = $cmod->ToCID($cid); push(@{$search->{term}},$cid); my %f = ( @@ -870,6 +870,8 @@ where AND e.vid = c.vid AND ( $search->{query} ) AND ((UNIX_TIMESTAMP(e.starttime) + e.duration) > UNIX_TIMESTAMP()) +group by + e.eventid order by starttime |; @@ -1712,8 +1714,13 @@ sub suggest { if($search) { my $ch = ''; + my $cid; if($params->{channel}) { - $ch = " AND c.pos = ? "; + my $cmod = main::getModule('CHANNELS'); + $cid = $cmod->ToCID($params->{channel}); + return con_err($console, sprintf(gettext("Channel '%s' does not exist in the database!"),$params->{channel})) + unless($cid); + $ch = " AND c.id = ? "; } my $sql = qq| @@ -1747,8 +1754,8 @@ ORDER BY LIMIT 25 |; my $sth = $self->{dbh}->prepare($sql); - if($params->{channel}) { - $sth->execute('%'.$search.'%',$params->{channel},'%'.$search.'%',$params->{channel}) + if($cid) { + $sth->execute('%'.$search.'%',$cid,'%'.$search.'%',$cid) or return error "Couldn't execute query: $sth->errstr."; } else { $sth->execute('%'.$search.'%','%'.$search.'%') diff --git a/lib/XXV/MODULES/RECORDS.pm b/lib/XXV/MODULES/RECORDS.pm index b9d9286..f8fab4e 100644 --- a/lib/XXV/MODULES/RECORDS.pm +++ b/lib/XXV/MODULES/RECORDS.pm @@ -1909,14 +1909,19 @@ sub play { } my $cmd = sprintf('PLAY %d %s', $rec->{id}, $start); - if($self->{svdrp}->scommand($console, $config, $cmd, $vdr)) { - $console->redirect({url => sprintf('?cmd=rdisplay&data=%s',$rec->{hash}), wait => 1}) - if(ref $console and $console->typ eq 'HTML'); + # call playback command via svdrp + my ($erg,$error) = $self->{svdrp}->command($cmd,$vdr); - return 1; - } - return 0; + $console->msg($erg, $error) + if(ref $console); + return undef if($error); + + $console->redirect({url => sprintf('?cmd=rdisplay&data=%s',$rec->{hash}), wait => 1}) + if(ref $console and $console->typ eq 'HTML'); + + my ($ret) = $erg->[1] =~ /^\d{3}\s*(.+)/s; + return $ret; } # ------------------ diff --git a/lib/XXV/OUTPUT/Ajax.pm b/lib/XXV/OUTPUT/Ajax.pm index d250cb5..37457a4 100644 --- a/lib/XXV/OUTPUT/Ajax.pm +++ b/lib/XXV/OUTPUT/Ajax.pm @@ -453,7 +453,7 @@ sub msg { if(ref $data eq 'ARRAY') { $msg = join("\r\n",@{$data}); } else { - $msg = $data; + $msg = $data || $err; } $self->{output}->{success} = $err ? \0 : \1; |
