]> wagnertech.de Git - kivitendo-erp.git/commitdiff
QuickSearch: nicht anzeigen, wenn Datenbankupgrades eingespielt werden müssen
authorMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 1 Apr 2016 09:13:16 +0000 (11:13 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 1 Apr 2016 09:13:16 +0000 (11:13 +0200)
QuickSearch hat seine Konfiguration in gewissen Spalten in der
Datenbank. Um auf diese zugreifen zu können, müssen die dazugehörigen
Datenbankupgrades bereits eingespielt worden sein.

Da das Menü und damit die QuickSearch-Items auch während des Einspielens
der Upgrades angezeigt werden, kann es also dazu führen, dass die
Spalten noch nicht existieren. Daher wird QuickSearch nun komplett
deaktiviert, solange ausstehende Datenbankupgrades existieren.

SL/Layout/Top.pm
SL/Request.pm
SL/User.pm

index 2ae61cb05db457d49175e5fa6e519739a9510009..05c0046e1d5b9a4c6fbcc08dbf5e1ceddfe3b078 100644 (file)
@@ -8,11 +8,17 @@ use SL::Controller::TopQuickSearch;
 sub pre_content {
   my ($self) = @_;
 
+  my @options;
+  # Only enable the quick search functionality if all database
+  # upgrades have already been applied as quick search requires
+  # certain columns that are only created by said database upgrades.
+  push @options, (quick_search => SL::Controller::TopQuickSearch->new) unless $::request->applying_database_upgrades;
+
   $self->presenter->render('menu/header',
     now        => DateTime->now_local,
     is_fastcgi => $::dispatcher ? scalar($::dispatcher->interface_type =~ /fastcgi/i) : 0,
     is_links   => scalar($ENV{HTTP_USER_AGENT}         =~ /links/i),
-    quick_search => SL::Controller::TopQuickSearch->new,
+    @options,
   );
 }
 
index f72694d1c53a8981691f4c6f2f2d629aac475280..8d62f17d0e30dabc18af804e7aaca6e5397763bd 100644 (file)
@@ -18,6 +18,7 @@ our @EXPORT_OK = qw(flatten unflatten read_cgi_input);
 
 use Rose::Object::MakeMethods::Generic
 (
+  scalar                  => [ qw(applying_database_upgrades) ],
   'scalar --get_set_init' => [ qw(cgi layout presenter is_ajax type) ],
 );
 
index fe2152ecea8086317285a7c83570f8257a8509bf..37e1a9b5f664738a1a78f00c7015d10773f500a8 100644 (file)
@@ -133,6 +133,11 @@ sub login {
     return LOGIN_OK();
   }
 
+  # Store the fact that we're applying database upgrades at the
+  # moment. That way functions called from the layout modules that may
+  # require updated tables can chose only to use basic features.
+  $::request->applying_database_upgrades(1);
+
   $form->{$_} = $::auth->client->{$_} for qw(dbname dbhost dbport dbuser dbpasswd);
   $form->{$_} = $myconfig{$_}         for qw(datestyle);