use SL::LXDebug;
use SL::LxOfficeConf;
use SL::Locale;
+use SL::ClientJS;
use SL::Common;
use SL::Form;
use SL::Helper::DateTime;
}
}
+sub render_error_ajax {
+ my ($error) = @_;
+
+ SL::ClientJS->new
+ ->error($error)
+ ->render(SL::Controller::Base->new);
+}
+
sub show_error {
$::lxdebug->enter_sub;
my $template = shift;
$::form->{error} = $::locale->text('The session is invalid or has expired.') if ($error_type eq 'session');
$::form->{error} = $::locale->text('Incorrect password!') if ($error_type eq 'password');
+ return render_error_ajax($::form->{error}) if $::request->is_ajax;
+
$::form->header;
print $::form->parse_html_template($template, \%params);
$::lxdebug->leave_sub;
my %routing;
eval { %routing = _route_request($ENV{SCRIPT_NAME}); 1; } or return;
($routing_type, $script_name, $action) = @routing{qw(type controller action)};
+ $::lxdebug->log_request($routing_type, $script_name, $action);
$::request->type(lc($routing{request_type} || 'html'));
1;
} or do {
if ($EVAL_ERROR ne END_OF_REQUEST) {
- print STDERR $EVAL_ERROR;
- $::form->{label_error} = $::request->{cgi}->pre($EVAL_ERROR);
- chdir SL::System::Process::exe_dir;
- eval { show_error('generic/error') };
+ my $error = $EVAL_ERROR;
+ print STDERR $error;
+
+ if ($::request->is_ajax) {
+ eval { render_error_ajax($error) };
+ } else {
+ $::form->{label_error} = $::request->{cgi}->pre($error);
+ chdir SL::System::Process::exe_dir;
+ eval { show_error('generic/error') };
+ }
}
};