diff --git a/spinner/lib/src/main/assets/query.hbs b/spinner/lib/src/main/assets/query.hbs index 75eb95e5e..52870b6cd 100644 --- a/spinner/lib/src/main/assets/query.hbs +++ b/spinner/lib/src/main/assets/query.hbs @@ -5,12 +5,12 @@ {{> partials/prefix isQuery=true}} -
+ - + or - + or
@@ -57,6 +57,7 @@ function submitOnEnter(event){ if (event.which === 13 && event.shiftKey) { event.target.form.submit(); + onQuerySubmitted(); event.preventDefault(); } } @@ -99,7 +100,8 @@ return JSON.parse(historyRaw); } - document.querySelector('.query-input').addEventListener("keypress", submitOnEnter); + document.querySelector('.query-input').addEventListener('keypress', submitOnEnter); + document.getElementById('query-form').addEventListener('submit', onQuerySubmitted, false); renderQueryHistory(); diff --git a/spinner/lib/src/main/java/org/signal/spinner/SpinnerServer.kt b/spinner/lib/src/main/java/org/signal/spinner/SpinnerServer.kt index dec82a675..f81177d3b 100644 --- a/spinner/lib/src/main/java/org/signal/spinner/SpinnerServer.kt +++ b/spinner/lib/src/main/java/org/signal/spinner/SpinnerServer.kt @@ -14,6 +14,8 @@ import java.lang.IllegalArgumentException import java.text.SimpleDateFormat import java.util.Date import java.util.Locale +import java.util.Queue +import java.util.concurrent.ConcurrentLinkedQueue import kotlin.math.ceil import kotlin.math.max import kotlin.math.min @@ -39,7 +41,7 @@ internal class SpinnerServer( registerHelper("neq", ConditionalHelpers.neq) } - private val recentSql: MutableMap> = mutableMapOf() + private val recentSql: MutableMap> = mutableMapOf() private val dateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS zzz", Locale.US) override fun serve(session: IHTTPSession): Response { @@ -70,11 +72,11 @@ internal class SpinnerServer( } fun onSql(dbName: String, sql: String) { - val commands: MutableList = recentSql[dbName] ?: mutableListOf() + val commands: Queue = recentSql[dbName] ?: ConcurrentLinkedQueue() commands += QueryItem(System.currentTimeMillis(), sql) if (commands.size > 100) { - commands.removeAt(0) + commands.remove() } recentSql[dbName] = commands