Wenn die Standardansichten nicht ganz Ihren Anforderungen entsprechen, können Sie eine benutzerdefinierte Ansicht erstellen.
Das Erstellen einer benutzerdefinierten Ansicht beginnt mit dem Hinzufügen eines neuen Tabs zum Scheduler, der Ihre neue Ansicht repräsentiert. Typischerweise sieht das so aus:
<div class="dhx_cal_tab" data-tab="workweek"></div>
Beachten Sie dabei:
Um das Label für die Ansicht festzulegen, verwenden Sie:
scheduler.locale.labels.{viewName}_tab = "someName"
Es gibt drei wesentliche Methoden, die das Verhalten der Ansicht bestimmen — sie legen das Ansichtsintervall (z. B. eine Woche für die Wochenansicht, einen Monat für die Monatsansicht usw.) und das aktive Datum fest, wenn der Benutzer auf die Schaltflächen 'Next' oder 'Prev' im Header klickt.
Abschließend sollten Sie Vorlagen für das Datums-Header und die X-Achsen-Skala festlegen:
Zum Beispiel:
scheduler.templates.workweek_date = scheduler.templates.week_date;
scheduler.templates.workweek_scale_date = scheduler.templates.week_scale_date;
So erstellen Sie eine benutzerdefinierte Ansicht namens 'workweek', die der Wochenansicht ähnelt, aber nur die Arbeitstage der Woche anzeigt.
Die Schritte sind:
<div id="scheduler_here" class="dhx_cal_container" ...>
<div class="dhx_cal_navline">
...
<div class="dhx_cal_tab" name="workweek_tab" style="right:280px;"></div>
</div>
</div>
scheduler.locale.labels.workweek_tab = "Work week"
scheduler.date.workweek_start = function(date) {
return scheduler.date.week_start(date);//
}
Hier wird die Methode week_start() aus der Wochenansicht wiederverwendet, da beide Ansichten das gleiche Startdatum haben.
scheduler.date.get_workweek_end=function(start_date){
return scheduler.date.add(start_date,5,"day");
}
Die Methode add() passt das Datum an, indem das angegebene Zeitintervall hinzugefügt oder abgezogen wird. Weitere Details hier.
scheduler.date.add_workweek=function(date,inc){
return scheduler.date.add(date,inc*7,"day");
}
Die Methode add() übernimmt das Hinzufügen oder Abziehen des Zeitintervalls. Mehr dazu hier.
scheduler.templates.workweek_date = scheduler.templates.week_date;
Diese Vorlage entspricht der Wochenansicht, daher wird einfach die Standardvorlage der Wochenansicht wiederverwendet - week_date
scheduler.templates.workweek_scale_date = scheduler.templates.week_scale_date;
Auch diese Vorlage stammt aus der Wochenansicht, um die Konsistenz zu wahren - week_scale_date
Die anfänglich im Scheduler angezeigte Ansicht wird während der Initialisierung festgelegt, wie in init beschrieben. Da die Vorlagen für eine benutzerdefinierte Ansicht zu diesem Zeitpunkt jedoch möglicherweise noch nicht vollständig verarbeitet sind, kann die Initialisierung fehlschlagen.
Um dies zu vermeiden, stellen Sie sicher, dass die Vorlagen für Ihre benutzerdefinierte Ansicht bereit sind, bevor Sie den Scheduler initialisieren, indem Sie benutzerdefinierte Ansichten innerhalb eines Handlers für das Ereignis onTemplatesReady erstellen. Dieses Ereignis wird ausgelöst, sobald alle Vorlagen vollständig verarbeitet wurden:
scheduler.attachEvent("onTemplatesReady",function(){
// Platzieren Sie hier Ihren Code zur Erstellung der benutzerdefinierten Ansicht
});
scheduler.init(container, date, "custom view name");
Nach oben