/* Odoo web_timeline * Copyright 2015 ACSONE SA/NV * Copyright 2016 Pedro M. Baeza * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ _.str.toBoolElse = function (str, elseValues, trueValues, falseValues) { var ret = _.str.toBool(str, trueValues, falseValues); if (_.isUndefined(ret)) { return elseValues; } return ret; }; odoo.define('web_timeline.TimelineView', function (require) { "use strict"; var core = require('web.core'); var view_registry = require('web.view_registry'); var AbstractView = require('web.AbstractView'); var TimelineRenderer = require('web_timeline.TimelineRenderer'); var TimelineController = require('web_timeline.TimelineController'); var TimelineModel = require('web_timeline.TimelineModel'); var _lt = core._lt; function isNullOrUndef(value) { return _.isUndefined(value) || _.isNull(value); } var TimelineView = AbstractView.extend({ display_name: _lt('Timeline'), icon: 'fa-clock-o', jsLibs: ['/web_timeline/static/lib/vis/vis-timeline-graph2d.min.js'], cssLibs: ['/web_timeline/static/lib/vis/vis-timeline-graph2d.min.css'], config: { Model: TimelineModel, Controller: TimelineController, Renderer: TimelineRenderer, }, /** * @constructor * @override */ init: function (viewInfo, params) { this._super.apply(this, arguments); var self = this; this.timeline = false; this.arch = this.rendererParams.arch; var attrs = this.arch.attrs; this.fields = viewInfo.fields; this.modelName = this.controllerParams.modelName; this.action = params.action; var fieldNames = this.fields.display_name ? ['display_name'] : []; var mapping = {}; var fieldsToGather = [ "date_start", "date_stop", "default_group_by", "progress", "date_delay", ]; fieldsToGather.push(attrs.default_group_by); _.each(fieldsToGather, function (field) { if (attrs[field]) { var fieldName = attrs[field]; mapping[field] = fieldName; fieldNames.push(fieldName); } }); var archFieldNames = _.map(_.filter(this.arch.children, function(item) { return item.tag === 'field'; }), function(item) { return item.attrs.name; }); fieldNames = _.union( fieldNames, archFieldNames ); this.parse_colors(); for (var i=0; i