이 문서는 dhtmlxScheduler 6.0 버전 및 그 이전 버전에 해당합니다. 7.0 이상 버전의 경우 여기에서 자세한 내용을 확인하세요.
여기서는 스케일 단위와 이벤트 박스의 크기를 조정하는 네 가지 일반적인 시나리오에 대해 설명합니다:
문제 1: 1시간보다 짧은 이벤트가 스케줄러에서 1시간 이벤트와 동일한 크기로 표시됩니다. 짧은 이벤트가 스케일에 맞게 표시되도록 하는 것이 목표입니다.
문제 2: 동일한 시간대 내에 발생하는 짧은 이벤트들이 서로 겹쳐서 표시됩니다. 이러한 겹침을 방지하는 것이 목적입니다.
문제 3: 스케일 단위의 높이를 변경한 후, 스트라이프 배경도 이에 맞게 조정해야 합니다.
문제 4: 기본 스케일 간격이 1시간으로 설정되어 있지만, 이를 30분 등으로 변경해야 할 필요가 있습니다.
먼저, 이벤트 박스의 기본 동작을 살펴보면 다음과 같습니다:
30분 이벤트가 스케일에 맞게 표시되도록 하려면 두 가지 방법이 있습니다:
스케일 단위의 높이는 scheduler.config.hour_size_px
설정 옵션을 사용하여 조정할 수 있습니다.
예를 들어, 단위 높이를 두 배로 늘리려면 다음과 같이 설정합니다:
scheduler.config.hour_size_px = 88;
scheduler.init(...);
이렇게 하면 스케일 단위 높이가 88px이 되어, 30분 이벤트는 44px 높이로 표시되어 스케일에 맞게 됩니다.
Related sample: Changing the Y-Axis step
이벤트 박스의 표시 방식을 변경하려면 scheduler.renderEvent
메서드를 사용하여 이벤트에 대한 커스텀 템플릿을 지정할 수 있습니다.
scheduler.renderEvent = function(container, ev) {
// 여기에 커스터마이즈 코드를 작성하세요
}
자세한 내용은 커스텀 이벤트 박스 챕터에서 확인할 수 있습니다.
Related sample: Custom event box
짧은 이벤트가 서로 겹치지 않고 개별적으로 표시되도록 하려면, scheduler.config.separate_short_events
옵션을 활성화하세요:
scheduler.config.separate_short_events = true;
스케줄러의 배경은 이미지로 제어됩니다. 이를 변경하려면 CSS 클래스 .dhx_scale_holder를 다음과 같이 오버라이드 하세요:
<style>.dhx_scale_holder {
background-image: url("imgs/myNewImage.png");
}
</style>
그런 다음 스케줄러를 초기화합니다:
scheduler.init(...);
기본 스케일 간격을 변경하려면 scheduler.templates.hour_scale
템플릿을 재정의해야 합니다. 30분 간격으로 설정하려면 다음과 같이 템플릿을 수정할 수 있습니다:
var format = scheduler.date.date_to_str("%H:%i");
var step = 30;
scheduler.templates.hour_scale = function(date){
var html="";
for (var i=0; i<60/step; i++){
html+="<div style='height:22px;line-height:22px;'>"+format(date)+"</div>";
date = scheduler.date.add(date,step,"minute");
}
return html;
}
관련 샘플:
맨 위로