summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAndreas Brachold <vdr07@deltab.de>2010-10-11 20:22:51 +0000
committerAndreas Brachold <vdr07@deltab.de>2010-10-11 20:22:51 +0000
commit17b9c4c7b15f2e6e8cf8a288b954d81dcb4fe77d (patch)
tree7255c2088673a44d80dbcc4e7562143f18c8a364 /lib
parent14f4bcafe4f4c7fc66cdc8486e790d51f29d6208 (diff)
downloadxxv-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.pm21
-rw-r--r--lib/XXV/MODULES/RECORDS.pm17
-rw-r--r--lib/XXV/OUTPUT/Ajax.pm2
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;