ノードが移動またはコピーされたかどうか、およびユーザーがそれを行う権限を持っているかどうかを確認できる機能を備えたcrrm.move.check_moveを実装したかったのです。私のコードは次のようになります:
var _isUserHasRightToMoveNodes = false; // set depending on user rights
var _isUserHasRightToCopyNodes = true; // set depending on user rights
var _jsTreePlugins = ["themes", "html_data", "ui"];
if ((_isUserHasRightToMoveNodes) || (_isUserHasRightToCopyNodes)) {
_jsTreePlugins.push("dnd");
_jsTreePlugins.push("crrm");
}
$( this ).jstree({
plugins: _jsTreePlugins,
...,
crrm : {
"move" : {
"check_move" : function( m ) {
// wenn der Knoten verschoben wird
if ((!_isUserHasRightToMoveNodes) && ((m.cy == null) || (!m.cy)))
return false;
// wenn der Knoten kopiert wird
if ((!_isUserHasRightToCopyNodes) && (m.cy != null) && (m.cy))
return false;
return true;
}
}
}
});
ノードをコピーすると、それは不可能に見えますが(赤い十字アイコン)、まだコピーされています(必要に応じて)。
私はfirebugでデバッグしましたが、m.cyはノードがドロップされるとすぐに定義され、他のノードの上にマウスオーバーすると定義されないことがわかりました。したがって、赤い十字アイコンです。ただし、もちろん、ドロップされるとすぐにm.cyが定義され、ノードがコピーされます。
私は何か間違ったことをしていますか、それともこれはバグですか?そのための回避策はありますか?
助けてくれてありがとう!タンジャ