@webex/plugin-meetings 3.0.0-beta.94 → 3.0.0-beta.95
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/breakouts/breakout.js +4 -3
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/index.js +83 -52
- package/dist/breakouts/index.js.map +1 -1
- package/dist/constants.js +3 -1
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/index.js +19 -14
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +27 -3
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +59 -2
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/util.js +0 -9
- package/dist/meeting/util.js.map +1 -1
- package/dist/types/constants.d.ts +2 -0
- package/dist/types/controls-options-manager/index.d.ts +1 -1
- package/dist/types/meeting/in-meeting-actions.d.ts +26 -2
- package/package.json +19 -19
- package/src/breakouts/breakout.ts +1 -0
- package/src/breakouts/index.ts +33 -5
- package/src/constants.ts +2 -0
- package/src/controls-options-manager/index.ts +13 -10
- package/src/meeting/in-meeting-actions.ts +52 -4
- package/src/meeting/index.ts +65 -4
- package/src/meeting/util.ts +0 -11
- package/test/unit/spec/breakouts/index.ts +83 -103
- package/test/unit/spec/controls-options-manager/index.js +8 -1
- package/test/unit/spec/meeting/in-meeting-actions.ts +26 -2
- package/test/unit/spec/meeting/index.js +74 -3
- package/test/unit/spec/meeting/utils.js +0 -21
|
@@ -42,9 +42,10 @@ var Breakout = _webexCore.WebexPlugin.extend({
|
|
|
42
42
|
sessionId: 'string',
|
|
43
43
|
sessionType: 'string',
|
|
44
44
|
groupId: 'string',
|
|
45
|
-
url: 'string'
|
|
45
|
+
url: 'string',
|
|
46
|
+
// where to send requests to
|
|
47
|
+
requestedLastModifiedTime: 'string'
|
|
46
48
|
},
|
|
47
|
-
|
|
48
49
|
derived: {
|
|
49
50
|
isMain: {
|
|
50
51
|
cache: false,
|
|
@@ -168,7 +169,7 @@ var Breakout = _webexCore.WebexPlugin.extend({
|
|
|
168
169
|
sessionId: this.sessionId
|
|
169
170
|
});
|
|
170
171
|
},
|
|
171
|
-
version: "3.0.0-beta.
|
|
172
|
+
version: "3.0.0-beta.95"
|
|
172
173
|
});
|
|
173
174
|
var _default = Breakout;
|
|
174
175
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Breakout","WebexPlugin","extend","idAttribute","namespace","MEETINGS","breakoutRequest","BreakoutRequest","props","active","allowed","assigned","assignedCurrent","requested","current","name","sessionId","sessionType","groupId","url","derived","isMain","cache","deps","fn","initialize","members","Members","parent","webex","join","breakoutMoveId","uuid","v4","deviceUrl","internal","device","meetingId","collection","meeting","meetings","getMeetingByType","_ID_","breakoutEvent","onBreakoutMoveRequest","currentSession","request","method","HTTP_VERBS","POST","uri","body","result","onBreakoutMoveResponse","leave","Error","mainSession","breakouts","filter","breakout","askForHelp","parseRoster","locus","locusParticipantsUpdate","broadcast","message","options"],"sources":["breakout.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport uuid from 'uuid';\nimport {_ID_, HTTP_VERBS, MEETINGS} from '../constants';\nimport Members from '../members';\nimport BreakoutRequest from './request';\nimport breakoutEvent from './events';\n/**\n * @class\n */\nconst Breakout = WebexPlugin.extend({\n idAttribute: 'sessionId',\n\n namespace: MEETINGS,\n\n breakoutRequest: BreakoutRequest,\n props: {\n active: ['boolean', false, false], // this session is active\n allowed: ['boolean', false, false], // allowed to join this session\n assigned: ['boolean', false, false], // assigned to this session, but not necessarily joined yet\n assignedCurrent: ['boolean', false, false], // assigned AND current session\n requested: ['boolean', false, false], // requested by the host to join this session\n current: ['boolean', false, false], // the current joined session\n name: 'string',\n sessionId: 'string',\n sessionType: 'string',\n groupId: 'string',\n url: 'string', // where to send requests to\n },\n\n derived: {\n isMain: {\n cache: false, // fix issue: sometimes the derived will not change even if the deps changed\n deps: ['sessionType'],\n /**\n * If the breakout has no name, assume it is the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === 'MAIN';\n },\n },\n },\n\n initialize() {\n this.members = new Members({}, {parent: this.webex});\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n },\n\n /**\n * Joins the breakout session\n * @returns {Promise}\n */\n async join() {\n const breakoutMoveId = uuid.v4();\n const deviceUrl = this.webex.internal.device.url;\n const {meetingId} = this.collection.parent;\n const meeting = this.webex.meetings.getMeetingByType(_ID_, meetingId);\n breakoutEvent.onBreakoutMoveRequest({currentSession: this, meeting, breakoutMoveId});\n const result = await this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/move`,\n body: {\n breakoutMoveId,\n deviceUrl,\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n breakoutEvent.onBreakoutMoveResponse({currentSession: this, meeting, breakoutMoveId});\n\n return result;\n },\n\n /**\n * Leaves the breakout session to return to the main session\n * @returns {Promise}\n * @throws {Error} if an attempt is made to leave the main session or if the main session cannot be found\n */\n leave() {\n if (this.isMain) {\n throw new Error('Cannot leave the main session');\n }\n\n const mainSession = this.parent.breakouts.filter((breakout) => breakout.isMain)[0];\n\n if (!mainSession) {\n throw new Error('Cannot leave, no main session found');\n }\n\n return mainSession.join();\n },\n\n /**\n * Sends a help request for the current breakout\n * @returns {Promise}\n */\n askForHelp() {\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/help`,\n body: {\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n },\n\n /**\n * Parses the participants from the locus object\n * @param locus Locus object\n * @returns {void}\n */\n\n parseRoster(locus) {\n this.members.locusParticipantsUpdate(locus);\n },\n /*\n * Broadcast message to this breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: this.groupId,\n sessionId: this.sessionId,\n });\n },\n});\n\nexport default Breakout;\n"],"mappings":";;;;;;;;;;AAIA;AAEA;AACA;AACA;AACA;AACA;AAVA;AACA;AACA;;AASA;AACA;AACA;AACA,IAAMA,QAAQ,GAAGC,sBAAW,CAACC,MAAM,CAAC;EAClCC,WAAW,EAAE,WAAW;EAExBC,SAAS,EAAEC,mBAAQ;EAEnBC,eAAe,EAAEC,gBAAe;EAChCC,KAAK,EAAE;IACLC,MAAM,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;IAAE;IACnCC,OAAO,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;IAAE;IACpCC,QAAQ,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;IAAE;IACrCC,eAAe,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;IAAE;IAC5CC,SAAS,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;IAAE;IACtCC,OAAO,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;IAAE;IACpCC,IAAI,EAAE,QAAQ;IACdC,SAAS,EAAE,QAAQ;IACnBC,WAAW,EAAE,QAAQ;IACrBC,OAAO,EAAE,QAAQ;IACjBC,GAAG,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"names":["Breakout","WebexPlugin","extend","idAttribute","namespace","MEETINGS","breakoutRequest","BreakoutRequest","props","active","allowed","assigned","assignedCurrent","requested","current","name","sessionId","sessionType","groupId","url","requestedLastModifiedTime","derived","isMain","cache","deps","fn","initialize","members","Members","parent","webex","join","breakoutMoveId","uuid","v4","deviceUrl","internal","device","meetingId","collection","meeting","meetings","getMeetingByType","_ID_","breakoutEvent","onBreakoutMoveRequest","currentSession","request","method","HTTP_VERBS","POST","uri","body","result","onBreakoutMoveResponse","leave","Error","mainSession","breakouts","filter","breakout","askForHelp","parseRoster","locus","locusParticipantsUpdate","broadcast","message","options"],"sources":["breakout.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport uuid from 'uuid';\nimport {_ID_, HTTP_VERBS, MEETINGS} from '../constants';\nimport Members from '../members';\nimport BreakoutRequest from './request';\nimport breakoutEvent from './events';\n/**\n * @class\n */\nconst Breakout = WebexPlugin.extend({\n idAttribute: 'sessionId',\n\n namespace: MEETINGS,\n\n breakoutRequest: BreakoutRequest,\n props: {\n active: ['boolean', false, false], // this session is active\n allowed: ['boolean', false, false], // allowed to join this session\n assigned: ['boolean', false, false], // assigned to this session, but not necessarily joined yet\n assignedCurrent: ['boolean', false, false], // assigned AND current session\n requested: ['boolean', false, false], // requested by the host to join this session\n current: ['boolean', false, false], // the current joined session\n name: 'string',\n sessionId: 'string',\n sessionType: 'string',\n groupId: 'string',\n url: 'string', // where to send requests to\n requestedLastModifiedTime: 'string',\n },\n\n derived: {\n isMain: {\n cache: false, // fix issue: sometimes the derived will not change even if the deps changed\n deps: ['sessionType'],\n /**\n * If the breakout has no name, assume it is the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === 'MAIN';\n },\n },\n },\n\n initialize() {\n this.members = new Members({}, {parent: this.webex});\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n },\n\n /**\n * Joins the breakout session\n * @returns {Promise}\n */\n async join() {\n const breakoutMoveId = uuid.v4();\n const deviceUrl = this.webex.internal.device.url;\n const {meetingId} = this.collection.parent;\n const meeting = this.webex.meetings.getMeetingByType(_ID_, meetingId);\n breakoutEvent.onBreakoutMoveRequest({currentSession: this, meeting, breakoutMoveId});\n const result = await this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/move`,\n body: {\n breakoutMoveId,\n deviceUrl,\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n breakoutEvent.onBreakoutMoveResponse({currentSession: this, meeting, breakoutMoveId});\n\n return result;\n },\n\n /**\n * Leaves the breakout session to return to the main session\n * @returns {Promise}\n * @throws {Error} if an attempt is made to leave the main session or if the main session cannot be found\n */\n leave() {\n if (this.isMain) {\n throw new Error('Cannot leave the main session');\n }\n\n const mainSession = this.parent.breakouts.filter((breakout) => breakout.isMain)[0];\n\n if (!mainSession) {\n throw new Error('Cannot leave, no main session found');\n }\n\n return mainSession.join();\n },\n\n /**\n * Sends a help request for the current breakout\n * @returns {Promise}\n */\n askForHelp() {\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/help`,\n body: {\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n },\n\n /**\n * Parses the participants from the locus object\n * @param locus Locus object\n * @returns {void}\n */\n\n parseRoster(locus) {\n this.members.locusParticipantsUpdate(locus);\n },\n /*\n * Broadcast message to this breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: this.groupId,\n sessionId: this.sessionId,\n });\n },\n});\n\nexport default Breakout;\n"],"mappings":"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"}
|
package/dist/breakouts/index.js
CHANGED
|
@@ -133,12 +133,17 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
133
133
|
leading: true,
|
|
134
134
|
trailing: false
|
|
135
135
|
});
|
|
136
|
-
this.listenTo(this.breakouts, 'add', function () {
|
|
136
|
+
this.listenTo(this.breakouts, 'add', function (breakout) {
|
|
137
137
|
_this.debouncedQueryRosters();
|
|
138
|
+
_this.triggerReturnToMainEvent(breakout);
|
|
139
|
+
});
|
|
140
|
+
this.listenTo(this.breakouts, 'change:requestedLastModifiedTime', function (breakout) {
|
|
141
|
+
_this.triggerReturnToMainEvent(breakout);
|
|
138
142
|
});
|
|
139
143
|
this.listenToCurrentSessionTypeChange();
|
|
140
144
|
this.listenToBroadcastMessages();
|
|
141
145
|
this.listenToBreakoutRosters();
|
|
146
|
+
this.listenToBreakoutHelp();
|
|
142
147
|
// @ts-ignore
|
|
143
148
|
this.breakoutRequest = new _request.default({
|
|
144
149
|
webex: this.webex
|
|
@@ -254,6 +259,22 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
254
259
|
_this5.trigger(_constants.BREAKOUTS.EVENTS.MEMBERS_UPDATE);
|
|
255
260
|
});
|
|
256
261
|
},
|
|
262
|
+
/**
|
|
263
|
+
* Sets up a listener for ask help notify from mecury
|
|
264
|
+
* @returns {void}
|
|
265
|
+
*/
|
|
266
|
+
listenToBreakoutHelp: function listenToBreakoutHelp() {
|
|
267
|
+
var _this6 = this;
|
|
268
|
+
this.listenTo(this.webex.internal.mercury, 'event:breakout.help', function (event) {
|
|
269
|
+
var _event$data2 = event.data,
|
|
270
|
+
participant = _event$data2.participant,
|
|
271
|
+
sessionId = _event$data2.sessionId;
|
|
272
|
+
_this6.trigger(_constants.BREAKOUTS.EVENTS.ASK_FOR_HELP, {
|
|
273
|
+
participant: participant,
|
|
274
|
+
sessionId: sessionId
|
|
275
|
+
});
|
|
276
|
+
});
|
|
277
|
+
},
|
|
257
278
|
/**
|
|
258
279
|
* Updates the information about the current breakout
|
|
259
280
|
* @param {Object} params
|
|
@@ -294,7 +315,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
294
315
|
* @returns {void}
|
|
295
316
|
*/
|
|
296
317
|
updateBreakoutSessions: function updateBreakoutSessions(payload) {
|
|
297
|
-
var
|
|
318
|
+
var _this7 = this;
|
|
298
319
|
var breakouts = {};
|
|
299
320
|
if (payload.breakoutSessions) {
|
|
300
321
|
(0, _forEach2.default)(_constants.BREAKOUTS.SESSION_STATES, function (state) {
|
|
@@ -309,17 +330,17 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
309
330
|
breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.REQUESTED] = false;
|
|
310
331
|
}
|
|
311
332
|
breakouts[sessionId][state] = true;
|
|
333
|
+
if (state === _constants.BREAKOUTS.SESSION_STATES.REQUESTED) {
|
|
334
|
+
breakouts[sessionId].requestedLastModifiedTime = breakout.modifiedAt;
|
|
335
|
+
}
|
|
312
336
|
});
|
|
313
337
|
});
|
|
314
338
|
}
|
|
315
339
|
(0, _forEach2.default)(breakouts, function (breakout) {
|
|
316
340
|
// eslint-disable-next-line no-param-reassign
|
|
317
|
-
breakout.url =
|
|
341
|
+
breakout.url = _this7.url;
|
|
318
342
|
});
|
|
319
343
|
this.breakouts.set((0, _values.default)(breakouts));
|
|
320
|
-
if (this.allowBackToMain && this.getMainSession().requested) {
|
|
321
|
-
this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
|
|
322
|
-
}
|
|
323
344
|
},
|
|
324
345
|
/**
|
|
325
346
|
* get main session
|
|
@@ -396,18 +417,18 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
396
417
|
* @returns {Promise}
|
|
397
418
|
*/
|
|
398
419
|
toggleBreakout: function toggleBreakout(enable) {
|
|
399
|
-
var
|
|
420
|
+
var _this8 = this;
|
|
400
421
|
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
401
422
|
var info;
|
|
402
423
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
403
424
|
while (1) switch (_context.prev = _context.next) {
|
|
404
425
|
case 0:
|
|
405
|
-
if (!(
|
|
426
|
+
if (!(_this8.enableBreakoutSession === undefined)) {
|
|
406
427
|
_context.next = 10;
|
|
407
428
|
break;
|
|
408
429
|
}
|
|
409
430
|
_context.next = 3;
|
|
410
|
-
return
|
|
431
|
+
return _this8.enableBreakouts();
|
|
411
432
|
case 3:
|
|
412
433
|
info = _context.sent;
|
|
413
434
|
if (enable) {
|
|
@@ -415,15 +436,15 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
415
436
|
break;
|
|
416
437
|
}
|
|
417
438
|
// if enable is false, updateBreakout set the param then set enableBreakoutSession as false
|
|
418
|
-
|
|
439
|
+
_this8.updateBreakout(info.body);
|
|
419
440
|
_context.next = 8;
|
|
420
|
-
return
|
|
441
|
+
return _this8.doToggleBreakout(enable);
|
|
421
442
|
case 8:
|
|
422
443
|
_context.next = 12;
|
|
423
444
|
break;
|
|
424
445
|
case 10:
|
|
425
446
|
_context.next = 12;
|
|
426
|
-
return
|
|
447
|
+
return _this8.doToggleBreakout(enable);
|
|
427
448
|
case 12:
|
|
428
449
|
case "end":
|
|
429
450
|
return _context.stop();
|
|
@@ -458,7 +479,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
458
479
|
* @returns {Promise}
|
|
459
480
|
*/
|
|
460
481
|
create: function create(params) {
|
|
461
|
-
var
|
|
482
|
+
var _this9 = this;
|
|
462
483
|
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
463
484
|
var _breakInfo$body;
|
|
464
485
|
var payload, body, breakInfo;
|
|
@@ -466,17 +487,17 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
466
487
|
while (1) switch (_context2.prev = _context2.next) {
|
|
467
488
|
case 0:
|
|
468
489
|
payload = _objectSpread({}, params);
|
|
469
|
-
body = _objectSpread(_objectSpread({},
|
|
490
|
+
body = _objectSpread(_objectSpread({}, _this9.editLock && !!_this9.editLock.token ? {
|
|
470
491
|
editlock: {
|
|
471
|
-
token:
|
|
492
|
+
token: _this9.editLock.token
|
|
472
493
|
}
|
|
473
494
|
} : {}), {
|
|
474
495
|
groups: [payload]
|
|
475
496
|
}); // @ts-ignore
|
|
476
497
|
_context2.next = 4;
|
|
477
|
-
return
|
|
498
|
+
return _this9.webex.request({
|
|
478
499
|
method: _constants.HTTP_VERBS.PUT,
|
|
479
|
-
uri:
|
|
500
|
+
uri: _this9.url,
|
|
480
501
|
body: body
|
|
481
502
|
}).catch(function (error) {
|
|
482
503
|
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#create'));
|
|
@@ -484,11 +505,11 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
484
505
|
case 4:
|
|
485
506
|
breakInfo = _context2.sent;
|
|
486
507
|
if ((_breakInfo$body = breakInfo.body) !== null && _breakInfo$body !== void 0 && _breakInfo$body.groups) {
|
|
487
|
-
|
|
508
|
+
_this9.set('groups', breakInfo.body.groups);
|
|
488
509
|
}
|
|
489
510
|
|
|
490
511
|
// clear edit lock info after save breakout session info
|
|
491
|
-
|
|
512
|
+
_this9._clearEditLockInfo();
|
|
492
513
|
return _context2.abrupt("return", _promise.default.resolve(breakInfo));
|
|
493
514
|
case 8:
|
|
494
515
|
case "end":
|
|
@@ -502,16 +523,16 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
502
523
|
* @returns {Promise}
|
|
503
524
|
*/
|
|
504
525
|
clearSessions: function clearSessions() {
|
|
505
|
-
var
|
|
526
|
+
var _this10 = this;
|
|
506
527
|
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
507
528
|
var _breakInfo$body2;
|
|
508
529
|
var body, breakInfo;
|
|
509
530
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
510
531
|
while (1) switch (_context3.prev = _context3.next) {
|
|
511
532
|
case 0:
|
|
512
|
-
body = _objectSpread(_objectSpread({},
|
|
533
|
+
body = _objectSpread(_objectSpread({}, _this10.editLock && !!_this10.editLock.token ? {
|
|
513
534
|
editlock: {
|
|
514
|
-
token:
|
|
535
|
+
token: _this10.editLock.token
|
|
515
536
|
}
|
|
516
537
|
} : {}), {
|
|
517
538
|
groups: [{
|
|
@@ -519,9 +540,9 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
519
540
|
}]
|
|
520
541
|
}); // @ts-ignore
|
|
521
542
|
_context3.next = 3;
|
|
522
|
-
return
|
|
543
|
+
return _this10.webex.request({
|
|
523
544
|
method: _constants.HTTP_VERBS.PUT,
|
|
524
|
-
uri:
|
|
545
|
+
uri: _this10.url,
|
|
525
546
|
body: body
|
|
526
547
|
}).catch(function (error) {
|
|
527
548
|
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#clearSessions'));
|
|
@@ -529,9 +550,9 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
529
550
|
case 3:
|
|
530
551
|
breakInfo = _context3.sent;
|
|
531
552
|
if ((_breakInfo$body2 = breakInfo.body) !== null && _breakInfo$body2 !== void 0 && _breakInfo$body2.groups) {
|
|
532
|
-
|
|
553
|
+
_this10.set('groups', breakInfo.body.groups);
|
|
533
554
|
}
|
|
534
|
-
|
|
555
|
+
_this10.shouldFetchPreassignments = false;
|
|
535
556
|
return _context3.abrupt("return", _promise.default.resolve(breakInfo));
|
|
536
557
|
case 7:
|
|
537
558
|
case "end":
|
|
@@ -636,7 +657,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
636
657
|
* @returns {Promise}
|
|
637
658
|
*/
|
|
638
659
|
getBreakout: function getBreakout(editlock) {
|
|
639
|
-
var
|
|
660
|
+
var _this11 = this;
|
|
640
661
|
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
|
|
641
662
|
var _breakout$body, _breakout$body2, _breakout$body2$editl;
|
|
642
663
|
var breakout;
|
|
@@ -644,18 +665,18 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
644
665
|
while (1) switch (_context4.prev = _context4.next) {
|
|
645
666
|
case 0:
|
|
646
667
|
_context4.next = 2;
|
|
647
|
-
return
|
|
668
|
+
return _this11.request({
|
|
648
669
|
method: _constants.HTTP_VERBS.GET,
|
|
649
|
-
uri:
|
|
670
|
+
uri: _this11.url + (editlock ? "?editlock=".concat(editlock) : '')
|
|
650
671
|
});
|
|
651
672
|
case 2:
|
|
652
673
|
breakout = _context4.sent;
|
|
653
674
|
if ((_breakout$body = breakout.body) !== null && _breakout$body !== void 0 && _breakout$body.groups) {
|
|
654
|
-
|
|
675
|
+
_this11.set('groups', breakout.body.groups);
|
|
655
676
|
}
|
|
656
677
|
if (editlock && (_breakout$body2 = breakout.body) !== null && _breakout$body2 !== void 0 && (_breakout$body2$editl = _breakout$body2.editlock) !== null && _breakout$body2$editl !== void 0 && _breakout$body2$editl.token) {
|
|
657
|
-
|
|
658
|
-
|
|
678
|
+
_this11.set('editLock', breakout.body.editlock);
|
|
679
|
+
_this11.keepEditLockAlive();
|
|
659
680
|
}
|
|
660
681
|
return _context4.abrupt("return", breakout);
|
|
661
682
|
case 6:
|
|
@@ -670,26 +691,26 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
670
691
|
* @returns {void}
|
|
671
692
|
*/
|
|
672
693
|
enableAndLockBreakout: function enableAndLockBreakout() {
|
|
673
|
-
var
|
|
694
|
+
var _this12 = this;
|
|
674
695
|
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
|
|
675
696
|
var info;
|
|
676
697
|
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
677
698
|
while (1) switch (_context5.prev = _context5.next) {
|
|
678
699
|
case 0:
|
|
679
|
-
if (!
|
|
700
|
+
if (!_this12.enableBreakoutSession) {
|
|
680
701
|
_context5.next = 4;
|
|
681
702
|
break;
|
|
682
703
|
}
|
|
683
|
-
|
|
704
|
+
_this12.lockBreakout();
|
|
684
705
|
_context5.next = 8;
|
|
685
706
|
break;
|
|
686
707
|
case 4:
|
|
687
708
|
_context5.next = 6;
|
|
688
|
-
return
|
|
709
|
+
return _this12.enableBreakouts();
|
|
689
710
|
case 6:
|
|
690
711
|
info = _context5.sent;
|
|
691
712
|
if (info.body) {
|
|
692
|
-
|
|
713
|
+
_this12.lockBreakout();
|
|
693
714
|
}
|
|
694
715
|
case 8:
|
|
695
716
|
case "end":
|
|
@@ -703,33 +724,33 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
703
724
|
* @returns {void}
|
|
704
725
|
*/
|
|
705
726
|
lockBreakout: function lockBreakout() {
|
|
706
|
-
var
|
|
727
|
+
var _this13 = this;
|
|
707
728
|
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
|
|
708
729
|
var _breakout$body3, breakout;
|
|
709
730
|
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
710
731
|
while (1) switch (_context6.prev = _context6.next) {
|
|
711
732
|
case 0:
|
|
712
|
-
if (!(
|
|
733
|
+
if (!(_this13.editLock && !!_this13.editLock.token)) {
|
|
713
734
|
_context6.next = 8;
|
|
714
735
|
break;
|
|
715
736
|
}
|
|
716
|
-
if (!(
|
|
737
|
+
if (!(_this13.editLock.state === _constants.BREAKOUTS.EDIT_LOCK_STATUS.LOCKED)) {
|
|
717
738
|
_context6.next = 5;
|
|
718
739
|
break;
|
|
719
740
|
}
|
|
720
741
|
throw new Error('Breakout already locked');
|
|
721
742
|
case 5:
|
|
722
|
-
|
|
743
|
+
_this13.keepEditLockAlive();
|
|
723
744
|
case 6:
|
|
724
745
|
_context6.next = 12;
|
|
725
746
|
break;
|
|
726
747
|
case 8:
|
|
727
748
|
_context6.next = 10;
|
|
728
|
-
return
|
|
749
|
+
return _this13.getBreakout(true);
|
|
729
750
|
case 10:
|
|
730
751
|
breakout = _context6.sent;
|
|
731
752
|
if ((_breakout$body3 = breakout.body) !== null && _breakout$body3 !== void 0 && _breakout$body3.editlock) {
|
|
732
|
-
|
|
753
|
+
_this13.keepEditLockAlive();
|
|
733
754
|
}
|
|
734
755
|
case 12:
|
|
735
756
|
case "end":
|
|
@@ -743,18 +764,18 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
743
764
|
* @returns {void}
|
|
744
765
|
*/
|
|
745
766
|
keepEditLockAlive: function keepEditLockAlive() {
|
|
746
|
-
var
|
|
767
|
+
var _this14 = this;
|
|
747
768
|
if (this.editLock && !!this.editLock.token) {
|
|
748
769
|
var ttl = this.editLock.ttl < 30 ? _constants.BREAKOUTS.DEFAULT_TTL : this.editLock.ttl;
|
|
749
770
|
if (this.intervalID) {
|
|
750
771
|
window.clearInterval(this.intervalID);
|
|
751
772
|
}
|
|
752
773
|
this.intervalID = window.setInterval(function () {
|
|
753
|
-
|
|
774
|
+
_this14.request({
|
|
754
775
|
method: _constants.HTTP_VERBS.PUT,
|
|
755
|
-
uri: "".concat(
|
|
776
|
+
uri: "".concat(_this14.url, "/editlock/").concat(_this14.editLock.token)
|
|
756
777
|
}).catch(function (error) {
|
|
757
|
-
|
|
778
|
+
_this14._clearEditLockInfo();
|
|
758
779
|
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#keepEditLockAlive'));
|
|
759
780
|
});
|
|
760
781
|
}, ttl / 2 * 1000);
|
|
@@ -765,13 +786,13 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
765
786
|
* @returns {void}
|
|
766
787
|
*/
|
|
767
788
|
unLockEditBreakout: function unLockEditBreakout() {
|
|
768
|
-
var
|
|
789
|
+
var _this15 = this;
|
|
769
790
|
if (this.editLock && !!this.editLock.token) {
|
|
770
791
|
this.request({
|
|
771
792
|
method: _constants.HTTP_VERBS.DELETE,
|
|
772
793
|
uri: "".concat(this.url, "/editlock/").concat(this.editLock.token)
|
|
773
794
|
}).then(function () {
|
|
774
|
-
|
|
795
|
+
_this15._clearEditLockInfo();
|
|
775
796
|
}).catch(function (error) {
|
|
776
797
|
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#unLockEditBreakout'));
|
|
777
798
|
});
|
|
@@ -825,7 +846,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
825
846
|
* @returns {void}
|
|
826
847
|
*/
|
|
827
848
|
queryPreAssignments: function queryPreAssignments(params) {
|
|
828
|
-
var
|
|
849
|
+
var _this16 = this;
|
|
829
850
|
if (!params || !params.enableBreakoutSession || !params.hasBreakoutPreAssignments) {
|
|
830
851
|
return;
|
|
831
852
|
}
|
|
@@ -838,7 +859,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
838
859
|
}).then(function (result) {
|
|
839
860
|
var _result$body;
|
|
840
861
|
if ((_result$body = result.body) !== null && _result$body !== void 0 && _result$body.groups) {
|
|
841
|
-
|
|
862
|
+
_this16.set('groups', result.body.groups);
|
|
842
863
|
}
|
|
843
864
|
}).catch(function (error) {
|
|
844
865
|
_loggerProxy.default.logger.error('Meeting:breakouts#queryPreAssignments failed', error);
|
|
@@ -876,7 +897,17 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
876
897
|
body: body
|
|
877
898
|
});
|
|
878
899
|
},
|
|
879
|
-
|
|
900
|
+
/**
|
|
901
|
+
* trigger ASK_RETURN_TO_MAIN event when main session requested
|
|
902
|
+
* @param {Object} breakout
|
|
903
|
+
* @returns {void}
|
|
904
|
+
*/
|
|
905
|
+
triggerReturnToMainEvent: function triggerReturnToMainEvent(breakout) {
|
|
906
|
+
if (breakout.isMain && breakout.requested) {
|
|
907
|
+
this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
|
|
908
|
+
}
|
|
909
|
+
},
|
|
910
|
+
version: "3.0.0-beta.95"
|
|
880
911
|
});
|
|
881
912
|
var _default = Breakouts;
|
|
882
913
|
exports.default = _default;
|