<%attr> ajax => 1
<& 'SELF:display_form', %ARGS &>

<& 'SELF:display_overview', %ARGS &>
<%method display_overview> <%args> $recording => 'default' $recid => undef $search => undef $force => undef <%attr> ajax => 1 update => 'recordings' throbber => 1 form => 'recordingsform' <%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 ); } } <%method display_form> % $m->comp('/include/recordings:read_recordings');
@(erneut fehlende Cover suchen)
<%method display_detail> <%args> $id $resume => undef $recording => 'default' <&| '/include/recordings:get_single_id', id => $id &>
%titel
%subtitel % if ( !defined $resume ) { print " "; }
%channel_name
%time   %length min
%descr

@(Play) @(WantDelete)
<%filter> s/\|\*\*\*\|/

/g; s/\|/

/; s/\|/

/g; <%method ask_force_cover> <%args> $div => 'recordings' $recording => 'default' <%attr> ajax => 1 update => 'recordings' throbber => 1 form => 'coverflag'  @(erneut fehlende Cover suchen)?

<%method force_cover> <%attr> ajax => 1 <%perl> use File::Touch; touch( '/tmp/cover.force' ); <%method ask_delete_cover> <%args> $div => 'recordings' $recording => 'default' $recdir <%attr> ajax => 1 update => 'recordings' throbber => 1 form => 'coverflag' <%perl> $recdir = uri_unescape( $recdir ); $recdir =~ s/#/___H___/g; $recdir =~ s/'/___A___/g; $recdir =~ s/&/___U___/g;  @(Cover loeschen)?

<%method delete_cover> <%attr> ajax => 1 <%args> $perm => undef $recdir <%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;