Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 83de52f1

Von Moritz Bunkus vor mehr als 8 Jahren hinzugefügt

  • ID 83de52f1124a71c6688a04e0c0acd841f6188d0f
  • Vorgänger d6838f77
  • Nachfolger 94b95494

QuickSearch: nicht anzeigen, wenn Datenbankupgrades eingespielt werden müssen

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.

Unterschiede anzeigen:

SL/Layout/Top.pm
8 8
sub pre_content {
9 9
  my ($self) = @_;
10 10

  
11
  my @options;
12
  # Only enable the quick search functionality if all database
13
  # upgrades have already been applied as quick search requires
14
  # certain columns that are only created by said database upgrades.
15
  push @options, (quick_search => SL::Controller::TopQuickSearch->new) unless $::request->applying_database_upgrades;
16

  
11 17
  $self->presenter->render('menu/header',
12 18
    now        => DateTime->now_local,
13 19
    is_fastcgi => $::dispatcher ? scalar($::dispatcher->interface_type =~ /fastcgi/i) : 0,
14 20
    is_links   => scalar($ENV{HTTP_USER_AGENT}         =~ /links/i),
15
    quick_search => SL::Controller::TopQuickSearch->new,
21
    @options,
16 22
  );
17 23
}
18 24

  
SL/Request.pm
18 18

  
19 19
use Rose::Object::MakeMethods::Generic
20 20
(
21
  scalar                  => [ qw(applying_database_upgrades) ],
21 22
  'scalar --get_set_init' => [ qw(cgi layout presenter is_ajax type) ],
22 23
);
23 24

  
SL/User.pm
133 133
    return LOGIN_OK();
134 134
  }
135 135

  
136
  # Store the fact that we're applying database upgrades at the
137
  # moment. That way functions called from the layout modules that may
138
  # require updated tables can chose only to use basic features.
139
  $::request->applying_database_upgrades(1);
140

  
136 141
  $form->{$_} = $::auth->client->{$_} for qw(dbname dbhost dbport dbuser dbpasswd);
137 142
  $form->{$_} = $myconfig{$_}         for qw(datestyle);
138 143

  

Auch abrufbar als: Unified diff