Better error reporting for external Markdown files

1. Show an alert when loading the file throws an exception
2. Whenever the status isn't success (2xx) - upon exception or e.g.
  "file not found" - replace the section's content with information
  about the failure (instead of being silent about it and showing
  a blank slide).

We need to inform the user something went wrong, not just be silent
about it. An experienced developer, upon seing a blank slide, will
likely check the javascript console - but the rest will profit from
being told about the problem (and solution) explicitely.
This commit is contained in:
Jakub Holy 2013-03-24 17:58:01 +01:00
parent d2cf21028e
commit 8fd28a9185
1 changed files with 11 additions and 2 deletions

View File

@ -101,12 +101,21 @@
xhr.onreadystatechange = function () { xhr.onreadystatechange = function () {
if( xhr.readyState === 4 ) { if( xhr.readyState === 4 ) {
if (xhr.status >= 200 && xhr.status < 300) {
section.outerHTML = slidifyMarkdown( xhr.responseText, section.getAttribute('data-separator'), section.getAttribute('data-vertical') ); section.outerHTML = slidifyMarkdown( xhr.responseText, section.getAttribute('data-separator'), section.getAttribute('data-vertical') );
} else {
section.outerHTML = '<section data-state="alert">ERROR: The attempt to fetch ' + url + ' failed with the HTTP status ' + xhr.status +
'. Check your browser\'s JavaScript console for more details.</section>';
}
} }
}; };
xhr.open('GET', url, false); xhr.open('GET', url, false);
try {
xhr.send(); xhr.send();
} catch (e) {
alert('Failed to get the Markdown file ' + url + '. Make sure that the presentation and the file are served by a HTTP server and the file can be found there. ' + e);
}
} else if( section.getAttribute('data-separator') ) { } else if( section.getAttribute('data-separator') ) {