summaryrefslogtreecommitdiff
path: root/addons/mail/static/src/js/views/activity/activity_view.js
blob: e2e3ededfe3a5a739fc974e8cda716d6d3878ef4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
odoo.define('mail.ActivityView', function (require) {
"use strict";

const ActivityController = require('mail.ActivityController');
const ActivityModel = require('mail.ActivityModel');
const ActivityRenderer = require('mail.ActivityRenderer');
const BasicView = require('web.BasicView');
const core = require('web.core');
const RendererWrapper = require('web.RendererWrapper');
const view_registry = require('web.view_registry');

const _lt = core._lt;

const ActivityView = BasicView.extend({
    accesskey: "a",
    display_name: _lt('Activity'),
    icon: 'fa-clock-o',
    config: _.extend({}, BasicView.prototype.config, {
        Controller: ActivityController,
        Model: ActivityModel,
        Renderer: ActivityRenderer,
    }),
    viewType: 'activity',
    searchMenuTypes: ['filter', 'favorite'],

    /**
     * @override
     */
    init: function () {
        this._super.apply(this, arguments);

        this.loadParams.type = 'list';
        // limit makes no sense in this view as we display all records having activities
        this.loadParams.limit = false;

        this.rendererParams.templates = _.findWhere(this.arch.children, { 'tag': 'templates' });
        this.controllerParams.title = this.arch.attrs.string;
    },
    /**
     *
     * @override
     */
    getRenderer(parent, state) {
        state = Object.assign({}, state, this.rendererParams);
        return new RendererWrapper(null, this.config.Renderer, state);
    },
});

view_registry.add('activity', ActivityView);

return ActivityView;

});