WEB-INF.scalate.errors.500.scaml Maven / Gradle / Ivy
-#
-# Copyright (C) 2009-2011 the original author or authors.
-# See the notice.md file distributed with this work for additional
-# information regarding copyright ownership.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
- if ( !engine.isDevelopmentMode )
.scalate-error-500
%h1 Server Error: We're sorry, but something went wrong.
%p We've been notified about this issue and we'll take a look at it shortly.
- else
- import util.parsing.input.Position
- import org.fusesource.scalate._
- import org.fusesource.scalate.console._
- val consoleHelper = new ConsoleHelper(context)
- import consoleHelper._
- response.setContentType("text/html")
- attributes("layout") = ""
!!! Basic
%html(lang="en")
%head
%meta(http-equiv="Content-Type" content="text/html; charset=utf-8")
%meta(name="keywords" content="error")
%title Unexpected Failure
%style(type="text/css")
:plain
html, body {
margin: 0;
padding: 0;
font-family: Helvetica, Arial, Sans;
background: #EEEEEE;
}
.block {
padding: 20px;
border-bottom: 1px solid #aaa;
}
#scalate-error .header h1 {
font-weight: normal;
font-size: 28px;
margin: 0;
}
#scalate-error .more {
color: #666;
font-size: 80%;
border: none;
}
#scalate-error .header {
background: #fcd2da;
}
#scalate-error .header p {
color: #333;
}
#scalate-error .details {
background: #f6f6f6;
}
#scalate-error .details h2 {
font-weight: normal;
font-size: 18px;
margin: 0 0 10px 0;
}
#scalate-error .details .lineNumber {
float: left;
display: block;
width: 40px;
text-align: right;
margin-right: 10px;
font-size: 14px;
font-family: monospace;
background: #333;
color: #fff;
}
#scalate-error .details .line {
clear: both;
color: #333;
margin-bottom: 1px;
}
#scalate-error .details pre {
font-size: 14px;
margin: 0;
overflow-x: hidden;
}
#scalate-error .details .error {
color: #c00 !important;
}
#scalate-error .details .error .lineNumber {
background: #c00;
}
#scalate-error .details .errorCol {
background: #c00;
color:#fff;
}
#scalate-error .details a {
text-decoration: none;
}
#scalate-error .details a:hover * {
cursor: pointer !important;
}
#scalate-error .details a:hover pre {
background: #FAFFCF !important;
}
#scalate-error .details .stacktrace {
clear: both;
color: #333;
margin-bottom: 1px;
font-size: 10px;
}
#scalate-error .nested {
padding-top:10px;
padding-left:10px;
}
#scalate-error .nested .block {
padding:10px;
}
#scalate-error .nested .header {
font-size:10px;
}
#scalate-error .nested .header h1 {
font-size:16px;
}
%body
#content
.wrapper
-# Wrap in a try catch block so if there is a error on this page it gets logged to the console
- try
%link(href={uri("/css/scalate/errors.css")} rel="stylesheet" type="text/css")
- def displayError(file:String, pos:Position, message:String)
.header.block
%h1
= message
.details.block
%h2
= editLink(file, pos.line, pos.column)
in #{shorten(file)} near line #{pos.line} col #{pos.column}
- for (s <- lines(file, pos))
- val ss = s.style(pos.line)
= editLink(file, s.line, (if (pos.line == s.line) pos.column else 1))
%div(class=ss)
%span.lineNumber
= s.line
- if (pos.line == s.line)
- val (prefix, ch, postfix) = s.splitOnCharacter(pos.column - 1)
%pre<
&~ prefix
%span.errorCol><
&~ ch
&~ postfix
- else
%pre<
&~ s.source
- def displayException(e:Throwable)
.header.block
%h1
= e.getMessage
%p
= e
.details.block
- for( stack <- e.getStackTrace )
= renderStackTraceElement(stack)
- if( e.getCause!=null )
.nested
- displayException(e.getCause)
#scalate-error
- exception match
- case e:InvalidSyntaxException =>
- displayError( e.template, e.pos, e.brief)
- case e:CompilerException =>
- for ( error <- e.errors )
- displayError(error.file, error.pos, error.message)
- val o = error.original
- if (o != null)
.section.block
= editLink(o.file, o.pos.line, o.pos.column)
from generated #{shorten(o.file)} near line #{o.pos.line} col #{o.pos.line}
- case e:Throwable =>
- displayException(e)
- case u =>
.header.block
%h1
= errorMessage
%p
= u
- catch
- case e:Throwable=>
- e.printStackTrace
-# Fallback to a simple rendering of the error message
.header.block
%h1
= errorMessage
© 2015 - 2025 Weber Informatics LLC | Privacy Policy