in src/main/resources/SLING-INF/libs/sling/resource-editor/static/js/tree/TreeController.js [230:275]
TreeController.prototype.deleteNodes = function() {
var thatTreeController = this;
var lastDeletedLI;
var selectedIds = $(this.settings.treeAndPropsSelector).jstree('get_selected');
var firstId = selectedIds[0];
var parentLi = $('#'+firstId).parents('li');
var parentPath = this.getURLEncodedPathFromLi(parentLi);
var otherPathsToDelete = [];
var otherPathsToDeleteDecoded = [];
for (var i=0; i<selectedIds.length; i++){
var id = selectedIds[i];
var li = $('#'+id);
var resourcePathToDelete = this.getPathFromLi(li);
otherPathsToDelete.push(resourcePathToDelete);
var decodedResourcePath = this.mainController.decodeFromHTML(resourcePathToDelete);
otherPathsToDeleteDecoded.push(decodedResourcePath);
}
var confirmationMsg = "You are about to delete '"+otherPathsToDelete+"' and all its sub nodes. Are you sure?";
bootbox.confirm(confirmationMsg, function(result) {
if (result){
//http://www.jstree.com/api/#/?q=delete&f=delete_node.jstree
$.ajax({
type: 'POST',
url: parentPath,
success: function(server_data) {
var tree = $(thatTreeController.settings.treeAndPropsSelector).jstree(true);
for (var i=0; i<selectedIds.length; i++){
var id = selectedIds[i];
tree.delete_node(id);
}
},
error: function(errorJson) {
thatTreeController.mainController.displayAlert(errorJson);
},
traditional: true,
dataType: "json",
contentType : 'application/x-www-form-urlencoded; charset=UTF-8',
data: {
":operation": "delete",
"_charset_": "utf-8",
":applyTo": otherPathsToDeleteDecoded
}
});
}
});
}