From 409fe51c94f6c7b58c1017009298a1c7b3c1145b Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Thu, 24 Aug 2017 22:00:26 -0300 Subject: [PATCH 001/244] Bump version to 0.59.0-rc.0 --- .docker/Dockerfile | 2 +- .sandstorm/sandstorm-pkgdef.capnp | 2 +- .travis/snap.sh | 2 +- HISTORY.md | 74 +++++++++++++++++++++++++ package.json | 2 +- packages/rocketchat-lib/rocketchat.info | 2 +- 6 files changed, 79 insertions(+), 5 deletions(-) diff --git a/.docker/Dockerfile b/.docker/Dockerfile index 40e54c7a30c..218469205f9 100644 --- a/.docker/Dockerfile +++ b/.docker/Dockerfile @@ -1,6 +1,6 @@ FROM rocketchat/base:4 -ENV RC_VERSION 0.59.0-develop +ENV RC_VERSION 0.59.0-rc.0 MAINTAINER buildmaster@rocket.chat diff --git a/.sandstorm/sandstorm-pkgdef.capnp b/.sandstorm/sandstorm-pkgdef.capnp index 6fec056fc80..ce23d592acf 100644 --- a/.sandstorm/sandstorm-pkgdef.capnp +++ b/.sandstorm/sandstorm-pkgdef.capnp @@ -21,7 +21,7 @@ const pkgdef :Spk.PackageDefinition = ( appVersion = 62, # Increment this for every release. - appMarketingVersion = (defaultText = "0.59.0-develop"), + appMarketingVersion = (defaultText = "0.59.0-rc.0"), # Human-readable representation of appVersion. Should match the way you # identify versions of your app in documentation and marketing. diff --git a/.travis/snap.sh b/.travis/snap.sh index d22718a199b..028b6ca37d0 100755 --- a/.travis/snap.sh +++ b/.travis/snap.sh @@ -17,7 +17,7 @@ elif [[ $TRAVIS_TAG ]]; then RC_VERSION=$TRAVIS_TAG else CHANNEL=edge - RC_VERSION=0.59.0-develop + RC_VERSION=0.59.0-rc.0 fi echo "Preparing to trigger a snap release for $CHANNEL channel" diff --git a/HISTORY.md b/HISTORY.md index 8863fd21a08..a7c21737df0 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,3 +1,77 @@ + +# 0.59.0-rc.0 (2017-08-25) + + +### New Features + +- [#7636](https://github.com/RocketChat/Rocket.Chat/pull/7636) Add classes to notification menu so they can be hidden in css +- [#7852](https://github.com/RocketChat/Rocket.Chat/pull/7852) Add markdown parser "marked" +- [#7711](https://github.com/RocketChat/Rocket.Chat/pull/7711) Add room type as a class to the ul-group of rooms +- [#6301](https://github.com/RocketChat/Rocket.Chat/pull/6301) Add tags to uploaded images using Google Cloud Vision API +- [#7658](https://github.com/RocketChat/Rocket.Chat/pull/7658) Add unread options for direct messages +- [#5902](https://github.com/RocketChat/Rocket.Chat/pull/5902) Adds a Keyboard Shortcut option to the flextab +- [#7614](https://github.com/RocketChat/Rocket.Chat/pull/7614) Allow ldap mapping of customFields +- [#7817](https://github.com/RocketChat/Rocket.Chat/pull/7817) Audio Notification updated in sidebar +- [#7350](https://github.com/RocketChat/Rocket.Chat/pull/7350) Automatically select the first channel +- [#7853](https://github.com/RocketChat/Rocket.Chat/pull/7853) Create a standard for svg icons +- [#7342](https://github.com/RocketChat/Rocket.Chat/pull/7342) Integrated personal email gateway (GSoC'17) +- [#7830](https://github.com/RocketChat/Rocket.Chat/pull/7830) Option to block users to mention unknow users +- [#6700](https://github.com/RocketChat/Rocket.Chat/pull/6700) Package to render issue numbers into links to an issue tracker. +- [#7864](https://github.com/RocketChat/Rocket.Chat/pull/7864) Replace message cog for vertical menu +- [#7565](https://github.com/RocketChat/Rocket.Chat/pull/7565) REST API endpoint to list all private groups (permission limited) +- [#7643](https://github.com/RocketChat/Rocket.Chat/pull/7643) Rocket.Chat UI Redesign +- [#7612](https://github.com/RocketChat/Rocket.Chat/pull/7612) Search users by fields defined by admin +- [#7688](https://github.com/RocketChat/Rocket.Chat/pull/7688) Template to show Custom Fields in user info view + + +### Bug Fixes + +- [#7854](https://github.com/RocketChat/Rocket.Chat/pull/7854) Add CSS support for Safari versions > 7 +- [#7456](https://github.com/RocketChat/Rocket.Chat/pull/7456) Csv importer: work with more problematic data +- [#7815](https://github.com/RocketChat/Rocket.Chat/pull/7815) Dutch translations +- [#7846](https://github.com/RocketChat/Rocket.Chat/pull/7846) Email message forward error +- [#7673](https://github.com/RocketChat/Rocket.Chat/pull/7673) Example usage of unsubscribe.js +- [#7855](https://github.com/RocketChat/Rocket.Chat/pull/7855) File upload on multi-instances using a path prefix +- [#7656](https://github.com/RocketChat/Rocket.Chat/pull/7656) Fix avatar upload fail on Cordova app +- [#7168](https://github.com/RocketChat/Rocket.Chat/pull/7168) Fix black background on transparent avatars +- [#7814](https://github.com/RocketChat/Rocket.Chat/pull/7814) Fix Dutch translation +- [#7629](https://github.com/RocketChat/Rocket.Chat/pull/7629) Fix messagebox growth +- [#7863](https://github.com/RocketChat/Rocket.Chat/pull/7863) Fix migration 100 +- [#7823](https://github.com/RocketChat/Rocket.Chat/pull/7823) Fix new-message button showing on search +- [#7687](https://github.com/RocketChat/Rocket.Chat/pull/7687) Fix room load on first hit +- [#7758](https://github.com/RocketChat/Rocket.Chat/pull/7758) Fixed function closure syntax allowing validation emails to be sent. +- [#7825](https://github.com/RocketChat/Rocket.Chat/pull/7825) Google vision NSFW tag +- [#7679](https://github.com/RocketChat/Rocket.Chat/pull/7679) Make link inside YouTube preview open in new tab +- [#7644](https://github.com/RocketChat/Rocket.Chat/pull/7644) Markdown noopener/noreferrer: use correct HTML attribute +- [#7721](https://github.com/RocketChat/Rocket.Chat/pull/7721) meteor-accounts-saml issue with ns0,ns1 namespaces, makes it compatible with pysaml2 lib +- [#7652](https://github.com/RocketChat/Rocket.Chat/pull/7652) Only use "File Uploaded" prefix on files +- [#7809](https://github.com/RocketChat/Rocket.Chat/pull/7809) Remove redundant "do" in "Are you sure ...?" messages. +- [#7672](https://github.com/RocketChat/Rocket.Chat/pull/7672) Remove references to non-existent tests +- [#7748](https://github.com/RocketChat/Rocket.Chat/pull/7748) scroll on flex-tab +- [#7779](https://github.com/RocketChat/Rocket.Chat/pull/7779) Settings not getting applied from Meteor.settings and process.env +- [#7778](https://github.com/RocketChat/Rocket.Chat/pull/7778) Update Snap links +- [#7639](https://github.com/RocketChat/Rocket.Chat/pull/7639) Wrong email subject when "All Messages" setting enabled +- [#7630](https://github.com/RocketChat/Rocket.Chat/pull/7630) Wrong render of snippet’s name + + +
+Others + +- [#7793](https://github.com/RocketChat/Rocket.Chat/pull/7793) Additions to the REST API +- [#7625](https://github.com/RocketChat/Rocket.Chat/pull/7625) Bump version to 0.59.0-develop +- [#7661](https://github.com/RocketChat/Rocket.Chat/pull/7661) Fix typo in generated URI +- [#7728](https://github.com/RocketChat/Rocket.Chat/pull/7728) FIX: Error when starting local development environment +- [#7803](https://github.com/RocketChat/Rocket.Chat/pull/7803) LingoHub based on develop +- [#2](https://github.com/RocketChat/Rocket.Chat/pull/2) local update +- [#7677](https://github.com/RocketChat/Rocket.Chat/pull/7677) Meteor packages and npm dependencies update +- [#7865](https://github.com/RocketChat/Rocket.Chat/pull/7865) Mobile sidenav +- [#7842](https://github.com/RocketChat/Rocket.Chat/pull/7842) npm deps update +- [#7755](https://github.com/RocketChat/Rocket.Chat/pull/7755) npm deps update +- [#7739](https://github.com/RocketChat/Rocket.Chat/pull/7739) Remove CircleCI +
+ + + ## 0.58.2 (2017-08-23) diff --git a/package.json b/package.json index 28b5585855b..9ebc279326f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "Rocket.Chat", "description": "The Ultimate Open Source WebChat Platform", - "version": "0.59.0-develop", + "version": "0.59.0-rc.0", "author": { "name": "Rocket.Chat", "url": "https://rocket.chat/" diff --git a/packages/rocketchat-lib/rocketchat.info b/packages/rocketchat-lib/rocketchat.info index 73c93e95aea..a52cab4a83f 100644 --- a/packages/rocketchat-lib/rocketchat.info +++ b/packages/rocketchat-lib/rocketchat.info @@ -1,3 +1,3 @@ { - "version": "0.59.0-develop" + "version": "0.59.0-rc.0" } From 777834526d69de9a01091f808140ed346984e1a0 Mon Sep 17 00:00:00 2001 From: Karl Prieb Date: Fri, 25 Aug 2017 04:55:42 -0300 Subject: [PATCH 002/244] fix sidebar paddings (#7888) --- packages/rocketchat-livechat/client/stylesheets/livechat.less | 3 ++- .../client/imports/components/sidebar/sidebar-account.css | 3 ++- .../client/imports/components/sidebar/sidebar-item.css | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/rocketchat-livechat/client/stylesheets/livechat.less b/packages/rocketchat-livechat/client/stylesheets/livechat.less index 9b5daf989d4..2a87a737a32 100644 --- a/packages/rocketchat-livechat/client/stylesheets/livechat.less +++ b/packages/rocketchat-livechat/client/stylesheets/livechat.less @@ -626,8 +626,9 @@ .livechat-status { float: right; - margin-right: 10px; + margin-right: 16px; font-size: 20px; + line-height: 20px; color: #9d9fa3; } diff --git a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-account.css b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-account.css index 30d4be7234f..ff6f5cdfe97 100644 --- a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-account.css +++ b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-account.css @@ -102,7 +102,8 @@ position: relative; - padding: 10px 0 10px 10px; + margin-right: -9px; + padding: 0; cursor: pointer; diff --git a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-item.css b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-item.css index 1068095ce6d..9481fa95da5 100644 --- a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-item.css +++ b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-item.css @@ -50,7 +50,7 @@ } & .badge { - margin: 0 8px 0 3px; + margin: 0 16px 0 3px; } &__icon { From 5812d21a2a0e88c5cf4e26aba892b114eea89571 Mon Sep 17 00:00:00 2001 From: Gabriel Delavald Date: Fri, 25 Aug 2017 03:16:27 -0300 Subject: [PATCH 003/244] Makes text action menu width based on content size (#7887) --- packages/rocketchat-theme/client/imports/components/popover.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/rocketchat-theme/client/imports/components/popover.css b/packages/rocketchat-theme/client/imports/components/popover.css index 48df399702c..4a543f30e61 100644 --- a/packages/rocketchat-theme/client/imports/components/popover.css +++ b/packages/rocketchat-theme/client/imports/components/popover.css @@ -36,6 +36,8 @@ padding: var(--popover-padding); + white-space: nowrap; + cursor: default; border-radius: var(--popover-radius); From 7b3b93aafb45f9adf2e27dbc361c6241f299e741 Mon Sep 17 00:00:00 2001 From: Karl Prieb Date: Fri, 25 Aug 2017 03:22:27 -0300 Subject: [PATCH 004/244] Fix livechat icon (#7886) --- packages/rocketchat-ui-master/public/icons.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/rocketchat-ui-master/public/icons.svg b/packages/rocketchat-ui-master/public/icons.svg index 5e84b60584d..79f12ea7328 100644 --- a/packages/rocketchat-ui-master/public/icons.svg +++ b/packages/rocketchat-ui-master/public/icons.svg @@ -25,7 +25,7 @@ - + From 3af70c01df00aad82cdc4cf614bda4c062b29be3 Mon Sep 17 00:00:00 2001 From: Gabriel Delavald Date: Fri, 25 Aug 2017 03:00:53 -0300 Subject: [PATCH 005/244] Merge pull request #7885 from RocketChat/message-actions-alignment [FIX] message actions over unread bar --- .../rocketchat-theme/client/imports/components/messages.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/rocketchat-theme/client/imports/components/messages.css b/packages/rocketchat-theme/client/imports/components/messages.css index d7a720955c4..9bda032ab66 100644 --- a/packages/rocketchat-theme/client/imports/components/messages.css +++ b/packages/rocketchat-theme/client/imports/components/messages.css @@ -86,3 +86,7 @@ .messages-box .rc-popover__list { padding: 0; } + +.first-unread .message-actions { + top: 18px; +} From 989b927eb0b960ce0c1333f2269634b44a8f3f88 Mon Sep 17 00:00:00 2001 From: Gabriel Delavald Date: Fri, 25 Aug 2017 03:00:33 -0300 Subject: [PATCH 006/244] Merge pull request #7883 from RocketChat/fix-mobile-popover [FIX] popover position on mobile --- .../client/imports/components/popover.css | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/rocketchat-theme/client/imports/components/popover.css b/packages/rocketchat-theme/client/imports/components/popover.css index 4a543f30e61..854ecf2e96e 100644 --- a/packages/rocketchat-theme/client/imports/components/popover.css +++ b/packages/rocketchat-theme/client/imports/components/popover.css @@ -6,13 +6,17 @@ align-items: flex-start; } --rc-popover-open-mobile: { - top: initial; position: fixed; + top: initial; bottom: 0; + left: 0; + + display: inline-block; + + width: 100vw; padding: 8px; + animation: dropup-show 0.5s cubic-bezier(0.45, 0.05, 0.55, 0.95); - width: 100vw; - display: inline-block; } } From 2988024fe43ef979e4cf58f4801bc742f5554906 Mon Sep 17 00:00:00 2001 From: Karl Prieb Date: Fri, 25 Aug 2017 03:22:45 -0300 Subject: [PATCH 007/244] [FIX] hyperlink style on sidebar footer (#7882) * Fix hyperlink style on sidebar footer * fix a selector --- .../client/imports/components/sidebar/sidebar.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar.css b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar.css index 7caf194225d..081170ac328 100644 --- a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar.css +++ b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar.css @@ -50,6 +50,10 @@ max-width: 100%; height: 100%; } + + & a:any-link { + color: var(--color-gray); + } } &__header { From 19217f0f6b68223535e33eac0f8a97b87c8a62c1 Mon Sep 17 00:00:00 2001 From: Gabriel Delavald Date: Fri, 25 Aug 2017 03:00:13 -0300 Subject: [PATCH 008/244] Merge pull request #7881 from RocketChat/fix-search-overlap [FIX] search results position on sidebar --- .../client/imports/components/sidebar/rooms-list.css | 2 +- packages/rocketchat-ui-message/client/popup/messagePopup.html | 2 +- packages/rocketchat-ui-message/client/popup/messagePopup.js | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/rocketchat-theme/client/imports/components/sidebar/rooms-list.css b/packages/rocketchat-theme/client/imports/components/sidebar/rooms-list.css index 5e940cc37e5..ea7a770e1f5 100644 --- a/packages/rocketchat-theme/client/imports/components/sidebar/rooms-list.css +++ b/packages/rocketchat-theme/client/imports/components/sidebar/rooms-list.css @@ -31,7 +31,7 @@ &__toolbar-search { position: absolute; z-index: 1; - top: var(--sidebar-header-height); + left: 0; overflow-y: auto; diff --git a/packages/rocketchat-ui-message/client/popup/messagePopup.html b/packages/rocketchat-ui-message/client/popup/messagePopup.html index aed6f003e27..791dba7ce87 100644 --- a/packages/rocketchat-ui-message/client/popup/messagePopup.html +++ b/packages/rocketchat-ui-message/client/popup/messagePopup.html @@ -1,7 +1,7 @@ diff --git a/packages/rocketchat-ui/client/views/app/createChannel.js b/packages/rocketchat-ui/client/views/app/createChannel.js index 29116406355..f55ea97ebb8 100644 --- a/packages/rocketchat-ui/client/views/app/createChannel.js +++ b/packages/rocketchat-ui/client/views/app/createChannel.js @@ -155,6 +155,7 @@ Template.createChannel.events({ } return; } + if (!isPrivate) { RocketChat.callbacks.run('aftercreateCombined', { _id: result.rid, name: result.name }); } diff --git a/tests/pageobjects/side-nav.page.js b/tests/pageobjects/side-nav.page.js index 870ad7cfe91..d5fab67ecf0 100644 --- a/tests/pageobjects/side-nav.page.js +++ b/tests/pageobjects/side-nav.page.js @@ -5,7 +5,7 @@ class SideNav extends Page { get channelType() { return browser.element('.create-channel__content .rc-switch__button'); } get channelReadOnly() { return browser.elements('.create-channel__switches .rc-switch__button').value[1]; } get channelName() { return browser.element('.create-channel__content input[name="name"]'); } - get saveChannelBtn() { return browser.element('.create-channel__content button[data-button="create"]'); } + get saveChannelBtn() { return browser.element('.create-channel__content [data-button="create"]'); } // Account box get accountBoxUserName() { return browser.element('.sidebar__account-username'); } @@ -101,7 +101,7 @@ class SideNav extends Page { this.channelName.setValue(channelName); browser.waitUntil(function() { - return browser.isEnabled('.create-channel__content button[data-button="create"]'); + return browser.isEnabled('.create-channel__content [data-button="create"]'); }, 5000); this.channelType.waitForVisible(10000); From fc3fd84697dc4205b19e9f085f94b12b7967c630 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Tue, 29 Aug 2017 23:38:06 -0300 Subject: [PATCH 022/244] Merge pull request #7943 from RocketChat/firefox-emoji [FIX] Broken emoji picker on firefox --- packages/rocketchat-emoji/client/emojiButton.js | 4 +--- packages/rocketchat-ui-message/client/messageBox.js | 10 ++++------ 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/packages/rocketchat-emoji/client/emojiButton.js b/packages/rocketchat-emoji/client/emojiButton.js index 454f602927c..6162ee9ca5c 100644 --- a/packages/rocketchat-emoji/client/emojiButton.js +++ b/packages/rocketchat-emoji/client/emojiButton.js @@ -14,9 +14,7 @@ Template.messageBox.events({ const caretPos = input.selectionStart; const textAreaTxt = input.value; input.focus(); - if (document.execCommand) { - document.execCommand('insertText', false, emojiValue); - } else { + if (!document.execCommand || !document.execCommand('insertText', false, emojiValue)) { input.value = textAreaTxt.substring(0, caretPos) + emojiValue + textAreaTxt.substring(caretPos); } diff --git a/packages/rocketchat-ui-message/client/messageBox.js b/packages/rocketchat-ui-message/client/messageBox.js index 9bde15d0c0e..5255d5f61f1 100644 --- a/packages/rocketchat-ui-message/client/messageBox.js +++ b/packages/rocketchat-ui-message/client/messageBox.js @@ -51,11 +51,10 @@ function applyMd(e, t) { box.selectionStart = selectionStart - startPattern.length; box.selectionEnd = selectionEnd + endPattern.length; - if (document.execCommand) { - document.execCommand('insertText', false, selectedText); - } else { + if (!document.execCommand || !document.execCommand('insertText', false, selectedText)) { box.value = initText.substr(0, initText.length - startPattern.length) + selectedText + finalText.substr(endPattern.length); } + box.selectionStart = selectionStart - startPattern.length; box.selectionEnd = box.selectionStart + selectedText.length; $(box).change(); @@ -68,11 +67,10 @@ function applyMd(e, t) { apply pattern restore selection */ - if (document.execCommand) { - document.execCommand('insertText', false, this.pattern.replace('{{text}}', selectedText)); - } else { + if (!document.execCommand || !document.execCommand('insertText', false, this.pattern.replace('{{text}}', selectedText))) { box.value = initText + this.pattern.replace('{{text}}', selectedText) + finalText; } + box.selectionStart = selectionStart + this.pattern.indexOf('{{text}}'); box.selectionEnd = box.selectionStart + selectedText.length; $(box).change(); From faf4f1914cad0d19b77bce854c268a10b6ded4c2 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Tue, 29 Aug 2017 23:36:40 -0300 Subject: [PATCH 023/244] Merge pull request #7945 from josiasds/fix-account-profile-placeholders [FIX] Fix placeholders in account profile --- packages/rocketchat-ui-account/client/accountProfile.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/rocketchat-ui-account/client/accountProfile.html b/packages/rocketchat-ui-account/client/accountProfile.html index fcd17312608..f0bad64077a 100644 --- a/packages/rocketchat-ui-account/client/accountProfile.html +++ b/packages/rocketchat-ui-account/client/accountProfile.html @@ -99,7 +99,7 @@ {{# unless canChange}} @@ -112,7 +112,7 @@ {{# unless canChange}} From 5198b2b6abbc9e4b91ebee51886192a1584e5ea6 Mon Sep 17 00:00:00 2001 From: Gabriel Engel Date: Tue, 29 Aug 2017 23:44:36 -0300 Subject: [PATCH 024/244] Merge pull request #7948 from Lawri-van-Buel/develop [FIX] Document README.md. Drupal repo out of date --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9ad68cfe992..b5a414fd2ac 100644 --- a/README.md +++ b/README.md @@ -281,7 +281,7 @@ It is a great solution for communities and companies wanting to privately host t - Audio calls - Multi-users Audio Conference - Screensharing -- Drupal 7.x and 8.x Plug-in ([download](https://www.drupal.org/project/rocket_chat) and [source code](https://github.com/jelhouss/rocket_chat) ) +- Drupal 7.x and 8.x Plug-in (both stable and development flavours) ([download](https://www.drupal.org/project/rocket_chat) and [source code](https://git.drupal.org/project/rocket_chat.git) ) - XMPP bridge ([try it](https://demo.rocket.chat/channel/general)) - REST APIs - Remote Locations Video Monitoring From fe978957d13bc052990e1ef3228a7d91dc7148e7 Mon Sep 17 00:00:00 2001 From: Gabriel Engel Date: Wed, 30 Aug 2017 00:39:21 -0300 Subject: [PATCH 025/244] Merge pull request #7953 from RocketChat/firefox-username [FIX] username ellipsis on firefox --- .../client/imports/components/sidebar/sidebar-account.css | 1 - .../client/imports/components/sidebar/sidebar.css | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-account.css b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-account.css index 2db3cbf0fb5..71b33c2a034 100644 --- a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-account.css +++ b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-account.css @@ -38,7 +38,6 @@ overflow: hidden; flex: 1; - max-width: 160px; max-width: fit-content; height: calc(var(--sidebar-account-username-size) + 0.1rem); margin-bottom: 0.5rem; diff --git a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar.css b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar.css index 9609acbe9d7..84488b1d5ae 100644 --- a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar.css +++ b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar.css @@ -7,6 +7,7 @@ flex: 0 0 var(--sidebar-width); width: var(--sidebar-width); + max-width: var(--sidebar-width); height: 100%; From 68c25a3ea1332e661d69ecd21cf9a373d1db193e Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Tue, 29 Aug 2017 23:36:17 -0300 Subject: [PATCH 026/244] Merge pull request #7954 from RocketChat/otr-buttons [FIX] OTR buttons padding --- packages/rocketchat-otr/client/views/otrFlexTab.html | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/rocketchat-otr/client/views/otrFlexTab.html b/packages/rocketchat-otr/client/views/otrFlexTab.html index 6671c45e7f0..e394b43cba6 100644 --- a/packages/rocketchat-otr/client/views/otrFlexTab.html +++ b/packages/rocketchat-otr/client/views/otrFlexTab.html @@ -8,8 +8,12 @@
    {{#if userIsOnline}} {{#if established}} - - +
    + +
    +
    + +
    {{else}} {{#if establishing}} {{_ "Please_wait_while_OTR_is_being_established"}} {{else}} From 5c582e3f009176141c3fa6fc6afa96d137fdac13 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Tue, 29 Aug 2017 23:35:38 -0300 Subject: [PATCH 027/244] Merge pull request #7960 from RocketChat/sidebar-colors [FIX] status and active room colors on sidebar --- .../client/imports/components/sidebar/sidebar-item.css | 4 ++-- .../rocketchat-theme/client/imports/general/variables.css | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-item.css b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-item.css index 1c70e77d4e9..0ce2156fd2e 100644 --- a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-item.css +++ b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-item.css @@ -13,7 +13,7 @@ align-items: center; &--active { - background-color: var(--sidebar-item-active-background); + background-color: var(--color-dark-light); } &--darken { @@ -88,7 +88,7 @@ } &--offline { - background-color: var(--status-invisible); + background-color: var(--status-invisible-sidebar); } } diff --git a/packages/rocketchat-theme/client/imports/general/variables.css b/packages/rocketchat-theme/client/imports/general/variables.css index 750e8c43362..395bdcf0872 100644 --- a/packages/rocketchat-theme/client/imports/general/variables.css +++ b/packages/rocketchat-theme/client/imports/general/variables.css @@ -6,6 +6,7 @@ --color-darkest: #1f2329; --color-dark: #2f343d; --color-dark-medium: #414852; + --color-dark-light: #6c727a; --color-gray: #9ea2a8; --color-gray-medium: #cbced1; --color-gray-light: #e1e5e8; @@ -39,6 +40,7 @@ --status-away: var(--color-alert); --status-busy: var(--color-error); --status-invisible: var(--color-gray-medium); + --status-invisible-sidebar: var(--color-darkest); /* * Forms From a691b2ead2c28f9b21c8d78f2655b130dd6b9a15 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Wed, 30 Aug 2017 13:55:58 -0300 Subject: [PATCH 028/244] Merge pull request #7963 from RocketChat/fix-status-member-list [FIX] Fix the status on the members list --- packages/rocketchat-theme/client/imports/general/base_old.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/rocketchat-theme/client/imports/general/base_old.css b/packages/rocketchat-theme/client/imports/general/base_old.css index 48b880a2cfa..a0a11ea2186 100644 --- a/packages/rocketchat-theme/client/imports/general/base_old.css +++ b/packages/rocketchat-theme/client/imports/general/base_old.css @@ -4157,6 +4157,8 @@ body:not(.is-cordova) { width: var(--user-image-square); height: var(--user-image-square); + + margin-left: 1rem; } } From c974bdadde4ddd172fe5906b32797a7f94c4a8a1 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Wed, 30 Aug 2017 13:53:34 -0300 Subject: [PATCH 029/244] Merge pull request #7965 from RocketChat/hotfix/markdown-code-render [FIX] Markdown being rendered in code tags --- package.json | 8 +- .../parser/marked/marked.js | 1 + .../parser/original/markdown.js | 2 +- .../parser/original/original.js | 6 +- .../rocketchat-markdown/tests/client.mocks.js | 47 +++ .../rocketchat-markdown/tests/client.tests.js | 292 ++++++++++++++++++ 6 files changed, 350 insertions(+), 6 deletions(-) create mode 100644 packages/rocketchat-markdown/tests/client.mocks.js create mode 100644 packages/rocketchat-markdown/tests/client.tests.js diff --git a/package.json b/package.json index df4e26ad656..76824ed411b 100644 --- a/package.json +++ b/package.json @@ -49,6 +49,7 @@ "packages/**/*.tests.js" ], "files": [ + "packages/**/*.mocks.js", "packages/**/*.js", "!packages/**/*.tests.js" ] @@ -90,12 +91,16 @@ "chimp": "^0.49.1", "conventional-changelog-cli": "^1.3.2", "eslint": "^4.5.0", + "mock-require": "^2.0.2", "postcss-cssnext": "^2.11.0", "postcss-smart-import": "^0.7.5", + "proxyquire": "^1.8.0", "simple-git": "^1.75.0", "stylelint": "^8.0.0", "stylelint-order": "^0.6.0", - "supertest": "^3.0.0" + "supertest": "^3.0.0", + "underscore": "^1.5.2", + "underscore.string": "^3.3.4" }, "dependencies": { "@google-cloud/storage": "^1.2.1", @@ -121,4 +126,3 @@ "wolfy87-eventemitter": "^5.2.2" } } - diff --git a/packages/rocketchat-markdown/parser/marked/marked.js b/packages/rocketchat-markdown/parser/marked/marked.js index 15fb3755a9d..5b8dbb200f3 100644 --- a/packages/rocketchat-markdown/parser/marked/marked.js +++ b/packages/rocketchat-markdown/parser/marked/marked.js @@ -1,3 +1,4 @@ +import { RocketChat } from 'meteor/rocketchat:lib'; import { Random } from 'meteor/random'; import { _ } from 'meteor/underscore'; import hljs from 'highlight.js'; diff --git a/packages/rocketchat-markdown/parser/original/markdown.js b/packages/rocketchat-markdown/parser/original/markdown.js index 268d79c2214..5e49e2f2752 100644 --- a/packages/rocketchat-markdown/parser/original/markdown.js +++ b/packages/rocketchat-markdown/parser/original/markdown.js @@ -31,7 +31,7 @@ const parseNotEscaped = function(msg, message) { msg = msg.replace(/(^|>|[ >_~`])\*{1,2}([^\*\r\n]+)\*{1,2}([<_~`]|\B|\b|$)/gm, '$1*$2*$3'); // Support _text_ to make italics - msg = msg.replace(/(^|>|[ >*~`])\_([^\_\r\n]+)\_([<*~`]|\B|\b|$)/gm, '$1_$2_$3'); + msg = msg.replace(/(^|>|[ >*~`])\_{1,2}([^\_\r\n]+)\_{1,2}([<*~`]|\B|\b|$)/gm, '$1_$2_$3'); // Support ~text~ to strike through text msg = msg.replace(/(^|>|[ >_*`])\~{1,2}([^~\r\n]+)\~{1,2}([<_*`]|\B|\b|$)/gm, '$1~$2~$3'); diff --git a/packages/rocketchat-markdown/parser/original/original.js b/packages/rocketchat-markdown/parser/original/original.js index d03f41906b3..288f1f2d228 100644 --- a/packages/rocketchat-markdown/parser/original/original.js +++ b/packages/rocketchat-markdown/parser/original/original.js @@ -6,12 +6,12 @@ import { markdown } from './markdown.js'; import { code } from './code.js'; export const original = (message) => { - // Parse markdown - message = markdown(message); - // Parse markdown code message = code(message); + // Parse markdown + message = markdown(message); + // Replace linebreak to br message.html = message.html.replace(/\n/gm, '
    '); diff --git a/packages/rocketchat-markdown/tests/client.mocks.js b/packages/rocketchat-markdown/tests/client.mocks.js new file mode 100644 index 00000000000..0c39955210f --- /dev/null +++ b/packages/rocketchat-markdown/tests/client.mocks.js @@ -0,0 +1,47 @@ +import mock from 'mock-require'; +import _ from 'underscore'; +import s from 'underscore.string'; +_.mixin(s.exports()); + +mock('meteor/meteor', { + Meteor: { + absoluteUrl() { + return 'http://localhost:3000/'; + } + } +}); + +mock('meteor/rocketchat:lib', { + RocketChat: { + settings: { + get(setting) { + switch (setting) { + case 'Markdown_SupportSchemesForLink': + return 'http,https'; + case 'Markdown_Headers': + // case 'Markdown_Marked_GFM': + // case 'Markdown_Marked_Tables': + // case 'Markdown_Marked_Breaks': + // case 'Markdown_Marked_Pedantic': + // case 'Markdown_Marked_SmartLists': + // case 'Markdown_Marked_Smartypants': + return true; + default: + throw new Error(`Missing setting mock ${ setting }`); + } + } + } + } +}); + +mock('meteor/underscore', { _ }); + +mock('meteor/random', { + Random: { + id() { + return Math.random(); + } + } +}); + +global.s = s; diff --git a/packages/rocketchat-markdown/tests/client.tests.js b/packages/rocketchat-markdown/tests/client.tests.js new file mode 100644 index 00000000000..546e84a382b --- /dev/null +++ b/packages/rocketchat-markdown/tests/client.tests.js @@ -0,0 +1,292 @@ +/* eslint-env mocha */ +import 'babel-polyfill'; +import assert from 'assert'; +import './client.mocks.js'; +import {original} from '../parser/original/original'; +// import {marked} from '../parser/marked/marked'; + +const wrapper = (text, tag) => `${ tag }${ text }${ tag }`; +const boldWrapper = text => wrapper(`${ text }`, '*'); +const italicWrapper = text => wrapper(`${ text }`, '_'); +const strikeWrapper = text => wrapper(`${ text }`, '~'); +const headerWrapper = (text, level) => `${ text }`; +const quoteWrapper = text => `
    >${ text }
    `; +const linkWrapped = (link, title) => `${ title }`; +const inlinecodeWrapper = text => wrapper(`${ text }`, '`'); +const codeWrapper = (text, lang) => `
    \`\`\`
    ${ text }
    \`\`\`
    `; + +const bold = { + '*Hello*': boldWrapper('Hello'), + '**Hello**': boldWrapper('Hello'), + '**Hello*': boldWrapper('Hello'), + '*Hello**': boldWrapper('Hello'), + 'Hello': 'Hello', + '*Hello': '*Hello', + 'Hello*': 'Hello*', + 'He*llo': 'He*llo', + '***Hello***': '***Hello***', + '***Hello**': '***Hello**', + '*Hello* this is dog': `${ boldWrapper('Hello') } this is dog`, + 'Rocket cat says *Hello*': `Rocket cat says ${ boldWrapper('Hello') }`, + 'He said *Hello* to her': `He said ${ boldWrapper('Hello') } to her`, + '**Hello** this is dog': `${ boldWrapper('Hello') } this is dog`, + 'Rocket cat says **Hello**': `Rocket cat says ${ boldWrapper('Hello') }`, + 'He said **Hello** to her': `He said ${ boldWrapper('Hello') } to her` +}; + +const italic = { + '_Hello_': italicWrapper('Hello'), + '__Hello__': italicWrapper('Hello'), + '__Hello_': italicWrapper('Hello'), + '_Hello__': italicWrapper('Hello'), + 'Hello': 'Hello', + '_Hello': '_Hello', + 'Hello_': 'Hello_', + 'He_llo': 'He_llo', + '___Hello___': '___Hello___', + '___Hello__': '___Hello__', + '_Hello_ this is dog': `${ italicWrapper('Hello') } this is dog`, + 'Rocket cat says _Hello_': `Rocket cat says ${ italicWrapper('Hello') }`, + 'He said _Hello_ to her': `He said ${ italicWrapper('Hello') } to her`, + '__Hello__ this is dog': `${ italicWrapper('Hello') } this is dog`, + 'Rocket cat says __Hello__': `Rocket cat says ${ italicWrapper('Hello') }`, + 'He said __Hello__ to her': `He said ${ italicWrapper('Hello') } to her` +}; + +const strike = { + '~Hello~': strikeWrapper('Hello'), + '~~Hello~~': strikeWrapper('Hello'), + '~~Hello~': strikeWrapper('Hello'), + '~Hello~~': strikeWrapper('Hello'), + 'Hello': 'Hello', + '~Hello': '~Hello', + 'Hello~': 'Hello~', + 'He~llo': 'He~llo', + '~~~Hello~~~': '~~~Hello~~~', + '~~~Hello~~': '~~~Hello~~', + '~Hello~ this is dog': `${ strikeWrapper('Hello') } this is dog`, + 'Rocket cat says ~Hello~': `Rocket cat says ${ strikeWrapper('Hello') }`, + 'He said ~Hello~ to her': `He said ${ strikeWrapper('Hello') } to her`, + '~~Hello~~ this is dog': `${ strikeWrapper('Hello') } this is dog`, + 'Rocket cat says ~~Hello~~': `Rocket cat says ${ strikeWrapper('Hello') }`, + 'He said ~~Hello~~ to her': `He said ${ strikeWrapper('Hello') } to her` +}; + +const headersLevel1 = { + '# Hello': headerWrapper('Hello', 1), + '# Rocket.Cat': headerWrapper('Rocket.Cat', 1), + '# Hi': headerWrapper('Hi', 1), + '# Hello this is dog': headerWrapper('Hello this is dog', 1), + '# Rocket cat says Hello': headerWrapper('Rocket cat says Hello', 1), + '# He said Hello to her': headerWrapper('He said Hello to her', 1), + '#Hello': '#Hello', + '#Hello#': '#Hello#', + 'He#llo': 'He#llo' +}; + +const headersLevel2 = { + '## Hello': headerWrapper('Hello', 2), + '## Rocket.Cat': headerWrapper('Rocket.Cat', 2), + '## Hi': headerWrapper('Hi', 2), + '## Hello this is dog': headerWrapper('Hello this is dog', 2), + '## Rocket cat says Hello': headerWrapper('Rocket cat says Hello', 2), + '## He said Hello to her': headerWrapper('He said Hello to her', 2), + '##Hello': '##Hello', + '##Hello##': '##Hello##', + 'He##llo': 'He##llo' +}; + +const headersLevel3 = { + '### Hello': headerWrapper('Hello', 3), + '### Rocket.Cat': headerWrapper('Rocket.Cat', 3), + '### Hi': headerWrapper('Hi', 3), + '### Hello this is dog': headerWrapper('Hello this is dog', 3), + '### Rocket cat says Hello': headerWrapper('Rocket cat says Hello', 3), + '### He said Hello to her': headerWrapper('He said Hello to her', 3), + '###Hello': '###Hello', + '###Hello###': '###Hello###', + 'He###llo': 'He###llo' +}; + +const headersLevel4 = { + '#### Hello': headerWrapper('Hello', 4), + '#### Rocket.Cat': headerWrapper('Rocket.Cat', 4), + '#### Hi': headerWrapper('Hi', 4), + '#### Hello this is dog': headerWrapper('Hello this is dog', 4), + '#### Rocket cat says Hello': headerWrapper('Rocket cat says Hello', 4), + '#### He said Hello to her': headerWrapper('He said Hello to her', 4), + '####Hello': '####Hello', + '####Hello####': '####Hello####', + 'He####llo': 'He####llo' +}; + +const quote = { + '>Hello': quoteWrapper('Hello'), + '>Rocket.Cat': quoteWrapper('Rocket.Cat'), + '>Hi': quoteWrapper('Hi'), + '> Hello this is dog': quoteWrapper(' Hello this is dog'), + '> Rocket cat says Hello': quoteWrapper(' Rocket cat says Hello'), + '> He said Hello to her': quoteWrapper(' He said Hello to her'), + '> He said Hello to her ': quoteWrapper(' He said Hello to her '), + '<Hello': '<Hello', + '<Rocket.Cat>': '<Rocket.Cat>', + ' >Hi': ' >Hi', + 'Hello > this is dog': 'Hello > this is dog', + 'Roc>ket cat says Hello': 'Roc>ket cat says Hello', + 'He said Hello to her>': 'He said Hello to her>', + '>Hello': '>Hello', + '>Rocket.Cat': '>Rocket.Cat', + '>Hi': '>Hi', + '> Hello this is dog': '> Hello this is dog', + '> Rocket cat says Hello': '> Rocket cat says Hello', + '> He said Hello to her': '> He said Hello to her', + '': '', + ' >Hi': ' >Hi', + 'Hello > this is dog': 'Hello > this is dog', + 'Roc>ket cat says Hello': 'Roc>ket cat says Hello', + 'He said Hello to her>': 'He said Hello to her>' +}; + +const link = { + '<http://link|Text>': linkWrapped('http://link', 'Text'), + '<https://demo.rocket.chat/|Demo Site For Rocket.Chat>': linkWrapped('https://demo.rocket.chat/', 'Demo Site For Rocket.Chat'), + '<https://demo.rocket.chat/ | Demo Site For Rocket.Chat>': linkWrapped('https://demo.rocket.chat/ ', ' Demo Site For Rocket.Chat'), + '<https://rocket.chat/|Rocket.Chat Site>': linkWrapped('https://rocket.chat/', 'Rocket.Chat Site'), + '<https://rocket.chat/docs/developer-guides/testing/#testing|Testing Entry on Rocket.Chat Docs Site>': linkWrapped('https://rocket.chat/docs/developer-guides/testing/#testing', 'Testing Entry on Rocket.Chat Docs Site'), + '<http://linkText>': '<http://linkText>', + '<https:demo.rocket.chat/ | Demo Site For Rocket.Chat>': '<https:demo.rocket.chat/ | Demo Site For Rocket.Chat>', + 'https://demo.rocket.chat/|Demo Site For Rocket.Chat': 'https://demo.rocket.chat/|Demo Site For Rocket.Chat', + '<www.demo.rocket.chat/|Demo Site For Rocket.Chat>': '<www.demo.rocket.chat/|Demo Site For Rocket.Chat>', + '<htps://rocket.chat/|Rocket.Chat Site>': '<htps://rocket.chat/|Rocket.Chat Site>', + '<ttps://rocket.chat/|Rocket.Chat Site>': '<ttps://rocket.chat/|Rocket.Chat Site>', + '<tps://rocket.chat/|Rocket.Chat Site>': '<tps://rocket.chat/|Rocket.Chat Site>', + '<demo.rocket.chat/|Demo Site For Rocket.Chat>': '<demo.rocket.chat/|Demo Site For Rocket.Chat>', + '<htts://rocket.chat/docs/developer-guides/testing/#testing|Testing Entry on Rocket.Chat Docs Site>': '<htts://rocket.chat/docs/developer-guides/testing/#testing|Testing Entry on Rocket.Chat Docs Site>', + + '': linkWrapped('http://link', 'Text'), + '': linkWrapped('https://demo.rocket.chat/', 'Demo Site For Rocket.Chat'), + '': linkWrapped('https://demo.rocket.chat/ ', ' Demo Site For Rocket.Chat'), + '': linkWrapped('https://rocket.chat/', 'Rocket.Chat Site'), + '': linkWrapped('https://rocket.chat/docs/developer-guides/testing/#testing', 'Testing Entry on Rocket.Chat Docs Site'), + '': '', + '': '', + '': '', + '': '', + '': '', + '': '', + '': '', + '': '', + + '[Text](http://link)': linkWrapped('http://link', 'Text'), + '[Demo Site For Rocket.Chat](https://demo.rocket.chat/)': linkWrapped('https://demo.rocket.chat/', 'Demo Site For Rocket.Chat'), + '[ Demo Site For Rocket.Chat](https://demo.rocket.chat/ )': linkWrapped('https://demo.rocket.chat/ ', ' Demo Site For Rocket.Chat'), + '[Rocket.Chat Site](https://rocket.chat/)': linkWrapped('https://rocket.chat/', 'Rocket.Chat Site'), + '[Testing Entry on Rocket.Chat Docs Site](https://rocket.chat/docs/developer-guides/testing/#testing)': linkWrapped('https://rocket.chat/docs/developer-guides/testing/#testing', 'Testing Entry on Rocket.Chat Docs Site'), + '[](http://linkText)': '[](http://linkText)', + '[text]': '[text]', + '[Demo Site For Rocket.Chat](https:demo.rocket.chat/)': '[Demo Site For Rocket.Chat](https:demo.rocket.chat/)', + '[Demo Site For Rocket.Chat](www.demo.rocket.chat/)': '[Demo Site For Rocket.Chat](www.demo.rocket.chat/)', + '[Rocket.Chat Site](htps://rocket.chat/)': '[Rocket.Chat Site](htps://rocket.chat/)', + '[Rocket.Chat Site](ttps://rocket.chat/)': '[Rocket.Chat Site](ttps://rocket.chat/)', + '[Rocket.Chat Site](tps://rocket.chat/)': '[Rocket.Chat Site](tps://rocket.chat/)', + '[Demo Site For Rocket.Chat](demo.rocket.chat/)': '[Demo Site For Rocket.Chat](demo.rocket.chat/)', + '[Testing Entry on Rocket.Chat Docs Site](htts://rocket.chat/docs/developer-guides/testing/#testing)': '[Testing Entry on Rocket.Chat Docs Site](htts://rocket.chat/docs/developer-guides/testing/#testing)' +}; + +const inlinecode = { + '`code`': inlinecodeWrapper('code'), + '`code` begin': `${ inlinecodeWrapper('code') } begin`, + 'End `code`': `End ${ inlinecodeWrapper('code') }`, + 'Middle `code` middle': `Middle ${ inlinecodeWrapper('code') } middle`, + '`code`begin': `${ inlinecodeWrapper('code') }begin`, + 'End`code`': 'End`code`', + 'Middle`code`middle': 'Middle`code`middle' +}; + +const code = { + '```code```': codeWrapper('code', 'clean'), + '```code': codeWrapper('code\n', 'stylus'), + '```code\n': codeWrapper('code\n\n', 'stylus'), + '```\ncode\n```': codeWrapper('\ncode\n', 'stylus'), + '```code\n```': codeWrapper('code\n', 'stylus'), + '```\ncode```': codeWrapper('\ncode', 'clean'), + '```javascript\nvar a = \'log\';\nconsole.log(a);```': codeWrapper('var a = \'log\';\nconsole.log(a);', 'javascript'), + '```*code*```': codeWrapper('*code*', 'armasm'), + '```**code**```': codeWrapper('**code**', 'armasm'), + '```_code_```': codeWrapper('_code_', 'sqf'), + '```__code__```': codeWrapper('__code__', 'markdown') +}; + +const defaultObjectTest = (result, object, objectKey) => { + return assert.equal(result.html, object[objectKey]); +}; + +const testObject = (object, parser = original, test = defaultObjectTest) => { + Object.keys(object).forEach((objectKey) => { + describe(objectKey, () => { + const result = parser({html: objectKey}); + it(`should be equal to ${ object[objectKey] }`, () => { + test(result, object, objectKey); + }); + }); + }); +}; + +describe('Original', function() { + describe('Bold', () => testObject(bold)); + + describe('Italic', () => testObject(italic)); + + describe('Strike', () => testObject(strike)); + + describe('Headers', () => { + describe('Level 1', () => testObject(headersLevel1)); + + describe('Level 2', () => testObject(headersLevel2)); + + describe('Level 3', () => testObject(headersLevel3)); + + describe('Level 4', () => testObject(headersLevel4)); + }); + + describe('Quote', () => testObject(quote)); + + describe('Link', () => testObject(link)); + + describe('Inline Code', () => testObject(inlinecode, undefined, (result, object, objectKey) => { + let html = result.html; + result.tokens.forEach((token) => { + html = html.replace(token.token, token.text); + }); + assert.equal(html, object[objectKey]); + })); + + describe('Code', () => testObject(code, undefined, (result, object, objectKey) => { + let html = result.html; + result.tokens.forEach((token) => { + html = html.replace(token.token, token.text); + }); + assert.equal(html, object[objectKey]); + })); +}); + +// describe.only('Marked', function() { +// describe('Bold', () => testObject(bold, marked)); + +// describe('Italic', () => testObject(italic, marked)); + +// describe('Strike', () => testObject(strike, marked)); + +// describe('Headers', () => { +// describe('Level 1', () => testObject(headersLevel1, marked)); + +// describe('Level 2', () => testObject(headersLevel2, marked)); + +// describe('Level 3', () => testObject(headersLevel3, marked)); + +// describe('Level 4', () => testObject(headersLevel4, marked)); +// }); + +// describe('Quote', () => testObject(quote, marked)); +// }); From 5c6d5142f93da8e02af0d6016579893d7d300371 Mon Sep 17 00:00:00 2001 From: Gabriel Engel Date: Wed, 30 Aug 2017 03:00:54 -0300 Subject: [PATCH 030/244] Merge pull request #7970 from RocketChat/padding-fixes [FIX] Small alignment fixes --- .../client/imports/components/messages.css | 2 +- .../components/sidebar/sidebar-account.css | 2 +- .../client/imports/forms/input.css | 4 ++-- .../client/imports/general/base_old.css | 16 +++++----------- .../client/imports/general/variables.css | 2 +- 5 files changed, 10 insertions(+), 16 deletions(-) diff --git a/packages/rocketchat-theme/client/imports/components/messages.css b/packages/rocketchat-theme/client/imports/components/messages.css index 9bda032ab66..9050a20ad9d 100644 --- a/packages/rocketchat-theme/client/imports/components/messages.css +++ b/packages/rocketchat-theme/client/imports/components/messages.css @@ -22,7 +22,7 @@ } &__label { - padding: 2px 10px; + padding: 2px 0; cursor: pointer; diff --git a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-account.css b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-account.css index 71b33c2a034..6962e7681d1 100644 --- a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-account.css +++ b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar-account.css @@ -1,7 +1,7 @@ .sidebar__account { display: flex; - margin-bottom: 40px; + margin-bottom: 12px; align-items: center; &--lighten { diff --git a/packages/rocketchat-theme/client/imports/forms/input.css b/packages/rocketchat-theme/client/imports/forms/input.css index 9f455b68985..5a329176931 100644 --- a/packages/rocketchat-theme/client/imports/forms/input.css +++ b/packages/rocketchat-theme/client/imports/forms/input.css @@ -34,11 +34,11 @@ justify-content: center; & + .rc-input__element { - padding: 0.75rem 1rem 0.75rem 3.25rem; + padding: 0.75rem 1rem 0.75rem 2.75rem; } & + .rc-input__element--small { - padding: 0.5rem 1rem 0.5rem 3.25rem; + padding: 0.5rem 1rem 0.5rem 2.75rem; } &--right { diff --git a/packages/rocketchat-theme/client/imports/general/base_old.css b/packages/rocketchat-theme/client/imports/general/base_old.css index a0a11ea2186..a893d50bc54 100644 --- a/packages/rocketchat-theme/client/imports/general/base_old.css +++ b/packages/rocketchat-theme/client/imports/general/base_old.css @@ -3024,16 +3024,16 @@ & .thumb { position: absolute; - left: 20px; + left: 24px; display: block; - width: 40px; - height: 40px; + width: 36px; + height: 36px; &:not(.thumb-small) .avatar { - width: 40px; - height: 40px; + width: 36px; + height: 36px; } &.thumb-small { @@ -3124,10 +3124,6 @@ } } - & .body { - margin-top: 0; - } - &:hover .edited { display: none; } @@ -3158,8 +3154,6 @@ } & .body { - margin-top: 2px; - transition: opacity 1s linear; opacity: 1; diff --git a/packages/rocketchat-theme/client/imports/general/variables.css b/packages/rocketchat-theme/client/imports/general/variables.css index 395bdcf0872..316b8ceda96 100644 --- a/packages/rocketchat-theme/client/imports/general/variables.css +++ b/packages/rocketchat-theme/client/imports/general/variables.css @@ -252,7 +252,7 @@ --message-box-user-typing-color: var(--color-gray); --message-box-user-typing-text-size: 0.75rem; --message-box-user-typing-user-color: var(--color-dark); - --message-box-container-border-color: var(--color-gray-light); + --message-box-container-border-color: var(--color-gray-medium); --message-box-container-border-width: var(--border); --message-box-container-border-radius: var(--border-radius); --message-box-editing-color: #fff5df; From 45782422b97dd696d873b219c26f2b3207003ff3 Mon Sep 17 00:00:00 2001 From: Gabriel Engel Date: Wed, 30 Aug 2017 03:40:58 -0300 Subject: [PATCH 031/244] Merge pull request #7971 from RocketChat/padding-fixes [FIX] Add padding on messages to allow space to the action buttons --- .../.npm/package/npm-shrinkwrap.json | 8 ++++---- .../rocketchat-theme/client/imports/general/base_old.css | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/rocketchat-google-vision/.npm/package/npm-shrinkwrap.json b/packages/rocketchat-google-vision/.npm/package/npm-shrinkwrap.json index 357fd38dda4..1b48096650d 100644 --- a/packages/rocketchat-google-vision/.npm/package/npm-shrinkwrap.json +++ b/packages/rocketchat-google-vision/.npm/package/npm-shrinkwrap.json @@ -1243,8 +1243,8 @@ "from": "methmeth@>=1.1.0 <2.0.0" }, "mime": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.0.tgz", "from": "mime@>=1.2.11 <2.0.0" }, "mime-db": { @@ -1268,8 +1268,8 @@ "from": "modelo@>=4.2.0 <5.0.0" }, "nan": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.7.0.tgz", "from": "nan@>=2.0.0 <3.0.0" }, "node-forge": { diff --git a/packages/rocketchat-theme/client/imports/general/base_old.css b/packages/rocketchat-theme/client/imports/general/base_old.css index a893d50bc54..19fd73985d2 100644 --- a/packages/rocketchat-theme/client/imports/general/base_old.css +++ b/packages/rocketchat-theme/client/imports/general/base_old.css @@ -2900,7 +2900,7 @@ position: relative; min-height: 40px; - padding: 8px 20px 4px 70px; + padding: 8px 50px 4px 70px; line-height: 20px; From cbf9d902fdfe2480cf1ab2a61824f757bccad226 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Wed, 30 Aug 2017 14:56:31 -0300 Subject: [PATCH 032/244] Merge pull request #7984 from RocketChat/hotfix/textarea-autofocus [FIX] Chat box no longer auto-focuses when typing --- packages/rocketchat-ui-master/client/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/rocketchat-ui-master/client/main.js b/packages/rocketchat-ui-master/client/main.js index 4cc4e5eb5fe..902e3bbca8c 100644 --- a/packages/rocketchat-ui-master/client/main.js +++ b/packages/rocketchat-ui-master/client/main.js @@ -60,7 +60,7 @@ Template.body.onRendered(function() { if (target.id === 'pswp') { return; } - const inputMessage = $('textarea.input-message'); + const inputMessage = $('textarea.rc-message-box__textarea'); if (inputMessage.length === 0) { return; } From 4f16adee407385e961414b44d0f9bb574865e2ca Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Wed, 30 Aug 2017 17:53:23 -0300 Subject: [PATCH 033/244] Merge pull request #7986 from RocketChat/fix-textarea-firefox [FIX] Textarea on firefox --- .../rocketchat-theme/client/imports/components/message-box.css | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/rocketchat-theme/client/imports/components/message-box.css b/packages/rocketchat-theme/client/imports/components/message-box.css index b6df6d66c05..6137a678148 100644 --- a/packages/rocketchat-theme/client/imports/components/message-box.css +++ b/packages/rocketchat-theme/client/imports/components/message-box.css @@ -97,6 +97,7 @@ width: 100%; max-height: 155px; padding: 0; + height: 15px; resize: none; From 6dbfad7d9a4e4fd7d5d94f426ed407a9145ffcc5 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Tue, 29 Aug 2017 23:37:38 -0300 Subject: [PATCH 034/244] Merge pull request #7944 from RocketChat/fix-embedded [FIX] Broken embedded view layout --- .../client/imports/components/message-box.css | 4 +++ .../client/flexTabBar.html | 34 ++++++++++--------- .../client/flexTabBar.js | 4 +++ .../client/messageBox.html | 32 +++++++++-------- .../client/messageBox.js | 3 ++ 5 files changed, 46 insertions(+), 31 deletions(-) diff --git a/packages/rocketchat-theme/client/imports/components/message-box.css b/packages/rocketchat-theme/client/imports/components/message-box.css index 6137a678148..f3a63956d62 100644 --- a/packages/rocketchat-theme/client/imports/components/message-box.css +++ b/packages/rocketchat-theme/client/imports/components/message-box.css @@ -6,6 +6,10 @@ font-size: var(--message-box-text-size); + &--embedded { + padding: 12px; + } + &__toolbar-markdown { position: absolute; left: 0; diff --git a/packages/rocketchat-ui-flextab/client/flexTabBar.html b/packages/rocketchat-ui-flextab/client/flexTabBar.html index a9987f0a6a4..e24363c1070 100644 --- a/packages/rocketchat-ui-flextab/client/flexTabBar.html +++ b/packages/rocketchat-ui-flextab/client/flexTabBar.html @@ -1,21 +1,23 @@ diff --git a/packages/rocketchat-ui-flextab/client/flexTabBar.js b/packages/rocketchat-ui-flextab/client/flexTabBar.js index d1de65a4dff..2d355813b5e 100644 --- a/packages/rocketchat-ui-flextab/client/flexTabBar.js +++ b/packages/rocketchat-ui-flextab/client/flexTabBar.js @@ -35,6 +35,10 @@ Template.flexTabBar.helpers({ return Object.assign(Template.currentData().data || {}, { tabBar: Template.instance().tabBar }); + }, + + embeddedVersion() { + return RocketChat.Layout.isEmbedded(); } }); diff --git a/packages/rocketchat-ui-message/client/messageBox.html b/packages/rocketchat-ui-message/client/messageBox.html index 989a17801dd..7d1984543f8 100644 --- a/packages/rocketchat-ui-message/client/messageBox.html +++ b/packages/rocketchat-ui-message/client/messageBox.html @@ -1,5 +1,5 @@ \ No newline at end of file From eb2ffdeece8c0f32d37c356d39d148bbbdabf16e Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Wed, 30 Aug 2017 18:00:27 -0300 Subject: [PATCH 036/244] Merge pull request #7985 from RocketChat/text-area-mobile [FIX] Text area buttons and layout on mobile --- .../.npm/package/npm-shrinkwrap.json | 1301 +++++++---------- .../rocketchat-lib/client/lib/roomExit.js | 7 +- .../client/imports/components/message-box.css | 62 +- .../client/imports/general/variables.css | 1 + .../client/messageBox.html | 91 +- .../client/messageBox.js | 22 +- .../startup/messageBoxActions.js | 10 +- .../client/lib/textarea-autogrow.js | 8 +- 8 files changed, 715 insertions(+), 787 deletions(-) diff --git a/packages/rocketchat-google-vision/.npm/package/npm-shrinkwrap.json b/packages/rocketchat-google-vision/.npm/package/npm-shrinkwrap.json index 1b48096650d..788d7c87977 100644 --- a/packages/rocketchat-google-vision/.npm/package/npm-shrinkwrap.json +++ b/packages/rocketchat-google-vision/.npm/package/npm-shrinkwrap.json @@ -329,744 +329,581 @@ "from": "graceful-fs@>=4.1.2 <5.0.0" }, "grpc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/grpc/-/grpc-1.4.1.tgz", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/grpc/-/grpc-1.6.0.tgz", "from": "grpc@>=1.3.1 <2.0.0", "dependencies": { + "abbrev": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "from": "abbrev@1" + }, + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "from": "ajv@^4.9.1" + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "from": "ansi-regex@^2.0.0" + }, + "aproba": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz", + "from": "aproba@^1.0.3" + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "from": "are-we-there-yet@~1.1.2" + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "from": "asn1@~0.2.3" + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "from": "assert-plus@^0.2.0" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "from": "asynckit@^0.4.0" + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "from": "aws-sign2@~0.6.0" + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "from": "aws4@^1.2.1" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "from": "balanced-match@^1.0.0" + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "from": "bcrypt-pbkdf@^1.0.0" + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "from": "block-stream@*" + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "from": "boom@2.x.x" + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "from": "brace-expansion@^1.1.7" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "from": "caseless@~0.12.0" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "from": "co@^4.6.0" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "from": "code-point-at@^1.0.0" + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "from": "combined-stream@~1.0.5" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "from": "concat-map@0.0.1" + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "from": "console-control-strings@~1.1.0" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "from": "core-util-is@~1.0.0" + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "from": "cryptiles@2.x.x" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "from": "dashdash@^1.12.0", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "from": "assert-plus@^1.0.0" + } + } + }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "from": "debug@^2.2.0" + }, + "deep-extend": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "from": "deep-extend@~0.4.0" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "from": "delayed-stream@~1.0.0" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "from": "delegates@^1.0.0" + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "from": "ecc-jsbn@~0.1.1" + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "from": "extend@~3.0.0" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "from": "extsprintf@1.3.0" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "from": "forever-agent@~0.6.1" + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "from": "form-data@~2.1.1" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "from": "fs.realpath@^1.0.0" + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "from": "fstream@^1.0.2" + }, + "fstream-ignore": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "from": "fstream-ignore@^1.0.5" + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "from": "gauge@~2.7.3" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "from": "getpass@^0.1.1", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "from": "assert-plus@^1.0.0" + } + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "from": "glob@^7.0.5" + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "from": "graceful-fs@^4.1.2" + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "from": "har-schema@^1.0.5" + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "from": "har-validator@~4.2.1" + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "from": "has-unicode@^2.0.0" + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "from": "hawk@~3.1.3" + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "from": "hoek@2.x.x" + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "from": "http-signature@~1.1.0" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "from": "inflight@^1.0.4" + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "from": "inherits@~2.0.3" + }, + "ini": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "from": "ini@~1.3.0" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "from": "is-fullwidth-code-point@^1.0.0" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "from": "is-typedarray@~1.0.0" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "from": "isarray@~1.0.0" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "from": "isstream@~0.1.2" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "from": "jsbn@~0.1.0" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "from": "json-schema@0.2.3" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "from": "json-stable-stringify@^1.0.1" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "from": "json-stringify-safe@~5.0.1" + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "from": "jsonify@~0.0.0" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "from": "jsprim@^1.2.2", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "from": "assert-plus@1.0.0" + } + } + }, + "mime-db": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", + "from": "mime-db@~1.29.0" + }, + "mime-types": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", + "from": "mime-types@~2.1.7" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "from": "minimatch@^3.0.4" + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "from": "minimist@^1.2.0" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "from": "mkdirp@^0.5.1", + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "from": "minimist@0.0.8" + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "from": "ms@2.0.0" + }, "node-pre-gyp": { "version": "0.6.36", "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz", - "from": "node-pre-gyp@0.6.36", + "from": "node-pre-gyp@0.6.36" + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "from": "nopt@^4.0.1" + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "from": "npmlog@^4.0.2" + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "from": "number-is-nan@^1.0.0" + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "from": "oauth-sign@~0.8.1" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "from": "object-assign@^4.1.0" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "from": "once@^1.3.0" + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "from": "os-homedir@^1.0.0" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "from": "os-tmpdir@^1.0.0" + }, + "osenv": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "from": "osenv@^0.1.4" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "from": "path-is-absolute@^1.0.0" + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "from": "performance-now@^0.2.0" + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "from": "process-nextick-args@~1.0.6" + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "from": "punycode@^1.4.1" + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "from": "qs@~6.4.0" + }, + "rc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "from": "rc@^1.1.7" + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "from": "readable-stream@^2.0.6" + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "from": "request@^2.81.0" + }, + "rimraf": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "from": "rimraf@^2.6.1" + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "from": "safe-buffer@~5.1.1" + }, + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "from": "semver@^5.3.0" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "from": "set-blocking@~2.0.0" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "from": "signal-exit@^3.0.0" + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "from": "sntp@1.x.x" + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "from": "sshpk@^1.7.0", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "from": "assert-plus@^1.0.0" + } + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "from": "string-width@^1.0.1" + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "from": "string_decoder@~1.0.3" + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "from": "stringstream@~0.0.4" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "from": "strip-ansi@^3.0.1" + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "from": "strip-json-comments@~2.0.1" + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "from": "tar@^2.2.1" + }, + "tar-pack": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", + "from": "tar-pack@^3.4.0" + }, + "tough-cookie": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "from": "tough-cookie@~2.3.0" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "from": "tunnel-agent@^0.6.0" + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "from": "tweetnacl@~0.14.0" + }, + "uid-number": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "from": "uid-number@^0.0.6" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "from": "util-deprecate@~1.0.1" + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "from": "uuid@^3.0.0" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "from": "verror@1.10.0", "dependencies": { - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "from": "mkdirp@>=0.5.1 <0.6.0", - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "from": "minimist@0.0.8" - } - } - }, - "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "from": "nopt@>=4.0.1 <5.0.0", - "dependencies": { - "abbrev": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "from": "abbrev@>=1.0.0 <2.0.0" - }, - "osenv": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "from": "osenv@>=0.1.4 <0.2.0", - "dependencies": { - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "from": "os-homedir@>=1.0.0 <2.0.0" - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "from": "os-tmpdir@>=1.0.0 <2.0.0" - } - } - } - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "from": "npmlog@>=4.0.2 <5.0.0", - "dependencies": { - "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "from": "are-we-there-yet@>=1.1.2 <1.2.0", - "dependencies": { - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "from": "delegates@>=1.0.0 <2.0.0" - }, - "readable-stream": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.2.tgz", - "from": "readable-stream@>=2.0.6 <3.0.0", - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "from": "core-util-is@>=1.0.0 <1.1.0" - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "from": "inherits@>=2.0.3 <2.1.0" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "from": "isarray@>=1.0.0 <1.1.0" - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "from": "process-nextick-args@>=1.0.6 <1.1.0" - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "from": "safe-buffer@>=5.1.0 <5.2.0" - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "from": "string_decoder@>=1.0.0 <1.1.0" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "from": "util-deprecate@>=1.0.1 <1.1.0" - } - } - } - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "from": "console-control-strings@>=1.1.0 <1.2.0" - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "from": "gauge@>=2.7.3 <2.8.0", - "dependencies": { - "aproba": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz", - "from": "aproba@>=1.0.3 <2.0.0" - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "from": "has-unicode@>=2.0.0 <3.0.0" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "from": "object-assign@>=4.1.0 <5.0.0" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "from": "signal-exit@>=3.0.0 <4.0.0" - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "from": "string-width@>=1.0.1 <2.0.0", - "dependencies": { - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "from": "code-point-at@>=1.0.0 <2.0.0" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "from": "is-fullwidth-code-point@>=1.0.0 <2.0.0", - "dependencies": { - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "from": "number-is-nan@>=1.0.0 <2.0.0" - } - } - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "from": "strip-ansi@>=3.0.1 <4.0.0", - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "from": "ansi-regex@>=2.0.0 <3.0.0" - } - } - }, - "wide-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "from": "wide-align@>=1.1.0 <2.0.0" - } - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "from": "set-blocking@>=2.0.0 <2.1.0" - } - } - }, - "rc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "from": "rc@>=1.1.7 <2.0.0", - "dependencies": { - "deep-extend": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "from": "deep-extend@>=0.4.0 <0.5.0" - }, - "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "from": "ini@>=1.3.0 <1.4.0" - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "from": "minimist@>=1.2.0 <2.0.0" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "from": "strip-json-comments@>=2.0.1 <2.1.0" - } - } - }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "from": "request@>=2.81.0 <3.0.0", - "dependencies": { - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "from": "aws-sign2@>=0.6.0 <0.7.0" - }, - "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "from": "aws4@>=1.2.1 <2.0.0" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "from": "caseless@>=0.12.0 <0.13.0" - }, - "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "from": "combined-stream@>=1.0.5 <1.1.0", - "dependencies": { - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "from": "delayed-stream@>=1.0.0 <1.1.0" - } - } - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "from": "extend@>=3.0.0 <3.1.0" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "from": "forever-agent@>=0.6.1 <0.7.0" - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "from": "form-data@>=2.1.1 <2.2.0", - "dependencies": { - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "from": "asynckit@>=0.4.0 <0.5.0" - } - } - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "from": "har-validator@>=4.2.1 <4.3.0", - "dependencies": { - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "from": "ajv@>=4.9.1 <5.0.0", - "dependencies": { - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "from": "co@>=4.6.0 <5.0.0" - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "from": "json-stable-stringify@>=1.0.1 <2.0.0", - "dependencies": { - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "from": "jsonify@>=0.0.0 <0.1.0" - } - } - } - } - }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "from": "har-schema@>=1.0.5 <2.0.0" - } - } - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "from": "hawk@>=3.1.3 <3.2.0", - "dependencies": { - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "from": "boom@>=2.0.0 <3.0.0" - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "from": "cryptiles@>=2.0.0 <3.0.0" - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "from": "hoek@>=2.0.0 <3.0.0" - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "from": "sntp@>=1.0.0 <2.0.0" - } - } - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "from": "http-signature@>=1.1.0 <1.2.0", - "dependencies": { - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "from": "assert-plus@>=0.2.0 <0.3.0" - }, - "jsprim": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "from": "jsprim@>=1.2.2 <2.0.0", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "from": "assert-plus@1.0.0" - }, - "extsprintf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "from": "extsprintf@1.0.2" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "from": "json-schema@0.2.3" - }, - "verror": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "from": "verror@1.3.6" - } - } - }, - "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "from": "sshpk@>=1.7.0 <2.0.0", - "dependencies": { - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "from": "asn1@>=0.2.3 <0.3.0" - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "from": "assert-plus@>=1.0.0 <2.0.0" - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "from": "bcrypt-pbkdf@>=1.0.0 <2.0.0" - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "from": "dashdash@>=1.12.0 <2.0.0" - }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "from": "ecc-jsbn@>=0.1.1 <0.2.0" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "from": "getpass@>=0.1.1 <0.2.0" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "from": "jsbn@>=0.1.0 <0.2.0" - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "from": "tweetnacl@>=0.14.0 <0.15.0" - } - } - } - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "from": "is-typedarray@>=1.0.0 <1.1.0" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "from": "isstream@>=0.1.2 <0.2.0" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "from": "json-stringify-safe@>=5.0.1 <5.1.0" - }, - "mime-types": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "from": "mime-types@>=2.1.7 <2.2.0", - "dependencies": { - "mime-db": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "from": "mime-db@>=1.27.0 <1.28.0" - } - } - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "from": "oauth-sign@>=0.8.1 <0.9.0" - }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "from": "performance-now@>=0.2.0 <0.3.0" - }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "from": "qs@>=6.4.0 <6.5.0" - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "from": "safe-buffer@>=5.0.1 <6.0.0" - }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "from": "stringstream@>=0.0.4 <0.1.0" - }, - "tough-cookie": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "from": "tough-cookie@>=2.3.0 <2.4.0", - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "from": "punycode@>=1.4.1 <2.0.0" - } - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "from": "tunnel-agent@>=0.6.0 <0.7.0" - }, - "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "from": "uuid@>=3.0.0 <4.0.0" - } - } - }, - "rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "from": "rimraf@>=2.6.1 <3.0.0", - "dependencies": { - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "from": "glob@>=7.0.5 <8.0.0", - "dependencies": { - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "from": "fs.realpath@>=1.0.0 <2.0.0" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "from": "inflight@>=1.0.4 <2.0.0", - "dependencies": { - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "from": "wrappy@>=1.0.0 <2.0.0" - } - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "from": "inherits@>=2.0.0 <3.0.0" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "from": "minimatch@>=3.0.0 <4.0.0", - "dependencies": { - "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "from": "brace-expansion@>=1.1.7 <2.0.0", - "dependencies": { - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "from": "balanced-match@>=1.0.0 <2.0.0" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "from": "concat-map@0.0.1" - } - } - } - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "from": "once@>=1.3.0 <2.0.0", - "dependencies": { - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "from": "wrappy@>=1.0.0 <2.0.0" - } - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "from": "path-is-absolute@>=1.0.0 <2.0.0" - } - } - } - } - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "from": "semver@>=5.3.0 <6.0.0" - }, - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "from": "tar@>=2.2.1 <3.0.0", - "dependencies": { - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "from": "block-stream@*" - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "from": "fstream@>=1.0.2 <2.0.0", - "dependencies": { - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "from": "graceful-fs@>=4.1.2 <5.0.0" - } - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "from": "inherits@>=2.0.0 <3.0.0" - } - } - }, - "tar-pack": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", - "from": "tar-pack@>=3.4.0 <4.0.0", - "dependencies": { - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "from": "debug@>=2.2.0 <3.0.0", - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "from": "ms@2.0.0" - } - } - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "from": "fstream@>=1.0.10 <2.0.0", - "dependencies": { - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "from": "graceful-fs@>=4.1.2 <5.0.0" - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "from": "inherits@>=2.0.0 <2.1.0" - } - } - }, - "fstream-ignore": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "from": "fstream-ignore@>=1.0.5 <2.0.0", - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "from": "inherits@>=2.0.0 <3.0.0" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "from": "minimatch@>=3.0.0 <4.0.0", - "dependencies": { - "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "from": "brace-expansion@>=1.1.7 <2.0.0", - "dependencies": { - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "from": "balanced-match@>=1.0.0 <2.0.0" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "from": "concat-map@0.0.1" - } - } - } - } - } - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "from": "once@>=1.0.0 <2.0.0", - "dependencies": { - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "from": "wrappy@>=1.0.0 <2.0.0" - } - } - }, - "readable-stream": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.2.tgz", - "from": "readable-stream@>=2.1.4 <3.0.0", - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "from": "core-util-is@>=1.0.0 <1.1.0" - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "from": "inherits@>=2.0.3 <2.1.0" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "from": "isarray@>=1.0.0 <1.1.0" - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "from": "process-nextick-args@>=1.0.6 <1.1.0" - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "from": "safe-buffer@>=5.1.0 <5.2.0" - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "from": "string_decoder@>=1.0.0 <1.1.0" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "from": "util-deprecate@>=1.0.1 <1.1.0" - } - } - }, - "uid-number": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "from": "uid-number@>=0.0.6 <0.0.7" - } - } + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "from": "assert-plus@^1.0.0" } } + }, + "wide-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "from": "wide-align@^1.1.0" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "from": "wrappy@1" } } }, @@ -1270,7 +1107,7 @@ "nan": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.7.0.tgz", - "from": "nan@>=2.0.0 <3.0.0" + "from": "nan@>=2.6.2 <3.0.0" }, "node-forge": { "version": "0.7.1", @@ -1340,7 +1177,7 @@ "protobufjs": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-5.0.2.tgz", - "from": "protobufjs@>=5.0.0 <6.0.0" + "from": "protobufjs@>=5.0.2 <6.0.0" }, "pump": { "version": "1.0.2", diff --git a/packages/rocketchat-lib/client/lib/roomExit.js b/packages/rocketchat-lib/client/lib/roomExit.js index 646b5fdcf2f..3b036d282e8 100644 --- a/packages/rocketchat-lib/client/lib/roomExit.js +++ b/packages/rocketchat-lib/client/lib/roomExit.js @@ -2,8 +2,11 @@ this.roomExit = function() { // 7370 - Close flex-tab when opening a room on mobile UI if (window.matchMedia('(max-width: 500px)').matches) { - const templateData = Blaze.getData(document.querySelector('.flex-tab')); - templateData && templateData.tabBar && templateData.tabBar.close(); + const flex = document.querySelector('.flex-tab'); + if (flex) { + const templateData = Blaze.getData(flex); + templateData && templateData.tabBar && templateData.tabBar.close(); + } } RocketChat.callbacks.run('roomExit'); BlazeLayout.render('main', { diff --git a/packages/rocketchat-theme/client/imports/components/message-box.css b/packages/rocketchat-theme/client/imports/components/message-box.css index f3a63956d62..149883503d7 100644 --- a/packages/rocketchat-theme/client/imports/components/message-box.css +++ b/packages/rocketchat-theme/client/imports/components/message-box.css @@ -158,14 +158,21 @@ } } } + + & [data-small] { + display: none; + } } @media (width <= 500px) { .rc-message-box { - padding: 24px 0 0; + margin-top: 1rem; + padding: 0; &__typing { - margin-left: 10px; + top: -1rem; + + margin-left: 1rem; } &__toolbar-markdown { @@ -175,8 +182,59 @@ &__container { display: flex; + padding: var(--default-small-padding); + padding-bottom: calc(var(--default-small-padding) - 8px); + border-width: 0; border-top-width: 1px; + flex-wrap: wrap; + } + + & [data-desktop] { + display: none; + } + + & [data-small] { + display: flex; + } + + &__textarea { + flex: 1 0 100%; + + margin-bottom: 10px; + order: 1; + } + + &__action { + margin: 5px 10px; + + font-size: 20px; + } + + & [disabled] { + opacity: 0.4; + } + + & .emoji-picker-icon { + width: initial; + padding-right: 10px; + order: 2; + } + + &__action-label { + display: flex; + flex-direction: row; + flex: 1 1 auto; + + font-size: 20px; + order: 3; + } + + &__send { + flex: 0; + + font-size: 20px; + order: 4; } } } diff --git a/packages/rocketchat-theme/client/imports/general/variables.css b/packages/rocketchat-theme/client/imports/general/variables.css index 316b8ceda96..ee165463a83 100644 --- a/packages/rocketchat-theme/client/imports/general/variables.css +++ b/packages/rocketchat-theme/client/imports/general/variables.css @@ -41,6 +41,7 @@ --status-busy: var(--color-error); --status-invisible: var(--color-gray-medium); --status-invisible-sidebar: var(--color-darkest); + --default-small-padding: 1rem; /* * Forms diff --git a/packages/rocketchat-ui-message/client/messageBox.html b/packages/rocketchat-ui-message/client/messageBox.html index 7d1984543f8..0107194b914 100644 --- a/packages/rocketchat-ui-message/client/messageBox.html +++ b/packages/rocketchat-ui-message/client/messageBox.html @@ -26,46 +26,18 @@ {{> icon block="rc-input__icon-svg" icon="emoji"}} - {{#if sendIcon}} -
    + {{#unless disableSendIcon}} +
    {{> icon block="rc-input__icon-svg" icon="send"}}
    {{else}} - - - {{/if}} + {{> messageBox__actions}} + {{/unless}} + {{# messageBox__actionsSmall}} + + {{> icon block="rc-message-box__action" icon="send"}} + + {{/messageBox__actionsSmall}} {{#unless embeddedVersion}} {{#if showFormattingTips}} @@ -118,3 +90,48 @@ {{/if}}
    + + diff --git a/packages/rocketchat-ui-message/client/messageBox.js b/packages/rocketchat-ui-message/client/messageBox.js index 8b94325eee4..94a272e627f 100644 --- a/packages/rocketchat-ui-message/client/messageBox.js +++ b/packages/rocketchat-ui-message/client/messageBox.js @@ -130,7 +130,11 @@ const markdownButtons = [ } ]; -Template.messageBox.helpers({ +const methods = { + actions() { + const groups = RocketChat.messageBox.actions.get(); + return Object.keys(groups).reduce((ret, el) => ret.concat(groups[el]), []); + }, columns() { const groups = RocketChat.messageBox.actions.get(); const sorted = Object.keys(groups).sort((a, b) => groups[b].length - groups[a].length); @@ -153,7 +157,12 @@ Template.messageBox.helpers({ }); return columns; - }, + } +}; + +Template.messageBox__actions.helpers(methods); +Template.messageBox__actionsSmall.helpers(methods); +Template.messageBox.helpers({ mdButtons() { return markdownButtons.filter(button => !button.condition || button.condition()); }, @@ -275,8 +284,8 @@ Template.messageBox.helpers({ anonymousWrite() { return (Meteor.userId() == null) && RocketChat.settings.get('Accounts_AllowAnonymousRead') === true && RocketChat.settings.get('Accounts_AllowAnonymousWrite') === true; }, - sendIcon() { - return Template.instance().sendIcon.get(); + disableSendIcon() { + return !Template.instance().sendIcon.get() ? 'disabled' : ''; }, embeddedVersion() { return RocketChat.Layout.isEmbedded(); @@ -334,8 +343,9 @@ function firefoxPasteUpload(fn) { } Template.messageBox.events({ - 'click .js-message-actions .rc-popover__item'(event, instance) { - this.action.apply(this, [{rid: Template.parentData()._id, messageBox: instance.find('.rc-message-box'), element: $(event.target).parent('.rc-popover__item')[0], event}]); + 'click .js-message-actions .rc-popover__item, click .js-message-actions .js-message-action'(event, instance) { + const action = this.action || Template.parentData().action; + action.apply(this, [{rid: Template.parentData()._id, messageBox: instance.find('.rc-message-box'), element: event.currentTarget, event}]); }, 'click .join'(event) { event.stopPropagation(); diff --git a/packages/rocketchat-ui-message/startup/messageBoxActions.js b/packages/rocketchat-ui-message/startup/messageBoxActions.js index d0b55c12103..9f23d240874 100644 --- a/packages/rocketchat-ui-message/startup/messageBoxActions.js +++ b/packages/rocketchat-ui-message/startup/messageBoxActions.js @@ -5,7 +5,7 @@ import {VRecDialog} from 'meteor/rocketchat:ui-vrecord'; RocketChat.messageBox.actions.add('Create_new', 'Video_message', { icon: 'video', - condition: () => RocketChat.settings.get('FileUpload_Enabled') && RocketChat.settings.get('Message_VideoRecorderEnabled') && ((navigator.getUserMedia != null) || (navigator.webkitGetUserMedia != null)) && (!RocketChat.settings.get('FileUpload_MediaTypeWhiteList') || RocketChat.settings.get('FileUpload_MediaTypeWhiteList').match(/video\/webm|video\/\*/i)), + condition: () => (navigator.getUserMedia || navigator.webkitGetUserMedia) && RocketChat.settings.get('FileUpload_Enabled') && RocketChat.settings.get('Message_VideoRecorderEnabled') && (!RocketChat.settings.get('FileUpload_MediaTypeWhiteList') || RocketChat.settings.get('FileUpload_MediaTypeWhiteList').match(/video\/webm|video\/\*/i)), action({messageBox}) { return VRecDialog.opened ? VRecDialog.close() : VRecDialog.open(messageBox); } @@ -13,10 +13,10 @@ RocketChat.messageBox.actions.add('Create_new', 'Video_message', { RocketChat.messageBox.actions.add('Create_new', 'Audio_message', { icon: 'mic', - condition: () => RocketChat.settings.get('FileUpload_Enabled') && RocketChat.settings.get('Message_AudioRecorderEnabled') && ((navigator.getUserMedia != null) || (navigator.webkitGetUserMedia != null)) && (!RocketChat.settings.get('FileUpload_MediaTypeWhiteList') || RocketChat.settings.get('FileUpload_MediaTypeWhiteList').match(/audio\/wav|audio\/\*/i)), + condition: () => (navigator.getUserMedia || navigator.webkitGetUserMedia) && RocketChat.settings.get('FileUpload_Enabled') && RocketChat.settings.get('Message_AudioRecorderEnabled') && (!RocketChat.settings.get('FileUpload_MediaTypeWhiteList') || RocketChat.settings.get('FileUpload_MediaTypeWhiteList').match(/audio\/wav|audio\/\*/i)), action({event, element}) { event.preventDefault(); - const icon = element.querySelector('.rc-popover__icon'); + const icon = element; if (chatMessages[RocketChat.openedRoom].recording) { return AudioRecorder.stop(function(blob) { icon.style.color = ''; @@ -31,10 +31,10 @@ RocketChat.messageBox.actions.add('Create_new', 'Audio_message', { ]); }); } - icon.classList.add('pulse'); - icon.style.color = 'red'; chatMessages[RocketChat.openedRoom].recording = true; return AudioRecorder.start(function() { + icon.classList.add('pulse'); + icon.style.color = 'red'; }); } }); diff --git a/packages/rocketchat-ui/client/lib/textarea-autogrow.js b/packages/rocketchat-ui/client/lib/textarea-autogrow.js index 26341c70004..b375bdcc28f 100644 --- a/packages/rocketchat-ui/client/lib/textarea-autogrow.js +++ b/packages/rocketchat-ui/client/lib/textarea-autogrow.js @@ -10,7 +10,6 @@ var self = this; var $self = $(self); var minHeight = $self.height(); - var noFlickerPad = $self.hasClass('autogrow-short') ? 0 : parseInt($self.css('lineHeight')) || 0; var settings = $.extend({ preGrowCallback: null, postGrowCallback: null @@ -24,6 +23,9 @@ } shadow.css({ + position: 'absolute', + top: -10000, + left: -10000, width: $self.width(), fontSize: $self.css('fontSize'), fontFamily: $self.css('fontFamily'), @@ -54,9 +56,9 @@ } shadow.css('width', $self.width()); - shadow.html(val + (noFlickerPad === 0 ? '...' : '')); // Append '...' to resize pre-emptively. + shadow.html(val); - var newHeight = Math.max(shadow.height() + noFlickerPad + 1, minHeight); + var newHeight = Math.max(shadow.height() + 1, minHeight) + 1; if (settings.preGrowCallback !== null) { newHeight = settings.preGrowCallback($self, shadow, newHeight, minHeight); } From fcf6886d6bf8356af9c65a15f8f80784b3fa69f3 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Wed, 30 Aug 2017 18:03:07 -0300 Subject: [PATCH 037/244] Bump version to 0.59.0-rc.3 --- .docker/Dockerfile | 2 +- .sandstorm/sandstorm-pkgdef.capnp | 2 +- .travis/snap.sh | 2 +- HISTORY.md | 26 +++++++++++++++++++++++++ package.json | 2 +- packages/rocketchat-lib/rocketchat.info | 2 +- 6 files changed, 31 insertions(+), 5 deletions(-) diff --git a/.docker/Dockerfile b/.docker/Dockerfile index 5887f7cd551..6124d5c01f2 100644 --- a/.docker/Dockerfile +++ b/.docker/Dockerfile @@ -1,6 +1,6 @@ FROM rocketchat/base:4 -ENV RC_VERSION 0.59.0-rc.2 +ENV RC_VERSION 0.59.0-rc.3 MAINTAINER buildmaster@rocket.chat diff --git a/.sandstorm/sandstorm-pkgdef.capnp b/.sandstorm/sandstorm-pkgdef.capnp index 872f18c0fb3..9dcdcfc8d9d 100644 --- a/.sandstorm/sandstorm-pkgdef.capnp +++ b/.sandstorm/sandstorm-pkgdef.capnp @@ -21,7 +21,7 @@ const pkgdef :Spk.PackageDefinition = ( appVersion = 62, # Increment this for every release. - appMarketingVersion = (defaultText = "0.59.0-rc.2"), + appMarketingVersion = (defaultText = "0.59.0-rc.3"), # Human-readable representation of appVersion. Should match the way you # identify versions of your app in documentation and marketing. diff --git a/.travis/snap.sh b/.travis/snap.sh index b1ff2364daa..43d2660bff1 100755 --- a/.travis/snap.sh +++ b/.travis/snap.sh @@ -17,7 +17,7 @@ elif [[ $TRAVIS_TAG ]]; then RC_VERSION=$TRAVIS_TAG else CHANNEL=edge - RC_VERSION=0.59.0-rc.2 + RC_VERSION=0.59.0-rc.3 fi echo "Preparing to trigger a snap release for $CHANNEL channel" diff --git a/HISTORY.md b/HISTORY.md index 269ed5dac5c..ed9665518ef 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,3 +1,29 @@ + +# 0.59.0-rc.3 (2017-08-30) + + +### Bug Fixes + +- [#7971](https://github.com/RocketChat/Rocket.Chat/pull/7971) Add padding on messages to allow space to the action buttons +- [#7944](https://github.com/RocketChat/Rocket.Chat/pull/7944) Broken embedded view layout +- [#7943](https://github.com/RocketChat/Rocket.Chat/pull/7943) Broken emoji picker on firefox +- [#7984](https://github.com/RocketChat/Rocket.Chat/pull/7984) Chat box no longer auto-focuses when typing +- [#7942](https://github.com/RocketChat/Rocket.Chat/pull/7942) Create channel button on Firefox +- [#7948](https://github.com/RocketChat/Rocket.Chat/pull/7948) Document README.md. Drupal repo out of date +- [#7927](https://github.com/RocketChat/Rocket.Chat/pull/7927) Double scroll on 'keyboard shortcuts' menu in sidepanel +- [#7945](https://github.com/RocketChat/Rocket.Chat/pull/7945) Fix placeholders in account profile +- [#7963](https://github.com/RocketChat/Rocket.Chat/pull/7963) Fix the status on the members list +- [#7965](https://github.com/RocketChat/Rocket.Chat/pull/7965) Markdown being rendered in code tags +- [#7954](https://github.com/RocketChat/Rocket.Chat/pull/7954) OTR buttons padding +- [#7712](https://github.com/RocketChat/Rocket.Chat/pull/7712) Show leader on first load +- [#7970](https://github.com/RocketChat/Rocket.Chat/pull/7970) Small alignment fixes +- [#7960](https://github.com/RocketChat/Rocket.Chat/pull/7960) status and active room colors on sidebar +- [#7985](https://github.com/RocketChat/Rocket.Chat/pull/7985) Text area buttons and layout on mobile +- [#7986](https://github.com/RocketChat/Rocket.Chat/pull/7986) Textarea on firefox +- [#7953](https://github.com/RocketChat/Rocket.Chat/pull/7953) username ellipsis on firefox + + + # 0.59.0-rc.2 (2017-08-28) diff --git a/package.json b/package.json index 76824ed411b..d6a11576d80 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "Rocket.Chat", "description": "The Ultimate Open Source WebChat Platform", - "version": "0.59.0-rc.2", + "version": "0.59.0-rc.3", "author": { "name": "Rocket.Chat", "url": "https://rocket.chat/" diff --git a/packages/rocketchat-lib/rocketchat.info b/packages/rocketchat-lib/rocketchat.info index 7295ee35811..06dfa485d21 100644 --- a/packages/rocketchat-lib/rocketchat.info +++ b/packages/rocketchat-lib/rocketchat.info @@ -1,3 +1,3 @@ { - "version": "0.59.0-rc.2" + "version": "0.59.0-rc.3" } From 3439d735ecc7c6c52b2c55f899f683b1ff135293 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Tue, 5 Sep 2017 19:47:34 -0300 Subject: [PATCH 038/244] Merge pull request #7754 from RocketChat/fix-mentions-email-notification [FIX] Fix email on mention --- packages/rocketchat-lib/server/lib/sendEmailOnMessage.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/rocketchat-lib/server/lib/sendEmailOnMessage.js b/packages/rocketchat-lib/server/lib/sendEmailOnMessage.js index 2eea270ecb6..78b4c419e4b 100644 --- a/packages/rocketchat-lib/server/lib/sendEmailOnMessage.js +++ b/packages/rocketchat-lib/server/lib/sendEmailOnMessage.js @@ -43,6 +43,9 @@ RocketChat.callbacks.add('afterSaveMessage', function(message, room) { if (room.t === 'd') { usersToSendEmail[message.rid.replace(message.u._id, '')] = 'direct'; } else { + const isMentionAll = message.mentions.find((mention) => { + return mention._id === 'all'; + }); RocketChat.models.Subscriptions.findWithSendEmailByRoomId(room._id).forEach((sub) => { if (sub.disableNotifications) { return delete usersToSendEmail[sub.u._id]; @@ -55,7 +58,11 @@ RocketChat.callbacks.add('afterSaveMessage', function(message, room) { return mention._id === sub.u._id; }); - if (emailNotifications === 'mentions' || mentionedUser) { + if (emailNotifications === 'mentions' && (mentionedUser || isMentionAll)) { + const maxMembersForNotification = RocketChat.settings.get('Notifications_Max_Room_Members'); + if (isMentionAll && maxMembersForNotification !== 0 && room.usernames.length > maxMembersForNotification) { + return; + } return usersToSendEmail[sub.u._id] = 'mention'; } From 7848a5a7acf2317a9d52701aae2b6a1d026748ac Mon Sep 17 00:00:00 2001 From: Gabriel Engel Date: Sat, 2 Sep 2017 16:48:04 -0300 Subject: [PATCH 039/244] Merge pull request #7989 from Rzeszow/develop [FIX][PL] Polish translation --- packages/rocketchat-i18n/i18n/pl.i18n.json | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/packages/rocketchat-i18n/i18n/pl.i18n.json b/packages/rocketchat-i18n/i18n/pl.i18n.json index cef4bcc2e06..f5780fad3fc 100644 --- a/packages/rocketchat-i18n/i18n/pl.i18n.json +++ b/packages/rocketchat-i18n/i18n/pl.i18n.json @@ -147,6 +147,7 @@ "and": "i", "And_more": "I __length__ więcej", "Animals_and_Nature": "Fauna & Flora", + "Announcement": "Ogłoszenie", "API": "API", "API_Analytics": "Analytics", "API_Embed": "Osadź", @@ -334,6 +335,24 @@ "Desktop_Notifications_Enabled": "Powiadomienia na pulpicie są włączone", "Direct_message_someone": "Wyślij bezpośrednią wiadomość", "Direct_Messages": "Prywatne wiadomości", + "Direct_Reply": "Bezpośrednia odpowiedź", + "Direct_Reply_Debug": "Debuguj bezpośrednią odpowiedź", + "Direct_Reply_Debug_Description": "[Uwaga] Włączenie trybu debugowania wyświetli 'Zwykłym tekstem' twoje hasło w konsoli administracyjnej.", + "Direct_Reply_Delete": "Usuwanie przechwyconych wiadomości e-mail", + "Direct_Reply_Enable": "Włącz bezpośrednią odpowiedź", + "Direct_Reply_Frequency": "Częstotliwość sprawdzania poczty e-mail", + "Direct_Reply_Frequency_Description": "(w minutach, domyślnie/minimum 2)", + "Direct_Reply_Protocol": "Protokół bezpośredniej odpowiedzi", + "Direct_Reply_Host": "Odpowiedź Bezpośrednia Host", + "Direct_Reply_Port": "Odpowiedź Bezpośrednia Port", + "Direct_Reply_IgnoreTLS": "Ignoruj TLS", + "Direct_Reply_Username": "Nazwa użytkownika", + "Direct_Reply_Username_Description": "Proszę użyj absolutnego adresu e-mail, tagowanie nie jest dozwolone, bo byłoby nadpisane", + "Direct_Reply_Password": "Hasło", + "Direct_Reply_Separator": "Separator", + "Direct_Reply_Separator_Description": "[Zmiana tylko wtedy, gdy wiesz dokładnie, co robisz, zapoznaj się z dokumentami]
    Separator pomiędzy częścią bazową i znacznikiem wiadomości e-mail", + "Disable_Notifications": "Wyłącz powiadomienia", + "Disable_two-factor_authentication": "Wyłącz uwierzytelnianie dwuskładnikowe", "Display_offline_form": "Pokaż formularz nieaktywny", "Displays_action_text": "Wyświetla tekst akcji", "Do_you_want_to_change_to_s_question": "Czy chcesz zmienić na %s?", @@ -517,6 +536,8 @@ "Hide_Private_Warning": "Czy na pewno chcesz ukryć dyskusję z \"%s\"?", "Hide_room": "Ukryj pokój", "Hide_Room_Warning": "Czy na pewno chcesz ukryć pokój \" %s\"?", + "Hide_roles": "Ukryj role", + "Hide_Unread_Room_Status": "Ukryj nieprzeczytany stan pokoju", "Hide_usernames": "Ukrywanie nazw użytkowników", "Highlights": "Podświetlane słowa", "Highlights_How_To": "Aby otrzymywać powiadomienie, gdy ktoś wspomina słowo lub frazę, dodaj go tutaj. Można oddzielić słowa lub wyrażenia przecinkami. Podświetlane słowa nie są wrażliwe na wielkość liter.", @@ -784,6 +805,8 @@ "Meta_robots": "Roboty", "Min_length_is": "Minimalna długość to %s", "minutes": "minut", + "Mobile": "Powiadomnienia mobilne", + "Mobile_Notifications_Default_Alert": "Domyślne powiadomnienia mobilne", "Monday": "Poniedziałek", "Monitor_history_for_changes_on": "Sprawdź historię zmian na", "More_channels": "Więcej kanałów", @@ -1199,10 +1222,14 @@ "UI_DisplayRoles": "Pokaż role", "UI_Merge_Channels_Groups": "Scalanie prywatne grupy z kanałami", "Unarchive": "Przywróć", + "Unblock_User": "Odblokuj użytkownika", "Unmute_someone_in_room": "Anuluj wyciszenie osoby w pokoju", "Unmute_user": "Anuluj wyciszenie użytkownika", "Unnamed": "Anonimowy", "Unpin_Message": "Odepnij wiadomość", + "Unread_Count": "Liczba nieprzeczytanych", + "Unread_Count_DM": "Liczba nieprzeczytanych dla bezpośrednich wiadomości", + "Unread_Messages": "Nieprzeczytane wiadomości", "Unread_Rooms": "Nieprzeczytane pokoje", "Unread_Rooms_Mode": "Tryb nieprzeczytanych pokoi", "Unstar_Message": "Usuń oznaczenie", From 28cfdf579e64da974cbeb7d4740a34f6732d6336 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Mon, 4 Sep 2017 10:11:34 -0300 Subject: [PATCH 040/244] Merge pull request #7998 from RocketChat/improvements/emoji-sort [FIX] Recent emojis not updated when adding via text --- .../client/popup/messagePopupConfig.js | 74 +++++++++++++------ 1 file changed, 52 insertions(+), 22 deletions(-) diff --git a/packages/rocketchat-ui-message/client/popup/messagePopupConfig.js b/packages/rocketchat-ui-message/client/popup/messagePopupConfig.js index cff8543cabf..2258629508b 100644 --- a/packages/rocketchat-ui-message/client/popup/messagePopupConfig.js +++ b/packages/rocketchat-ui-message/client/popup/messagePopupConfig.js @@ -88,6 +88,42 @@ const getUsersFromServerDelayed = _.throttle(getUsersFromServer, 500); const getRoomsFromServerDelayed = _.throttle(getRoomsFromServer, 500); +const addEmojiToRecents = (emoji) => { + const pickerEl = $('.emoji-picker')[0]; + if (pickerEl) { + const view = Blaze.getView(pickerEl); + if (view) { + Template._withTemplateInstanceFunc(view.templateInstance, () => { + RocketChat.EmojiPicker.addRecent(emoji.replace(/:/g, '')); + }); + } + } +}; + +const emojiSort = (recents) => { + return (a, b) => { + let idA = a._id; + let idB = a._id; + + if (recents.includes(a._id)) { + idA = recents.indexOf(a._id) + idA; + } + if (recents.includes(b._id)) { + idB = recents.indexOf(b._id) + idB; + } + + if (idA < idB) { + return -1; + } + + if (idA > idB) { + return 1; + } + + return 0; + }; +}; + Template.messagePopupConfig.helpers({ popupUserConfig() { const self = this; @@ -273,11 +309,12 @@ Template.messagePopupConfig.helpers({ getFilter(collection, filter) { const key = `:${ filter }`; - if (!RocketChat.emoji.packages.emojione || RocketChat.emoji.packages.emojione.asciiList[key] || filter.length < 2) { + if (!RocketChat.emoji.packages.emojione || RocketChat.emoji.packages.emojione.asciiList[key]) { return []; } const regExp = new RegExp(`^${ RegExp.escape(key) }`, 'i'); + const recents = RocketChat.EmojiPicker.getRecent().map(item => `:${ item }:`); return Object.keys(collection).map(key => { const value = collection[key]; return { @@ -286,16 +323,12 @@ Template.messagePopupConfig.helpers({ }; }) .filter(obj => regExp.test(obj._id)) - .slice(0, 10) - .sort(function(a, b) { - if (a._id < b._id) { - return -1; - } - if (a._id > b._id) { - return 1; - } - return 0; - }); + .sort(emojiSort(recents)) + .slice(0, 10); + }, + getValue(_id) { + addEmojiToRecents(_id); + return _id; } }; } @@ -314,11 +347,12 @@ Template.messagePopupConfig.helpers({ getFilter(collection, filter) { const key = `${ filter }`; - if (!RocketChat.emoji.packages.emojione || RocketChat.emoji.packages.emojione.asciiList[key] || filter.length < 2) { + if (!RocketChat.emoji.packages.emojione || RocketChat.emoji.packages.emojione.asciiList[key]) { return []; } const regExp = new RegExp(`^${ RegExp.escape(key) }`, 'i'); + const recents = RocketChat.EmojiPicker.getRecent().map(item => `:${ item }:`); return Object.keys(collection).map(key => { const value = collection[key]; return { @@ -327,16 +361,12 @@ Template.messagePopupConfig.helpers({ }; }) .filter(obj => regExp.test(obj._id)) - .slice(0, 10) - .sort(function(a, b) { - if (a._id < b._id) { - return -1; - } - if (a._id > b._id) { - return 1; - } - return 0; - }); + .sort(emojiSort(recents)) + .slice(0, 10); + }, + getValue(_id) { + addEmojiToRecents(_id); + return _id; } }; } From 6016e05cf7ac5f2da8a5b61b3ada31f34a5b9e4e Mon Sep 17 00:00:00 2001 From: Gabriel Engel Date: Sat, 2 Sep 2017 16:38:03 -0300 Subject: [PATCH 041/244] Merge pull request #8001 from RocketChat/hotfix/autotranslate-parse-error [FIX] Error when translating message --- packages/rocketchat-autotranslate/server/autotranslate.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/rocketchat-autotranslate/server/autotranslate.js b/packages/rocketchat-autotranslate/server/autotranslate.js index f6579b8ab87..f157253838c 100644 --- a/packages/rocketchat-autotranslate/server/autotranslate.js +++ b/packages/rocketchat-autotranslate/server/autotranslate.js @@ -91,7 +91,7 @@ class AutoTranslate { let count = message.tokens.length; message.html = message.msg; - message = RocketChat.Markdown.parse(message); + message = RocketChat.Markdown.parseNotEscaped(message); message.msg = message.html; for (const tokenIndex in message.tokens) { From 0b109f38c3d964c1eaa81925730e82ba82d181a0 Mon Sep 17 00:00:00 2001 From: Gabriel Engel Date: Sat, 2 Sep 2017 16:07:53 -0300 Subject: [PATCH 042/244] Merge pull request #8014 from alexbrazier/bugfix/scrollbar [FIX] Hide scrollbar on login page if not necessary --- packages/rocketchat-theme/client/imports/general/base.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/rocketchat-theme/client/imports/general/base.css b/packages/rocketchat-theme/client/imports/general/base.css index d21239fae01..c7fd9e442b7 100644 --- a/packages/rocketchat-theme/client/imports/general/base.css +++ b/packages/rocketchat-theme/client/imports/general/base.css @@ -5,7 +5,7 @@ } html { - overflow-y: scroll; + overflow-y: auto; height: 100%; @@ -101,4 +101,4 @@ button { vertical-align: -0.15em; overflow: hidden; -} \ No newline at end of file +} From 4bf3990d50b975a8833a940fd3944fbd9dcb19ae Mon Sep 17 00:00:00 2001 From: Gabriel Engel Date: Sat, 2 Sep 2017 16:17:51 -0300 Subject: [PATCH 043/244] Merge pull request #8017 from RocketChat/user-status [FIX] room icon on header --- .../client/imports/components/main-content.css | 18 ++++++++++++++++++ .../rocketchat-ui/client/views/app/room.html | 4 +++- .../rocketchat-ui/client/views/app/room.js | 9 ++++++++- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/packages/rocketchat-theme/client/imports/components/main-content.css b/packages/rocketchat-theme/client/imports/components/main-content.css index d231b8dff40..8372be1c522 100644 --- a/packages/rocketchat-theme/client/imports/components/main-content.css +++ b/packages/rocketchat-theme/client/imports/components/main-content.css @@ -9,6 +9,24 @@ height: 100%; } +.messages-container .room-icon { + &.online { + color: var(--status-online); + } + + &.away { + color: var(--status-away); + } + + &.busy { + color: var(--status-busy); + } + + &.offline { + color: var(--status-invisible); + } +} + @media (width <= 780px) { .main-content { position: fixed; diff --git a/packages/rocketchat-ui/client/views/app/room.html b/packages/rocketchat-ui/client/views/app/room.html index cc520b850ed..02932e69777 100644 --- a/packages/rocketchat-ui/client/views/app/room.html +++ b/packages/rocketchat-ui/client/views/app/room.html @@ -14,7 +14,9 @@ {{#if showToggleFavorite}} {{/if}} - + + {{> icon block="room-icon" icon=roomIcon classes=userStatus}} + {{roomName}} {{#if secondaryName}} @{{secondaryName}} diff --git a/packages/rocketchat-ui/client/views/app/room.js b/packages/rocketchat-ui/client/views/app/room.js index ef9241126ea..1d37dc85156 100644 --- a/packages/rocketchat-ui/client/views/app/room.js +++ b/packages/rocketchat-ui/client/views/app/room.js @@ -196,7 +196,14 @@ Template.room.helpers({ const roomData = Session.get(`roomData${ this._id }`); if (!(roomData != null ? roomData.t : undefined)) { return ''; } - return RocketChat.roomTypes.getIcon(roomData != null ? roomData.t : undefined); + const roomIcon = RocketChat.roomTypes.getIcon(roomData != null ? roomData.t : undefined); + + // Remove this 'codegueira' on header redesign + if (!roomIcon) { + return 'at'; + } + + return roomIcon; }, userStatus() { From ca4ce257e57450f2238164b951c2c34d135920a8 Mon Sep 17 00:00:00 2001 From: Gabriel Engel Date: Sat, 2 Sep 2017 16:06:16 -0300 Subject: [PATCH 044/244] Merge pull request #8018 from RocketChat/search-results-height [FIX] search results height --- .../client/imports/components/sidebar/rooms-list.css | 6 +++++- .../client/imports/components/sidebar/sidebar.css | 1 - .../rocketchat-theme/client/imports/general/variables.css | 1 - 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/rocketchat-theme/client/imports/components/sidebar/rooms-list.css b/packages/rocketchat-theme/client/imports/components/sidebar/rooms-list.css index 1231eefac4f..4fc2a652609 100644 --- a/packages/rocketchat-theme/client/imports/components/sidebar/rooms-list.css +++ b/packages/rocketchat-theme/client/imports/components/sidebar/rooms-list.css @@ -34,12 +34,12 @@ position: absolute; z-index: 1; + bottom: var(--sidebar-footer-height); left: 0; overflow-y: auto; width: 100%; - height: calc(100% - calc(var(--sidebar-header-height) + var(--sidebar-footer-height))); padding: 0 8px; background-color: var(--sidebar-background); @@ -52,5 +52,9 @@ &__empty-room { margin-left: 0; } + + &__toolbar-search { + bottom: 0; + } } } diff --git a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar.css b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar.css index 84488b1d5ae..5675d3c5b9c 100644 --- a/packages/rocketchat-theme/client/imports/components/sidebar/sidebar.css +++ b/packages/rocketchat-theme/client/imports/components/sidebar/sidebar.css @@ -58,7 +58,6 @@ } &__header { - height: var(--sidebar-header-height); padding: var(--sidebar-default-padding); } diff --git a/packages/rocketchat-theme/client/imports/general/variables.css b/packages/rocketchat-theme/client/imports/general/variables.css index ee165463a83..ec77c769554 100644 --- a/packages/rocketchat-theme/client/imports/general/variables.css +++ b/packages/rocketchat-theme/client/imports/general/variables.css @@ -130,7 +130,6 @@ --sidebar-small-width: 90%; --sidebar-background: var(--color-primary); --sidebar-background-light: var(--color-gray-lightest); - --sidebar-header-height: 180px; --sidebar-default-padding: 24px; --sidebar-small-default-padding: 16px; --sidebar-header-padding: var(--sidebar-default-padding); From be6812e9a9e5361362c17446c59a616b11ffa5cf Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Mon, 4 Sep 2017 20:59:08 -0300 Subject: [PATCH 045/244] Merge pull request #8019 from RocketChat/messagebox-autogrow [FIX] message-box autogrow --- .../client/imports/components/message-box.css | 5 ++++- packages/rocketchat-ui/client/lib/textarea-autogrow.js | 10 ++-------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/packages/rocketchat-theme/client/imports/components/message-box.css b/packages/rocketchat-theme/client/imports/components/message-box.css index 149883503d7..200b32f093f 100644 --- a/packages/rocketchat-theme/client/imports/components/message-box.css +++ b/packages/rocketchat-theme/client/imports/components/message-box.css @@ -85,6 +85,8 @@ cursor: text; + line-height: 20px; + transition: background-color 0.3s; border-width: var(--message-box-container-border-width); @@ -99,9 +101,10 @@ &__textarea { width: 100%; + height: 15px; max-height: 155px; + padding: 0; - height: 15px; resize: none; diff --git a/packages/rocketchat-ui/client/lib/textarea-autogrow.js b/packages/rocketchat-ui/client/lib/textarea-autogrow.js index b375bdcc28f..e158f1a6e10 100644 --- a/packages/rocketchat-ui/client/lib/textarea-autogrow.js +++ b/packages/rocketchat-ui/client/lib/textarea-autogrow.js @@ -64,23 +64,17 @@ } if(newHeight === $self[0].offsetHeight){ - return; + return false; } if(maxHeight <= newHeight){ - return; + newHeight = maxHeight; } - $self.css('overflow-y', 'hidden'); - $self.stop().animate( { height: newHeight }, { duration: 100, complete: ()=> { $self.trigger('autogrow', []); - $self.css('overflow-y', ''); }}); - - - $self.trigger('autogrow', []); if (settings.postGrowCallback !== null) { From ff6b4df38205df0e1b09916b58477c57de97119f Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Mon, 4 Sep 2017 20:57:24 -0300 Subject: [PATCH 046/244] Merge pull request #8039 from RocketChat/fix-clipboard [FIX] copy to clipboard and update clipboard.js library --- packages/rocketchat-ui-master/package.js | 2 +- packages/rocketchat-ui-message/client/message.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/rocketchat-ui-master/package.js b/packages/rocketchat-ui-master/package.js index fde213665da..f75c8d54966 100644 --- a/packages/rocketchat-ui-master/package.js +++ b/packages/rocketchat-ui-master/package.js @@ -11,7 +11,7 @@ Package.describe({ }); Npm.depends({ - clipboard: '1.6.1' + clipboard: '1.7.1' }); Package.onUse(function(api) { diff --git a/packages/rocketchat-ui-message/client/message.html b/packages/rocketchat-ui-message/client/message.html index 5a2b4a28a27..6f8cad08f06 100644 --- a/packages/rocketchat-ui-message/client/message.html +++ b/packages/rocketchat-ui-message/client/message.html @@ -80,7 +80,7 @@
      {{#each action in messageActionsMenu}} -
    • +
    • {{#if action.icon}} {{> icon block="rc-popover__icon-element" icon=action.icon}} From 4957576aceefe277c97f652caa63f33b81544e1b Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Tue, 5 Sep 2017 14:13:42 -0300 Subject: [PATCH 047/244] Merge pull request #8046 from RocketChat/prevent-autotranslate-race-condition [FIX] Prevent autotranslate tokens race condition --- .../server/autotranslate.js | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/packages/rocketchat-autotranslate/server/autotranslate.js b/packages/rocketchat-autotranslate/server/autotranslate.js index f157253838c..f54cd2bdd30 100644 --- a/packages/rocketchat-autotranslate/server/autotranslate.js +++ b/packages/rocketchat-autotranslate/server/autotranslate.js @@ -15,6 +15,9 @@ class AutoTranslate { } tokenize(message) { + if (!message.tokens || !Array.isArray(message.tokens)) { + message.tokens = []; + } message = this.tokenizeEmojis(message); message = this.tokenizeCode(message); message = this.tokenizeURLs(message); @@ -23,9 +26,6 @@ class AutoTranslate { } tokenizeEmojis(message) { - if (!message.tokens || !Array.isArray(message.tokens)) { - message.tokens = []; - } let count = message.tokens.length; message.msg = message.msg.replace(/:[+\w\d]+:/g, function(match) { const token = `{${ count++ }}`; @@ -40,9 +40,6 @@ class AutoTranslate { } tokenizeURLs(message) { - if (!message.tokens || !Array.isArray(message.tokens)) { - message.tokens = []; - } let count = message.tokens.length; const schemes = RocketChat.settings.get('Markdown_SupportSchemesForLink').split(',').join('|'); @@ -85,9 +82,6 @@ class AutoTranslate { } tokenizeCode(message) { - if (!message.tokens || !Array.isArray(message.tokens)) { - message.tokens = []; - } let count = message.tokens.length; message.html = message.msg; @@ -109,9 +103,6 @@ class AutoTranslate { } tokenizeMentions(message) { - if (!message.tokens || !Array.isArray(message.tokens)) { - message.tokens = []; - } let count = message.tokens.length; if (message.mentions && message.mentions.length > 0) { From 678fe0b84c4dcd709b83a12ff62b2fbdc6eafc71 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Tue, 5 Sep 2017 19:54:08 -0300 Subject: [PATCH 048/244] Merge pull request #8048 from RocketChat/fix-invisible-leader [FIX] Invisible leader bar on hover --- packages/rocketchat-theme/client/imports/general/base_old.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/rocketchat-theme/client/imports/general/base_old.css b/packages/rocketchat-theme/client/imports/general/base_old.css index 19fd73985d2..1af8c5caeaf 100644 --- a/packages/rocketchat-theme/client/imports/general/base_old.css +++ b/packages/rocketchat-theme/client/imports/general/base_old.css @@ -5686,6 +5686,10 @@ body:not(.is-cordova) { border-bottom: 1px solid; + &.message:hover { + background-color: #ffffff; + } + &.animated-hidden { visibility: hidden; From 7e398184530ceef5b88ce27e54fde94979494350 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Tue, 5 Sep 2017 14:10:14 -0300 Subject: [PATCH 049/244] Merge pull request #7988 from RocketChat/action=messages [FIX] Vertical menu on flex-tab # Conflicts: # packages/rocketchat-ui-master/public/icons.svg --- .../client/lib/actionButton.js | 1 - .../.npm/package/npm-shrinkwrap.json | 10 +-- .../rocketchat-lib/client/MessageAction.js | 13 ++-- .../client/actionButton.js | 3 +- .../client/views/mentionsFlexTab.js | 19 +----- .../client/actionButton.js | 1 - .../client/actionButton.js | 23 +++---- .../client/views/pinnedMessages.js | 19 +----- .../client/tabBar/views/snippetedMessages.js | 2 +- .../client/actionButton.js | 6 +- .../client/views/starredMessages.js | 19 +----- .../client/imports/components/popover.css | 8 +++ .../client/imports/general/base.css | 8 ++- .../client/tabs/messageSearch.html | 2 +- .../client/tabs/messageSearch.js | 22 +------ .../.npm/package/npm-shrinkwrap.json | 18 +++--- .../rocketchat-ui-master/public/icons.svg | 6 +- .../rocketchat-ui-message/client/message.html | 62 ++++++++++--------- .../rocketchat-ui-message/client/message.js | 19 ++++-- .../rocketchat-ui/client/views/app/room.js | 23 ------- 20 files changed, 104 insertions(+), 180 deletions(-) diff --git a/packages/rocketchat-autotranslate/client/lib/actionButton.js b/packages/rocketchat-autotranslate/client/lib/actionButton.js index bf9b4a0f1a1..e8289f61dd8 100644 --- a/packages/rocketchat-autotranslate/client/lib/actionButton.js +++ b/packages/rocketchat-autotranslate/client/lib/actionButton.js @@ -12,7 +12,6 @@ Meteor.startup(function() { action() { const message = this._arguments[1]; const language = RocketChat.AutoTranslate.getLanguage(message.rid); - RocketChat.MessageAction.hideDropDown(); if ((!message.translations || !message.translations[language])) { //} && !_.find(message.attachments, attachment => { return attachment.translations && attachment.translations[language]; })) { RocketChat.AutoTranslate.messageIdsToWait[message._id] = true; RocketChat.models.Messages.update({ _id: message._id }, { $set: { autoTranslateFetching: true } }); diff --git a/packages/rocketchat-google-vision/.npm/package/npm-shrinkwrap.json b/packages/rocketchat-google-vision/.npm/package/npm-shrinkwrap.json index 788d7c87977..00561635dcd 100644 --- a/packages/rocketchat-google-vision/.npm/package/npm-shrinkwrap.json +++ b/packages/rocketchat-google-vision/.npm/package/npm-shrinkwrap.json @@ -1085,13 +1085,13 @@ "from": "mime@>=1.2.11 <2.0.0" }, "mime-db": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", - "from": "mime-db@>=1.29.0 <1.30.0" + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "from": "mime-db@>=1.30.0 <1.31.0" }, "mime-types": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", "from": "mime-types@>=2.0.8 <3.0.0" }, "minimatch": { diff --git a/packages/rocketchat-lib/client/MessageAction.js b/packages/rocketchat-lib/client/MessageAction.js index 6663d2332e7..ad3b8557392 100644 --- a/packages/rocketchat-lib/client/MessageAction.js +++ b/packages/rocketchat-lib/client/MessageAction.js @@ -59,15 +59,14 @@ RocketChat.MessageAction = new class { } getButtons(message, context, group) { - const allButtons = _.toArray(this.buttons.get()); - let allowedButtons = allButtons; + let allButtons = _.toArray(this.buttons.get()); if (group) { - allowedButtons = allowedButtons.filter(button => button.group === group); + allButtons = allButtons.filter(button => button.group === group); } if (message) { - allowedButtons = _.compact(_.map(allowedButtons, function(button) { + allButtons = _.compact(_.map(allButtons, function(button) { if (button.context == null || button.context.includes(context)) { if (button.condition == null || button.condition(message, context)) { return button; @@ -75,7 +74,7 @@ RocketChat.MessageAction = new class { } })); } - return _.sortBy(allowedButtons, 'order'); + return _.sortBy(allButtons, 'order'); } resetButtons() { @@ -96,10 +95,6 @@ RocketChat.MessageAction = new class { closePopover() { popover.close(); } - - hideDropDown() { - $('.message-dropdown:visible').hide(); - } }; Meteor.startup(function() { diff --git a/packages/rocketchat-mentions-flextab/client/actionButton.js b/packages/rocketchat-mentions-flextab/client/actionButton.js index 7df9460e443..4e4528f4812 100644 --- a/packages/rocketchat-mentions-flextab/client/actionButton.js +++ b/packages/rocketchat-mentions-flextab/client/actionButton.js @@ -1,12 +1,11 @@ Meteor.startup(function() { RocketChat.MessageAction.addButton({ id: 'jump-to-message', - icon: 'right-hand', + icon: 'jump', label: 'Jump_to_message', context: ['mentions'], action() { const message = this._arguments[1]; - RocketChat.MessageAction.hideDropDown(); if (window.matchMedia('(max-width: 500px)').matches) { Template.instance().tabBar.close(); } diff --git a/packages/rocketchat-mentions-flextab/client/views/mentionsFlexTab.js b/packages/rocketchat-mentions-flextab/client/views/mentionsFlexTab.js index 5f5e3744e99..1419865acd3 100644 --- a/packages/rocketchat-mentions-flextab/client/views/mentionsFlexTab.js +++ b/packages/rocketchat-mentions-flextab/client/views/mentionsFlexTab.js @@ -19,9 +19,7 @@ Template.mentionsFlexTab.helpers({ }); }, message() { - return _.extend(this, { - customClass: 'mentions' - }); + return _.extend(this, { customClass: 'mentions', actionContext: 'mentions'}); }, hasMore() { return Template.instance().hasMore.get(); @@ -42,21 +40,6 @@ Template.mentionsFlexTab.onCreated(function() { }); Template.mentionsFlexTab.events({ - 'click .message-cog'(e, t) { - e.stopPropagation(); - e.preventDefault(); - const message_id = $(e.currentTarget).closest('.message').attr('id'); - RocketChat.MessageAction.hideDropDown(); - t.$(`\#${ message_id } .message-dropdown`).remove(); - const message = MentionedMessage.findOne(message_id); - const actions = RocketChat.MessageAction.getButtons(message, 'mentions'); - const el = Blaze.toHTMLWithData(Template.messageDropdown, { - actions - }); - t.$(`\#${ message_id } .message-cog-container`).append(el); - const dropDown = t.$(`\#${ message_id } .message-dropdown`); - return dropDown.show(); - }, 'scroll .js-list': _.throttle(function(e, instance) { if (e.target.scrollTop >= e.target.scrollHeight - e.target.clientHeight && instance.hasMore.get()) { return instance.limit.set(instance.limit.get() + 50); diff --git a/packages/rocketchat-message-mark-as-unread/client/actionButton.js b/packages/rocketchat-message-mark-as-unread/client/actionButton.js index 83aa1e5e151..41c63ef328d 100644 --- a/packages/rocketchat-message-mark-as-unread/client/actionButton.js +++ b/packages/rocketchat-message-mark-as-unread/client/actionButton.js @@ -6,7 +6,6 @@ Meteor.startup(() => { context: ['message', 'message-mobile'], action() { const message = this._arguments[1]; - RocketChat.MessageAction.hideDropDown(); return Meteor.call('unreadMessages', message, function(error) { if (error) { return handleError(error); diff --git a/packages/rocketchat-message-pin/client/actionButton.js b/packages/rocketchat-message-pin/client/actionButton.js index 6117a749430..02ff9b566a7 100644 --- a/packages/rocketchat-message-pin/client/actionButton.js +++ b/packages/rocketchat-message-pin/client/actionButton.js @@ -9,18 +9,17 @@ Meteor.startup(function() { action() { const message = this._arguments[1]; message.pinned = true; - return Meteor.call('pinMessage', message, function(error) { + Meteor.call('pinMessage', message, function(error) { if (error) { return handleError(error); } }); }, condition(message) { - if (RocketChat.models.Subscriptions.findOne({ rid: message.rid }) == null) { - return false; - } else if (message.pinned || !RocketChat.settings.get('Message_AllowPinning')) { + if (!RocketChat.settings.get('Message_AllowPinning') || message.pinned || !RocketChat.models.Subscriptions.findOne({ rid: message.rid }, {fields: {_id: 1}})) { return false; } + return RocketChat.authz.hasAtLeastOnePermission('pin-message', message.rid); }, order: 20, @@ -35,18 +34,18 @@ Meteor.startup(function() { action() { const message = this._arguments[1]; message.pinned = false; - return Meteor.call('unpinMessage', message, function(error) { + Meteor.call('unpinMessage', message, function(error) { if (error) { return handleError(error); } }); }, condition(message) { - if ((RocketChat.models.Subscriptions.findOne({ rid: message.rid }) == null) && (!message.pinned || !RocketChat.settings.get('Message_AllowPinning'))) { + if (!RocketChat.settings.get('Message_AllowPinning') || !message.pinned || !RocketChat.models.Subscriptions.findOne({ rid: message.rid }, {fields: {_id: 1}})) { return false; } - RocketChat.authz.hasAtLeastOnePermission('pin-message', message.rid); + return RocketChat.authz.hasAtLeastOnePermission('pin-message', message.rid); }, order: 21, group: 'menu' @@ -54,19 +53,18 @@ Meteor.startup(function() { RocketChat.MessageAction.addButton({ id: 'jump-to-pin-message', - icon: 'right-hand', + icon: 'jump', label: 'Jump_to_message', context: ['pinned'], action() { const message = this._arguments[1]; - RocketChat.MessageAction.hideDropDown(); if (window.matchMedia('(max-width: 500px)').matches) { Template.instance().tabBar.close(); } return RoomHistoryManager.getSurroundingMessages(message, 50); }, condition(message) { - if (RocketChat.models.Subscriptions.findOne({ rid: message.rid }) == null) { + if (!RocketChat.models.Subscriptions.findOne({ rid: message.rid }, {fields: {_id: 1}})) { return false; } return true; @@ -77,18 +75,17 @@ Meteor.startup(function() { RocketChat.MessageAction.addButton({ id: 'permalink-pinned', - icon: 'link', + icon: 'permalink', label: 'Permalink', classes: 'clipboard', context: ['pinned'], action(event) { const message = this._arguments[1]; - RocketChat.MessageAction.hideDropDown(); $(event.currentTarget).attr('data-clipboard-text', RocketChat.MessageAction.getPermaLink(message._id)); toastr.success(TAPi18n.__('Copied')); }, condition(message) { - if (RocketChat.models.Subscriptions.findOne({ rid: message.rid }) == null) { + if (!RocketChat.models.Subscriptions.findOne({ rid: message.rid }, {fields: {_id: 1}})) { return false; } return true; diff --git a/packages/rocketchat-message-pin/client/views/pinnedMessages.js b/packages/rocketchat-message-pin/client/views/pinnedMessages.js index e3a24c4e08f..594d3e2efc3 100644 --- a/packages/rocketchat-message-pin/client/views/pinnedMessages.js +++ b/packages/rocketchat-message-pin/client/views/pinnedMessages.js @@ -19,9 +19,7 @@ Template.pinnedMessages.helpers({ }); }, message() { - return _.extend(this, { - customClass: 'pinned' - }); + return _.extend(this, { customClass: 'pinned', actionContext: 'pinned'}); }, hasMore() { return Template.instance().hasMore.get(); @@ -44,21 +42,6 @@ Template.pinnedMessages.onCreated(function() { }); Template.pinnedMessages.events({ - 'click .message-cog'(e, t) { - e.stopPropagation(); - e.preventDefault(); - const message_id = $(e.currentTarget).closest('.message').attr('id'); - RocketChat.MessageAction.hideDropDown(); - t.$(`\#${ message_id } .message-dropdown`).remove(); - const message = PinnedMessage.findOne(message_id); - const actions = RocketChat.MessageAction.getButtons(message, 'pinned'); - const el = Blaze.toHTMLWithData(Template.messageDropdown, { - actions - }); - t.$(`\#${ message_id } .message-cog-container`).append(el); - const dropDown = t.$(`\#${ message_id } .message-dropdown`); - return dropDown.show(); - }, 'scroll .js-list': _.throttle(function(e, instance) { if (e.target.scrollTop >= e.target.scrollHeight - e.target.clientHeight && instance.hasMore.get()) { return instance.limit.set(instance.limit.get() + 50); diff --git a/packages/rocketchat-message-snippet/client/tabBar/views/snippetedMessages.js b/packages/rocketchat-message-snippet/client/tabBar/views/snippetedMessages.js index f6c72841fa3..3fdada28c98 100644 --- a/packages/rocketchat-message-snippet/client/tabBar/views/snippetedMessages.js +++ b/packages/rocketchat-message-snippet/client/tabBar/views/snippetedMessages.js @@ -7,7 +7,7 @@ Template.snippetedMessages.helpers({ return SnippetedMessages.find({ snippeted: true, rid: this.rid }, { sort: { ts: -1 } }); }, message() { - return _.extend(this, { customClass: 'snippeted' }); + return _.extend(this, { customClass: 'snippeted', actionContext: 'snippeted'}); }, hasMore() { return Template.instance().hasMore.get(); diff --git a/packages/rocketchat-message-star/client/actionButton.js b/packages/rocketchat-message-star/client/actionButton.js index 2f4bca05f23..1539e6f77b9 100644 --- a/packages/rocketchat-message-star/client/actionButton.js +++ b/packages/rocketchat-message-star/client/actionButton.js @@ -52,12 +52,11 @@ Meteor.startup(function() { RocketChat.MessageAction.addButton({ id: 'jump-to-star-message', - icon: 'right-hand', + icon: 'jump', label: 'Jump_to_message', context: ['starred'], action() { const message = this._arguments[1]; - RocketChat.MessageAction.hideDropDown(); if (window.matchMedia('(max-width: 500px)').matches) { Template.instance().tabBar.close(); } @@ -75,13 +74,12 @@ Meteor.startup(function() { RocketChat.MessageAction.addButton({ id: 'permalink-star', - icon: 'link', + icon: 'permalink', label: 'Permalink', classes: 'clipboard', context: ['starred'], action(event) { const message = this._arguments[1]; - RocketChat.MessageAction.hideDropDown(); $(event.currentTarget).attr('data-clipboard-text', RocketChat.MessageAction.getPermaLink(message._id)); toastr.success(TAPi18n.__('Copied')); }, diff --git a/packages/rocketchat-message-star/client/views/starredMessages.js b/packages/rocketchat-message-star/client/views/starredMessages.js index 80864c5ab2e..f898b857834 100644 --- a/packages/rocketchat-message-star/client/views/starredMessages.js +++ b/packages/rocketchat-message-star/client/views/starredMessages.js @@ -19,9 +19,7 @@ Template.starredMessages.helpers({ }); }, message() { - return _.extend(this, { - customClass: 'starred' - }); + return _.extend(this, { customClass: 'starred', actionContext: 'starred'}); }, hasMore() { return Template.instance().hasMore.get(); @@ -43,21 +41,6 @@ Template.starredMessages.onCreated(function() { }); Template.starredMessages.events({ - 'click .message-cog'(e, t) { - e.stopPropagation(); - e.preventDefault(); - const message_id = $(e.currentTarget).closest('.message').attr('id'); - RocketChat.MessageAction.hideDropDown(); - t.$(`\#${ message_id } .message-dropdown`).remove(); - const message = StarredMessage.findOne(message_id); - const actions = RocketChat.MessageAction.getButtons(message, 'starred'); - const el = Blaze.toHTMLWithData(Template.messageDropdown, { - actions - }); - t.$(`\#${ message_id } .message-cog-container`).append(el); - const dropDown = t.$(`\#${ message_id } .message-dropdown`); - return dropDown.show(); - }, 'scroll .js-list': _.throttle(function(e, instance) { if (e.target.scrollTop >= e.target.scrollHeight - e.target.clientHeight) { return instance.limit.set(instance.limit.get() + 50); diff --git a/packages/rocketchat-theme/client/imports/components/popover.css b/packages/rocketchat-theme/client/imports/components/popover.css index 854ecf2e96e..5d8aeb9ff41 100644 --- a/packages/rocketchat-theme/client/imports/components/popover.css +++ b/packages/rocketchat-theme/client/imports/components/popover.css @@ -103,6 +103,10 @@ &__icon-element { font-size: 18px; + + &--star { + fill: none; + } } &__item-text { @@ -118,6 +122,10 @@ } } +[data-message-action="unstar-message"] .rc-popover__icon-element--star { + fill: currentColor; +} + @keyframes dropdown-show { 0% { transform: translate(0, -2%); diff --git a/packages/rocketchat-theme/client/imports/general/base.css b/packages/rocketchat-theme/client/imports/general/base.css index c7fd9e442b7..2970fad81b2 100644 --- a/packages/rocketchat-theme/client/imports/general/base.css +++ b/packages/rocketchat-theme/client/imports/general/base.css @@ -88,9 +88,15 @@ button { } & .tab-button-icon { - font-size: 1.125rem; color: var(--color-dark-medium); + + font-size: 1.125rem; + fill: var(--color-dark-medium); + + &--star { + fill: none; + } } } diff --git a/packages/rocketchat-ui-flextab/client/tabs/messageSearch.html b/packages/rocketchat-ui-flextab/client/tabs/messageSearch.html index 0cf132752cc..5f011e19b01 100644 --- a/packages/rocketchat-ui-flextab/client/tabs/messageSearch.html +++ b/packages/rocketchat-ui-flextab/client/tabs/messageSearch.html @@ -23,7 +23,7 @@
        {{#each searchResultMessages}} - {{#nrr nrrargs 'message' message}}{{/nrr}} + {{#nrr nrrargs 'message' message}}{{/nrr}} {{/each}}
      {{#if hasMore}} diff --git a/packages/rocketchat-ui-flextab/client/tabs/messageSearch.js b/packages/rocketchat-ui-flextab/client/tabs/messageSearch.js index b2ddd5c78bf..c4a718c52ed 100644 --- a/packages/rocketchat-ui-flextab/client/tabs/messageSearch.js +++ b/packages/rocketchat-ui-flextab/client/tabs/messageSearch.js @@ -1,14 +1,13 @@ Meteor.startup(function() { RocketChat.MessageAction.addButton({ id: 'jump-to-search-message', - icon: 'right-hand', + icon: 'jump', label: 'Jump_to_message', context: [ 'search' ], action() { const message = this._arguments[1]; - RocketChat.MessageAction.hideDropDown(); if (window.matchMedia('(max-width: 500px)').matches) { Template.instance().tabBar.close(); } @@ -46,7 +45,7 @@ Template.messageSearch.helpers({ }, message() { - return _.extend(this, { customClass: 'search' }); + return _.extend(this, { customClass: 'search', actionContext: 'search'}); } }); @@ -73,23 +72,6 @@ Template.messageSearch.events({ return t.search(); }, 500), - 'click .message-cog'(e, t) { - e.stopPropagation(); - e.preventDefault(); - const message_id = $(e.currentTarget).closest('.message').attr('id'); - const searchResult = t.searchResult.get(); - RocketChat.MessageAction.hideDropDown(); - t.$(`\#${ message_id } .message-dropdown`).remove(); - if (searchResult) { - const message = _.findWhere(searchResult.messages, { _id: message_id }); - const actions = RocketChat.MessageAction.getButtons(message, 'search'); - const el = Blaze.toHTMLWithData(Template.messageDropdown, { actions }); - t.$(`\#${ message_id } .message-cog-container`).append(el); - const dropDown = t.$(`\#${ message_id } .message-dropdown`); - return dropDown.show(); - } - }, - 'click .load-more button'(e, t) { t.limit.set(t.limit.get() + 20); return t.search(); diff --git a/packages/rocketchat-ui-master/.npm/package/npm-shrinkwrap.json b/packages/rocketchat-ui-master/.npm/package/npm-shrinkwrap.json index 6a227016546..00d02c6b242 100644 --- a/packages/rocketchat-ui-master/.npm/package/npm-shrinkwrap.json +++ b/packages/rocketchat-ui-master/.npm/package/npm-shrinkwrap.json @@ -1,19 +1,19 @@ { "dependencies": { "clipboard": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-1.6.1.tgz", - "from": "clipboard@1.6.1" + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-1.7.1.tgz", + "from": "clipboard@1.7.1" }, "delegate": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.1.2.tgz", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.1.3.tgz", "from": "delegate@>=3.1.2 <4.0.0" }, "good-listener": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "from": "good-listener@>=1.2.0 <2.0.0" + "from": "good-listener@>=1.2.2 <2.0.0" }, "select": { "version": "1.1.2", @@ -21,9 +21,9 @@ "from": "select@>=1.1.2 <2.0.0" }, "tiny-emitter": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-1.2.0.tgz", - "from": "tiny-emitter@>=1.0.0 <2.0.0" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz", + "from": "tiny-emitter@>=2.0.0 <3.0.0" } } } diff --git a/packages/rocketchat-ui-master/public/icons.svg b/packages/rocketchat-ui-master/public/icons.svg index 79f12ea7328..3dde382977a 100644 --- a/packages/rocketchat-ui-master/public/icons.svg +++ b/packages/rocketchat-ui-master/public/icons.svg @@ -45,7 +45,7 @@ - + @@ -56,4 +56,8 @@ + + + + diff --git a/packages/rocketchat-ui-message/client/message.html b/packages/rocketchat-ui-message/client/message.html index 6f8cad08f06..65bf1ae27b6 100644 --- a/packages/rocketchat-ui-message/client/message.html +++ b/packages/rocketchat-ui-message/client/message.html @@ -1,5 +1,5 @@