Search code examples
javascriptangularjsdaypilotdaypilot-scheduler

DayPilot Scheduler - Vertical Scrollbar never appears


This question is for the Angular implementation of DayPilot Scheduler.

It seems that no matter what I do, I cannot get a vertical scrollbar to appear where the events are rendered. When there are more rows than can fit into the scheduler, they are simply cut off and hidden from view.

I have read the documentation for setting the height here, here and here, as well as this help topic. I have used different combinations of settings for the heightSpec property, with the following results:

  • Parent100Pct - does as the documentation suggests and fills the parent element. Does not expand when there are more rows than fit on the screen, does not show any scrollbar.
  • Max - grows up to the fixed size that I specify, but again when there are more rows than fit on the screen, does not show any scrollbar.
  • Fixed - renders at exactly the height that I specify, but again no vertical scrollbar.

I've basically run out of ideas. I'm using Bootstrap as the framework, I had thought that maybe something there wasn't playing nicely with DayPilot but I couldn't find any conflicts.

It looks like my code should work, so I would be grateful for any suggestions. This is the code I've been working with. I'm sure it's something small that's staring me right in the face, it usually is.

Markup:

<div id="page-container">
    <div id="page-wrapper">
        <div class="container-fluid controller ng-scope" ng-controller="HomeController as vm">
            <div class="row" id="main-content">
                <div class="col-md-12" id="am-main">
                    <daypilot-scheduler id="dp" config="vm.schedulerConfig" events="vm.events" publish-as="vm.scheduler"></daypilot-scheduler>
                </div>
            </div>
        </div>
    </div>
</div>

Javascript:

var minutesInDay = 60 * 24;

vm.schedulerConfig = {
    startDate: '2017-01-01',
    days: 90,
    cellDuration: minutesInDay,
    floatingEvents: false,
    floatingTimeHeaders: false,
    cellSweeping: false,
    useEventBoxes: 'Never',
    scrollDelayEvents: 0,
    timeHeaders: [
        { groupBy: 'Month', format: 'MMMM yyyy' },
        { groupBy: 'Week'},
        { groupBy: 'Day', format: 'ddd dd' }
    ],
    separators: [
        { color: 'Orange', location: new DayPilot.Date(), width: 5 }
    ],
    treeEnabled: true,
    cssClassPrefix: 'scheduler',
    widthSpec: 'Parent100Pct',
    heightSpec: 'Fixed',
    height: 500,
    durationBarVisible: false,
    weekStarts: 1
}

CSS:

#page-container, #page-wrapper {
    height: 100% !important;
}

#main-content {
    height: 100%;
}

#am-main {
    height: 89% !important;
}

.scheduler_cell {
    background: transparent;
    border: none;
    margin: 5px 0;
    padding: 5px;
    min-width: 10px;
}

.scheduler_default_divider_horizontal {
    background-color: white !important;
}

.scheduler_default_scrollable {
    overflow-y: hidden !important;
    font-family: 'Roboto', sans-serif !important;
}

.scheduler_default_rowheader_scroll, .scheduler_rowheader, .scheduler_corner {
    width: 150px !important;
}

.scheduler_event_inner {
    border-right: 0.5px solid black;
}

.scheduler_timeheadergroup, .scheduler_timeheadercol {
    border: thin solid white;
}

.scheduler_timeheadergroup_inner, .scheduler_timeheadercol_inner, scheduler_timeheader_float_inner {
    padding: 2px 0 0 4px;
}

Solution

  • overflow-y: hidden !important;

    Just from what you've posted, it appears that line of css is likely the cause. I'm guessing it's on a parent container to the mark-up you provided. That says, whatever you do, DON'T EVER SHOW A VERTICAL SCROLL BAR!

    Try removing that line and see what luck you have.