summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md139
-rw-r--r--web/react/utils/markdown.jsx25
-rw-r--r--web/static/i18n/en.json2
-rw-r--r--web/static/i18n/es.json2
4 files changed, 167 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8606fc72c..e0052918f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,144 @@
# Mattermost Changelog
+## Release v2.1.0
+
+Expected release date: 2016-03-16
+
+### Highlights
+
+- New Android application now available.
+- New desktop applications for Windows, Mac and Linux now in beta.
+- Brazilian Portuguese translation added.
+
+### New Features
+
+Android Application
+
+- New [Mattermost Android App](https://github.com/mattermost/android) supporting push notifications available for devices running Android 4.4.2+. Requires Mattermost server 2.1 and higher. See [list of tested devices](https://github.com/mattermost/android/blob/master/DEVICES.md).
+
+Desktop Application
+
+- New [Desktop Application](https://github.com/mattermost/desktop) for Windows, Mac, and Linux now available as a beta release.
+
+
+Languages
+
+- Added Portuguese language translation (Beta) available from **Account Settings** > **Display**.
+
+Active Directory/LDAP (Enterprise Edition)
+
+- Create new teams using Active Directory/LDAP. Team creation and Active Directory/LDAP must be enabled in the System Console from **Team Settings** > **Enable Team Creation** and **LDAP Settings** > **Enable LDAP**.
+- Added Active Directory/LDAP synchronization to check for deactivated users on the LDAP server.
+
+### Improvements
+
+System Console
+
+- Removed unused “Disable File Storage” option from the System Console as it is no longer relevant.
+- Added a warning message if a system admin demotes themselves.
+- System Console statistics now use a client store instead of fetching data and storing it in state.
+
+Messaging
+
+- Custom slash commands now support temporary messages that appear only to the user that issued the command.
+- Username autocomplete list no longer suggests inactive users.
+
+Mobile
+
+- Significant responsiveness and speed improvements using [fastclick](https://github.com/ftlabs/fastclick).
+- Team name and username are now shown in the LHS header.
+- Added a button to go back to the team URL page from the login page.
+
+Files and Images
+
+- Increased the maximum size of image uploads to 24 megapixels.
+
+User Interface
+
+- Custom theme color selectors are now organized into categories.
+- Add Members and Manage Members dialogs can now be filtered using a search bar.
+- Deactivated members no longer appear in the channel members list.
+- Keyboard focus is set to the text input box in the RHS if a user clicks the reply icon.
+- Permalinks are now displayed in a Copy Permalink dialog instead of a popover.
+- Permalink option is now available from the [...] menu on messages and comments in the RHS.
+- Reply icon now only appears on-hover for messages that don’t have replies.
+- Scroll bar now appears in the center channel.
+
+Enterprise Edition
+
+- Access History now contains audits for adding and removing Enterprise licenses.
+
+
+#### Bug Fixes
+
+- System console user management tab now shows username and email on different lines.
+- Yellow text box error no longer appears when the system is connected.
+- Wildcard search on MySQL databases is now fixed.
+- Usernames in the center channel no longer appear as “...” on login.
+- Deleted messages now delete in the RHS and center channel without requiring a page refresh.
+- Contact us email address in the footer of notification emails now uses the SupportEmail config setting instead of FeedbackEmail.
+- Email addresses are now required to have at least one letter before and after the @ sign.
+- Firefox desktop notifications are now fixed for some users experiencing missed notifications.
+- “User is typing” message containing long usernames no longer causes text wrapping.
+- Usernames appearing as “...” in the RHS when performing a search is fixed.
+- Links that end in image extensions but do not actually link to raw images no longer generate a blank image preview.
+- Channel handle field in the Rename Channel dialog is now visible on themes with dark backgrounds.
+- Autolinked images no longer persist after the post containing the link is deleted.
+- Code theme selector on IE11 now only shows one dropdown arrow and clicking directly on the arrow opens the dropdown.
+- Save/Cancel buttons for language selection in Account Settings are now formatted the same as other settings.
+- Inconsistent field spacing in the Channel Info dialog is fixed.
+- Recent mentions icon no longer jumps to the left of the search bar when the RHS is opened.
+- Custom slash command hints now show up in the autocomplete list.
+- GIF links inside code blocks no longer auto-post the GIFs.
+- Changing usernames no longer adds the old username to “words that trigger mentions”.
+- Notification email footer is now translated based on the sender’s language setting.
+- Slash command `/me` now posts as the user instead of a webhook message.
+- Logout slash command now forces logout.
+- Public links to file attachments on deleted posts no longer work.
+- Error message is now shown in IE11 when uploading more than 5 files or a file over 50 MB.
+
+
+### Compatibility
+Changes from v2.0 to v2.1:
+
+**Android**
+Mattermost Android Application is for use with Mattermost platform v2.1 and higher.
+
+#### Known Issues
+
+- File name tooltip stays open after clicking to download.
+- Unable to paste images into the text box on Firefox, Safari, and IE11.
+- Archived channels are not removed from the "More" menu for the person that archived the channel until after refresh.
+- First load of an empty channel does not display the introduction message.
+- Search results don't highlight searches for @username, non-latin characters, or terms inside Markdown code blocks.
+- Searching for a username or hashtag containing a dot returns a search where the dot is replaced with the "or" operator.
+- Hashtags containing a dash incorrectly highlight in the search results.
+- Emoji smileys ending with a letter at the end of a message do not auto-complete as expected.
+- Incorrect formatting when a new line is added directly after a list.
+- Timestamps are displayed in 12-hour format when set to 24-hour format.
+- Syntax highlighting code block is missing the label for Latex documents.
+- Posts from webhooks do not fire notifications to the user who created the webhook.
+- Theme color vector is not updated after making custom changes to a default theme.
+- Search term highlighting doesn't update on IE11 when search terms change but return the same posts.
+- Team creation via SSO fails when email domain is restricted.
+
+
+#### Contributors
+
+Many thanks to all our external contributors. In no particular order:
+
+- [rodrigocorsi2](https://github.com/rodrigocorsi2)
+- [enahum](https://github.com/enahum)
+- [khoa-le](https://github.com/khoa-le)
+- [alanmoo](https://github.com/alanmoo)
+- [daizenberg](https://github.com/daizenberg)
+- [GuillaumeAmat](https://github.com/GuillaumeAmat)
+- [kernicPanel](https://github.com/kernicPanel)
+- [timlyo](https://github.com/timlyo)
+- [ttyniwa](https://github.com/ttyniwa)
+
+
+
## Release v2.0.0
Expected Release date: 2016-02-16
diff --git a/web/react/utils/markdown.jsx b/web/react/utils/markdown.jsx
index 493916058..2b1aed9c0 100644
--- a/web/react/utils/markdown.jsx
+++ b/web/react/utils/markdown.jsx
@@ -193,6 +193,16 @@ class MattermostMarkdownRenderer extends marked.Renderer {
outHref = outHref.substring(1, outHref.length - 1);
}
+ try {
+ const unescaped = decodeURIComponent(unescape(href)).replace(/[^\w:]/g, '').toLowerCase();
+
+ if (unescaped.indexOf('javascript:') === 0 || unescaped.indexOf('vbscript:') === 0) { // eslint-disable-line no-script-url
+ return '';
+ }
+ } catch (e) {
+ return '';
+ }
+
if (!(/[a-z+.-]+:/i).test(outHref)) {
outHref = `http://${outHref}`;
}
@@ -548,3 +558,18 @@ export function format(text, options) {
return new MattermostParser(markdownOptions).parse(tokens);
}
+// Marked helper functions that should probably just be exported
+
+function unescape(html) {
+ return html.replace(/&([#\w]+);/g, (_, m) => {
+ const n = m.toLowerCase();
+ if (n === 'colon') {
+ return ':';
+ } else if (n.charAt(0) === '#') {
+ return n.charAt(1) === 'x' ?
+ String.fromCharCode(parseInt(n.substring(2), 16)) :
+ String.fromCharCode(+n.substring(1));
+ }
+ return '';
+ });
+}
diff --git a/web/static/i18n/en.json b/web/static/i18n/en.json
index feea91aad..d2e340641 100644
--- a/web/static/i18n/en.json
+++ b/web/static/i18n/en.json
@@ -192,13 +192,13 @@
"admin.ldap.usernameAttrEx": "Ex \"sAMAccountName\"",
"admin.ldap.usernameAttrTitle": "Username Attribute:",
"admin.licence.keyMigration": "If you’re migrating servers you may need to remove your license key from this server in order to install it on a new server. To start, <a href=\"http://mattermost.com\" target=\"_blank\">disable all Enterprise Edition features on this server</a>. This will enable the ability to remove the license key and downgrade this server from Enterprise Edition to Team Edition.",
- "admin.license.noFile": "No file uploaded",
"admin.license.chooseFile": "Choose File",
"admin.license.edition": "Edition: ",
"admin.license.enterpriseEdition": "Mattermost Enterprise Edition. Designed for enterprise-scale communication.",
"admin.license.enterpriseType": "<div><p>This compiled release of Mattermost platform is provided under a <a href=\"http://mattermost.com\" target=\"_blank\">commercial license</a> from Mattermost, Inc. based on your subscription level and is subject to the <a href=\"{terms}\" target=\"_blank\">Terms of Service.</a></p><p>Your subscription details are as follows:</p>Name: {name}<br />Company or organization name: {company}<br/>Number of users: {users}<br/>License issued: {issued}<br/>Start date of license: {start}<br/>Expiry date of license: {expires}<br/>LDAP: {ldap}<br/></div>",
"admin.license.key": "License Key: ",
"admin.license.keyRemove": "Remove Enterprise License and Downgrade Server",
+ "admin.license.noFile": "No file uploaded",
"admin.license.removing": "Removing License...",
"admin.license.teamEdition": "Mattermost Team Edition. Designed for teams from 5 to 50 users.",
"admin.license.teamType": "<span><p>This compiled release of Mattermost platform is offered under an MIT license.</p><p>See MIT-COMPILED-LICENSE.txt in your root install directory for details. See NOTICES.txt for information about open source software used in this system.</p></span>",
diff --git a/web/static/i18n/es.json b/web/static/i18n/es.json
index 2a7eaae16..c6b16a293 100644
--- a/web/static/i18n/es.json
+++ b/web/static/i18n/es.json
@@ -192,11 +192,13 @@
"admin.ldap.usernameAttrEx": "Ej \"sAMAccountName\"",
"admin.ldap.usernameAttrTitle": "Atributo Usuario:",
"admin.licence.keyMigration": "Si estás migrando servidores es posible que necesites remover tu licencia de este servidor para poder instalarlo en un servidor nuevo. Para empezar, <a href=\"http://mattermost.com\" target=\"_blank\">deshabilita todas las características de la Edición Enterprise de este servidor</a>. Esta operación habilitará la opción para remover la licencia y degradar este servidor de la Edición Enterprise a la Edición Team.",
+ "admin.license.chooseFile": "Escoger Archivo",
"admin.license.edition": "Edición: ",
"admin.license.enterpriseEdition": "Mattermost Edición Enterprise. Diseñada para comunicación de escala empresarial.",
"admin.license.enterpriseType": "<div><p>Esta versión compilada de la plataforma de Mattermost es provista bajo una <a href=\"http://mattermost.com\" target=\"_blank\">licencia comercial</a> de Mattermost, Inc. en función en su nivel de subscripción y bajo los <a href=\"{terms}\" target=\"_blank\">Términos del Servicio.</a></p><p>Los detalles de tu subscripción son los siguientes:</p>Nombre: {name}<br />Nombre compañía u organización: {company}<br/>Cantidad de usuarios: {users}<br/>Licencia emitida: {issued}<br/>Fecha de inicio: {start}<br/>Fecha de expiración: {expires}<br/>LDAP: {ldap}<br/></div>",
"admin.license.key": "Llave de la Licencia: ",
"admin.license.keyRemove": "Remover la Licencia Enterprise y Degradar el Servidor",
+ "admin.license.noFile": "No se subió ningún archivo",
"admin.license.removing": "Removiendo Licencia...",
"admin.license.teamEdition": "Mattermost Edición Team. Diseñado para equipos desde 5 hasta 50 usuarios.",
"admin.license.teamType": "<span><p>Esta versión compilada de la plataforma de Mattermost es proporcionada bajo la licencia MIT.</p><p>Lea MIT-COMPILED-LICENSE.txt en el directorio raíz de la instalación para más detalles. Lea NOTICES.txt para información sobre software libre utilizado en este sistema.</p></span>",