From aa4ed454737d45bf8140fd84f2eea2e04ed4a7d6 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Wed, 3 Feb 2010 09:43:22 -0800 Subject: Differentiate between selected and non selected items. --- modules/organize/css/organize.css | 12 +++--------- modules/organize/views/organize_thumb_grid.html.php | 8 ++++---- 2 files changed, 7 insertions(+), 13 deletions(-) (limited to 'modules/organize') diff --git a/modules/organize/css/organize.css b/modules/organize/css/organize.css index d8923ea7..bc8e5b0c 100644 --- a/modules/organize/css/organize.css +++ b/modules/organize/css/organize.css @@ -87,16 +87,10 @@ } .g-organize-microthumb-grid-cell { - margin: 6px; - padding: 0 !important; - position: relative; -} - -.g-organize-microthumb { display: block; height: 100px; - margin: 0; - padding: .4em 0; + margin: 6px; + padding: .4em 0 !important; position: relative; text-align: center; width: 110px; @@ -106,7 +100,7 @@ z-index: 2000 !important; } -.g-organize-microthumb .ui-icon { +.g-organize-microthumb-grid-cell .ui-icon { bottom: 0; left: 0; position: absolute; diff --git a/modules/organize/views/organize_thumb_grid.html.php b/modules/organize/views/organize_thumb_grid.html.php index 9a9cd819..f29680f7 100644 --- a/modules/organize/views/organize_thumb_grid.html.php +++ b/modules/organize/views/organize_thumb_grid.html.php @@ -1,11 +1,11 @@ children(25, $offset) as $child): ?> -
  • -
    ui-state-active"> +
  • + thumb_img(array("class" => "g-thumbnail", "ref" => $child->id), 90, true) ?> is_album() ? " class=\"ui-icon ui-icon-note\"" : "" ?>> - +
  • -- cgit v1.2.3 From 95b26db82c3f835f66cdb32aef13aa84a6a206e5 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Wed, 3 Feb 2010 13:56:04 -0800 Subject: 1) Simplify the layout of the organize dialog content. 2) Use CSS to layout the thmbnail grid to the full dialog size. Fixes ticker #848. 3) Separate css that can be themed into organize_theme.css. This isolates the themed components into a separate file for easy of overriding by a theme. --- modules/organize/css/organize.css | 47 ++++++++++++---------- modules/organize/css/organize_theme.css | 10 +++++ modules/organize/helpers/organize_theme.php | 1 + modules/organize/js/organize.js | 30 +++++++------- modules/organize/views/organize_dialog.html.php | 10 ++--- .../organize/views/organize_thumb_grid.html.php | 12 +++--- 6 files changed, 60 insertions(+), 50 deletions(-) create mode 100644 modules/organize/css/organize_theme.css (limited to 'modules/organize') diff --git a/modules/organize/css/organize.css b/modules/organize/css/organize.css index bc8e5b0c..ef1f856b 100644 --- a/modules/organize/css/organize.css +++ b/modules/organize/css/organize.css @@ -3,18 +3,18 @@ */ #g-organize { - height: auto; margin: 0 !important; + min-height: auto; padding: 0 !important; position: relative; width: 100%; } #g-organize-content-pane { - height: auto; + height: 100%; margin: 0 !important; padding: 0 !important; - position: relative; + position: absolute; width: 100%; } @@ -23,11 +23,15 @@ */ #g-organize #g-organize-tree-container { - height: 100%; - overflow: auto; margin: 0; + min-height: 100%; padding: 0; - width: 19%; + position: relative; + width: 20%; +} + +#g-organize #g-organize-tree-container h3 { + margin-bottom: 0.1em; } #g-organize-album-tree { @@ -54,10 +58,10 @@ */ #g-organize #g-organize-detail { - height: 100%; margin: 0 !important; - overflow: hidden; + min-height: 100%; padding: 0 !important; + position: relative; width: 80%; } @@ -71,21 +75,17 @@ width: inherit; } -#g-organize-microthumb-panel { - height: 100%; - margin: 0 !important; - position: relative; - padding: 0 !important; - width: 100%; -} - #g-organize-microthumb-grid { - height: 100%; - overflow: auto; + bottom: 1.8em; + left: 0; + margin: 0 !important; + overflow-x: hidden; + overflow-y: auto; padding: .4em !important; - position: relative; + position: absolute; + right: 0; + top: 1.6em; } - .g-organize-microthumb-grid-cell { display: block; height: 100px; @@ -112,8 +112,13 @@ */ #g-organize-controls { + bottom: 0; + height: 1.9em; + left: 0; margin: 0 !important; - padding: .2em .4em; + padding: .1em .4em; + position: absolute; + right: 0; } #g-organize-controls select { diff --git a/modules/organize/css/organize_theme.css b/modules/organize/css/organize_theme.css new file mode 100644 index 00000000..727dca97 --- /dev/null +++ b/modules/organize/css/organize_theme.css @@ -0,0 +1,10 @@ +/** ******************************************************************* + * Organize styles that are theme overrideable + *********************************************************************/ +.g-organize-microthumb-grid-cell.ui-selected { + background: #DFEFFC !important; +} + +#g-organize-microthumb-grid { + border: 1px solid #79B7E7; +} diff --git a/modules/organize/helpers/organize_theme.php b/modules/organize/helpers/organize_theme.php index 61b6fe7d..c2914675 100644 --- a/modules/organize/helpers/organize_theme.php +++ b/modules/organize/helpers/organize_theme.php @@ -27,6 +27,7 @@ class organize_theme { // approach that lets us continue to use the Kohana cascading filesystem. $theme->script("organize.js"); $theme->css("organize.css"); + $theme->css("organize_theme.css"); } } } diff --git a/modules/organize/js/organize.js b/modules/organize/js/organize.js index 76eadf85..a89305f6 100644 --- a/modules/organize/js/organize.js +++ b/modules/organize/js/organize.js @@ -4,15 +4,15 @@ handle: ".ui-selected", distance: 10, cursorAt: { left: -10, top: -10}, - appendTo: "#g-organize-microthumb-panel", + appendTo: "#g-organize", helper: function(event, ui) { var selected = $(".ui-draggable.ui-selected img"); if (selected.length) { var set = $('
    ') .css({ - zIndex: 2000, - width: 80, - height: Math.ceil(selected.length / 5) * 16 + zIndex: 2000, + width: 80, + height: Math.ceil(selected.length / 5) * 16 }); var offset = $(this).offset(); var click = {left: event.pageX - offset.left, top: event.pageY - offset.top}; @@ -37,16 +37,16 @@ }, start: function(event, ui) { - $("#g-organize-microthumb-panel .ui-selected").hide(); + $("#g-organize-microthumb-grid .ui-selected").hide(); }, drag: function(event, ui) { - var top = $("#g-organize-microthumb-panel").offset().top; - var height = $("#g-organize-microthumb-panel").height(); + var top = $("#g-organize-microthumb-grid").offset().top; + var height = $("#g-organize-microthumb-grid").height(); if (ui.offset.top > height + top - 20) { - $("#g-organize-microthumb-panel").get(0).scrollTop += 100; + $("#g-organize-microthumb-grid").get(0).scrollTop += 100; } else if (ui.offset.top < top + 20) { - $("#g-organize-microthumb-panel").get(0).scrollTop = Math.max(0, $("#g-organize-microthumb-panel").get(0).scrollTop - 100); + $("#g-organize-microthumb-grid").get(0).scrollTop = Math.max(0, $("#g-organize-microthumb-grid").get(0).scrollTop - 100); } } }, @@ -63,7 +63,7 @@ target_id = $(".currentDropTarget").attr("ref"); } else { before_or_after = "after"; - target_id = $("#g-organize-microthumb-grid li:last").attr("ref"); + target_id = $("#g-organize-microthumb-grid div:last").attr("ref"); } $.organize.do_drop({ url: rearrange_url @@ -92,7 +92,7 @@ }, do_drop: function(options) { - $("#g-organize-microthumb-panel").selectable("destroy"); + $("#g-organize-microthumb-grid").selectable("destroy"); var source_ids = []; $(options.source).each(function(i) { source_ids.push($(this).attr("ref")); @@ -102,7 +102,7 @@ $.post(options.url, { "source_ids[]": source_ids }, function(data) { - $.organize._refresh(data); + $.organize._refresh(data); }, "json"); } @@ -141,8 +141,6 @@ $("#g-dialog").dialog("option", "zIndex", 70); $("#g-dialog").bind("dialogopen", function(event, ui) { $("#g-organize").height($("#g-dialog").innerHeight() - 20); - $("#g-organize-microthumb-grid").height($("#g-dialog").innerHeight() - 91); - $("#g-organize-tree-container").height($("#g-dialog").innerHeight() - 60); }); $("#g-dialog").bind("dialogclose", function(event, ui) { @@ -210,11 +208,11 @@ if ($(parent).hasClass("g-view-only")) { return; } - $("#g-organize-microthumb-panel").selectable("destroy"); + $("#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-panel").attr("ref").replace("__ITEM_ID__", id).replace("__OFFSET__", 0); + 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); diff --git a/modules/organize/views/organize_dialog.html.php b/modules/organize/views/organize_dialog.html.php index 435f5ae3..3d824886 100644 --- a/modules/organize/views/organize_dialog.html.php +++ b/modules/organize/views/organize_dialog.html.php @@ -15,14 +15,12 @@
    -
    +
  • + +
    "> -
      -
    • -
    -
      -
    children(25, $offset) as $child): ?> -
  • - - thumb_img(array("class" => "g-thumbnail", "ref" => $child->id), 90, true) ?> - is_album() ? " class=\"ui-icon ui-icon-note\"" : "" ?>> - -
  • +
    " + ref="id ?>"> + thumb_img(array("class" => "g-thumbnail", "ref" => $child->id), 90, true) ?> + is_album() ? " class=\"ui-icon ui-icon-note\"" : "" ?>> +
    children_count() > $offset): ?> -- cgit v1.2.3 From 48efd21556dbc4f9f4046f9d2f685726b1c006ff Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Wed, 3 Feb 2010 22:48:47 -0800 Subject: Provide visual feedback when over tree branches. --- modules/organize/css/organize.css | 7 +++++++ modules/organize/css/organize_theme.css | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'modules/organize') diff --git a/modules/organize/css/organize.css b/modules/organize/css/organize.css index ef1f856b..686ec034 100644 --- a/modules/organize/css/organize.css +++ b/modules/organize/css/organize.css @@ -53,6 +53,11 @@ width: auto; } +.g-organize-album-text:hover { + border-width: 1px; + border-style: dotted; +} + /******************************************************************* * Album panel styles */ @@ -76,6 +81,8 @@ } #g-organize-microthumb-grid { + border-width: 1px; + border-style: solid; bottom: 1.8em; left: 0; margin: 0 !important; diff --git a/modules/organize/css/organize_theme.css b/modules/organize/css/organize_theme.css index 727dca97..4248f095 100644 --- a/modules/organize/css/organize_theme.css +++ b/modules/organize/css/organize_theme.css @@ -5,6 +5,7 @@ background: #DFEFFC !important; } -#g-organize-microthumb-grid { - border: 1px solid #79B7E7; +#g-organize-microthumb-grid, +.g-organize-album-text:hover { + border-color: #79B7E7; } -- cgit v1.2.3 From c82061391717a746fb61696ff48152b1e907b49c Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Thu, 4 Feb 2010 08:19:38 -0800 Subject: Don't change the current album when items are dragged to a different album in the album tree. Fixes ticket #959. --- modules/organize/controllers/organize.php | 8 ++++++-- modules/organize/views/organize_tree.html.php | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) (limited to 'modules/organize') diff --git a/modules/organize/controllers/organize.php b/modules/organize/controllers/organize.php index 4a4b9f13..8e2c0cee 100644 --- a/modules/organize/controllers/organize.php +++ b/modules/organize/controllers/organize.php @@ -48,8 +48,12 @@ class Organize_Controller extends Controller { access::required("view", $target_album); access::required("add", $target_album); + $source_album = null; foreach (Input::instance()->post("source_ids") as $source_id) { $source = ORM::factory("item", $source_id); + if (empty($source_album)) { // get the source_album + $source_album = $source->parent(); + } if (!$source->contains($target_album)) { access::required("edit", $source); item::move($source, $target_album); @@ -57,8 +61,8 @@ class Organize_Controller extends Controller { } print json_encode( - array("tree" => (string)self::_expanded_tree(ORM::factory("item", 1), $target_album), - "grid" => (string)self::_get_micro_thumb_grid($target_album, 0))); + array("tree" => (string)self::_expanded_tree(ORM::factory("item", 1), $source_album), + "grid" => (string)self::_get_micro_thumb_grid($source_album, 0))); } function rearrange($target_id, $before_or_after) { diff --git a/modules/organize/views/organize_tree.html.php b/modules/organize/views/organize_tree.html.php index 513c0625..49ed01fc 100644 --- a/modules/organize/views/organize_tree.html.php +++ b/modules/organize/views/organize_tree.html.php @@ -15,7 +15,7 @@
  • " ref="id ?>"> - + " ref="id ?>"> title) ?>
  • -- cgit v1.2.3 From 3d2a3bee572b8ccddf08982c5596b35a0e983b85 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Thu, 4 Feb 2010 08:42:55 -0800 Subject: Provide better formating for the album tree in rtl mode. --- modules/organize/css/organize.css | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'modules/organize') diff --git a/modules/organize/css/organize.css b/modules/organize/css/organize.css index 686ec034..a561a134 100644 --- a/modules/organize/css/organize.css +++ b/modules/organize/css/organize.css @@ -42,6 +42,10 @@ padding: 0 0 .2em 1.2em; } +.rtl #g-organize-album-tree ul li { + padding: 0 1.2em .2em 0; +} + .g-organize-album span { cursor: pointer; } @@ -53,6 +57,13 @@ width: auto; } +.rtl .g-organize-album-text { + cursor: pointer; + display: block; + margin: 2px 2px 1px 1px; + width: auto; +} + .g-organize-album-text:hover { border-width: 1px; border-style: dotted; -- cgit v1.2.3 From eff7de3852c1a11ee82fdb7467a6e51fa106af0f Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Thu, 4 Feb 2010 08:51:15 -0800 Subject: If the locale is rtl then change 'after' to 'before' or vice-versa. Fixes ticket #939. --- modules/organize/controllers/organize.php | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'modules/organize') diff --git a/modules/organize/controllers/organize.php b/modules/organize/controllers/organize.php index 8e2c0cee..38e8ca58 100644 --- a/modules/organize/controllers/organize.php +++ b/modules/organize/controllers/organize.php @@ -73,6 +73,10 @@ class Organize_Controller extends Controller { access::required("view", $album); access::required("edit", $album); + if (locales::is_rtl()) { // invert the position if the locale is rtl + $before_or_after = $before_or_after == "after" ? "before" : "after"; + } + $source_ids = Input::instance()->post("source_ids", array()); if ($album->sort_column != "weight") { -- cgit v1.2.3 From a8d30dcecf40210096a4adaea0f5d231b69ead6a Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Fri, 5 Feb 2010 08:08:12 -0800 Subject: Improve the handling of the drop target marker when dragging items within the grid. Originally the borders disappeared not they don't. A single element is used to contain the drop target marker. This element contains all the position information for the drop handler to determine where the item should be positioned. In addition, the drop target marker is removed when the drag extends outside the grid and is re shown, when the cursor re-enters the thumbnail grid. --- modules/organize/css/organize_theme.css | 5 ++ modules/organize/js/organize.js | 100 +++++++++++++++++++++++--------- 2 files changed, 77 insertions(+), 28 deletions(-) (limited to 'modules/organize') diff --git a/modules/organize/css/organize_theme.css b/modules/organize/css/organize_theme.css index 4248f095..3d289755 100644 --- a/modules/organize/css/organize_theme.css +++ b/modules/organize/css/organize_theme.css @@ -6,6 +6,11 @@ } #g-organize-microthumb-grid, +#g-organize-drop-target-marker, .g-organize-album-text:hover { border-color: #79B7E7; } + +#g-organize-drop-target-marker { + background-color: #79B7E7; +} diff --git a/modules/organize/js/organize.js b/modules/organize/js/organize.js index a89305f6..56377ce3 100644 --- a/modules/organize/js/organize.js +++ b/modules/organize/js/organize.js @@ -56,19 +56,11 @@ tolerance: "pointer", greedy: true, drop: function(event, ui) { - var before_or_after = null; - var target_id = null; - if ($(".currentDropTarget").length) { - before_or_after = $(".currentDropTarget").css("borderLeftStyle") == "solid" ? "before" : "after"; - target_id = $(".currentDropTarget").attr("ref"); - } else { - before_or_after = "after"; - target_id = $("#g-organize-microthumb-grid div:last").attr("ref"); - } + var target = $("#g-organize-drop-target-marker").data("drop_position"); $.organize.do_drop({ url: rearrange_url - .replace("__TARGET_ID__", target_id) - .replace("__BEFORE__", before_or_after), + .replace("__TARGET_ID__", target.id) + .replace("__BEFORE__", target.before ? "before" : "after"), source: $(ui.helper).children("img") }); } @@ -120,14 +112,58 @@ $.organize.set_handlers(); }, - mouse_move_handler: function(event) { + 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) { if ($(".g-drag-helper").length) { - $(".g-organize-microthumb-grid-cell").css({borderStyle: "hidden", margin: "6px"}); - $(".currentDropTarget").removeClass("currentDropTarget"); - var borderStyle = event.pageX < $(this).offset().left + $(this).width() / 2 ? - {borderLeftStyle: "solid", marginLeft: "2px"} : {borderRightStyle: "solid", marginRight: "2px"}; - $(this).addClass("currentDropTarget") - .css(borderStyle); + var cellSize = $("#g-organize").data("cellSize"); + var thumbnailCount = $(".g-organize-microthumb-grid-cell:visible").length; + var rows = Math.ceil(thumbnailCount / cellSize.columns); + + + var itemPos = { + col: Math.floor((event.pageX - $(this).offset().left) / cellSize.width), + row: Math.floor((event.pageY - $(this).offset().top) / cellSize.height) + }; + var itemIndex = itemPos.row * cellSize.columns + itemPos.col; + + var item; + if (itemIndex < thumbnailCount) { + item = $(".g-organize-microthumb-grid-cell:visible").get(itemIndex); + } else { + item = $(".g-organize-microthumb-grid-cell:visible:last"); + } + + var old_position = {top: 0, left: 0}; + if ($("#g-organize-drop-target-marker").length) { + old_position = $("#g-organize-drop-target-marker").position(); + } + var before = event.pageX < ($(item).offset().left + $(item).width() / 2); + + var left = (before && itemIndex < thumbnailCount ? $(item).position().left : $(item).position().left + cellSize.width) - 3; + var top = $(item).position().top + 6; + + if (old_position.top != top || old_position.left != left) { + if ($("#g-organize-drop-target-marker").length) { + $("#g-organize-drop-target-marker").remove(); + } + var set = $('
    ') + .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: before}); + $("#g-organize-microthumb-grid").append(set); + } } }, @@ -140,7 +176,15 @@ $(".sf-menu li.sfHover ul").css("z-index", 68); $("#g-dialog").dialog("option", "zIndex", 70); $("#g-dialog").bind("dialogopen", function(event, ui) { - $("#g-organize").height($("#g-dialog").innerHeight() - 20); + var outerHeight = $(".g-organize-microthumb-grid-cell").outerHeight(true); + var outerWidth = $(".g-organize-microthumb-grid-cell").outerWidth(true); + $("#g-organize") + .height($("#g-dialog").innerHeight() - 20) + .data("cellSize", { + height: outerHeight, + width: outerWidth, + columns: Math.floor($("#g-organize-microthumb-grid").innerWidth() / outerWidth) + }); }); $("#g-dialog").bind("dialogclose", function(event, ui) { @@ -162,11 +206,11 @@ 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") - .draggable($.organize.micro_thumb_draggable) - .mouseleave($.organize.mouse_leave_handler) - .mousemove($.organize.mouse_move_handler); + .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); @@ -214,12 +258,12 @@ $(".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(); - }, + 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"); }, -- cgit v1.2.3 From 8518fb267404c16fff54492b3e37fb03c64f0455 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Fri, 5 Feb 2010 08:53:38 -0800 Subject: Add busy animation when doing the drop. --- modules/organize/js/organize.js | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'modules/organize') diff --git a/modules/organize/js/organize.js b/modules/organize/js/organize.js index 56377ce3..9b9b6495 100644 --- a/modules/organize/js/organize.js +++ b/modules/organize/js/organize.js @@ -91,12 +91,24 @@ }); if (source_ids.length) { + var loading = $('
     
    ') + .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); - }, - "json"); + { "source_ids[]": source_ids }, + function(data) { + $.organize._refresh(data); + $(".g-dialog-loading-large").remove(); + }, + "json"); } }, -- cgit v1.2.3 From 94cc061e8b51704c6cb38d637aa3082ee4adb1ca Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Fri, 5 Feb 2010 10:25:55 -0800 Subject: Correct alignment in IE7. fixes ticket #795 --- modules/organize/css/organize.css | 8 +++++++- modules/organize/views/organize_dialog.html.php | 8 +++++--- modules/organize/views/organize_tree.html.php | 12 ++++++------ 3 files changed, 18 insertions(+), 10 deletions(-) (limited to 'modules/organize') diff --git a/modules/organize/css/organize.css b/modules/organize/css/organize.css index a561a134..22d6e051 100644 --- a/modules/organize/css/organize.css +++ b/modules/organize/css/organize.css @@ -88,7 +88,7 @@ #g-organize #g-organize-detail .g-message-block li { padding-bottom: .2em; padding-top: .2em; - width: inherit; + width: auto; } #g-organize-microthumb-grid { @@ -139,7 +139,13 @@ right: 0; } +#g-organize-controls #g-organize-sort-order-text { + padding: .2em 0 0 0; +} + + #g-organize-controls select { + margin-left: .42em; display: inline; } diff --git a/modules/organize/views/organize_dialog.html.php b/modules/organize/views/organize_dialog.html.php index 3d824886..e36264f9 100644 --- a/modules/organize/views/organize_dialog.html.php +++ b/modules/organize/views/organize_dialog.html.php @@ -26,9 +26,11 @@
    - - "g-organize-sort-column"), album::get_sort_order_options(), $album->sort_column) ?> - "g-organize-sort-order"), array("ASC" => "Ascending", "DESC" => "Descending"), $album->sort_order) ?> +
      +
    • +
    • + "g-organize-sort-column"), album::get_sort_order_options(), $album->sort_column) ?>
    • + "g-organize-sort-order"), array("ASC" => "Ascending", "DESC" => "Descending"), $album->sort_order) ?>
    diff --git a/modules/organize/views/organize_tree.html.php b/modules/organize/views/organize_tree.html.php index 49ed01fc..3912c1f6 100644 --- a/modules/organize/views/organize_tree.html.php +++ b/modules/organize/views/organize_tree.html.php @@ -1,9 +1,9 @@ -
  • " +
  • " ref="id ?>"> - + - " + " ref="id ?>"> title) ?> @@ -12,10 +12,10 @@ contains($selected)): ?> $selected, "album" => $child)); ?> -
  • " +
  • " ref="id ?>"> - - " ref="id ?>"> + + " ref="id ?>"> title) ?>
  • -- cgit v1.2.3 From bc14f33ae134dd9c93bf35ad90c91d84fdac587f Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Fri, 5 Feb 2010 11:15:28 -0800 Subject: Fix an issue where the dragged item was always inserted after the target image. --- modules/organize/js/organize.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'modules/organize') diff --git a/modules/organize/js/organize.js b/modules/organize/js/organize.js index 9b9b6495..f85e02b5 100644 --- a/modules/organize/js/organize.js +++ b/modules/organize/js/organize.js @@ -60,7 +60,7 @@ $.organize.do_drop({ url: rearrange_url .replace("__TARGET_ID__", target.id) - .replace("__BEFORE__", target.before ? "before" : "after"), + .replace("__BEFORE__", target.position ? "before" : "after"), source: $(ui.helper).children("img") }); } -- cgit v1.2.3 From 64c37aed0787ee01c89df382f9645f35a7e6ba14 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Fri, 5 Feb 2010 14:38:24 -0800 Subject: continuing cleaninup organize javascript especially the drag and drop functionality. --- modules/organize/js/organize.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'modules/organize') diff --git a/modules/organize/js/organize.js b/modules/organize/js/organize.js index 9b9b6495..6f581208 100644 --- a/modules/organize/js/organize.js +++ b/modules/organize/js/organize.js @@ -4,7 +4,7 @@ handle: ".ui-selected", distance: 10, cursorAt: { left: -10, top: -10}, - appendTo: "#g-organize", + appendTo: "#g-organize-content-pane", helper: function(event, ui) { var selected = $(".ui-draggable.ui-selected img"); if (selected.length) { @@ -14,8 +14,6 @@ width: 80, height: Math.ceil(selected.length / 5) * 16 }); - var offset = $(this).offset(); - var click = {left: event.pageX - offset.left, top: event.pageY - offset.top}; selected.each(function(i) { var row = parseInt(i / 5); @@ -43,11 +41,13 @@ 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) { - $("#g-organize-microthumb-grid").get(0).scrollTop += 100; + scrollTop += 100; } else if (ui.offset.top < top + 20) { - $("#g-organize-microthumb-grid").get(0).scrollTop = Math.max(0, $("#g-organize-microthumb-grid").get(0).scrollTop - 100); + scrollTop = Math.max(0, scrollTop - 100); } + $("#g-organize-microthumb-grid").scrollTop(scrollTop); } }, -- cgit v1.2.3 From 73527fba611d7d441c6fd2e988510cb0c4e46f99 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Fri, 5 Feb 2010 23:38:06 -0800 Subject: 1) Manually added the .selectee class on subsequent downloads. fixes ticket #970 2) Reworked the calculated of the drop target marker to account for scrolling. --- modules/organize/js/organize.js | 64 +++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 37 deletions(-) (limited to 'modules/organize') diff --git a/modules/organize/js/organize.js b/modules/organize/js/organize.js index fd8a0fff..276fc3fa 100644 --- a/modules/organize/js/organize.js +++ b/modules/organize/js/organize.js @@ -59,8 +59,8 @@ var target = $("#g-organize-drop-target-marker").data("drop_position"); $.organize.do_drop({ url: rearrange_url - .replace("__TARGET_ID__", target.id) - .replace("__BEFORE__", target.position ? "before" : "after"), + .replace("__TARGET_ID__", target.id) + .replace("__BEFORE__", target.position ? "before" : "after"), source: $(ui.helper).children("img") }); } @@ -72,8 +72,8 @@ greedy: true, drop: function(event, ui) { if ($(event.target).hasClass("g-view-only")) { + $("#g-organize-drop-target-marker").remove(); $(".ui-selected").show(); - $(".g-organize-microthumb-grid-cell").css("borderStyle", "none"); } else { $.organize.do_drop({ url: move_url.replace("__ALBUM_ID__", $(event.target).attr("ref")), @@ -134,48 +134,35 @@ if ($(".g-drag-helper").length) { var cellSize = $("#g-organize").data("cellSize"); var thumbnailCount = $(".g-organize-microthumb-grid-cell:visible").length; - var rows = Math.ceil(thumbnailCount / cellSize.columns); - + var scrollTop = $("#g-organize-microthumb-grid").scrollTop(); var itemPos = { - col: Math.floor((event.pageX - $(this).offset().left) / cellSize.width), - row: Math.floor((event.pageY - $(this).offset().top) / cellSize.height) + col: Math.floor((event.pageX - $("#g-organize-microthumb-grid").offset().left) / cellSize.width), + row: Math.floor((event.pageY + scrollTop - $("#g-organize-microthumb-grid").offset().top) / cellSize.height) }; - var itemIndex = itemPos.row * cellSize.columns + itemPos.col; - var item; - if (itemIndex < thumbnailCount) { - item = $(".g-organize-microthumb-grid-cell:visible").get(itemIndex); - } else { - item = $(".g-organize-microthumb-grid-cell:visible:last"); - } + var itemIndex = itemPos.row * cellSize.columns + itemPos.col; + var item = itemIndex < thumbnailCount ? $(".g-organize-microthumb-grid-cell:visible").get(itemIndex) : + $(".g-organize-microthumb-grid-cell:visible:last"); - var old_position = {top: 0, left: 0}; - if ($("#g-organize-drop-target-marker").length) { - old_position = $("#g-organize-drop-target-marker").position(); - } var before = event.pageX < ($(item).offset().left + $(item).width() / 2); - var left = (before && itemIndex < thumbnailCount ? $(item).position().left : $(item).position().left + cellSize.width) - 3; - var top = $(item).position().top + 6; + var top = $(item).position().top + 6 + scrollTop; - if (old_position.top != top || old_position.left != left) { - if ($("#g-organize-drop-target-marker").length) { - $("#g-organize-drop-target-marker").remove(); - } - var set = $('
    ') - .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: before}); - $("#g-organize-microthumb-grid").append(set); + if ($("#g-organize-drop-target-marker").length) { + $("#g-organize-drop-target-marker").remove(); } + var set = $('
    ') + .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: before}); + $("#g-organize-microthumb-grid").append(set); } }, @@ -190,12 +177,13 @@ $("#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("cellSize", { height: outerHeight, width: outerWidth, - columns: Math.floor($("#g-organize-microthumb-grid").innerWidth() / outerWidth) + columns: Math.floor(gridInnerWidth / outerWidth) }); }); @@ -222,6 +210,8 @@ .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") .draggable($.organize.micro_thumb_draggable); $(".g-organize-album").droppable($.organize.branch_droppable); $(".g-organize-album-text").click($.organize.show_album); -- cgit v1.2.3 From 83f61ff5cf9c51c998dac9dad23d74ab7339ead5 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Sat, 6 Feb 2010 09:47:56 -0800 Subject: Insure that the 'Ascending'/'Descending' string are translated on the organize dialog. --- modules/organize/views/organize_dialog.html.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'modules/organize') diff --git a/modules/organize/views/organize_dialog.html.php b/modules/organize/views/organize_dialog.html.php index e36264f9..7a16f56c 100644 --- a/modules/organize/views/organize_dialog.html.php +++ b/modules/organize/views/organize_dialog.html.php @@ -30,7 +30,9 @@
  • "g-organize-sort-column"), album::get_sort_order_options(), $album->sort_column) ?>
  • - "g-organize-sort-order"), array("ASC" => "Ascending", "DESC" => "Descending"), $album->sort_order) ?>
  • + "g-organize-sort-order"), + array("ASC" => t("Ascending"), "DESC" => t("Descending")), + $album->sort_order) ?>
    -- cgit v1.2.3 From 15e22076552929bf1f45888945f65de621aa2aac Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Sat, 6 Feb 2010 10:12:53 -0800 Subject: correct layout of html for readability --- modules/organize/views/organize_dialog.html.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'modules/organize') diff --git a/modules/organize/views/organize_dialog.html.php b/modules/organize/views/organize_dialog.html.php index 7a16f56c..38d05b81 100644 --- a/modules/organize/views/organize_dialog.html.php +++ b/modules/organize/views/organize_dialog.html.php @@ -29,10 +29,14 @@
    • - "g-organize-sort-column"), album::get_sort_order_options(), $album->sort_column) ?>
    • - "g-organize-sort-order"), - array("ASC" => t("Ascending"), "DESC" => t("Descending")), - $album->sort_order) ?>
    + "g-organize-sort-column"), + album::get_sort_order_options(), $album->sort_column) ?> + +
  • + "g-organize-sort-order"), + array("ASC" => t("Ascending"), "DESC" => t("Descending")), $album->sort_order) ?> +
  • + -- cgit v1.2.3 From 0f9d23d074c81eafab05ce5d64909da624a86422 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Sat, 6 Feb 2010 10:34:57 -0800 Subject: Cleanup the position of the drop marker. --- modules/organize/js/organize.js | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) (limited to 'modules/organize') diff --git a/modules/organize/js/organize.js b/modules/organize/js/organize.js index 276fc3fa..2a18cb40 100644 --- a/modules/organize/js/organize.js +++ b/modules/organize/js/organize.js @@ -132,21 +132,19 @@ grid_mouse_move_handler: function(event) { if ($(".g-drag-helper").length) { - var cellSize = $("#g-organize").data("cellSize"); - var thumbnailCount = $(".g-organize-microthumb-grid-cell:visible").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 scrollTop = $("#g-organize-microthumb-grid").scrollTop(); - var itemPos = { - col: Math.floor((event.pageX - $("#g-organize-microthumb-grid").offset().left) / cellSize.width), - row: Math.floor((event.pageY + scrollTop - $("#g-organize-microthumb-grid").offset().top) / cellSize.height) - }; - - var itemIndex = itemPos.row * cellSize.columns + itemPos.col; - var item = itemIndex < thumbnailCount ? $(".g-organize-microthumb-grid-cell:visible").get(itemIndex) : - $(".g-organize-microthumb-grid-cell:visible:last"); + var itemColumn = Math.floor((event.pageX - thumbGrid.offset().left) / organizeData.width); + var itemRow = Math.floor((event.pageY + scrollTop - thumbGrid.offset().top) / organizeData.height); + var itemIndex = Math.min(itemRow * organizeData.columns + itemColumn, visibleCells.length - 1); + var item = visibleCells.get(itemIndex); var before = event.pageX < ($(item).offset().left + $(item).width() / 2); - var left = (before && itemIndex < thumbnailCount ? $(item).position().left : $(item).position().left + cellSize.width) - 3; + var left = (before && itemIndex < visibleCells.length ? + $(item).position().left : $(item).position().left + organizeData.width) - 3; var top = $(item).position().top + 6 + scrollTop; if ($("#g-organize-drop-target-marker").length) { @@ -162,7 +160,7 @@ top: top, left: left }) .data("drop_position", {id: $(item).attr("ref"), position: before}); - $("#g-organize-microthumb-grid").append(set); + thumbGrid.append(set); } }, @@ -180,7 +178,8 @@ var gridInnerWidth = $("#g-organize-microthumb-grid").innerWidth() - 2 * parseFloat($("#g-organize-microthumb-grid").css("paddingLeft")); $("#g-organize") .height($("#g-dialog").innerHeight() - 20) - .data("cellSize", { + .data("organizeData", { + leftright: !$("body").hasClass("rtl"), height: outerHeight, width: outerWidth, columns: Math.floor(gridInnerWidth / outerWidth) -- cgit v1.2.3 From 81b595743f75aea96a8159c8ab827fa3d25233ab Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Sat, 6 Feb 2010 16:30:25 -0800 Subject: Force each branch of a tree onto a new line. --- modules/organize/css/organize.css | 2 ++ 1 file changed, 2 insertions(+) (limited to 'modules/organize') diff --git a/modules/organize/css/organize.css b/modules/organize/css/organize.css index 22d6e051..87f9e55b 100644 --- a/modules/organize/css/organize.css +++ b/modules/organize/css/organize.css @@ -40,10 +40,12 @@ #g-organize-album-tree ul li { padding: 0 0 .2em 1.2em; + width: 100%; } .rtl #g-organize-album-tree ul li { padding: 0 1.2em .2em 0; + width: 100%; } .g-organize-album span { -- cgit v1.2.3 From 6340d8caf2261199e029841baca66e302c861679 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Sat, 6 Feb 2010 16:43:55 -0800 Subject: 100% was just to wide, so scale the width back to 90% for organize album tree branches. --- modules/organize/css/organize.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'modules/organize') diff --git a/modules/organize/css/organize.css b/modules/organize/css/organize.css index 87f9e55b..7a8c3a5f 100644 --- a/modules/organize/css/organize.css +++ b/modules/organize/css/organize.css @@ -40,12 +40,12 @@ #g-organize-album-tree ul li { padding: 0 0 .2em 1.2em; - width: 100%; + width: 90%; } .rtl #g-organize-album-tree ul li { padding: 0 1.2em .2em 0; - width: 100%; + width: 90%; } .g-organize-album span { -- cgit v1.2.3 From e2e637064aa3cd66ddd3636d85314a168f2c9c91 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Sun, 7 Feb 2010 14:25:05 -0800 Subject: The adjustment for before or after based on whether the locales rtl or not is now done in the browser. --- modules/organize/controllers/organize.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'modules/organize') diff --git a/modules/organize/controllers/organize.php b/modules/organize/controllers/organize.php index 38e8ca58..9d9da65e 100644 --- a/modules/organize/controllers/organize.php +++ b/modules/organize/controllers/organize.php @@ -73,9 +73,9 @@ class Organize_Controller extends Controller { access::required("view", $album); access::required("edit", $album); - if (locales::is_rtl()) { // invert the position if the locale is rtl - $before_or_after = $before_or_after == "after" ? "before" : "after"; - } + //if (locales::is_rtl()) { // invert the position if the locale is rtl + // $before_or_after = $before_or_after == "after" ? "before" : "after"; + //} $source_ids = Input::instance()->post("source_ids", array()); -- cgit v1.2.3 From d6beef86132f1c73170a3957db84b716c538c07e Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Sun, 7 Feb 2010 15:05:39 -0800 Subject: The drop target marker appears in the correct spot whether we are in ltr or rtl mode. --- modules/organize/js/organize.js | 56 ++++++++++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 18 deletions(-) (limited to 'modules/organize') diff --git a/modules/organize/js/organize.js b/modules/organize/js/organize.js index 2a18cb40..5fc0084c 100644 --- a/modules/organize/js/organize.js +++ b/modules/organize/js/organize.js @@ -56,6 +56,7 @@ 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"); $.organize.do_drop({ url: rearrange_url @@ -137,19 +138,25 @@ var visibleCells = $(".g-organize-microthumb-grid-cell:visible"); var scrollTop = thumbGrid.scrollTop(); - var itemColumn = Math.floor((event.pageX - thumbGrid.offset().left) / organizeData.width); - var itemRow = Math.floor((event.pageY + scrollTop - thumbGrid.offset().top) / organizeData.height); - var itemIndex = Math.min(itemRow * organizeData.columns + itemColumn, visibleCells.length - 1); - var item = visibleCells.get(itemIndex); + var item = $(".g-mouse-drag-over"); + if (item.length == 0) { + console.log("no item"); + + 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 = (before && itemIndex < visibleCells.length ? - $(item).position().left : $(item).position().left + organizeData.width) - 3; + 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 = $('
    ') .css({zIndex: 2000, width: 2, @@ -159,9 +166,11 @@ position: "absolute", top: top, left: left }) - .data("drop_position", {id: $(item).attr("ref"), position: before}); + .data("drop_position", {id: $(item).attr("ref"), + position: organizeData.rtl ? !before : before}); thumbGrid.append(set); } + return true; }, /** @@ -173,17 +182,17 @@ $(".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", { - leftright: !$("body").hasClass("rtl"), - height: outerHeight, - width: outerWidth, - columns: Math.floor(gridInnerWidth / outerWidth) - }); + 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) { @@ -211,6 +220,17 @@ $(".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); -- cgit v1.2.3 From 2337fa93e6f5da3dd89454235d76a61b9181f0ab Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Sun, 7 Feb 2010 15:13:13 -0800 Subject: remove debudding statement and if no target is found then assume the insert position is after the last element. --- modules/organize/js/organize.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'modules/organize') diff --git a/modules/organize/js/organize.js b/modules/organize/js/organize.js index 5fc0084c..942e49e5 100644 --- a/modules/organize/js/organize.js +++ b/modules/organize/js/organize.js @@ -58,6 +58,12 @@ 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) @@ -140,8 +146,6 @@ var item = $(".g-mouse-drag-over"); if (item.length == 0) { - console.log("no item"); - 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); -- cgit v1.2.3 From 47293fcb03d51e5b4691e9905019c1ff1732b0f4 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Mon, 8 Feb 2010 09:15:02 -0800 Subject: Correct tree branch alignment in IE --- modules/organize/views/organize_tree.html.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'modules/organize') diff --git a/modules/organize/views/organize_tree.html.php b/modules/organize/views/organize_tree.html.php index 3912c1f6..33d7b4c9 100644 --- a/modules/organize/views/organize_tree.html.php +++ b/modules/organize/views/organize_tree.html.php @@ -1,5 +1,5 @@ -
  • " +
  • " ref="id ?>"> @@ -7,12 +7,12 @@ ref="id ?>"> title) ?> -
      +
        children(null, null, array(array("type", "=", "album"))) as $child): ?> contains($selected)): ?> $selected, "album" => $child)); ?> -
      • " +
      • " ref="id ?>"> " ref="id ?>"> -- cgit v1.2.3 From afdb98412e5611894ca96659e1db452d9e7330c2 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Mon, 8 Feb 2010 11:26:40 -0800 Subject: Fix the missing object problem in ie7. Fixes ticket: 1003. There is still issues with selectables and draggables working together in IEx --- modules/organize/js/organize.js | 45 +++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 24 deletions(-) (limited to 'modules/organize') diff --git a/modules/organize/js/organize.js b/modules/organize/js/organize.js index 942e49e5..5b90f402 100644 --- a/modules/organize/js/organize.js +++ b/modules/organize/js/organize.js @@ -7,31 +7,28 @@ appendTo: "#g-organize-content-pane", helper: function(event, ui) { var selected = $(".ui-draggable.ui-selected img"); - if (selected.length) { - var set = $('
        ') - .css({ - zIndex: 2000, - width: 80, - height: Math.ceil(selected.length / 5) * 16 - }); + var set = $('
        ') + .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 o = $(this).offset(); - var copy = $(this).clone() - .css({ - width: $(this).width(), height: $(this).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; - } - return null; + selected.each(function(i) { + var row = parseInt(i / 5); + var j = i - (row * 5); + var o = $(this).offset(); + var copy = $(this).clone() + .css({ + width: $(this).width(), height: $(this).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) { -- cgit v1.2.3