Die Bibliothek enthält die outerdrag-Erweiterung, mit der es möglich ist, neue Ereignisse zu erstellen, indem Elemente aus externen DHTMLX-Komponenten oder anderen Schedulern per Drag-and-Drop eingefügt werden.
Wenn ein Element aus einer externen Quelle in den Scheduler gezogen wird, öffnet der Scheduler automatisch das Lightbox-Formular, um ein neues Ereignis zu erstellen.
Related sample: Integration with dhtmlxTree
So funktioniert das externe Drag-and-Drop mit der dhtmlxTree-Komponente.
Um den Scheduler mit dhtmlxTree zu integrieren, gehen Sie wie folgt vor:
<script src="../codebase/dhtmlxscheduler.js" ...></script>
<link rel="stylesheet" href="../codebase/dhtmlxscheduler.css" ...>
...
scheduler.plugins({
outerdrag: true
});
var tree = new dhtmlXTreeObject("treebox", "100%", "100%", 0);
tree.setImagePath("../common/dhtmlxTree/imgs/csh_yellowbooks/");
tree.loadXML("./data/tree.xml");
tree.enableDragAndDrop(true);
...
scheduler.init('scheduler_here', new Date(2019, 5, 30), "timeline");
scheduler.attachEvent("onExternalDragIn", function(id, source, event){
var label = tree.getItemText(tree._dragged[0].id);
scheduler.getEvent(id).text = label;
return true;
});
Related sample: Integration with dhtmlxTree
Nach dieser Konfiguration ist das Erstellen neuer Ereignisse mit Daten aus dem Tree ganz einfach – ziehen Sie einfach den gewünschten Knoten per Drag-and-Drop.
Dieses Feature ist nur für Commercial (seit 6. Oktober 2021), Enterprise und Ultimate Lizenzen verfügbar.
Wenn mehrere Scheduler auf einer Seite angezeigt werden, kann Drag-and-Drop zwischen ihnen aktiviert werden, sodass Ereignisse nahtlos von einem Scheduler in einen anderen verschoben werden können.
Um Drag-and-Drop-Unterstützung zwischen Schedulern zu aktivieren, binden Sie die "drag_between"-Erweiterung ein:
Aktivieren von Drag-and-Drop-Unterstützung für mehrere Scheduler
<script src="codebase/dhtmlxscheduler.js"></script>
<link rel="stylesheet" href="codebase/dhtmlxscheduler.css" type="text/css">
<script>scheduler.plugins({
drag_between: true
});
scheduler.init('scheduler_here',new Date(2019, 5, 30),"week");
scheduler.load("./data/units.xml");
scheduler2 = Scheduler.getSchedulerInstance();
scheduler2.init('scheduler_here_2',new Date(2019, 5, 30),"week");
</script>
Ein Beispiel finden Sie unter "samples/20_multiple/06_drag_between_layout.html" im Scheduler PRO-Paket.
Um das Herausziehen von Ereignissen aus einem Scheduler zu verhindern, setzen Sie die drag_out-Eigenschaft auf false:
scheduler.config.drag_out = false; // Dragging von Ereignissen aus diesem Scheduler deaktivieren scheduler.init('scheduler_here',new Date(2019, 5,30),"week");
scheduler.load("./data/units.xml");
scheduler2 = Scheduler.getSchedulerInstance();
scheduler2.init('scheduler_here_2',new Date(2019, 5, 30),"week");
Um das Hineinziehen von Ereignissen in einen Scheduler zu verhindern, setzen Sie die drag_in-Eigenschaft auf false:
scheduler.init('scheduler_here',new Date(2019, 5, 30),"week");
scheduler.load("./data/units.xml");
scheduler2.config.drag_in = false; // Dragging von Ereignissen in diesen Scheduler deaktivieren scheduler2 = Scheduler.getSchedulerInstance();
scheduler2.init('scheduler_here_2',new Date(2019, 5, 30),"week");
Das Beispiel "samples/20_multiple/06_drag_between_layout.html" ist im Scheduler PRO-Paket enthalten.