[IMP] Add an option to initialize the timeline window on display.

The default window display all the events (aka 'fit'), in case of events spread over the year, the events are invisibles (too small to be readable)

Signed-off-by: adrien.didenot <adrien.didenot@horanet.com>
This commit is contained in:
adrien.didenot
2017-09-28 17:33:00 +02:00
committed by CarlosRoca13
parent bc09136f38
commit 275a11e67b
2 changed files with 28 additions and 1 deletions

View File

@@ -111,6 +111,7 @@ odoo.define('web_timeline.TimelineView', function (require) {
this.date_delay = attrs.date_delay;
this.no_period = this.date_start == this.date_stop;
this.zoomKey = attrs.zoomKey || '';
this.default_window = attrs.default_window || 'fit';
if (!isNullOrUndef(attrs.quick_create_instance)) {
self.quick_create_instance = 'instance.' + attrs.quick_create_instance;
@@ -171,6 +172,27 @@ odoo.define('web_timeline.TimelineView', function (require) {
onRemove: self.on_remove,
zoomKey: this.zoomKey
};
if (this.default_window) {
var start = new moment();
var end;
switch (this.default_window) {
case 'day':
end = new moment().add(1, 'days');
break;
case 'week':
end = new moment().add(1, 'weeks');
break;
case 'month':
end = new moment().add(1, 'months');
break;
}
if (end) {
options['start'] = start;
options['end'] = end;
}else{
this.default_window = 'fit';
}
}
self.timeline = new vis.Timeline(self.$timeline.empty().get(0));
self.timeline.setOptions(options);
if (self.mode && self['on_scale_' + self.mode + '_clicked']) {
@@ -333,7 +355,9 @@ odoo.define('web_timeline.TimelineView', function (require) {
var groups = split_groups(events, group_bys);
this.timeline.setGroups(groups);
this.timeline.setItems(data);
this.timeline.fit();
if (!this.default_window || this.default_window == 'fit'){
this.timeline.fit();
}
},
do_show: function () {