mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-05-17 19:20:45 +02:00
85 lines
2.6 KiB
JavaScript
85 lines
2.6 KiB
JavaScript
/*
|
|
* blueimp Gallery jQuery plugin 1.2.2
|
|
* https://github.com/blueimp/Gallery
|
|
*
|
|
* Copyright 2013, Sebastian Tschan
|
|
* https://blueimp.net
|
|
*
|
|
* Licensed under the MIT license:
|
|
* http://www.opensource.org/licenses/MIT
|
|
*/
|
|
|
|
/* global define, window, document */
|
|
|
|
(function (factory) {
|
|
'use strict';
|
|
if (typeof define === 'function' && define.amd) {
|
|
define([
|
|
'jquery',
|
|
'./blueimp-gallery'
|
|
], factory);
|
|
} else {
|
|
factory(
|
|
window.jQuery,
|
|
window.blueimp.Gallery
|
|
);
|
|
}
|
|
}(function ($, Gallery) {
|
|
'use strict';
|
|
|
|
// Global click handler to open links with data-gallery attribute
|
|
// in the Gallery lightbox:
|
|
$(document).on('click', '[data-gallery]', function (event) {
|
|
// Get the container id from the data-gallery attribute:
|
|
var id = $(this).data('gallery'),
|
|
widget = $(id),
|
|
container = (widget.length && widget) ||
|
|
$(Gallery.prototype.options.container),
|
|
callbacks = {
|
|
onopen: function () {
|
|
container
|
|
.data('gallery', this)
|
|
.trigger('open');
|
|
},
|
|
onopened: function () {
|
|
container.trigger('opened');
|
|
},
|
|
onslide: function () {
|
|
container.trigger('slide', arguments);
|
|
},
|
|
onslideend: function () {
|
|
container.trigger('slideend', arguments);
|
|
},
|
|
onslidecomplete: function () {
|
|
container.trigger('slidecomplete', arguments);
|
|
},
|
|
onclose: function () {
|
|
container.trigger('close');
|
|
},
|
|
onclosed: function () {
|
|
container
|
|
.trigger('closed')
|
|
.removeData('gallery');
|
|
}
|
|
},
|
|
options = $.extend(
|
|
// Retrieve custom options from data-attributes
|
|
// on the Gallery widget:
|
|
container.data(),
|
|
{
|
|
container: container[0],
|
|
index: this,
|
|
event: event
|
|
},
|
|
callbacks
|
|
),
|
|
// Select all links with the same data-gallery attribute:
|
|
links = $('[data-gallery="' + id + '"]');
|
|
if (options.filter) {
|
|
links = links.filter(options.filter);
|
|
}
|
|
return new Gallery(links, options);
|
|
});
|
|
|
|
}));
|