From 8e9d619abf88c0a9232e16dcd2b76d9e6b722dd0 Mon Sep 17 00:00:00 2001
From: Marcos Spessatto Defendi <marcos.defendi@ulbra.inf.br>
Date: Tue, 20 Nov 2018 20:29:21 -0200
Subject: [PATCH]  Convert rocketchat-livestream to main module structure
 (#12679)

* Exposing popout global variable

* Convert rocketchat-livestream to main module structure

* disable eslint in popout file

* Adding file that was forgotten
---
 .../rocketchat-livestream/client/index.js     | 10 ++++++++
 .../rocketchat-livestream/client/oauth.js     |  1 +
 .../rocketchat-livestream/client/tabBar.js    |  1 +
 .../client/views/broadcastView.js             |  1 +
 .../client/views/liveStreamTab.js             |  5 ++--
 packages/rocketchat-livestream/package.js     | 25 +++----------------
 .../server/functions/saveStreamingOptions.js  |  1 +
 .../rocketchat-livestream/server/index.js     |  3 +++
 .../rocketchat-livestream/server/methods.js   |  1 +
 .../server/models/Rooms.js                    |  2 ++
 .../rocketchat-livestream/server/routes.js    |  1 +
 .../rocketchat-livestream/server/settings.js  |  1 +
 .../rocketchat-ui/client/views/app/popout.js  |  4 +--
 packages/rocketchat-ui/package.js             |  1 +
 14 files changed, 31 insertions(+), 26 deletions(-)
 create mode 100644 packages/rocketchat-livestream/client/index.js

diff --git a/packages/rocketchat-livestream/client/index.js b/packages/rocketchat-livestream/client/index.js
new file mode 100644
index 00000000000..b118255a4cb
--- /dev/null
+++ b/packages/rocketchat-livestream/client/index.js
@@ -0,0 +1,10 @@
+import './styles/liveStreamTab.css';
+import './views/liveStreamTab.html';
+import './views/liveStreamTab';
+import './views/livestreamBroadcast.html';
+import './views/livestreamBroadcast';
+import './views/broadcastView.html';
+import './views/broadcastView';
+import './views/liveStreamView.html';
+import './views/liveStreamView';
+import './tabBar';
diff --git a/packages/rocketchat-livestream/client/oauth.js b/packages/rocketchat-livestream/client/oauth.js
index acc674a30b8..eb9b5358be4 100644
--- a/packages/rocketchat-livestream/client/oauth.js
+++ b/packages/rocketchat-livestream/client/oauth.js
@@ -1,4 +1,5 @@
 import { Meteor } from 'meteor/meteor';
+import { RocketChat } from 'meteor/rocketchat:lib';
 
 export const close = (popup) => new Promise(function(resolve) {
 	const checkInterval = setInterval(() => {
diff --git a/packages/rocketchat-livestream/client/tabBar.js b/packages/rocketchat-livestream/client/tabBar.js
index 4832c439b16..7741f96a3e3 100644
--- a/packages/rocketchat-livestream/client/tabBar.js
+++ b/packages/rocketchat-livestream/client/tabBar.js
@@ -1,6 +1,7 @@
 import { Meteor } from 'meteor/meteor';
 import { Tracker } from 'meteor/tracker';
 import { Session } from 'meteor/session';
+import { RocketChat } from 'meteor/rocketchat:lib';
 
 Meteor.startup(function() {
 	Tracker.autorun(function() {
diff --git a/packages/rocketchat-livestream/client/views/broadcastView.js b/packages/rocketchat-livestream/client/views/broadcastView.js
index 578e041f3f0..e2feea2e05f 100644
--- a/packages/rocketchat-livestream/client/views/broadcastView.js
+++ b/packages/rocketchat-livestream/client/views/broadcastView.js
@@ -2,6 +2,7 @@ import { Meteor } from 'meteor/meteor';
 import { ReactiveVar } from 'meteor/reactive-var';
 import { Session } from 'meteor/session';
 import { Template } from 'meteor/templating';
+import { RocketChat, handleError } from 'meteor/rocketchat:lib';
 
 const getMedia = () => navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
 const createAndConnect = (url) => {
diff --git a/packages/rocketchat-livestream/client/views/liveStreamTab.js b/packages/rocketchat-livestream/client/views/liveStreamTab.js
index 80af0ee2b75..ebd843664b0 100644
--- a/packages/rocketchat-livestream/client/views/liveStreamTab.js
+++ b/packages/rocketchat-livestream/client/views/liveStreamTab.js
@@ -1,4 +1,3 @@
-/* globals popout */
 import { Meteor } from 'meteor/meteor';
 import { ReactiveVar } from 'meteor/reactive-var';
 import { Blaze } from 'meteor/blaze';
@@ -7,8 +6,8 @@ import { Template } from 'meteor/templating';
 import { TAPi18n } from 'meteor/tap:i18n';
 import toastr from 'toastr';
 import { auth } from '../oauth.js';
-import { RocketChatAnnouncement } from 'meteor/rocketchat:lib';
-
+import { RocketChatAnnouncement, RocketChat, handleError } from 'meteor/rocketchat:lib';
+import { popout, t } from 'meteor/rocketchat:ui';
 
 export const call = (...args) => new Promise(function(resolve, reject) {
 	Meteor.call(...args, function(err, result) {
diff --git a/packages/rocketchat-livestream/package.js b/packages/rocketchat-livestream/package.js
index dc0ba5a76b7..6e2c55f39a0 100644
--- a/packages/rocketchat-livestream/package.js
+++ b/packages/rocketchat-livestream/package.js
@@ -6,31 +6,14 @@ Package.describe({
 });
 
 Package.onUse(function(api) {
-	api.use('templating', 'client');
 	api.use([
 		'ecmascript',
 		'rocketchat:lib',
+		'rocketchat:ui',
+		'templating',
 	]);
-	api.addFiles([
-		'client/views/liveStreamTab.html',
-		'client/views/livestreamBroadcast.html',
-		'client/views/livestreamBroadcast.js',
-		'client/views/liveStreamTab.js',
-		'client/views/broadcastView.html',
-		'client/views/broadcastView.js',
-		'client/styles/liveStreamTab.css',
-		'client/views/liveStreamView.html',
-		'client/views/liveStreamView.js',
-		'client/tabBar.js',
-	], 'client');
-
-	api.addFiles([
-		'server/index.js',
-		'server/models/Rooms.js',
-		'server/functions/saveStreamingOptions.js',
-		'server/settings.js',
-	], 'server');
-
+	api.mainModule('client/index.js', 'client');
+	api.mainModule('server/index.js', 'server');
 	Npm.depends({
 		googleapis: '25.0.0',
 	});
diff --git a/packages/rocketchat-livestream/server/functions/saveStreamingOptions.js b/packages/rocketchat-livestream/server/functions/saveStreamingOptions.js
index f215d28309e..f0a2d013a4d 100644
--- a/packages/rocketchat-livestream/server/functions/saveStreamingOptions.js
+++ b/packages/rocketchat-livestream/server/functions/saveStreamingOptions.js
@@ -1,5 +1,6 @@
 import { Meteor } from 'meteor/meteor';
 import { Match, check } from 'meteor/check';
+import { RocketChat } from 'meteor/rocketchat:lib';
 
 RocketChat.saveStreamingOptions = function(rid, options) {
 	if (!Match.test(rid, String)) {
diff --git a/packages/rocketchat-livestream/server/index.js b/packages/rocketchat-livestream/server/index.js
index 63ea14561bf..0f5c850442a 100644
--- a/packages/rocketchat-livestream/server/index.js
+++ b/packages/rocketchat-livestream/server/index.js
@@ -1,2 +1,5 @@
+import './models/Rooms';
+import './functions/saveStreamingOptions';
 import './routes.js';
 import './methods.js';
+import './settings';
diff --git a/packages/rocketchat-livestream/server/methods.js b/packages/rocketchat-livestream/server/methods.js
index 66e9be9c090..3625c74ceb5 100644
--- a/packages/rocketchat-livestream/server/methods.js
+++ b/packages/rocketchat-livestream/server/methods.js
@@ -1,4 +1,5 @@
 import { Meteor } from 'meteor/meteor';
+import { RocketChat } from 'meteor/rocketchat:lib';
 import { createLiveStream, statusLiveStream, statusStreamLiveStream, getBroadcastStatus, setBroadcastStatus } from './functions/livestream';
 
 const selectLivestreamSettings = (user) => user && user.settings && user.settings.livestream;
diff --git a/packages/rocketchat-livestream/server/models/Rooms.js b/packages/rocketchat-livestream/server/models/Rooms.js
index b0b7a3be672..24857be9004 100644
--- a/packages/rocketchat-livestream/server/models/Rooms.js
+++ b/packages/rocketchat-livestream/server/models/Rooms.js
@@ -1,3 +1,5 @@
+import { RocketChat } from 'meteor/rocketchat:lib';
+
 RocketChat.models.Rooms.setStreamingOptionsById = function(_id, streamingOptions) {
 	const update = {
 		$set: {
diff --git a/packages/rocketchat-livestream/server/routes.js b/packages/rocketchat-livestream/server/routes.js
index 07c43972fa7..5806dc03174 100644
--- a/packages/rocketchat-livestream/server/routes.js
+++ b/packages/rocketchat-livestream/server/routes.js
@@ -1,4 +1,5 @@
 import { Meteor } from 'meteor/meteor';
+import { RocketChat } from 'meteor/rocketchat:lib';
 import google from 'googleapis';
 const { OAuth2 } = google.auth;
 
diff --git a/packages/rocketchat-livestream/server/settings.js b/packages/rocketchat-livestream/server/settings.js
index 9fc05da95eb..f5ba52b6343 100644
--- a/packages/rocketchat-livestream/server/settings.js
+++ b/packages/rocketchat-livestream/server/settings.js
@@ -1,4 +1,5 @@
 import { Meteor } from 'meteor/meteor';
+import { RocketChat } from 'meteor/rocketchat:lib';
 
 Meteor.startup(function() {
 	RocketChat.settings.addGroup('LiveStream & Broadcasting', function() {
diff --git a/packages/rocketchat-ui/client/views/app/popout.js b/packages/rocketchat-ui/client/views/app/popout.js
index 7c51e042194..2450dd89225 100644
--- a/packages/rocketchat-ui/client/views/app/popout.js
+++ b/packages/rocketchat-ui/client/views/app/popout.js
@@ -1,9 +1,9 @@
-/* globals popout */
+/* eslint-disable */
 import { Blaze } from 'meteor/blaze';
 import { ReactiveVar } from 'meteor/reactive-var';
 import { Template } from 'meteor/templating';
 
-this.popout = {
+popout = {
 	context: null,
 	isAudioOnly: false,
 	showVideoControls: true,
diff --git a/packages/rocketchat-ui/package.js b/packages/rocketchat-ui/package.js
index 48ca16184bc..0ac4021d77b 100644
--- a/packages/rocketchat-ui/package.js
+++ b/packages/rocketchat-ui/package.js
@@ -156,4 +156,5 @@ Package.onUse(function(api) {
 	api.export('ChatMessages', 'client');
 	api.export('RoomManager', 'client');
 	api.export('getAvatarUrlFromUsername');
+	api.export('popout', 'client');
 });
-- 
GitLab