diff --git a/evennia/server/portal/webclient.py b/evennia/server/portal/webclient.py index b2b4369505..3882766d12 100644 --- a/evennia/server/portal/webclient.py +++ b/evennia/server/portal/webclient.py @@ -156,10 +156,12 @@ class WebSocketClient(Protocol, Session): text = args[0] if text is None: return + else: + return flags = self.protocol_flags text = to_str(text, force_string=True) - options = kwargs.get("options", {}) + options = kwargs.pop("options", {}) raw = options.get("raw", False) nomarkup = options.get("nomarkup", False) screenreader = options.get("screenreader", flags.get("SCREENREADER", False)) @@ -174,6 +176,7 @@ class WebSocketClient(Protocol, Session): args[0] = text else: args[0] = parse_html(text, strip_ansi=nomarkup) + print "send_text:", cmd, args, kwargs # send to client on required form [cmdname, args, kwargs] self.sendLine(json.dumps([cmd, args, kwargs])) diff --git a/evennia/web/webclient/static/webclient/js/webclient_gui.js b/evennia/web/webclient/static/webclient/js/webclient_gui.js index 067f39e7f0..c5f2f4da7b 100644 --- a/evennia/web/webclient/static/webclient/js/webclient_gui.js +++ b/evennia/web/webclient/static/webclient/js/webclient_gui.js @@ -55,14 +55,14 @@ var input_history = function() { history_pos = 0; return history[history.length -1]; } - + var scratch = function (input) { // Put the input into the last history entry (which is normally empty) // without making the array larger as with add. // Allows for in-progress editing to be saved. history[history.length-1] = input; } - + return {back: back, fwd: fwd, add: add, @@ -103,8 +103,8 @@ function onKeydown (event) { if (code === 13) { // Enter key sends text doSendText(); event.preventDefault(); - } - else if (inputfield[0].selectionStart == inputfield.val().length) { + } + else if (inputfield[0].selectionStart == inputfield.val().length) { // Only process up/down arrow if cursor is at the end of the line. if (code === 38) { // Arrow up history_entry = input_history.back(); @@ -112,8 +112,8 @@ function onKeydown (event) { else if (code === 40) { // Arrow down history_entry = input_history.fwd(); } - } - + } + if (history_entry !== null) { // Doing a history navigation; replace the text in the input. inputfield.val(history_entry); @@ -133,7 +133,7 @@ var resizeInputField = function () { var min_height = 50; var max_height = 300; var prev_text_len = 0; - + // Check to see if we should change the height of the input area return function () { var inputfield = $("#inputfield"); @@ -141,21 +141,21 @@ var resizeInputField = function () { var clienth = inputfield.prop("clientHeight"); var newh = 0; var curr_text_len = inputfield.val().length; - + if (scrollh > clienth && scrollh <= max_height) { // Need to make it bigger newh = scrollh; - } + } else if (curr_text_len < prev_text_len) { // There is less text in the field; try to make it smaller - // To avoid repaints, we draw the text in an offscreen element and + // To avoid repaints, we draw the text in an offscreen element and // determine its dimensions. var sizer = $('#inputsizer') .css("width", inputfield.prop("clientWidth")) .text(inputfield.val()); newh = sizer.prop("scrollHeight"); } - + if (newh != 0) { newh = Math.min(newh, max_height); if (clienth != newh) { @@ -173,7 +173,7 @@ function doWindowResize() { var message_scrollh = $("#messagewindow").prop("scrollHeight"); $("#messagewindow") .css({"bottom": formh}) // leave space for the input form - .scrollTop(message_scrollh); // keep the output window scrolled to the bottom + .scrollTop(message_scrollh); // keep the output window scrolled to the bottom } // Handle text coming from the server @@ -190,11 +190,11 @@ function onText(args, kwargs) { // Handle prompt output from the server function onPrompt(args, kwargs) { // show prompt - $('prompt').replaceWith( - "