Merge branch 'feature/eejs-pass-args-to-hooks' of git://github.com/marcelklehr/etherpad-lite into develop

This commit is contained in:
johnyma22 2012-11-01 12:49:36 +00:00
commit d7d2f5de2d
2 changed files with 9 additions and 4 deletions

View file

@ -30,6 +30,7 @@ exports.info = {
block_stack: [], block_stack: [],
blocks: {}, blocks: {},
file_stack: [], file_stack: [],
args: []
}; };
exports._init = function (b, recursive) { exports._init = function (b, recursive) {
@ -81,7 +82,8 @@ exports.end_define_block = function () {
exports.end_block = function () { exports.end_block = function () {
var name = exports.info.block_stack[exports.info.block_stack.length-1]; var name = exports.info.block_stack[exports.info.block_stack.length-1];
var args = {content: exports.end_define_block()}; var renderContext = exports.info.args[exports.info.args.length-1];
var args = {content: exports.end_define_block(), renderContext: renderContext};
hooks.callAll("eejsBlock_" + name, args); hooks.callAll("eejsBlock_" + name, args);
exports.info.buf.push(args.content); exports.info.buf.push(args.content);
} }
@ -119,9 +121,12 @@ exports.require = function (name, args, mod) {
args.require = require; args.require = require;
var template = '<% e._init(buf); %>' + fs.readFileSync(ejspath).toString() + '<% e._exit(); %>'; var template = '<% e._init(buf); %>' + fs.readFileSync(ejspath).toString() + '<% e._exit(); %>';
exports.info.args.push(args);
exports.info.file_stack.push({path: ejspath, inherit: []}); exports.info.file_stack.push({path: ejspath, inherit: []});
var res = ejs.render(template, args); var res = ejs.render(template, args);
exports.info.file_stack.pop(); exports.info.file_stack.pop();
exports.info.args.pop();
return res; return res;
} }

View file

@ -34,13 +34,13 @@ exports.expressCreateServer = function (hook_name, args, cb) {
//serve pad.html under /p //serve pad.html under /p
args.app.get('/p/:pad', function(req, res, next) args.app.get('/p/:pad', function(req, res, next)
{ {
res.send(eejs.require("ep_etherpad-lite/templates/pad.html")); res.send(eejs.require("ep_etherpad-lite/templates/pad.html", {req: req}));
}); });
//serve timeslider.html under /p/$padname/timeslider //serve timeslider.html under /p/$padname/timeslider
args.app.get('/p/:pad/timeslider', function(req, res, next) args.app.get('/p/:pad/timeslider', function(req, res, next)
{ {
res.send(eejs.require("ep_etherpad-lite/templates/timeslider.html")); res.send(eejs.require("ep_etherpad-lite/templates/timeslider.html", {req: req}));
}); });
} }