$c->stash->{'last_login_name'} = $c->session->{'last_login_name'};
$c->log->debug( $K . "Aktuelle Script-URL: '" . $c->stash->{'self_url'} . "'." ) if $c->stash->{'debug_level'} >= 2;
+ $c->log->debug( get_output_string( $K, "Aktueller Request: ", $c->req ) ) if $c->config->{'debug_level'} >= 3;
# Listenlaenge festlegen
$c->stash->{'list_length'} = $c->session->{'list_length'} || $c->config->{'default_list_length'} || 20;
return 1 unless $c->request->params->{'autor_form_sent'} and $c->request->params->{'do_save'};
- return $self->save_author($c);
+ return $self->save_author($c);
}
delete $c->session->{'autor_data_edit'} if exists $c->session->{'autor_data_edit'};
delete $c->session->{'return_target_autor_save'} if exists $c->session->{'return_target_autor_save'};
+ $c->session->{'last_inserted'} = {} unless $c->session->{'last_inserted'};
+ $c->session->{'last_inserted'}{'autor_id'} = $autor_id;
+
return 1;
}
$c->session->{'return_target_new'} = $c->web_path("/books");
delete $c->session->{'from_book_list'} if exists $c->session->{'from_book_list'};
+ delete $c->session->{'form'}{'buch'} if exists $c->session->{'form'}{'buch'};
}
'name' => "Neu"
};
+ # Es wurde auf "Neuer Autor" geklickt.
+ if ( $c->request->params->{'neuer_autor'} ) {
+ $c->session->{'form'} = {} unless $c->session->{'form'};
+ $c->session->{'form'}{'buch'} = {} unless $c->session->{'form'}{'buch'};
+ $c->session->{'form'}{'buch'}{'neuer_autor_angefordert'} = 1;
+ $self->bookdata_cgi2session($c);
+ $c->response->redirect( $c->web_path( '/autor/new', { 'return_target_form' => $c->stash->{'self_url'} } ) );
+ return 1;
+ }
+
$c->stash->{'return_target'} = $c->session->{'return_target_new'} or $c->web_path("/books");
$c->stash->{'template'} = 'books/new.tt2';
}
-
#-------------------------------------------------------
sub bookdata_session2stash : Private {
my ( $self, $c ) = @_;
my $K = ( caller(0) )[3] . "(): ";
+ $c->log->debug( $K . "aufgerufen." );
$c->stash->{'book_edit'} = {} unless $c->stash->{'book_edit'};
$c->stash->{'book_edit'}{'title'} = $c->session->{'book_data_edit'}{'title'} if defined $c->session->{'book_data_edit'}{'title'};
$c->stash->{'book_edit'}{'id'} = $c->session->{'book_data_edit'}{'id'} if $c->session->{'book_data_edit'}{'id'};
+ $c->stash->{'selected_autor_ids'} = {} unless $c->stash->{'selected_autor_ids'};
+ if ( $c->session->{'form'}{'buch'}{'neuer_autor_angefordert'} and $c->session->{'last_inserted'}{'autor_id'} ) {
+ $c->stash->{'selected_autor_ids'}{ $c->session->{'last_inserted'}{'autor_id'} } = 1;
+ }
+
my %Autor;
$c->stash->{'autor_list_book'} = [];
my ( $self, $c ) = @_;
my $K = ( caller(0) )[3] . "(): ";
+ $c->log->debug( $K . "aufgerufen." );
return 1 unless $c->request->params->{'book_form_sent'};
# Basis anlegen, wenn notwendig
return 1 unless $self->check_formparams($c);
+ my $cid = undef;
+
eval {
- die "Speichern des Verlags misslungen." unless save_category( $c, $c->stash->{'category_edit'} );
+ $cid = save_category( $c, $c->stash->{'category_edit'} );
};
if ( $@ ) {
$c->stash->{'error_message'} = $@;
+ $c->log->warn( "Fehler beim Speichern der Kategorie: " . $@ );
+ return undef;
+ }
+ unless ( $cid ) {
+ my $msg = "Speichern der Kategorie mißlungen.";
+ $c->log->info( $K . "Fehler beim Speichern: " . $msg );
+ $c->stash->{'error_message'} = $msg;
return undef;
}
delete $c->session->{'category_data_edit'} if exists $c->session->{'category_data_edit'};
delete $c->session->{'return_target_category_save'} if exists $c->session->{'return_target_category_save'};
+ $c->session->{'last_inserted'} = {} unless $c->session->{'last_inserted'};
+ $c->session->{'last_inserted'}{'kategorie_id'} = $cid;
+
return 1;
}
books_in_other_list
category_data_edit
delete_book_id
+ form
from_book_list
+ last_inserted
list_length
ort_data_edit
return_target_autor_save
verlag_data_edit
);
for my $key (@Keys) {
- delete $c->session->{$key} if $c->session->{$key};
+ delete $c->session->{$key} if exists $c->session->{$key};
}
$c->stash->{'login_action'} = 'none';
return 1 unless $self->check_formparams($c);
+ my $oid = undef;
+
eval {
- die "Speichern des Aufbewahrungsortes mißlungen." unless save_ort( $c, $c->stash->{'ort_edit'} );
+ die "Speichern des Aufbewahrungsortes mißlungen." unless $oid = save_ort( $c, $c->stash->{'ort_edit'} );
};
if ( $@ ) {
$c->stash->{'error_message'} = $@;
+ $c->log->warn( "Fehler beim Speichern des Aufbewahrungsortes: " . $@ );
return undef;
}
delete $c->session->{'ort_data_edit'} if exists $c->session->{'ort_data_edit'};
delete $c->session->{'return_target_ort_save'} if exists $c->session->{'return_target_ort_save'};
+ $c->session->{'last_inserted'} = {} unless $c->session->{'last_inserted'};
+ $c->session->{'last_inserted'}{'orts_id'} = $oid;
+
return 1;
}
}
$c->log->debug( get_output_string( $K, "Menue-Pfad: ", $c->stash->{'menu_path'} ) ) if $c->stash->{'debug_level'};
+ delete $c->stash->{'storage'} if exists $c->stash->{'storage'};
+ $c->log->debug( get_output_string( $K, "Aktuelle Session: ", $c->session ) ) if $c->config->{'debug_level'} >= 3;
+ $c->log->debug( get_output_string( $K, "Aktueller Stash: ", $c->stash ) ) if $c->config->{'debug_level'} >= 3;
+
}
=head1 AUTHOR
return 1 unless $self->check_formparams($c);
+ my $sid = undef;
+
eval {
- die "Speichern der Buchserie mißlungen." unless save_serie( $c, $c->stash->{'serie_edit'} );
+ $sid = save_serie( $c, $c->stash->{'serie_edit'} );
+ die "Speichern der Buchserie mißlungen." unless $sid;
};
if ( $@ ) {
$c->stash->{'error_message'} = $@;
+ $c->log->warn( "Fehler beim Speichern der Buchserie: " . $@ );
return undef;
}
delete $c->session->{'serie_data_edit'} if exists $c->session->{'serie_data_edit'};
delete $c->session->{'return_target_serie_save'} if exists $c->session->{'return_target_serie_save'};
+ $c->session->{'last_inserted'} = {} unless $c->session->{'last_inserted'};
+ $c->session->{'last_inserted'}{'serien_id'} = $sid;
+
return 1;
}
return 1 unless $self->check_formparams($c);
+ my $vid = undef;
+
eval {
- die "Speichern des Verlags misslungen." unless save_verlag( $c, $c->stash->{'verlag_edit'} );
+ $vid = save_verlag( $c, $c->stash->{'verlag_edit'} );
};
if ( $@ ) {
$c->stash->{'error_message'} = $@;
+ $c->log->warn( "Fehler beim Speichern des Verlags: " . $@ );
+ return undef;
+ }
+ unless ( $vid ) {
+ my $msg = "Speichern des Verlags mißlungen.";
+ $c->log->info( $K . "Fehler beim Speichern: " . $msg );
+ $c->stash->{'error_message'} = $msg;
return undef;
}
delete $c->session->{'verlag_data_edit'} if exists $c->session->{'verlag_data_edit'};
delete $c->session->{'return_target_verlag_save'} if exists $c->session->{'return_target_verlag_save'};
+ $c->session->{'last_inserted'} = {} unless $c->session->{'last_inserted'};
+ $c->session->{'last_inserted'}{'verlags_id'} = $vid;
+
return 1;
}
<script type="text/javascript">//<![CDATA[
-function goto_new_author() {
- var target = '[% Catalyst.web_path( '/autor/new', { 'return_target_form' => self_url } ) %]';
- window.location.href = target;
-}
-
function goto_new_verlag() {
var target = '[% Catalyst.web_path( '/verlag/new', { 'return_target_form' => self_url } ) %]';
window.location.href = target;
</tr><tr>
<td><select name="autor_not" size="12" multiple>
<option value="">-- Autor oder Autoren wählen --</option>[% FOR autor_id IN autor_list_no %]
- <option value="[% autor_id %]">[% autor_list.$autor_id %]</option>
+ <option value="[% autor_id %]"[% IF selected_autor_ids.$autor_id %] selected="selected"[% END %]>[% autor_list.$autor_id %]</option>
[% END %]</select></td>
<td><input type="submit" name="wird_autor" value="⇒" class="shift_button" title="Wird Autor" /><br /><br />
<input type="submit" name="nach_oben" value="⇑" class="shift_button" title="Autor in der Reihenfolge nach oben" /><br /><br />
- <input type="button" name="neuer_autor" value="*" class="shift_button" title="Neuer Autor" onclick="goto_new_author();" /><br /><br />
+ <input type="submit" name="neuer_autor" value="*" class="shift_button" title="Neuer Autor" /><br /><br />
<input type="submit" name="nach_unten" value="⇓" class="shift_button" title="Autor in der Reihenfolge nach unten" /><br /><br />
<input type="submit" name="entf_autor" value="⇐" class="shift_button" title="Autor entfernen" />
</td>