]> Frank Brehm's Git Trees - books.git/commitdiff
Betrachten einer Buchserie dazu
authorFrank Brehm <frank@brehm-online.com>
Sun, 22 Nov 2009 16:01:47 +0000 (16:01 +0000)
committerFrank Brehm <frank@brehm-online.com>
Sun, 22 Nov 2009 16:01:47 +0000 (16:01 +0000)
lib/FrBr/Books/Controller/Serie.pm
lib/FrBr/Books/Util/Serie.pm
root/src/serie/view.tt2

index ce8df7a69974042aaf433aecfd9ad00355ffccf2..215bfe6bcbb13bca3db6ba10b65d4e858f1a06eb 100644 (file)
@@ -184,6 +184,7 @@ sub form_new : Path('new') {
     }
 
     $c->stash->{'menu_path'} = [] unless $c->stash->{'menu_path'};
+       $self->add_serienlist_menu($c) if $c->session->{'from_serie_list'};
     push @{ $c->stash->{'menu_path'} }, {
         'path' => $c->web_path("/serie/new"),
         'name' => "Neu"
@@ -211,6 +212,55 @@ sub form_new : Path('new') {
 
 #-------------------------------------------------------
 
+=head2 form_view( )
+
+Ansehen einer vorhandenen Buchserie.
+
+=cut
+
+sub form_view : Path('view') {
+
+    my ( $self, $c ) = @_;
+    my $K = ( caller(0) )[3] . "(): ";
+
+    $c->log->debug( $K . "aufgerufen." ) if $c->stash->{'debug_level'} > 2;
+
+    $c->stash->{'menu_path'} = [] unless $c->stash->{'menu_path'};
+       $self->add_serienlist_menu($c) if $c->session->{'from_serie_list'};
+    push @{ $c->stash->{'menu_path'} }, {
+        'path' => $c->web_path("/serie/view"),
+        'name' => "Betrachten"
+    };
+
+    $c->stash->{'error_message'} = '';
+
+    my $sid = to_int( $c->request->params->{'view_serien_id'} || 0 );
+    unless ( $sid ) {
+        $c->stash->{'template'} = 'error.tt2';
+        $c->stash->{'error'}    = 'Keine oder ung&uuml;ltige Buchserien-Id &uuml;bergeben.';
+        return 1;
+    }
+
+    my $sliste = get_serienliste( $c, 'get_books' => 1, 'serien_id' => $sid );
+    $c->log->debug( get_output_string( $K, "Erhaltene Serienliste: ", $sliste ) ) if $c->stash->{'debug_level'} >= 2;
+
+    unless ( $sliste and scalar( @$sliste ) ) {
+        $c->stash->{'template'} = 'error.tt2';
+        $c->stash->{'error'}    = 'Zur &uuml;bergebenen Buchserien-Id wurde nichts gefunden.';
+        return 1;
+    }
+
+    $c->stash->{'return_target'} = $c->session->{'return_target_view'} or $c->web_path("/serie/list");
+
+    $c->stash->{'serie'} = $sliste->[0];
+    $sliste = undef;
+    $c->stash->{'template'} = 'serie/view.tt2';
+    push @{$c->stash->{'cssfiles'}}, 'serie/view.css';
+
+}
+
+#-------------------------------------------------------
+
 sub do_save_serie : Private {
 
     my ( $self, $c ) = @_;
index 4db2f0c22fc774f383a9a1d84551b7173c0c9656..5c54733702e856ffa732c67f9ef1d6b609cb9310 100644 (file)
@@ -67,7 +67,6 @@ Wenn nicht angegeben, werden alle Verlage zurückgegeben.
 
 =back
 
-Rueckgabe: Eine Array-Ref von Hash-Refs mit allen Buchserien, die den uebergebenen Suchkriterien entsprechen:
 Rueckgabe: Eine Array-Ref von Hash-Refs mit allen Buchserien, die den uebergebenen Suchkriterien entsprechen, sowie im Listenkontext die Anzahl der Buchserien, die den uebergebenen Suchkriterien entsprechen.
 
 Die zurueckgegebene Array-Ref hat folgenden Aufbau:
index d1f2dcbc812c10cacee0c260bd9e10f58707d230..cd901952dbf28c0bb9cc4741a73bc403bb11a72b 100644 (file)
@@ -7,49 +7,74 @@
     $Id$
     $URL$
 
-    Übergebene Struktur in [serien]:
+    Übergebene Struktur in [serie]:
 
-    $serien = [
-    };
+    $serie = {
+        'id'                => 1,
+        'name'              => 'Perry Rhodan',
+        'descr'             => 'Abenteuer des Weltraumspezis',
+        'count_books'       => 60,
+        'books'             => [
+          {
+            'id'                 => 2,
+            'serien_ord_num'     => 60,
+            'title'              => 'Perry Rhodan - Die Cynos',
+            'title_original'     => undef,
+            'untertitel'         => undef,
+            'bindungsart_id'     => 1,
+            'bindungsart'        => 'Hartcover',
+            'orts_id'            => 4,
+            'isbn'               => undef,
+            'verlags_id'         => 2,
+            'verlags_name'       => 'Bertelsmann',
+            'buch_nr'            => '0820 4',
+            'ausgabejahr'        => '1997',
+            'druckjahr'          => '2007',
+            'seiten'             => 402,
+            'preis'              => 18,
+            'waehrungs_id'       => 1,
+            'waehrungs_kuerzel'  => '€',
+            'waehrungs_name'     => 'Euro',
+            'umrechnung_in_euro' => 1,
+            'ortsname'           => 'Dachboden',
+            'ort_beschreibung'   => '',
+            'ort_ist_statisch'   => 'n',
+            'autoren'            => [ 'Verschiedene Autoren' ];
+            'autor_ids'          => [ 2 ];
+          },
+          {
+            'id'    => 22,
+            ...
+          },
+       };
 
 -%]
 [%- BLOCK book_entry -%]
-[% link_target = Catalyst.web_path( '/books/view', { 'return_target_form' => self_url, view_book_id => book.id, } ) -%]
-<a href="[% link_target %]">[% book.title | html %]</a>[% IF book.autoren.size %] ([% book.autoren.join( ', ' ) | html %])[% END %]
+[% link_target = Catalyst.web_path( '/books/view', { 'return_target_form' => self_url, view_book_id => b.id, } ) -%]
+<a href="[% link_target %]">[% b.title | html %]</a>[% IF b.autoren.size %] ([% b.autoren.join( ', ' ) | html %])[% END %]
 [%- END -%]
 
-Anzeige Buchserien -->
+Anzeige einer Buchserie -->
 
 <table class="ftable" cellspacing="0">
   <tr>
-    <th colspan="2" class="title">Autor '[%- autor.name | html -%]'</th>
+    <th colspan="2" class="title">Buchserie '[%- serie.name | html -%]'</th>
   </tr><tr>
     <td colspan="2" class="empty"></td>
   </tr><tr>
-    <th>Titel des Autors :</th>
-    <td>[% autor.title | html %]</td>
+    <th>Name der Buchserie:</th>
+    <td>[% serie.name | html %]</td>
   </tr><tr>
-    <th>Vorname:</th>
-    <td>[% autor.vorname | html %]</td>
+    <th>Beschreibung:</th>
+    <td>[% serie.descr | html %]</td>
   </tr><tr>
-    <th>Zweiter Vorname (oder Vatersname o.ä.):</th>
-    <td>[% autor.mittelname | html %]</td>
-  </tr><tr>
-    <th>Nachname:</th>
-    <td>[% autor.nachname | html %]</td>
-  </tr><tr>
-    <th>Namenssuffix (Jr. o.ä.):</th>
-    <td>[% autor.name_suffix | html %]</td>
-  </tr><tr>
-    <th>Zusätzliche Angaben:</th>
-    <td>[% autor.descr | html %]</td>
-  </tr><tr>
-    <th>Über den Autor:</th>
-    <td>[% ForumCode.forumcode( autor.about ) %]</td>
+    <th>Anzahl der Bücher:</th>
+    <td>[% serie.count_books | html %]</td>
   </tr><tr>
     <th>Bücher:</th>
-    <td>[% IF autor.books.size > 0 %][% IF autor.books.size > 1 %]<ul>[% FOR buch IN autor.books %]<li>[% PROCESS book_entry b=buch %]</li>
-           [% END %]</ul>[% ELSE %][% PROCESS book_entry b=autor.books.0 %][% END %][% ELSE %]<i>keine</i>[% END %]</td>
+    <td>[% IF serie.books.size > 0 %]<ul>[% FOR buch IN serie.books %]
+        <li>[% PROCESS book_entry b=buch %]</li>
+           [% END %]</ul>[% ELSE %]<i>keine</i>[% END %]</td>
 </table>
 
 <div class="back">