diff --git a/app/error-handler.js b/app/error-handler.js index 30f77068..99c2bd38 100644 --- a/app/error-handler.js +++ b/app/error-handler.js @@ -6,16 +6,6 @@ (function(){ "use strict"; - function convertNewlines(msg, parentElem) { - const lines = msg.split("\n"); - lines.forEach(function (line) { - parentElem.appendChild(document.createElement("br")); - parentElem.appendChild(document.createTextNode(line)); - }); - parentElem.removeChild(parentElem.firstChild); - return parentElem; - } - // Fallback for all uncought errors function handleError (event, err) { try { @@ -28,18 +18,24 @@ var div = document.createElement("div"); div.classList.add('noVNC_message'); - convertNewlines(event.message, div); + div.appendChild(document.createTextNode(event.message)); msg.appendChild(div); - if (event.filename !== undefined && event.lineno !== undefined && event.colno !== undefined) { + if (event.filename) { div = document.createElement("div"); div.className = 'noVNC_location'; - const text = event.filename + ":" + event.lineno + ":" + event.colno; - div.appendChild(document.createTextNode(text)); + var text = event.filename; + if (event.lineno !== undefined) { + text += ":" + event.lineno; + if (event.colno !== undefined) { + text += ":" + event.colno; + } + } + div.appendChild(document.createTextNode(text)); msg.appendChild(div); } - if ((err !== undefined) && + if (err && (err.stack !== undefined)) { div = document.createElement("div"); div.className = 'noVNC_stack'; diff --git a/app/styles/base.css b/app/styles/base.css index 62a06287..ce31cf7e 100644 --- a/app/styles/base.css +++ b/app/styles/base.css @@ -216,31 +216,32 @@ select:active { */ #noVNC_fallback_error { - position: fixed; z-index: 1000; - left: 50%; - transform: translate(-50%, -50px); + visibility: hidden; +} +#noVNC_fallback_error.noVNC_open { + visibility: visible; +} + +#noVNC_fallback_error > div { + max-width: 90%; + padding: 15px; + transition: 0.5s ease-in-out; - visibility: hidden; + transform: translateY(-50px); opacity: 0; - top: 60px; - padding: 15px; - width: auto; - text-align: center; font-weight: bold; - word-wrap: break-word; color: #fff; border-radius: 10px; box-shadow: 6px 6px 0px rgba(0, 0, 0, 0.5); background: rgba(200,55,55,0.8); } -#noVNC_fallback_error.noVNC_open { - transform: translate(-50%, 0); - visibility: visible; +#noVNC_fallback_error.noVNC_open > div { + transform: translateY(0); opacity: 1; } @@ -251,6 +252,8 @@ select:active { #noVNC_fallback_errormsg .noVNC_message { display: inline-block; text-align: left; + font-family: monospace; + white-space: pre-wrap; } #noVNC_fallback_error .noVNC_location { @@ -264,7 +267,8 @@ select:active { margin: 10px; font-size: 0.8em; text-align: left; - white-space: pre; + font-family: monospace; + white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.5); background: rgba(0, 0, 0, 0.2); } diff --git a/vendor/browser-es-module-loader/dist/browser-es-module-loader.js b/vendor/browser-es-module-loader/dist/browser-es-module-loader.js index f191d1a5..3ec5cd0c 100644 --- a/vendor/browser-es-module-loader/dist/browser-es-module-loader.js +++ b/vendor/browser-es-module-loader/dist/browser-es-module-loader.js @@ -1169,6 +1169,34 @@ var loader; //