summaryrefslogtreecommitdiff
path: root/modules/organize/js
diff options
context:
space:
mode:
Diffstat (limited to 'modules/organize/js')
-rw-r--r--modules/organize/js/organize.js317
1 files changed, 0 insertions, 317 deletions
diff --git a/modules/organize/js/organize.js b/modules/organize/js/organize.js
deleted file mode 100644
index fcadeef9..00000000
--- a/modules/organize/js/organize.js
+++ /dev/null
@@ -1,317 +0,0 @@
-(function($) {
- $.organize = {
- micro_thumb_draggable: {
- handle: ".ui-selected",
- distance: 10,
- cursorAt: { left: -10, top: -10},
- appendTo: "#g-organize-content-pane",
- helper: function(event, ui) {
- var selected = $(".ui-selected");
- var set = $('<div class="g-drag-helper"></div>')
- .css({
- zIndex: 2000,
- width: 80,
- height: Math.ceil(selected.length / 5) * 16
- });
-
- selected.each(function(i) {
- var row = parseInt(i / 5);
- var j = i - (row * 5);
- var img = $("img", this);
- var o = img.offset();
- var copy = img.clone()
- .css({
- width: img.width(), height: img.height(), display: "block",
- margin: 0, position: 'absolute', outline: '5px solid #fff',
- left: o.left - event.pageX, top: o.top - event.pageY
- })
- .appendTo(set)
- .animate({ width: 10, height: 10, outlineWidth: 1, margin: 1,
- left: (20 * j), top: (row * 20) }, 500);
- });
- return set;
- },
-
- start: function(event, ui) {
- $("#g-organize-microthumb-grid .ui-selected").hide();
- },
-
- drag: function(event, ui) {
- var top = $("#g-organize-microthumb-grid").offset().top;
- var height = $("#g-organize-microthumb-grid").height();
- var scrollTop = $("#g-organize-microthumb-grid").scrollTop();
- if (ui.offset.top > height + top - 20) {
- scrollTop += 100;
- } else if (ui.offset.top < top + 20) {
- scrollTop = Math.max(0, scrollTop - 100);
- }
- $("#g-organize-microthumb-grid").scrollTop(scrollTop);
- }
- },
-
- content_droppable: {
- accept: "*",
- tolerance: "pointer",
- greedy: true,
- drop: function(event, ui) {
- $(".g-mouse-drag-over").removeClass("g-mouse-drag-over");
- var target = $("#g-organize-drop-target-marker").data("drop_position");
- if (target == null) {
- target = {
- position: false,
- id: $(".g-organize-microthumb-grid-cell:visible:last").attr("ref")
- };
- }
- $.organize.do_drop({
- url: rearrange_url
- .replace("__TARGET_ID__", target.id)
- .replace("__BEFORE__", target.position ? "before" : "after"),
- source: $(ui.helper).children("img")
- });
- }
- },
-
- branch_droppable: {
- accept: "*",
- tolerance: "pointer",
- greedy: true,
- drop: function(event, ui) {
- if ($(event.target).hasClass("g-view-only")) {
- $("#g-organize-drop-target-marker").remove();
- $(".ui-selected").show();
- } else {
- $.organize.do_drop({
- url: move_url.replace("__ALBUM_ID__", $(event.target).attr("ref")),
- source: $(ui.helper).children("img")
- });
- }
- }
- },
-
- do_drop: function(options) {
- $("#g-organize-microthumb-grid").selectable("destroy");
- var source_ids = [];
- $(options.source).each(function(i) {
- source_ids.push($(this).attr("ref"));
- });
-
- if (source_ids.length) {
- var loading = $('<div class="g-dialog-loading-large">&nbsp;</div>')
- .css({bottom: 5,
- opacity: .5,
- left: 0,
- position: "absolute",
- right: 0,
- top: 0,
- zIndex: 2000
- });
- $("#g-organize-microthumb-grid").append(loading);
-
- $.post(options.url,
- { "source_ids[]": source_ids },
- function(data) {
- $.organize._refresh(data);
- $(".g-dialog-loading-large").remove();
- },
- "json");
- }
- },
-
- _refresh: function(data) {
- if (data.tree) {
- $("#g-organize-album-tree").html(data.tree);
- }
- if (data.grid) {
- $("#g-organize-microthumb-grid").html(data.grid);
- $("#g-organize-sort-column").attr("value", data.sort_column);
- $("#g-organize-sort-order").attr("value", data.sort_order);
- }
- $.organize.set_handlers();
- },
-
- grid_mouse_leave_handler: function(event) {
- if ($(".g-drag-helper").length && $("#g-organize-drop-target-marker").length) {
- $("#g-organize-drop-target-marker").remove();
- }
- },
-
- grid_mouse_move_handler: function(event) {
- var continue_events = true;
- if ($(".g-drag-helper").length) {
- var organizeData = $("#g-organize").data("organizeData");
- var thumbGrid = $("#g-organize-microthumb-grid");
- var visibleCells = $(".g-organize-microthumb-grid-cell:visible");
- var scrollTop = thumbGrid.scrollTop();
-
- var item = $(".g-mouse-drag-over");
- if (item.length == 0) {
- var itemColumn = Math.floor((event.pageX - thumbGrid.offset().left) / organizeData.width);
- itemColumn = organizeData.rtl ? organizeData.width - itemColumn : itemColumn;
- var itemRow = Math.floor((event.pageY + scrollTop - thumbGrid.offset().top) / organizeData.height);
- var itemIndex = Math.min(itemRow * organizeData.columns + itemColumn, visibleCells.length - 1);
- item = visibleCells.get(itemIndex);
- }
-
- var before = event.pageX < ($(item).offset().left + $(item).width() / 2);
- var left = $(item).position().left + (before ? 0 : organizeData.width) - 3;
- var top = $(item).position().top + 6 + scrollTop;
-
- if ($("#g-organize-drop-target-marker").length) {
- $("#g-organize-drop-target-marker").remove();
- }
-
- var set = $('<div id="g-organize-drop-target-marker"></div>')
- .css({zIndex: 2000,
- width: 2,
- height: 112,
- borderWidth: 1,
- borderStyle: "solid",
- position: "absolute",
- top: top, left: left
- })
- .data("drop_position", {id: $(item).attr("ref"),
- position: organizeData.rtl ? !before : before});
- thumbGrid.append(set);
- if ($.browser.msie) {
- $(".g-drag-helper").offset({top: event.pageY, left: event.PageX});
- event.preventDefault();
- continue_events = false;
- }
- }
- return continue_events;
- },
-
- /**
- * Dynamically initialize the organize dialog when it is displayed
- */
- init: function(data) {
- var self = this;
- // Deal with ui.jquery bug: http://dev.jqueryui.com/ticket/4475 (target 1.8?)
- $(".sf-menu li.sfHover ul").css("z-index", 68);
- $("#g-dialog").dialog("option", "zIndex", 70);
- $("#g-dialog").bind("dialogopen", function(event, ui) {
- var outerHeight = $(".g-organize-microthumb-grid-cell").outerHeight(true);
- var outerWidth = $(".g-organize-microthumb-grid-cell").outerWidth(true);
- var gridInnerWidth = $("#g-organize-microthumb-grid").innerWidth() - 2 * parseFloat($("#g-organize-microthumb-grid").css("paddingLeft"));
- $("#g-organize")
- .height($("#g-dialog").innerHeight() - 20)
- .data("organizeData", {
- rtl: $("body").hasClass("rtl"),
- height: outerHeight,
- width: outerWidth,
- columns: Math.floor(gridInnerWidth / outerWidth)
- });
- });
-
- $("#g-dialog").bind("dialogclose", function(event, ui) {
- window.location.reload();
- });
-
- $("#g-organize-close").click(function(event) {
- $("#g-dialog").dialog("close");
- });
-
- $("#g-organize-sort-column,#g-organize-sort-order").change(function(event) {
- $.organize.resort($("#g-organize-sort-column").attr("value"),
- $("#g-organize-sort-order").attr("value"));
- });
-
- $.organize.set_handlers();
- },
-
- set_handlers: function() {
- $("#g-organize-microthumb-grid")
- .selectable({filter: ".g-organize-microthumb-grid-cell"})
- .mousemove($.organize.grid_mouse_move_handler)
- .mouseleave($.organize.grid_mouse_leave_handler)
- .droppable($.organize.content_droppable);
- $(".g-organize-microthumb-grid-cell")
- // need to manually add this class in case we care calling with additional elements
- .addClass("ui-selectee")
- .mouseleave(function(event) {
- if ($(".g-drag-helper").length) {
- $(this).removeClass("g-mouse-drag-over");
- }
- })
- .mouseenter(function(event) {
- $(".g-mouse-drag-over").removeClass("g-mouse-drag-over");
- if ($(".g-drag-helper").length) {
- $(this).addClass("g-mouse-drag-over");
- }
- })
- .draggable($.organize.micro_thumb_draggable);
- $(".g-organize-album").droppable($.organize.branch_droppable);
- $(".g-organize-album-text").click($.organize.show_album);
- $("#g-organize-album-tree .ui-icon-plus,#g-organize-album-tree .ui-icon-minus").click($.organize.toggle_branch);
- },
-
- toggle_branch: function(event) {
- event.preventDefault();
- var target = $(event.currentTarget);
- var branch = $(target).parent();
- var id = $(event.currentTarget).parent().attr("ref");
-
- if ($(target).hasClass("ui-icon-plus")) {
- // Expanding
- if (!branch.find("ul").length) {
- $.get(tree_url.replace("__ALBUM_ID__", id), { }, function(data) {
- branch.replaceWith(data);
- $.organize.set_handlers();
- });
- } else {
- branch.find("ul:eq(0)").slideDown();
- }
- } else {
- // Contracting
- branch.find("ul:eq(0)").slideUp();
- }
- $(target).toggleClass("ui-icon-plus");
- $(target).toggleClass("ui-icon-minus");
- },
-
- /**
- * When the text of a selection is clicked, then show that albums contents
- */
- show_album: function(event) {
- event.preventDefault();
- if ($(event.currentTarget).hasClass("ui-state-focus")) {
- return;
- }
- var parent = $(event.currentTarget).parents(".g-organize-album");
- if ($(parent).hasClass("g-view-only")) {
- return;
- }
- $("#g-organize-microthumb-grid").selectable("destroy");
- var id = $(event.currentTarget).attr("ref");
- $(".g-organize-album-text.ui-state-focus").removeClass("ui-state-focus");
- $(".g-organize-album-text[ref=" + id + "]").addClass("ui-state-focus");
- var url = $("#g-organize-microthumb-grid").attr("ref").replace("__ITEM_ID__", id).replace("__OFFSET__", 0);
- $.get(url, {},
- function(data) {
- $("#g-organize-microthumb-grid").html(data.grid);
- $("#g-organize-sort-column").attr("value", data.sort_column);
- $("#g-organize-sort-order").attr("value", data.sort_order);
- $.organize.set_handlers();
- },
- "json");
- },
-
- /**
- * Change the sort order.
- */
- resort: function(column, dir) {
- var url = sort_order_url
- .replace("__ALBUM_ID__", $("#g-organize-album-tree .ui-state-focus").attr("ref"))
- .replace("__COL__", column)
- .replace("__DIR__", dir);
- $.get(url, {},
- function(data) {
- $("#g-organize-microthumb-grid").html(data.grid);
- $("#g-organize-sort-column").attr("value", data.sort_column);
- $("#g-organize-sort-order").attr("value", data.sort_order);
- $.organize.set_handlers();
- },
- "json");
- }
- };
-})(jQuery);