xmpp.chapril.org-conversejs/src/converse-http-file-upload.js

59 lines
2.1 KiB
JavaScript
Raw Normal View History

(function (root, factory) {
2018-03-29 20:22:05 +02:00
define([
"converse-core",
"tpl!toolbar_fileupload"
], factory);
}(this, function (converse, tpl_toolbar_fileupload) {
"use strict";
const { Promise, Strophe, _ } = converse.env;
const u = converse.env.utils;
Strophe.addNamespace('HTTPUPLOAD', 'urn:xmpp:http:upload:0');
converse.plugins.add('converse-http-file-upload', {
/* Plugin dependencies are other plugins which might be
* overridden or relied upon, and therefore need to be loaded before
* this plugin.
*
* If the setting "strict_plugin_dependencies" is set to true,
* an error will be raised if the plugin is not found. By default it's
* false, which means these plugins are only loaded opportunistically.
*
* NB: These plugins need to have already been loaded via require.js.
*/
dependencies: ["converse-chatview"],
overrides: {
ChatBoxView: {
addFileUploadButton (options) {
2018-03-29 20:22:05 +02:00
const { __ } = this.__super__._converse;
this.el.querySelector('.chat-toolbar').insertAdjacentHTML(
'beforeend',
tpl_toolbar_fileupload({'tooltip_upload_file': __('Choose a file to send')}));
},
renderToolbar (toolbar, options) {
const { _converse } = this.__super__;
const result = this.__super__.renderToolbar.apply(this, arguments);
_converse.api.disco.supports(Strophe.NS.HTTPUPLOAD, _converse.domain)
2018-03-29 20:22:05 +02:00
.then((result) => {
if (result.length) {
this.addFileUploadButton();
}
});
return result;
}
}
},
initialize () {
/* The initialize function gets called as soon as the plugin is
* loaded by converse.js's plugin machinery.
*/
const { _converse } = this;
}
});
}));