]> Frank Brehm's Git Trees - books.git/commitdiff
Löschen eines Autors ermöglicht, weiteres DB-Feld 'Über' in die Autorentabelle
authorFrank Brehm <frank@brehm-online.com>
Sun, 14 Jun 2009 12:20:59 +0000 (12:20 +0000)
committerFrank Brehm <frank@brehm-online.com>
Sun, 14 Jun 2009 12:20:59 +0000 (12:20 +0000)
lib/FrBr/Books/Controller/Autor.pm
lib/FrBr/Books/Db/Autoren.pm
lib/FrBr/Books/Util/Author.pm
root/src/autor/autor_form.tt2
root/src/autor/delete.tt2 [new file with mode: 0644]
root/src/autor/delete_success.tt2 [new file with mode: 0644]
root/src/autor/view.tt2

index a74f9988f4f171b28706cc3882649ddbf23fef11..817e7d47ee21b70dfc52e6a8e4f69519073304f1 100644 (file)
@@ -493,6 +493,7 @@ sub autor_session2stash : Private {
     $c->stash->{'autor_edit'}{'nachname'}    = $c->session->{'autor_data_edit'}{'nachname'}    if $c->session->{'autor_data_edit'}{'nachname'};
     $c->stash->{'autor_edit'}{'name_suffix'} = $c->session->{'autor_data_edit'}{'name_suffix'} if exists $c->session->{'autor_data_edit'}{'name_suffix'};
     $c->stash->{'autor_edit'}{'descr'}       = $c->session->{'autor_data_edit'}{'descr'}       if exists $c->session->{'autor_data_edit'}{'descr'};
+    $c->stash->{'autor_edit'}{'about'}       = $c->session->{'autor_data_edit'}{'about'}       if exists $c->session->{'autor_data_edit'}{'about'};
 
     $c->stash->{'return_target_autor_save'} = $c->session->{'return_target_autor_save'} || $c->web_path('/autor');
 
@@ -564,6 +565,9 @@ sub autor_cgi2session : Private {
     # Genauere Beschreibung des Autors
     $c->session->{'autor_data_edit'}{'descr'} = $c->request->params->{'autor_desc'} if defined $c->request->params->{'autor_desc'};
 
+    # Lebenslauf des Autors und ähnliches
+    $c->session->{'autor_data_edit'}{'about'} = $c->request->params->{'autor_about'} if defined $c->request->params->{'autor_about'};
+
     return 1;
 
 }
index d4e1903f3e575c8d17483b32143794660e335994..323815e44e2e0002f586ae0bb35519140e57c130 100644 (file)
@@ -18,6 +18,7 @@ __PACKAGE__->add_columns(
   "nachname"    => { data_type => "VARCHAR", default_value => undef, is_nullable => 0, size => 150, },
   "name_suffix" => { data_type => "VARCHAR", default_value => undef, is_nullable => 1, size => 100, },
   "autor_descr" => { data_type => "TEXT",    default_value => undef, is_nullable => 0, size => 65535, },
+  "about"       => { data_type => "TEXT",    default_value => undef, is_nullable => 0, size => 65535, },
 );
 __PACKAGE__->set_primary_key("id");
 __PACKAGE__->add_unique_constraint( "name", [ "nachname", "vorname", "mittelname", "name_suffix" ] );
index 04d15309064c238aeb623df0a072e6d185ec1437..5ba8d81cb7074b68cf14d4292a7d2e5d97b03807 100644 (file)
@@ -85,6 +85,7 @@ Die zurueckgegebene Array-Ref hat folgenden Aufbau:
                        'nachname'    => 'Tolkien',
                        'name_suffix' => undef,
                        'descr'       => 'Bla Blub',
+                       'about'       => 'Der Autor wurde ...',
                        'books'       => [
                                {
                                        'id'             => 22,
@@ -155,6 +156,7 @@ sub get_author_list {
         'nachname',
         'name_suffix',
         'autor_descr',
+               'about',
     ];
     $other_params->{'as'} = [
         'id',
@@ -164,6 +166,7 @@ sub get_author_list {
         'nachname',
         'name_suffix',
         'autor_descr',
+               'about',
     ];
  
        if ( $page ) {
@@ -180,6 +183,7 @@ sub get_author_list {
                $autor->{'nachname'}    = $autor_rs->nachname();
                $autor->{'name_suffix'} = $autor_rs->name_suffix();
                $autor->{'descr'}       = $autor_rs->autor_descr();
+               $autor->{'about'}       = $autor_rs->about();
                $autor->{'books'}       = [];
                my @N;
                push @N, $autor->{'titel'} if $autor->{'titel'};
@@ -300,6 +304,12 @@ sub save_autor {
     $tmp =~ s/\s+$//;
        $row->{'autor_descr'} = $tmp;
 
+    $tmp = $autor->{'about'};
+    $tmp = '' unless defined $tmp;
+    $tmp =~ s/^\s+//;
+    $tmp =~ s/\s+$//;
+       $row->{'about'} = $tmp eq '' ? undef : $tmp;
+
        my $saved_aid = get_autor_id( $c, $search_params );
        
     # Zuerst einmal Test im nichgelocktem Zustand ...
index 7fd09f37ff25c3caae7a0dd2822e319f6e81b182..2ea6f29c801d3e92f5be81bd3f8dbd3641261e46 100644 (file)
@@ -1,4 +1,4 @@
-[%#
+<!-- [%#
      Template fuer Autorenangaben
 
      vim: noai : ts=4 fenc=utf-8 filetype=html expandtab :
@@ -8,7 +8,7 @@
 
 -%]
 
-<!-- Autoren-Formular -->
+Autoren-Formular -->
 
 <form method="post" name="autor_form" action="[% self_url %]">
 <input type="hidden" name="autor_form_sent" value="sent" />
       <td><input type="text" name="autor_name_suffix" size="50" maxlength="100" value="[% autor_edit.name_suffix | html %]" /></td>
     </tr><tr>
       <th>Zusätzliche Angaben:</th>
-      <td><textarea name="autor_desc" cols="50" rows="5">[% autor_edit.descr | html %]</textarea></td>
+      <td><textarea name="autor_desc" cols="80" rows="3">[% autor_edit.descr | html %]</textarea></td>
+    </tr><tr>
+      <th>Über den Autor:</th>
+      <td><textarea name="autor_about" cols="80" rows="10">[% autor_edit.about | html %]</textarea></td>
     </tr><tr>
       <td colspan="2">&nbsp;</td>
     </tr><tr>
diff --git a/root/src/autor/delete.tt2 b/root/src/autor/delete.tt2
new file mode 100644 (file)
index 0000000..99348ef
--- /dev/null
@@ -0,0 +1,69 @@
+<!-- [%# 
+
+    Template zum Löschen eines Autors
+
+    vim: noai : ts=4 fenc=utf-8 filetype=html expandtab :
+
+    $Id$
+    $URL$
+
+    Übergebene Struktur in [autor]:
+
+    $autor = {
+        'id'          => 1,
+        'name'        => 'J.R.R. Tolkien',
+        'titel'       => undef,
+        'vorname'     => 'J.R.R.',
+        'mittelname'  => undef,
+        'nachname'    => 'Tolkien',
+        'name_suffix' => undef,
+        'descr'       => 'Bla Blub',
+        'books'       => [],
+    };
+-%]
+
+Autor löschen -->
+
+<form method="post" name="autor_form" action="[% self_url %]">
+<input type="hidden" name="really_delete_author" value="yes" />
+<input type="hidden" name="delete_autor_id" value="[% autor.id | html %]" />
+
+<table class="ftable" cellspacing="0">
+  <tr>
+    <th colspan="2" class="title">Möchten Sie den Autor '[% autor.name | html %]' wirklich löschen?</th>
+  </tr><tr>
+    <td colspan="2" class="empty"></td>
+  </tr><tr>
+    <th>Titel des Autors :</th>
+    <td>[% autor.title | html %]</td>
+  </tr><tr>
+    <th>Vorname:</th>
+    <td>[% autor.vorname | 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>
+    <td colspan="2" class="empty"></td>
+  </tr><tr>
+      <th colspan="2" class="button"><input type="submit" name="do_delete" value="  Löschen  " /></th>
+</table>
+
+[%- IF error_message %]
+<div class="error">
+<span class="bold">Fehler:</span>&nbsp;[% error_message %]
+</div>
+[% END -%]
+
+<div class="back">
+<h2><a href="[% return_target %]">[% 'Zurück' %]</a></h2>
+</div>
+
diff --git a/root/src/autor/delete_success.tt2 b/root/src/autor/delete_success.tt2
new file mode 100644 (file)
index 0000000..cfc86b5
--- /dev/null
@@ -0,0 +1,36 @@
+<!-- [%# 
+
+    Template zum Melden des erfolgreichen Löschen eines Autors
+
+    vim: noai : ts=4 fenc=utf-8 filetype=html expandtab :
+
+    $Id$
+    $URL$
+
+    Übergebene Struktur in [autor]:
+
+    $autor = {
+        'id'          => 1,
+        'name'        => 'J.R.R. Tolkien',
+        'titel'       => undef,
+        'vorname'     => 'J.R.R.',
+        'mittelname'  => undef,
+        'nachname'    => 'Tolkien',
+        'name_suffix' => undef,
+        'descr'       => 'Bla Blub',
+        'books'       => [],
+    };
+-%]
+
+Autor wurde gelöscht -->
+
+<div style="text-align: center">
+
+Der Autor <b>&quot;[% autor.name | html %]&quot;</b> wurde erfolgreich gelöscht.
+
+</div>
+
+<div class="back">
+<h2><a href="[% return_target %]">[% 'OK' %]</a></h2>
+</div>
+
index e1d544990b15a665ade5254c3855651ae5f2f0d0..323d0df7a2fca9b04afc565d800e8871d509da9d 100644 (file)
@@ -35,6 +35,7 @@
     };
 
 -%]
+[% USE ForumCode %]
 [%- BLOCK book_entry -%]
 <a href="[% Catalyst.web_path( '/books/view', { 'return_target_form' => self_url, view_book_id => b.id, } ) %]">[% b.title | html %]</a>[% IF b.untertitel %]<br />
          <i>([% b.untertitel | html %])</i>[% END %]
@@ -65,6 +66,9 @@ Autorenanzeige -->
   </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>
   </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>