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
54
55
56
57
58
59
|
odoo.define('mail/static/src/models/attachment_viewer/attachment_viewer.js', function (require) {
'use strict';
const { registerNewModel } = require('mail/static/src/model/model_core.js');
const { attr, many2many, many2one } = require('mail/static/src/model/model_field.js');
function factory(dependencies) {
class AttachmentViewer extends dependencies['mail.model'] {
//----------------------------------------------------------------------
// Public
//----------------------------------------------------------------------
/**
* Close the attachment viewer by closing its linked dialog.
*/
close() {
const dialog = this.env.models['mail.dialog'].find(dialog => dialog.record === this);
if (dialog) {
dialog.delete();
}
}
}
AttachmentViewer.fields = {
/**
* Angle of the image. Changes when the user rotates it.
*/
angle: attr({
default: 0,
}),
attachment: many2one('mail.attachment'),
attachments: many2many('mail.attachment', {
inverse: 'attachmentViewer',
}),
/**
* Determine whether the image is loading or not. Useful to diplay
* a spinner when loading image initially.
*/
isImageLoading: attr({
default: false,
}),
/**
* Scale size of the image. Changes when user zooms in/out.
*/
scale: attr({
default: 1,
}),
};
AttachmentViewer.modelName = 'mail.attachment_viewer';
return AttachmentViewer;
}
registerNewModel('mail.attachment_viewer', factory);
});
|