Update plugins to not depend on converse-core

To illustrate that this is not necessary (and also not possible with
non-bundled plugins).
This commit is contained in:
JC Brand 2016-12-20 10:42:20 +00:00
parent b701c4830f
commit 9b48b2d6bd
17 changed files with 285 additions and 227 deletions

View File

@ -78,8 +78,8 @@ Below is an example code that wraps converse.js as an angular.js service.
"converse-headline", // Support for headline messages
// END: Removable components
], function(converse_api) {
service.api = converse_api;
], function(converse) {
service.api = converse;
return deferred.resolve();
});
require(["converse"]);

View File

@ -16,7 +16,6 @@
"moment_with_locales",
"strophe",
"utils",
"converse-core",
"converse-api",
"converse-muc",
"tpl!chatroom_bookmark_form",
@ -27,26 +26,18 @@
factory);
}(this, function (
$, _, moment, strophe, utils,
_converse, converse_api, muc,
converse, muc,
tpl_chatroom_bookmark_form,
tpl_chatroom_bookmark_toggle,
tpl_bookmark,
tpl_bookmarks_list
) {
var __ = utils.__.bind(_converse),
___ = utils.___,
Strophe = converse_api.env.Strophe,
$iq = converse_api.env.$iq,
b64_sha1 = converse_api.env.b64_sha1;
var Strophe = converse.env.Strophe,
$iq = converse.env.$iq,
b64_sha1 = converse.env.b64_sha1;
// Add new HTML templates.
_converse.templates.chatroom_bookmark_form = tpl_chatroom_bookmark_form;
_converse.templates.chatroom_bookmark_toggle = tpl_chatroom_bookmark_toggle;
_converse.templates.bookmark = tpl_bookmark;
_converse.templates.bookmarks_list = tpl_bookmarks_list;
converse_api.plugins.add('converse-bookmarks', {
converse.plugins.add('converse-bookmarks', {
overrides: {
// Overrides mentioned here will be picked up by converse.js's
// plugin architecture they will replace existing methods on the
@ -73,7 +64,9 @@
},
generateHeadingHTML: function () {
var html = this.__super__.generateHeadingHTML.apply(this, arguments);
var _converse = this.__super__._converse,
__ = _converse.__,
html = this.__super__.generateHeadingHTML.apply(this, arguments);
if (_converse.allow_bookmarks) {
var div = document.createElement('div');
div.innerHTML = html;
@ -97,6 +90,7 @@
* for this room, and if so use it.
* Otherwise delegate to the super method.
*/
var _converse = this.__super__._converse;
if (_.isUndefined(_converse.bookmarks) || !_converse.allow_bookmarks) {
return this.__super__.checkForReservedNick.apply(this, arguments);
}
@ -119,6 +113,7 @@
setBookmarkState: function () {
/* Set whether the room is bookmarked or not.
*/
var _converse = this.__super__._converse;
if (!_.isUndefined(_converse.bookmarks)) {
var models = _converse.bookmarks.where({'jid': this.model.get('jid')});
if (!models.length) {
@ -130,7 +125,9 @@
},
renderBookmarkForm: function () {
var $body = this.$('.chatroom-body');
var _converse = this.__super__._converse,
__ = _converse.__,
$body = this.$('.chatroom-body');
$body.children().addClass('hidden');
// Remove any existing forms
$body.find('form.chatroom-form').remove();
@ -150,6 +147,7 @@
onBookmarkFormSubmitted: function (ev) {
ev.preventDefault();
var _converse = this.__super__._converse;
var $form = $(ev.target), that = this;
_converse.bookmarks.createBookmark({
'jid': this.model.get('jid'),
@ -169,6 +167,7 @@
ev.preventDefault();
ev.stopPropagation();
}
var _converse = this.__super__._converse;
var models = _converse.bookmarks.where({'jid': this.model.get('jid')});
if (!models.length) {
this.renderBookmarkForm();
@ -186,7 +185,16 @@
/* The initialize function gets called as soon as the plugin is
* loaded by converse.js's plugin machinery.
*/
var _converse = this._converse;
var _converse = this._converse,
__ = _converse.__,
___ = _converse.___;
// Add new HTML templates.
_converse.templates.chatroom_bookmark_form = tpl_chatroom_bookmark_form;
_converse.templates.chatroom_bookmark_toggle = tpl_chatroom_bookmark_toggle;
_converse.templates.bookmark = tpl_bookmark;
_converse.templates.bookmarks_list = tpl_bookmarks_list;
// Configuration values for this plugin
// ====================================
// Refer to docs/source/configuration.rst for explanations of these

View File

@ -8,7 +8,6 @@
(function (root, factory) {
define("converse-chatview", [
"converse-core",
"converse-api",
"tpl!chatbox",
"tpl!new_day",
@ -18,8 +17,7 @@
"tpl!avatar"
], factory);
}(this, function (
_converse,
converse_api,
converse,
tpl_chatbox,
tpl_new_day,
tpl_action,
@ -28,28 +26,19 @@
tpl_avatar
) {
"use strict";
_converse.templates.chatbox = tpl_chatbox;
_converse.templates.new_day = tpl_new_day;
_converse.templates.action = tpl_action;
_converse.templates.message = tpl_message;
_converse.templates.toolbar = tpl_toolbar;
_converse.templates.avatar = tpl_avatar;
var $ = converse_api.env.jQuery,
utils = converse_api.env.utils,
Strophe = converse_api.env.Strophe,
$msg = converse_api.env.$msg,
_ = converse_api.env._,
__ = utils.__.bind(_converse),
moment = converse_api.env.moment;
var $ = converse.env.jQuery,
utils = converse.env.utils,
Strophe = converse.env.Strophe,
$msg = converse.env.$msg,
_ = converse.env._,
moment = converse.env.moment;
var KEY = {
ENTER: 13,
FORWARD_SLASH: 47
};
converse_api.plugins.add('converse-chatview', {
converse.plugins.add('converse-chatview', {
overrides: {
// Overrides mentioned here will be picked up by converse.js's
@ -60,6 +49,7 @@
ChatBoxViews: {
onChatBoxAdded: function (item) {
var _converse = this.__super__._converse;
var view = this.get(item.get('id'));
if (!view) {
view = new _converse.ChatBoxView({model: item});
@ -77,6 +67,17 @@
/* The initialize function gets called as soon as the plugin is
* loaded by converse.js's plugin machinery.
*/
var _converse = this._converse,
__ = _converse.__;
// Add new HTML templates.
_converse.templates.chatbox = tpl_chatbox;
_converse.templates.new_day = tpl_new_day;
_converse.templates.action = tpl_action;
_converse.templates.message = tpl_message;
_converse.templates.toolbar = tpl_toolbar;
_converse.templates.avatar = tpl_avatar;
this.updateSettings({
show_toolbar: true,
chatview_avatar_width: 32,

View File

@ -8,7 +8,6 @@
(function (root, factory) {
define("converse-controlbox", [
"converse-core",
"converse-api",
"tpl!add_contact_dropdown",
"tpl!add_contact_form",
@ -27,8 +26,7 @@
"converse-rosterview"
], factory);
}(this, function (
_converse,
converse_api,
converse,
tpl_add_contact_dropdown,
tpl_add_contact_form,
tpl_change_status_message,
@ -44,33 +42,19 @@
tpl_status_option
) {
"use strict";
_converse.templates.add_contact_dropdown = tpl_add_contact_dropdown;
_converse.templates.add_contact_form = tpl_add_contact_form;
_converse.templates.change_status_message = tpl_change_status_message;
_converse.templates.chat_status = tpl_chat_status;
_converse.templates.choose_status = tpl_choose_status;
_converse.templates.contacts_panel = tpl_contacts_panel;
_converse.templates.contacts_tab = tpl_contacts_tab;
_converse.templates.controlbox = tpl_controlbox;
_converse.templates.controlbox_toggle = tpl_controlbox_toggle;
_converse.templates.login_panel = tpl_login_panel;
_converse.templates.login_tab = tpl_login_tab;
_converse.templates.search_contact = tpl_search_contact;
_converse.templates.status_option = tpl_status_option;
var USERS_PANEL_ID = 'users';
// Strophe methods for building stanzas
var Strophe = converse_api.env.Strophe,
utils = converse_api.env.utils;
var Strophe = converse.env.Strophe,
utils = converse.env.utils;
// Other necessary globals
var $ = converse_api.env.jQuery,
_ = converse_api.env._,
__ = utils.__.bind(_converse),
moment = converse_api.env.moment;
var $ = converse.env.jQuery,
_ = converse.env._,
moment = converse.env.moment;
converse_api.plugins.add('converse-controlbox', {
converse.plugins.add('converse-controlbox', {
overrides: {
// Overrides mentioned here will be picked up by converse.js's
@ -132,6 +116,7 @@
ChatBoxViews: {
onChatBoxAdded: function (item) {
var _converse = this.__super__._converse;
if (item.get('box_id') === 'controlbox') {
var view = this.get(item.get('id'));
if (view) {
@ -148,6 +133,7 @@
},
closeAllChatBoxes: function () {
var _converse = this.__super__._converse;
this.each(function (view) {
if (_converse.disconnection_cause === _converse.LOGOUT ||
view.model.get('id') !== 'controlbox') {
@ -158,6 +144,7 @@
},
getChatBoxWidth: function (view) {
var _converse = this.__super__._converse;
var controlbox = this.get('controlbox');
if (view.model.get('id') === 'controlbox') {
/* We return the width of the controlbox or its toggle,
@ -191,6 +178,7 @@
ChatBoxView: {
insertIntoDOM: function () {
var _converse = this.__super__._converse;
this.$el.insertAfter(_converse.chatboxviews.get("controlbox").$el);
return this;
}
@ -201,7 +189,24 @@
/* The initialize function gets called as soon as the plugin is
* loaded by converse.js's plugin machinery.
*/
var _converse = this._converse;
var _converse = this._converse,
__ = _converse.__;
// Add new HTML templates.
_converse.templates.add_contact_dropdown = tpl_add_contact_dropdown;
_converse.templates.add_contact_form = tpl_add_contact_form;
_converse.templates.change_status_message = tpl_change_status_message;
_converse.templates.chat_status = tpl_chat_status;
_converse.templates.choose_status = tpl_choose_status;
_converse.templates.contacts_panel = tpl_contacts_panel;
_converse.templates.contacts_tab = tpl_contacts_tab;
_converse.templates.controlbox = tpl_controlbox;
_converse.templates.controlbox_toggle = tpl_controlbox_toggle;
_converse.templates.login_panel = tpl_login_panel;
_converse.templates.login_tab = tpl_login_tab;
_converse.templates.search_contact = tpl_search_contact;
_converse.templates.status_option = tpl_status_option;
this.updateSettings({
allow_logout: true,
default_domain: undefined,

View File

@ -171,7 +171,8 @@
// Translation machinery
// ---------------------
var __ = utils.__.bind(this);
var __ = _converse.__ = utils.__.bind(_converse);
_converse.___ = utils.___;
var DESC_GROUP_TOGGLE = __('Click to hide these contacts');
// Default configuration values
@ -1133,7 +1134,7 @@
* Note: this method gets completely overridden by converse-vcard.js
*/
var bare_jid = Strophe.getBareJidFromJid(presence.getAttribute('from'));
var nick_el = presence.querySelector('nick[xmlns='+Strophe.NS.NICK+']');
var nick_el = presence.querySelector('nick[xmlns="'+Strophe.NS.NICK+'"]');
var user_data = {
jid: bare_jid,
subscription: 'none',

View File

@ -8,20 +8,18 @@
(function (root, factory) {
define("converse-dragresize", [
"converse-core",
"converse-api",
"tpl!dragresize",
"converse-chatview",
"converse-muc", // XXX: would like to remove this
"converse-controlbox"
], factory);
}(this, function (_converse, converse_api, tpl_dragresize) {
}(this, function (converse, tpl_dragresize) {
"use strict";
var $ = converse_api.env.jQuery,
_ = converse_api.env._;
_converse.templates.dragresize = tpl_dragresize;
var $ = converse.env.jQuery,
_ = converse.env._;
converse_api.plugins.add('converse-dragresize', {
converse.plugins.add('converse-dragresize', {
overrides: {
// Overrides mentioned here will be picked up by converse.js's
@ -31,38 +29,41 @@
// New functions which don't exist yet can also be added.
registerGlobalEventHandlers: function () {
var that = this;
$(document).on('mousemove', function (ev) {
if (!this.resizing || !this.allow_dragresize) { return true; }
if (!that.resizing || !that.allow_dragresize) { return true; }
ev.preventDefault();
this.resizing.chatbox.resizeChatBox(ev);
}.bind(this));
that.resizing.chatbox.resizeChatBox(ev);
});
$(document).on('mouseup', function (ev) {
if (!this.resizing || !this.allow_dragresize) { return true; }
if (!that.resizing || !that.allow_dragresize) { return true; }
ev.preventDefault();
var height = this.applyDragResistance(
this.resizing.chatbox.height,
this.resizing.chatbox.model.get('default_height')
var height = that.applyDragResistance(
that.resizing.chatbox.height,
that.resizing.chatbox.model.get('default_height')
);
var width = this.applyDragResistance(
this.resizing.chatbox.width,
this.resizing.chatbox.model.get('default_width')
var width = that.applyDragResistance(
that.resizing.chatbox.width,
that.resizing.chatbox.model.get('default_width')
);
if (this.connection.connected) {
this.resizing.chatbox.model.save({'height': height});
this.resizing.chatbox.model.save({'width': width});
if (that.connection.connected) {
that.resizing.chatbox.model.save({'height': height});
that.resizing.chatbox.model.save({'width': width});
} else {
this.resizing.chatbox.model.set({'height': height});
this.resizing.chatbox.model.set({'width': width});
that.resizing.chatbox.model.set({'height': height});
that.resizing.chatbox.model.set({'width': width});
}
this.resizing = null;
}.bind(this));
that.resizing = null;
});
return this.__super__.registerGlobalEventHandlers.apply(this, arguments);
},
ChatBox: {
initialize: function () {
var _converse = this.__super__._converse;
var result = this.__super__.initialize.apply(this, arguments),
height = this.get('height'), width = this.get('width'),
save = this.get('id') === 'controlbox' ? this.set.bind(this) : this.save.bind(this);
@ -109,6 +110,7 @@
/* Determine and store the default box size.
* We need this information for the drag-resizing feature.
*/
var _converse = this.__super__._converse;
var $flyout = this.$el.find('.box-flyout');
if (_.isUndefined(this.model.get('height'))) {
var height = $flyout.height();
@ -140,6 +142,7 @@
},
setChatBoxHeight: function (height) {
var _converse = this.__super__._converse;
if (height) {
height = _converse.applyDragResistance(height, this.model.get('default_height'))+'px';
} else {
@ -149,6 +152,7 @@
},
setChatBoxWidth: function (width) {
var _converse = this.__super__._converse;
if (width) {
width = _converse.applyDragResistance(width, this.model.get('default_width'))+'px';
} else {
@ -176,6 +180,7 @@
},
onStartVerticalResize: function (ev) {
var _converse = this.__super__._converse;
if (!_converse.allow_dragresize) { return true; }
// Record element attributes for mouseMove().
this.height = this.$el.children('.box-flyout').height();
@ -187,6 +192,7 @@
},
onStartHorizontalResize: function (ev) {
var _converse = this.__super__._converse;
if (!_converse.allow_dragresize) { return true; }
this.width = this.$el.children('.box-flyout').width();
_converse.resizing = {
@ -197,6 +203,7 @@
},
onStartDiagonalResize: function (ev) {
var _converse = this.__super__._converse;
this.onStartHorizontalResize(ev);
this.onStartVerticalResize(ev);
_converse.resizing.direction = 'topleft';
@ -204,6 +211,7 @@
resizeChatBox: function (ev) {
var diff;
var _converse = this.__super__._converse;
if (_converse.resizing.direction.indexOf('top') === 0) {
diff = ev.pageY - this.prev_pageY;
if (diff) {
@ -286,6 +294,7 @@
},
renderDragResizeHandles: function () {
var _converse = this.__super__._converse;
var flyout = this.el.querySelector('.box-flyout');
var div = document.createElement('div');
div.innerHTML = _converse.templates.dragresize();
@ -302,9 +311,14 @@
* loaded by converse.js's plugin machinery.
*/
var _converse = this._converse;
// Add new HTML template
_converse.templates.dragresize = tpl_dragresize;
this.updateSettings({
allow_dragresize: true,
});
_converse.applyDragResistance = function (value, default_value) {
/* This method applies some resistance around the
* default_value. If value is close enough to

View File

@ -8,33 +8,15 @@
(function (root, factory) {
define("converse-headline", [
"converse-core",
"converse-api",
"converse-chatview"
], factory);
}(this, function (_converse, converse_api) {
}(this, function (converse) {
"use strict";
var _ = converse_api.env._,
utils = converse_api.env.utils,
__ = utils.__.bind(_converse);
var _ = converse.env._,
utils = converse.env.utils;
var onHeadlineMessage = function (message) {
/* Handler method for all incoming messages of type "headline".
*/
var from_jid = message.getAttribute('from');
if (utils.isHeadlineMessage(message)) {
_converse.chatboxes.create({
'id': from_jid,
'jid': from_jid,
'fullname': from_jid,
'type': 'headline'
}).createMessage(message, undefined, message);
_converse.emit('message', message);
}
return true;
};
converse_api.plugins.add('converse-headline', {
converse.plugins.add('converse-headline', {
overrides: {
// Overrides mentioned here will be picked up by converse.js's
@ -45,6 +27,7 @@
ChatBoxViews: {
onChatBoxAdded: function (item) {
var _converse = this.__super__._converse;
var view = this.get(item.get('id'));
if (!view && item.get('type') === 'headline') {
view = new _converse.HeadlinesBoxView({model: item});
@ -61,6 +44,9 @@
/* The initialize function gets called as soon as the plugin is
* loaded by converse.js's plugin machinery.
*/
var _converse = this._converse,
__ = _converse.__;
_converse.HeadlinesBoxView = _converse.ChatBoxView.extend({
className: 'chatbox headlines',
@ -101,6 +87,22 @@
}
});
var onHeadlineMessage = function (message) {
/* Handler method for all incoming messages of type "headline".
*/
var from_jid = message.getAttribute('from');
if (utils.isHeadlineMessage(message)) {
_converse.chatboxes.create({
'id': from_jid,
'jid': from_jid,
'fullname': from_jid,
'type': 'headline'
}).createMessage(message, undefined, message);
_converse.emit('message', message);
}
return true;
};
var registerHeadlineHandler = function () {
_converse.connection.addHandler(
onHeadlineMessage, null, 'message');

View File

@ -10,19 +10,18 @@
(function (root, factory) {
define("converse-mam", [
"converse-core",
"converse-api",
"converse-chatview", // Could be made a soft dependency
"converse-muc", // Could be made a soft dependency
"strophe.rsm"
], factory);
}(this, function (_converse, converse_api) {
}(this, function (converse) {
"use strict";
var $ = converse_api.env.jQuery,
Strophe = converse_api.env.Strophe,
$iq = converse_api.env.$iq,
_ = converse_api.env._,
moment = converse_api.env.moment;
var $ = converse.env.jQuery,
Strophe = converse.env.Strophe,
$iq = converse.env.$iq,
_ = converse.env._,
moment = converse.env.moment;
var RSM_ATTRIBUTES = ['max', 'first', 'last', 'after', 'before', 'index', 'count'];
// XEP-0313 Message Archive Management
@ -32,7 +31,7 @@
Strophe.addNamespace('RSM', 'http://jabber.org/protocol/rsm');
converse_api.plugins.add('converse-mam', {
converse.plugins.add('converse-mam', {
overrides: {
// Overrides mentioned here will be picked up by converse.js's
@ -43,6 +42,7 @@
Features: {
addClientFeatures: function () {
var _converse = this.__super__._converse;
_converse.connection.disco.addFeature(Strophe.NS.MAM);
return this.__super__.addClientFeatures.apply(this, arguments);
}
@ -66,6 +66,7 @@
},
afterMessagesFetched: function () {
var _converse = this.__super__._converse;
if (this.disable_mam || !_converse.features.findWhere({'var': Strophe.NS.MAM})) {
return this.__super__.afterMessagesFetched.apply(this, arguments);
}
@ -88,6 +89,7 @@
* Then, upon receiving them, call onMessage on the chat box,
* so that they are displayed inside it.
*/
var _converse = this.__super__._converse;
if (!_converse.features.findWhere({'var': Strophe.NS.MAM})) {
_converse.log("Attempted to fetch archived messages but this user's server doesn't support XEP-0313");
return;
@ -110,6 +112,7 @@
},
onScroll: function (ev) {
var _converse = this.__super__._converse;
if ($(ev.target).scrollTop() === 0 && this.model.messages.length) {
this.fetchArchivedMessages({
'before': this.model.messages.at(0).get('archive_id'),
@ -138,6 +141,8 @@
/* The initialize function gets called as soon as the plugin is
* loaded by Converse.js's plugin machinery.
*/
var _converse = this._converse;
this.updateSettings({
archived_messages_page_size: '20',
message_archiving: 'never', // Supported values are 'always', 'never', 'roster' (https://xmpp.org/extensions/xep-0313.html#prefs)

View File

@ -8,7 +8,6 @@
(function (root, factory) {
define("converse-minimize", [
"converse-core",
"converse-api",
"tpl!chatbox_minimize",
"tpl!toggle_chats",
@ -19,27 +18,19 @@
"converse-muc"
], factory);
}(this, function (
_converse,
converse_api,
converse,
tpl_chatbox_minimize,
tpl_toggle_chats,
tpl_trimmed_chat,
tpl_chats_panel
) {
"use strict";
_converse.templates.chatbox_minimize = tpl_chatbox_minimize;
_converse.templates.toggle_chats = tpl_toggle_chats;
_converse.templates.trimmed_chat = tpl_trimmed_chat;
_converse.templates.chats_panel = tpl_chats_panel;
var $ = converse.env.jQuery,
_ = converse.env._,
b64_sha1 = converse.env.b64_sha1,
moment = converse.env.moment;
var $ = converse_api.env.jQuery,
_ = converse_api.env._,
b64_sha1 = converse_api.env.b64_sha1,
moment = converse_api.env.moment,
utils = converse_api.env.utils,
__ = utils.__.bind(_converse);
converse_api.plugins.add('converse-minimize', {
converse.plugins.add('converse-minimize', {
overrides: {
// Overrides mentioned here will be picked up by converse.js's
@ -49,6 +40,7 @@
// New functions which don't exist yet can also be added.
initChatBoxes: function () {
var _converse = this.__super__._converse;
var result = this.__super__.initChatBoxes.apply(this, arguments);
_converse.minimized_chats = new _converse.MinimizedChats({
model: _converse.chatboxes
@ -57,6 +49,7 @@
},
registerGlobalEventHandlers: function () {
var _converse = this.__super__._converse;
$(window).on("resize", _.debounce(function (ev) {
if (_converse.connection.connected) {
_converse.chatboxviews.trimChats();
@ -114,6 +107,7 @@
},
_show: function () {
var _converse = this.__super__._converse;
this.__super__._show.apply(this, arguments);
if (!this.model.get('minimized')) {
_converse.chatboxviews.trimChats(this);
@ -147,6 +141,7 @@
maximize: function () {
// Restores a minimized chat box
var _converse = this.__super__._converse;
this.$el.insertAfter(_converse.chatboxviews.get("controlbox").$el);
this.show();
_converse.emit('chatBoxMaximized', this);
@ -154,6 +149,7 @@
},
minimize: function (ev) {
var _converse = this.__super__._converse;
if (ev && ev.preventDefault) { ev.preventDefault(); }
// save the scroll position to restore it on maximize
this.model.save({'scroll': this.$content.scrollTop()});
@ -184,6 +180,8 @@
},
generateHeadingHTML: function () {
var _converse = this.__super__._converse,
__ = _converse.__;
var html = this.__super__.generateHeadingHTML.apply(this, arguments);
var div = document.createElement('div');
div.innerHTML = html;
@ -243,6 +241,7 @@
* another chat box. Otherwise it minimizes the oldest chat box
* to create space.
*/
var _converse = this.__super__._converse;
var shown_chats = this.getShownChats();
if (_converse.no_trimming || shown_chats.length <= 1) {
return;
@ -301,6 +300,15 @@
/* The initialize function gets called as soon as the plugin is
* loaded by Converse.js's plugin machinery.
*/
var _converse = this._converse,
__ = _converse.__;
// Add new HTML templates.
_converse.templates.chatbox_minimize = tpl_chatbox_minimize;
_converse.templates.toggle_chats = tpl_toggle_chats;
_converse.templates.trimmed_chat = tpl_trimmed_chat;
_converse.templates.chats_panel = tpl_chats_panel;
this.updateSettings({
no_trimming: false, // Set to true for phantomjs tests (where browser apparently has no width)
});

View File

@ -32,7 +32,7 @@
], factory);
}(this, function (
_converse,
converse_api,
converse,
tpl_chatarea,
tpl_chatroom,
tpl_chatroom_form,
@ -66,17 +66,17 @@
var ROOMS_PANEL_ID = 'chatrooms';
// Strophe methods for building stanzas
var Strophe = converse_api.env.Strophe,
$iq = converse_api.env.$iq,
$build = converse_api.env.$build,
$msg = converse_api.env.$msg,
$pres = converse_api.env.$pres,
b64_sha1 = converse_api.env.b64_sha1,
utils = converse_api.env.utils;
var Strophe = converse.env.Strophe,
$iq = converse.env.$iq,
$build = converse.env.$build,
$msg = converse.env.$msg,
$pres = converse.env.$pres,
b64_sha1 = converse.env.b64_sha1,
utils = converse.env.utils;
// Other necessary globals
var $ = converse_api.env.jQuery,
_ = converse_api.env._,
moment = converse_api.env.moment;
var $ = converse.env.jQuery,
_ = converse.env._,
moment = converse.env.moment;
// For translations
var __ = utils.__.bind(_converse);
@ -89,7 +89,7 @@
Strophe.addNamespace('MUC_ROOMCONF', Strophe.NS.MUC + "#roomconfig");
Strophe.addNamespace('MUC_USER', Strophe.NS.MUC + "#user");
converse_api.plugins.add('converse-muc', {
converse.plugins.add('converse-muc', {
/* Optional dependencies are other plugins which might be
* overridden or relied upon, if they exist, otherwise they're ignored.
*

View File

@ -7,25 +7,26 @@
/*global define */
(function (root, factory) {
define("converse-notification", ["converse-core", "converse-api"], factory);
}(this, function (_converse, converse_api) {
define("converse-notification", ["converse-api"], factory);
}(this, function (converse) {
"use strict";
var $ = converse_api.env.jQuery,
utils = converse_api.env.utils,
Strophe = converse_api.env.Strophe,
_ = converse_api.env._;
// For translations
var __ = utils.__.bind(_converse);
var ___ = utils.___;
var $ = converse.env.jQuery,
utils = converse.env.utils,
Strophe = converse.env.Strophe,
_ = converse.env._;
converse_api.plugins.add('converse-notification', {
converse.plugins.add('converse-notification', {
initialize: function () {
/* The initialize function gets called as soon as the plugin is
* loaded by converse.js's plugin machinery.
*/
var _converse = this._converse;
// For translations
var __ = _converse.__;
var ___ = _converse.___;
_converse.supports_html5_notification = "Notification" in window;
this.updateSettings({

View File

@ -12,23 +12,18 @@
(function (root, factory) {
define("converse-otr", [
"otr",
"converse-core",
"converse-api",
"tpl!toolbar_otr"
], factory);
}(this, function (otr, _converse, converse_api, tpl_toolbar_otr) {
}(this, function (otr, converse, tpl_toolbar_otr) {
"use strict";
_converse.templates.toolbar_otr = tpl_toolbar_otr;
// Strophe methods for building stanzas
var Strophe = converse_api.env.Strophe,
utils = converse_api.env.utils,
b64_sha1 = converse_api.env.b64_sha1;
var Strophe = converse.env.Strophe,
utils = converse.env.utils,
b64_sha1 = converse.env.b64_sha1;
// Other necessary globals
var $ = converse_api.env.jQuery,
_ = converse_api.env._;
// For translations
var __ = utils.__.bind(_converse);
var $ = converse.env.jQuery,
_ = converse.env._;
var HAS_CSPRNG = ((!_.isUndefined(crypto)) &&
((_.isFunction(crypto.randomBytes)) || (_.isFunction(crypto.getRandomValues))
@ -51,7 +46,7 @@
OTR_CLASS_MAPPING[VERIFIED] = 'verified';
OTR_CLASS_MAPPING[FINISHED] = 'finished';
converse_api.plugins.add('converse-otr', {
converse.plugins.add('converse-otr', {
overrides: {
// Overrides mentioned here will be picked up by converse.js's
@ -135,7 +130,8 @@
},
getSession: function (callback) {
var _converse = this.__super__._converse;
var _converse = this.__super__._converse,
__ = _converse.__;
var cipher = CryptoJS.lib.PasswordBasedCipher;
var pass, instance_tag, saved_key, pass_check;
if (_converse.cache_otr_key) {
@ -195,6 +191,8 @@
onSMP: function (type, data) {
// Event handler for SMP (Socialist's Millionaire Protocol)
// used by OTR (off-the-record).
var _converse = this.__super__._converse,
__ = _converse.__;
switch (type) {
case 'question':
this.otr.smpSecret(prompt(__(
@ -224,6 +222,8 @@
// If 'query_msg' is passed in, it means there is an alread incoming
// query message from our contact. Otherwise, it is us who will
// send the query message to them.
var _converse = this.__super__._converse,
__ = _converse.__;
this.save({'otr_status': UNENCRYPTED});
this.getSession(function (session) {
var _converse = this.__super__._converse;
@ -331,8 +331,10 @@
},
informOTRChange: function () {
var data = this.model.toJSON();
var msgs = [];
var _converse = this.__super__._converse,
__ = _converse.__,
data = this.model.toJSON(),
msgs = [];
if (data.otr_status === UNENCRYPTED) {
msgs.push(__("Your messages are not encrypted anymore"));
} else if (data.otr_status === UNVERIFIED) {
@ -346,7 +348,8 @@
},
showOTRError: function (msg) {
var _converse = this.__super__._converse;
var _converse = this.__super__._converse,
__ = _converse.__;
if (msg === 'Message cannot be sent at this time.') {
this.showHelpMessages(
[__('Your message could not be sent')], 'error');
@ -378,9 +381,10 @@
},
authOTR: function (ev) {
var _converse = this.__super__._converse;
var scheme = $(ev.target).data().scheme;
var result, question, answer;
var _converse = this.__super__._converse,
__ = _converse.__,
scheme = $(ev.target).data().scheme,
result, question, answer;
if (scheme === 'fingerprint') {
result = confirm(__('Here are the fingerprints, please confirm them with %1$s, outside of this chat.\n\nFingerprint for you, %2$s: %3$s\n\nFingerprint for %1$s: %4$s\n\nIf you have confirmed that the fingerprints match, click OK, otherwise click Cancel.', [
this.model.get('fullname'),
@ -412,7 +416,9 @@
},
getOTRTooltip: function () {
var data = this.model.toJSON();
var _converse = this.__super__._converse,
__ = _converse.__,
data = this.model.toJSON();
if (data.otr_status === UNENCRYPTED) {
return __('Your messages are not encrypted. Click here to enable OTR encryption.');
} else if (data.otr_status === UNVERIFIED) {
@ -425,7 +431,8 @@
},
renderToolbar: function (toolbar, options) {
var _converse = this.__super__._converse;
var _converse = this.__super__._converse,
__ = _converse.__;
if (!_converse.show_toolbar) {
return;
}
@ -461,7 +468,12 @@
/* The initialize function gets called as soon as the plugin is
* loaded by converse.js's plugin machinery.
*/
var _converse = this._converse;
var _converse = this._converse,
__ = _converse.__;
// Add new HTML template
_converse.templates.toolbar_otr = tpl_toolbar_otr;
// Translation aware constants
// ---------------------------
// We can only call the __ translation method *after* converse.js

View File

@ -11,16 +11,15 @@
*/
(function (root, factory) {
define("converse-ping", [
"converse-core",
"converse-api",
"strophe.ping"
], factory);
}(this, function (_converse, converse_api) {
}(this, function (converse) {
"use strict";
// Strophe methods for building stanzas
var Strophe = converse_api.env.Strophe;
var Strophe = converse.env.Strophe;
converse_api.plugins.add('converse-ping', {
converse.plugins.add('converse-ping', {
initialize: function () {
/* The initialize function gets called as soon as the plugin is

View File

@ -11,7 +11,6 @@
*/
(function (root, factory) {
define("converse-register", [
"converse-core",
"converse-api",
"tpl!form_username",
"tpl!register_panel",
@ -21,8 +20,7 @@
"converse-controlbox"
], factory);
}(this, function (
_converse,
converse_api,
converse,
tpl_form_username,
tpl_register_panel,
tpl_register_tab,
@ -30,21 +28,14 @@
tpl_registration_request) {
"use strict";
_converse.templates.form_username = tpl_form_username;
_converse.templates.register_panel = tpl_register_panel;
_converse.templates.register_tab = tpl_register_tab;
_converse.templates.registration_form = tpl_registration_form;
_converse.templates.registration_request = tpl_registration_request;
// Strophe methods for building stanzas
var Strophe = converse_api.env.Strophe,
utils = converse_api.env.utils,
$iq = converse_api.env.$iq;
var Strophe = converse.env.Strophe,
utils = converse.env.utils,
$iq = converse.env.$iq;
// Other necessary globals
var $ = converse_api.env.jQuery,
_ = converse_api.env._;
// For translations
var __ = utils.__.bind(_converse);
var $ = converse.env.jQuery,
_ = converse.env._;
// Add Strophe Namespaces
Strophe.addNamespace('REGISTER', 'jabber:iq:register');
@ -59,7 +50,7 @@
Strophe.Status.CONFLICT = i + 3;
Strophe.Status.NOTACCEPTABLE = i + 5;
converse_api.plugins.add('converse-register', {
converse.plugins.add('converse-register', {
overrides: {
// Overrides mentioned here will be picked up by converse.js's
@ -92,7 +83,15 @@
/* The initialize function gets called as soon as the plugin is
* loaded by converse.js's plugin machinery.
*/
var _converse = this._converse;
var _converse = this._converse,
__ = _converse.__;
// Add new templates
_converse.templates.form_username = tpl_form_username;
_converse.templates.register_panel = tpl_register_panel;
_converse.templates.register_tab = tpl_register_tab;
_converse.templates.registration_form = tpl_registration_form;
_converse.templates.registration_request = tpl_registration_request;
this.updateSettings({
allow_registration: true,
@ -100,7 +99,6 @@
providers_link: 'https://xmpp.net/directory.php', // Link to XMPP providers shown on registration page
});
_converse.RegisterPanel = Backbone.View.extend({
tagName: 'div',
id: "register",

View File

@ -8,7 +8,6 @@
(function (root, factory) {
define("converse-rosterview", [
"converse-core",
"converse-api",
"tpl!group_header",
"tpl!pending_contact",
@ -17,29 +16,21 @@
"tpl!roster_item"
], factory);
}(this, function (
_converse,
converse_api,
converse,
tpl_group_header,
tpl_pending_contact,
tpl_requesting_contact,
tpl_roster,
tpl_roster_item) {
"use strict";
_converse.templates.group_header = tpl_group_header;
_converse.templates.pending_contact = tpl_pending_contact;
_converse.templates.requesting_contact = tpl_requesting_contact;
_converse.templates.roster = tpl_roster;
_converse.templates.roster_item = tpl_roster_item;
var $ = converse.env.jQuery,
utils = converse.env.utils,
Strophe = converse.env.Strophe,
$iq = converse.env.$iq,
b64_sha1 = converse.env.b64_sha1,
_ = converse.env._;
var $ = converse_api.env.jQuery,
utils = converse_api.env.utils,
Strophe = converse_api.env.Strophe,
$iq = converse_api.env.$iq,
b64_sha1 = converse_api.env.b64_sha1,
_ = converse_api.env._,
__ = utils.__.bind(_converse);
converse_api.plugins.add('rosterview', {
converse.plugins.add('rosterview', {
overrides: {
// Overrides mentioned here will be picked up by converse.js's
@ -66,6 +57,7 @@
comparator: function () {
// RosterGroupsComparator only gets set later (once i18n is
// set up), so we need to wrap it in this nameless function.
var _converse = this.__super__._converse;
return _converse.RosterGroupsComparator.apply(this, arguments);
}
}
@ -76,6 +68,16 @@
/* The initialize function gets called as soon as the plugin is
* loaded by converse.js's plugin machinery.
*/
var _converse = this._converse,
__ = _converse.__;
// Add new HTML templates
_converse.templates.group_header = tpl_group_header;
_converse.templates.pending_contact = tpl_pending_contact;
_converse.templates.requesting_contact = tpl_requesting_contact;
_converse.templates.roster = tpl_roster;
_converse.templates.roster_item = tpl_roster_item;
this.updateSettings({
allow_chat_pending_contacts: true,
allow_contact_removal: true,

View File

@ -8,18 +8,17 @@
(function (root, factory) {
define("converse-vcard", [
"converse-core",
"converse-api",
"strophe.vcard",
], factory);
}(this, function (_converse, converse_api) {
}(this, function (converse) {
"use strict";
var Strophe = converse_api.env.Strophe,
$ = converse_api.env.jQuery,
_ = converse_api.env._,
moment = converse_api.env.moment;
var Strophe = converse.env.Strophe,
$ = converse.env.jQuery,
_ = converse.env._,
moment = converse.env.moment;
converse_api.plugins.add('converse-vcard', {
converse.plugins.add('converse-vcard', {
overrides: {
// Overrides mentioned here will be picked up by converse.js's
@ -30,6 +29,7 @@
Features: {
addClientFeatures: function () {
var _converse = this.__super__._converse;
this.__super__.addClientFeatures.apply(this, arguments);
if (_converse.use_vcards) {
_converse.connection.disco.addFeature(Strophe.NS.VCARD);
@ -39,6 +39,7 @@
RosterContacts: {
createRequestingContact: function (presence) {
var _converse = this.__super__._converse;
var bare_jid = Strophe.getBareJidFromJid(presence.getAttribute('from'));
_converse.getVCard(
bare_jid,
@ -57,6 +58,7 @@
/* The initialize function gets called as soon as the plugin is
* loaded by converse.js's plugin machinery.
*/
var _converse = this._converse;
this.updateSettings({
use_vcards: true,
});

View File

@ -34,9 +34,9 @@ if (typeof define !== 'undefined') {
"converse-headline", // Support for headline messages
/* END: Removable components */
], function(converse_api) {
converse_api.env.jQuery(window).trigger('converse-loaded', converse_api);
window.converse = converse_api;
return converse_api;
], function(converse) {
converse.env.jQuery(window).trigger('converse-loaded', converse);
window.converse = converse;
return converse;
});
}