diff --git a/assets/css/devportal.css b/assets/css/devportal.css index 0ab93a4022..275ac93829 100644 --- a/assets/css/devportal.css +++ b/assets/css/devportal.css @@ -802,11 +802,13 @@ a.current { margin-left: 0; } -.right-sidebar .level-1 a { +.right-sidebar .level-1 a, +.right-sidebar .separator { font-weight: 700; font-family: "Space Mono", monospace; } -.right-sidebar .level-2 { +.right-sidebar .level-2, +.right-sidebar .method { margin-left: 0; } @@ -989,6 +991,12 @@ a.current { text-decoration: none; } +.btn-group .btn:hover:after { + /* Don't resize buttons in a group this way, because it can cause the group + to spill into additional lines or worse */ + padding-left: 7px; +} + .btn.fa-search::after, .btn.fa-search:hover::after { content: ""; diff --git a/assets/js/apitool-methods-ws.js b/assets/js/apitool-methods-ws.js index ddad52ee54..82e64ee767 100644 --- a/assets/js/apitool-methods-ws.js +++ b/assets/js/apitool-methods-ws.js @@ -11,3 +11,14 @@ Request('account_channels', { "ledger_index": "validated" } }) + +Request('account_currencies', { + description: "Retrieves a list of currencies that an account can send or receive, based on its trust lines.", + link: "account_currencies.html", + body: { + "command": "account_currencies", + "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", + "strict": true, + "ledger_index": "validated" + } +}) diff --git a/assets/js/apitool-websocket2.js b/assets/js/apitool-websocket2.js index cc7d0feb86..3fbeba17a8 100644 --- a/assets/js/apitool-websocket2.js +++ b/assets/js/apitool-websocket2.js @@ -2,6 +2,7 @@ const commandlist = $("#command_list") const request_body = $(".request-body.io") const response_body = $(".response-body.io") const request_button = $('.request_button') +const conn_btn = $(".connection") const GET = "GET" const POST = "POST" @@ -48,7 +49,7 @@ function generate_table_of_contents() { if (req.slug === null) { commandlist.append("
  • "+req.name+"
  • "); } else { - commandlist.append("
  • "+req.name+"
  • "); + commandlist.append("
  • "+req.name+"
  • "); } }); } @@ -126,10 +127,47 @@ function send_request() { // TODO: send } -function connect_to_server(host, port) { - // TODO: ws connection stuff +let socket; +function connect_socket() { + $(".connect-loader").show() + const selected_server_el = $("input[name='wstool-1-connection']:checked") + const conn_url = selected_server_el.val() + socket = new WebSocket(conn_url) + + socket.addEventListener('open', (event) => { + conn_btn.text(selected_server_el.data("shortname") + " (Connected)") + conn_btn.removeClass("btn-outline-secondary") + conn_btn.removeClass("btn-danger") + conn_btn.addClass("btn-success") + $(".connect-loader").hide() + }) + socket.addEventListener('close', (event) => { + if (event.wasClean) { + console.log("socket clean:", event) + conn_btn.text(selected_server_el.data("shortname") + " (Not Connected)") + conn_btn.removeClass("btn-success") + conn_btn.removeClass("btn-danger") + conn_btn.addClass("btn-outline-secondary") + $(".connect-loader").hide() + } + }) + socket.addEventListener('error', (event) => { + console.error("socket error:", event) + conn_btn.text(selected_server_el.data("shortname") + " (Failed to Connect)") + conn_btn.removeClass("btn-outline-secondary") + conn_btn.removeClass("btn-success") + conn_btn.addClass("btn-danger") + $(".connect-loader").hide() + }) + socket.addEventListener('message', (event) => { + // TODO: send to dispatcher? + }) } +handle_select_server = function(event) { + if (typeof socket !== "undefined") { socket.close(1000) } + connect_socket() +} // TODO: more stuff @@ -146,11 +184,15 @@ $(document).ready(function() { select_request(); } - if (urlParams["base_url"]) { - //TODO: change_base_url(urlParams["base_url"]); - } + // TODO: permalink stuff here? + // if (urlParams["base_url"]) { + // //TODO: change_base_url(urlParams["base_url"]); + // } + + connect_socket() request_button.click(send_request); + $("input[name='wstool-1-connection']").click(handle_select_server) }); diff --git a/tool/template-websocket-api-tool.html b/tool/template-websocket-api-tool.html index 3745eac488..d51868ded0 100644 --- a/tool/template-websocket-api-tool.html +++ b/tool/template-websocket-api-tool.html @@ -23,15 +23,20 @@