jellyfin-web/dashboard-ui/scripts/alphapicker.js

100 lines
2.6 KiB
JavaScript
Raw Normal View History

2013-05-28 18:45:39 -07:00
(function (window, document, $) {
function getPickerHtml() {
var html = '';
html += '<a href="#">#</a>';
html += '<a href="#">A</a>';
html += '<a href="#">B</a>';
html += '<a href="#">C</a>';
html += '<a href="#">D</a>';
html += '<a href="#">E</a>';
html += '<a href="#">F</a>';
html += '<a href="#">G</a>';
html += '<a href="#">H</a>';
html += '<a href="#">I</a>';
html += '<a href="#">J</a>';
html += '<a href="#">K</a>';
html += '<a href="#">L</a>';
html += '<a href="#">M</a>';
html += '<a href="#">N</a>';
html += '<a href="#">O</a>';
html += '<a href="#">P</a>';
html += '<a href="#">Q</a>';
html += '<a href="#">R</a>';
html += '<a href="#">S</a>';
html += '<a href="#">T</a>';
html += '<a href="#">U</a>';
html += '<a href="#">V</a>';
html += '<a href="#">W</a>';
html += '<a href="#">X</a>';
html += '<a href="#">Y</a>';
html += '<a href="#">Z</a>';
return html;
}
2015-05-19 12:15:40 -07:00
$(document).on('pageinitdepends', ".libraryPage", function () {
2013-05-28 18:45:39 -07:00
var page = this;
2015-06-28 07:45:21 -07:00
var picker = page.querySelector('.alphabetPicker');
2013-05-28 18:45:39 -07:00
2015-06-28 07:45:21 -07:00
if (!picker) {
2013-05-28 18:45:39 -07:00
return;
}
$('.itemsContainer', page).addClass('itemsContainerWithAlphaPicker');
2015-06-28 07:45:21 -07:00
picker.innerHTML = getPickerHtml();
2013-05-28 18:45:39 -07:00
2015-06-28 07:45:21 -07:00
Events.on(picker, 'click', 'a', function () {
2013-05-28 18:45:39 -07:00
2015-06-28 07:45:21 -07:00
var elem = this;
var isSelected = elem.classList.contains('selectedCharacter');
2013-05-28 18:45:39 -07:00
$('.selectedCharacter', picker).removeClass('selectedCharacter');
if (!isSelected) {
2015-06-28 07:45:21 -07:00
elem.classList.add('selectedCharacter');
Events.trigger(picker, 'alphaselect', [this.innerHTML]);
2013-05-28 18:45:39 -07:00
} else {
2015-06-28 07:45:21 -07:00
Events.trigger(picker, 'alphaclear');
2013-05-28 18:45:39 -07:00
}
});
});
$.fn.alphaValue = function (val) {
if (val == null) {
return $('.selectedCharacter', this).html();
}
val = val.toLowerCase();
$('.selectedCharacter', this).removeClass('selectedCharacter');
$('a', this).each(function () {
if (this.innerHTML.toLowerCase() == val) {
2015-06-28 07:45:21 -07:00
this.classList.add('selectedCharacter');
2013-05-28 18:45:39 -07:00
} else {
2015-06-28 07:45:21 -07:00
this.classList.remove('selectedCharacter');
2013-05-28 18:45:39 -07:00
}
});
return this;
};
$.fn.alphaClear = function (val) {
return this.alphaValue('');
};
2013-05-28 18:45:39 -07:00
})(window, document, jQuery);