silverstripe-cms/javascript/AssetAdmin.DragDrop.js
Sam Minnee bbc3aaaf9f MINOR: Remove training whitespace.
The main benefit of this is so that authors who make use of
.editorconfig don't end up with whitespace changes in their PRs.

Spaces vs. tabs has been left alone, although that could do with a
tidy-up in SS4 after the switch to PSR-1/2.

The command used was this:

for match in '*.ss' '*.css' '*.scss' '*.html' '*.yml' '*.php' '*.js' '*.csv' '*.inc' '*.php5'; do
	find . -path ./thirdparty -prune -o -type f -name "$match" -exec sed -i '' 's/[[:space:]]\+$//' {} \+
	find . -path ./thirdparty -prune -o -type f -name "$match" | xargs perl -pi -e 's/ +$//'
done
2016-01-07 10:32:05 +13:00

100 lines
2.2 KiB
JavaScript

/**
* File: AssetAdmin.DragDrop.js
*/
(function($) {
$.entwine('ss', function($){
/**
* Class: .AssetTableField.dragdrop
*/
$('.AssetTableField.dragdrop').entwine({
onmatch: function() {
var self = this;
$('.cms-tree li').each(function() {
$(this).droppable({
greedy: true,
hoverClass: 'over', // same hover effect as normal tree
drop: function(e, ui) {self.drop(e, ui);}
});
});
this._super();
},
onunmatch: function() {
this._super();
},
/**
* Function: drop
*
* Take selected files and move them to a folder target in the tree.
*/
drop: function(e, ui) {
var self = this;
if(e.target.id.match(/-([^-]+)$/)) {
var folderId = RegExp.$1;
$.post(
this.attr('href') + '/movemarked',
this.parents('form').serialize() + '&DestFolderID=' + folderId,
function(data, status) {
self.refresh();
}
)
}
},
/**
* Function: getSelected
*
* Get the IDs of all selected files in the table.
* Used for drag'n'drop.
*
* Returns:
* Array
*/
getSelected: function() {
return this.find(':input[name=Files\[\]]:checked').map(function() {
return $(this).val();
});
}
});
$('.AssetTableField .dragfile').entwine({
// Constructor: onmatch
onmatch: function() {
var self = this;
var container = this.parents('.AssetTableField');
this.draggable({
zIndex: 4000,
appendTo: 'body',
helper: function() {
return $(
'<div class="NumFilesIndicator">'
ss.i18n.sprintf(ss.i18n._t('AssetTableField.MOVING'),container.getSelected().length)
'</div>'
);
}
});
this._super();
},
onunmatch: function() {
this._super();
},
/**
* Function: onmousedown
*
* Parameters:
* (Event) e
*
* Automatically select the checkbox in the same table row
* to signify that this element is moved, and hint that
* all checkboxed elements will be moved along with it.
*/
onmousedown: function(e) {
this.siblings('.markingcheckbox').find(':input').attr('checked', 'checked');
}
});
});
}(jQuery));