Merge pull request #7988 from RocketChat/action=messages

[FIX] Vertical menu on flex-tab
# Conflicts:
#	packages/rocketchat-ui-master/public/icons.svg
pull/8689/head
Rodrigo Nascimento 8 years ago
parent 678fe0b84c
commit 7e39818453
  1. 1
      packages/rocketchat-autotranslate/client/lib/actionButton.js
  2. 10
      packages/rocketchat-google-vision/.npm/package/npm-shrinkwrap.json
  3. 13
      packages/rocketchat-lib/client/MessageAction.js
  4. 3
      packages/rocketchat-mentions-flextab/client/actionButton.js
  5. 19
      packages/rocketchat-mentions-flextab/client/views/mentionsFlexTab.js
  6. 1
      packages/rocketchat-message-mark-as-unread/client/actionButton.js
  7. 23
      packages/rocketchat-message-pin/client/actionButton.js
  8. 19
      packages/rocketchat-message-pin/client/views/pinnedMessages.js
  9. 2
      packages/rocketchat-message-snippet/client/tabBar/views/snippetedMessages.js
  10. 6
      packages/rocketchat-message-star/client/actionButton.js
  11. 19
      packages/rocketchat-message-star/client/views/starredMessages.js
  12. 8
      packages/rocketchat-theme/client/imports/components/popover.css
  13. 8
      packages/rocketchat-theme/client/imports/general/base.css
  14. 2
      packages/rocketchat-ui-flextab/client/tabs/messageSearch.html
  15. 22
      packages/rocketchat-ui-flextab/client/tabs/messageSearch.js
  16. 18
      packages/rocketchat-ui-master/.npm/package/npm-shrinkwrap.json
  17. 6
      packages/rocketchat-ui-master/public/icons.svg
  18. 62
      packages/rocketchat-ui-message/client/message.html
  19. 19
      packages/rocketchat-ui-message/client/message.js
  20. 23
      packages/rocketchat-ui/client/views/app/room.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 } });

@ -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": {

@ -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() {

@ -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();
}

@ -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);

@ -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);

@ -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;

@ -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);

@ -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();

@ -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'));
},

@ -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);

@ -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%);

@ -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;
}
}
}

