mirror of https://git.openwrt.org/project/luci.git
luci-base: add client based view actions
Introduce a new view() target for CBI dispatch nodes, as long with the required template and plumbing work in luci.js to allow requiring view classes. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
5b7924c808
commit
2beb9fa16f
|
@ -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() {},
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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%>
|
Loading…
Reference in New Issue