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 Avatar from "../avatar/Avatar";
import UIUtil from "../util/UIUtil"; import UIUtil from "../util/UIUtil";
import UIEvents from "../../../service/UI/UIEvents"; import UIEvents from "../../../service/UI/UIEvents";
@ -519,16 +519,13 @@ SmallVideo.prototype.showDominantSpeakerIndicator = function (show) {
return; return;
} }
var indicatorSpanId = "dominantspeakerindicator"; var indicatorSpan = this.getIndicatorSpan({
var indicatorSpan = this.getIndicatorSpan(indicatorSpanId); id: 'dominantspeakerindicator',
content: '<i id="indicatoricon" class="fa fa-bullhorn"></i>',
tooltip: 'speaker'
});
indicatorSpan.innerHTML indicatorSpan.style.display = show ? "" : "none";
= "<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");
}; };
/** /**
@ -542,35 +539,46 @@ SmallVideo.prototype.showRaisedHandIndicator = function (show) {
return; return;
} }
var indicatorSpanId = "raisehandindicator"; var indicatorSpan = this.getIndicatorSpan({
var indicatorSpan = this.getIndicatorSpan(indicatorSpanId); id: 'raisehandindicator',
content: '<i id="indicatoricon" class="icon-raised-hand"></i>',
tooltip: 'raisedHand'
});
indicatorSpan.innerHTML indicatorSpan.style.display = show ? "" : "none";
= "<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");
}; };
/** /**
* Gets (creating if necessary) the "indicator" span for this SmallVideo * Gets (creating if necessary) the "indicator" span for this SmallVideo.
identified by an ID. *
* @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) { SmallVideo.prototype.getIndicatorSpan = function(options) {
var indicatorSpan; var indicator = this.container.querySelector('#' + options.id);
var spans = $(`#${this.videoSpanId}>[id=${id}`);
if (spans.length <= 0) { if (indicator) {
indicatorSpan = document.createElement('span'); return indicator;
indicatorSpan.id = id;
indicatorSpan.className = "indicator";
$('#' + this.videoSpanId)[0].appendChild(indicatorSpan);
} else {
indicatorSpan = spans[0];
} }
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;
}; };
/** /**