luci-base: fix rendering ucode templates from template target

A previous commit inadvertently broke support for rendering ucode templates
from the `template` dispatcher target.

Fixes: #6111
Fixes: fa17c1573f ("luci-base, luci-lua-runtime: adjust Lua template environment")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
Jo-Philipp Wich 2022-11-22 09:41:31 +01:00
parent 7c3705bb0f
commit a5d21dadbd
2 changed files with 10 additions and 3 deletions

View file

@ -774,9 +774,12 @@ function render_action(fn) {
function run_action(request_path, lang, tree, resolved, action) {
switch (action?.type) {
case 'template':
render_action(() => {
runtime.call('luci.dispatcher', 'render_lua_template', action.path);
});
if (runtime.is_ucode_template(action.path))
runtime.render_ucode(action.path);
else
render_action(() => {
runtime.call('luci.dispatcher', 'render_lua_template', action.path);
});
break;
case 'view':

View file

@ -61,6 +61,10 @@ const Class = {
return this.L;
},
is_ucode_template: function(path) {
return access(`${template_directory}/${path}.ut`);
},
render_ucode: function(path, scope) {
let tmplfunc = loadfile(path, { raw_mode: false });