From c21f1de7fa5800ff9f68660a6f927ce17cc31cc0 Mon Sep 17 00:00:00 2001 From: youssef-md Date: Tue, 4 Aug 2020 15:55:33 -0300 Subject: [PATCH 01/13] Change NAVIGATE_TO for GO_TO to reduce event size --- app/utils/log/events.js | 24 ++++++++++++------------ app/views/RoomsListView/index.js | 4 ++-- app/views/SettingsView/index.js | 2 +- app/views/SidebarView/index.js | 2 +- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/app/utils/log/events.js b/app/utils/log/events.js index 597044724e6..e5221171e29 100644 --- a/app/utils/log/events.js +++ b/app/utils/log/events.js @@ -37,11 +37,11 @@ export default { ENTER_WITH_APPLE_F: 'enter_with_apple_f', // SIDEBAR VIEW - SIDEBAR_NAVIGATE_TO_STATUS: 'sidebar_navigate_to_status', - SIDEBAR_NAVIGATE_TO_CHATS: 'sidebar_navigate_to_chats', - SIDEBAR_NAVIGATE_TO_PROFILE: 'sidebar_navigate_to_profile', - SIDEBAR_NAVIGATE_TO_SETTINGS: 'sidebar_navigate_to_settings', - SIDEBAR_NAVIGATE_TO_ADMINPANEL: 'sidebar_navigate_to_admin_panel', + SIDEBAR_GO_TO_STATUS: 'sidebar_go_to_status', + SIDEBAR_GO_TO_CHATS: 'sidebar_go_to_chats', + SIDEBAR_GO_TO_PROFILE: 'sidebar_go_to_profile', + SIDEBAR_GO_TO_SETTINGS: 'sidebar_go_to_settings', + SIDEBAR_GO_TO_ADMINPANEL: 'sidebar_go_to_admin_panel', // STATUS VIEW STATUS_DONE: 'status_done', @@ -57,9 +57,9 @@ export default { RL_TOGGLE_SERVER_DROPDOWN: 'rl_toggle_server_dropdown', RL_ADD_SERVER: 'rl_add_server', RL_CHANGE_SERVER: 'rl_change_server', - RL_NAVIGATE_TO_NEW_MSG: 'rl_navigate_to_new_msg', + RL_GO_TO_NEW_MSG: 'rl_go_to_new_msg', RL_SEARCH: 'rl_search', - RL_NAVIGATE_TO_DIRECTORY: 'rl_navigate_to_directory', + RL_GO_TO_DIRECTORY: 'rl_go_to_directory', RL_GO_QUEUE: 'rl_go_queue', RL_GO_TO_ROOM: 'rl_go_to_room', RL_FAVORITE_CHANNEL: 'rl_favorite_channel', @@ -122,14 +122,14 @@ export default { // SETTINGS VIEW SE_CONTACT_US: 'se_contact_us', SE_CONTACT_US_F: 'se_contact_us_f', - SE_NAVIGATE_TO_LANGUAGE: 'se_navigate_to_language', + SE_GO_TO_LANGUAGE: 'se_go_to_language', SE_REVIEW_THIS_APP: 'se_review_this_app', SE_REVIEW_THIS_APP_F: 'se_review_this_app_f', SE_SHARE_THIS_APP: 'se_share_this_app', - SE_NAVIGATE_TO_DEFAULTBROWSER: 'se_navigate_to_default_browser', - SE_NAVIGATE_TO_THEME: 'se_navigate_to_theme', - SE_NAVIGATE_TO_SCREENLOCKCONFIG: 'se_navigate_to_screen_lock_cfg', - SE_NAVIGATE_TO_PROFILE: 'se_navigate_to_profile', + SE_GO_TO_DEFAULTBROWSER: 'se_go_to_default_browser', + SE_GO_TO_THEME: 'se_go_to_theme', + SE_GO_TO_SCREENLOCKCONFIG: 'se_go_to_screen_lock_cfg', + SE_GO_TO_PROFILE: 'se_go_to_profile', SE_READ_LICENSE: 'se_read_license', SE_COPY_APP_VERSION: 'se_copy_app_version', SE_COPY_SERVER_VERSION: 'se_copy_server_version', diff --git a/app/views/RoomsListView/index.js b/app/views/RoomsListView/index.js index 5717de25cce..d35a17d738b 100644 --- a/app/views/RoomsListView/index.js +++ b/app/views/RoomsListView/index.js @@ -668,7 +668,7 @@ class RoomsListView extends React.Component { }; goDirectory = () => { - logEvent(events.RL_NAVIGATE_TO_DIRECTORY); + logEvent(events.RL_GO_TO_DIRECTORY); const { navigation, isMasterDetail } = this.props; if (isMasterDetail) { navigation.navigate('ModalStackNavigator', { screen: 'DirectoryView' }); @@ -753,7 +753,7 @@ class RoomsListView extends React.Component { } goToNewMessage = () => { - logEvent(events.RL_NAVIGATE_TO_NEW_MSG); + logEvent(events.RL_GO_TO_NEW_MSG); const { navigation, isMasterDetail } = this.props; if (isMasterDetail) { diff --git a/app/views/SettingsView/index.js b/app/views/SettingsView/index.js index a3617623f2b..43747b97b46 100644 --- a/app/views/SettingsView/index.js +++ b/app/views/SettingsView/index.js @@ -140,7 +140,7 @@ class SettingsView extends React.Component { } navigateToScreen = (screen) => { - logEvent(events[`SE_NAVIGATE_TO_${ screen.replace('View', '').toUpperCase() }`]); + logEvent(events[`SE_GO_TO_${ screen.replace('View', '').toUpperCase() }`]); const { navigation } = this.props; navigation.navigate(screen); } diff --git a/app/views/SidebarView/index.js b/app/views/SidebarView/index.js index a07405148e5..029af31e67d 100644 --- a/app/views/SidebarView/index.js +++ b/app/views/SidebarView/index.js @@ -134,7 +134,7 @@ class Sidebar extends Component { } sidebarNavigate = (route) => { - logEvent(events[`SIDEBAR_NAVIGATE_TO_${ route.replace('StackNavigator', '').replace('View', '').toUpperCase() }`]); + logEvent(events[`SIDEBAR_GO_TO_${ route.replace('StackNavigator', '').replace('View', '').toUpperCase() }`]); const { navigation } = this.props; navigation.navigate(route); } From 4416f155ca18da81d7244d51996a3ca13b82b53f Mon Sep 17 00:00:00 2001 From: youssef-md Date: Tue, 4 Aug 2020 16:20:57 -0300 Subject: [PATCH 02/13] Log RA JitsiMeet events and join / terminate --- app/lib/methods/callJitsi.js | 4 +++- app/utils/log/events.js | 14 +++++++++++++- app/views/JitsiMeetView.js | 4 ++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/app/lib/methods/callJitsi.js b/app/lib/methods/callJitsi.js index c49688076a8..7410ed8bda4 100644 --- a/app/lib/methods/callJitsi.js +++ b/app/lib/methods/callJitsi.js @@ -1,5 +1,6 @@ import reduxStore from '../createStore'; import Navigation from '../Navigation'; +import { logEvent, events } from '../../utils/log'; async function jitsiURL({ rid }) { const { settings } = reduxStore.getState(); @@ -24,7 +25,7 @@ async function jitsiURL({ rid }) { const accessToken = await this.methodCallWrapper('jitsi:generateAccessToken', rid); queryString = `?jwt=${ accessToken }`; } catch { - // do nothing + logEvent(events.RA_JITSI_F); } } @@ -32,6 +33,7 @@ async function jitsiURL({ rid }) { } async function callJitsi(rid, onlyAudio = false) { + logEvent(onlyAudio ? events.RA_JITSI_AUDIO : events.RA_JITSI_VIDEO); const url = await jitsiURL.call(this, { rid }); Navigation.navigate('JitsiMeetView', { url, onlyAudio, rid }); } diff --git a/app/utils/log/events.js b/app/utils/log/events.js index e5221171e29..1956253bc0f 100644 --- a/app/utils/log/events.js +++ b/app/utils/log/events.js @@ -78,6 +78,7 @@ export default { RL_GROUP_CHANNELS_BY_FAVORITE: 'rl_group_channels_by_favorite', RL_GROUP_CHANNELS_BY_UNREAD: 'rl_group_channels_by_unread', + // QUEUE LIST VIEW QL_GO_ROOM: 'ql_go_room', // DIRECTORY VIEW @@ -197,5 +198,16 @@ export default { ROOM_MSG_ACTION_REACTION: 'room_msg_action_reaction', ROOM_MSG_ACTION_REPORT: 'room_msg_action_report', ROOM_MSG_ACTION_REPORT_F: 'room_msg_action_report_f', - ROOM_JOIN: 'room_join' + ROOM_JOIN: 'room_join', + ROOM_GO_TO_RA: 'room_go_to_ra', + + // ROOM ACTION VIEW + RA_JITSI_VIDEO: 'ra_jitsi_video', + RA_JITSI_AUDIO: 'ra_jitsi_audio', + RA_JITSI_F: 'ra_jitsi_f', + + + // JITSI MEET VIEW + JM_CONFERENCE_JOIN: 'jm_conference_join', + JM_CONFERENCE_TERMINATE: 'jm_conference_terminate' }; diff --git a/app/views/JitsiMeetView.js b/app/views/JitsiMeetView.js index 6c0fce96ad5..6b7a15688ae 100644 --- a/app/views/JitsiMeetView.js +++ b/app/views/JitsiMeetView.js @@ -8,6 +8,7 @@ import RocketChat from '../lib/rocketchat'; import { getUserSelector } from '../selectors/login'; import sharedStyles from './Styles'; +import { logEvent, events } from '../utils/log'; const formatUrl = (url, baseUrl, uriSize, avatarAuthURLFragment) => ( `${ baseUrl }/avatar/${ url }?format=png&width=${ uriSize }&height=${ uriSize }${ avatarAuthURLFragment }` @@ -59,6 +60,7 @@ class JitsiMeetView extends React.Component { } componentWillUnmount() { + logEvent(events.JM_CONFERENCE_TERMINATE); if (this.jitsiTimeout) { BackgroundTimer.clearInterval(this.jitsiTimeout); } @@ -68,6 +70,7 @@ class JitsiMeetView extends React.Component { // Jitsi Update Timeout needs to be called every 10 seconds to make sure // call is not ended and is available to web users. onConferenceJoined = () => { + logEvent(events.JM_CONFERENCE_JOIN); RocketChat.updateJitsiTimeout(this.rid).catch(e => console.log(e)); if (this.jitsiTimeout) { BackgroundTimer.clearInterval(this.jitsiTimeout); @@ -78,6 +81,7 @@ class JitsiMeetView extends React.Component { } onConferenceTerminated = () => { + logEvent(events.JM_CONFERENCE_TERMINATE); const { navigation } = this.props; if (this.jitsiTimeout) { BackgroundTimer.clearInterval(this.jitsiTimeout); From c4168333e7170d0070f78c201767a9d2c5c4f5b5 Mon Sep 17 00:00:00 2001 From: youssef-md Date: Tue, 4 Aug 2020 17:42:54 -0300 Subject: [PATCH 03/13] Log more RoomView events --- app/containers/markdown/AtMention.js | 2 ++ app/utils/log/events.js | 6 ++++++ app/views/RoomView/Header/RightButtons.js | 4 ++++ app/views/RoomView/index.js | 2 ++ 4 files changed, 14 insertions(+) diff --git a/app/containers/markdown/AtMention.js b/app/containers/markdown/AtMention.js index 10e0407c202..3f921c1edee 100644 --- a/app/containers/markdown/AtMention.js +++ b/app/containers/markdown/AtMention.js @@ -5,6 +5,7 @@ import { Text } from 'react-native'; import { themes } from '../../constants/colors'; import styles from './styles'; +import { logEvent, events } from '../../utils/log'; const AtMention = React.memo(({ mention, mentions, username, navToRoomInfo, style = [], useRealName, theme @@ -41,6 +42,7 @@ const AtMention = React.memo(({ const user = mentions && mentions.length && mentions.find(m => m.username === mention); const handlePress = () => { + logEvent(events.ROOM_MENTION_GO_TO_USER_INFO); const navParam = { t: 'd', rid: user && user._id diff --git a/app/utils/log/events.js b/app/utils/log/events.js index 1956253bc0f..c73576b4a28 100644 --- a/app/utils/log/events.js +++ b/app/utils/log/events.js @@ -200,6 +200,12 @@ export default { ROOM_MSG_ACTION_REPORT_F: 'room_msg_action_report_f', ROOM_JOIN: 'room_join', ROOM_GO_TO_RA: 'room_go_to_ra', + ROOM_TOGGLE_FOLLOW_THREADS: 'room_toggle_follow_threads', + ROOM_GO_TO_SEARCH: 'room_go_to_search', + ROOM_GO_TO_THREADS: 'room_go_to_threads', + ROOM_GO_TO_ROOM_INFO: 'room_go_to_room_info', + ROOM_GO_TO_USER_INFO: 'room_go_to_user_info', + ROOM_MENTION_GO_TO_USER_INFO: 'room_mention_go_to_user_info', // ROOM ACTION VIEW RA_JITSI_VIDEO: 'ra_jitsi_video', diff --git a/app/views/RoomView/Header/RightButtons.js b/app/views/RoomView/Header/RightButtons.js index 7fc9890a2b4..cd479816748 100644 --- a/app/views/RoomView/Header/RightButtons.js +++ b/app/views/RoomView/Header/RightButtons.js @@ -5,6 +5,7 @@ import { connect } from 'react-redux'; import { CustomHeaderButtons, Item } from '../../../containers/HeaderButton'; import database from '../../../lib/database'; import { getUserSelector } from '../../../selectors/login'; +import { logEvent, events } from '../../../utils/log'; class RightButtonsContainer extends React.PureComponent { static propTypes = { @@ -58,6 +59,7 @@ class RightButtonsContainer extends React.PureComponent { } goThreadsView = () => { + logEvent(events.ROOM_GO_TO_THREADS); const { rid, t, navigation, isMasterDetail } = this.props; @@ -69,6 +71,7 @@ class RightButtonsContainer extends React.PureComponent { } goSearchView = () => { + logEvent(events.ROOM_GO_TO_SEARCH); const { rid, navigation, isMasterDetail } = this.props; @@ -80,6 +83,7 @@ class RightButtonsContainer extends React.PureComponent { } toggleFollowThread = () => { + logEvent(events.ROOM_TOGGLE_FOLLOW_THREADS); const { isFollowingThread } = this.state; const { toggleFollowThread } = this.props; if (toggleFollowThread) { diff --git a/app/views/RoomView/index.js b/app/views/RoomView/index.js index c7165be8db6..44e979d6006 100644 --- a/app/views/RoomView/index.js +++ b/app/views/RoomView/index.js @@ -357,6 +357,7 @@ class RoomView extends React.Component { } goRoomActionsView = (screen) => { + logEvent(events.ROOM_GO_TO_RA); const { room, member } = this.state; const { navigation, isMasterDetail } = this.props; if (isMasterDetail) { @@ -750,6 +751,7 @@ class RoomView extends React.Component { navToRoomInfo = (navParam) => { const { navigation, user, isMasterDetail } = this.props; + logEvent(events[`ROOM_GO_TO_${ navParam.t === 'd' ? 'USER' : 'ROOM' }_INFO`]); if (navParam.rid === user.id) { return; } From 36fd4ed695638720762aeaa1505728d6a5e02dcd Mon Sep 17 00:00:00 2001 From: youssef-md Date: Tue, 4 Aug 2020 18:07:28 -0300 Subject: [PATCH 04/13] Log slash commands and handle fail --- app/containers/MessageBox/index.js | 2 + app/utils/log/events.js | 71 ++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) diff --git a/app/containers/MessageBox/index.js b/app/containers/MessageBox/index.js index 0a4021b58a8..a8e847c9cbe 100644 --- a/app/containers/MessageBox/index.js +++ b/app/containers/MessageBox/index.js @@ -738,6 +738,7 @@ class MessageBox extends Component { Q.where('id', Q.like(`${ Q.sanitizeLikeString(command) }%`)) ).fetch(); if (slashCommand.length > 0) { + logEvent(events[`COMMAND_${ command.toUpperCase() }`]); try { const messageWithoutCommand = message.replace(/([^\s]+)/, '').trim(); const [{ appId }] = slashCommand; @@ -745,6 +746,7 @@ class MessageBox extends Component { RocketChat.runSlashCommand(command, roomId, messageWithoutCommand, triggerId, tmid || messageTmid); replyCancel(); } catch (e) { + logEvent(events[`COMMAND_${ command.toUpperCase() }_F`]); log(e); } this.clearInput(); diff --git a/app/utils/log/events.js b/app/utils/log/events.js index c73576b4a28..ed9c4a9d4f2 100644 --- a/app/utils/log/events.js +++ b/app/utils/log/events.js @@ -207,6 +207,77 @@ export default { ROOM_GO_TO_USER_INFO: 'room_go_to_user_info', ROOM_MENTION_GO_TO_USER_INFO: 'room_mention_go_to_user_info', + COMMAND_SLACKBRIDGE_IMPORT: 'command_slackbridge_import', + COMMAND_SLACKBRIDGE_IMPORT_F: 'command_slackbridge_import_f', + COMMAND_ARCHIVE: 'command_archive', + COMMAND_ARCHIVE_F: 'command_archive_f', + COMMAND_GIMME: 'command_gimme', + COMMAND_GIMME_F: 'command_gimme_f', + COMMAND_LENNYFACE: 'command_lennyface', + COMMAND_LENNYFACE_F: 'command_lennyface_f', + COMMAND_SHRUG: 'command_shrug', + COMMAND_SHRUG_F: 'command_shrug_f', + COMMAND_TABLEFLIP: 'command_table_flip', + COMMAND_TABLEFLIP_F: 'command_table_flip_f', + COMMAND_UNFLIP: 'command_unflip', + COMMAND_UNFLIP_F: 'command_unflip_f', + COMMAND_CREATE: 'command_create', + COMMAND_CREATE_F: 'command_create_f', + COMMAND_HELP: 'command_help', + COMMAND_HELP_F: 'command_help_f', + COMMAND_HIDE: 'command_hide', + COMMAND_HIDE_F: 'command_hide_f', + COMMAND_INVITE: 'command_invite', + COMMAND_INVITE_F: 'command_invite_f', + COMMAND_INVITE_ALL_TO: 'command_invite_all_to', + COMMAND_INVITE_ALL_TO_F: 'command_invite_all_to_f', + COMMAND_INVITE_ALL_FROM: 'command_invite_all_from', + COMMAND_INVITE_ALL_FROM_F: 'command_invite_all_from_f', + COMMAND_JOIN: 'command_join', + COMMAND_JOIN_F: 'command_join_f', + COMMAND_KICK: 'command_kick', + COMMAND_KICK_F: 'command_kick_f', + COMMAND_LEAVE: 'command_leave', + COMMAND_LEAVE_F: 'command_leave_f', + COMMAND_PART: 'command_part', + COMMAND_PART_F: 'command_part_f', + COMMAND_ME: 'command_me', + COMMAND_ME_F: 'command_me_f', + COMMAND_MSG: 'command_msg', + COMMAND_MSG_F: 'command_msg_f', + COMMAND_MUTE: 'command_mute', + COMMAND_MUTE_F: 'command_mute_f', + COMMAND_UNMUTE: 'command_unmute', + COMMAND_UNMUTE_F: 'command_unmute_f', + COMMAND_STATUS: 'command_status', + COMMAND_STATUS_F: 'command_status_f', + COMMAND_TOPIC: 'command_topic', + COMMAND_TOPIC_F: 'command_topic_f', + COMMAND_UNARCHIVE: 'command_unarchive', + COMMAND_UNARCHIVE_F: 'command_unarchive_f', + COMMAND_GIPHY: 'command_giphy', + COMMAND_GIPHY_F: 'command_giphy_f', + COMMAND_KOKO: 'command_koko', + COMMAND_KOKO_F: 'command_koko_f', + COMMAND_WEBEX: 'command_webex', + COMMAND_WEBEX_F: 'command_webex_f', + COMMAND_ZOHO: 'command_zoho', + COMMAND_ZOHO_F: 'command_zoho_f', + COMMAND_POLL: 'command_poll', + COMMAND_POLL_F: 'command_poll_f', + COMMAND_GITHUB: 'command_github', + COMMAND_GITHUB_F: 'command_github_f', + COMMAND_NPM: 'command_npm', + COMMAND_NPM_F: 'command_npm_f', + COMMAND_DROPBOX_PAPER_CREATE: 'command_dropbox_paper_create', + COMMAND_DROPBOX_PAPER_CREATE_F: 'command_dropbox_paper_create_f', + COMMAND_DROPBOX_PAPER_SEARCH: 'command_dropbox_paper_search', + COMMAND_DROPBOX_PAPER_SEARCH_F: 'command_dropbox_paper_search_f', + COMMAND_MATH: 'command_math', + COMMAND_MATH_F: 'command_math_f', + COMMAND_JITSI: 'command_jitsi', + COMMAND_JITSI_F: 'command_jitsi_f', + // ROOM ACTION VIEW RA_JITSI_VIDEO: 'ra_jitsi_video', RA_JITSI_AUDIO: 'ra_jitsi_audio', From b5fdfb2ecb0d5363541ce707e7f3b0aa102d012b Mon Sep 17 00:00:00 2001 From: youssef-md Date: Tue, 4 Aug 2020 21:38:31 -0300 Subject: [PATCH 05/13] Log RoomActions events --- app/utils/log/events.js | 17 ++++++++++++++++- app/views/RoomActionsView/index.js | 14 +++++++++----- app/views/RoomInfoView/index.js | 8 ++++++-- 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/app/utils/log/events.js b/app/utils/log/events.js index ed9c4a9d4f2..445307aa03c 100644 --- a/app/utils/log/events.js +++ b/app/utils/log/events.js @@ -206,7 +206,6 @@ export default { ROOM_GO_TO_ROOM_INFO: 'room_go_to_room_info', ROOM_GO_TO_USER_INFO: 'room_go_to_user_info', ROOM_MENTION_GO_TO_USER_INFO: 'room_mention_go_to_user_info', - COMMAND_SLACKBRIDGE_IMPORT: 'command_slackbridge_import', COMMAND_SLACKBRIDGE_IMPORT_F: 'command_slackbridge_import_f', COMMAND_ARCHIVE: 'command_archive', @@ -282,7 +281,23 @@ export default { RA_JITSI_VIDEO: 'ra_jitsi_video', RA_JITSI_AUDIO: 'ra_jitsi_audio', RA_JITSI_F: 'ra_jitsi_f', + RA_GO_TO_ROOMINFO: 'ra_go_to_room_info', + RA_GO_TO_ROOMMEMBERS: 'ra_go_to_room_members', + RA_GO_TO_SELECTEDUSERS: 'ra_go_to_selected_users', + RA_GO_TO_INVITEUSERS: 'ra_go_to_invit_eusers', + RA_GO_TO_MESSAGESFILES: 'ra_go_to_messages_files', + RA_GO_TO_MESSAGESMENTIONS: 'ra_go_to_messages_mentions', + RA_GO_TO_MESSAGESSTARRED: 'ra_go_to_messages_starred', + RA_GO_TO_SEARCHMESSAGES: 'ra_go_to_search_messages', + RA_GO_TO_MESSAGESPINNED: 'ra_go_to_messages_pinned', + RA_GO_TO_AUTOTRANSLATE: 'ra_go_to_autotranslate', + RA_GO_TO_NOTIFICATIONPREF: 'ra_go_to_notification_pref', + RA_SHARE: 'ra_share', + RA_LEAVE: 'ra_leave', + // ROOM INFO VIEW + RI_GO_TO_RI_EDIT: 'ri_go_to_ri_edit', + RI_GO_TO_LIVECHAT_EDIT: 'ri_go_to_livechat_edit', // JITSI MEET VIEW JM_CONFERENCE_JOIN: 'jm_conference_join', diff --git a/app/views/RoomActionsView/index.js b/app/views/RoomActionsView/index.js index 9d7c56b6fe1..5d1554f80bd 100644 --- a/app/views/RoomActionsView/index.js +++ b/app/views/RoomActionsView/index.js @@ -14,7 +14,7 @@ import sharedStyles from '../Styles'; import Avatar from '../../containers/Avatar'; import Status from '../../containers/Status'; import RocketChat from '../../lib/rocketchat'; -import log from '../../utils/log'; +import log, { logEvent, events } from '../../utils/log'; import RoomTypeIcon from '../../containers/RoomTypeIcon'; import I18n from '../../i18n'; import scrollPersistTaps from '../../utils/scrollPersistTaps'; @@ -141,12 +141,14 @@ class RoomActionsView extends React.Component { } onPressTouchable = (item) => { - if (item.route) { + const { route, event, params } = item; + if (route) { + logEvent(events[`RA_GO_TO_${ route.replace('View', '').toUpperCase() }${ params.name ? params.name.toUpperCase() : '' }`]); const { navigation } = this.props; - navigation.navigate(item.route, item.params); + navigation.navigate(route, params); } - if (item.event) { - return item.event(); + if (event) { + return event(); } } @@ -524,6 +526,7 @@ class RoomActionsView extends React.Component { } handleShare = () => { + logEvent(events.RA_SHARE); const { room } = this.state; const permalink = RocketChat.getPermalinkChannel(room); if (!permalink) { @@ -535,6 +538,7 @@ class RoomActionsView extends React.Component { }; leaveChannel = () => { + logEvent(events.RA_LEAVE); const { room } = this.state; const { leaveRoom } = this.props; diff --git a/app/views/RoomInfoView/index.js b/app/views/RoomInfoView/index.js index 0ccad794cbf..123adcee52e 100644 --- a/app/views/RoomInfoView/index.js +++ b/app/views/RoomInfoView/index.js @@ -17,7 +17,7 @@ import RoomTypeIcon from '../../containers/RoomTypeIcon'; import I18n from '../../i18n'; import { CustomHeaderButtons, CloseModalButton } from '../../containers/HeaderButton'; import StatusBar from '../../containers/StatusBar'; -import log from '../../utils/log'; +import log, { logEvent, events } from '../../utils/log'; import { themes } from '../../constants/colors'; import { withTheme } from '../../theme'; import { getUserSelector } from '../../selectors/login'; @@ -117,7 +117,11 @@ class RoomInfoView extends React.Component { navigation.navigate(t === 'l' ? 'LivechatEditView' : 'RoomInfoEditView', { rid, room, roomUser })} + onPress={() => { + const isLivechat = t === 'l'; + logEvent(events[`RI_GO_TO_${ isLivechat ? 'LIVECHAT' : 'RI' }_EDIT`]); + navigation.navigate(isLivechat ? 'LivechatEditView' : 'RoomInfoEditView', { rid, room, roomUser }); + }} testID='room-info-view-edit-button' /> From a2d747c487219f38d0312df9acf66a5c3ab68602 Mon Sep 17 00:00:00 2001 From: youssef-md Date: Tue, 4 Aug 2020 22:07:45 -0300 Subject: [PATCH 06/13] Change from GO_TO to just GO --- app/containers/markdown/AtMention.js | 2 +- app/utils/log/events.js | 66 +++++++++++------------ app/views/RoomActionsView/index.js | 2 +- app/views/RoomInfoView/index.js | 2 +- app/views/RoomView/Header/RightButtons.js | 4 +- app/views/RoomView/index.js | 4 +- app/views/RoomsListView/index.js | 6 +-- app/views/SettingsView/index.js | 2 +- app/views/SidebarView/index.js | 2 +- 9 files changed, 45 insertions(+), 45 deletions(-) diff --git a/app/containers/markdown/AtMention.js b/app/containers/markdown/AtMention.js index 3f921c1edee..580b9b16888 100644 --- a/app/containers/markdown/AtMention.js +++ b/app/containers/markdown/AtMention.js @@ -42,7 +42,7 @@ const AtMention = React.memo(({ const user = mentions && mentions.length && mentions.find(m => m.username === mention); const handlePress = () => { - logEvent(events.ROOM_MENTION_GO_TO_USER_INFO); + logEvent(events.ROOM_MENTION_GO_USER_INFO); const navParam = { t: 'd', rid: user && user._id diff --git a/app/utils/log/events.js b/app/utils/log/events.js index 445307aa03c..be5dcdd1fb9 100644 --- a/app/utils/log/events.js +++ b/app/utils/log/events.js @@ -37,11 +37,11 @@ export default { ENTER_WITH_APPLE_F: 'enter_with_apple_f', // SIDEBAR VIEW - SIDEBAR_GO_TO_STATUS: 'sidebar_go_to_status', - SIDEBAR_GO_TO_CHATS: 'sidebar_go_to_chats', - SIDEBAR_GO_TO_PROFILE: 'sidebar_go_to_profile', - SIDEBAR_GO_TO_SETTINGS: 'sidebar_go_to_settings', - SIDEBAR_GO_TO_ADMINPANEL: 'sidebar_go_to_admin_panel', + SIDEBAR_GO_STATUS: 'sidebar_go_status', + SIDEBAR_GO_CHATS: 'sidebar_go_chats', + SIDEBAR_GO_PROFILE: 'sidebar_go_profile', + SIDEBAR_GO_SETTINGS: 'sidebar_go_settings', + SIDEBAR_GO_ADMINPANEL: 'sidebar_go_admin_panel', // STATUS VIEW STATUS_DONE: 'status_done', @@ -57,11 +57,11 @@ export default { RL_TOGGLE_SERVER_DROPDOWN: 'rl_toggle_server_dropdown', RL_ADD_SERVER: 'rl_add_server', RL_CHANGE_SERVER: 'rl_change_server', - RL_GO_TO_NEW_MSG: 'rl_go_to_new_msg', + RL_GO_NEW_MSG: 'rl_go_new_msg', RL_SEARCH: 'rl_search', - RL_GO_TO_DIRECTORY: 'rl_go_to_directory', + RL_GO_DIRECTORY: 'rl_go_directory', RL_GO_QUEUE: 'rl_go_queue', - RL_GO_TO_ROOM: 'rl_go_to_room', + RL_GO_ROOM: 'rl_go_room', RL_FAVORITE_CHANNEL: 'rl_favorite_channel', RL_UNFAVORITE_CHANNEL: 'rl_unfavorite_channel', RL_TOGGLE_FAVORITE_F: 'rl_toggle_favorite_f', @@ -123,14 +123,14 @@ export default { // SETTINGS VIEW SE_CONTACT_US: 'se_contact_us', SE_CONTACT_US_F: 'se_contact_us_f', - SE_GO_TO_LANGUAGE: 'se_go_to_language', + SE_GO_LANGUAGE: 'se_go_language', SE_REVIEW_THIS_APP: 'se_review_this_app', SE_REVIEW_THIS_APP_F: 'se_review_this_app_f', SE_SHARE_THIS_APP: 'se_share_this_app', - SE_GO_TO_DEFAULTBROWSER: 'se_go_to_default_browser', - SE_GO_TO_THEME: 'se_go_to_theme', - SE_GO_TO_SCREENLOCKCONFIG: 'se_go_to_screen_lock_cfg', - SE_GO_TO_PROFILE: 'se_go_to_profile', + SE_GO_DEFAULTBROWSER: 'se_go_default_browser', + SE_GO_THEME: 'se_go_theme', + SE_GO_SCREENLOCKCONFIG: 'se_go_screen_lock_cfg', + SE_GO_PROFILE: 'se_go_profile', SE_READ_LICENSE: 'se_read_license', SE_COPY_APP_VERSION: 'se_copy_app_version', SE_COPY_SERVER_VERSION: 'se_copy_server_version', @@ -199,13 +199,13 @@ export default { ROOM_MSG_ACTION_REPORT: 'room_msg_action_report', ROOM_MSG_ACTION_REPORT_F: 'room_msg_action_report_f', ROOM_JOIN: 'room_join', - ROOM_GO_TO_RA: 'room_go_to_ra', + ROOM_GO_RA: 'room_go_ra', ROOM_TOGGLE_FOLLOW_THREADS: 'room_toggle_follow_threads', - ROOM_GO_TO_SEARCH: 'room_go_to_search', - ROOM_GO_TO_THREADS: 'room_go_to_threads', - ROOM_GO_TO_ROOM_INFO: 'room_go_to_room_info', - ROOM_GO_TO_USER_INFO: 'room_go_to_user_info', - ROOM_MENTION_GO_TO_USER_INFO: 'room_mention_go_to_user_info', + ROOM_GO_SEARCH: 'room_go_search', + ROOM_GO_THREADS: 'room_go_threads', + ROOM_GO_ROOM_INFO: 'room_go_room_info', + ROOM_GO_USER_INFO: 'room_go_user_info', + ROOM_MENTION_GO_USER_INFO: 'room_mention_go_user_info', COMMAND_SLACKBRIDGE_IMPORT: 'command_slackbridge_import', COMMAND_SLACKBRIDGE_IMPORT_F: 'command_slackbridge_import_f', COMMAND_ARCHIVE: 'command_archive', @@ -277,27 +277,27 @@ export default { COMMAND_JITSI: 'command_jitsi', COMMAND_JITSI_F: 'command_jitsi_f', - // ROOM ACTION VIEW + // ROOM ACTIONS VIEW RA_JITSI_VIDEO: 'ra_jitsi_video', RA_JITSI_AUDIO: 'ra_jitsi_audio', RA_JITSI_F: 'ra_jitsi_f', - RA_GO_TO_ROOMINFO: 'ra_go_to_room_info', - RA_GO_TO_ROOMMEMBERS: 'ra_go_to_room_members', - RA_GO_TO_SELECTEDUSERS: 'ra_go_to_selected_users', - RA_GO_TO_INVITEUSERS: 'ra_go_to_invit_eusers', - RA_GO_TO_MESSAGESFILES: 'ra_go_to_messages_files', - RA_GO_TO_MESSAGESMENTIONS: 'ra_go_to_messages_mentions', - RA_GO_TO_MESSAGESSTARRED: 'ra_go_to_messages_starred', - RA_GO_TO_SEARCHMESSAGES: 'ra_go_to_search_messages', - RA_GO_TO_MESSAGESPINNED: 'ra_go_to_messages_pinned', - RA_GO_TO_AUTOTRANSLATE: 'ra_go_to_autotranslate', - RA_GO_TO_NOTIFICATIONPREF: 'ra_go_to_notification_pref', + RA_GO_ROOMINFO: 'ra_go_room_info', + RA_GO_ROOMMEMBERS: 'ra_go_room_members', + RA_GO_SELECTEDUSERS: 'ra_go_selected_users', + RA_GO_INVITEUSERS: 'ra_go_invite_users', + RA_GO_MESSAGESFILES: 'ra_go_messages_files', + RA_GO_MESSAGESMENTIONS: 'ra_go_messages_mentions', + RA_GO_MESSAGESSTARRED: 'ra_go_messages_starred', + RA_GO_SEARCHMESSAGES: 'ra_go_search_messages', + RA_GO_MESSAGESPINNED: 'ra_go_messages_pinned', + RA_GO_AUTOTRANSLATE: 'ra_go_autotranslate', + RA_GO_NOTIFICATIONPREF: 'ra_go_notification_pref', RA_SHARE: 'ra_share', RA_LEAVE: 'ra_leave', // ROOM INFO VIEW - RI_GO_TO_RI_EDIT: 'ri_go_to_ri_edit', - RI_GO_TO_LIVECHAT_EDIT: 'ri_go_to_livechat_edit', + RI_GO_RI_EDIT: 'ri_go_ri_edit', + RI_GO_LIVECHAT_EDIT: 'ri_go_livechat_edit', // JITSI MEET VIEW JM_CONFERENCE_JOIN: 'jm_conference_join', diff --git a/app/views/RoomActionsView/index.js b/app/views/RoomActionsView/index.js index 5d1554f80bd..5c93f050e7f 100644 --- a/app/views/RoomActionsView/index.js +++ b/app/views/RoomActionsView/index.js @@ -143,7 +143,7 @@ class RoomActionsView extends React.Component { onPressTouchable = (item) => { const { route, event, params } = item; if (route) { - logEvent(events[`RA_GO_TO_${ route.replace('View', '').toUpperCase() }${ params.name ? params.name.toUpperCase() : '' }`]); + logEvent(events[`RA_GO_${ route.replace('View', '').toUpperCase() }${ params.name ? params.name.toUpperCase() : '' }`]); const { navigation } = this.props; navigation.navigate(route, params); } diff --git a/app/views/RoomInfoView/index.js b/app/views/RoomInfoView/index.js index 123adcee52e..5547555f05e 100644 --- a/app/views/RoomInfoView/index.js +++ b/app/views/RoomInfoView/index.js @@ -119,7 +119,7 @@ class RoomInfoView extends React.Component { iconName='edit' onPress={() => { const isLivechat = t === 'l'; - logEvent(events[`RI_GO_TO_${ isLivechat ? 'LIVECHAT' : 'RI' }_EDIT`]); + logEvent(events[`RI_GO_${ isLivechat ? 'LIVECHAT' : 'RI' }_EDIT`]); navigation.navigate(isLivechat ? 'LivechatEditView' : 'RoomInfoEditView', { rid, room, roomUser }); }} testID='room-info-view-edit-button' diff --git a/app/views/RoomView/Header/RightButtons.js b/app/views/RoomView/Header/RightButtons.js index cd479816748..b554b41ccde 100644 --- a/app/views/RoomView/Header/RightButtons.js +++ b/app/views/RoomView/Header/RightButtons.js @@ -59,7 +59,7 @@ class RightButtonsContainer extends React.PureComponent { } goThreadsView = () => { - logEvent(events.ROOM_GO_TO_THREADS); + logEvent(events.ROOM_GO_THREADS); const { rid, t, navigation, isMasterDetail } = this.props; @@ -71,7 +71,7 @@ class RightButtonsContainer extends React.PureComponent { } goSearchView = () => { - logEvent(events.ROOM_GO_TO_SEARCH); + logEvent(events.ROOM_GO_SEARCH); const { rid, navigation, isMasterDetail } = this.props; diff --git a/app/views/RoomView/index.js b/app/views/RoomView/index.js index 44e979d6006..00df625f1e1 100644 --- a/app/views/RoomView/index.js +++ b/app/views/RoomView/index.js @@ -357,7 +357,7 @@ class RoomView extends React.Component { } goRoomActionsView = (screen) => { - logEvent(events.ROOM_GO_TO_RA); + logEvent(events.ROOM_GO_RA); const { room, member } = this.state; const { navigation, isMasterDetail } = this.props; if (isMasterDetail) { @@ -751,7 +751,7 @@ class RoomView extends React.Component { navToRoomInfo = (navParam) => { const { navigation, user, isMasterDetail } = this.props; - logEvent(events[`ROOM_GO_TO_${ navParam.t === 'd' ? 'USER' : 'ROOM' }_INFO`]); + logEvent(events[`ROOM_GO_${ navParam.t === 'd' ? 'USER' : 'ROOM' }_INFO`]); if (navParam.rid === user.id) { return; } diff --git a/app/views/RoomsListView/index.js b/app/views/RoomsListView/index.js index d35a17d738b..513ce311daa 100644 --- a/app/views/RoomsListView/index.js +++ b/app/views/RoomsListView/index.js @@ -668,7 +668,7 @@ class RoomsListView extends React.Component { }; goDirectory = () => { - logEvent(events.RL_GO_TO_DIRECTORY); + logEvent(events.RL_GO_DIRECTORY); const { navigation, isMasterDetail } = this.props; if (isMasterDetail) { navigation.navigate('ModalStackNavigator', { screen: 'DirectoryView' }); @@ -692,7 +692,7 @@ class RoomsListView extends React.Component { }; goRoom = ({ item, isMasterDetail }) => { - logEvent(events.RL_GO_TO_ROOM); + logEvent(events.RL_GO_ROOM); const { item: currentItem } = this.state; const { rooms } = this.props; if (currentItem?.rid === item.rid || rooms?.includes(item.rid)) { @@ -753,7 +753,7 @@ class RoomsListView extends React.Component { } goToNewMessage = () => { - logEvent(events.RL_GO_TO_NEW_MSG); + logEvent(events.RL_GO_NEW_MSG); const { navigation, isMasterDetail } = this.props; if (isMasterDetail) { diff --git a/app/views/SettingsView/index.js b/app/views/SettingsView/index.js index 43747b97b46..ee362b77245 100644 --- a/app/views/SettingsView/index.js +++ b/app/views/SettingsView/index.js @@ -140,7 +140,7 @@ class SettingsView extends React.Component { } navigateToScreen = (screen) => { - logEvent(events[`SE_GO_TO_${ screen.replace('View', '').toUpperCase() }`]); + logEvent(events[`SE_GO_${ screen.replace('View', '').toUpperCase() }`]); const { navigation } = this.props; navigation.navigate(screen); } diff --git a/app/views/SidebarView/index.js b/app/views/SidebarView/index.js index 029af31e67d..6690b3b30cf 100644 --- a/app/views/SidebarView/index.js +++ b/app/views/SidebarView/index.js @@ -134,7 +134,7 @@ class Sidebar extends Component { } sidebarNavigate = (route) => { - logEvent(events[`SIDEBAR_GO_TO_${ route.replace('StackNavigator', '').replace('View', '').toUpperCase() }`]); + logEvent(events[`SIDEBAR_GO_${ route.replace('StackNavigator', '').replace('View', '').toUpperCase() }`]); const { navigation } = this.props; navigation.navigate(route); } From a2661c22233c180883ef2be138682292d1cc081a Mon Sep 17 00:00:00 2001 From: youssef-md Date: Tue, 4 Aug 2020 23:14:57 -0300 Subject: [PATCH 07/13] Log RoomInfoEdit events --- app/sagas/room.js | 6 ++++- app/utils/log/events.js | 15 +++++++++++++ app/views/RoomActionsView/index.js | 1 - app/views/RoomInfoEditView/index.js | 35 ++++++++++++++++++++++++----- app/views/RoomInfoView/index.js | 1 + 5 files changed, 51 insertions(+), 7 deletions(-) diff --git a/app/sagas/room.js b/app/sagas/room.js index c7402f93a14..3b1b321ad0e 100644 --- a/app/sagas/room.js +++ b/app/sagas/room.js @@ -8,7 +8,7 @@ import Navigation from '../lib/Navigation'; import * as types from '../actions/actionsTypes'; import { removedRoom } from '../actions/room'; import RocketChat from '../lib/rocketchat'; -import log from '../utils/log'; +import log, { logEvent, events } from '../utils/log'; import I18n from '../i18n'; import { showErrorAlert } from '../utils/info'; @@ -48,12 +48,14 @@ const handleRemovedRoom = function* handleRemovedRoom() { }; const handleLeaveRoom = function* handleLeaveRoom({ rid, t }) { + logEvent(events.RA_LEAVE); try { const result = yield RocketChat.leaveRoom(rid, t); if (result.success) { yield handleRemovedRoom(); } } catch (e) { + logEvent(events.RA_LEAVE_F); if (e.data && e.data.errorType === 'error-you-are-last-owner') { Alert.alert(I18n.t('Oops'), I18n.t(e.data.errorType)); } else { @@ -63,12 +65,14 @@ const handleLeaveRoom = function* handleLeaveRoom({ rid, t }) { }; const handleDeleteRoom = function* handleDeleteRoom({ rid, t }) { + logEvent(events.RI_EDIT_DELETE); try { const result = yield RocketChat.deleteRoom(rid, t); if (result.success) { yield handleRemovedRoom(); } } catch (e) { + logEvent(events.RI_EDIT_DELETE_F); Alert.alert(I18n.t('Oops'), I18n.t('There_was_an_error_while_action', { action: I18n.t('deleting_room') })); } }; diff --git a/app/utils/log/events.js b/app/utils/log/events.js index be5dcdd1fb9..cecdd00e74d 100644 --- a/app/utils/log/events.js +++ b/app/utils/log/events.js @@ -294,10 +294,25 @@ export default { RA_GO_NOTIFICATIONPREF: 'ra_go_notification_pref', RA_SHARE: 'ra_share', RA_LEAVE: 'ra_leave', + RA_LEAVE_F: 'ra_leave_f', // ROOM INFO VIEW RI_GO_RI_EDIT: 'ri_go_ri_edit', RI_GO_LIVECHAT_EDIT: 'ri_go_livechat_edit', + RI_GO_ROOM_USER: 'ri_go_room_user', + + // ROOM INFO EDIT VIEW + RI_EDIT_TOGGLE_ROOM_TYPE: 'ri_edit_toggle_room_type', + RI_EDIT_TOGGLE_READ_ONLY: 'ri_edit_toggle_read_only', + RI_EDIT_TOGGLE_REACTIONS: 'ri_edit_toggle_reactions', + RI_EDIT_TOGGLE_SYSTEM_MSG: 'ri_edit_toggle_system_msg', + RI_EDIT_SAVE: 'ri_edit_save', + RI_EDIT_SAVE_F: 'ri_edit_save_f', + RI_EDIT_RESET: 'ri_edit_reset', + RI_EDIT_TOGGLE_ARCHIVE: 'ri_edit_toggle_archive', + RI_EDIT_TOGGLE_ARCHIVE_F: 'ri_edit_toggle_archive_f', + RI_EDIT_DELETE: 'ri_edit_delete', + RI_EDIT_DELETE_F: 'ri_edit_delete_f', // JITSI MEET VIEW JM_CONFERENCE_JOIN: 'jm_conference_join', diff --git a/app/views/RoomActionsView/index.js b/app/views/RoomActionsView/index.js index 5c93f050e7f..9b373755f8f 100644 --- a/app/views/RoomActionsView/index.js +++ b/app/views/RoomActionsView/index.js @@ -538,7 +538,6 @@ class RoomActionsView extends React.Component { }; leaveChannel = () => { - logEvent(events.RA_LEAVE); const { room } = this.state; const { leaveRoom } = this.props; diff --git a/app/views/RoomInfoEditView/index.js b/app/views/RoomInfoEditView/index.js index b40e31c62b6..4d913e1cd02 100644 --- a/app/views/RoomInfoEditView/index.js +++ b/app/views/RoomInfoEditView/index.js @@ -23,7 +23,7 @@ import RCTextInput from '../../containers/TextInput'; import Loading from '../../containers/Loading'; import SwitchContainer from './SwitchContainer'; import random from '../../utils/random'; -import log from '../../utils/log'; +import log, { logEvent, events } from '../../utils/log'; import I18n from '../../i18n'; import StatusBar from '../../containers/StatusBar'; import { themes } from '../../constants/colors'; @@ -150,6 +150,7 @@ class RoomInfoEditView extends React.Component { } reset = () => { + logEvent(events.RI_EDIT_RESET); this.clearErrors(); this.init(this.room); } @@ -173,6 +174,7 @@ class RoomInfoEditView extends React.Component { } submit = async() => { + logEvent(events.RI_EDIT_SAVE); Keyboard.dismiss(); const { room, name, description, topic, announcement, t, ro, reactWhenReadOnly, joinCode, systemMessages @@ -242,6 +244,7 @@ class RoomInfoEditView extends React.Component { await this.setState({ saving: false }); setTimeout(() => { if (error) { + logEvent(events.RI_EDIT_SAVE_F); showErrorAlert(I18n.t('There_was_an_error_while_action', { action: I18n.t('saving_settings') })); } else { EventEmitter.emit(LISTENER, { message: I18n.t('Settings_succesfully_changed') }); @@ -289,8 +292,10 @@ class RoomInfoEditView extends React.Component { style: 'destructive', onPress: async() => { try { + logEvent(events.RI_EDIT_TOGGLE_ARCHIVE); await RocketChat.toggleArchiveRoom(rid, t, !archived); } catch (e) { + logEvent(events.RI_EDIT_TOGGLE_ARCHIVE_F); log(e); } } @@ -333,6 +338,26 @@ class RoomInfoEditView extends React.Component { ); } + toggleRoomType = (value) => { + logEvent(events.RI_EDIT_TOGGLE_ROOM_TYPE); + this.setState({ t: value }); + } + + toggleReadOnly = (value) => { + logEvent(events.RI_EDIT_TOGGLE_READ_ONLY); + this.setState({ ro: value }); + } + + toggleReactions = (value) => { + logEvent(events.RI_EDIT_TOGGLE_REACTIONS); + this.setState({ reactWhenReadOnly: value }); + } + + toggleHideSystemMessages = (value) => { + logEvent(events.RI_EDIT_TOGGLE_SYSTEM_MSG); + this.setState(({ systemMessages }) => ({ enableSysMes: value, systemMessages: value ? systemMessages : [] })); + } + render() { const { name, nameError, description, topic, announcement, t, ro, reactWhenReadOnly, room, joinCode, saving, permissions, archived, enableSysMes @@ -410,7 +435,7 @@ class RoomInfoEditView extends React.Component { leftLabelSecondary={I18n.t('Everyone_can_access_this_channel')} rightLabelPrimary={I18n.t('Private')} rightLabelSecondary={I18n.t('Just_invited_people_can_access_this_channel')} - onValueChange={value => this.setState({ t: value })} + onValueChange={this.toggleRoomType} theme={theme} testID='room-info-edit-view-t' /> @@ -420,7 +445,7 @@ class RoomInfoEditView extends React.Component { leftLabelSecondary={I18n.t('All_users_in_the_channel_can_write_new_messages')} rightLabelPrimary={I18n.t('Read_Only')} rightLabelSecondary={I18n.t('Only_authorized_users_can_write_new_messages')} - onValueChange={value => this.setState({ ro: value })} + onValueChange={this.toggleReadOnly} disabled={!permissions[PERMISSION_SET_READONLY] || room.broadcast} theme={theme} testID='room-info-edit-view-ro' @@ -433,7 +458,7 @@ class RoomInfoEditView extends React.Component { leftLabelSecondary={I18n.t('Reactions_are_disabled')} rightLabelPrimary={I18n.t('Allow_Reactions')} rightLabelSecondary={I18n.t('Reactions_are_enabled')} - onValueChange={value => this.setState({ reactWhenReadOnly: value })} + onValueChange={this.toggleReactions} disabled={!permissions[PERMISSION_SET_REACT_WHEN_READONLY]} theme={theme} testID='room-info-edit-view-react-when-ro' @@ -455,7 +480,7 @@ class RoomInfoEditView extends React.Component { leftLabelSecondary={enableSysMes ? I18n.t('Overwrites_the_server_configuration_and_use_room_config') : I18n.t('Uses_server_configuration')} theme={theme} testID='room-info-edit-switch-system-messages' - onValueChange={value => this.setState(({ systemMessages }) => ({ enableSysMes: value, systemMessages: value ? systemMessages : [] }))} + onValueChange={this.toggleHideSystemMessages} labelContainerStyle={styles.hideSystemMessages} leftLabelStyle={styles.systemMessagesLabel} > diff --git a/app/views/RoomInfoView/index.js b/app/views/RoomInfoView/index.js index 5547555f05e..a0160d5170c 100644 --- a/app/views/RoomInfoView/index.js +++ b/app/views/RoomInfoView/index.js @@ -250,6 +250,7 @@ class RoomInfoView extends React.Component { }) goRoom = () => { + logEvent(events.RI_GO_ROOM_USER); const { roomUser, room } = this.state; const { name, username } = roomUser; const { rooms, navigation, isMasterDetail } = this.props; From f090c5d81400f8d7ba652acd93be18368dc8f5b6 Mon Sep 17 00:00:00 2001 From: youssef-md Date: Tue, 4 Aug 2020 23:55:04 -0300 Subject: [PATCH 08/13] Log InviteUsers and InviteUsersEdit events --- app/utils/log/events.js | 11 ++++++++++- app/views/InviteUsersEditView/index.js | 3 +++ app/views/InviteUsersView/index.js | 3 +++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/utils/log/events.js b/app/utils/log/events.js index cecdd00e74d..30e5d46a404 100644 --- a/app/utils/log/events.js +++ b/app/utils/log/events.js @@ -316,5 +316,14 @@ export default { // JITSI MEET VIEW JM_CONFERENCE_JOIN: 'jm_conference_join', - JM_CONFERENCE_TERMINATE: 'jm_conference_terminate' + JM_CONFERENCE_TERMINATE: 'jm_conference_terminate', + + // INVITE USERS VIEW + IU_SHARE: 'iu_share', + IU_GO_IU_EDIT: 'iu_go_iu_edit', + + // INVITE USERS EDIT VIEW + IU_EDIT_SET_LINK_PARAM: 'iu_edit_set_link_param', + IU_EDIT_CREATE_LINK: 'iu_edit_create_link' + }; diff --git a/app/views/InviteUsersEditView/index.js b/app/views/InviteUsersEditView/index.js index 45180e13e0a..d5f8d6fb49a 100644 --- a/app/views/InviteUsersEditView/index.js +++ b/app/views/InviteUsersEditView/index.js @@ -18,6 +18,7 @@ import { themes } from '../../constants/colors'; import { withTheme } from '../../theme'; import Separator from '../../containers/Separator'; import SafeAreaView from '../../containers/SafeAreaView'; +import { logEvent, events } from '../../utils/log'; const OPTIONS = { days: [{ @@ -72,6 +73,7 @@ class InviteUsersView extends React.Component { } onValueChangePicker = (key, value) => { + logEvent(events.IU_EDIT_SET_LINK_PARAM); const { inviteLinksSetParams } = this.props; const params = { [key]: value @@ -80,6 +82,7 @@ class InviteUsersView extends React.Component { } createInviteLink = () => { + logEvent(events.IU_EDIT_CREATE_LINK); const { createInviteLink, navigation } = this.props; createInviteLink(this.rid); navigation.pop(); diff --git a/app/views/InviteUsersView/index.js b/app/views/InviteUsersView/index.js index 0842d47421e..875594b1211 100644 --- a/app/views/InviteUsersView/index.js +++ b/app/views/InviteUsersView/index.js @@ -18,6 +18,7 @@ import StatusBar from '../../containers/StatusBar'; import { themes } from '../../constants/colors'; import { withTheme } from '../../theme'; import SafeAreaView from '../../containers/SafeAreaView'; +import { logEvent, events } from '../../utils/log'; class InviteUsersView extends React.Component { static navigationOptions = () => ({ @@ -50,6 +51,7 @@ class InviteUsersView extends React.Component { } share = () => { + logEvent(events.IU_SHARE); const { invite } = this.props; if (!invite || !invite.url) { return; @@ -58,6 +60,7 @@ class InviteUsersView extends React.Component { } edit = () => { + logEvent(events.IU_GO_IU_EDIT); const { navigation } = this.props; navigation.navigate('InviteUsersEditView', { rid: this.rid }); } From f966682036955002d7ddd8c2e4b952a6757ba34a Mon Sep 17 00:00:00 2001 From: youssef-md Date: Wed, 5 Aug 2020 00:02:02 -0300 Subject: [PATCH 09/13] Log AutoTranslate events --- app/utils/log/events.js | 9 ++++++++- app/views/AutoTranslateView/index.js | 5 +++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/utils/log/events.js b/app/utils/log/events.js index 30e5d46a404..8153fc289db 100644 --- a/app/utils/log/events.js +++ b/app/utils/log/events.js @@ -324,6 +324,13 @@ export default { // INVITE USERS EDIT VIEW IU_EDIT_SET_LINK_PARAM: 'iu_edit_set_link_param', - IU_EDIT_CREATE_LINK: 'iu_edit_create_link' + IU_EDIT_CREATE_LINK: 'iu_edit_create_link', + + // AUTO TRANSLATE VIEW + AT_TOGGLE_TRANSLATE: 'at_toggle_translate', + AT_TOGGLE_TRANSLATE_F: 'at_toggle_translate_f', + AT_SET_LANG: 'at_set_lang', + AT_SET_LANG_F: 'at_set_lang_f' + }; diff --git a/app/views/AutoTranslateView/index.js b/app/views/AutoTranslateView/index.js index f146d265a3c..5a1671b82e6 100644 --- a/app/views/AutoTranslateView/index.js +++ b/app/views/AutoTranslateView/index.js @@ -15,6 +15,7 @@ import { SWITCH_TRACK_COLOR, themes } from '../../constants/colors'; import scrollPersistTaps from '../../utils/scrollPersistTaps'; import { withTheme } from '../../theme'; import SafeAreaView from '../../containers/SafeAreaView'; +import { logEvent, events } from '../../utils/log'; const styles = StyleSheet.create({ contentContainerStyle: { @@ -103,6 +104,7 @@ class AutoTranslateView extends React.Component { } toggleAutoTranslate = async() => { + logEvent(events.AT_TOGGLE_TRANSLATE); const { enableAutoTranslate } = this.state; try { await RocketChat.saveAutoTranslate({ @@ -113,11 +115,13 @@ class AutoTranslateView extends React.Component { }); this.setState({ enableAutoTranslate: !enableAutoTranslate }); } catch (error) { + logEvent(events.AT_TOGGLE_TRANSLATE_F); console.log(error); } } saveAutoTranslateLanguage = async(language) => { + logEvent(events.AT_SET_LANG); try { await RocketChat.saveAutoTranslate({ rid: this.rid, @@ -126,6 +130,7 @@ class AutoTranslateView extends React.Component { }); this.setState({ selectedLanguage: language }); } catch (error) { + logEvent(events.AT_SET_LANG_F); console.log(error); } } From fff708508abbd6faea005dc9445a9dfe711346b1 Mon Sep 17 00:00:00 2001 From: youssef-md Date: Wed, 5 Aug 2020 00:55:26 -0300 Subject: [PATCH 10/13] Log NotificationPreferences events --- app/utils/log/events.js | 22 +++++++++++++++++-- .../NotificationPreferencesView/index.js | 4 +++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/app/utils/log/events.js b/app/utils/log/events.js index 8153fc289db..d3024d44820 100644 --- a/app/utils/log/events.js +++ b/app/utils/log/events.js @@ -330,7 +330,25 @@ export default { AT_TOGGLE_TRANSLATE: 'at_toggle_translate', AT_TOGGLE_TRANSLATE_F: 'at_toggle_translate_f', AT_SET_LANG: 'at_set_lang', - AT_SET_LANG_F: 'at_set_lang_f' - + AT_SET_LANG_F: 'at_set_lang_f', + // NOTIFICATION PREFERENCES VIEW + NP_DISABLENOTIFICATIONS: 'np_disable_notification', + NP_DISABLENOTIFICATIONS_F: 'np_disable_notification_f', + NP_MUTEGROUPMENTIONS: 'np_mute_group_mentions', + NP_MUTEGROUPMENTIONS_F: 'np_mute_group_mentions_f', + NP_HIDEUNREADSTATUS: 'np_hide_unread_status', + NP_HIDEUNREADSTATUS_F: 'np_hide_unread_status_f', + NP_DESKTOPNOTIFICATIONS: 'np_desktop_notifications', + NP_DESKTOPNOTIFICATIONS_F: 'np_desktop_notifications_f', + NP_MOBILEPUSHNOTIFICATIONS: 'np_mobile_push_notifications', + NP_MOBILEPUSHNOTIFICATIONS_F: 'np_mobile_push_notifications_f', + NP_AUDIONOTIFICATIONS: 'np_audio_notifications', + NP_AUDIONOTIFICATIONS_F: 'np_audio_notifications_f', + NP_AUDIONOTIFICATIONVALUE: 'np_audio_notification_value', + NP_AUDIONOTIFICATIONVALUE_F: 'np_audio_notification_value_f', + NP_DESKTOPNOTIFICATIONDURATION: 'np_desktopnotificationduration', + NP_DESKTOPNOTIFICATIONDURATION_F: 'np_desktopnotificationduration_f', + NP_EMAILNOTIFICATIONS: 'np_email_notifications', + NP_EMAILNOTIFICATIONS_F: 'np_email_notifications_f' }; diff --git a/app/views/NotificationPreferencesView/index.js b/app/views/NotificationPreferencesView/index.js index e00ed57ec92..4fad4183974 100644 --- a/app/views/NotificationPreferencesView/index.js +++ b/app/views/NotificationPreferencesView/index.js @@ -16,7 +16,7 @@ import RocketChat from '../../lib/rocketchat'; import { withTheme } from '../../theme'; import protectedFunction from '../../lib/methods/helpers/protectedFunction'; import SafeAreaView from '../../containers/SafeAreaView'; -import log from '../../utils/log'; +import log, { events, logEvent } from '../../utils/log'; const SectionTitle = React.memo(({ title, theme }) => ( { + logEvent(events[`NP_${ key.toUpperCase() }`]); const { room } = this.state; const db = database.active; @@ -206,6 +207,7 @@ class NotificationPreferencesView extends React.Component { })); }); } catch (e) { + logEvent(events[`NP_${ key.toUpperCase() }_F`]); log(e); } } From 60c6c6e3855dd2f3e7fbac08cd8a34cb8dd1f176 Mon Sep 17 00:00:00 2001 From: youssef-md Date: Wed, 5 Aug 2020 01:55:51 -0300 Subject: [PATCH 11/13] Log remaining routes from RoomActions --- app/utils/log/events.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/utils/log/events.js b/app/utils/log/events.js index d3024d44820..f9959386638 100644 --- a/app/utils/log/events.js +++ b/app/utils/log/events.js @@ -292,6 +292,8 @@ export default { RA_GO_MESSAGESPINNED: 'ra_go_messages_pinned', RA_GO_AUTOTRANSLATE: 'ra_go_autotranslate', RA_GO_NOTIFICATIONPREF: 'ra_go_notification_pref', + RA_GO_FORWARDLIVECHAT: 'ra_go_forward_livechat', + RA_GO_VISITORNAVIGATION: 'ra_go_visitor_navigation', RA_SHARE: 'ra_share', RA_LEAVE: 'ra_leave', RA_LEAVE_F: 'ra_leave_f', From 040ac1cf4d11d4f0e00655f80417ae01a81194f0 Mon Sep 17 00:00:00 2001 From: youssef-md Date: Wed, 5 Aug 2020 02:04:15 -0300 Subject: [PATCH 12/13] Log RoomAction toggle block user --- app/utils/log/events.js | 2 ++ app/views/RoomActionsView/index.js | 2 ++ 2 files changed, 4 insertions(+) diff --git a/app/utils/log/events.js b/app/utils/log/events.js index f9959386638..8cbf7337dd7 100644 --- a/app/utils/log/events.js +++ b/app/utils/log/events.js @@ -297,6 +297,8 @@ export default { RA_SHARE: 'ra_share', RA_LEAVE: 'ra_leave', RA_LEAVE_F: 'ra_leave_f', + RA_TOGGLE_BLOCK_USER: 'ra_toggle_block_user', + RA_TOGGLE_BLOCK_USER_F: 'ra_toggle_block_user_f', // ROOM INFO VIEW RI_GO_RI_EDIT: 'ri_go_ri_edit', diff --git a/app/views/RoomActionsView/index.js b/app/views/RoomActionsView/index.js index 9b373755f8f..13070fb49d3 100644 --- a/app/views/RoomActionsView/index.js +++ b/app/views/RoomActionsView/index.js @@ -515,12 +515,14 @@ class RoomActionsView extends React.Component { } toggleBlockUser = () => { + logEvent(events.RA_TOGGLE_BLOCK_USER); const { room } = this.state; const { rid, blocker } = room; const { member } = this.state; try { RocketChat.toggleBlockUser(rid, member._id, !blocker); } catch (e) { + logEvent(events.RA_TOGGLE_BLOCK_USER_F); log(e); } } From 6500a75dc22627b2e68bac395a3c44c115d6722a Mon Sep 17 00:00:00 2001 From: Diego Mello Date: Wed, 5 Aug 2020 10:07:50 -0300 Subject: [PATCH 13/13] Fix command event --- app/containers/MessageBox/index.js | 4 +- app/utils/log/events.js | 72 +----------------------------- 2 files changed, 4 insertions(+), 72 deletions(-) diff --git a/app/containers/MessageBox/index.js b/app/containers/MessageBox/index.js index a8e847c9cbe..cf13962407f 100644 --- a/app/containers/MessageBox/index.js +++ b/app/containers/MessageBox/index.js @@ -738,7 +738,7 @@ class MessageBox extends Component { Q.where('id', Q.like(`${ Q.sanitizeLikeString(command) }%`)) ).fetch(); if (slashCommand.length > 0) { - logEvent(events[`COMMAND_${ command.toUpperCase() }`]); + logEvent(events.COMMAND_RUN); try { const messageWithoutCommand = message.replace(/([^\s]+)/, '').trim(); const [{ appId }] = slashCommand; @@ -746,7 +746,7 @@ class MessageBox extends Component { RocketChat.runSlashCommand(command, roomId, messageWithoutCommand, triggerId, tmid || messageTmid); replyCancel(); } catch (e) { - logEvent(events[`COMMAND_${ command.toUpperCase() }_F`]); + logEvent(events.COMMAND_RUN_F); log(e); } this.clearInput(); diff --git a/app/utils/log/events.js b/app/utils/log/events.js index 8cbf7337dd7..c6d51d7e210 100644 --- a/app/utils/log/events.js +++ b/app/utils/log/events.js @@ -206,76 +206,8 @@ export default { ROOM_GO_ROOM_INFO: 'room_go_room_info', ROOM_GO_USER_INFO: 'room_go_user_info', ROOM_MENTION_GO_USER_INFO: 'room_mention_go_user_info', - COMMAND_SLACKBRIDGE_IMPORT: 'command_slackbridge_import', - COMMAND_SLACKBRIDGE_IMPORT_F: 'command_slackbridge_import_f', - COMMAND_ARCHIVE: 'command_archive', - COMMAND_ARCHIVE_F: 'command_archive_f', - COMMAND_GIMME: 'command_gimme', - COMMAND_GIMME_F: 'command_gimme_f', - COMMAND_LENNYFACE: 'command_lennyface', - COMMAND_LENNYFACE_F: 'command_lennyface_f', - COMMAND_SHRUG: 'command_shrug', - COMMAND_SHRUG_F: 'command_shrug_f', - COMMAND_TABLEFLIP: 'command_table_flip', - COMMAND_TABLEFLIP_F: 'command_table_flip_f', - COMMAND_UNFLIP: 'command_unflip', - COMMAND_UNFLIP_F: 'command_unflip_f', - COMMAND_CREATE: 'command_create', - COMMAND_CREATE_F: 'command_create_f', - COMMAND_HELP: 'command_help', - COMMAND_HELP_F: 'command_help_f', - COMMAND_HIDE: 'command_hide', - COMMAND_HIDE_F: 'command_hide_f', - COMMAND_INVITE: 'command_invite', - COMMAND_INVITE_F: 'command_invite_f', - COMMAND_INVITE_ALL_TO: 'command_invite_all_to', - COMMAND_INVITE_ALL_TO_F: 'command_invite_all_to_f', - COMMAND_INVITE_ALL_FROM: 'command_invite_all_from', - COMMAND_INVITE_ALL_FROM_F: 'command_invite_all_from_f', - COMMAND_JOIN: 'command_join', - COMMAND_JOIN_F: 'command_join_f', - COMMAND_KICK: 'command_kick', - COMMAND_KICK_F: 'command_kick_f', - COMMAND_LEAVE: 'command_leave', - COMMAND_LEAVE_F: 'command_leave_f', - COMMAND_PART: 'command_part', - COMMAND_PART_F: 'command_part_f', - COMMAND_ME: 'command_me', - COMMAND_ME_F: 'command_me_f', - COMMAND_MSG: 'command_msg', - COMMAND_MSG_F: 'command_msg_f', - COMMAND_MUTE: 'command_mute', - COMMAND_MUTE_F: 'command_mute_f', - COMMAND_UNMUTE: 'command_unmute', - COMMAND_UNMUTE_F: 'command_unmute_f', - COMMAND_STATUS: 'command_status', - COMMAND_STATUS_F: 'command_status_f', - COMMAND_TOPIC: 'command_topic', - COMMAND_TOPIC_F: 'command_topic_f', - COMMAND_UNARCHIVE: 'command_unarchive', - COMMAND_UNARCHIVE_F: 'command_unarchive_f', - COMMAND_GIPHY: 'command_giphy', - COMMAND_GIPHY_F: 'command_giphy_f', - COMMAND_KOKO: 'command_koko', - COMMAND_KOKO_F: 'command_koko_f', - COMMAND_WEBEX: 'command_webex', - COMMAND_WEBEX_F: 'command_webex_f', - COMMAND_ZOHO: 'command_zoho', - COMMAND_ZOHO_F: 'command_zoho_f', - COMMAND_POLL: 'command_poll', - COMMAND_POLL_F: 'command_poll_f', - COMMAND_GITHUB: 'command_github', - COMMAND_GITHUB_F: 'command_github_f', - COMMAND_NPM: 'command_npm', - COMMAND_NPM_F: 'command_npm_f', - COMMAND_DROPBOX_PAPER_CREATE: 'command_dropbox_paper_create', - COMMAND_DROPBOX_PAPER_CREATE_F: 'command_dropbox_paper_create_f', - COMMAND_DROPBOX_PAPER_SEARCH: 'command_dropbox_paper_search', - COMMAND_DROPBOX_PAPER_SEARCH_F: 'command_dropbox_paper_search_f', - COMMAND_MATH: 'command_math', - COMMAND_MATH_F: 'command_math_f', - COMMAND_JITSI: 'command_jitsi', - COMMAND_JITSI_F: 'command_jitsi_f', + COMMAND_RUN: 'command_run', + COMMAND_RUN_F: 'command_run_f', // ROOM ACTIONS VIEW RA_JITSI_VIDEO: 'ra_jitsi_video',