1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /**
- * @copyright 2022, the Converse.js contributors
- * @license Mozilla Public License (MPLv2)
- */
- import ChatBox from './model.js';
- import MessageMixin from './message.js';
- import ModelWithContact from './model-with-contact.js';
- import chat_api from './api.js';
- import { Collection } from "@converse/skeletor/src/collection";
- import { _converse, api, converse } from '../../core.js';
- import { autoJoinChats, handleMessageStanza, onClearSession, openChat, registerMessageHandlers } from './utils.js';
- converse.plugins.add('converse-chat', {
- /* Optional dependencies are other plugins which might be
- * overridden or relied upon, and therefore need to be loaded before
- * this plugin. They are called "optional" because they might not be
- * available, in which case any overrides applicable to them will be
- * ignored.
- *
- * It's possible however to make optional dependencies non-optional.
- * If the setting "strict_plugin_dependencies" is set to true,
- * an error will be raised if the plugin is not found.
- *
- * NB: These plugins need to have already been loaded via require.js.
- */
- dependencies: ['converse-chatboxes', 'converse-disco'],
- initialize () {
- // Configuration values for this plugin
- // ====================================
- // Refer to docs/source/configuration.rst for explanations of these
- // configuration settings.
- api.settings.extend({
- 'allow_message_corrections': 'all',
- 'allow_message_retraction': 'all',
- 'allow_message_styling': true,
- 'auto_join_private_chats': [],
- 'clear_messages_on_reconnection': false,
- 'filter_by_resource': false,
- 'prune_messages_above': undefined,
- 'pruning_behavior': 'unscrolled',
- 'send_chat_markers': ["received", "displayed", "acknowledged"],
- 'send_chat_state_notifications': true,
- });
- _converse.Message = ModelWithContact.extend(MessageMixin);
- _converse.Messages = Collection.extend({
- model: _converse.Message,
- comparator: 'time'
- });
- Object.assign(_converse, { ChatBox, handleMessageStanza });
- Object.assign(api, chat_api);
- _converse.router.route('converse/chat?jid=:jid', openChat);
- api.listen.on('chatBoxesFetched', autoJoinChats);
- api.listen.on('presencesInitialized', registerMessageHandlers);
- api.listen.on('clearSession', onClearSession);
- }
- });
|