//IF IT'S A LEAF (FROM VIEW) BEING DROPPED ON ROOT NODE LEVEL if (!dropNode && targetNode.getDepth() == 1 && (pt == "above" || pt == "below")) return false; if (dropNode) { //IF IT'S A FOLDER BEING DROPPED ON A FOLDER if(targetNode.allowNonLeafChildren === false && dropNode.isLeaf() == false && pt == "append") return false; //IF IT'S A FOLDER BEING DROPPED ONTO A LEAF if (dropNode.isLeaf() == false && targetNode.isLeaf() == true) return false; //IF IT'S A LEAF BEING DROPPED ON ROOT NODE LEVEL if (dropNode.isLeaf() == true && targetNode.getDepth() == 1 && (pt == "above" || pt == "below")) return false; }