From 489aeefdca4365dbb6d8d8e854fe8b767b8c96ba Mon Sep 17 00:00:00 2001 From: Dan Janosik Date: Thu, 28 May 2020 14:47:12 -0400 Subject: [PATCH] Fix #215 - special case to show textarea for "message" arg on "verifymessage" method - strip carriage returns before sending to node - after obtaining result, fix for rendering newlines back into textarea (since the newlines got mashed via JSON.stringify before being sent via RPC interface) - minor frontend style tweaks on /rpc-browser - minor logging tweaks for /rpc-browser --- routes/baseActionsRouter.js | 6 +++--- views/browser.pug | 13 ++++++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/routes/baseActionsRouter.js b/routes/baseActionsRouter.js index 1a65607..705fe12 100644 --- a/routes/baseActionsRouter.js +++ b/routes/baseActionsRouter.js @@ -1298,7 +1298,7 @@ router.get("/rpc-browser", function(req, res, next) { } else if (argProperties[j] === "string" || argProperties[j] === "numeric or string" || argProperties[j] === "string or numeric") { if (req.query.args[i]) { - argValues.push(req.query.args[i]); + argValues.push(req.query.args[i].replace(/[\r]/g, '')); } break; @@ -1334,10 +1334,10 @@ router.get("/rpc-browser", function(req, res, next) { return next(err); } - debugLog("Executing RPC '" + req.query.method + "' with params: [" + argValues + "]"); + debugLog("Executing RPC '" + req.query.method + "' with params: " + JSON.stringify(argValues)); global.rpcClientNoTimeout.command([{method:req.query.method, parameters:argValues}], function(err3, result3, resHeaders3) { - debugLog("RPC Response: err=" + err3 + ", result=" + result3 + ", headers=" + resHeaders3); + debugLog("RPC Response: err=" + err3 + ", headers=" + resHeaders3 + ", result=" + JSON.stringify(result3)); if (err3) { res.locals.pageErrors.push(utils.logError("23roewuhfdghe", err3, {method:req.query.method, params:argValues, result:result3, headers:resHeaders3})); diff --git a/views/browser.pug b/views/browser.pug index 7ee8e3b..606ff98 100644 --- a/views/browser.pug +++ b/views/browser.pug @@ -44,7 +44,8 @@ block content div.tab-pane.active(id="tab-execute", role="tabpanel") if (methodResult) div.mt-4 - h3.h6.mt-3.mb-0 Result + div.mb-2 + h3.h6.mt-3 Result pre.border.mb-3 code.json.bg-light(data-lang="json") #{JSON.stringify(methodResult, null, 4)} @@ -55,7 +56,8 @@ block content input(type="hidden", name="_csrf", value=csrfToken) input(type="hidden", name="method", value=method) - div.h6.mb-3 Arguments + div.mb-3 + h6 Arguments if (false) pre @@ -89,7 +91,12 @@ block content if (valX.substring(valX.length - 1, valX.length) == "\"") - valX = valX.substring(0, valX.length - 1); - input.form-control(id=("arg_" + argX.name), type="text", name=("args[" + index + "]"), placeholder=argX.name, value=(valX ? valX : "")) + if (method == "verifymessage" && argX.name == "message") + - var newline = String.fromCharCode(13, 10); + textarea.form-control(id=("arg_" + argX.name), name=("args[" + index + "]"), placeholder=argX.name, rows="8") #{(valX ? valX.split('\\n').join(newline) : "")} + + else + input.form-control(id=("arg_" + argX.name), type="text", name=("args[" + index + "]"), placeholder=argX.name, value=(valX ? valX : "")) if (!methodhelp.args || methodhelp.args.length == 0) span.text-muted None