aboutsummaryrefslogtreecommitdiff
path: root/lib/MasterWebInterface/Handler/ErrorPages.pm
blob: 7a7435556a4e8fe79162fe262ad3caa708da5359 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package MasterWebInterface::Handler::ErrorPages;
use strict;
use TUWF ':html';

# handle 404 and 500
TUWF::set(
    error_404_handler => \&handle404,
    error_500_handler => \&handle500,
);

TUWF::register(
    qr{500} => sub {die "Process died on purpose, but with a lot of text to test if the whole error is correctly displayed on the screen when debug information is enabled in the website configuration, "},
);

sub handle404 
{
    my $self = shift;
    
    $self->resStatus(404);
    $self->htmlHeader(title => '404 - Not Found');
    $self->htmlSearchBox(title => "Servers", action => "/s", sel => 's', fq => '');
    
    div class => "mainbox warning";
        div class => "header";
            h1 'Page not found';
            p "Error 404: the page could not be found.";
        end;
        
        div class => "description";
            p;
                txt 'It seems the page you were looking for does not exist,';
                br;
                txt 'perhaps our search function may yield results?';
            end;
        end;
    end;
    $self->htmlFooter;
}

sub handle500 
{
    my($self, $error) = @_;
    
    $self->resStatus(500);
    $self->htmlHeader(title => '500 - Internal Server Error');
    $self->htmlSearchBox(title => "Servers", action => "/s", sel => 's', fq => '');
    
    div class => "mainbox warning";
        div class => "header";
            h1 'Internal Server Error';
            p "Error 500: loading this page caused an internal error.";
        end;
        
        div class => "description";
            p;
                txt 'Something went wrong on our side. The problem was logged ';
                br;
                txt 'and will be fixed shortly. Please try again later.';
            end;
        
            if ($self->debug) 
            {
                p $error;
            }
        end;
    end;
    $self->htmlFooter;
}

1;