@webex/plugin-meetings 3.0.0-beta.28 → 3.0.0-beta.280
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/README.md +46 -8
- package/dist/annotation/annotation.types.js +7 -0
- package/dist/annotation/annotation.types.js.map +1 -0
- package/dist/annotation/constants.js +49 -0
- package/dist/annotation/constants.js.map +1 -0
- package/dist/annotation/index.js +342 -0
- package/dist/annotation/index.js.map +1 -0
- package/dist/breakouts/breakout.js +114 -14
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/edit-lock-error.js +52 -0
- package/dist/breakouts/edit-lock-error.js.map +1 -0
- package/dist/breakouts/events.js +45 -0
- package/dist/breakouts/events.js.map +1 -0
- package/dist/breakouts/index.js +763 -31
- package/dist/breakouts/index.js.map +1 -1
- package/dist/breakouts/request.js +78 -0
- package/dist/breakouts/request.js.map +1 -0
- package/dist/breakouts/utils.js +67 -0
- package/dist/breakouts/utils.js.map +1 -0
- package/dist/common/errors/no-meeting-info.js +51 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/webex-errors.js +28 -7
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/logs/logger-proxy.js +1 -1
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/queue.js +24 -9
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +5 -10
- package/dist/config.js.map +1 -1
- package/dist/constants.js +203 -28
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js +14 -2
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.js +109 -15
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/types.js +7 -0
- package/dist/controls-options-manager/types.js.map +1 -0
- package/dist/controls-options-manager/util.js +309 -18
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.js +112 -1
- package/dist/index.js.map +1 -1
- package/dist/interpretation/collection.js +23 -0
- package/dist/interpretation/collection.js.map +1 -0
- package/dist/interpretation/index.js +366 -0
- package/dist/interpretation/index.js.map +1 -0
- package/dist/interpretation/siLanguage.js +25 -0
- package/dist/interpretation/siLanguage.js.map +1 -0
- package/dist/locus-info/controlsUtils.js +91 -2
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +383 -62
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js +7 -1
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +57 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +249 -72
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +89 -14
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js +58 -116
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +72 -123
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +82 -2
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +3123 -2814
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +292 -0
- package/dist/meeting/locusMediaRequest.js.map +1 -0
- package/dist/meeting/muteState.js +230 -124
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +256 -196
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +601 -417
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +73 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +192 -51
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/util.js +1 -1
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +36 -36
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +22 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +394 -94
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js +7 -0
- package/dist/meetings/meetings.types.js.map +1 -0
- package/dist/meetings/request.js +2 -0
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +71 -1
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +49 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +25 -0
- package/dist/member/types.js.map +1 -0
- package/dist/member/util.js +121 -25
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +10 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +86 -6
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +106 -38
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js +15 -0
- package/dist/members/types.js.map +1 -0
- package/dist/members/util.js +316 -233
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +12 -5
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +1 -468
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +238 -49
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +40 -16
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +39 -36
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +44 -18
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +60 -3
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +209 -59
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +233 -0
- package/dist/multistream/sendSlotManager.js.map +1 -0
- package/dist/reachability/index.js +225 -59
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +17 -8
- package/dist/reachability/request.js.map +1 -1
- package/dist/reconnection-manager/index.js +199 -154
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/index.js +21 -2
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js +9 -8
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js +23 -29
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +112 -97
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +96 -36
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/constants.js +12 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.js +117 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/index.js +67 -73
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +11 -10
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/annotation/annotation.types.d.ts +42 -0
- package/dist/types/annotation/constants.d.ts +31 -0
- package/dist/types/annotation/index.d.ts +117 -0
- package/dist/types/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/types/breakouts/events.d.ts +8 -0
- package/dist/types/breakouts/request.d.ts +22 -0
- package/dist/types/breakouts/utils.d.ts +15 -0
- package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/types/common/errors/webex-errors.d.ts +13 -1
- package/dist/types/common/queue.d.ts +9 -7
- package/dist/types/config.d.ts +1 -6
- package/dist/types/constants.d.ts +161 -21
- package/dist/types/controls-options-manager/enums.d.ts +11 -1
- package/dist/types/controls-options-manager/index.d.ts +17 -1
- package/dist/types/controls-options-manager/types.d.ts +43 -0
- package/dist/types/controls-options-manager/util.d.ts +1 -7
- package/dist/types/index.d.ts +6 -4
- package/dist/types/interpretation/collection.d.ts +5 -0
- package/dist/types/interpretation/index.d.ts +5 -0
- package/dist/types/interpretation/siLanguage.d.ts +5 -0
- package/dist/types/locus-info/index.d.ts +57 -4
- package/dist/types/locus-info/parser.d.ts +67 -6
- package/dist/types/media/index.d.ts +2 -0
- package/dist/types/media/properties.d.ts +34 -48
- package/dist/types/meeting/in-meeting-actions.d.ts +82 -2
- package/dist/types/meeting/index.d.ts +345 -507
- package/dist/types/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/types/meeting/muteState.d.ts +99 -23
- package/dist/types/meeting/request.d.ts +72 -43
- package/dist/types/meeting/util.d.ts +101 -1
- package/dist/types/meeting-info/index.d.ts +13 -1
- package/dist/types/meeting-info/meeting-info-v2.d.ts +31 -1
- package/dist/types/meetings/collection.d.ts +8 -0
- package/dist/types/meetings/index.d.ts +88 -12
- package/dist/types/meetings/meetings.types.d.ts +4 -0
- package/dist/types/member/index.d.ts +13 -0
- package/dist/types/member/types.d.ts +32 -0
- package/dist/types/members/collection.d.ts +5 -0
- package/dist/types/members/index.d.ts +35 -2
- package/dist/types/members/request.d.ts +73 -9
- package/dist/types/members/types.d.ts +24 -0
- package/dist/types/members/util.d.ts +209 -1
- package/dist/types/metrics/constants.d.ts +11 -4
- package/dist/types/metrics/index.d.ts +4 -119
- package/dist/types/multistream/mediaRequestManager.d.ts +73 -5
- package/dist/types/multistream/receiveSlot.d.ts +13 -11
- package/dist/types/multistream/receiveSlotManager.d.ts +14 -4
- package/dist/types/multistream/remoteMedia.d.ts +8 -29
- package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
- package/dist/types/multistream/remoteMediaManager.d.ts +46 -2
- package/dist/types/multistream/sendSlotManager.d.ts +61 -0
- package/dist/types/reachability/index.d.ts +61 -7
- package/dist/types/reachability/request.d.ts +7 -3
- package/dist/types/reconnection-manager/index.d.ts +9 -0
- package/dist/types/recording-controller/index.d.ts +15 -1
- package/dist/types/recording-controller/util.d.ts +5 -4
- package/dist/types/roap/request.d.ts +15 -11
- package/dist/types/roap/turnDiscovery.d.ts +18 -1
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +47 -0
- package/dist/types/statsAnalyzer/index.d.ts +6 -1
- package/package.json +23 -20
- package/src/annotation/annotation.types.ts +50 -0
- package/src/annotation/constants.ts +36 -0
- package/src/annotation/index.ts +328 -0
- package/src/breakouts/README.md +44 -14
- package/src/breakouts/breakout.ts +87 -9
- package/src/breakouts/edit-lock-error.ts +25 -0
- package/src/breakouts/events.ts +56 -0
- package/src/breakouts/index.ts +646 -18
- package/src/breakouts/request.ts +55 -0
- package/src/breakouts/utils.ts +57 -0
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/webex-errors.ts +27 -2
- package/src/common/logs/logger-proxy.ts +1 -1
- package/src/common/queue.ts +22 -8
- package/src/config.ts +4 -9
- package/src/constants.ts +184 -18
- package/src/controls-options-manager/enums.ts +12 -0
- package/src/controls-options-manager/index.ts +116 -21
- package/src/controls-options-manager/types.ts +59 -0
- package/src/controls-options-manager/util.ts +294 -14
- package/src/index.ts +40 -0
- package/src/interpretation/README.md +60 -0
- package/src/interpretation/collection.ts +19 -0
- package/src/interpretation/index.ts +332 -0
- package/src/interpretation/siLanguage.ts +18 -0
- package/src/locus-info/controlsUtils.ts +108 -0
- package/src/locus-info/index.ts +413 -59
- package/src/locus-info/infoUtils.ts +10 -2
- package/src/locus-info/mediaSharesUtils.ts +64 -0
- package/src/locus-info/parser.ts +258 -47
- package/src/locus-info/selfUtils.ts +81 -5
- package/src/media/index.ts +100 -122
- package/src/media/properties.ts +85 -108
- package/src/meeting/in-meeting-actions.ts +163 -3
- package/src/meeting/index.ts +2541 -2309
- package/src/meeting/locusMediaRequest.ts +313 -0
- package/src/meeting/muteState.ts +229 -131
- package/src/meeting/request.ts +172 -121
- package/src/meeting/util.ts +588 -394
- package/src/meeting-info/index.ts +81 -8
- package/src/meeting-info/meeting-info-v2.ts +170 -14
- package/src/meeting-info/util.ts +1 -1
- package/src/meeting-info/utilv2.ts +23 -23
- package/src/meetings/collection.ts +20 -0
- package/src/meetings/index.ts +428 -108
- package/src/meetings/meetings.types.ts +12 -0
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +79 -4
- package/src/member/index.ts +49 -0
- package/src/member/types.ts +38 -0
- package/src/member/util.ts +127 -25
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +106 -7
- package/src/members/request.ts +97 -17
- package/src/members/types.ts +28 -0
- package/src/members/util.ts +319 -240
- package/src/metrics/constants.ts +11 -4
- package/src/metrics/index.ts +1 -490
- package/src/multistream/mediaRequestManager.ts +289 -79
- package/src/multistream/receiveSlot.ts +47 -17
- package/src/multistream/receiveSlotManager.ts +34 -24
- package/src/multistream/remoteMedia.ts +27 -2
- package/src/multistream/remoteMediaGroup.ts +59 -0
- package/src/multistream/remoteMediaManager.ts +148 -30
- package/src/multistream/sendSlotManager.ts +170 -0
- package/src/reachability/index.ts +228 -37
- package/src/reachability/request.ts +17 -8
- package/src/reconnection-manager/index.ts +81 -54
- package/src/recording-controller/index.ts +20 -3
- package/src/recording-controller/util.ts +26 -9
- package/src/roap/index.ts +23 -30
- package/src/roap/request.ts +100 -104
- package/src/roap/turnDiscovery.ts +51 -25
- package/src/rtcMetrics/constants.ts +3 -0
- package/src/rtcMetrics/index.ts +100 -0
- package/src/statsAnalyzer/index.ts +88 -88
- package/src/statsAnalyzer/mqaUtil.ts +13 -14
- package/test/integration/spec/converged-space-meetings.js +60 -3
- package/test/integration/spec/journey.js +320 -261
- package/test/integration/spec/space-meeting.js +76 -3
- package/test/unit/spec/annotation/index.ts +418 -0
- package/test/unit/spec/breakouts/breakout.ts +142 -24
- package/test/unit/spec/breakouts/edit-lock-error.ts +30 -0
- package/test/unit/spec/breakouts/events.ts +89 -0
- package/test/unit/spec/breakouts/index.ts +1488 -67
- package/test/unit/spec/breakouts/request.ts +104 -0
- package/test/unit/spec/breakouts/utils.js +72 -0
- package/test/unit/spec/common/queue.js +31 -2
- package/test/unit/spec/controls-options-manager/index.js +163 -0
- package/test/unit/spec/controls-options-manager/util.js +576 -60
- package/test/unit/spec/fixture/locus.js +1 -0
- package/test/unit/spec/interpretation/collection.ts +15 -0
- package/test/unit/spec/interpretation/index.ts +589 -0
- package/test/unit/spec/interpretation/siLanguage.ts +28 -0
- package/test/unit/spec/locus-info/controlsUtils.js +316 -43
- package/test/unit/spec/locus-info/index.js +1304 -33
- package/test/unit/spec/locus-info/infoUtils.js +37 -15
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +32 -0
- package/test/unit/spec/locus-info/parser.js +116 -35
- package/test/unit/spec/locus-info/selfConstant.js +27 -4
- package/test/unit/spec/locus-info/selfUtils.js +208 -17
- package/test/unit/spec/media/index.ts +104 -37
- package/test/unit/spec/meeting/in-meeting-actions.ts +81 -3
- package/test/unit/spec/meeting/index.js +4515 -1932
- package/test/unit/spec/meeting/locusMediaRequest.ts +442 -0
- package/test/unit/spec/meeting/muteState.js +408 -208
- package/test/unit/spec/meeting/request.js +440 -45
- package/test/unit/spec/meeting/utils.js +679 -64
- package/test/unit/spec/meeting-info/index.js +295 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +521 -5
- package/test/unit/spec/meeting-info/utilv2.js +21 -0
- package/test/unit/spec/meetings/collection.js +14 -0
- package/test/unit/spec/meetings/index.js +1007 -177
- package/test/unit/spec/meetings/utils.js +206 -2
- package/test/unit/spec/member/index.js +58 -4
- package/test/unit/spec/member/util.js +479 -35
- package/test/unit/spec/members/index.js +319 -1
- package/test/unit/spec/members/request.js +206 -27
- package/test/unit/spec/members/utils.js +184 -0
- package/test/unit/spec/metrics/index.js +1 -50
- package/test/unit/spec/multistream/mediaRequestManager.ts +803 -162
- package/test/unit/spec/multistream/receiveSlot.ts +43 -20
- package/test/unit/spec/multistream/receiveSlotManager.ts +32 -30
- package/test/unit/spec/multistream/remoteMedia.ts +30 -0
- package/test/unit/spec/multistream/remoteMediaGroup.ts +266 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +326 -0
- package/test/unit/spec/multistream/sendSlotManager.ts +242 -0
- package/test/unit/spec/reachability/index.ts +549 -9
- package/test/unit/spec/reachability/request.js +68 -0
- package/test/unit/spec/reconnection-manager/index.js +84 -9
- package/test/unit/spec/recording-controller/index.js +294 -218
- package/test/unit/spec/recording-controller/util.js +223 -96
- package/test/unit/spec/roap/index.ts +31 -51
- package/test/unit/spec/roap/request.ts +203 -85
- package/test/unit/spec/roap/turnDiscovery.ts +48 -13
- package/test/unit/spec/rtcMetrics/index.ts +68 -0
- package/test/unit/spec/stats-analyzer/index.js +64 -2
- package/test/utils/integrationTestUtils.js +46 -0
- package/test/utils/testUtils.js +0 -52
- package/dist/meeting/effectsState.js +0 -262
- package/dist/meeting/effectsState.js.map +0 -1
- package/dist/metrics/config.js +0 -299
- package/dist/metrics/config.js.map +0 -1
- package/dist/types/meeting/effectsState.d.ts +0 -42
- package/dist/types/metrics/config.d.ts +0 -178
- package/src/index.js +0 -16
- package/src/meeting/effectsState.ts +0 -211
- package/src/metrics/config.ts +0 -495
- package/test/unit/spec/meeting/effectsState.js +0 -285
package/dist/breakouts/index.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
|
|
4
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
|
5
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
6
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
|
7
|
+
var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
|
|
3
8
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
9
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
5
10
|
_Object$defineProperty(exports, "__esModule", {
|
|
@@ -18,15 +23,17 @@ var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy")
|
|
|
18
23
|
var _constants = require("../constants");
|
|
19
24
|
var _breakout = _interopRequireDefault(require("./breakout"));
|
|
20
25
|
var _collection = _interopRequireDefault(require("./collection"));
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
var _request = _interopRequireDefault(require("./request"));
|
|
27
|
+
var _events = _interopRequireDefault(require("./events"));
|
|
28
|
+
var _utils = require("./utils");
|
|
29
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
30
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
25
31
|
/**
|
|
26
32
|
* @class Breakouts
|
|
27
33
|
*/
|
|
28
34
|
var Breakouts = _webexCore.WebexPlugin.extend({
|
|
29
35
|
namespace: _constants.MEETINGS,
|
|
36
|
+
breakoutRequest: _request.default,
|
|
30
37
|
collections: {
|
|
31
38
|
breakouts: _collection.default
|
|
32
39
|
},
|
|
@@ -37,6 +44,8 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
37
44
|
// appears once breakouts start
|
|
38
45
|
enableBreakoutSession: 'boolean',
|
|
39
46
|
// appears from the moment you enable breakouts
|
|
47
|
+
hasBreakoutPreAssignments: 'boolean',
|
|
48
|
+
// appears from the moment you enable breakouts
|
|
40
49
|
groupId: 'string',
|
|
41
50
|
// appears from the moment you enable breakouts
|
|
42
51
|
name: 'string',
|
|
@@ -53,7 +62,21 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
53
62
|
// appears from the moment you enable breakouts
|
|
54
63
|
locusUrl: 'string',
|
|
55
64
|
// the current locus url
|
|
56
|
-
breakoutServiceUrl: 'string'
|
|
65
|
+
breakoutServiceUrl: 'string',
|
|
66
|
+
// the current breakout resource url
|
|
67
|
+
mainLocusUrl: 'string',
|
|
68
|
+
// the locus url of the main session
|
|
69
|
+
groups: 'array',
|
|
70
|
+
// appears when create breakouts
|
|
71
|
+
manageGroups: 'array',
|
|
72
|
+
// appears when manage breakouts
|
|
73
|
+
preAssignments: 'array',
|
|
74
|
+
// appears when getPreAssignments info hasBreakoutPreAssignments = true
|
|
75
|
+
editLock: 'object',
|
|
76
|
+
// appears when getBreakout info editlock = true
|
|
77
|
+
intervalID: 'number',
|
|
78
|
+
meetingId: 'string',
|
|
79
|
+
canManageBreakouts: 'boolean' // appear the ability to manage breakouts
|
|
57
80
|
},
|
|
58
81
|
|
|
59
82
|
children: {
|
|
@@ -61,6 +84,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
61
84
|
},
|
|
62
85
|
derived: {
|
|
63
86
|
isInMainSession: {
|
|
87
|
+
cache: false,
|
|
64
88
|
deps: ['sessionType'],
|
|
65
89
|
/**
|
|
66
90
|
* Returns true if the user is in the main session
|
|
@@ -69,6 +93,56 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
69
93
|
fn: function fn() {
|
|
70
94
|
return this.sessionType === _constants.BREAKOUTS.SESSION_TYPES.MAIN;
|
|
71
95
|
}
|
|
96
|
+
},
|
|
97
|
+
isActiveBreakout: {
|
|
98
|
+
cache: false,
|
|
99
|
+
// fix issue: sometimes the derived will not change even if the deps changed
|
|
100
|
+
deps: ['sessionType', 'status'],
|
|
101
|
+
/**
|
|
102
|
+
* Returns true if the breakout status is active
|
|
103
|
+
* @returns {boolean}
|
|
104
|
+
*/
|
|
105
|
+
fn: function fn() {
|
|
106
|
+
return this.sessionType === _constants.BREAKOUTS.SESSION_TYPES.BREAKOUT && (this.status === _constants.BREAKOUTS.STATUS.OPEN || this.status === _constants.BREAKOUTS.STATUS.CLOSING);
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
breakoutGroupId: {
|
|
110
|
+
cache: false,
|
|
111
|
+
deps: ['manageGroups'],
|
|
112
|
+
/**
|
|
113
|
+
* Returns the active group id
|
|
114
|
+
* @returns {boolean}
|
|
115
|
+
*/
|
|
116
|
+
fn: function fn() {
|
|
117
|
+
var _this$manageGroups;
|
|
118
|
+
if ((_this$manageGroups = this.manageGroups) !== null && _this$manageGroups !== void 0 && _this$manageGroups.length) {
|
|
119
|
+
return this.manageGroups[0].status !== _constants.BREAKOUTS.STATUS.CLOSED ? this.manageGroups[0].id : '';
|
|
120
|
+
}
|
|
121
|
+
return '';
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
breakoutStatus: {
|
|
125
|
+
cache: true,
|
|
126
|
+
deps: ['isInMainSession', 'status', 'groups'],
|
|
127
|
+
/**
|
|
128
|
+
* Returns the breakout status
|
|
129
|
+
* @returns {boolean}
|
|
130
|
+
*/
|
|
131
|
+
fn: function fn() {
|
|
132
|
+
var _this$groups, _this$groups$;
|
|
133
|
+
return this.isInMainSession ? (_this$groups = this.groups) === null || _this$groups === void 0 ? void 0 : (_this$groups$ = _this$groups[0]) === null || _this$groups$ === void 0 ? void 0 : _this$groups$.status : this.status;
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
shouldQueryPreAssignments: {
|
|
137
|
+
cache: false,
|
|
138
|
+
deps: ['canManageBreakouts', 'enableBreakoutSession', 'hasBreakoutPreAssignments'],
|
|
139
|
+
/**
|
|
140
|
+
* Returns should query preAssignments or not
|
|
141
|
+
* @returns {boolean}
|
|
142
|
+
*/
|
|
143
|
+
fn: function fn() {
|
|
144
|
+
return !!(this.canManageBreakouts && this.enableBreakoutSession && this.hasBreakoutPreAssignments);
|
|
145
|
+
}
|
|
72
146
|
}
|
|
73
147
|
},
|
|
74
148
|
/**
|
|
@@ -77,20 +151,35 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
77
151
|
*/
|
|
78
152
|
initialize: function initialize() {
|
|
79
153
|
var _this = this;
|
|
80
|
-
this.listenTo(this, 'change:
|
|
81
|
-
if (_this.
|
|
154
|
+
this.listenTo(this, 'change:breakoutStatus', function () {
|
|
155
|
+
if (_this.breakoutStatus === _constants.BREAKOUTS.STATUS.CLOSING) {
|
|
82
156
|
_this.trigger(_constants.BREAKOUTS.EVENTS.BREAKOUTS_CLOSING);
|
|
83
157
|
}
|
|
84
158
|
});
|
|
159
|
+
this.listenTo(this, 'change:shouldQueryPreAssignments', function () {
|
|
160
|
+
if (_this.shouldQueryPreAssignments && !_this.preAssignments) {
|
|
161
|
+
_this.queryPreAssignments();
|
|
162
|
+
}
|
|
163
|
+
});
|
|
85
164
|
this.debouncedQueryRosters = (0, _debounce2.default)(this.queryRosters, 10, {
|
|
86
165
|
leading: true,
|
|
87
166
|
trailing: false
|
|
88
167
|
});
|
|
89
|
-
this.listenTo(this.breakouts, 'add', function () {
|
|
168
|
+
this.listenTo(this.breakouts, 'add', function (breakout) {
|
|
90
169
|
_this.debouncedQueryRosters();
|
|
170
|
+
_this.triggerReturnToMainEvent(breakout);
|
|
91
171
|
});
|
|
172
|
+
this.listenTo(this.breakouts, 'change:requestedLastModifiedTime', function (breakout) {
|
|
173
|
+
_this.triggerReturnToMainEvent(breakout);
|
|
174
|
+
});
|
|
175
|
+
this.listenToCurrentSessionTypeChange();
|
|
92
176
|
this.listenToBroadcastMessages();
|
|
93
177
|
this.listenToBreakoutRosters();
|
|
178
|
+
this.listenToBreakoutHelp();
|
|
179
|
+
// @ts-ignore
|
|
180
|
+
this.breakoutRequest = new _request.default({
|
|
181
|
+
webex: this.webex
|
|
182
|
+
});
|
|
94
183
|
},
|
|
95
184
|
/**
|
|
96
185
|
* Calls this to clean up listeners
|
|
@@ -106,9 +195,22 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
106
195
|
*/
|
|
107
196
|
locusUrlUpdate: function locusUrlUpdate(locusUrl) {
|
|
108
197
|
this.set('locusUrl', locusUrl);
|
|
198
|
+
var isInMainSession = this.isInMainSession,
|
|
199
|
+
mainLocusUrl = this.mainLocusUrl;
|
|
200
|
+
if (isInMainSession || !mainLocusUrl) {
|
|
201
|
+
this.set('mainLocusUrl', locusUrl);
|
|
202
|
+
}
|
|
109
203
|
},
|
|
110
204
|
/**
|
|
111
|
-
* Update
|
|
205
|
+
* Update whether self is moderator/cohost or not
|
|
206
|
+
* @param {boolean} canManageBreakouts
|
|
207
|
+
* @returns {void}
|
|
208
|
+
*/
|
|
209
|
+
updateCanManageBreakouts: function updateCanManageBreakouts(canManageBreakouts) {
|
|
210
|
+
this.set('canManageBreakouts', canManageBreakouts);
|
|
211
|
+
},
|
|
212
|
+
/**
|
|
213
|
+
* Update the current breakout resource url
|
|
112
214
|
* @param {string} breakoutServiceUrl
|
|
113
215
|
* @returns {void}
|
|
114
216
|
*/
|
|
@@ -129,7 +231,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
129
231
|
}
|
|
130
232
|
}).then(function (result) {
|
|
131
233
|
var rosters = result.body.rosters;
|
|
132
|
-
rosters.forEach(function (_ref) {
|
|
234
|
+
rosters === null || rosters === void 0 ? void 0 : rosters.forEach(function (_ref) {
|
|
133
235
|
var locus = _ref.locus;
|
|
134
236
|
_this2.handleRosterUpdate(locus);
|
|
135
237
|
});
|
|
@@ -152,25 +254,37 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
152
254
|
}
|
|
153
255
|
session.parseRoster(locus);
|
|
154
256
|
},
|
|
257
|
+
/**
|
|
258
|
+
*Sets up listener for currentBreakoutSession sessionType changed
|
|
259
|
+
* @returns {void}
|
|
260
|
+
*/
|
|
261
|
+
listenToCurrentSessionTypeChange: function listenToCurrentSessionTypeChange() {
|
|
262
|
+
var _this3 = this;
|
|
263
|
+
this.listenTo(this.currentBreakoutSession, 'change:sessionType', function (currentBreakoutSession, sessionType) {
|
|
264
|
+
if ((0, _utils.isSessionTypeChangedFromSessionToMain)(currentBreakoutSession, sessionType)) {
|
|
265
|
+
_this3.trigger(_constants.BREAKOUTS.EVENTS.LEAVE_BREAKOUT);
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
},
|
|
155
269
|
/**
|
|
156
270
|
* Sets up listener for broadcast messages sent to the breakout session
|
|
157
271
|
* @returns {void}
|
|
158
272
|
*/
|
|
159
273
|
listenToBroadcastMessages: function listenToBroadcastMessages() {
|
|
160
|
-
var
|
|
274
|
+
var _this4 = this;
|
|
161
275
|
this.listenTo(this.webex.internal.llm, 'event:breakout.message', function (event) {
|
|
162
276
|
var _event$data = event.data,
|
|
163
277
|
senderUserId = _event$data.senderUserId,
|
|
164
278
|
sentTime = _event$data.sentTime,
|
|
165
279
|
message = _event$data.message;
|
|
166
|
-
|
|
280
|
+
_this4.trigger(_constants.BREAKOUTS.EVENTS.MESSAGE, {
|
|
167
281
|
senderUserId: senderUserId,
|
|
168
282
|
sentTime: sentTime,
|
|
169
283
|
message: message,
|
|
170
284
|
// FIXME: This is only the current sessionId
|
|
171
285
|
// We'd need to check that the dataChannelUrl is still the same
|
|
172
286
|
// to guarantee that this message was sent to this session
|
|
173
|
-
sessionId:
|
|
287
|
+
sessionId: _this4.currentBreakoutSession.sessionId
|
|
174
288
|
});
|
|
175
289
|
});
|
|
176
290
|
},
|
|
@@ -179,12 +293,45 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
179
293
|
* @returns {void}
|
|
180
294
|
*/
|
|
181
295
|
listenToBreakoutRosters: function listenToBreakoutRosters() {
|
|
182
|
-
var
|
|
296
|
+
var _this5 = this;
|
|
183
297
|
this.listenTo(this.webex.internal.mercury, 'event:breakout.roster', function (event) {
|
|
184
|
-
|
|
185
|
-
|
|
298
|
+
_this5.handleRosterUpdate(event.data.locus);
|
|
299
|
+
_this5.trigger(_constants.BREAKOUTS.EVENTS.MEMBERS_UPDATE);
|
|
300
|
+
});
|
|
301
|
+
},
|
|
302
|
+
/**
|
|
303
|
+
* Sets up a listener for ask help notify from mecury
|
|
304
|
+
* @returns {void}
|
|
305
|
+
*/
|
|
306
|
+
listenToBreakoutHelp: function listenToBreakoutHelp() {
|
|
307
|
+
var _this6 = this;
|
|
308
|
+
this.listenTo(this.webex.internal.mercury, 'event:breakout.help', function (event) {
|
|
309
|
+
var _event$data2 = event.data,
|
|
310
|
+
participant = _event$data2.participant,
|
|
311
|
+
sessionId = _event$data2.sessionId;
|
|
312
|
+
_this6.trigger(_constants.BREAKOUTS.EVENTS.ASK_FOR_HELP, {
|
|
313
|
+
participant: participant,
|
|
314
|
+
sessionId: sessionId
|
|
315
|
+
});
|
|
186
316
|
});
|
|
187
317
|
},
|
|
318
|
+
/**
|
|
319
|
+
* get current breakout is in progress or not
|
|
320
|
+
* @returns {boolean}
|
|
321
|
+
*/
|
|
322
|
+
isBreakoutInProgress: function isBreakoutInProgress() {
|
|
323
|
+
var _this$groups2, _this$groups2$;
|
|
324
|
+
var currentStatus = ((_this$groups2 = this.groups) === null || _this$groups2 === void 0 ? void 0 : (_this$groups2$ = _this$groups2[0]) === null || _this$groups2$ === void 0 ? void 0 : _this$groups2$.status) || this.status;
|
|
325
|
+
return currentStatus === _constants.BREAKOUTS.STATUS.OPEN || currentStatus === _constants.BREAKOUTS.STATUS.CLOSING;
|
|
326
|
+
},
|
|
327
|
+
/**
|
|
328
|
+
* get current breakout is in closing or not
|
|
329
|
+
* @returns {boolean}
|
|
330
|
+
*/
|
|
331
|
+
isBreakoutIClosing: function isBreakoutIClosing() {
|
|
332
|
+
var _this$groups3, _this$groups3$;
|
|
333
|
+
return (((_this$groups3 = this.groups) === null || _this$groups3 === void 0 ? void 0 : (_this$groups3$ = _this$groups3[0]) === null || _this$groups3$ === void 0 ? void 0 : _this$groups3$.status) || this.status) === _constants.BREAKOUTS.STATUS.CLOSING;
|
|
334
|
+
},
|
|
188
335
|
/**
|
|
189
336
|
* Updates the information about the current breakout
|
|
190
337
|
* @param {Object} params
|
|
@@ -193,6 +340,10 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
193
340
|
updateBreakout: function updateBreakout(params) {
|
|
194
341
|
var _this$set;
|
|
195
342
|
this.set(params);
|
|
343
|
+
// These values are set manually so they are unset when they are not included in params
|
|
344
|
+
this.set('groups', params.groups);
|
|
345
|
+
this.set('startTime', params.startTime);
|
|
346
|
+
this.set('status', params.status);
|
|
196
347
|
this.set('currentBreakoutSession', (_this$set = {
|
|
197
348
|
sessionId: params.sessionId,
|
|
198
349
|
groupId: params.groupId,
|
|
@@ -200,8 +351,21 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
200
351
|
current: true,
|
|
201
352
|
sessionType: params.sessionType,
|
|
202
353
|
url: params.url
|
|
203
|
-
}, (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ACTIVE, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ALLOWED, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.
|
|
204
|
-
this.
|
|
354
|
+
}, (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ACTIVE, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ALLOWED, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ASSIGNED, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.REQUESTED, false), _this$set));
|
|
355
|
+
if (!this.isBreakoutInProgress()) {
|
|
356
|
+
this.clearBreakouts();
|
|
357
|
+
}
|
|
358
|
+
if (this.currentBreakoutSession.previous('sessionId') !== this.currentBreakoutSession.sessionId || this.currentBreakoutSession.previous('groupId') !== this.currentBreakoutSession.groupId) {
|
|
359
|
+
// should report joined session changed
|
|
360
|
+
var meeting = this.webex.meetings.getMeetingByType(_constants._ID_, this.meetingId);
|
|
361
|
+
_events.default.onBreakoutJoinResponse({
|
|
362
|
+
currentSession: this.currentBreakoutSession,
|
|
363
|
+
meeting: meeting,
|
|
364
|
+
breakoutMoveId: params.breakoutMoveId
|
|
365
|
+
},
|
|
366
|
+
// @ts-ignore
|
|
367
|
+
this.webex.internal.newMetrics.submitClientEvent.bind(this.webex.internal.newMetrics));
|
|
368
|
+
}
|
|
205
369
|
},
|
|
206
370
|
/**
|
|
207
371
|
* Updates the information about available breakouts
|
|
@@ -209,8 +373,14 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
209
373
|
* @returns {void}
|
|
210
374
|
*/
|
|
211
375
|
updateBreakoutSessions: function updateBreakoutSessions(payload) {
|
|
212
|
-
var
|
|
376
|
+
var _this7 = this;
|
|
213
377
|
var breakouts = {};
|
|
378
|
+
if (this.isBreakoutIClosing()) {
|
|
379
|
+
// fix issue: don't clear/update breakouts collection when in closing since locus DTO will send undefined or
|
|
380
|
+
// only the MAIN session info here, if just update it, will miss the breakout roster info during
|
|
381
|
+
// count down to end breakouts
|
|
382
|
+
return;
|
|
383
|
+
}
|
|
214
384
|
if (payload.breakoutSessions) {
|
|
215
385
|
(0, _forEach2.default)(_constants.BREAKOUTS.SESSION_STATES, function (state) {
|
|
216
386
|
(0, _forEach2.default)(payload.breakoutSessions[state], function (breakout) {
|
|
@@ -224,15 +394,76 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
224
394
|
breakouts[sessionId][_constants.BREAKOUTS.SESSION_STATES.REQUESTED] = false;
|
|
225
395
|
}
|
|
226
396
|
breakouts[sessionId][state] = true;
|
|
397
|
+
if (state === _constants.BREAKOUTS.SESSION_STATES.REQUESTED) {
|
|
398
|
+
breakouts[sessionId].requestedLastModifiedTime = breakout.modifiedAt;
|
|
399
|
+
}
|
|
227
400
|
});
|
|
228
401
|
});
|
|
229
402
|
}
|
|
230
403
|
(0, _forEach2.default)(breakouts, function (breakout) {
|
|
231
404
|
// eslint-disable-next-line no-param-reassign
|
|
232
|
-
breakout.url =
|
|
405
|
+
breakout.url = _this7.url;
|
|
233
406
|
});
|
|
234
407
|
this.breakouts.set((0, _values.default)(breakouts));
|
|
235
408
|
},
|
|
409
|
+
/**
|
|
410
|
+
* clear breakouts collection
|
|
411
|
+
* @returns {void}
|
|
412
|
+
*/
|
|
413
|
+
clearBreakouts: function clearBreakouts() {
|
|
414
|
+
if (this.breakouts.length > 0) {
|
|
415
|
+
this.breakouts.reset();
|
|
416
|
+
}
|
|
417
|
+
},
|
|
418
|
+
/**
|
|
419
|
+
* get main session
|
|
420
|
+
* @returns {Breakout}
|
|
421
|
+
*/
|
|
422
|
+
getMainSession: function getMainSession() {
|
|
423
|
+
if (this.isInMainSession) {
|
|
424
|
+
return this.currentBreakoutSession;
|
|
425
|
+
}
|
|
426
|
+
var mainSession = this.breakouts.filter(function (breakout) {
|
|
427
|
+
return breakout.isMain;
|
|
428
|
+
})[0];
|
|
429
|
+
if (!mainSession) {
|
|
430
|
+
throw new Error('no main session found');
|
|
431
|
+
}
|
|
432
|
+
return mainSession;
|
|
433
|
+
},
|
|
434
|
+
/**
|
|
435
|
+
* Host/CoHost ask all participants return to main session
|
|
436
|
+
* @returns {Promise}
|
|
437
|
+
*/
|
|
438
|
+
askAllToReturn: function askAllToReturn() {
|
|
439
|
+
var mainSession = this.getMainSession();
|
|
440
|
+
return this.webex.request({
|
|
441
|
+
method: _constants.HTTP_VERBS.POST,
|
|
442
|
+
uri: "".concat(this.url, "/requestMove"),
|
|
443
|
+
body: {
|
|
444
|
+
groupId: mainSession.groupId,
|
|
445
|
+
sessionId: mainSession.sessionId
|
|
446
|
+
}
|
|
447
|
+
});
|
|
448
|
+
},
|
|
449
|
+
/**
|
|
450
|
+
* Broadcast message to all breakout session's participants
|
|
451
|
+
* @param {String} message
|
|
452
|
+
* @param {Object} options
|
|
453
|
+
* @returns {Promise}
|
|
454
|
+
*/
|
|
455
|
+
broadcast: function broadcast(message, options) {
|
|
456
|
+
var breakoutGroupId = this.breakoutGroupId;
|
|
457
|
+
if (!breakoutGroupId) {
|
|
458
|
+
throw new Error('Cannot broadcast, no breakout session found');
|
|
459
|
+
}
|
|
460
|
+
return this.breakoutRequest.broadcast({
|
|
461
|
+
url: this.url,
|
|
462
|
+
message: message,
|
|
463
|
+
options: options,
|
|
464
|
+
groupId: breakoutGroupId
|
|
465
|
+
});
|
|
466
|
+
},
|
|
236
467
|
/**
|
|
237
468
|
* Make enable breakout resource
|
|
238
469
|
* @returns {Promise}
|
|
@@ -254,39 +485,39 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
254
485
|
return _promise.default.reject(new Error("enableBreakouts: the breakoutServiceUrl is empty"));
|
|
255
486
|
},
|
|
256
487
|
/**
|
|
257
|
-
* Make the meeting
|
|
488
|
+
* Make the meeting enable or disable breakout session
|
|
258
489
|
* @param {boolean} enable
|
|
259
490
|
* @returns {Promise}
|
|
260
491
|
*/
|
|
261
492
|
toggleBreakout: function toggleBreakout(enable) {
|
|
262
|
-
var
|
|
493
|
+
var _this8 = this;
|
|
263
494
|
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
264
495
|
var info;
|
|
265
496
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
266
497
|
while (1) switch (_context.prev = _context.next) {
|
|
267
498
|
case 0:
|
|
268
|
-
if (!(
|
|
499
|
+
if (!(_this8.enableBreakoutSession === undefined)) {
|
|
269
500
|
_context.next = 10;
|
|
270
501
|
break;
|
|
271
502
|
}
|
|
272
503
|
_context.next = 3;
|
|
273
|
-
return
|
|
504
|
+
return _this8.enableBreakouts();
|
|
274
505
|
case 3:
|
|
275
506
|
info = _context.sent;
|
|
507
|
+
// first time enable, set the initial data
|
|
508
|
+
_this8.updateBreakout(info === null || info === void 0 ? void 0 : info.body);
|
|
276
509
|
if (enable) {
|
|
277
510
|
_context.next = 8;
|
|
278
511
|
break;
|
|
279
512
|
}
|
|
280
|
-
// if enable is false, updateBreakout set the param then set enableBreakoutSession as false
|
|
281
|
-
_this6.updateBreakout(info.body);
|
|
282
513
|
_context.next = 8;
|
|
283
|
-
return
|
|
514
|
+
return _this8.doToggleBreakout(enable);
|
|
284
515
|
case 8:
|
|
285
516
|
_context.next = 12;
|
|
286
517
|
break;
|
|
287
518
|
case 10:
|
|
288
519
|
_context.next = 12;
|
|
289
|
-
return
|
|
520
|
+
return _this8.doToggleBreakout(enable);
|
|
290
521
|
case 12:
|
|
291
522
|
case "end":
|
|
292
523
|
return _context.stop();
|
|
@@ -300,16 +531,517 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
300
531
|
* @returns {Promise}
|
|
301
532
|
*/
|
|
302
533
|
doToggleBreakout: function doToggleBreakout(enable) {
|
|
534
|
+
var body = _objectSpread(_objectSpread({}, this.editLock && !!this.editLock.token ? {
|
|
535
|
+
editlock: {
|
|
536
|
+
token: this.editLock.token
|
|
537
|
+
}
|
|
538
|
+
} : {}), {
|
|
539
|
+
enableBreakoutSession: enable
|
|
540
|
+
});
|
|
541
|
+
|
|
303
542
|
// @ts-ignore
|
|
304
543
|
return this.webex.request({
|
|
305
544
|
method: _constants.HTTP_VERBS.PUT,
|
|
306
545
|
uri: this.url,
|
|
307
|
-
body:
|
|
308
|
-
|
|
546
|
+
body: body
|
|
547
|
+
});
|
|
548
|
+
},
|
|
549
|
+
/**
|
|
550
|
+
* set groups to manageGroups prop
|
|
551
|
+
* @param {Object} breakoutInfo -- breakout groups
|
|
552
|
+
* @returns {void}
|
|
553
|
+
*/
|
|
554
|
+
_setManageGroups: function _setManageGroups(breakoutInfo) {
|
|
555
|
+
var _breakoutInfo$body;
|
|
556
|
+
if (breakoutInfo !== null && breakoutInfo !== void 0 && (_breakoutInfo$body = breakoutInfo.body) !== null && _breakoutInfo$body !== void 0 && _breakoutInfo$body.groups) {
|
|
557
|
+
this.set('manageGroups', breakoutInfo.body.groups);
|
|
558
|
+
}
|
|
559
|
+
},
|
|
560
|
+
/**
|
|
561
|
+
* Create new breakout sessions
|
|
562
|
+
* @param {object} params -- breakout session group
|
|
563
|
+
* @returns {Promise}
|
|
564
|
+
*/
|
|
565
|
+
create: function create(params) {
|
|
566
|
+
var _this9 = this;
|
|
567
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
568
|
+
var payload, body, breakoutInfo;
|
|
569
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
570
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
571
|
+
case 0:
|
|
572
|
+
payload = _objectSpread({}, params);
|
|
573
|
+
body = _objectSpread(_objectSpread({}, _this9.editLock && !!_this9.editLock.token ? {
|
|
574
|
+
editlock: {
|
|
575
|
+
token: _this9.editLock.token
|
|
576
|
+
}
|
|
577
|
+
} : {}), {
|
|
578
|
+
groups: [payload]
|
|
579
|
+
}); // @ts-ignore
|
|
580
|
+
_context2.next = 4;
|
|
581
|
+
return _this9.webex.request({
|
|
582
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
583
|
+
uri: _this9.url,
|
|
584
|
+
body: body
|
|
585
|
+
}).catch(function (error) {
|
|
586
|
+
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#create'));
|
|
587
|
+
});
|
|
588
|
+
case 4:
|
|
589
|
+
breakoutInfo = _context2.sent;
|
|
590
|
+
_this9._setManageGroups(breakoutInfo);
|
|
591
|
+
|
|
592
|
+
// clear edit lock info after save breakout session info
|
|
593
|
+
_this9._clearEditLockInfo();
|
|
594
|
+
return _context2.abrupt("return", breakoutInfo);
|
|
595
|
+
case 8:
|
|
596
|
+
case "end":
|
|
597
|
+
return _context2.stop();
|
|
598
|
+
}
|
|
599
|
+
}, _callee2);
|
|
600
|
+
}))();
|
|
601
|
+
},
|
|
602
|
+
/**
|
|
603
|
+
* Delete all breakout sessions
|
|
604
|
+
* @returns {Promise}
|
|
605
|
+
*/
|
|
606
|
+
clearSessions: function clearSessions() {
|
|
607
|
+
var _this10 = this;
|
|
608
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
609
|
+
var body, breakoutInfo;
|
|
610
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
611
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
612
|
+
case 0:
|
|
613
|
+
body = _objectSpread(_objectSpread({}, _this10.editLock && !!_this10.editLock.token ? {
|
|
614
|
+
editlock: {
|
|
615
|
+
token: _this10.editLock.token
|
|
616
|
+
}
|
|
617
|
+
} : {}), {
|
|
618
|
+
groups: [{
|
|
619
|
+
action: _constants.BREAKOUTS.ACTION.DELETE
|
|
620
|
+
}]
|
|
621
|
+
}); // @ts-ignore
|
|
622
|
+
_context3.next = 3;
|
|
623
|
+
return _this10.webex.request({
|
|
624
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
625
|
+
uri: _this10.url,
|
|
626
|
+
body: body
|
|
627
|
+
}).catch(function (error) {
|
|
628
|
+
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#clearSessions'));
|
|
629
|
+
});
|
|
630
|
+
case 3:
|
|
631
|
+
breakoutInfo = _context3.sent;
|
|
632
|
+
_this10._setManageGroups(breakoutInfo);
|
|
633
|
+
return _context3.abrupt("return", breakoutInfo);
|
|
634
|
+
case 6:
|
|
635
|
+
case "end":
|
|
636
|
+
return _context3.stop();
|
|
637
|
+
}
|
|
638
|
+
}, _callee3);
|
|
639
|
+
}))();
|
|
640
|
+
},
|
|
641
|
+
/**
|
|
642
|
+
* Host or cohost starts breakout sessions
|
|
643
|
+
* @param {object} params
|
|
644
|
+
* @returns {Promise}
|
|
645
|
+
*/
|
|
646
|
+
start: function start() {
|
|
647
|
+
var _arguments = arguments,
|
|
648
|
+
_this11 = this;
|
|
649
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
|
|
650
|
+
var params, action, payload, body, breakoutInfo;
|
|
651
|
+
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
652
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
653
|
+
case 0:
|
|
654
|
+
params = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : {};
|
|
655
|
+
action = _constants.BREAKOUTS.ACTION.START;
|
|
656
|
+
payload = _objectSpread({
|
|
657
|
+
id: _this11.breakoutGroupId,
|
|
658
|
+
action: action,
|
|
659
|
+
allowBackToMain: false,
|
|
660
|
+
allowToJoinLater: false
|
|
661
|
+
}, params);
|
|
662
|
+
body = _objectSpread(_objectSpread({}, _this11.editLock && !!_this11.editLock.token ? {
|
|
663
|
+
editlock: {
|
|
664
|
+
token: _this11.editLock.token,
|
|
665
|
+
refresh: true
|
|
666
|
+
}
|
|
667
|
+
} : {}), {
|
|
668
|
+
groups: [payload]
|
|
669
|
+
});
|
|
670
|
+
_context4.next = 6;
|
|
671
|
+
return _this11.request({
|
|
672
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
673
|
+
uri: _this11.url,
|
|
674
|
+
body: body
|
|
675
|
+
}).catch(function (error) {
|
|
676
|
+
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#start'));
|
|
677
|
+
});
|
|
678
|
+
case 6:
|
|
679
|
+
breakoutInfo = _context4.sent;
|
|
680
|
+
_this11._setManageGroups(breakoutInfo);
|
|
681
|
+
return _context4.abrupt("return", breakoutInfo);
|
|
682
|
+
case 9:
|
|
683
|
+
case "end":
|
|
684
|
+
return _context4.stop();
|
|
685
|
+
}
|
|
686
|
+
}, _callee4);
|
|
687
|
+
}))();
|
|
688
|
+
},
|
|
689
|
+
/**
|
|
690
|
+
* Host or cohost ends breakout sessions
|
|
691
|
+
* @param {object} params
|
|
692
|
+
* @returns {Promise}
|
|
693
|
+
*/
|
|
694
|
+
end: function end() {
|
|
695
|
+
var _arguments2 = arguments,
|
|
696
|
+
_this12 = this;
|
|
697
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5() {
|
|
698
|
+
var params, delayCloseTime, id, action, payload, body, breakoutInfo;
|
|
699
|
+
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
700
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
701
|
+
case 0:
|
|
702
|
+
params = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : {};
|
|
703
|
+
delayCloseTime = _this12.delayCloseTime, id = _this12.breakoutGroupId;
|
|
704
|
+
action = _constants.BREAKOUTS.ACTION.CLOSE;
|
|
705
|
+
payload = _objectSpread({
|
|
706
|
+
id: id,
|
|
707
|
+
action: action,
|
|
708
|
+
delayCloseTime: delayCloseTime
|
|
709
|
+
}, params);
|
|
710
|
+
body = _objectSpread(_objectSpread({}, _this12.editLock && !!_this12.editLock.token ? {
|
|
711
|
+
editlock: {
|
|
712
|
+
token: _this12.editLock.token,
|
|
713
|
+
refresh: true
|
|
714
|
+
}
|
|
715
|
+
} : {}), {
|
|
716
|
+
groups: [payload]
|
|
717
|
+
});
|
|
718
|
+
_context5.next = 7;
|
|
719
|
+
return _this12.request({
|
|
720
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
721
|
+
uri: _this12.url,
|
|
722
|
+
body: body
|
|
723
|
+
}).catch(function (error) {
|
|
724
|
+
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#end'));
|
|
725
|
+
});
|
|
726
|
+
case 7:
|
|
727
|
+
breakoutInfo = _context5.sent;
|
|
728
|
+
_this12._setManageGroups(breakoutInfo);
|
|
729
|
+
return _context5.abrupt("return", breakoutInfo);
|
|
730
|
+
case 10:
|
|
731
|
+
case "end":
|
|
732
|
+
return _context5.stop();
|
|
733
|
+
}
|
|
734
|
+
}, _callee5);
|
|
735
|
+
}))();
|
|
736
|
+
},
|
|
737
|
+
/**
|
|
738
|
+
* Host or cohost update breakout sessions
|
|
739
|
+
* @param {Object} params
|
|
740
|
+
* @param {String} params.id
|
|
741
|
+
* @param {Boolean} unlockEdit
|
|
742
|
+
* @returns {Promise}
|
|
743
|
+
*/
|
|
744
|
+
update: function update(params, unlockEdit) {
|
|
745
|
+
var _this13 = this;
|
|
746
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
|
|
747
|
+
var _this13$editLock;
|
|
748
|
+
var payload, body, breakoutInfo;
|
|
749
|
+
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
750
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
751
|
+
case 0:
|
|
752
|
+
if (params.id) {
|
|
753
|
+
_context6.next = 2;
|
|
754
|
+
break;
|
|
755
|
+
}
|
|
756
|
+
return _context6.abrupt("return", _promise.default.reject(new Error('Missing breakout group id')));
|
|
757
|
+
case 2:
|
|
758
|
+
payload = _objectSpread({}, params);
|
|
759
|
+
body = _objectSpread(_objectSpread({}, (_this13$editLock = _this13.editLock) !== null && _this13$editLock !== void 0 && _this13$editLock.token ? {
|
|
760
|
+
editlock: {
|
|
761
|
+
token: _this13.editLock.token,
|
|
762
|
+
refresh: !unlockEdit
|
|
763
|
+
}
|
|
764
|
+
} : {}), {
|
|
765
|
+
groups: [payload]
|
|
766
|
+
});
|
|
767
|
+
_context6.next = 6;
|
|
768
|
+
return _this13.request({
|
|
769
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
770
|
+
uri: _this13.url,
|
|
771
|
+
body: body
|
|
772
|
+
}).catch(function (error) {
|
|
773
|
+
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#update'));
|
|
774
|
+
});
|
|
775
|
+
case 6:
|
|
776
|
+
breakoutInfo = _context6.sent;
|
|
777
|
+
if (unlockEdit) {
|
|
778
|
+
_this13._clearEditLockInfo();
|
|
779
|
+
}
|
|
780
|
+
_this13._setManageGroups(breakoutInfo);
|
|
781
|
+
return _context6.abrupt("return", breakoutInfo);
|
|
782
|
+
case 10:
|
|
783
|
+
case "end":
|
|
784
|
+
return _context6.stop();
|
|
785
|
+
}
|
|
786
|
+
}, _callee6);
|
|
787
|
+
}))();
|
|
788
|
+
},
|
|
789
|
+
/**
|
|
790
|
+
* get existed breakout sessions
|
|
791
|
+
* @param {boolean} editlock -- lock operations of the breakout sessions
|
|
792
|
+
* @returns {Promise}
|
|
793
|
+
*/
|
|
794
|
+
getBreakout: function getBreakout(editlock) {
|
|
795
|
+
var _this14 = this;
|
|
796
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7() {
|
|
797
|
+
var _breakout$body, _breakout$body$editlo;
|
|
798
|
+
var breakout;
|
|
799
|
+
return _regenerator.default.wrap(function _callee7$(_context7) {
|
|
800
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
801
|
+
case 0:
|
|
802
|
+
_context7.next = 2;
|
|
803
|
+
return _this14.request({
|
|
804
|
+
method: _constants.HTTP_VERBS.GET,
|
|
805
|
+
uri: _this14.url + (editlock ? "?editlock=".concat(editlock) : '')
|
|
806
|
+
});
|
|
807
|
+
case 2:
|
|
808
|
+
breakout = _context7.sent;
|
|
809
|
+
_this14._setManageGroups(breakout);
|
|
810
|
+
if (editlock && (_breakout$body = breakout.body) !== null && _breakout$body !== void 0 && (_breakout$body$editlo = _breakout$body.editlock) !== null && _breakout$body$editlo !== void 0 && _breakout$body$editlo.token) {
|
|
811
|
+
_this14.set('editLock', breakout.body.editlock);
|
|
812
|
+
_this14.keepEditLockAlive();
|
|
813
|
+
}
|
|
814
|
+
return _context7.abrupt("return", breakout);
|
|
815
|
+
case 6:
|
|
816
|
+
case "end":
|
|
817
|
+
return _context7.stop();
|
|
818
|
+
}
|
|
819
|
+
}, _callee7);
|
|
820
|
+
}))();
|
|
821
|
+
},
|
|
822
|
+
/**
|
|
823
|
+
* enable and edit lock breakout
|
|
824
|
+
* @returns {void}
|
|
825
|
+
*/
|
|
826
|
+
enableAndLockBreakout: function enableAndLockBreakout() {
|
|
827
|
+
var _this15 = this;
|
|
828
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {
|
|
829
|
+
var info;
|
|
830
|
+
return _regenerator.default.wrap(function _callee8$(_context8) {
|
|
831
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
832
|
+
case 0:
|
|
833
|
+
if (!_this15.enableBreakoutSession) {
|
|
834
|
+
_context8.next = 4;
|
|
835
|
+
break;
|
|
836
|
+
}
|
|
837
|
+
_this15.lockBreakout();
|
|
838
|
+
_context8.next = 8;
|
|
839
|
+
break;
|
|
840
|
+
case 4:
|
|
841
|
+
_context8.next = 6;
|
|
842
|
+
return _this15.enableBreakouts();
|
|
843
|
+
case 6:
|
|
844
|
+
info = _context8.sent;
|
|
845
|
+
if (info.body) {
|
|
846
|
+
_this15.lockBreakout();
|
|
847
|
+
}
|
|
848
|
+
case 8:
|
|
849
|
+
case "end":
|
|
850
|
+
return _context8.stop();
|
|
851
|
+
}
|
|
852
|
+
}, _callee8);
|
|
853
|
+
}))();
|
|
854
|
+
},
|
|
855
|
+
/**
|
|
856
|
+
* breakout edit locked by yourself or not
|
|
857
|
+
* @returns {boolean}
|
|
858
|
+
*/
|
|
859
|
+
hasBreakoutLocked: function hasBreakoutLocked() {
|
|
860
|
+
return this.editLock && this.editLock.token && this.editLock.state === _constants.BREAKOUTS.EDIT_LOCK_STATUS.LOCKED;
|
|
861
|
+
},
|
|
862
|
+
/**
|
|
863
|
+
* send breakout edit lock
|
|
864
|
+
* @returns {void}
|
|
865
|
+
*/
|
|
866
|
+
lockBreakout: function lockBreakout() {
|
|
867
|
+
var _this16 = this;
|
|
868
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9() {
|
|
869
|
+
var _breakout$body2, breakout;
|
|
870
|
+
return _regenerator.default.wrap(function _callee9$(_context9) {
|
|
871
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
872
|
+
case 0:
|
|
873
|
+
if (!(_this16.editLock && !!_this16.editLock.token)) {
|
|
874
|
+
_context9.next = 8;
|
|
875
|
+
break;
|
|
876
|
+
}
|
|
877
|
+
if (!(_this16.editLock.state === _constants.BREAKOUTS.EDIT_LOCK_STATUS.LOCKED)) {
|
|
878
|
+
_context9.next = 5;
|
|
879
|
+
break;
|
|
880
|
+
}
|
|
881
|
+
throw new Error('Breakout already locked');
|
|
882
|
+
case 5:
|
|
883
|
+
_this16.keepEditLockAlive();
|
|
884
|
+
case 6:
|
|
885
|
+
_context9.next = 12;
|
|
886
|
+
break;
|
|
887
|
+
case 8:
|
|
888
|
+
_context9.next = 10;
|
|
889
|
+
return _this16.getBreakout(true);
|
|
890
|
+
case 10:
|
|
891
|
+
breakout = _context9.sent;
|
|
892
|
+
if ((_breakout$body2 = breakout.body) !== null && _breakout$body2 !== void 0 && _breakout$body2.editlock) {
|
|
893
|
+
_this16.keepEditLockAlive();
|
|
894
|
+
}
|
|
895
|
+
case 12:
|
|
896
|
+
case "end":
|
|
897
|
+
return _context9.stop();
|
|
898
|
+
}
|
|
899
|
+
}, _callee9);
|
|
900
|
+
}))();
|
|
901
|
+
},
|
|
902
|
+
/**
|
|
903
|
+
* keep edit lock alive
|
|
904
|
+
* @returns {void}
|
|
905
|
+
*/
|
|
906
|
+
keepEditLockAlive: function keepEditLockAlive() {
|
|
907
|
+
var _this17 = this;
|
|
908
|
+
if (this.editLock && !!this.editLock.token) {
|
|
909
|
+
var ttl = this.editLock.ttl < 30 ? _constants.BREAKOUTS.DEFAULT_TTL : this.editLock.ttl;
|
|
910
|
+
if (this.intervalID) {
|
|
911
|
+
window.clearInterval(this.intervalID);
|
|
912
|
+
}
|
|
913
|
+
this.intervalID = window.setInterval(function () {
|
|
914
|
+
_this17.request({
|
|
915
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
916
|
+
uri: "".concat(_this17.url, "/editlock/").concat(_this17.editLock.token)
|
|
917
|
+
}).catch(function (error) {
|
|
918
|
+
_this17._clearEditLockInfo();
|
|
919
|
+
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#keepEditLockAlive'));
|
|
920
|
+
});
|
|
921
|
+
}, ttl / 2 * 1000);
|
|
922
|
+
}
|
|
923
|
+
},
|
|
924
|
+
/**
|
|
925
|
+
* unlock edit breakout
|
|
926
|
+
* @returns {void}
|
|
927
|
+
*/
|
|
928
|
+
unLockEditBreakout: function unLockEditBreakout() {
|
|
929
|
+
var _this18 = this;
|
|
930
|
+
if (this.editLock && !!this.editLock.token) {
|
|
931
|
+
this.request({
|
|
932
|
+
method: _constants.HTTP_VERBS.DELETE,
|
|
933
|
+
uri: "".concat(this.url, "/editlock/").concat(this.editLock.token)
|
|
934
|
+
}).then(function () {
|
|
935
|
+
_this18._clearEditLockInfo();
|
|
936
|
+
}).catch(function (error) {
|
|
937
|
+
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#unLockEditBreakout'));
|
|
938
|
+
});
|
|
939
|
+
}
|
|
940
|
+
},
|
|
941
|
+
/**
|
|
942
|
+
* clear interval and edit lock info
|
|
943
|
+
* @private
|
|
944
|
+
* @returns {void}
|
|
945
|
+
*/
|
|
946
|
+
_clearEditLockInfo: function _clearEditLockInfo() {
|
|
947
|
+
if (this.intervalID) {
|
|
948
|
+
clearInterval(this.intervalID);
|
|
949
|
+
}
|
|
950
|
+
this.set('editLock', {});
|
|
951
|
+
},
|
|
952
|
+
/**
|
|
953
|
+
* assign participants to breakout session
|
|
954
|
+
* @param {Array} sessions
|
|
955
|
+
* @returns {void}
|
|
956
|
+
*/
|
|
957
|
+
assign: function assign(sessions) {
|
|
958
|
+
var internalSessions = sessions.map(function (item) {
|
|
959
|
+
return {
|
|
960
|
+
id: item.id,
|
|
961
|
+
assigned: item.memberIds,
|
|
962
|
+
assignedEmails: item.emails,
|
|
963
|
+
anyoneCanJoin: !!item.anyone
|
|
964
|
+
};
|
|
965
|
+
});
|
|
966
|
+
var body = _objectSpread(_objectSpread({}, this.editLock && !!this.editLock.token ? {
|
|
967
|
+
editlock: {
|
|
968
|
+
token: this.editLock.token,
|
|
969
|
+
refresh: true
|
|
970
|
+
}
|
|
971
|
+
} : {}), {
|
|
972
|
+
groups: [{
|
|
973
|
+
id: this.breakoutGroupId,
|
|
974
|
+
sessions: internalSessions
|
|
975
|
+
}]
|
|
976
|
+
});
|
|
977
|
+
return this.request({
|
|
978
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
979
|
+
uri: this.url,
|
|
980
|
+
body: body
|
|
981
|
+
});
|
|
982
|
+
},
|
|
983
|
+
/**
|
|
984
|
+
* query preAssignments
|
|
985
|
+
* @returns {void}
|
|
986
|
+
*/
|
|
987
|
+
queryPreAssignments: function queryPreAssignments() {
|
|
988
|
+
var _this19 = this;
|
|
989
|
+
this.webex.request({
|
|
990
|
+
uri: "".concat(this.url, "/preassignments"),
|
|
991
|
+
qs: {
|
|
992
|
+
locusUrl: btoa(this.locusUrl)
|
|
993
|
+
}
|
|
994
|
+
}).then(function (result) {
|
|
995
|
+
var _result$body;
|
|
996
|
+
if ((_result$body = result.body) !== null && _result$body !== void 0 && _result$body.groups) {
|
|
997
|
+
_this19.set('preAssignments', result.body.groups);
|
|
998
|
+
_this19.trigger(_constants.BREAKOUTS.EVENTS.PRE_ASSIGNMENTS_UPDATE);
|
|
309
999
|
}
|
|
1000
|
+
}).catch(function (error) {
|
|
1001
|
+
_loggerProxy.default.logger.error('Meeting:breakouts#queryPreAssignments failed', error);
|
|
1002
|
+
});
|
|
1003
|
+
},
|
|
1004
|
+
/**
|
|
1005
|
+
* assign participants dynamically after breakout sessions started,
|
|
1006
|
+
* but currently it only used for admitting participants from lobby into breakout directly
|
|
1007
|
+
* @param {Array} sessions
|
|
1008
|
+
* @returns {void}
|
|
1009
|
+
*/
|
|
1010
|
+
dynamicAssign: function dynamicAssign(sessions) {
|
|
1011
|
+
var updatedSessions = sessions.map(function (item) {
|
|
1012
|
+
return {
|
|
1013
|
+
id: item.id,
|
|
1014
|
+
participants: item.participants,
|
|
1015
|
+
targetState: item.targetState
|
|
1016
|
+
};
|
|
310
1017
|
});
|
|
1018
|
+
var body = {
|
|
1019
|
+
groups: [{
|
|
1020
|
+
id: this.breakoutGroupId,
|
|
1021
|
+
sessions: updatedSessions
|
|
1022
|
+
}],
|
|
1023
|
+
editlock: null
|
|
1024
|
+
};
|
|
1025
|
+
if (this.editLock && this.editLock.token) {
|
|
1026
|
+
body.editlock = this.editLock;
|
|
1027
|
+
}
|
|
1028
|
+
return this.request({
|
|
1029
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
1030
|
+
uri: "".concat(this.url, "/dynamicAssign"),
|
|
1031
|
+
body: body
|
|
1032
|
+
});
|
|
1033
|
+
},
|
|
1034
|
+
/**
|
|
1035
|
+
* trigger ASK_RETURN_TO_MAIN event when main session requested
|
|
1036
|
+
* @param {Object} breakout
|
|
1037
|
+
* @returns {void}
|
|
1038
|
+
*/
|
|
1039
|
+
triggerReturnToMainEvent: function triggerReturnToMainEvent(breakout) {
|
|
1040
|
+
if (breakout.isMain && breakout.requested) {
|
|
1041
|
+
this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
|
|
1042
|
+
}
|
|
311
1043
|
},
|
|
312
|
-
version: "3.0.0-beta.
|
|
1044
|
+
version: "3.0.0-beta.280"
|
|
313
1045
|
});
|
|
314
1046
|
var _default = Breakouts;
|
|
315
1047
|
exports.default = _default;
|