Our pure JavaScript Scheduler component


Post by striker »

Hello, I'm fighting with PresetManager.

I want to leave only 8 presets, so I removed all presets before rendering SchedulerPro (4.2.6):

    PresetManager.remove('weekAndDayLetter');
    PresetManager.remove('manyYears');
    PresetManager.remove('manyYears-80by50');
    PresetManager.remove('year-30by100');
    PresetManager.remove('year');
    PresetManager.remove('year-200by100');
    PresetManager.remove('year-50by100');
    PresetManager.remove('weekDateAndMonth');
    PresetManager.remove('weekAndMonth');
    PresetManager.remove('monthAndYear');
    PresetManager.remove('dayAndWeek');
    PresetManager.remove('minuteAndHour-30by60');
    PresetManager.remove('minuteAndHour-60by60');
    PresetManager.remove('minuteAndHour-100by60');
    PresetManager.remove('secondAndMinute-130by40');
    PresetManager.remove('secondAndMinute-60by40');
    PresetManager.remove('secondAndMinute');

Logging rest of presets in console - 8:

presets_before_error.png
presets_before_error.png (40.59 KiB) Viewed 542 times

After rendering scheduler, on PresetManager and this.schedulerInstance.presets I can see still 8 presets, but scheduler is working with 9 presets.

Scheduler is adding byself dayAndWeek preset. - I checked this by logging in console:

    this.#instance.onPresetChange = (event: any) => {
      console.log(event.to.id);
      // PresetManager.remove('dayAndWeek');
    };
presets_after_error.png
presets_after_error.png (41.67 KiB) Viewed 542 times

I tried to remove this preset every onPresetChange callback, but still this preset can be used in scheduler.

Can you tell me what I need to do?


Post by alex.l »

Take a look at our docs here: https://bryntum.com/docs/scheduler/#Scheduler/preset/ViewPreset
https://bryntum.com/docs/scheduler/#Scheduler/preset/PresetManager

PresetManager contains registered presets. To manage set of available presets in the Scheduler, please use https://bryntum.com/docs/scheduler/#Scheduler/view/mixin/TimelineViewPresets#config-presets

We have an example here: https://bryntum.com/examples/scheduler/configuration/

const
    requiredPresetIds = {
        secondAndMinute  : 1,
        minuteAndHour    : 1,
        hourAndDay       : 1,
        dayNightShift    : 1,
        weekAndDay       : 1,
        weekAndMonth     : 1,
        weekAndDayLetter : 1,
        weekDateAndMonth : 1,
        monthAndYear     : 1,
        year             : 1,
        manyYears        : 1
    },
    presets     = PresetManager.records.filter(p => requiredPresetIds[p.id]); // filter presets
    
const scheduler = new Scheduler({ appendTo : 'container',
presets, // apply filtered set [....]

All the best,
Alex


Post by striker »

Thanks for reply!
I will try to implement your solution and I will let you know soon is it working


Post by striker »

So it is not working.

Console log before creating SchedulerPro instance:

test1.png
test1.png (85.85 KiB) Viewed 524 times
console.log(PresetManager.records);

this.#instance = new SchedulerPro({
  appendTo : config.schedulerNativeElementRef.nativeElement,
  flex: 80,
  ....
  ....
  presets: PresetManager.records,             <--- 8 records

result:

test2.png
test2.png (27.52 KiB) Viewed 524 times

Post by striker »

I found a solution...
It was only my mistake.

config of SchedulerPro was:

      // Customize preset
      viewPreset : {
        base: 'dayAndWeek',
        timeResolution: {
          unit: 'minutes',
          increment: 1
        }
      },
 

I forgot to change this.
Thanks despite this!


Post Reply