mirror of
https://github.com/bitwarden/browser
synced 2025-12-12 14:23:32 +00:00
58 lines
1.8 KiB
JavaScript
58 lines
1.8 KiB
JavaScript
var popupUtils = function () {
|
|
var self = this;
|
|
|
|
self.initListSectionItemListeners = function () {
|
|
$('.list-section-item').click(function (e) {
|
|
var text = $(this).find('input, textarea').not('input[type="checkbox"], input[type="radio"], input[type="hidden"]');
|
|
var checkbox = $(this).find('input[type="checkbox"]');
|
|
var select = $(this).find('select');
|
|
|
|
if (text.length > 0 && e.target === text[0]) {
|
|
return;
|
|
}
|
|
if (checkbox.length > 0 && e.target === checkbox[0]) {
|
|
return;
|
|
}
|
|
if (select.length > 0 && e.target === select[0]) {
|
|
return;
|
|
}
|
|
|
|
e.preventDefault();
|
|
|
|
if (text.length > 0) {
|
|
text.focus();
|
|
}
|
|
else if (checkbox.length > 0) {
|
|
checkbox.prop('checked', !checkbox.is(':checked'));
|
|
if (angular) {
|
|
angular.element(checkbox[0]).triggerHandler('click');
|
|
}
|
|
}
|
|
else if (select.length > 0) {
|
|
select.openSelect();
|
|
}
|
|
});
|
|
}
|
|
|
|
return self;
|
|
}();
|
|
|
|
|
|
// ref: http://stackoverflow.com/questions/19432610/jquery-open-select-by-button
|
|
(function ($) {
|
|
"use strict";
|
|
$.fn.openSelect = function () {
|
|
return this.each(function (index, el) {
|
|
$(el).focus();
|
|
if (document.createEvent) {
|
|
var event = document.createEvent("MouseEvents");
|
|
event.initMouseEvent("mousedown", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
|
|
el.dispatchEvent(event);
|
|
}
|
|
else if (element.fireEvent) {
|
|
el.fireEvent("onmousedown");
|
|
}
|
|
});
|
|
}
|
|
}(jQuery));
|