kreta/KretaWeb/Scripts/KendoHelper/KretaTooltipHelper.js
2024-03-13 00:33:46 +01:00

76 lines
2.1 KiB
JavaScript

var KretaTooltipHelper = (function () {
var kretaTooltipHelper = function () {};
kretaTooltipHelper.setTooltip = function (
tooltipElement,
tooltipTemplateSelector
) {
tooltipElement.kendoTooltip({
content: kendo.template($(tooltipTemplateSelector).html()),
position: 'top',
show: function () {
var that = this;
var tooltips = $('[data-role=tooltip]');
tooltips.each(function () {
var tooltip = $(this).data('kendoTooltip');
if (tooltip && tooltip !== that) {
tooltip.hide();
}
});
}
});
};
kretaTooltipHelper.setGridCellTooltip = function (
tooltipElement,
tooltipTemplateSelector
) {
tooltipElement.kendoTooltip({
content: kendo.template($(tooltipTemplateSelector).html()),
filter: 'span',
position: 'bottom',
show: function (e) {
var rect = e.sender.element[0].getBoundingClientRect();
var left = rect.left;
var top = rect.top;
var height = rect.height;
var animationContainer = e.sender.popup.element.parent()[0];
var width = window.innerWidth;
var toolTipMaxWidth = 600;
if (parseInt(left + toolTipMaxWidth, 10) > width) {
toolTipMaxWidth = parseInt(width - left, 10);
}
animationContainer.style.top = parseInt(top + height, 10) + 'px';
animationContainer.style.left = parseInt(left, 10) + 'px';
animationContainer.style.maxWidth = toolTipMaxWidth + 'px';
var that = this;
var tooltips = $('[data-role=tooltip]');
tooltips.each(function () {
var tooltip = $(this).data('kendoTooltip');
if (tooltip && tooltip !== that) {
tooltip.hide();
}
});
},
showAfter: 300
});
};
kretaTooltipHelper.hidaAllTooltips = function () {
var tooltips = $('[data-role=tooltip]');
tooltips.each(function () {
var tooltip = $(this).data('kendoTooltip');
if (tooltip) {
tooltip.hide();
}
});
};
return kretaTooltipHelper;
})();