diff --git a/src/larvatagger.js b/src/larvatagger.js index 093baa33ab862884e10792262fc97665f14f63f5..79eaf6d3dfe1d29f55c823f1a06d6b091c4488fb 100644 --- a/src/larvatagger.js +++ b/src/larvatagger.js @@ -34,6 +34,12 @@ const LarvaTagger = (function () { }; } + function focusOnTimeSlider(view) { + if (view === undefined) + view = document.getElementById("trackviewer"); + view.querySelector("input[type=range]").focus() + } + function discardLarvaEdits(checkbox, observer, label) { if (checkbox.checked) { checkbox.checked = false; @@ -74,7 +80,7 @@ const LarvaTagger = (function () { const frag = document.createRange().createContextualFragment(html); const newtr = frag.firstChild.firstChild.firstChild; let tbody = table.getElementsByTagName('tbody')[0]; - if (tbody == null) { + if (tbody === undefined) { tbody = document.createElement('tbody'); table.appendChild(tbody); } @@ -113,7 +119,7 @@ const LarvaTagger = (function () { const option = document.createElement('option'); option.value = String(i); option.text = selectOptions[i]; - if (jlObserver != null) { + if (jlObserver !== undefined) { option.ondblclick = () => { JSServe.update_obs(jlObserver, selectOptions[i]); }; @@ -157,6 +163,7 @@ const LarvaTagger = (function () { return { toggle, timeSlider, + focusOnTimeSlider, discardLarvaEdits, includeLarva, includeAllLarvae, diff --git a/src/wgl.jl b/src/wgl.jl index 6793a06c8861de6c62d473f5c37af655871a7e38..7cd88e604beb0479c75b09294e0a4611847cf99f 100644 --- a/src/wgl.jl +++ b/src/wgl.jl @@ -383,6 +383,7 @@ function JSServe.jsrender(session::Session, av::AssayViewer) dom = DOM.div(r(session, av.plot), r(session, av.player); class="flex flex-col", + onmouseenter=js"LarvaTagger.focusOnTimeSlider(this)", ) av.dom = dom return r(session, dom) @@ -905,7 +906,8 @@ function JSServe.jsrender(session::Session, ts::TagSelector) end JSServe.jsrender(session, DOM.div(elements...; - class="flex flex-col")) + class="flex flex-col", + onmouseenter=js"LarvaTagger.focusOnTimeSlider()")) end function tagselector(controller; @@ -940,6 +942,8 @@ function JSServe.jsrender(session::Session, tv::TrackViewer) r(session, tv.tagselector); class="flex flex-col", style="display: none;", + id="trackviewer", + onmouseenter=js"LarvaTagger.focusOnTimeSlider(this)", ) tv.dom = dom r(session, dom)