From 3bc73a7d0533902ca762c0fc39a66de7a9878a94 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Mon, 1 Apr 2019 16:36:30 +0200 Subject: [PATCH] luci-base: luci.js: catch base class loading errors Signed-off-by: Jo-Philipp Wich --- .../htdocs/luci-static/resources/luci.js | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/modules/luci-base/htdocs/luci-static/resources/luci.js b/modules/luci-base/htdocs/luci-static/resources/luci.js index 767d013d7..61c3e8274 100644 --- a/modules/luci-base/htdocs/luci-static/resources/luci.js +++ b/modules/luci-base/htdocs/luci-static/resources/luci.js @@ -431,6 +431,14 @@ LuCI = Class.extend({ __name__: 'LuCI', __init__: function(env) { + + document.querySelectorAll('script[src$="/luci.js"]').forEach(function(s) { + env.base_url = s.getAttribute('src').replace(/\/luci\.js$/, ''); + }); + + if (env.base_url == null) + this.error('InternalError', 'Cannot find url of luci.js'); + Object.assign(this.env, env); document.addEventListener('poll-start', function(ev) { @@ -453,9 +461,7 @@ domReady, this.require('ui'), this.require('form') - ]).then(this.setupDOM.bind(this)).catch(function(error) { - alert('LuCI class loading error:\n' + error); - }); + ]).then(this.setupDOM.bind(this)).catch(this.error); originalCBIInit = window.cbi_init; window.cbi_init = function() {}; @@ -527,15 +533,7 @@ return classes[name]; } - document.querySelectorAll('script[src$="/luci.js"]').forEach(function(s) { - url = '%s/%s.js'.format( - s.getAttribute('src').replace(/\/luci\.js$/, ''), - name.replace(/\./g, '/')); - }); - - if (url == null) - L.error('InternalError', 'Cannot find url of luci.js'); - + url = '%s/%s.js'.format(L.env.base_url, name.replace(/\./g, '/')); from = [ name ].concat(from); var compileClass = function(res) { -- 2.25.1