%attr>
ajax => 1
%attr>
<& 'SELF:display_form', %ARGS &>
<& 'SELF:display_overview', %ARGS &>
<%method display_overview>
<%args>
$recording => 'default'
$recid => undef
$search => undef
$force => undef
%args>
<%attr>
ajax => 1
update => 'recordings'
throbber => 1
form => 'recordingsform'
%attr>
<%perl>
$m->comp('/include/recordings:read_recordings', force => $force);
$recording = uri_unescape($recording);
$search = uri_unescape($search);
my $orig_recording = $recording;
$recording =~ s/\r//g;
my %RecList;
my $count = 0;
if ( defined $recid ) {
my %IDIndexItem = %{ $m->comp('/include/recordings:get_id_index_item', recid => $recid) };
$recording = $IDIndexItem{'detail'}{'titel'};
}
if ( $recording ne 'default' && $recording ne 'all' ) {
%RecList = ();
my %TitelIndex = %{ $m->comp('/include/recordings:get_titel_index') };
## search configured?
if ( defined $search ) {
foreach my $rec ( keys %TitelIndex ) {
foreach ( @{ $TitelIndex{$rec} } ) {
$RecList{ $_->{detail}->{id} } = \%{$_} if $_->{detail}->{'titel'}
=~ /$search/i;
}
}
$recording = $search;
}
else {
## add records
foreach ( @{ $TitelIndex{$recording} } ) {
$RecList{ $_->{detail}->{id} } = \%{$_};
}
}
}
else {
$recording = '@(Einzelne Aufnahmen)';
%RecList = %{ $m->comp('/include/recordings:get_top_index') };
}
my @TimeSort;
my %TimeIndex;
foreach my $id (sort keys %RecList) {
push(@TimeSort, $RecList{$id}{'detail'}{'timeindex'})
if $RecList{$id}{'detail'}{'timeindex'};
$TimeIndex{$RecList{$id}{'detail'}{'timeindex'}} = $id;
}
foreach my $timeIdx (reverse sort {$a <=> $b} @TimeSort) {
my $id = $TimeIndex{$timeIdx};
#if($orig_recording eq 'default') {
# my %TimeIndex = %{ $m->comp('/include/recordings:get_by_time_index', timeIdx => $timeIdx) };
# $id = $TimeIndex{'detail'}{'titel'};
#}
#else {
# my %TimeIndex = %{ $m->comp('/include/recordings:get_by_time_index', timeIdx => $timeIdx) };
# $id = $TimeIndex{'detail'}{'id'};
#}
if(defined $RecList{$id}{'detail'}{'id'}) {
## $count++; if($count ==1) { $m->print(''); }
$m->comp( 'SELF:display_detail', id => $RecList{$id}{'detail'}{'RecID'}
, resume => $RecList{$id}{'detail'}{'resume'}
, recording => $orig_recording
);
}
}
%perl>
%method>
<%method display_form>
% $m->comp('/include/recordings:read_recordings');
%method>
<%method display_detail>
<%args>
$id
$resume => undef
$recording => 'default'
%args>
<&| '/include/recordings:get_single_id', id => $id &>
%titel |  |
%subtitel
% if ( !defined $resume ) { print "

"; }
%channel_name
%time %length min
&>
<%filter>
s/\|\*\*\*\|/
/g;
s/\|/
/;
s/\|/
/g;
%filter>
%method>
<%method ask_force_cover>
<%args>
$div => 'recordings'
$recording => 'default'
%args>
<%attr>
ajax => 1
update => 'recordings'
throbber => 1
form => 'coverflag'
%attr>
@(erneut fehlende Cover suchen)?
%method>
<%method force_cover>
<%attr>
ajax => 1
%attr>
<%perl>
use File::Touch;
touch( '/tmp/cover.force' );
%perl>
%method>
<%method ask_delete_cover>
<%args>
$div => 'recordings'
$recording => 'default'
$recdir
%args>
<%attr>
ajax => 1
update => 'recordings'
throbber => 1
form => 'coverflag'
%attr>
<%perl>
$recdir = uri_unescape( $recdir );
$recdir =~ s/#/___H___/g;
$recdir =~ s/'/___A___/g;
$recdir =~ s/&/___U___/g;
%perl>
@(Cover loeschen)?
%method>
<%method delete_cover>
<%attr>
ajax => 1
%attr>
<%args>
$perm => undef
$recdir
%args>
<%perl>
use File::Touch;
$recdir = uri_unescape($recdir);
$recdir =~ s/___H___/#/g;
$recdir =~ s/___A___/'/g;
$recdir =~ s/___U___/&/g;
unlink( "$recdir/cover.jpg" ) if -e "$recdir/cover.jpg";
unlink( "$recdir/cover.notfound" ) if -e "$recdir/cover.notfound";
touch( "$recdir/cover.notfound" ) if $perm;
%perl>
%method>