Skip to content

Commit

Permalink
linagora#12 Add handler icon to show what is draggable and pin messag…
Browse files Browse the repository at this point in the history
…e and reply action are now in menu options
  • Loading branch information
Stéphane VIEIRA committed Aug 25, 2020
1 parent 64ded7e commit fc79dfe
Show file tree
Hide file tree
Showing 8 changed files with 104 additions and 70 deletions.
1 change: 1 addition & 0 deletions twake/frontend/src/app/scenes/App/Popup/AddUser/AddUser.js
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,7 @@ export default class AddUser extends Component {
{this.props.inline && (
<a
className="returnBtn blue_link"
href="#"
onClick={() => this.props.previous && this.props.previous()}
>
{this.state.i18n.t('general.back')}
Expand Down
14 changes: 11 additions & 3 deletions twake/frontend/src/app/scenes/Apps/Messages/Message/Message.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import './Message.scss';
import MenusManager from 'services/Menus/MenusManager.js';
import UserCard from 'app/components/UserCard/UserCard.js';
import ChannelsService from 'services/channels/channels.js';
import DragIndicatorRoundedIcon from '@material-ui/icons/DragIndicatorRounded';

import FirstMessage from './Types/FirstMessage.js';

Expand All @@ -38,6 +39,7 @@ export default class Message extends Component {
users_repository: Collections.get('users'),
app_messages_service: MessagesService,
is_hover: false,
is_hover_handler: false,
is_selected: false,
loading_interaction: false,
userCard: false,
Expand Down Expand Up @@ -259,10 +261,16 @@ export default class Message extends Component {
className={'message_bloc ' + className}
onMouseOver={() => this.setState({ was_hover: true })}
>
<div key="sender" className="sender">
{this.state.was_hover && (
<DragIndicatorRoundedIcon
className={'js-drag-handler handler-icon ' + (app ? 'is_app ' : '')}
/>
)}

<div className="sender">
{show_user && user && (
<div
className={'user-image js-drag-handler ' + (app ? 'is_app ' : '')}
className={'user-image ' + (app ? 'is_app ' : '')}
style={{
backgroundImage:
"url('" +
Expand All @@ -272,7 +280,7 @@ export default class Message extends Component {
}}
/>
)}
{!show_user && <div className="date js-drag-handler"></div>}
{!show_user && <div></div>}
</div>
<div key="container" className="container">
<div className="message_container">
Expand Down
45 changes: 30 additions & 15 deletions twake/frontend/src/app/scenes/Apps/Messages/Message/Message.scss
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@
margin: -4px;
margin-bottom: 8px;

.sender {
.sender,
.user-avatar {
min-width: 16px;
}

Expand Down Expand Up @@ -127,15 +128,10 @@
margin-right: 5px;
}

&:hover,
&.is_selected {
//background: #00000008;
}

.sender {
.user-image {
width: 16px;
height: 16px;
width: 20px;
height: 20px;

&.is_app {
border-radius: 2px;
Expand All @@ -146,15 +142,15 @@

.sender {
position: relative;
margin-right: 4px;
min-width: 24px;
margin-right: 6px;

.user-image {
width: 24px;
height: 24px;
width: 28px;
height: 28px;
background-size: cover;
background-position: center;
border-radius: var(--default-border-radius);
border-radius: 50%;
margin-left: 5px;

&.is_app {
border-radius: var(--default-border-radius);
Expand Down Expand Up @@ -264,8 +260,28 @@
}
}

.handler-icon {
display: none;
position: absolute;
top: 50%;
left: -20px;
z-index: 1;
transform: translateY(-50%);

background: #ffffff;
color: $primary;

border-radius: 50%;
border: 1px solid var(--grey-background);
box-shadow: $small_box_shadow;

width: 28px;
height: 28px;
}

&:hover > .container > .message_container .message_options,
&.is_selected > .container > .message_container .message_options {
&.is_selected > .container > .message_container .message_options,
&:hover > .handler-icon {
display: flex;
}

Expand Down Expand Up @@ -351,7 +367,6 @@
}

&.is_selected {
border: 1px solid $primary;
color: $primary;
background: $primary_background;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ export default class MessageOptions extends Component {
MessagesService.react(
this.props.message,
emoji.shortname,
this.props.messagesCollectionKey
this.props.messagesCollectionKey,
);
}}
/>
Expand All @@ -80,41 +80,9 @@ export default class MessageOptions extends Component {
position="top"
>
<ReactionIcon className="m-icon-small" />
</Menu>
</Menu>,
);
}

if (!this.props.message.parent_message_id) {
if (
!(this.props.message.hidden_data || {}).disable_responses &&
!this.props.disableResponses
) {
list.push(
<div
className="option_button"
onClick={() => MessagesService.startRespond(this.props.message)}
>
<Icon type="enter" className="m-icon-small" />
</div>
);
}
if (!(this.props.message.hidden_data || {}).disable_pin) {
list.push(
<div
className={'option_button ' + (this.props.message.pinned && 'selected')}
onClick={() =>
MessagesService.pinMessage(
this.props.message,
!this.props.message.pinned,
this.props.messagesCollectionKey
)
}
>
<Icon type="map-pin-alt" className="m-icon-small" />
</div>
);
}
}
}

var menu = [];
Expand All @@ -141,7 +109,7 @@ export default class MessageOptions extends Component {

var apps =
WorkspacesApps.getApps().filter(
app => ((app.display || {}).messages_module || {}).action
app => ((app.display || {}).messages_module || {}).action,
) || [];
if (apps.length > 0) {
menu.push({ type: 'separator' });
Expand Down Expand Up @@ -178,6 +146,42 @@ export default class MessageOptions extends Component {
WorkspaceUserRights.hasWorkspacePrivilege() &&
(this.props.message.hidden_data || {}).allow_delete == 'administrators')
) {
if (!(this.props.message.hidden_data || {}).disable_pin) {
menu.push({
type: 'menu',
text: Languages.t(
!this.props.message.pinned
? 'scenes.apps.messages.message.pin_button'
: 'scenes.apps.messages.message.unpin_button',
'Pin message',
),
className: 'option_button',
onClick: () => {
MessagesService.pinMessage(
this.props.message,
!this.props.message.pinned,
this.props.messagesCollectionKey,
);
},
});
}

if (!this.props.message.parent_message_id) {
if (
!(this.props.message.hidden_data || {}).disable_responses &&
!this.props.disableResponses
) {
menu.push({
type: 'menu',
text: Languages.t('scenes.apps.messages.message.reply_button'),
className: 'option_button',
onClick: () => {
MessagesService.startRespond(this.props.message);
},
});
}
}

if (
menu.length > 0 &&
(!this.props.message.application_id || !this.props.message.responses_count)
Expand All @@ -200,7 +204,7 @@ export default class MessageOptions extends Component {
className: 'error',
onClick: () => {
AlertManager.confirm(() =>
MessagesService.deleteMessage(this.props.message, this.props.messagesCollectionKey)
MessagesService.deleteMessage(this.props.message, this.props.messagesCollectionKey),
);
},
});
Expand All @@ -218,7 +222,7 @@ export default class MessageOptions extends Component {
position={'left'}
>
<EditIcon className="m-icon-small" />
</Menu>
</Menu>,
);
}

Expand Down
15 changes: 8 additions & 7 deletions twake/frontend/src/app/services/channels/channels.js
Original file line number Diff line number Diff line change
Expand Up @@ -465,14 +465,15 @@ class Channels extends Observable {
} else if (channel.direct) {
//Private chan
var name = [];
channel.members.forEach(id => {
if (channel.members.length == 1 || id != CurrentUser.get().id) {
var user = Collections.get('users').find(id);
if (user) {
name.push('@' + user.username);
channel &&
channel.members.forEach(id => {
if (channel.members.length == 1 || id != CurrentUser.get().id) {
var user = Collections.get('users').find(id);
if (user) {
name.push('@' + user.username);
}
}
}
});
});
if (name.length == 0) {
this._url_timeout = setTimeout(() => {
this.updateURL();
Expand Down
7 changes: 5 additions & 2 deletions twake/frontend/src/app/services/languages/locale/en.js
Original file line number Diff line number Diff line change
Expand Up @@ -1202,7 +1202,8 @@ export default {
'Invite your collaborators into your workspace.',
'scenes.app.channelsbar.public_channel_label': 'Public channel',
'scenes.app.channelsbar.private_channel_label': 'Private channel',
'scenes.app.channelsbar.private_channel_message': 'This is a public channel, all the workspace will be invited !',
'scenes.app.channelsbar.private_channel_message':
'This is a public channel, all the workspace will be invited !',
'scenes.app.channelsbar.save_channel_button': 'Save',
'scenes.app.channelsbar.sending_message_instruction': 'Send a first message in a discussion',
'scenes.app.channelsbar.tutorial_alert': 'Never show this frame again?',
Expand Down Expand Up @@ -1550,9 +1551,11 @@ export default {
'scenes.apps.messages.message.cancel_button': 'Cancel',
'scenes.apps.messages.message.modify_button': 'Edit',
'scenes.apps.messages.message.personal_message': 'Only you can see this message.',
'scenes.apps.messages.message.pin_button': 'Pin message',
'scenes.apps.messages.message.unpin_button': 'Un-pin message',
'scenes.apps.messages.message.pinned': 'Pinned',
'scenes.apps.messages.message.remove_button': 'Delete',
'scenes.apps.messages.message.reply_button': 'Answer',
'scenes.apps.messages.message.reply_button': 'Reply',
'scenes.apps.messages.message.show_on_right': 'Show on the right',
'scenes.apps.messages.message.save_button': 'Save',
'scenes.apps.messages.message.show_button': 'Display',
Expand Down
6 changes: 4 additions & 2 deletions twake/frontend/src/app/services/languages/locale/fr.js
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ export default {
'scenes.apps.calendar.event_view.no_reminder': 'Pas de rappel',
'scenes.apps.calendar.event_view.article_the': 'le',
'scenes.apps.calendar.event_view.article_at': 'à',
'scenes.apps.calendar.event_view.article_until': "à",
'scenes.apps.calendar.event_view.article_until': 'à',
'scenes.apps.calendar.event_view.details': 'Détails',
'scenes.apps.calendar.event_view.no_event_selected': 'Aucun événement sélectionné',
'scenes.apps.calendar.event_view.description': 'Description',
Expand Down Expand Up @@ -1293,7 +1293,7 @@ export default {
'scenes.app.popup.appsparameters.pages.app_grp_label': "Groupe d'applications",
'scenes.app.popup.appsparameters.pages.app_informations':
"Cette chaine de caractère permet d'identifier votre application et sera utilisée dans les commandes de message.",
'scenes.app.popup.appsparameters.pages.app_name_label': 'Nom de l\'application',
'scenes.app.popup.appsparameters.pages.app_name_label': "Nom de l'application",
'scenes.app.popup.appsparameters.pages.app_modification_right':
'Tous les gérants de cette entreprise pourront modifier cette application.',
'scenes.app.popup.appsparameters.pages.app_privileges_information':
Expand Down Expand Up @@ -1613,6 +1613,8 @@ export default {
'scenes.apps.messages.message.modify_button': 'Modifier',
'scenes.apps.messages.message.personal_message': 'Vous seul pouvez voir ce message.',
'scenes.apps.messages.message.pinned': 'Épinglé',
'scenes.apps.messages.message.unpin_button': 'Désépingler le message',
'scenes.apps.messages.message.pin_button': 'Épingler le message',
'scenes.apps.messages.message.remove_button': 'Supprimer',
'scenes.apps.messages.message.reply_button': 'Répondre',
'scenes.apps.messages.message.show_on_right': 'Afficher à droite',
Expand Down
8 changes: 4 additions & 4 deletions twake/frontend/src/app/services/user/current_user.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ class CurrentUser extends Observable {
ConfiguratorsManager.closeConfigurator(data.application);
}
}
}
},
);
}

Expand All @@ -66,7 +66,7 @@ class CurrentUser extends Observable {

updateTutorialStatus(key, set_false) {
var user = this.get();
if(!user){
if (!user) {
return;
}
if (!user.tutorial_status || user.tutorial_status.length == 0) {
Expand Down Expand Up @@ -105,7 +105,7 @@ class CurrentUser extends Observable {
setTimeout(() => {
var data = {
preferences: JSON.parse(
JSON.stringify(Collections.get('users').find(Login.currentUserId).workspaces_preferences)
JSON.stringify(Collections.get('users').find(Login.currentUserId).workspaces_preferences),
),
};
var update = {
Expand Down Expand Up @@ -231,7 +231,7 @@ class CurrentUser extends Observable {
text: Languages.t(
'services.user.update_password_alert',
[],
'Votre mot de passe a été mis à jour.'
'Votre mot de passe a été mis à jour.',
),
});
} else {
Expand Down

0 comments on commit fc79dfe

Please sign in to comment.