TreeController.prototype.deleteNodes = function()

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