Merge branch 'FIX-frozen-tooltips' of git://github.com/m-voloshin/jitsi-meet into m-voloshin-FIX-frozen-tooltips

This commit is contained in:
hristoterezov 2016-10-25 16:51:03 -05:00
commit 05fcaa2554
1 changed files with 41 additions and 33 deletions

View File

@ -1,4 +1,4 @@
/* global $, APP, JitsiMeetJS, interfaceConfig */
/* global $, JitsiMeetJS, interfaceConfig */
import Avatar from "../avatar/Avatar";
import UIUtil from "../util/UIUtil";
import UIEvents from "../../../service/UI/UIEvents";
@ -519,16 +519,13 @@ SmallVideo.prototype.showDominantSpeakerIndicator = function (show) {
return;
}
var indicatorSpanId = "dominantspeakerindicator";
var indicatorSpan = this.getIndicatorSpan(indicatorSpanId);
var indicatorSpan = this.getIndicatorSpan({
id: 'dominantspeakerindicator',
content: '<i id="indicatoricon" class="fa fa-bullhorn"></i>',
tooltip: 'speaker'
});
indicatorSpan.innerHTML
= "<i id='indicatoricon' class='fa fa-bullhorn'></i>";
// adds a tooltip
UIUtil.setTooltip(indicatorSpan, "speaker", "top");
APP.translation.translateElement($(indicatorSpan));
$(indicatorSpan).css("visibility", show ? "visible" : "hidden");
indicatorSpan.style.display = show ? "" : "none";
};
/**
@ -542,35 +539,46 @@ SmallVideo.prototype.showRaisedHandIndicator = function (show) {
return;
}
var indicatorSpanId = "raisehandindicator";
var indicatorSpan = this.getIndicatorSpan(indicatorSpanId);
var indicatorSpan = this.getIndicatorSpan({
id: 'raisehandindicator',
content: '<i id="indicatoricon" class="icon-raised-hand"></i>',
tooltip: 'raisedHand'
});
indicatorSpan.innerHTML
= "<i id='indicatoricon' class='icon-raised-hand'></i>";
// adds a tooltip
UIUtil.setTooltip(indicatorSpan, "raisedHand", "top");
APP.translation.translateElement($(indicatorSpan));
$(indicatorSpan).css("visibility", show ? "visible" : "hidden");
indicatorSpan.style.display = show ? "" : "none";
};
/**
* Gets (creating if necessary) the "indicator" span for this SmallVideo
identified by an ID.
* Gets (creating if necessary) the "indicator" span for this SmallVideo.
*
* @param options.id {String} element ID
* @param options.content {String} HTML content of the indicator
* @param options.tooltip {String} The key that should be passed to tooltip
*
* @returns {HTMLElement} DOM represention of the indicator
*/
SmallVideo.prototype.getIndicatorSpan = function(id) {
var indicatorSpan;
var spans = $(`#${this.videoSpanId}>[id=${id}`);
if (spans.length <= 0) {
indicatorSpan = document.createElement('span');
indicatorSpan.id = id;
indicatorSpan.className = "indicator";
$('#' + this.videoSpanId)[0].appendChild(indicatorSpan);
} else {
indicatorSpan = spans[0];
SmallVideo.prototype.getIndicatorSpan = function(options) {
var indicator = this.container.querySelector('#' + options.id);
if (indicator) {
return indicator;
}
return indicatorSpan;
indicator = document.createElement('span');
indicator.className = 'indicator';
indicator.id = options.id;
indicator.innerHTML = options.content;
// This element will be translated by UIUtil.setTooltip and
// that's why it is not translated here.
// Do not translate the same element multiple times in a row
// because it prevents tooltip from disappearing.
UIUtil.setTooltip(indicator, options.tooltip, "top");
this.container.appendChild(indicator);
return indicator;
};
/**