diff --git a/web/source/keyboards/kmwkeyboards.ts b/web/source/keyboards/kmwkeyboards.ts index 3fa42de125..56ca1363c3 100644 --- a/web/source/keyboards/kmwkeyboards.ts +++ b/web/source/keyboards/kmwkeyboards.ts @@ -484,7 +484,7 @@ namespace com.keyman.keyboards { // // In case p's rejection is never caught, throwing this error will generate logs that shows up // in Sentry or in the console, with useful information for debugging either way. - throw new Error("Unable to load keyboard with internal name \"" + PInternalName + "\", language code \"" + PLgCode + "\": "+JSON.stringify(error)); + throw new Error("Unable to load keyboard with internal name \"" + PInternalName + "\", language code \"" + PLgCode + "\": " + error); }); return p; @@ -700,7 +700,7 @@ namespace com.keyman.keyboards { * @param {Object} kbdStub keyboard stub to be loaded. * **/ - installKeyboard(resolve: () => void, reject: () => void, kbdStub: KeyboardStub) { + installKeyboard(resolve: () => void, reject: (message?: string) => void, kbdStub: KeyboardStub) { var util = this.keymanweb.util; var osk = this.keymanweb.osk; @@ -717,6 +717,8 @@ namespace com.keyman.keyboards { var kbdLang = kbdStub['KL']; var kbdName = kbdStub['KN']; + const scriptSrc = this.keymanweb.getKeyboardPath(kbdFile); + var manager = this; let core = com.keyman.singleton.core; @@ -729,11 +731,12 @@ namespace com.keyman.keyboards { } // We already know the load has failed... why wait? - kbdStub.asyncLoader.callback('Cannot find the ' + kbdName + ' keyboard for ' + kbdLang + '.', 'warn'); + const msg = 'Cannot find the ' + kbdName + ' keyboard for ' + kbdLang + ' at ' + scriptSrc + '.'; + kbdStub.asyncLoader.callback(msg, 'warn'); kbdStub.asyncLoader = null; - reject(); - }, false); + reject(msg); + }); // The load event will activate a newly-loaded keyboard if successful and report an error if it is not. @@ -746,7 +749,7 @@ namespace com.keyman.keyboards { // To determine if the load was successful, we'll need to check the keyboard array for our desired keyboard. // Test if keyboard already loaded - var kbd = manager.getKeyboardByID(kbdStub['KI']), Li; + var kbd = manager.getKeyboardByID(kbdStub['KI']); if(kbd) { // Is cleared upon a successful load. //Activate keyboard, if it's still the active stub. @@ -780,27 +783,29 @@ namespace com.keyman.keyboards { resolve(); // A handler portion for cases where the new