vendor/assets/javascripts/metro-ui/tile-drag.js in metro-ui-rails-0.15.8.14 vs vendor/assets/javascripts/metro-ui/tile-drag.js in metro-ui-rails-0.15.8.15

- old
+ new

@@ -50,11 +50,12 @@ newGroupSearchCount = 0, newGroupPhantom, targetType, // 'new' or 'existing' group groupsMaxHeight, mouseMoved, - tileDragTimer; + tileDragTimer, + tileStartDragTimer; plugin.init = function() { settings = plugin.settings = $.extend({}, defaults, options); $startMenu = $('.tiles'); @@ -63,24 +64,35 @@ $groups = $('[data-role=tile-group], .tile-group'); // select all tiles within group tiles = $groups.children('.tile'); - tiles.on('mousedown', startDrag); + tiles.on('mousedown', function(event) { + event.preventDefault(); + clearTimeout(tileStartDragTimer); + var el = $(this); + tileStartDragTimer = setTimeout(function() { + startDrag(el, event); + }, 1000); + }).on('mouseup mouseout', function() { + clearTimeout(tileStartDragTimer); + }); + //tiles.on('mousedown', startDrag); }; - var startDrag = function(event) { + var startDrag = function(el, event) { var $tile, tilePosition, tilePositionX, tilePositionY; event.preventDefault(); // currently dragging tile - $tile = $draggingTile = $(this); + $tile = $draggingTile = el; + //$tile.animate({"width": "-=20px", "height": "-=20px"}, "fast").animate({"width": "+=20px", "height": "+=20px"}, "fast"); // dragging tile dimentions draggingTileWidth = $tile.outerWidth(); draggingTileHeight = $tile.outerHeight(); @@ -102,15 +114,15 @@ } else if ($tile.hasClass('triple-vertical')) { $phantomTile.addClass('triple-vertical'); } else if ($tile.hasClass('quadro-vertical')) { $phantomTile.addClass('quadro-vertical'); } - + // place phantom tile instead dragging one $phantomTile.insertAfter($tile); targetType = 'existing'; - + // search parent group $parentGroup = $tile.parents('.tile-group'); // dragging tile position within group tilePosition = $tile.offset(); @@ -190,11 +202,11 @@ * removing events * and some other necessary changes */ var dragStop = function (event) { var targetGroup; - + if (!mouseMoved) { // emulate default click behavior if ($draggingTile.is('a')) { if ($draggingTile.prop('target') === '_blank') { window.open($draggingTile.attr('href')); @@ -243,11 +255,11 @@ $draggingTile.data('dragging', false); $(document).off('mousemove.tiledrag'); $groups = $('[data-role=tile-group], .tile-group'); $groups.trigger('drop', [$draggingTile, targetGroup]); - + $startMenu.trigger('changed'); }; /* * stores tiles coordinates for future finding one tile under cursor @@ -409,11 +421,11 @@ 'width': 0, 'margin': 0 }); } } - + $startMenu.trigger('changed'); storeAllNecessaryCoordinates(); }; /** @@ -483,6 +495,6 @@ $(function(){ var allTileGroups = $('[data-role=tile-group], .tile-group'); if (allTileGroups.length > 0) { $(allTileGroups).TileDrag({}); } -}); \ No newline at end of file +});