X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FClientConfig.pm;h=59fe4f555fbaaffb7f985839f02162b89887d416;hb=bc89ebf428c7bde2205b31c5c9abb66879e673e4;hp=a222a39f17404c9d747481332bb4e6a2c6dcd009;hpb=2bb452ee62e74c2a42113171eeb53de8d09bbbf5;p=kivitendo-erp.git diff --git a/SL/Controller/ClientConfig.pm b/SL/Controller/ClientConfig.pm index a222a39f1..59fe4f555 100644 --- a/SL/Controller/ClientConfig.pm +++ b/SL/Controller/ClientConfig.pm @@ -12,18 +12,21 @@ use SL::DB::Default; use SL::DB::Language; use SL::DB::Part; use SL::DB::Unit; +use SL::DB::Customer; use SL::Helper::Flash; use SL::Locale::String qw(t8); use SL::PriceSource::ALL; use SL::Template; use SL::Controller::TopQuickSearch; +use SL::Helper::ShippedQty; __PACKAGE__->run_before('check_auth'); use Rose::Object::MakeMethods::Generic ( - 'scalar --get_set_init' => [ qw(defaults all_warehouses all_weightunits all_languages all_currencies all_templates all_price_sources h_unit_name available_quick_search_modules + 'scalar --get_set_init' => [ qw(defaults all_warehouses all_weightunits all_languages all_currencies all_templates all_price_sources h_unit_name available_quick_search_modules available_shipped_qty_item_identity_fields all_project_statuses all_project_types - posting_options payment_options accounting_options inventory_options profit_options balance_startdate_method_options) ], + posting_options payment_options accounting_options inventory_options profit_options balance_startdate_method_options + displayable_name_specs_by_module) ], ); sub action_edit { @@ -130,6 +133,11 @@ sub action_save { $self->defaults->templates('templates/' . $::form->{new_templates}); } + # Displayable name preferences + foreach my $specs (@{ $::form->{displayable_name_specs} }) { + $self->displayable_name_specs_by_module->{$specs->{module}}->{prefs}->store_default($specs->{default}); + } + # Finally save defaults. $self->defaults->save; @@ -197,6 +205,27 @@ sub init_available_quick_search_modules { [ SL::Controller::TopQuickSearch->new->available_modules ]; } +sub init_available_shipped_qty_item_identity_fields { + [ SL::Helper::ShippedQty->new->available_item_identity_fields ]; +} + +sub init_displayable_name_specs_by_module { + +{ + 'SL::DB::Customer' => { + specs => SL::DB::Customer->displayable_name_specs, + prefs => SL::DB::Customer->displayable_name_prefs, + }, + 'SL::DB::Vendor' => { + specs => SL::DB::Vendor->displayable_name_specs, + prefs => SL::DB::Vendor->displayable_name_prefs, + }, + 'SL::DB::Part' => { + specs => SL::DB::Part->displayable_name_specs, + prefs => SL::DB::Part->displayable_name_prefs, + }, + }; +} + # # filters # @@ -214,10 +243,25 @@ sub edit_form { $::request->layout->use_javascript("${_}.js") for qw(jquery.selectboxes jquery.multiselect2side kivi.File); + $self->setup_edit_form_action_bar; $self->render('client_config/form', title => t8('Client Configuration'), make_chart_title => sub { $_[0]->accno . '--' . $_[0]->description }, make_templates_value => sub { 'templates/' . $_[0] }, ); } +sub setup_edit_form_action_bar { + my ($self) = @_; + + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + action => [ + t8('Save'), + submit => [ '#form', { action => 'ClientConfig/save' } ], + accesskey => 'enter', + ], + ); + } +} + 1;