diff options
-rw-r--r-- | modules/luci-base/htdocs/luci-static/resources/luci.js | 24 | ||||
-rw-r--r-- | modules/luci-base/luasrc/dispatcher.lua | 9 | ||||
-rw-r--r-- | modules/luci-base/luasrc/view/view.htm | 8 |
3 files changed, 29 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 c71865f96f..896ded3af0 100644 --- a/modules/luci-base/htdocs/luci-static/resources/luci.js +++ b/modules/luci-base/htdocs/luci-static/resources/luci.js @@ -582,19 +582,19 @@ for (var i = 0; ptr && i < parts.length - 1; i++) ptr = ptr[parts[i]]; - if (!ptr) - L.error('DependencyError', - 'Parent "%s" for class "%s" is missing', - parts.slice(0, i).join('.'), name); + if (ptr) + ptr[parts[i]] = instance; - classes[name] = ptr[parts[i]] = instance; + classes[name] = instance; return instance; }); }; /* Request class file */ - classes[name] = Request.get(url, { cache: true }).then(compileClass); + classes[name] = Request.get(url, { cache: true }) + .then(compileClass) + .catch(L.error); return classes[name]; }, @@ -942,18 +942,18 @@ __name__: 'LuCI.View', __init__: function() { - var mc = document.getElementById('maincontent'); + var vp = document.getElementById('view'); - L.dom.content(mc, E('div', { 'class': 'spinning' }, _('Loading view…'))); + L.dom.content(vp, E('div', { 'class': 'spinning' }, _('Loading view…'))); return Promise.resolve(this.load()) .then(L.bind(this.render, this)) .then(L.bind(function(nodes) { - var mc = document.getElementById('maincontent'); + var vp = document.getElementById('view'); - L.dom.content(mc, nodes); - L.dom.append(mc, this.addFooter()); - }, this)); + L.dom.content(vp, nodes); + L.dom.append(vp, this.addFooter()); + }, this)).catch(L.error); }, load: function() {}, diff --git a/modules/luci-base/luasrc/dispatcher.lua b/modules/luci-base/luasrc/dispatcher.lua index 626a46dfd2..e8106b741d 100644 --- a/modules/luci-base/luasrc/dispatcher.lua +++ b/modules/luci-base/luasrc/dispatcher.lua @@ -857,6 +857,15 @@ function template(name) end +local _view = function(self, ...) + require "luci.template".render("view", { view = self.view }) +end + +function view(name) + return {type = "view", view = name, target = _view} +end + + local function _cbi(self, ...) local cbi = require "luci.cbi" local tpl = require "luci.template" diff --git a/modules/luci-base/luasrc/view/view.htm b/modules/luci-base/luasrc/view/view.htm new file mode 100644 index 0000000000..bddd8e4464 --- /dev/null +++ b/modules/luci-base/luasrc/view/view.htm @@ -0,0 +1,8 @@ +<%+header%> + +<div id="view"> + <div class="spinning"><%:Loading view…%></div> + <script type="text/javascript">L.require('view.<%=view%>');</script> +</div> + +<%+footer%> |