New release 4.0.0

This commit is contained in:
JC Brand 2018-09-07 16:20:30 +02:00
parent 201b8559b6
commit 09bb6b494d
67 changed files with 40536 additions and 23338 deletions

View File

@ -1,6 +1,6 @@
# Changelog
## 4.0.0 (Unreleased)
## 4.0.0 (2018-09-07)
## New Features

View File

@ -2,7 +2,7 @@
*
* An XMPP chat client that runs in the browser.
*
* Version: 3.3.4
* Version: 4.0.0
*
* Copyright: JC Brand 2012-2017
* Except for 3rd party dependencies.

View File

@ -71,7 +71,7 @@ serve_bg: dev
########################################################################
## Translation machinery
GETTEXT = xgettext --language="JavaScript" --keyword=__ --keyword=___ --from-code=UTF-8 --output=locale/converse.pot dist/converse-no-dependencies.js --package-name=Converse.js --copyright-holder="Jan-Carel Brand" --package-version=3.3.4 -c
GETTEXT = xgettext --language="JavaScript" --keyword=__ --keyword=___ --from-code=UTF-8 --output=locale/converse.pot dist/converse-no-dependencies.js --package-name=Converse.js --copyright-holder="Jan-Carel Brand" --package-version=4.0.0 -c
.PHONY: pot
pot: dist/converse-no-dependencies-es2015.js

View File

