%::myconfig mit sinnvollen Standardwerten vorbelegen
authorMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 9 Apr 2015 07:21:13 +0000 (09:21 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 9 Apr 2015 07:22:30 +0000 (09:22 +0200)
Das zur-Verfügung-Stellen von %::myconfig in JavaScript und die darauf
basierende vereinfachte Initialisierung in 4ec753d erfordert, dass
%::myconfig immer numberformat und dateformat enthält. Andernfalls gibt
es JavaScript-Fehler, wenn noch kein User angemeldet ist.

SL/Dispatcher.pm
SL/Dispatcher/AuthHandler/Admin.pm
SL/Dispatcher/AuthHandler/None.pm
SL/Dispatcher/AuthHandler/User.pm
SL/Layout/Base.pm
SL/User.pm

index 7ce18a4..43d6fa7 100644 (file)
@@ -38,6 +38,7 @@ use SL::Form;
 use SL::Helper::DateTime;
 use SL::InstanceConfiguration;
 use SL::Template::Plugin::HTMLFixes;
+use SL::User;
 
 # Trailing new line is added so that Perl will not add the line
 # number 'die' was called in.
@@ -157,8 +158,8 @@ sub pre_startup_setup {
     $::lxdebug     = LXDebug->new;
     $::auth        = SL::Auth->new;
     $::form        = undef;
-    %::myconfig    = ();
     $::request     = undef;
+    %::myconfig    = User->get_default_myconfig;
   }
 
   $SIG{__WARN__} = sub {
index ebb4a4d..9ef6ef3 100644 (file)
@@ -8,7 +8,7 @@ use SL::Layout::Dispatcher;
 sub handle {
   my ($self, %params) = @_;
 
-  %::myconfig = ();
+  %::myconfig = User->get_default_myconfig;
 
   my $ok =  $::auth->is_api_token_cookie_valid;
   $ok  ||=  $::form->{'{AUTH}admin_password'} && ($::auth->authenticate_root($::form->{'{AUTH}admin_password'})            == $::auth->OK());
index 255740d..b581b44 100644 (file)
@@ -5,7 +5,7 @@ use strict;
 use parent qw(Rose::Object);
 
 sub handle {
-  %::myconfig = ();
+  %::myconfig = User->get_default_myconfig;
   return 1;
 }
 
index 7a8fd1d..a1a5bdc 100644 (file)
@@ -14,7 +14,7 @@ sub handle {
   my $client_id = $::form->{'{AUTH}client_id'} || $::auth->get_session_value('client_id');
   return $self->_error(%param) if !$client_id || !$::auth->set_client($client_id);
 
-  %::myconfig = $::auth->read_user(login => $login);
+  %::myconfig = User->get_default_myconfig($::auth->read_user(login => $login));
 
   return $self->_error(%param) unless $::myconfig{login};
 
index c470a05..a8bf139 100644 (file)
@@ -115,7 +115,6 @@ sub get_stylesheet_for_user {
   } else {
     $css_path = "$css_path/kivitendo";
   }
-  $::myconfig{css_path} = $css_path; # needed for menunew, FIXME: don't do this here
 
   return $css_path;
 }
index f077eef..44efe5c 100644 (file)
@@ -412,4 +412,18 @@ sub data {
   +{ %{ $_[0] } }
 }
 
+sub get_default_myconfig {
+  my ($self_or_class, %user_config) = @_;
+
+  return (
+    countrycode  => 'de',
+    css_path     => 'css',      # Needed for menunew, see SL::Layout::Base::get_stylesheet_for_user
+    dateformat   => 'dd.mm.yy',
+    numberformat => '1.000,00',
+    stylesheet   => 'kivitendo.css',
+    timeformat   => 'hh:mm',
+    %user_config,
+  );
+}
+
 1;