X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FTopQuickSearch.pm;h=4d0aa9492bec0302260a6db9d30d8e62e7f67e02;hb=feb6f563968f53e59511578429b1dd61fda52008;hp=d4367cef9936b2679a7dc99133d3449948d14921;hpb=23c5a95043040ef7c0eb84b160b701099a550a28;p=kivitendo-erp.git diff --git a/SL/Controller/TopQuickSearch.pm b/SL/Controller/TopQuickSearch.pm index d4367cef9..4d0aa9492 100644 --- a/SL/Controller/TopQuickSearch.pm +++ b/SL/Controller/TopQuickSearch.pm @@ -6,6 +6,7 @@ use parent qw(SL::Controller::Base); use SL::ClientJS; use SL::JSON; use SL::Locale::String qw(t8); +use SL::Helper::UserPreferences; use Rose::Object::MakeMethods::Generic ( 'scalar --get_set_init' => [ qw(module js) ], @@ -16,12 +17,18 @@ my @available_modules = ( 'SL::Controller::TopQuickSearch::Part', 'SL::Controller::TopQuickSearch::Service', 'SL::Controller::TopQuickSearch::Assembly', + 'SL::Controller::TopQuickSearch::Assortment', 'SL::Controller::TopQuickSearch::Contact', 'SL::Controller::TopQuickSearch::SalesQuotation', 'SL::Controller::TopQuickSearch::SalesOrder', + 'SL::Controller::TopQuickSearch::SalesDeliveryOrder', 'SL::Controller::TopQuickSearch::RequestForQuotation', 'SL::Controller::TopQuickSearch::PurchaseOrder', + 'SL::Controller::TopQuickSearch::PurchaseDeliveryOrder', 'SL::Controller::TopQuickSearch::GLTransaction', + 'SL::Controller::TopQuickSearch::Customer', + 'SL::Controller::TopQuickSearch::Vendor', + 'SL::Controller::TopQuickSearch::PhoneNumber', ); my %modules_by_name; @@ -62,9 +69,18 @@ sub available_modules { } sub enabled_modules { - my %enabled_names = map { - $_ => 1 - } @{ $::instance_conf->get_quick_search_modules }; + my $user_prefs = SL::Helper::UserPreferences->new( + namespace => 'TopQuickSearch', + ); + + my @quick_search_modules; + if (my $prefs_val = $user_prefs->get('quick_search_modules')) { + @quick_search_modules = split ',', $prefs_val; + } else { + @quick_search_modules = @{ $::instance_conf->get_quick_search_modules }; + } + + my %enabled_names = map { $_ => 1 } @quick_search_modules; grep { $enabled_names{$_->name} @@ -73,7 +89,7 @@ sub enabled_modules { sub active_modules { grep { - $::auth->assert($_->auth, 1) + !$_->auth || $::auth->assert($_->auth, 1) } $_[0]->enabled_modules } @@ -86,7 +102,7 @@ sub init_module { die 'Unknown module ' . $::form->{module} unless my $class = $modules_by_name{$::form->{module}}; - $::auth->assert($class->auth); + $::auth->assert($class->auth) if $class->auth; return $class->new; } @@ -185,7 +201,6 @@ The full interface is described in L =head1 TODO * user configuration - * searches for orders, customers, vendors =head1 BUGS