Commit 09bb6b49 authored by JC Brand's avatar JC Brand

New release 4.0.0

parent 201b8559
# Changelog # Changelog
## 4.0.0 (Unreleased) ## 4.0.0 (2018-09-07)
## New Features ## New Features
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* An XMPP chat client that runs in the browser. * An XMPP chat client that runs in the browser.
* *
* Version: 3.3.4 * Version: 4.0.0
* *
* Copyright: JC Brand 2012-2017 * Copyright: JC Brand 2012-2017
* Except for 3rd party dependencies. * Except for 3rd party dependencies.
......
...@@ -71,7 +71,7 @@ serve_bg: dev ...@@ -71,7 +71,7 @@ serve_bg: dev
######################################################################## ########################################################################
## Translation machinery ## 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 .PHONY: pot
pot: dist/converse-no-dependencies-es2015.js pot: dist/converse-no-dependencies-es2015.js
......
...@@ -5,6 +5,12 @@ ...@@ -5,6 +5,12 @@
* Copyright (c) 2013-2018, JC Brand <jc@opkode.com> * Copyright (c) 2013-2018, JC Brand <jc@opkode.com>
* Licensed under the Mozilla Public License * 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-face {
font-family: 'ConverseFontAwesomeRegular'; font-family: 'ConverseFontAwesomeRegular';
font-style: normal; font-style: normal;
...@@ -28,7 +34,10 @@ ...@@ -28,7 +34,10 @@
font-family: 'ConverseFontAwesomeSolid' !important; font-family: 'ConverseFontAwesomeSolid' !important;
font-weight: 900; } font-weight: 900; }
.fa, .far, .fas { .fab {
font-family: 'ConverseFontAwesomeBrands'; }
.fa, .far, .fas, .fab {
display: inline-block; display: inline-block;
font-size: inherit; font-size: inherit;
text-rendering: auto; text-rendering: auto;
...@@ -10899,7 +10908,7 @@ body.reset { ...@@ -10899,7 +10908,7 @@ body.reset {
#conversejs.converse-overlayed #minimized-chats { #conversejs.converse-overlayed #minimized-chats {
order: 100; order: 100;
width: 130px; width: 130px;
margin-bottom: -1em; margin-bottom: 0;
border-top-left-radius: 4px; border-top-left-radius: 4px;
border-top-right-radius: 4px; border-top-right-radius: 4px;
color: white; color: white;
......
This diff is collapsed.
...@@ -241,6 +241,8 @@ section h4 { ...@@ -241,6 +241,8 @@ section h4 {
.banner-social-buttons { .banner-social-buttons {
padding-top: 3em; } padding-top: 3em; }
.banner-social-buttons a {
padding: 0.15em; }
::-moz-selection { ::-moz-selection {
text-shadow: none; text-shadow: none;
......
This diff is collapsed.
...@@ -58869,6 +58869,10 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ ...@@ -58869,6 +58869,10 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
}, },
renderBookmarkToggle() { renderBookmarkToggle() {
if (this.el.querySelector('.chat-head .toggle-bookmark')) {
return;
}
const _converse = this.__super__._converse, const _converse = this.__super__._converse,
__ = _converse.__; __ = _converse.__;
const bookmark_button = tpl_chatroom_bookmark_toggle(_.assignIn(this.model.toJSON(), { 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_ ...@@ -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); 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 = this.getMessageText();
let text = encrypted ? this.model.get('plaintext') : this.model.get('message');
if (is_me_message) {
text = text.replace(/^\/me/, '');
}
const msg_content = msg.querySelector('.chat-msg__text'); 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, { text = xss.filterXSS(text, {
'whiteList': {} 'whiteList': {}
}); });
...@@ -66961,8 +66963,16 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ ...@@ -66961,8 +66963,16 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
this.model.message_versions_modal.show(ev); 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() { isMeCommand() {
const text = this.model.get('message'); const text = this.getMessageText();
if (!text) { if (!text) {
return false; return false;
...@@ -69767,7 +69777,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ ...@@ -69767,7 +69777,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
} }
if (feature.get('var') === Strophe.NS.MUC) { if (feature.get('var') === Strophe.NS.MUC) {
feature.getIdentity('conference', 'text').then(identity => { feature.entity.getIdentity('conference', 'text').then(identity => {
if (identity) { if (identity) {
setMUCDomain(feature.get('from'), controlboxview); setMUCDomain(feature.get('from'), controlboxview);
} }
...@@ -71572,6 +71582,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ ...@@ -71572,6 +71582,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
const _converse$env = converse.env, const _converse$env = converse.env,
Strophe = _converse$env.Strophe, Strophe = _converse$env.Strophe,
_ = _converse$env._, _ = _converse$env._,
sizzle = _converse$env.sizzle,
u = converse.env.utils; u = converse.env.utils;
converse.plugins.add('converse-notification', { converse.plugins.add('converse-notification', {
dependencies: ["converse-chatboxes"], dependencies: ["converse-chatboxes"],
...@@ -71725,10 +71736,13 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ ...@@ -71725,10 +71736,13 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
return; 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, { const n = new Notification(title, {
body: message.querySelector('body').textContent, body: body,
lang: _converse.locale, lang: _converse.locale,
icon: _converse.notification_icon icon: _converse.notification_icon
}); });
...@@ -72299,6 +72313,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ ...@@ -72299,6 +72313,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
if (this.get('omemo_active') && attrs.message) { if (this.get('omemo_active') && attrs.message) {
attrs['is_encrypted'] = true; attrs['is_encrypted'] = true;
attrs['plaintext'] = attrs.message;
const message = this.messages.create(attrs); const message = this.messages.create(attrs);
this.getBundlesAndBuildSessions().then(devices => this.createOMEMOMessageStanza(message, devices)).then(stanza => this.sendMessageStanza(stanza)).catch(e => { this.getBundlesAndBuildSessions().then(devices => this.createOMEMOMessageStanza(message, devices)).then(stanza => this.sendMessageStanza(stanza)).catch(e => {
this.messages.create({ this.messages.create({
...@@ -48,9 +48,9 @@ copyright = u'2018, JC Brand' ...@@ -48,9 +48,9 @@ copyright = u'2018, JC Brand'
# built documents. # built documents.
# #
# The short X.Y version. # The short X.Y version.
version = '3.3.4' version = '4.0.0'
# The full version, including alpha/beta/rc tags. # 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 # The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages. # for a list of supported languages.
......
...@@ -22,8 +22,8 @@ The latest versions of these files are available at these URLs: ...@@ -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: 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/4.0.0/dist/converse.min.js
* https://cdn.conversejs.org/3.3.4/css/converse.min.css * https://cdn.conversejs.org/4.0.0/css/converse.min.css
You can include these two URLs inside the *<head>* element of your website You can include these two URLs inside the *<head>* element of your website
via the *script* and *link* tags: via the *script* and *link* tags:
......
...@@ -7,9 +7,9 @@ ...@@ -7,9 +7,9 @@
<link rel="shortcut icon" type="image/ico" href="css/images/favicon.ico"/> <link rel="shortcut icon" type="image/ico" href="css/images/favicon.ico"/>
<script type="text/javascript" src="inverse-analytics.js"></script> <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> <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" /> <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> </head>
<body class="reset"> <body class="reset">
<div class="converse-content" style="display:none"> <div class="converse-content" style="display:none">
......
...@@ -77,9 +77,7 @@ ...@@ -77,9 +77,7 @@
<h1 class="brand-heading converse-brand-heading"><i class="icon-conversejs"></i>Converse</h1> <h1 class="brand-heading converse-brand-heading"><i class="icon-conversejs"></i>Converse</h1>
<div class="col-md-8 col-md-offset-2"> <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 class="intro-text">A free and open-source XMPP chat client in your browser</p>
<p>Now also available in a fullscreen version. <p>Also available as a <a href="https://conversejs.org/fullscreen.html">fullpage</a> app</p>
Check out <a href="https://inverse.chat" target="_blank" rel="noopener">inverse.chat</a>
</p>
<p> <p>
<a href="https://inverse.chat/#converse/room?jid=discuss@conference.conversejs.org" <a href="https://inverse.chat/#converse/room?jid=discuss@conference.conversejs.org"
...@@ -94,9 +92,9 @@ ...@@ -94,9 +92,9 @@
<div class="row"> <div class="row">
<div class="col-md-8 col-md-offset-2 banner-social-buttons"> <div class="col-md-8 col-md-offset-2 banner-social-buttons">
<ul class="list-inline"> <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://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> </ul>
</div> </div>
</div> </div>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
{ {
"name": "converse.js", "name": "converse.js",
"version": "3.3.4", "version": "4.0.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
......
{ {
"name": "converse.js", "name": "converse.js",
"version": "3.3.4", "version": "4.0.0",
"description": "Browser based XMPP chat client", "description": "Browser based XMPP chat client",
"main": "dist/converse.js", "main": "dist/converse.js",
"directories": { "directories": {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
order: 100; order: 100;
width: $minimized-chats-width; width: $minimized-chats-width;
margin-bottom: -2*$chat-gutter; margin-bottom: 0;
border-top-left-radius: $chatbox-border-radius; border-top-left-radius: $chatbox-border-radius;
border-top-right-radius: $chatbox-border-radius; border-top-right-radius: $chatbox-border-radius;
color: $inverse-link-color; color: $inverse-link-color;
......
...@@ -275,6 +275,10 @@ section { ...@@ -275,6 +275,10 @@ section {
} }
.banner-social-buttons { .banner-social-buttons {
padding-top: 3em; padding-top: 3em;
a {
padding: 0.15em;
}
} }
::-moz-selection { ::-moz-selection {
text-shadow: none; text-shadow: none;
......
@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-face {
font-family: 'ConverseFontAwesomeRegular'; font-family: 'ConverseFontAwesomeRegular';
font-style: normal; font-style: normal;
...@@ -33,8 +46,11 @@ ...@@ -33,8 +46,11 @@
font-family: 'ConverseFontAwesomeSolid' !important; font-family: 'ConverseFontAwesomeSolid' !important;
font-weight: 900; font-weight: 900;
} }
.fab {
font-family: 'ConverseFontAwesomeBrands';
}
.fa, .far, .fas { .fa, .far, .fas, .fab {
display: inline-block; display: inline-block;
font-size: inherit; font-size: inherit;
text-rendering: auto; text-rendering: auto;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
* An XMPP chat client that runs in the browser. * An XMPP chat client that runs in the browser.
* *
* Version: 3.3.4 * Version: 4.0.0
*/ */
/* jshint ignore:start */ /* jshint ignore:start */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment