Tower: upload web_notify 16.0.3.2.0 (via marketplace)
This commit is contained in:
@@ -0,0 +1,58 @@
|
|||||||
|
/** @odoo-module **/
|
||||||
|
|
||||||
|
import {registry} from "@web/core/registry";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The notificationSoundService is responsible for handling the playback of audio
|
||||||
|
* notifications when a new notification is added. This service integrates with
|
||||||
|
* the notification system and the effect service to provide audible feedback
|
||||||
|
* based on the type of notification.
|
||||||
|
*
|
||||||
|
* Dependencies:
|
||||||
|
* - notification: The service responsible for displaying notifications on the UI.
|
||||||
|
* - effect: The service that handles visual and auditory effects in the application.
|
||||||
|
*/
|
||||||
|
|
||||||
|
export const notificationSoundService = {
|
||||||
|
dependencies: ["notification", "effect"],
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Starts the notification sound service, enabling sound playback for notifications.
|
||||||
|
*
|
||||||
|
* @param {Object} env The environment object, providing access to various services.
|
||||||
|
* @param {Object} services An object containing the dependencies (notification, effect).
|
||||||
|
* @returns {Object} The add function, used to add notifications with sound.
|
||||||
|
*/
|
||||||
|
start(env, {notification, effect}) {
|
||||||
|
/**
|
||||||
|
* Adds a notification with an associated sound effect.
|
||||||
|
*
|
||||||
|
* @param {String} message The message to be displayed in the notification.
|
||||||
|
* @param {Object} [options={}] Additional options for the notification, such as type, sound and etc
|
||||||
|
* @returns {Function} A function to close the notification.
|
||||||
|
*/
|
||||||
|
function add(message, options = {}) {
|
||||||
|
const sound = options.sound || false;
|
||||||
|
delete options.sound; // Remove sound option from the options before passing to notification
|
||||||
|
|
||||||
|
const closeFn = notification.add(message, options);
|
||||||
|
|
||||||
|
if (sound)
|
||||||
|
// Trigger the audio effect.
|
||||||
|
effect.add({
|
||||||
|
type: "audio_effect",
|
||||||
|
src: sound,
|
||||||
|
volume: 0.8,
|
||||||
|
loop: false,
|
||||||
|
onEnded: () => {
|
||||||
|
// Placeholder for any action after sound ends
|
||||||
|
},
|
||||||
|
});
|
||||||
|
return closeFn;
|
||||||
|
}
|
||||||
|
return {add};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
// Register the notification sound service in the service registry
|
||||||
|
registry.category("services").add("notification_sound", notificationSoundService);
|
||||||
Reference in New Issue
Block a user