From 04e89bba376914fae9bd3da7c6fa7976509119ca Mon Sep 17 00:00:00 2001 From: Brenden Tuck Date: Sun, 29 Dec 2019 10:06:22 -0500 Subject: [PATCH 1/7] Initial work for webclient Options UI extensions --- .../static/webclient/css/webclient.css | 4 + .../fonts/DejaVuSansMono-webfont.woff | Bin 0 -> 22208 bytes .../static/webclient/fonts/DejaVuSansMono.css | 6 + .../static/webclient/js/plugins/clienthelp.js | 25 ++++ .../static/webclient/js/plugins/font.js | 79 ++++++++++++ .../static/webclient/js/plugins/iframe.js | 68 ++++++++++ .../webclient/js/plugins/message_routing.js | 116 ++++++++++++++++++ .../static/webclient/js/plugins/options2.js | 103 ++++++++++++++++ .../webclient/templates/webclient/base.html | 9 +- 9 files changed, 409 insertions(+), 1 deletion(-) create mode 100644 evennia/web/webclient/static/webclient/fonts/DejaVuSansMono-webfont.woff create mode 100644 evennia/web/webclient/static/webclient/fonts/DejaVuSansMono.css create mode 100644 evennia/web/webclient/static/webclient/js/plugins/clienthelp.js create mode 100644 evennia/web/webclient/static/webclient/js/plugins/font.js create mode 100644 evennia/web/webclient/static/webclient/js/plugins/iframe.js create mode 100644 evennia/web/webclient/static/webclient/js/plugins/message_routing.js create mode 100644 evennia/web/webclient/static/webclient/js/plugins/options2.js diff --git a/evennia/web/webclient/static/webclient/css/webclient.css b/evennia/web/webclient/static/webclient/css/webclient.css index 312f321595..0ce0997c56 100644 --- a/evennia/web/webclient/static/webclient/css/webclient.css +++ b/evennia/web/webclient/static/webclient/css/webclient.css @@ -88,6 +88,10 @@ div {margin:0px;} height: 100%; } +.card { + background-color: #333; +} + /* Container surrounding entire client */ #clientwrapper { height: 100%; diff --git a/evennia/web/webclient/static/webclient/fonts/DejaVuSansMono-webfont.woff b/evennia/web/webclient/static/webclient/fonts/DejaVuSansMono-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..43b301c564d22f91a1e699815bfbf5c896a24883 GIT binary patch literal 22208 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 to Evennia.", + "
This client supports a bunch of features, including
", + "
drag-and-drop window placement, multiple input windows, and per-window message routing.
", + "
To get the full details, go to: Evennia.com

", + ].join("")); + parentdiv.append(help_text); + } + + return { + init: function () {}, + onOptionsUI: onOptionsUI, + } +})(); +window.plugin_handler.add("clienthelp", clienthelp_plugin); diff --git a/evennia/web/webclient/static/webclient/js/plugins/font.js b/evennia/web/webclient/static/webclient/js/plugins/font.js new file mode 100644 index 0000000000..7512d931f4 --- /dev/null +++ b/evennia/web/webclient/static/webclient/js/plugins/font.js @@ -0,0 +1,79 @@ +/* + * + * Evennia Webclient default "send-text-on-enter-key" IO plugin + * + */ +let font_plugin = (function () { + + const font_urls = { + 'B612 Mono': 'https://fonts.googleapis.com/css?family=B612+Mono&display=swap', + 'Consolas': 'https://fonts.googleapis.com/css?family=Consolas&display=swap', + 'DejaVu Sans Mono': '/static/webclient/fonts/DejaVuSansMono.css', + 'Fira Mono': 'https://fonts.googleapis.com/css?family=Fira+Mono&display=swap', + 'Inconsolata': 'https://fonts.googleapis.com/css?family=Inconsolata&display=swap', + 'Monospace': '', + 'Roboto Mono': 'https://fonts.googleapis.com/css?family=Roboto+Mono&display=swap', + 'Source Code Pro': 'https://fonts.googleapis.com/css?family=Source+Code+Pro&display=swap', + 'Ubuntu Mono': 'https://fonts.googleapis.com/css?family=Ubuntu+Mono&display=swap', + }; + + // + // + // + var onOptionsUI = function (parentdiv) { + var fontselect = $(''); + + var fonts = Object.keys(font_urls); + for (var x = 0; x < fonts.length; x++) { + var option = $(''); + fontselect.append(option); + } + + for (var x = 4; x < 21; x++) { + var val = (x/10.0); + var option = $(''); + sizeselect.append(option); + } + + fontselect.val('DejaVu Sans Mono'); // default value + sizeselect.val('9'); // default value + + // font-family change callback + fontselect.on('change', function () { + $(document.body).css('font-family', $(this).val()); + }); + + // font size change callback + sizeselect.on('change', function () { + $(document.body).css('font-size', $(this).val()+"em"); + }); + + // add the font selection dialog control to our parentdiv + parentdiv.append('

Font Selection:

'); + parentdiv.append(fontselect); + parentdiv.append(sizeselect); + } + + // + // Font plugin init function (adds the urls for the webfonts to the page) + // + var init = function () { + var head = $(document.head); + + var fonts = Object.keys(font_urls); + for (var x = 0; x < fonts.length; x++) { + if ( fonts[x] != "Monospace" ) { + var url = font_urls[ fonts[x] ]; + var link = $(''); + head.append( link ); + } + } + } + + return { + init: init, + onOptionsUI: onOptionsUI, + } +})(); +window.plugin_handler.add("font", font_plugin); diff --git a/evennia/web/webclient/static/webclient/js/plugins/iframe.js b/evennia/web/webclient/static/webclient/js/plugins/iframe.js new file mode 100644 index 0000000000..d6df1b02dc --- /dev/null +++ b/evennia/web/webclient/static/webclient/js/plugins/iframe.js @@ -0,0 +1,68 @@ +/* + * IFrame plugin + * REQUIRES: goldenlayout.js + */ +let iframe = (function () { + + var url = window.location.origin; + + // + // Create iframe component + var createIframeComponent = function () { + var myLayout = window.plugins["goldenlayout"].getGL(); + + myLayout.registerComponent( "iframe", function (container, componentState) { + // build the iframe + var div = $('