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

New release 4.0.0

parent 201b8559
# Changelog
## 4.0.0 (Unreleased)
## 4.0.0 (2018-09-07)
## New Features
......
......@@ -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.
......
......@@ -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
......
......@@ -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;
......
This diff is collapsed.
......@@ -241,6 +241,8 @@ section h4 {
.banner-social-buttons {
padding-top: 3em; }
.banner-social-buttons a {
padding: 0.15em; }
::-moz-selection {
text-shadow: none;
......
This diff is collapsed.
......@@ -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');
let text = this.getMessageText();
const msg_content = msg.querySelector('.chat-msg__text');
if (text && text !== url) {
if (is_me_message) {
text = text.replace(/^\/me/, '');
}
const msg_content = msg.querySelector('.chat-msg__text');
if (text !== url) {
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({
......@@ -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.
......
......@@ -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:
......
......@@ -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">
......
......@@ -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>
......
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",
"version": "3.3.4",
"version": "4.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
......
{
"name": "converse.js",
"version": "3.3.4",
"version": "4.0.0",
"description": "Browser based XMPP chat client",
"main": "dist/converse.js",
"directories": {
......
......@@ -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;
......
......@@ -275,6 +275,10 @@ section {
}
.banner-social-buttons {
padding-top: 3em;
a {
padding: 0.15em;
}
}
::-moz-selection {
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-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;
......
......@@ -2,7 +2,7 @@
*
* An XMPP chat client that runs in the browser.
*
* Version: 3.3.4
* Version: 4.0.0
*/
/* 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