f17acfd6c8
11c3c2a
version 3.0063ad6f
move of context menu to top of thumb0188d22
closes #4, now the form-dialog is just loaded once508366d
annoying "4047609
fixes #8, support for slideshow duration5ed2ff0
updated options pageb65bc7b
fixes #7, image animationd6d5319
Removed temporary sidebarToggle9499b7b
Attempt to fix #3, support for a sidebar13b0419
fixes #5, issues with hovering thumbnailse0fcc41
Fix for broken slideshow, fixes #60bdd3c6
Fix for slideShowImages when album is empty.ca62330
Fix for broken dialogsf0d9e34
Copy of gallery.dialog.js from G3.0.0e4a18f3
Updated jqury version.7be51a8
Added support for breadcrumbs and sidebar (enable via theme options)fad0fe4
Hash update9d3b519
Fix for detail hash Imgage preloada2cfa32
Fix for IE Support for using 'esc' to hide detailView41a9863
fix so only Grid mode is supported if album does not contain any images92c70a1
themeing the exif data22386c3
Combined viewMode.png and removed some depricated files.dc10f0a
New icons.cad0376
Fix for height of thumbs.5c21b24
updated paginator with support for hash6a13dab
Updated themeb305613
fix for pageheight, with paginatorae87410
lNavBar fix751bd86
New ui-theme9a937a1
first attempt for item-option-overlayd024eba
Fix for setTimeout.e167b2d
JSLint take 2, reoder function reorder82e0f38
Reindent and JSLint take 1. git-subtree-dir: 3.0/themes/pear4gallery3 git-subtree-split:11c3c2ac87
191 lines
6.2 KiB
JavaScript
191 lines
6.2 KiB
JavaScript
|
|
(function($) {
|
|
$.widget("ui.gallery_dialog", {
|
|
_init: function() {
|
|
var self = this;
|
|
if (!self.options.immediate) {
|
|
this.element.click(function(event) {
|
|
event.preventDefault();
|
|
self._show($(event.currentTarget).attr("href"));
|
|
return false;
|
|
});
|
|
} else {
|
|
self._show(this.element.attr("href"));
|
|
}
|
|
},
|
|
|
|
_show: function(sHref) {
|
|
var self = this;
|
|
var eDialog = '<div id="g-dialog"></div>';
|
|
|
|
if ($("#g-dialog").length) {
|
|
$("#g-dialog").dialog("close");
|
|
}
|
|
$("body").append(eDialog);
|
|
|
|
if (!self.options.close) {
|
|
self.options.close = self.close_dialog;
|
|
}
|
|
$("#g-dialog").dialog(self.options);
|
|
|
|
$("#g-dialog").gallery_show_loading();
|
|
|
|
$.ajax({
|
|
url: sHref,
|
|
type: "GET",
|
|
beforeSend: function(xhr) {
|
|
// Until we convert to jquery 1.4, we need to save the XMLHttpRequest object so that we
|
|
// can detect the mime type of the reply
|
|
this.xhrData = xhr;
|
|
},
|
|
success: function(data, textStatus, xhr) {
|
|
// Pre jquery 1.4, get the saved XMLHttpRequest object
|
|
if (xhr == undefined) {
|
|
xhr = this.xhrData;
|
|
}
|
|
var mimeType = /^(\w+\/\w+)\;?/.exec(xhr.getResponseHeader("Content-Type"));
|
|
|
|
var content = "";
|
|
if (mimeType[1] == "application/json") {
|
|
data = JSON.parse(data);
|
|
content = unescape(data.html);
|
|
} else {
|
|
content = data;
|
|
}
|
|
|
|
$("#g-dialog").html(content).gallery_show_loading();
|
|
|
|
if ($("#g-dialog form").length) {
|
|
self.form_loaded(null, $("#g-dialog form"));
|
|
}
|
|
self._layout();
|
|
|
|
$("#g-dialog").dialog("open");
|
|
self._set_title();
|
|
|
|
if ($("#g-dialog form").length) {
|
|
self._ajaxify_dialog();
|
|
//Possible not necessary but kept just in case.
|
|
$("#g-dialog").removeClass("g-loading-small g-loading-large");
|
|
}
|
|
}
|
|
});
|
|
$("#g-dialog").dialog("option", "self", self);
|
|
},
|
|
|
|
_layout: function() {
|
|
var dialogWidth;
|
|
var dialogHeight = $("#g-dialog").height();
|
|
var cssWidth = new String($("#g-dialog form").css("width"));
|
|
var childWidth = cssWidth.replace(/[^0-9]/g,"");
|
|
var size = $.gallery_get_viewport_size();
|
|
if ($("#g-dialog iframe").length) {
|
|
dialogWidth = size.width() - 100;
|
|
// Set the iframe width and height
|
|
$("#g-dialog iframe").width("100%").height(size.height() - 100);
|
|
} else if ($("#g-dialog .g-dialog-panel").length) {
|
|
dialogWidth = size.width() - 100;
|
|
$("#g-dialog").dialog("option", "height", size.height() - 100);
|
|
} else if (childWidth == "" || childWidth > 300) {
|
|
dialogWidth = 500;
|
|
}
|
|
$("#g-dialog").dialog('option', 'width', dialogWidth);
|
|
},
|
|
|
|
form_loaded: function(event, ui) {
|
|
// Should be defined (and localized) in the theme
|
|
MSG_CANCEL = MSG_CANCEL || 'Cancel';
|
|
var eCancel = '<a href="#" class="g-cancel g-left">' + MSG_CANCEL + '</a>';
|
|
if ($("#g-dialog .submit").length) {
|
|
$("#g-dialog .submit").addClass("ui-state-default ui-corner-all");
|
|
$.fn.gallery_hover_init();
|
|
$("#g-dialog .submit").parent().append(eCancel);
|
|
$("#g-dialog .g-cancel").click(function(event) {
|
|
$("#g-dialog").dialog("close");
|
|
event.preventDefault();
|
|
});
|
|
}
|
|
$("#g-dialog .ui-state-default").hover(
|
|
function() {
|
|
$(this).addClass("ui-state-hover");
|
|
},
|
|
function() {
|
|
$(this).removeClass("ui-state-hover");
|
|
}
|
|
);
|
|
},
|
|
|
|
close_dialog: function(event, ui) {
|
|
var self = $("#g-dialog").dialog("option", "self");
|
|
if ($("#g-dialog form").length) {
|
|
self._trigger("form_closing", null, $("#g-dialog form"));
|
|
}
|
|
self._trigger("dialog_closing", null, $("#g-dialog"));
|
|
$("#g-dialog").dialog("destroy").remove();
|
|
},
|
|
|
|
_ajaxify_dialog: function() {
|
|
var self = this;
|
|
$("#g-dialog form").ajaxForm({
|
|
beforeSubmit: function(formData, form, options) {
|
|
form.find(":submit")
|
|
.addClass("ui-state-disabled")
|
|
.attr("disabled", "disabled");
|
|
return true;
|
|
},
|
|
beforeSend: function(xhr) {
|
|
// Until we convert to jquery 1.4, we need to save the XMLHttpRequest object so that we
|
|
// can detect the mime type of the reply
|
|
this.xhrData = xhr;
|
|
},
|
|
success: function(data) {
|
|
if (data.html) {
|
|
$("#g-dialog").html(unescape(data.html));
|
|
$("#g-dialog").dialog("option", "position", "center");
|
|
$("#g-dialog form :submit").removeClass("ui-state-disabled")
|
|
.attr("disabled", null);
|
|
self._set_title();
|
|
self._ajaxify_dialog();
|
|
self.form_loaded(null, $("#g-dialog form"));
|
|
if (typeof data.reset == 'function') {
|
|
eval(data.reset + '()');
|
|
}
|
|
}
|
|
if (data.result == "success") {
|
|
if (data.location) {
|
|
window.location = data.location;
|
|
} else {
|
|
window.location.reload();
|
|
}
|
|
}
|
|
}
|
|
});
|
|
},
|
|
|
|
_set_title: function() {
|
|
// Remove titlebar for progress dialogs or set title
|
|
if ($("#g-dialog #g-progress").length) {
|
|
$(".ui-dialog-titlebar").remove();
|
|
} else if ($("#g-dialog h1").length) {
|
|
$("#g-dialog").dialog('option', 'title', $("#g-dialog h1:eq(0)").html());
|
|
$("#g-dialog h1:eq(0)").hide();
|
|
} else if ($("#g-dialog fieldset legend").length) {
|
|
$("#g-dialog").dialog('option', 'title', $("#g-dialog fieldset legend:eq(0)").html());
|
|
}
|
|
},
|
|
|
|
form_closing: function(event, ui) {},
|
|
dialog_closing: function(event, ui) {}
|
|
});
|
|
|
|
$.extend($.ui.gallery_dialog, {
|
|
defaults: {
|
|
autoOpen: false,
|
|
autoResize: true,
|
|
modal: true,
|
|
resizable: false,
|
|
position: "center"
|
|
}
|
|
});
|
|
})(jQuery);
|