Select Git revision
overlayer.js
-
Jettka, Daniel authoredJettka, Daniel authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
overlayer.js 3.45 KiB
(function ( $ ) {
$.fn.overlayer = function( options ) {
var settings = $.extend({
inactive: []
}, options );
return this.each(function() {
var doc = this;
$(doc).delegate('a.overlayLink', 'click', function(evt) {
evt.stopPropagation();
evt.preventDefault();
// open overlay box
$('body', window.top.document).append("<div class='overlayBackground overlayBoxclose' id='overlayBackground'></div>"+
"<div class='overlayBox' id='overlayBox'>"+
"<a class='overlayBoxclose' id='overlayBoxclose' title='Close box'>close</a>"+
"<div id='overlayBoxContent'>"+
"<img height='30' src='/hzsk/sites/default/files/images/icons/spinner-small.gif' alt='Please wait while loading...'/>"+
"</div>"+
"</div>");
// avoid scrolling on body
$('body', window.top.document).toggleClass("noscroll");
// register handler for closing the box
$('.overlayBoxclose', window.top.document).click(function(){
$('#overlayBoxContent', window.top.document).html('');
$('#overlayBox', window.top.document).remove();
$('#overlayBackground', window.top.document).remove();
$('body', window.top.document).toggleClass("noscroll");
});
var hrefAttr = $(this).attr('href');
if (typeof hrefAttr !== typeof undefined && hrefAttr !== false) {
if (hrefAttr.match("^#")) {
// href value refers to #id
$('#overlayBoxContent', window.top.document).css("height", "100%");
$('#overlayBoxContent', window.top.document).html($(hrefAttr).html());
} else{
// href value understood to refer to url
$('#overlayBoxContent', window.top.document).css("height", "100%");
//don't show spinner
//$('#overlayBoxContent', window.top.document).css("background", "url(https://corpora.uni-hamburg.de/hzsk/sites/default/files/images/icons/spinner-small.gif) center center no-repeat");
// test if href attribute refers to audio file (e.g. mp3)
if(hrefAttr.split('.').pop() == 'mp3'){
$('#overlayBoxContent', window.top.document).html('<div style="height: 100%; display: flex; justify-content: center; align-items: center;">'
+'<audio controls="controls">'
+'<source src="'+hrefAttr+'" />'
+'</audio></div>');
} else{
$('#overlayBoxContent', window.top.document).html('<iframe width="100%" height="99%" src="'+hrefAttr+'" style="background-color:white;"></iframe>');
}
}
var dataOverlayMargin = $(this).data('overlay-top-bottom-margin');
if(typeof dataOverlayMargin !== typeof undefined && dataOverlayMargin !== false){
if (dataOverlayMargin.match("^.+$")) {
$('#overlayBox', window.top.document).css("top", dataOverlayMargin);
$('#overlayBox', window.top.document).css("bottom", dataOverlayMargin);
}
}
var dataOverlayMargin = $(this).data('overlay-left-right-margin');
if(typeof dataOverlayMargin !== typeof undefined && dataOverlayMargin !== false){
if (dataOverlayMargin.match("^.+$")) {
$('#overlayBox', window.top.document).css("right", dataOverlayMargin);
$('#overlayBox', window.top.document).css("left", dataOverlayMargin);
}
}
}
});
return this;
});
}
}( jQuery ));