mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-09-03 08:17:39 +02:00
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
100 lines
2.2 KiB
JavaScript
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));
|