X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FCustomVariableConfig.pm;h=0b124e9fb97c068e12e93bbfcd42c5f45413d64d;hb=e19609317e221f6b10cbe18a70b215d744736388;hp=456fe7176141c6a42043100cad45443af7b3678e;hpb=fb84ef1587044f423b948c60f66fd08b5d4e12a6;p=kivitendo-erp.git diff --git a/SL/Controller/CustomVariableConfig.pm b/SL/Controller/CustomVariableConfig.pm index 456fe7176..0b124e9fb 100644 --- a/SL/Controller/CustomVariableConfig.pm +++ b/SL/Controller/CustomVariableConfig.pm @@ -46,6 +46,7 @@ sub action_list { my $configs = SL::DB::Manager::CustomVariableConfig->get_all_sorted(where => [ module => $self->module ]); + $self->setup_list_action_bar; $::form->header; $self->render('custom_variable_config/list', title => t8('List of custom variables'), @@ -70,6 +71,7 @@ sub show_form { $params{all_partsgroups} = SL::DB::Manager::PartsGroup->get_all(); $::request->layout->use_javascript("${_}.js") for qw(jquery.selectboxes jquery.multiselect2side); + $self->setup_form_action_bar; $self->render('custom_variable_config/form', %params); } @@ -164,6 +166,7 @@ sub init_modules { { module => 'IC', description => t8('Parts, services and assemblies') }, { module => 'Projects', description => t8('Projects') }, { module => 'RequirementSpecs', description => t8('Requirement Specs') }, + { module => 'ShipTo', description => t8('Shipping Address') }, )]; } @@ -196,13 +199,13 @@ sub create_or_update { return; } - my $dbh = $self->config->db; - $dbh->begin_work; + SL::DB->client->with_transaction(sub { + my $dbh = SL::DB->client->dbh; - $self->config->save; - $self->_set_cvar_validity() if $is_new; - - $dbh->commit; + $self->config->save; + $self->_set_cvar_validity() if $is_new; + 1; + }) or do { die SL::DB->client->error }; flash_later('info', $is_new ? t8('The custom variable has been created.') : t8('The custom variable has been saved.')); $self->redirect_to(action => 'list', module => $self->module); @@ -225,4 +228,57 @@ sub _set_cvar_validity { } } +sub setup_list_action_bar { + my ($self) = @_; + + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + action => [ + t8('Add'), + link => $self->url_for(action => 'new', module => $self->module), + ], + ); + } +} + +sub setup_form_action_bar { + my ($self) = @_; + + my $is_new = !$self->config->id; + + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + combobox => [ + action => [ + t8('Save'), + submit => [ '#form', { action => 'CustomVariableConfig/' . ($is_new ? 'create' : 'update') } ], + checks => [ 'check_prerequisites' ], + accesskey => 'enter', + ], + + action => [ + t8('Save as new'), + submit => [ '#form', { action => 'CustomVariableConfig/create'} ], + checks => [ 'check_prerequisites' ], + not_if => $is_new, + ], + ], # end of combobox "Save" + + action => [ + t8('Delete'), + submit => [ '#form', { action => 'CustomVariableConfig/destroy' } ], + confirm => t8('Do you really want to delete this object?'), + disabled => $is_new ? t8('This object has not been saved yet.') : undef, + ], + + 'separator', + + link => [ + t8('Abort'), + link => $self->url_for(action => 'list', module => $self->module), + ], + ); + } +} + 1;