AddNodeController.prototype.addNode = function()

in src/main/resources/SLING-INF/libs/sling/resource-editor/static/js/tree/AddNodeController.js [77:121]


	AddNodeController.prototype.addNode = function() {
		var thatAddNodeController = this;
		var dialogSubmitable = this.resourceTypeSubmitable && this.nodeNameSubmitable;
		if (dialogSubmitable) {
			var nodeName = $("#nodeName").select2("val");
			var nodeType = $("#nodeType").select2("val");
			var resourceType = $("#newResourceType").select2("val");
	
			
			var data = {"_charset_": "utf-8"};
			if ("" != nodeType){
				data["jcr:primaryType"] = nodeType;
			}
			var canAddResourceType = nodeType == "" ? true : this.mainController.ntManager.getNodeType(nodeType).canAddProperty("sling:resourceType", "String");
			if ("" != resourceType && canAddResourceType){
				data["sling:resourceType"] = resourceType;
			}
			var targetURL = (this.lastAddNodeURL=="/") ? "/" : this.lastAddNodeURL+"/";
			targetURL = this.mainController.decodeFromHTML(targetURL);
			if ("" != nodeName) {
				targetURL += nodeName;
			}
			if (targetURL=="/"){
				//adding a node without a specified name to the root node 
				targetURL = "/*";
			}
			var encodedTargetURL = this.mainController.encodeURL(targetURL);
	
			$.ajax({
		  	  type: 'POST',
			  url: encodedTargetURL,
			  dataType: "json",
		  	  data: data
		  	})
			.done(function() {
				$('#addNodeDialog').modal("hide");
				var htmlDecodedLastAddNodeURL = thatAddNodeController.mainController.decodeFromHTML(thatAddNodeController.lastAddNodeURL);
				thatAddNodeController.mainController.redirectTo(htmlDecodedLastAddNodeURL);
			})
			.fail(function(errorJson) {
				$('#addNodeDialog').modal("hide");
				thatAddNodeController.mainController.displayAlert(errorJson);
			});
		}
	}