1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/dashboard-ui/scripts/searchmenu.js

73 lines
2.1 KiB
JavaScript
Raw Normal View History

2016-03-16 16:38:01 -04:00
define([], function () {
2016-03-16 01:33:31 -04:00
function fadeIn(elem, iterations) {
var keyframes = [
{ opacity: '0', offset: 0 },
{ opacity: '1', offset: 1 }];
var timing = { duration: 200, iterations: iterations };
return elem.animate(keyframes, timing);
}
2015-07-10 10:25:18 -04:00
function searchMenu() {
var self = this;
2016-06-23 13:04:18 -04:00
var headerSearchInput = document.querySelector('.headerSearchInput');
2015-07-10 10:25:18 -04:00
self.show = function () {
2016-03-16 01:33:31 -04:00
require(['css!css/search.css'], function () {
2015-07-10 10:25:18 -04:00
2016-06-23 13:04:18 -04:00
headerSearchInput.value = '';
2015-12-14 10:43:03 -05:00
2016-03-16 16:38:01 -04:00
document.querySelector('.btnCloseSearch').classList.add('hide');
var elem = document.querySelector('.viewMenuSearch');
elem.classList.remove('hide');
var onFinish = function() {
2016-06-23 13:04:18 -04:00
headerSearchInput.focus();
2016-03-16 16:38:01 -04:00
document.querySelector('.btnCloseSearch').classList.remove('hide');
2015-12-14 10:43:03 -05:00
};
2016-03-16 16:38:01 -04:00
if (elem.animate) {
fadeIn(elem, 1).onfinish = onFinish;
} else {
onFinish();
}
2015-07-10 10:25:18 -04:00
});
};
self.hide = function () {
var viewMenuSearch = document.querySelector('.viewMenuSearch');
if (!viewMenuSearch) {
return;
}
if (!viewMenuSearch.classList.contains('hide')) {
2016-03-16 16:38:01 -04:00
document.querySelector('.btnCloseSearch').classList.add('hide');
2015-12-14 10:43:03 -05:00
viewMenuSearch.classList.add('hide');
2015-07-10 10:25:18 -04:00
}
};
2016-03-16 16:38:01 -04:00
document.querySelector('.viewMenuSearchForm').addEventListener('submit', function (e) {
e.preventDefault();
2015-07-10 10:25:18 -04:00
return false;
});
2016-03-16 16:38:01 -04:00
document.querySelector('.btnCloseSearch').addEventListener('click', function () {
2015-09-21 13:46:02 -04:00
self.hide();
2015-07-10 10:25:18 -04:00
Events.trigger(self, 'closed');
});
2016-06-23 13:04:18 -04:00
headerSearchInput.addEventListener('input', function (e) {
Events.trigger(self, 'change', [this.value]);
2015-07-10 10:25:18 -04:00
});
}
window.SearchMenu = new searchMenu();
2016-03-16 01:33:31 -04:00
return Window.SearchMenu;
});