Non puoi selezionare più di 25 argomenti
Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
157 righe
4.4 KiB
157 righe
4.4 KiB
<style> |
|
#changeLogTooltip { |
|
opacity: 0; |
|
color: #000; |
|
background: #fff; |
|
position: absolute; |
|
z-index: 100; |
|
padding: 15px; |
|
pointer-events: none; |
|
border-radius: 5px; |
|
-moz-border-radius: 5px; |
|
-webkit-border-radius: 5px; |
|
-o-border-radius: 5px; |
|
-ms-border-radius: 5px; |
|
transition: all 0.5s ease-in-out; |
|
-moz-transition: all 0.5s ease-in-out; |
|
-webkit-transition: all 0.5s ease-in-out; |
|
-o-transition: all 0.5s ease-in-out; |
|
-ms-transition: all 0.5s ease-in-out; |
|
-webkit-box-shadow: 5px 5px 15px 5px rgba(0,0,0,0.15); |
|
box-shadow: 5px 5px 15px 5px rgba(0,0,0,0.15); |
|
} |
|
|
|
#changeLogTooltip a { |
|
color: #00497A; |
|
} |
|
#changeLogTooltip.top { |
|
margin-top: 20px; |
|
} |
|
#changeLogTooltip.show { |
|
opacity: 1; |
|
margin-top: 10px; |
|
pointer-events: all; |
|
} |
|
#changeLogTooltip.show.top { |
|
margin-top: 10px; |
|
} |
|
#changeLogTooltip:after { |
|
width: 0; |
|
height: 0; |
|
border-left: 10px solid transparent; |
|
border-right: 10px solid transparent; |
|
border-top: 10px solid #fff; |
|
content: ''; |
|
position: absolute; |
|
left: 50%; |
|
bottom: -10px; |
|
margin-left: -10px; |
|
} |
|
#changeLogTooltip.top:after { |
|
border-top-color: transparent; |
|
border-bottom: 10px solid #fff; |
|
top: -20px; |
|
bottom: auto; |
|
} |
|
#changeLogTooltip.left:after { |
|
left: 10px; |
|
margin: 0; |
|
} |
|
#changeLogTooltip.right:after { |
|
right: 10px; |
|
left: auto; |
|
margin: 0; |
|
} |
|
</style> |
|
<div id="changeLogTooltip"> |
|
<!--DATA WILL BE LOADED--> |
|
</div> |
|
<li id="changelogs-btn" class="nav-item px-2"> |
|
<a rel="tooltip" class="nav-link first-level" href="#"> |
|
<i class="fa fa-fire-alt"></i> |
|
<?php if (!empty($count)) { |
|
?> |
|
<span id="changelogs-counter" style="position:relative; top: -10px;" class="badge badge-danger"><?php echo $count?></span> |
|
<?php |
|
}?> |
|
<span class="d-none d-sm-inline"></span> |
|
</a> |
|
</li> |
|
<script type="text/javascript"> |
|
var Tooltip = { |
|
tooltip: undefined, |
|
target: undefined, |
|
show: false, |
|
bindEvents: function() { |
|
Tooltip.tooltip = document.getElementById('changeLogTooltip'); |
|
var targets = document.querySelectorAll('[rel=tooltip]'); |
|
for (var i = 0; i < targets.length; ++i) { |
|
targets[i].addEventListener('click', Tooltip.show); |
|
} |
|
Tooltip.tooltip.addEventListener('click', Tooltip.hide); |
|
window.addEventListener('resize', Tooltip.hide); |
|
|
|
}, |
|
|
|
loadChangelogs: async function() { |
|
let formData = new FormData(); |
|
formData.append("command", "SHOW_LAST"); |
|
const response = await fetch("<?php echo $this->endpoint?>", { |
|
method: "POST", |
|
body: formData |
|
}) |
|
return await response.text(); |
|
}, |
|
|
|
show: async function(target) |
|
{ |
|
if (this.show) { |
|
Tooltip.hide(); |
|
return |
|
} |
|
Tooltip.target = this; |
|
var tip = await Tooltip.loadChangelogs(); |
|
if( !tip || tip == '' ) { |
|
return false; |
|
} |
|
Tooltip.tooltip.innerHTML = tip ; |
|
if( window.innerWidth < Tooltip.tooltip.offsetWidth * 1.5 ) { |
|
Tooltip.tooltip.style.maxWidth = (window.innerWidth / 2)+'px'; |
|
} |
|
else { |
|
Tooltip.tooltip.style.maxWidth = 320 + 'px'; |
|
} |
|
|
|
var pos_left = Tooltip.target.offsetLeft + ( Tooltip.target.offsetWidth / 2 ) - ( Tooltip.tooltip.offsetWidth / 2 ), |
|
pos_top = Tooltip.target.offsetTop - Tooltip.tooltip.offsetHeight - 20; |
|
Tooltip.tooltip.className = ''; |
|
if( pos_left < 0 ) |
|
{ |
|
pos_left = Tooltip.target.offsetLeft + Tooltip.target.offsetWidth / 2 - 20; |
|
Tooltip.tooltip.className += ' left'; |
|
} |
|
|
|
if( pos_left + Tooltip.tooltip.offsetWidth > window.innerWidth ) { |
|
pos_left = Tooltip.target.offsetLeft - Tooltip.tooltip.offsetWidth + Tooltip.target.offsetWidth / 2 + 20; |
|
Tooltip.tooltip.className +=' right'; |
|
} |
|
|
|
if( pos_top < 0 ) |
|
{ |
|
var pos_top = Tooltip.target.offsetTop + Tooltip.target.offsetHeight; |
|
Tooltip.tooltip.className += ' top'; |
|
} |
|
|
|
Tooltip.tooltip.style.left = pos_left + 'px'; |
|
Tooltip.tooltip.style.top = pos_top + 'px'; |
|
|
|
Tooltip.tooltip.className += ' show'; |
|
}, |
|
hide: function() |
|
{ |
|
Tooltip.tooltip.className = Tooltip.tooltip.className.replace('show', ''); |
|
this.show = !this.show; |
|
} |
|
}; |
|
Tooltip.bindEvents(); |
|
</script>
|
|
|