@ -23,7 +23,7 @@
<div class="flex-tab__result js-list">
<ul class="list clearfix">
{{#each searchResultMessages}}
{{#nrr nrrargs 'message' message}}{{/nrr}}
{{#nrr nrrargs 'message' message}}{{/nrr}}
{{/each}}
</ul>
{{#if hasMore}}

@ -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();

@ -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"
}
}
}

@ -45,7 +45,7 @@
<symbol viewBox="0 0 20 20" id="icon-share"><g stroke="currentColor" stroke-width="1.5" fill="none" fill-rule="evenodd"><path d="M10 12.5V2.917" stroke-linecap="square" /><path d="M6.667 5.419l3.291-3.292L13.25 5.42m-.75 2.913H15V17.5H5V8.333h2.5" /></g></symbol>
<symbol viewBox="0 0 20 20" id="icon-sign-out"><path d="M2.684 3h4.63c.232 0 .421.19.421.42v.282c0 .231-.19.42-.42.42H2.683a.563.563 0 0 0-.561.562v10.102c0 .309.252.562.56.562h4.631c.232 0 .421.189.421.42v.281c0 .232-.19.421-.42.421H2.683c-.93 0-1.684-.754-1.684-1.684V4.684A1.686 1.686 0 0 1 2.684 3zm9.787.684l-.25.25a.421.421 0 0 0 0 .595l4.63 4.61H7.034c-.231 0-.42.19-.42.42v.351c0 .232.189.421.42.421h9.819l-4.627 4.61a.421.421 0 0 0 0 .596l.25.249a.421.421 0 0 0 .595 0l5.77-5.753a.421.421 0 0 0 0-.596l-5.773-5.753a.421.421 0 0 0-.596 0z" /></symbol>
<symbol viewBox="0 0 20 20" id="icon-snippet"><g stroke="currentColor" stroke-width="1.5" fill="none" fill-rule="evenodd"><path d="M5.833 13.88L1.953 10l3.88-3.88" /><path d="M11.941 2.756L8.06 17.244" stroke-linecap="square" /><path d="M14.167 6.12l3.88 3.88-3.88 3.88" /></g></symbol>
<symbol viewBox="0 0 20 20" id="icon-star"><path d="M10 15l-4.898 2.575.935-5.454-3.962-3.863 5.476-.796L10 2.5l2.45 4.962 5.475.796-3.962 3.863.935 5.454z" stroke-width="1.5" stroke="currentColor" fill="none" /></symbol>
<symbol viewBox="0 0 20 20" id="icon-star"><path d="M10 15l-4.898 2.575.935-5.454-3.962-3.863 5.476-.796L10 2.5l2.45 4.962 5.475.796-3.962 3.863.935 5.454z" stroke-width="1.5" stroke="currentColor" /></symbol>
<symbol viewBox="0 0 20 20" id="icon-strike"><g fill="none" fill-rule="evenodd"><path d="M5.775 13.259c.074.989.498 1.78 1.273 2.372.775.593 1.768.889 2.98.889 1.312 0 2.352-.311 3.122-.933.77-.621 1.155-1.458 1.155-2.51 0-.842-.258-1.511-.774-2.008-.516-.498-1.366-.894-2.551-1.19L9.782 9.56c-.788-.2-1.353-.442-1.694-.722a1.35 1.35 0 0 1-.512-1.095c0-.582.231-1.047.694-1.396.463-.35 1.075-.524 1.837-.524.714 0 1.3.165 1.758.496.457.33.736.79.837 1.377h1.436c-.058-.926-.46-1.685-1.206-2.278-.746-.592-1.672-.888-2.777-.888-1.212 0-2.189.3-2.932.9-.743.6-1.115 1.387-1.115 2.36 0 .815.235 1.467.706 1.957.471.489 1.225.866 2.262 1.13l1.468.381c.788.196 1.367.455 1.737.778.37.322.556.727.556 1.214 0 .566-.253 1.035-.758 1.408s-1.144.56-1.916.56c-.815 0-1.487-.178-2.016-.532-.529-.355-.838-.83-.928-1.428H5.775z" fill="currentColor" /><path d="M4.375 10h11.25" stroke="currentColor" stroke-width="1.5" stroke-linecap="square" /></g></symbol>
<symbol viewBox="0 0 20 20" id="icon-team"><path d="M5.5 16.08c0-2.838 3.375-2.27 3.375-3.405 0 0 .065-.754-.307-1.135-.464-.473-.818-1.041-.818-1.986C7.75 8.144 8.757 7 10 7s2.25 1.143 2.25 2.554c0 .932-.345 1.512-.829 1.986-.353.372-.296 1.135-.296 1.135 0 1.135 3.375.567 3.375 3.405 0 0-.896.67-4.5.67s-4.5-.67-4.5-.67zm-.386-3.104a17.84 17.84 0 0 1-1.134-.086c-1.735-.19-2.23-.56-2.23-.56 0-2.838 3.375-2.27 3.375-3.405 0 0 .065-.754-.307-1.135C4.354 7.317 4 6.749 4 5.804 4 4.394 5.007 3.25 6.25 3.25S8.5 4.393 8.5 5.804m6.386 7.172c.426-.02.803-.05 1.134-.086 1.735-.19 2.23-.56 2.23-.56 0-2.838-3.375-2.27-3.375-3.405 0 0-.065-.754.307-1.135.464-.473.818-1.041.818-1.986 0-1.41-1.007-2.554-2.25-2.554S11.5 4.393 11.5 5.804" stroke="currentColor" stroke-width="1.5" fill="none" /></symbol>
<symbol viewBox="0 0 20 20" id="icon-trash"><g stroke="currentColor" stroke-width="1.5" fill="none" fill-rule="evenodd"><path d="M4 6h12l-1 12H5zm8-2.5a2 2 0 1 0-4 0" /><path d="M8 10v5m4-5v5" stroke-linecap="square" /><path d="M2.5 3.5h15" stroke-linecap="round" stroke-linejoin="round" /></g></symbol>
@ -56,4 +56,8 @@
<symbol viewBox="0 0 20 20" id="icon-video"><g stroke-width="1.5" stroke="currentColor" fill="none" fill-rule="evenodd"><path d="M3 8h10v8H3zm10 2.376l4.048-1.314c.526-.171.952.137.952.69v4.494c0 .552-.426.862-.952.69L13 13.624v-3.247z" /><path d="M5.5 5h5" stroke-linecap="square" /></g></symbol>
<symbol viewBox="0 0 20 20" id="icon-volume"><path d="M3 6.345h1.967S6.027 4 9 4v12c-2.874 0-4.033-2.345-4.033-2.345H3v-7.31zm10.106 7.081A6.968 6.968 0 0 0 14 10a6.968 6.968 0 0 0-.894-3.426m2.489 8.809A10.95 10.95 0 0 0 17 10c0-1.956-.51-3.792-1.405-5.383" stroke="currentColor" stroke-width="1.5" fill="none" /></symbol>
<symbol viewBox="0 0 20 20" id="icon-warning"><g stroke="currentColor" stroke-width="1.5" fill="none" fill-rule="evenodd"><path d="M10 3l8 14H2z" /><path d="M10 9v5" stroke-linecap="square" /></g></symbol>
<symbol viewBox="0 0 20 20" id="icon-checkmark-circled"><path d="M486.4 1024c-129.922 0-252.067-50.594-343.936-142.464s-142.464-214.014-142.464-343.936c0-129.923 50.595-252.067 142.464-343.936s214.013-142.464 343.936-142.464c129.922 0 252.067 50.595 343.936 142.464s142.464 214.014 142.464 343.936-50.594 252.067-142.464 343.936c-91.869 91.87-214.014 142.464-343.936 142.464zM486.4 102.4c-239.97 0-435.2 195.23-435.2 435.2s195.23 435.2 435.2 435.2 435.2-195.23 435.2-435.2-195.23-435.2-435.2-435.2z"></path><path d="M384 742.4c-6.552 0-13.102-2.499-18.102-7.499l-153.6-153.6c-9.997-9.997-9.997-26.206 0-36.203 9.998-9.997 26.206-9.997 36.205 0l135.498 135.498 340.299-340.298c9.997-9.997 26.206-9.997 36.203 0 9.998 9.998 9.998 26.206 0 36.205l-358.4 358.4c-5 4.998-11.55 7.498-18.102 7.498z"></path></symbol>
<symbol viewBox="0 0 20 20" id="icon-cross-circled"><path d="M733.808 723.266l-208.874-185.666 208.874-185.667c10.566-9.394 11.518-25.574 2.126-36.141-9.394-10.566-25.574-11.522-36.142-2.126l-213.392 189.682-213.392-189.68c-10.568-9.392-26.749-8.44-36.141 2.126-9.394 10.566-8.442 26.749 2.126 36.141l208.874 185.666-208.875 185.666c-10.566 9.394-11.518 25.574-2.126 36.142 5.059 5.691 12.085 8.592 19.142 8.592 6.048 0 12.122-2.131 16.998-6.466l213.394-189.683 213.392 189.683c4.878 4.334 10.949 6.466 16.998 6.466 7.058 0 14.086-2.902 19.144-8.592 9.392-10.568 8.44-26.749-2.126-36.142z"></path><path d="M486.4 1024c-129.922 0-252.067-50.594-343.936-142.464s-142.464-214.014-142.464-343.936c0-129.923 50.595-252.067 142.464-343.936s214.013-142.464 343.936-142.464c129.922 0 252.067 50.595 343.936 142.464s142.464 214.014 142.464 343.936-50.594 252.067-142.464 343.936c-91.869 91.87-214.014 142.464-343.936 142.464zM486.4 102.4c-239.97 0-435.2 195.23-435.2 435.2s195.23 435.2 435.2 435.2 435.2-195.23 435.2-435.2-195.23-435.2-435.2-435.2z"></path></symbol>
<symbol viewBox="0 0 20 20" id="icon-jump"><path d="M11.6 7.257V4L18 9.7l-6.4 5.7v-3.257S2 11.385 2 16c0-9.23 9.6-8.743 9.6-8.743z" stroke="currentColor" stroke-width="1.5" fill="none" fill-rule="evenodd"/></symbol>
<symbol viewBox="0 0 20 20" id="icon-flag"><path d="M12.928 6.063l3.263-3.77a.74.74 0 0 0 .112-.759.71.71 0 0 0-.647-.422H3.141v17.72h1.406v-7.876h11.11a.71.71 0 0 0 .646-.422.691.691 0 0 0-.112-.759l-3.263-3.713zM4.547 9.578V2.547h9.562l-2.643 3.065c-.225.254-.225.647 0 .929l2.643 3.065H4.547v-.028z" fill-rule="nonzero" fill="currentColor"/></symbol>
</svg>

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 29 KiB

@ -1,5 +1,5 @@
<template name="message">
<li id="{{_id}}" class="message background-transparent-dark-hover {{isSequential}} {{system}} {{t}} {{own}} {{isTemp}} {{chatops}} {{customClass}}" data-username="{{u.username}}" data-groupable="{{isGroupable}}" data-date="{{date}}" data-timestamp="{{timestamp}}">
<li id="{{actionContext}}{{_id}}" class="message background-transparent-dark-hover {{isSequential}} {{system}} {{t}} {{own}} {{isTemp}} {{chatops}} {{customClass}}" data-username="{{u.username}}" data-groupable="{{isGroupable}}" data-date="{{date}}" data-timestamp="{{timestamp}}">
{{#if avatar}}
{{#if avatarFromUsername}}
<button class="thumb user-card-message" data-username="{{u.username}}" tabindex="1">{{> avatar username=avatarFromUsername}}</button>
@ -63,36 +63,40 @@
</div>
{{#unless system}}
<div class="message-actions">
<div class="message-actions__buttons">
{{#each action in messageActions}}
<button class="message-actions__button" data-message-action="{{action.id}}">
{{> icon block="message-actions__button-icon" icon=action.icon}}
</button>
{{/each}}
</div>
<label class="message-actions__label" for="message-actions__menu--{{_id}}" data-popover="label">
{{> icon block="message-actions__menu" icon="menu"}}
</label>
<input id="message-actions__menu--{{_id}}" type="checkbox" class="rc-popover-anchor" data-popover="anchor">
<div class="rc-popover" data-popover="popover">
<div class="rc-popover__wrapper"></div>
<div class="rc-popover__content">
<div class="rc-popover__column">
<ul class="rc-popover__list">
{{#each action in messageActionsMenu}}
<li class="rc-popover__item {{action.classes}}" data-message-action="{{action.id}}">
{{#if action.icon}}
<span class="rc-popover__icon">
{{> icon block="rc-popover__icon-element" icon=action.icon}}
</span>
{{/if}}
<span class="rc-popover__item-text">{{_ action.label}}</span>
</li>
{{/each}}
</ul>
{{#if messageActions 'message'}}
<div class="message-actions__buttons">
{{#each action in messageActions 'message'}}
<button class="message-actions__button" data-message-action="{{action.id}}">
{{> icon block="message-actions__button-icon" icon=action.icon}}
</button>
{{/each}}
</div>
{{/if}}
{{#if messageActions 'menu'}}
<label class="message-actions__label" for="message-actions__menu--{{_id}}{{actionContext}}" data-popover="label">
{{> icon block="message-actions__menu" icon="menu"}}
</label>
<input id="message-actions__menu--{{_id}}{{actionContext}}" type="checkbox" class="rc-popover-anchor" data-popover="anchor">
<div class="rc-popover" data-popover="popover">
<div class="rc-popover__wrapper"></div>
<div class="rc-popover__content">
<div class="rc-popover__column">
<ul class="rc-popover__list">
{{#each action in messageActions 'menu'}}
<li class="rc-popover__item {{action.classes}}" data-message-action="{{action.id}}">
{{#if action.icon}}
<span class="rc-popover__icon">
{{> icon block="rc-popover__icon-element" icon=action.icon}}
</span>
{{/if}}
<span class="rc-popover__item-text">{{_ action.label}}</span>
</li>
{{/each}}
</ul>
</div>
</div>
</div>
</div>
{{/if}}
</div>
{{/unless}}
<ul class="actionLinks {{hideActionLinks}}">

@ -265,11 +265,19 @@ Template.message.helpers({
return 'hidden';
}
},
messageActions() {
return RocketChat.MessageAction.getButtons(Template.currentData(), 'message', 'message');
},
messageActionsMenu() {
return RocketChat.MessageAction.getButtons(Template.currentData(), 'message', 'menu');
messageActions(group) {
let messageGroup = group;
let context = this.actionContext;
if (!group) {
messageGroup = 'message';
}
if (!context) {
context = 'message';
}
return RocketChat.MessageAction.getButtons(Template.currentData(), context, messageGroup);
}
});
@ -295,7 +303,6 @@ Template.message.onCreated(function() {
} else if (msg.u && msg.u.username === RocketChat.settings.get('Chatops_Username')) {
msg.html = msg.msg;
msg = RocketChat.callbacks.run('renderMentions', msg);
// console.log JSON.stringify message
msg = msg.html;
} else {
msg = renderMessageBody(msg);

@ -540,29 +540,6 @@ Template.room.events({
return chatMessages[RocketChat.openedRoom].input.focus();
},
'click .message-cog'() {
const [, message] = this._arguments;
RocketChat.MessageAction.hideDropDown();
let dropDown = $(`.messages-box \#${ message._id } .message-dropdown`);
if (dropDown.length === 0) {
const actions = RocketChat.MessageAction.getButtons(message, 'message');
const el = Blaze.toHTMLWithData(Template.messageDropdown, { actions });
$(`.messages-box \#${ message._id } .message-cog-container`).append(el);
dropDown = $(`.messages-box \#${ message._id } .message-dropdown`);
}
return dropDown.show();
},
'click .message-dropdown-close'() {
return RocketChat.MessageAction.hideDropDown();
},
'click .message [data-message-action]'(e, t) {
const button = RocketChat.MessageAction.getButtonById(e.currentTarget.dataset.messageAction);
if ((button != null ? button.action : undefined) != null) {

Loading…
Cancel
Save