@ -5,6 +5,12 @@
* Copyright (c) 2013-2018, JC Brand <jc@opkode.com>
* Licensed under the Mozilla Public License
*/
@font-face {
font-family: 'ConverseFontAwesomeBrands';
font-style: normal;
font-weight: normal;
src: url("webfonts/fa-brands-400.eot");
src: url("webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("webfonts/fa-brands-400.woff2") format("woff2"), url("webfonts/fa-brands-400.woff") format("woff"), url("webfonts/fa-brands-400.ttf") format("truetype"), url("webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
@font-face {
font-family: 'ConverseFontAwesomeRegular';
font-style: normal;
@ -28,7 +34,10 @@
font-family: 'ConverseFontAwesomeSolid' !important;
font-weight: 900; }
.fa, .far, .fas {
.fab {
font-family: 'ConverseFontAwesomeBrands'; }
.fa, .far, .fas, .fab {
display: inline-block;
font-size: inherit;
text-rendering: auto;
@ -10899,7 +10908,7 @@ body.reset {
#conversejs.converse-overlayed #minimized-chats {
order: 100;
width: 130px;
margin-bottom: -1em;
margin-bottom: 0;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
color: white;

File diff suppressed because it is too large Load Diff

View File

@ -241,6 +241,8 @@ section h4 {
.banner-social-buttons {
padding-top: 3em; }
.banner-social-buttons a {
padding: 0.15em; }
::-moz-selection {
text-shadow: none;

File diff suppressed because one or more lines are too long

39
dist/converse.js vendored
View File

@ -58869,6 +58869,10 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
},
renderBookmarkToggle() {
if (this.el.querySelector('.chat-head .toggle-bookmark')) {
return;
}
const _converse = this.__super__._converse,
__ = _converse.__;
const bookmark_button = tpl_chatroom_bookmark_toggle(_.assignIn(this.model.toJSON(), {
@ -66874,16 +66878,14 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
msg.querySelector('.chat-msg__media').innerHTML = _.flow(_.partial(u.renderFileURL, _converse), _.partial(u.renderMovieURL, _converse), _.partial(u.renderAudioURL, _converse), _.partial(u.renderImageURL, _converse))(url);
}
const encrypted = this.model.get('encrypted');
let text = encrypted ? this.model.get('plaintext') : this.model.get('message');
if (is_me_message) {
text = text.replace(/^\/me/, '');
}
let text = this.getMessageText();
const msg_content = msg.querySelector('.chat-msg__text');
if (text !== url) {
if (text && text !== url) {
if (is_me_message) {
text = text.replace(/^\/me/, '');
}
text = xss.filterXSS(text, {
'whiteList': {}
});
@ -66961,8 +66963,16 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
this.model.message_versions_modal.show(ev);
},
getMessageText() {
if (this.model.get('is_encrypted')) {
return this.model.get('plaintext') || (_converse.debug ? __('Unencryptable OMEMO message') : null);
}
return this.model.get('message');
},
isMeCommand() {
const text = this.model.get('message');
const text = this.getMessageText();
if (!text) {
return false;
@ -69767,7 +69777,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
}
if (feature.get('var') === Strophe.NS.MUC) {
feature.getIdentity('conference', 'text').then(identity => {
feature.entity.getIdentity('conference', 'text').then(identity => {
if (identity) {
setMUCDomain(feature.get('from'), controlboxview);
}
@ -71572,6 +71582,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
const _converse$env = converse.env,
Strophe = _converse$env.Strophe,
_ = _converse$env._,
sizzle = _converse$env.sizzle,
u = converse.env.utils;
converse.plugins.add('converse-notification', {
dependencies: ["converse-chatboxes"],
@ -71725,10 +71736,13 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
return;
}
}
}
} // TODO: we should suppress notifications if we cannot decrypt
// the message...
const body = sizzle(`encrypted[xmlns="${Strophe.NS.OMEMO}"]`, message).length ? __('OMEMO Message received') : message.querySelector('body').textContent;
const n = new Notification(title, {
body: message.querySelector('body').textContent,
body: body,
lang: _converse.locale,
icon: _converse.notification_icon
});
@ -72299,6 +72313,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
if (this.get('omemo_active') && attrs.message) {
attrs['is_encrypted'] = true;
attrs['plaintext'] = attrs.message;
const message = this.messages.create(attrs);
this.getBundlesAndBuildSessions().then(devices => this.createOMEMOMessageStanza(message, devices)).then(stanza => this.sendMessageStanza(stanza)).catch(e => {
this.messages.create({

View File

@ -48,9 +48,9 @@ copyright = u'2018, JC Brand'
# built documents.
#
# The short X.Y version.
version = '3.3.4'
version = '4.0.0'
# The full version, including alpha/beta/rc tags.
release = '3.3.4'
release = '4.0.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.

View File

@ -22,8 +22,8 @@ The latest versions of these files are available at these URLs:
To load a specific version of Converse.js you can put the version in the URL, like so:
* https://cdn.conversejs.org/3.3.4/dist/converse.min.js
* https://cdn.conversejs.org/3.3.4/css/converse.min.css
* https://cdn.conversejs.org/4.0.0/dist/converse.min.js
* https://cdn.conversejs.org/4.0.0/css/converse.min.css
You can include these two URLs inside the *<head>* element of your website
via the *script* and *link* tags:

View File

@ -7,9 +7,9 @@
<link rel="shortcut icon" type="image/ico" href="css/images/favicon.ico"/>
<script type="text/javascript" src="inverse-analytics.js"></script>
<noscript><p><img src="//stats.opkode.com/piwik.php?idsite=5" style="border:0;" alt="" /></p></noscript>
<link type="text/css" rel="stylesheet" media="screen" href="css/converse.css" />
<link type="text/css" rel="stylesheet" media="screen" href="css/converse.min.css" />
<link type="text/css" rel="stylesheet" media="screen" href="css/fullpage.css" />
<script src="dist/converse.js"></script>
<script src="dist/converse.min.js"></script>
</head>
<body class="reset">
<div class="converse-content" style="display:none">

View File

@ -77,9 +77,7 @@
<h1 class="brand-heading converse-brand-heading"><i class="icon-conversejs"></i>Converse</h1>
<div class="col-md-8 col-md-offset-2">
<p class="intro-text">A free and open-source XMPP chat client in your browser</p>
<p>Now also available in a fullscreen version.
Check out <a href="https://inverse.chat" target="_blank" rel="noopener">inverse.chat</a>
</p>
<p>Also available as a <a href="https://conversejs.org/fullscreen.html">fullpage</a> app</p>
<p>
<a href="https://inverse.chat/#converse/room?jid=discuss@conference.conversejs.org"
@ -94,9 +92,9 @@
<div class="row">
<div class="col-md-8 col-md-offset-2 banner-social-buttons">
<ul class="list-inline">
<li><a href="https://twitter.com/jcopkode" class="btn btn-circle btn-lg" title="Twitter" target="_blank" rel="noopener"><i class="fa fa-twitter"></i></a></li>
<li><a href="https://twitter.com/jcopkode" class="btn btn-circle btn-lg" title="Twitter" target="_blank" rel="noopener"><i class="fab fa-twitter"></i></a></li>
<li><a href="https://mastodon.xyz/@jcbrand" class="btn btn-lg" title="Mastodon" target="_blank" rel="noopener"><img class="mastodon" src="/logo/mastodon.svg"/></a></li>
<li><a href="https://github.com/jcbrand/converse.js" class="btn btn-circle btn-lg" title="GitHub" target="_blank" rel="noopener"><i class="fa fa-github"></i></a></li>
<li><a href="https://github.com/jcbrand/converse.js" class="btn btn-circle btn-lg" title="GitHub" target="_blank" rel="noopener"><i class="fab fa-github"></i></a></li>
</ul>
</div>
</div>

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "converse.js",
"version": "3.3.4",
"version": "4.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@ -1,6 +1,6 @@
{
"name": "converse.js",
"version": "3.3.4",
"version": "4.0.0",
"description": "Browser based XMPP chat client",
"main": "dist/converse.js",
"directories": {

View File

@ -3,7 +3,7 @@
order: 100;
width: $minimized-chats-width;
margin-bottom: -2*$chat-gutter;
margin-bottom: 0;
border-top-left-radius: $chatbox-border-radius;
border-top-right-radius: $chatbox-border-radius;
color: $inverse-link-color;

View File

@ -275,6 +275,10 @@ section {
}
.banner-social-buttons {
padding-top: 3em;
a {
padding: 0.15em;
}
}
::-moz-selection {
text-shadow: none;

View File

@ -1,3 +1,16 @@
@font-face {
font-family: 'ConverseFontAwesomeBrands';
font-style: normal;
font-weight: normal;
src: url('webfonts/fa-brands-400.eot');
src: url('webfonts/fa-brands-400.eot?#iefix') format('embedded-opentype'),
url('webfonts/fa-brands-400.woff2') format('woff2'),
url('webfonts/fa-brands-400.woff') format('woff'),
url('webfonts/fa-brands-400.ttf') format('truetype'),
url('webfonts/fa-brands-400.svg#fontawesome') format('svg');
}
@font-face {
font-family: 'ConverseFontAwesomeRegular';
font-style: normal;
@ -33,8 +46,11 @@
font-family: 'ConverseFontAwesomeSolid' !important;
font-weight: 900;
}
.fab {
font-family: 'ConverseFontAwesomeBrands';
}
.fa, .far, .fas {
.fa, .far, .fas, .fab {
display: inline-block;
font-size: inherit;
text-rendering: auto;

View File

@ -2,7 +2,7 @@
*
* An XMPP chat client that runs in the browser.
*
* Version: 3.3.4
* Version: 4.0.0
*/
/* jshint ignore:start */