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
+});