const error = function ( title , text , links ) {
if ( text == null ) {
text = "" ;
}
if ( links == null ) {
links = "" ;
}
if ( text ) {
text = ` <p class="_error-text"> ${ text } </p> ` ;
}
if ( links ) {
links = ` <p class="_error-links"> ${ links } </p> ` ;
}
return ` <div class="_error"><h1 class="_error-title"> ${ title } </h1> ${ text } ${ links } </div> ` ;
} ;
const back = '<a href="#" data-behavior="back" class="_error-link">Go back</a>' ;
app . templates . notFoundPage = ( ) =>
error (
" Page not found. " ,
" It may be missing from the source documentation or this could be a bug. " ,
back ,
) ;
app . templates . pageLoadError = ( ) =>
error (
" The page failed to load. " ,
` It may be missing from the server (try reloading the app) or you could be offline (try <a href="/offline">installing the documentation for offline usage</a> when online again).<br>
If you 're online and you keep seeing this, you' re likely behind a proxy or firewall that blocks cross - domain requests . ` ,
` ${ back } · <a href="/# ${ location . pathname } " target="_top" class="_error-link">Reload</a>
& middot ; < a href = "#" class = "_error-link" data - retry > Retry < / a > ` ,
) ;
app . templates . bootError = ( ) =>
error (
" The app failed to load. " ,
` Check your Internet connection and try <a href="#" data-behavior="reload">reloading</a>.<br>
If you keep seeing this , you ' re likely behind a proxy or firewall that blocks cross - domain requests . ` ,
) ;
app . templates . offlineError = function ( reason , exception ) {
if ( reason === "cookie_blocked" ) {
return error ( " Cookies must be enabled to use offline mode. " ) ;
}
reason = ( ( ) => {
switch ( reason ) {
case "not_supported" :
return ` DevDocs requires IndexedDB to cache documentations for offline access.<br>
Unfortunately your browser either doesn 't support IndexedDB or doesn' t make it available . ` ;
case "buggy" :
return ` DevDocs requires IndexedDB to cache documentations for offline access.<br>
Unfortunately your browser ' s implementation of IndexedDB contains bugs that prevent DevDocs from using it . ` ;
case "private_mode" :
return ` Your browser appears to be running in private mode.<br>
This prevents DevDocs from caching documentations for offline access . ` ;
case "exception" :
return ` An error occurred when trying to open the IndexedDB database:<br>
< code class = "_label" > $ { exception . name } : $ { exception . message } < / c o d e > ` ;
case "cant_open" :
return ` An error occurred when trying to open the IndexedDB database:<br>
< code class = "_label" > $ { exception . name } : $ { exception . message } < / c o d e > < b r >
This could be because you ' re browsing in private mode or have disallowed offline storage on the domain . ` ;
case "version" :
return ` The IndexedDB database was modified with a newer version of the app.<br>
< a href = "#" data - behavior = "reload" > Reload the page < / a > t o u s e o f f l i n e m o d e . ` ;
case "empty" :
return ' The IndexedDB database appears to be corrupted. Try <a href="#" data-behavior="reset">resetting the app</a>. ' ;
}
} ) ( ) ;
return error ( "Offline mode is unavailable." , reason ) ;
} ;
app . templates . unsupportedBrowser = ` \
< div class = "_fail" >
< h1 class = "_fail-title" > Your browser is unsupported , sorry . < / h 1 >
< p class = "_fail-text" > DevDocs is an API documentation browser which supports the following browsers :
< ul class = "_fail-list" >
< li > Recent versions of Firefox , Chrome , or Opera
< li > Safari 11.1 +
< li > Edge 17 +
< li > iOS 11.3 +
< / u l >
< p class = "_fail-text" >
If you ' re unable to upgrade , we apologize .
We decided to prioritize speed and new features over support for older browsers .
< p class = "_fail-text" >
Note : if you ' re already using one of the browsers above , check your settings and add - ons .
The app uses feature detection , not user agent sniffing .
< p class = "_fail-text" >
& mdash ; < a href = "https://twitter.com/DevDocs" > @ DevDocs < / a >
< / d i v > \
` ;