summaryrefslogtreecommitdiff
path: root/share/server/render.js
diff options
context:
space:
mode:
Diffstat (limited to 'share/server/render.js')
-rw-r--r--share/server/render.js20
1 files changed, 20 insertions, 0 deletions
diff --git a/share/server/render.js b/share/server/render.js
index 1a9fc5a5..82ceb3ab 100644
--- a/share/server/render.js
+++ b/share/server/render.js
@@ -166,11 +166,16 @@ function runProvides(req) {
////
////
////
+
var Render = {
show : function(funSrc, doc, req) {
var showFun = compileFunction(funSrc);
runShow(showFun, doc, req, funSrc);
},
+ update : function(funSrc, doc, req) {
+ var upFun = compileFunction(funSrc);
+ runUpdate(upFun, doc, req, funSrc);
+ },
list : function(head, req) {
runList(funs[0], head, req, funsrc[0]);
}
@@ -212,6 +217,21 @@ function runShow(showFun, doc, req, funSrc) {
}
};
+function runUpdate(renderFun, doc, req, funSrc) {
+ try {
+ var result = renderFun.apply(null, [doc, req]);
+ var doc = result[0];
+ var resp = result[1];
+ if (resp) {
+ respond(["up", doc, maybeWrapResponse(resp)]);
+ } else {
+ renderError("undefined response from update function");
+ }
+ } catch(e) {
+ respondError(e, funSrc, true);
+ }
+};
+
function resetList() {
gotRow = false;
lastRow = false;