use SL::DB::Employee;
use SL::Helper::Flash;
+use SL::Locale::String qw(t8);
__PACKAGE__->run_before('check_auth');
__PACKAGE__->run_before('load_all');
my ($self, %params) = @_;
if ($self->{employee}) {
+ $self->setup_edit_action_bar;
$self->render('employee/edit', title => $::locale->text('Edit Employee #1', $self->{employee}->safe_name));
} else {
- flash('error', $::locale->text('Could not load employee'));
+ flash_later('error', $::locale->text('Could not load employee'));
$self->redirect_to(action => 'list');
}
}
sub action_save {
my ($self, %params) = @_;
- $self->{employee}->save;
+ SL::DB->client->with_transaction(sub {
+ 1;
- flash('info', $::locale->text('Employee #1 saved!'));
+ $self->{employee}->save;
+
+ if ($self->{employee}->deleted) {
+ my $auth_user = SL::DB::Manager::AuthUser->get_first(login => $self->{employee}->login);
+ if ($auth_user) {
+ SL::DB::Manager::AuthClientUser->delete_all(
+ where => [
+ client_id => $::auth->client->{id},
+ user_id => $auth_user->id,
+ ]);
+ }
+ }
+
+ 1;
+ });
+
+ flash('info', $::locale->text('Employee #1 saved!', $self->{employee}->safe_name));
$self->redirect_to(action => 'edit', 'employee.id' => $self->{employee}->id);
}
return 1;
}
+sub setup_edit_action_bar {
+ my ($self) = @_;
+
+ for my $bar ($::request->layout->get('actionbar')) {
+ $bar->add(
+ action => [
+ t8('Save'),
+ submit => [ '#form', { action => 'Employee/save' } ],
+ accesskey => 'enter',
+ ],
+
+ 'separator',
+
+ link => [
+ t8('Abort'),
+ link => $self->url_for(action => 'list'),
+ ],
+ );
+ }
+}
######################## behaviour ##########################