[IMP] mail: move code to models (CallSettingsMenu)

Task-3000249

closes odoo/odoo#101575

X-original-commit: bfd592e79e77db879eb70b5eed6e224b0525dfb8
Signed-off-by: Louis Wicket (wil) <wil@odoo.com>
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
This commit is contained in:
Alexandre Kühn
2022-09-29 13:23:15 +02:00
parent d1fc179486
commit 1f78b1608d
3 changed files with 8 additions and 21 deletions
@@ -2,27 +2,10 @@
import { registerMessagingComponent } from '@mail/utils/messaging_component';
import { browser } from "@web/core/browser/browser";
const { Component, onWillStart, useState } = owl;
const { Component } = owl;
export class CallSettingsMenu extends Component {
/**
* @override
*/
setup() {
super.setup();
this.state = useState({
userDevices: undefined,
});
onWillStart(() => this._willStart());
}
async _willStart() {
this.state.userDevices = await browser.navigator.mediaDevices.enumerateDevices();
}
/**
* @returns {CallSettingsMenu}
*/
@@ -11,7 +11,7 @@
<div>
<select name="inputDevice" class="o_CallSettingsMenu_optionDeviceSelect form-select" t-att-value="messaging.userSetting.audioInputDeviceId" t-on-change="callSettingsMenu.onChangeSelectAudioInput">
<option value="">Browser default</option>
<t t-if="state.userDevices" t-foreach="state.userDevices" t-as="device" t-key="device_index">
<t t-foreach="callSettingsMenu.userDevices" t-as="device" t-key="device_index">
<CallSettingsMenuDevice device="device"/>
</t>
</select>
@@ -4,15 +4,16 @@ import { browser } from "@web/core/browser/browser";
import { registerModel } from '@mail/model/model_core';
import { clear } from '@mail/model/model_field_command';
import { one } from '@mail/model/model_field';
import { attr, one } from '@mail/model/model_field';
registerModel({
name: 'CallSettingsMenu',
identifyingMode: 'xor',
lifecycleHooks: {
_created() {
async _created() {
browser.addEventListener('keydown', this._onKeyDown);
browser.addEventListener('keyup', this._onKeyUp);
this.update({ userDevices: await this.messaging.browser.navigator.mediaDevices.enumerateDevices() });
},
_willDelete() {
browser.removeEventListener('keydown', this._onKeyDown);
@@ -130,6 +131,9 @@ registerModel({
identifying: true,
inverse: 'callSettingsMenu',
}),
userDevices: attr({
default: [],
}),
userSetting: one('UserSetting', {
related: 'messaging.userSetting',
}),