MCPcopy
hub / github.com/andrewrk/groovebasin / onLibFilterKeyDown

Function onLibFilterKeyDown

src/client/app.js:3620–3678  ·  view source on GitHub ↗
(ev)

Source from the content-addressed store, hash-verified

3618}
3619
3620function onLibFilterKeyDown(ev) {
3621 ev.stopPropagation();
3622 switch (ev.which) {
3623 case 27: // Escape
3624 ev.preventDefault();
3625 if (libFilterDom.value.length === 0) {
3626 libFilterDom.blur();
3627 } else {
3628 // queue up a search refresh now, because if the user holds Escape,
3629 // it will blur the search box, and we won't get a keyup for Escape.
3630 setTimeout(clearBoxAndSearch, 0);
3631 }
3632 return;
3633 case 13: // Enter
3634 ev.preventDefault();
3635 var keys = [];
3636 for (var i = 0; i < player.searchResults.artistList.length; i += 1) {
3637 var artist = player.searchResults.artistList[i];
3638 for (var j = 0; j < artist.albumList.length; j += 1) {
3639 var album = artist.albumList[j];
3640 for (var k = 0; k < album.trackList.length; k += 1) {
3641 var track = album.trackList[k];
3642 keys.push(track.key);
3643 }
3644 }
3645 }
3646 if (ev.altKey) shuffle(keys);
3647 if (keys.length > 2000) {
3648 if (!confirm("You are about to queue " + keys.length + " songs.")) {
3649 return;
3650 }
3651 }
3652 if (ev.shiftKey) {
3653 player.queueTracksNext(keys);
3654 } else {
3655 player.queueOnQueue(keys);
3656 }
3657 return;
3658 case 40:
3659 ev.preventDefault();
3660 selection.selectOnlyFirstPos('library');
3661 selection.scrollToCursor();
3662 refreshSelection();
3663 libFilterDom.blur();
3664 return;
3665 case 38:
3666 ev.preventDefault();
3667 selection.selectOnlyLastPos('library');
3668 selection.scrollToCursor();
3669 refreshSelection();
3670 libFilterDom.blur();
3671 return;
3672 }
3673
3674 function clearBoxAndSearch() {
3675 libFilterDom.value = "";
3676 ensureSearchHappensSoon();
3677 }

Callers

nothing calls this directly

Calls 1

refreshSelectionFunction · 0.85

Tested by

no test coverage detected