summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/rearrange/js/jquery.gallery.rearrange.tree.js220
1 files changed, 123 insertions, 97 deletions
diff --git a/modules/rearrange/js/jquery.gallery.rearrange.tree.js b/modules/rearrange/js/jquery.gallery.rearrange.tree.js
index 399064ff..cbd0f576 100644
--- a/modules/rearrange/js/jquery.gallery.rearrange.tree.js
+++ b/modules/rearrange/js/jquery.gallery.rearrange.tree.js
@@ -28,6 +28,7 @@
if(jQuery) (function($){
$.extend($.fn, {
+
RearrangeTree: function(o, h) {
// Defaults
if( !o ) var o = {};
@@ -40,119 +41,144 @@ if(jQuery) (function($){
if( o.multiFolder == undefined ) o.multiFolder = true;
if( o.loadMessage == undefined ) o.loadMessage = 'Loading...';
- $("#gAddAlbum").draggable({
- helper: 'clone',
- containment: "#gRearrange",
- opacity: .6,
- revert: "invalid"
- });
-
- $("#gDeleteItem").droppable({
- accept: "a",
- hoverClass: "droppable-hover",
- drop: function(ev, ui) {
- source_element = ui.draggable;
- source_parent = source_element.parent();
- target = ui.element;
- alert(source_element.attr("rel") + "\n" + target.attr("id"));
+ function showTree(c, t) {
+ $(c).addClass('wait');
+ $(".jqueryFileTree.start").remove();
+ $.get(o.script + "/" + t, {}, function(data) {
+ $(c).find('.start').html('');
+ $(c).removeClass('wait').append(data);
+ $(c).find('UL:hidden').slideDown({ duration: o.expandSpeed, easing: o.expandEasing });
+ $(c).find('UL:hidden').slideDown({ duration: o.expandSpeed, easing: o.expandEasing });
+ $(c).find('li.directory').droppable({
+ accept: "#gAddAlbum",
+ drop: function(ev, ui) {
+ addAlbum(ui.element);
+ }
+ });
+ if ($(c).hasClass('treeitem')) {
+ $(c).find("li", this.element).draggable({
+ helper: 'clone',
+ containment: "#gRearrange",
+ opacity: .6,
+ revert: "invalid"
+ });
}
- });
- $(this).each( function() {
- function showTree(c, t) {
- $(c).addClass('wait');
- $(".jqueryFileTree.start").remove();
- $.get(o.script + "/" + t, {}, function(data) {
- $(c).find('.start').html('');
- $(c).removeClass('wait').append(data);
- $(c).find('UL:hidden').slideDown({ duration: o.expandSpeed, easing: o.expandEasing });
- $(c).find('UL:hidden').slideDown({ duration: o.expandSpeed, easing: o.expandEasing });
- $(c).find('li.directory').droppable({
- accept: "#gAddAlbum",
- hoverClass: "droppable-hover",
- drop: function(ev, ui) {
- addAlbum(ui.element);
- }
- });
- if ($(c).hasClass('treeitem')) {
- $(c).find("li a", this.element).draggable({
- helper: 'clone',
- containment: "#gRearrange",
- opacity: .6,
- revert: "invalid"
- });
+ $(c).find('.directory').droppable({
+ accept: "li",
+ greedy: true,
+ hoverClass: "droppable-hover",
+ drop: function(ev, ui) {
+ source_element = ui.draggable;
+ source_parent = source_element.parent();
+ target = ui.element;
+ alert(source_element.attr("id") + "\n" + target.attr("id"));
}
-
- $(c).find('.directory').droppable({
- accept: "a",
- greedy: true,
- hoverClass: "droppable-hover",
- drop: function(ev, ui) {
- source_element = ui.draggable;
- source_parent = source_element.parent();
- target = ui.element;
- alert(source_element.attr("rel") + "\n" + target.attr("id"));
- }
- });
- bindTree(c);
});
- }
+ bindTree(c);
+ });
+ }
- function bindTree(t) {
- $(t).find('LI A').bind(o.folderEvent, function() {
- if( $(this).parent().hasClass('directory') ) {
- if( $(this).parent().hasClass('collapsed') ) {
- // Expand
- if( !o.multiFolder ) {
- $(this).parent().parent().find('UL').slideUp({ duration: o.collapseSpeed, easing: o.collapseEasing });
- $(this).parent().parent().find('LI.directory').removeClass('expanded').addClass('collapsed');
- }
- $(this).parent().find('UL').remove(); // cleanup
- showTree( $(this).parent(), escape($(this).attr('rel')) );
- $(this).parent().removeClass('collapsed').addClass('expanded');
- } else {
- // Collapse
- collapse($(this).parent());
+ function bindTree(t) {
+ $(t).find('LI A').bind(o.folderEvent, function() {
+ if( $(this).parent().hasClass('directory') ) {
+ if( $(this).parent().hasClass('collapsed') ) {
+ // Expand
+ if( !o.multiFolder ) {
+ $(this).parent().parent().find('UL').slideUp({ duration: o.collapseSpeed, easing: o.collapseEasing });
+ $(this).parent().parent().find('LI.directory').removeClass('expanded').addClass('collapsed');
}
+ $(this).parent().find('UL').remove(); // cleanup
+ showTree( $(this).parent(), escape($(this).attr('rel')) );
+ $(this).parent().removeClass('collapsed').addClass('expanded');
} else {
- h($(this).attr('rel'));
+ // Collapse
+ collapse($(this).parent());
}
- return false;
- });
- // Prevent A from triggering the # on non-click events
- if( o.folderEvent.toLowerCase != 'click' ) $(t).find('LI A').bind('click', function() { return false; });
- }
+ } else {
+ h($(this).attr('rel'));
+ }
+ return false;
+ });
+ // Prevent A from triggering the # on non-click events
+ if( o.folderEvent.toLowerCase != 'click' ) $(t).find('LI A').bind('click', function() { return false; });
+ }
- function addAlbum(parent) {
- $("#gAddAlbumPopupClose").click(function() {
- $("#gAddAlbumPopup").css({"display": "none"});
- });
+ function addAlbum(parent) {
+ $("#gAddAlbumPopupClose").click(function() {
+ $("#gAddAlbumPopup").css({"display": "none"});
+ });
- $.get("form/add/albums/" + parent.attr("id"), {}, function(data) {
- $("#gAddAlbumArea").html(data);
- $("#gAddAlbumForm").ajaxForm({
- complete: function(xhr, statusText) {
- //$("#gAddAlbumForm").replaceWith(xhr.responseText);
- if (xhr.status == 200) {
- $("#gAddAlbumPopup").css({"display": "none"});
- collapse(parent);
- showTree(parent, parent.attr("id"));
- }
+ $.get("form/add/albums/" + parent.attr("id"), {}, function(data) {
+ $("#gAddAlbumArea").html(data);
+ $("#gAddAlbumForm").ajaxForm({
+ complete: function(xhr, statusText) {
+ if (xhr.status == 200) {
+ $("#gAddAlbumPopup").css({"display": "none"});
+ collapse(parent);
+ showTree(parent, parent.attr("id"));
}
- });
- $("#gAddAlbumPopup").css({
- "display": "block",
- "top": $("#gAddAlbum").offsetTop + $("#gAddAlbum").offsetHeight,
- "left":$("#gAddAlbum").offsetLeft
- });
+ }
+ });
+ $("#gAddAlbumPopup").css({
+ "display": "block",
+ "top": $("#gAddAlbum").offsetTop + $("#gAddAlbum").offsetHeight,
+ "left":$("#gAddAlbum").offsetLeft
});
+ });
+ }
+
+ function collapse(parent) {
+ parent.find('UL').slideUp({ duration: o.collapseSpeed, easing: o.collapseEasing });
+ parent.removeClass('expanded').addClass('collapsed');
+ }
+
+ function getParent(element) {
+ parent = element.parent();
+ while(parent != null) {
+ if ($(parent).hasClass("treeitem")) {
+ return parent;
+ }
+ parent = parent.parent();
}
+ return null;
+ }
+
+ $("#gAddAlbum").draggable({
+ helper: 'clone',
+ containment: "#gRearrange",
+ opacity: .6,
+ revert: "invalid"
+ });
- function collapse(parent) {
- parent.find('UL').slideUp({ duration: o.collapseSpeed, easing: o.collapseEasing });
- parent.removeClass('expanded').addClass('collapsed');
+ $("#gDeleteItem").droppable({
+ accept: "li",
+ tolerance: "pointer",
+ drop: function(ev, ui) {
+ var element = ui.draggable;
+ var parent = getParent(element);
+
+ var id = element.attr("id");
+ var anchor = $(element).find("a");
+ if (confirm("Do you really want to delete " + $(element).find("a")[0].textContent)) {
+ $.ajax({
+ url: "items/" + id,
+ success: function(data, textStatus) {
+ collapse(parent);
+ showTree(parent, parent.attr("id"));
+ },
+ error: function(xhr, textStatus, errorThrown) {
+ alert(xhr.status);
+ alert(textStatus);
+ alert(errorThrown);
+ },
+ type: "DELETE"
+ });
+ }
}
+ });
+ $(this).each( function() {
// Loading message
$(this).html('<ul class="jqueryFileTree start"><li class="wait">' + o.loadMessage + '<li></ul>');
// Get the initial file list