diff --git a/modules/organize/css/organize.css b/modules/organize/css/organize.css index c6c052bc..a1dc062a 100644 --- a/modules/organize/css/organize.css +++ b/modules/organize/css/organize.css @@ -1,62 +1,18 @@ /* @todo move to theme css */ -#gOrganizeTreeContainer, -#gMicroThumbContainer { +/******************************************************************* + * Album Tree styling + */ +#gOrganizeTreeContainer { overflow-y: auto; margin: 0 !important; padding: 0 !important; } -#gMicroThumbContainer { - background-color: #cfdeff; - border: 1px solid #999 !important; - border-top: none !important; - border-left: none !important; - margin-left: -1em !important; -} - -#gMicroThumbGrid li div div { - float: left; -} - -#gMicroThumbContainer #gMicroThumbGrid { - margin: 0; -} - -#gMicroThumbContainer #gMicroThumbGrid .gMicroThumb { - background-color: #fff; - border: 2px solid #e8e8e8; - border-right-color: #ccc; - border-bottom-color: #ccc; - float: left; - font-size: .7em; - height: 9em; - margin-left: .5em; - margin-top: .5em; - opacity: .4; - overflow: hidden; - padding: .5em; - text-align: center; - width: 9em; -} - #gOrganizeAlbumDescription { height: 2em; overflow-y: auto; } -#gMicroThumbContainer #gMicroThumbGrid .gAlbum { - background-color: #e8e8e8; -} - -#gMicroThumbContainer #gMicroThumbGrid :hover { - opacity: 1; -} - -#gMicroThumbContainer #gMicroThumbGrid .gThumbSelected { - border: 0.2em solid #09f; - opacity: 1; -} - .gBranchSelected { background-color: #cfdeff !important; border-bottom: 1px solid #999 !important; @@ -80,6 +36,80 @@ padding-left: 1.2em; } +/******************************************************************* + * Album Panel Styles + */ +#gMicroThumbPanel { + margin: 0 !important; + padding: 0 !important; + background-color: #cfdeff; + border: 1px solid #999 !important; + border-top: none !important; + border-left: none !important; + margin-left: -1em !important; + overflow: auto; +} + +#gMicroThumbGrid { + padding: .5em; +} + +.gMicroThumbContainer { + display: block; + //border: 2px solid #e8e8e8; + //border-right-color: #ccc; + //border-bottom-color: #ccc; + float: left; + font-size: .7em; + height: 9em; + margin-bottom: 1em; + opacity: .4; + padding: 0 .5em; +} + +.gMicroThumb { + height: 9em; + width: 9em; + background-color: #fff; + display: block; + float: left; + text-align: center; +} + +#gMicroThumbPanel #gMicroThumbGrid .gAlbum { + background-color: #e8e8e8; +} + +#gMicroThumbPanel #gMicroThumbGrid :hover { + opacity: 1; +} + +.gMicroThumbContainer.ui-selected { + opacity: 1; +} + +#gDragHelper .gMicroThumbGrid { + background-color: transparent; + padding: 0; + overflow: visible; +} + +#gDragHelper .gMicroThumbContainer { + display: block; + margin: 0; + padding: 0; +} + +#gDragHelper .gMicroThumb { + background-color: transparent; + height: auto; + width: auto; +} + + +/**************************************************************** + * Organize Edit styling + */ #gOrganizeFormButtons { bottom: 0.5em; position: absolute; @@ -102,21 +132,3 @@ margin: 0; text-align: center; } - -#gMicroThumbUnselectAll, -#gMicroThumbSelectAll { - font-size: 1.2em; - font-weight: bold; -} - -.gOrganizeReorderDropTarget { - visibility: hidden; - background-color: #5C9CCC; - float: none; - width: .5em; - height: 9em; -} - -.gOrganizeReorderDropTargetHover { - visibility: visible; -} diff --git a/modules/organize/js/organize.js b/modules/organize/js/organize.js index c40a2d67..045603a4 100644 --- a/modules/organize/js/organize.js +++ b/modules/organize/js/organize.js @@ -4,9 +4,77 @@ var url; var height; +function organize_dialog_init() { + var size = viewport_size(); + height = size.height() - 100; + var width = size.width() - 100; + + // Deal with ui.jquery bug: http://dev.jqueryui.com/ticket/4475 + $(".sf-menu li.sfHover ul").css("z-index", 70); + + $("#gDialog").dialog("option", "width", width); + $("#gDialog").dialog("option", "height", height); + + $("#gDialog").dialog("open"); + if ($("#gDialog h1").length) { + $("#gDialog").dialog('option', 'title', $("#gDialog h1:eq(0)").html()); + } else if ($("#gDialog fieldset legend").length) { + $("#gDialog").dialog('option', 'title', $("#gDialog fieldset legend:eq(0)").html()); + } + + height -= 2 * parseFloat($("#gDialog").css("padding-top")); + height -= 2 * parseFloat($("#gDialog").css("padding-bottom")); + height -= $("#gMicroThumbPanel").position().top; + height -= $("#gDialog #ft").height(); + height = Math.round(height); + + $("#gMicroThumbPanel").height(height); + $("#gOrganizeTreeContainer").height(height); + + $(".gOrganizeBranch .ui-icon").click(organize_toggle_children); + $(".gBranchText").click(organize_open_folder); + retrieve_micro_thumbs(item_id); + //showLoading("#gDialog"); + + $("#gMicroThumbPanel").scroll(function() { + get_more_data(); + }); + + $("#gMicroThumbSelectAll").click(function(event) { + select_all(true); + event.preventDefault(); + }); + $("#gMicroThumbUnselectAll").click(function(event) { + select_all(false); + event.preventDefault(); + }); + + $("#gMicroThumbGrid").selectable({ + count: 0, + filter: ".gMicroThumbContainer", + selected: function(event, ui) { + /* + * Count the number of selected items if it is greater than 1, + * then click won't be called so we need to remove the gSelecting + * class in the stop event. + */ + var count = $("#gMicroThumbGrid").selectable("option", "count") + 1; + $("#gMicroThumbGrid").selectable("option", "count", count); + $(ui.selected).addClass("gSelecting"); + }, + stop: function(event) { + var count = $("#gMicroThumbGrid").selectable("option", "count"); + if (count > 1) { + $(".gMicroThumbContainer.gSelecting").removeClass("gSelecting"); + } + $("#gMicroThumbGrid").selectable("option", "count", 0); + } + }); +} + function get_album_content() { - var grid_width = $("#gMicroThumbContainer").width(); - url = $("#gMicroThumbContainer").attr("ref"); + var grid_width = $("#.gMicroThumbPanel").width(); + url = $("#gMicroThumbPanel").attr("ref"); url = url.replace("__WIDTH__", grid_width); url = url.replace("__HEIGHT__", height); @@ -16,8 +84,8 @@ function get_album_content() { function retrieve_micro_thumbs() { var offset = $("#gMicroThumbGrid li").length; if (url == null) { - var grid_width = $("#gMicroThumbContainer").width(); - url = $("#gMicroThumbContainer").attr("ref"); + var grid_width = $("#gMicroThumbPanel").width(); + url = $("#gMicroThumbPanel").attr("ref"); url = url.replace("__WIDTH__", grid_width); url = url.replace("__HEIGHT__", height); } @@ -26,39 +94,92 @@ function retrieve_micro_thumbs() { $.get(url_data, function(data) { $("#gMicroThumbGrid").append(data); get_more_data(); + $(".gMicroThumbContainer").click(function(event) { + if ($(this).hasClass("gSelecting")) { + $(this).removeClass("gSelecting"); + } else { + $(this).removeClass("ui-selected"); + } + }); + $(".gMicroThumbContainer").draggable({ + cancel: ".gMicroThumbContainer:not(.ui-selected)", + handle: ".gMicroThumbContainer.ui-selected", + zindex: 2000, + helper: function(event, ui) { + $("body").append("