diff --git a/packages/rocketchat-lib/lib/roomTypes/conversation.js b/packages/rocketchat-lib/lib/roomTypes/conversation.js index 66d737861d05..f7288e875edb 100644 --- a/packages/rocketchat-lib/lib/roomTypes/conversation.js +++ b/packages/rocketchat-lib/lib/roomTypes/conversation.js @@ -1,6 +1,5 @@ import { Meteor } from 'meteor/meteor'; -import { getUserPreference } from 'meteor/rocketchat:utils'; -import { RoomTypeConfig } from '../RoomTypeConfig'; +import { getUserPreference, RoomTypeConfig } from 'meteor/rocketchat:utils'; export class ConversationRoomType extends RoomTypeConfig { constructor() { diff --git a/packages/rocketchat-lib/lib/roomTypes/direct.js b/packages/rocketchat-lib/lib/roomTypes/direct.js index 3530f4a1930a..e229addaa1bc 100644 --- a/packages/rocketchat-lib/lib/roomTypes/direct.js +++ b/packages/rocketchat-lib/lib/roomTypes/direct.js @@ -2,10 +2,9 @@ import { Meteor } from 'meteor/meteor'; import { Session } from 'meteor/session'; import { ChatRoom, Subscriptions } from 'meteor/rocketchat:models'; import { openRoom } from 'meteor/rocketchat:ui-utils'; -import { getUserPreference } from 'meteor/rocketchat:utils'; +import { getUserPreference, RoomTypeConfig, RoomTypeRouteConfig, RoomSettingsEnum, UiTextContext } from 'meteor/rocketchat:utils'; import { hasPermission, hasAtLeastOnePermission } from 'meteor/rocketchat:authorization'; import { settings } from 'meteor/rocketchat:settings'; -import { RoomTypeConfig, RoomTypeRouteConfig, RoomSettingsEnum, UiTextContext } from '../RoomTypeConfig'; export class DirectMessageRoomRoute extends RoomTypeRouteConfig { constructor() { diff --git a/packages/rocketchat-lib/lib/roomTypes/favorite.js b/packages/rocketchat-lib/lib/roomTypes/favorite.js index 4aac1fd098b0..04c8af5aa7de 100644 --- a/packages/rocketchat-lib/lib/roomTypes/favorite.js +++ b/packages/rocketchat-lib/lib/roomTypes/favorite.js @@ -1,7 +1,6 @@ import { Meteor } from 'meteor/meteor'; import { settings } from 'meteor/rocketchat:settings'; -import { getUserPreference } from 'meteor/rocketchat:utils'; -import { RoomTypeConfig } from '../RoomTypeConfig'; +import { getUserPreference, RoomTypeConfig } from 'meteor/rocketchat:utils'; export class FavoriteRoomType extends RoomTypeConfig { constructor() { diff --git a/packages/rocketchat-lib/lib/roomTypes/private.js b/packages/rocketchat-lib/lib/roomTypes/private.js index 3618072f8729..b17ef7dc98d0 100644 --- a/packages/rocketchat-lib/lib/roomTypes/private.js +++ b/packages/rocketchat-lib/lib/roomTypes/private.js @@ -3,8 +3,7 @@ import { ChatRoom } from 'meteor/rocketchat:models'; import { openRoom } from 'meteor/rocketchat:ui-utils'; import { settings } from 'meteor/rocketchat:settings'; import { hasAtLeastOnePermission, hasPermission } from 'meteor/rocketchat:authorization'; -import { getUserPreference } from 'meteor/rocketchat:utils'; -import { RoomSettingsEnum, RoomTypeConfig, RoomTypeRouteConfig, UiTextContext } from '../RoomTypeConfig'; +import { getUserPreference, RoomSettingsEnum, RoomTypeConfig, RoomTypeRouteConfig, UiTextContext } from 'meteor/rocketchat:utils'; export class PrivateRoomRoute extends RoomTypeRouteConfig { constructor() { diff --git a/packages/rocketchat-lib/lib/roomTypes/public.js b/packages/rocketchat-lib/lib/roomTypes/public.js index c69a8086674c..4f55139602b6 100644 --- a/packages/rocketchat-lib/lib/roomTypes/public.js +++ b/packages/rocketchat-lib/lib/roomTypes/public.js @@ -3,8 +3,7 @@ import { openRoom } from 'meteor/rocketchat:ui-utils'; import { ChatRoom } from 'meteor/rocketchat:models'; import { settings } from 'meteor/rocketchat:settings'; import { hasAtLeastOnePermission } from 'meteor/rocketchat:authorization'; -import { getUserPreference } from 'meteor/rocketchat:utils'; -import { RoomTypeConfig, RoomTypeRouteConfig, RoomSettingsEnum, UiTextContext } from '../RoomTypeConfig'; +import { getUserPreference, RoomTypeConfig, RoomTypeRouteConfig, RoomSettingsEnum, UiTextContext } from 'meteor/rocketchat:utils'; export class PublicRoomRoute extends RoomTypeRouteConfig { constructor() { diff --git a/packages/rocketchat-lib/lib/roomTypes/unread.js b/packages/rocketchat-lib/lib/roomTypes/unread.js index 30c287bbe0b9..9e6588ab0c1d 100644 --- a/packages/rocketchat-lib/lib/roomTypes/unread.js +++ b/packages/rocketchat-lib/lib/roomTypes/unread.js @@ -1,6 +1,5 @@ import { Meteor } from 'meteor/meteor'; -import { getUserPreference } from 'meteor/rocketchat:utils'; -import { RoomTypeConfig } from '../RoomTypeConfig'; +import { getUserPreference, RoomTypeConfig } from 'meteor/rocketchat:utils'; export class UnreadRoomType extends RoomTypeConfig { constructor() { diff --git a/packages/rocketchat-lib/package.js b/packages/rocketchat-lib/package.js index 84fb4cd31b8b..09f1602961c6 100644 --- a/packages/rocketchat-lib/package.js +++ b/packages/rocketchat-lib/package.js @@ -245,7 +245,6 @@ Package.onUse(function(api) { api.addFiles('client/lib/RocketChatAnnouncement.js', 'client'); api.addFiles('client/lib/cachedCollection.js', 'client'); api.addFiles('client/lib/openRoom.js', 'client'); - api.addFiles('client/lib/roomExit.js', 'client'); api.addFiles('client/lib/settings.js', 'client'); api.addFiles('client/lib/roomTypes.js', 'client'); api.addFiles('client/lib/userRoles.js', 'client'); diff --git a/packages/rocketchat-lib/server/functions/sendMessage.js b/packages/rocketchat-lib/server/functions/sendMessage.js index b0c16f247f37..cc389040ec12 100644 --- a/packages/rocketchat-lib/server/functions/sendMessage.js +++ b/packages/rocketchat-lib/server/functions/sendMessage.js @@ -4,6 +4,7 @@ import { settings } from 'meteor/rocketchat:settings'; import { callbacks } from 'meteor/rocketchat:callbacks'; import { Messages } from 'meteor/rocketchat:models'; import { Apps } from 'meteor/rocketchat:apps'; +import { Markdown } from 'meteor/rocketchat:markdown'; const objectMaybeIncluding = (types) => Match.Where((value) => { Object.keys(types).forEach((field) => { @@ -147,14 +148,14 @@ export const sendMessage = function(user, message, room, upsert = false) { if (message.parseUrls !== false) { message.html = message.msg; - message = RocketChat.Markdown.code(message); + message = Markdown.code(message); const urls = message.html.match(/([A-Za-z]{3,9}):\/\/([-;:&=\+\$,\w]+@{1})?([-A-Za-z0-9\.]+)+:?(\d+)?((\/[-\+=!:~%\/\.@\,\(\)\w]*)?\??([-\+=&!:;%@\/\.\,\w]+)?(?:#([^\s\)]+))?)?/g); if (urls) { message.urls = urls.map((url) => ({ url })); } - message = RocketChat.Markdown.mountTokensBack(message, false); + message = Markdown.mountTokensBack(message, false); message.msg = message.html; delete message.html; delete message.tokens; @@ -199,4 +200,4 @@ export const sendMessage = function(user, message, room, upsert = false) { } }; -RocketChat.sendMessage = sendMessage; +// RocketChat.sendMessage = sendMessage; diff --git a/packages/rocketchat-lib/server/lib/interceptDirectReplyEmails.js b/packages/rocketchat-lib/server/lib/interceptDirectReplyEmails.js index 05aaf79aa4f6..999866199cf5 100644 --- a/packages/rocketchat-lib/server/lib/interceptDirectReplyEmails.js +++ b/packages/rocketchat-lib/server/lib/interceptDirectReplyEmails.js @@ -1,7 +1,7 @@ import { Meteor } from 'meteor/meteor'; import { settings } from 'meteor/rocketchat:settings'; import IMAP from 'imap'; -import POP3 from 'poplib'; +import POP3Lib from 'poplib'; import { simpleParser } from 'mailparser'; import { processDirectEmail } from '.'; @@ -142,7 +142,7 @@ export class IMAPIntercepter { export class POP3Intercepter { constructor() { - this.pop3 = new POP3(settings.get('Direct_Reply_Port'), settings.get('Direct_Reply_Host'), { + this.pop3 = new POP3Lib(settings.get('Direct_Reply_Port'), settings.get('Direct_Reply_Host'), { enabletls: !settings.get('Direct_Reply_IgnoreTLS'), debug: settings.get('Direct_Reply_Debug') ? console.log : false, }); @@ -236,6 +236,7 @@ export class POP3Intercepter { processDirectEmail(email); } } +export let POP3; export class POP3Helper { constructor() { @@ -245,11 +246,11 @@ export class POP3Helper { start() { // run every x-minutes if (settings.get('Direct_Reply_Frequency')) { - RocketChat.POP3 = new POP3Intercepter(); + POP3 = new POP3Intercepter(); this.running = Meteor.setInterval(() => { // get new emails and process - RocketChat.POP3 = new POP3Intercepter(); + POP3 = new POP3Intercepter(); }, Math.max(settings.get('Direct_Reply_Frequency') * 60 * 1000, 2 * 60 * 1000)); } } diff --git a/packages/rocketchat-lib/server/startup/settingsOnLoadDirectReply.js b/packages/rocketchat-lib/server/startup/settingsOnLoadDirectReply.js index 8886d01c331e..996faca39eb3 100644 --- a/packages/rocketchat-lib/server/startup/settingsOnLoadDirectReply.js +++ b/packages/rocketchat-lib/server/startup/settingsOnLoadDirectReply.js @@ -2,6 +2,10 @@ import { Meteor } from 'meteor/meteor'; import { settings } from 'meteor/rocketchat:settings'; import _ from 'underscore'; import { IMAPIntercepter, POP3Helper } from '../lib/interceptDirectReplyEmails.js'; +import { POP3 } from '../lib/interceptDirectReplyEmails'; + +let IMAP; +let _POP3Helper; const startEmailIntercepter = _.debounce(Meteor.bindEnvironment(function() { console.log('Starting Email Intercepter...'); @@ -9,59 +13,59 @@ const startEmailIntercepter = _.debounce(Meteor.bindEnvironment(function() { if (settings.get('Direct_Reply_Enable') && settings.get('Direct_Reply_Protocol') && settings.get('Direct_Reply_Host') && settings.get('Direct_Reply_Port') && settings.get('Direct_Reply_Username') && settings.get('Direct_Reply_Password')) { if (settings.get('Direct_Reply_Protocol') === 'IMAP') { // stop already running IMAP instance - if (RocketChat.IMAP && RocketChat.IMAP.isActive()) { + if (IMAP && IMAP.isActive()) { console.log('Disconnecting already running IMAP instance...'); - RocketChat.IMAP.stop(Meteor.bindEnvironment(function() { + IMAP.stop(Meteor.bindEnvironment(function() { console.log('Starting new IMAP instance......'); - RocketChat.IMAP = new IMAPIntercepter(); - RocketChat.IMAP.start(); + IMAP = new IMAPIntercepter(); + IMAP.start(); return true; })); - } else if (RocketChat.POP3 && RocketChat.POP3Helper && RocketChat.POP3Helper.isActive()) { + } else if (POP3 && _POP3Helper && _POP3Helper.isActive()) { console.log('Disconnecting already running POP instance...'); - RocketChat.POP3Helper.stop(Meteor.bindEnvironment(function() { + _POP3Helper.stop(Meteor.bindEnvironment(function() { console.log('Starting new IMAP instance......'); - RocketChat.IMAP = new IMAPIntercepter(); - RocketChat.IMAP.start(); + IMAP = new IMAPIntercepter(); + IMAP.start(); return true; })); } else { console.log('Starting new IMAP instance......'); - RocketChat.IMAP = new IMAPIntercepter(); - RocketChat.IMAP.start(); + IMAP = new IMAPIntercepter(); + IMAP.start(); return true; } } else if (settings.get('Direct_Reply_Protocol') === 'POP') { // stop already running POP instance - if (RocketChat.POP3 && RocketChat.POP3Helper && RocketChat.POP3Helper.isActive()) { + if (POP3 && _POP3Helper && _POP3Helper.isActive()) { console.log('Disconnecting already running POP instance...'); - RocketChat.POP3Helper.stop(Meteor.bindEnvironment(function() { + _POP3Helper.stop(Meteor.bindEnvironment(function() { console.log('Starting new POP instance......'); - RocketChat.POP3Helper = new POP3Helper(); - RocketChat.POP3Helper.start(); + _POP3Helper = new POP3Helper(); + _POP3Helper.start(); return true; })); - } else if (RocketChat.IMAP && RocketChat.IMAP.isActive()) { + } else if (IMAP && IMAP.isActive()) { console.log('Disconnecting already running IMAP instance...'); - RocketChat.IMAP.stop(Meteor.bindEnvironment(function() { + IMAP.stop(Meteor.bindEnvironment(function() { console.log('Starting new POP instance......'); - RocketChat.POP3Helper = new POP3Helper(); - RocketChat.POP3Helper.start(); + _POP3Helper = new POP3Helper(); + _POP3Helper.start(); return true; })); } else { console.log('Starting new POP instance......'); - RocketChat.POP3Helper = new POP3Helper(); - RocketChat.POP3Helper.start(); + _POP3Helper = new POP3Helper(); + _POP3Helper.start(); return true; } } - } else if (RocketChat.IMAP && RocketChat.IMAP.isActive()) { + } else if (IMAP && IMAP.isActive()) { // stop IMAP instance - RocketChat.IMAP.stop(); - } else if (RocketChat.POP3 && RocketChat.POP3Helper.isActive()) { + IMAP.stop(); + } else if (POP3 && _POP3Helper.isActive()) { // stop POP3 instance - RocketChat.POP3Helper.stop(); + _POP3Helper.stop(); } }), 1000); diff --git a/packages/rocketchat-push-notifications/package.js b/packages/rocketchat-push-notifications/package.js index b920d7734a26..63e0579edac3 100644 --- a/packages/rocketchat-push-notifications/package.js +++ b/packages/rocketchat-push-notifications/package.js @@ -15,6 +15,7 @@ Package.onUse(function(api) { 'rocketchat:settings', 'rocketchat:metrics', 'rocketchat:ui', + 'rocketchat:assets', 'rocketchat:push', 'templating', ]); diff --git a/packages/rocketchat-push-notifications/server/lib/PushNotification.js b/packages/rocketchat-push-notifications/server/lib/PushNotification.js index e1da63d9a9f4..d9aa81bc1d20 100644 --- a/packages/rocketchat-push-notifications/server/lib/PushNotification.js +++ b/packages/rocketchat-push-notifications/server/lib/PushNotification.js @@ -1,6 +1,7 @@ import { Push } from 'meteor/rocketchat:push'; import { settings } from 'meteor/rocketchat:settings'; import { metrics } from 'meteor/rocketchat:metrics'; +import { RocketChatAssets } from 'meteor/rocketchat:assets'; export class PushNotification { getNotificationId(roomId) { @@ -39,7 +40,7 @@ export class PushNotification { gcm: { style: 'inbox', summaryText: '%n% new messages', - image: RocketChat.Assets.getURL('Assets_favicon_192'), + image: RocketChatAssets.getURL('Assets_favicon_192'), }, }; diff --git a/packages/rocketchat-ui-flextab/client/flexTabBar.js b/packages/rocketchat-ui-flextab/client/flexTabBar.js index 329c23b02142..1e1eec8849e1 100644 --- a/packages/rocketchat-ui-flextab/client/flexTabBar.js +++ b/packages/rocketchat-ui-flextab/client/flexTabBar.js @@ -3,9 +3,8 @@ import { ReactiveVar } from 'meteor/reactive-var'; import { Session } from 'meteor/session'; import { Template } from 'meteor/templating'; import { TAPi18n } from 'meteor/tap:i18n'; -import { RocketChat } from 'meteor/rocketchat:lib'; import { hasAllPermission } from 'meteor/rocketchat:authorization'; -import { popover } from 'meteor/rocketchat:ui-utils'; +import { popover, TabBar, Layout } from 'meteor/rocketchat:ui-utils'; import { t } from 'meteor/rocketchat:utils'; import _ from 'underscore'; @@ -63,7 +62,7 @@ Template.flexTabBar.helpers({ }, ...commonHelpers, buttons() { - return RocketChat.TabBar.getButtons().filter((button) => + return TabBar.getButtons().filter((button) => filterButtons(button, this.anonymous, this.data && this.data.rid) ); }, @@ -82,7 +81,7 @@ Template.flexTabBar.helpers({ }, embeddedVersion() { - return RocketChat.Layout.isEmbedded(); + return Layout.isEmbedded(); }, }); @@ -170,8 +169,8 @@ Template.RoomsActionTab.events({ 'click .js-more'(e, t) { $(e.currentTarget).blur(); e.preventDefault(); - const buttons = RocketChat.TabBar.getButtons().filter((button) => filterButtons(button, t.anonymous, t.data.rid)); - const groups = [{ items:(t.small.get() ? buttons : buttons.slice(RocketChat.TabBar.size)).map((item) => { + const buttons = TabBar.getButtons().filter((button) => filterButtons(button, t.anonymous, t.data.rid)); + const groups = [{ items:(t.small.get() ? buttons : buttons.slice(TabBar.size)).map((item) => { item.name = TAPi18n.__(item.i18nTitle); item.action = action; return item; @@ -183,7 +182,7 @@ Template.RoomsActionTab.events({ popoverClass: 'message-box', data: { rid: this._id, - buttons: t.small.get() ? buttons : buttons.slice(RocketChat.TabBar.size), + buttons: t.small.get() ? buttons : buttons.slice(TabBar.size), tabBar: t.tabBar, }, currentTarget: e.currentTarget, @@ -225,17 +224,17 @@ Template.RoomsActionTab.helpers({ if (Template.instance().small.get()) { return []; } - const buttons = RocketChat.TabBar.getButtons() + const buttons = TabBar.getButtons() .filter((button) => filterButtons(button, Template.instance().anonymous, Template.instance().data.rid)); - return buttons.length <= RocketChat.TabBar.size ? buttons : buttons.slice(0, RocketChat.TabBar.size); + return buttons.length <= TabBar.size ? buttons : buttons.slice(0, TabBar.size); }, moreButtons() { if (Template.instance().small.get()) { return true; } - const buttons = RocketChat.TabBar.getButtons() + const buttons = TabBar.getButtons() .filter((button) => filterButtons(button, Template.instance().anonymous, Template.instance().data.rid)); - return buttons.length > RocketChat.TabBar.size; + return buttons.length > TabBar.size; }, }); diff --git a/packages/rocketchat-ui-utils/client/index.js b/packages/rocketchat-ui-utils/client/index.js index c440cbd9091c..8c38ae822e42 100644 --- a/packages/rocketchat-ui-utils/client/index.js +++ b/packages/rocketchat-ui-utils/client/index.js @@ -24,4 +24,4 @@ export { messageProperties } from '../lib/MessageProperties'; export { MessageTypes } from '../lib/MessageTypes'; export { alerts } from './lib/alerts'; export { Message } from '../lib/Message'; -export { currentTracker, openRoom } from './lib/openRoom'; +export { openRoom } from './lib/openRoom'; diff --git a/packages/rocketchat-ui-utils/client/lib/openRoom.js b/packages/rocketchat-ui-utils/client/lib/openRoom.js index 2bdde637a251..4b44e721dc69 100644 --- a/packages/rocketchat-ui-utils/client/lib/openRoom.js +++ b/packages/rocketchat-ui-utils/client/lib/openRoom.js @@ -12,7 +12,7 @@ import { callbacks } from 'meteor/rocketchat:callbacks'; import { roomTypes, handleError } from 'meteor/rocketchat:utils'; import _ from 'underscore'; -export let currentTracker = undefined; +window.currentTracker = undefined; let loadingDom; function getDomOfLoading() { @@ -45,7 +45,7 @@ export const openRoom = function(type, name) { Session.set('openedRoom', null); return Meteor.defer(() => - currentTracker = Tracker.autorun(function(c) { + window.currentTracker = Tracker.autorun(function(c) { const user = Meteor.user(); if ((user && user.username == null) || (user == null && settings.get('Accounts_AllowAnonymousRead') === false)) { BlazeLayout.render('main'); @@ -56,9 +56,8 @@ export const openRoom = function(type, name) { replaceCenterDomBy(getDomOfLoading()); return; } - - if (currentTracker) { - currentTracker = undefined; + if (window.currentTracker) { + window.currentTracker = undefined; } c.stop(); diff --git a/packages/rocketchat-utils/lib/RoomTypesCommon.js b/packages/rocketchat-utils/lib/RoomTypesCommon.js index ee17d5bbb858..b02476a229e5 100644 --- a/packages/rocketchat-utils/lib/RoomTypesCommon.js +++ b/packages/rocketchat-utils/lib/RoomTypesCommon.js @@ -1,6 +1,7 @@ import { Meteor } from 'meteor/meteor'; import { RoomTypeConfig } from './RoomTypeConfig'; import { FlowRouter } from 'meteor/kadira:flow-router'; +import { roomExit } from './roomExit'; export class RoomTypesCommon { constructor() { diff --git a/packages/rocketchat-lib/client/lib/roomExit.js b/packages/rocketchat-utils/lib/roomExit.js similarity index 87% rename from packages/rocketchat-lib/client/lib/roomExit.js rename to packages/rocketchat-utils/lib/roomExit.js index 89139fc589bc..bd9b1cee0b72 100644 --- a/packages/rocketchat-lib/client/lib/roomExit.js +++ b/packages/rocketchat-utils/lib/roomExit.js @@ -1,9 +1,8 @@ import { Blaze } from 'meteor/blaze'; import { BlazeLayout } from 'meteor/kadira:blaze-layout'; import { callbacks } from 'meteor/rocketchat:callbacks'; -import { currentTracker } from 'meteor/rocketchat:ui-utils'; -this.roomExit = function() { +export const roomExit = function() { // 7370 - Close flex-tab when opening a room on mobile UI if (window.matchMedia('(max-width: 500px)').matches) { const flex = document.querySelector('.flex-tab'); @@ -17,8 +16,8 @@ this.roomExit = function() { center: 'none', }); - if (typeof currentTracker !== 'undefined') { - currentTracker.stop(); + if (typeof window.currentTracker !== 'undefined') { + window.currentTracker.stop(); } const mainNode = document.querySelector('.main-content'); if (mainNode == null) { diff --git a/packages/rocketchat-utils/package.js b/packages/rocketchat-utils/package.js index 71c46c9a83c1..d8e8a2037ac2 100644 --- a/packages/rocketchat-utils/package.js +++ b/packages/rocketchat-utils/package.js @@ -9,7 +9,9 @@ Package.onUse(function(api) { 'ecmascript', 'tap:i18n', 'kadira:flow-router', + 'kadira:blaze-layout', 'rocketchat:version', + 'rocketchat:callbacks', 'rocketchat:models', 'rocketchat:settings', ]);