@instructure/quiz-core 17.58.2-rc.0 → 17.58.2-rc.10

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.
Files changed (63) hide show
  1. package/es/banks/api/banks.js +35 -1
  2. package/es/banks/components/Bank/index.js +16 -7
  3. package/es/banks/components/Bank/presenter.js +198 -18
  4. package/es/building/components/layout/header/BuildingButtons/index.js +2 -0
  5. package/es/building/components/layout/header/BuildingButtons/presenter.js +8 -0
  6. package/es/building/components/resources/BanksTray/presenter.js +2 -1
  7. package/es/common/actions/sharedBanks.js +2 -2
  8. package/es/index.js +1 -0
  9. package/es/moderating/components/events/Event.js +1 -1
  10. package/es/moderating/components/resources/AccommodationsModal/index.js +1 -1
  11. package/es/moderating/components/resources/ModerateTable/presenter.js +2 -2
  12. package/es/moderating/components/resources/ModerateTableRow/index.js +1 -1
  13. package/es/reporting/components/charts/QuintileDistribution/presenter.js +15 -2
  14. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/index.js +2 -0
  15. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/presenter.js +64 -0
  16. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/theme.js +3 -0
  17. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/index.js +2 -0
  18. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/presenter.js +75 -0
  19. package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/theme.js +6 -0
  20. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/index.js +2 -0
  21. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/popoverContent.js +18 -0
  22. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +262 -0
  23. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/theme.js +12 -0
  24. package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js +59 -58
  25. package/es/reporting/components/resources/NewQuizAndItemAnalysis/ReportCard/index.js +68 -0
  26. package/es/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/index.js +2 -0
  27. package/es/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/presenter.js +84 -0
  28. package/es/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/theme.js +12 -0
  29. package/es/reporting/components/resources/NewQuizAndItemAnalysis/presenter.js +13 -18
  30. package/es/reporting/components/resources/NewQuizAndItemAnalysis/utils.js +1 -1
  31. package/es/reporting/components/resources/ReportCard/index.js +1 -1
  32. package/lib/banks/api/banks.js +40 -2
  33. package/lib/banks/components/Bank/index.js +15 -2
  34. package/lib/banks/components/Bank/presenter.js +203 -17
  35. package/lib/building/components/layout/header/BuildingButtons/index.js +3 -0
  36. package/lib/building/components/layout/header/BuildingButtons/presenter.js +8 -0
  37. package/lib/building/components/resources/BanksTray/presenter.js +2 -1
  38. package/lib/common/actions/sharedBanks.js +2 -2
  39. package/lib/index.js +107 -98
  40. package/lib/moderating/components/events/Event.js +1 -1
  41. package/lib/moderating/components/resources/AccommodationsModal/index.js +1 -1
  42. package/lib/moderating/components/resources/ModerateTable/presenter.js +2 -2
  43. package/lib/moderating/components/resources/ModerateTableRow/index.js +1 -1
  44. package/lib/reporting/components/charts/QuintileDistribution/presenter.js +15 -2
  45. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/index.js +11 -0
  46. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/presenter.js +83 -0
  47. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/theme.js +10 -0
  48. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/index.js +11 -0
  49. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/presenter.js +95 -0
  50. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/theme.js +13 -0
  51. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/index.js +11 -0
  52. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/popoverContent.js +27 -0
  53. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +291 -0
  54. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/theme.js +19 -0
  55. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js +64 -63
  56. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/ReportCard/index.js +91 -0
  57. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/index.js +11 -0
  58. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/presenter.js +106 -0
  59. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/theme.js +19 -0
  60. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/presenter.js +15 -20
  61. package/lib/reporting/components/resources/NewQuizAndItemAnalysis/utils.js +1 -1
  62. package/lib/reporting/components/resources/ReportCard/index.js +1 -1
  63. package/package.json +9 -9
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.default = exports.Bank = void 0;
11
11
 
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
14
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
+
16
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
+
12
18
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
19
 
14
20
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -27,6 +33,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
27
33
 
28
34
  var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
29
35
 
36
+ var _partial = _interopRequireDefault(require("lodash/partial"));
37
+
30
38
  var _uiIcons = require("@instructure/ui-icons");
31
39
 
32
40
  var _uiBreadcrumb = require("@instructure/ui-breadcrumb");
@@ -39,6 +47,10 @@ var _uiA11yContent = require("@instructure/ui-a11y-content");
39
47
 
40
48
  var _uiThemeable = require("@instructure/ui-themeable");
41
49
 
50
+ var _uiCheckbox = require("@instructure/ui-checkbox");
51
+
52
+ var _uiView = require("@instructure/ui-view");
53
+
42
54
  var _Bank = _interopRequireDefault(require("../../../common/records/Bank.js"));
43
55
 
44
56
  var _index = _interopRequireDefault(require("../../../common/components/layout/Page/index.js"));
@@ -94,6 +106,10 @@ var Bank = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
94
106
  }
95
107
 
96
108
  _this = _super.call.apply(_super, [this].concat(_args));
109
+ _this.state = {
110
+ sharedWithCourse: false,
111
+ shareWithCourseCheckboxDisabled: true
112
+ };
97
113
 
98
114
  _this.openAddBankEntryModal = function () {
99
115
  _this.props.openModal(_quizCommon.ADD_BANK_ENTRY_MODAL, {
@@ -113,6 +129,74 @@ var Bank = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
113
129
  _this.createBankEntryButton = c;
114
130
  };
115
131
 
132
+ _this.toggleCheckbox = function () {
133
+ // disable until request resolves
134
+ _this.setState({
135
+ shareWithCourseCheckboxDisabled: true
136
+ });
137
+
138
+ _this.changeSharedPermissions();
139
+ };
140
+
141
+ _this.unshareBankWithCourse = /*#__PURE__*/function () {
142
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(sharedBank) {
143
+ var _this$props, updateSharedBankPermission, bankId, getSharedBank, scope;
144
+
145
+ return _regenerator.default.wrap(function _callee$(_context) {
146
+ while (1) {
147
+ switch (_context.prev = _context.next) {
148
+ case 0:
149
+ _this$props = _this.props, updateSharedBankPermission = _this$props.updateSharedBankPermission, bankId = _this$props.bankId, getSharedBank = _this$props.getSharedBank, scope = _this$props.scope;
150
+ _context.next = 3;
151
+ return updateSharedBankPermission(bankId, sharedBank.get('id'), _quizCommon.REMOVED_ACCESS);
152
+
153
+ case 3:
154
+ getSharedBank(bankId, scope.type, scope.uuid).catch(function (err) {
155
+ // make sure the user still has access to the bank
156
+ if (err.response.status === 401) {
157
+ _this.props.navigateToBanks();
158
+ }
159
+ });
160
+
161
+ case 4:
162
+ case "end":
163
+ return _context.stop();
164
+ }
165
+ }
166
+ }, _callee);
167
+ }));
168
+
169
+ return function (_x) {
170
+ return _ref.apply(this, arguments);
171
+ };
172
+ }();
173
+
174
+ _this.translatedPermissionLevel = function (permission) {
175
+ var _CAN_EDIT$READ_ONLY$p;
176
+
177
+ return (_CAN_EDIT$READ_ONLY$p = {}, (0, _defineProperty2.default)(_CAN_EDIT$READ_ONLY$p, _quizCommon.CAN_EDIT, (0, _formatMessage.default)('edit')), (0, _defineProperty2.default)(_CAN_EDIT$READ_ONLY$p, _quizCommon.READ_ONLY, (0, _formatMessage.default)('view')), _CAN_EDIT$READ_ONLY$p)[permission];
178
+ };
179
+
180
+ _this.confirmUnshareBankWithCourse = function () {
181
+ var confirmText = (0, _formatMessage.default)('You are about to remove { accessLevel } access for { entityTitle } to this bank.', {
182
+ accessLevel: _this.translatedPermissionLevel(_this.props.courseSharedBank.get('permission')),
183
+ entityTitle: _this.props.scope.title
184
+ });
185
+
186
+ _this.props.withConfirm((0, _partial.default)(_this.unshareBankWithCourse, _this.props.courseSharedBank), {
187
+ title: (0, _formatMessage.default)('Unshare Bank with Course'),
188
+ text: confirmText,
189
+ continueText: (0, _formatMessage.default)('Confirm'),
190
+ onCancel: _this.onCancelUnshareBankWithCourse
191
+ });
192
+ };
193
+
194
+ _this.onCancelUnshareBankWithCourse = function () {
195
+ _this.setState({
196
+ shareWithCourseCheckboxDisabled: false
197
+ });
198
+ };
199
+
116
200
  _this.addBankToQuiz = function () {
117
201
  var newEntry = _QuizEntry.default.create({
118
202
  entryId: _this.props.bankId,
@@ -138,8 +222,8 @@ var Bank = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
138
222
  }, _this.renderNewBankEntryButton());
139
223
  };
140
224
 
141
- _this.announceResults = function (_ref) {
142
- var totalPages = _ref.totalPages;
225
+ _this.announceResults = function (_ref2) {
226
+ var totalPages = _ref2.totalPages;
143
227
  var message = (0, _formatMessage.default)("{\n count, plural,\n =0 {No search results found}\n one {Displaying one page of results}\n other {Displaying # pages of results}\n }", {
144
228
  count: totalPages
145
229
  }); // Audibly announce when search results are ready.
@@ -153,10 +237,10 @@ var Bank = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
153
237
  _this.debouncedAnnounceResults = (0, _debounce.default)(_this.announceResults, 1000);
154
238
 
155
239
  _this.getPage = function (page, search) {
156
- var _this$props = _this.props,
157
- getBankEntries = _this$props.getBankEntries,
158
- bankId = _this$props.bankId,
159
- useBankSearch = _this$props.useBankSearch;
240
+ var _this$props2 = _this.props,
241
+ getBankEntries = _this$props2.getBankEntries,
242
+ bankId = _this$props2.bankId,
243
+ useBankSearch = _this$props2.useBankSearch;
160
244
  var text = search.get('text');
161
245
  var interactionTypes = search.get('interactionTypes', immutable.Set()).toJS();
162
246
  var tagIds = search.get('tags', []).map(function (tag) {
@@ -211,19 +295,68 @@ var Bank = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
211
295
 
212
296
  if (this.props.onError) {
213
297
  this.props.getBank(this.props.bankId).catch(this.props.onError);
298
+
299
+ if (this.shouldRenderShareWithCourseCheckbox()) {
300
+ this.props.getSharedBank(this.props.bankId, this.props.scope.type, this.props.scope.uuid).catch(this.props.onError);
301
+ }
214
302
  } else {
215
303
  this.props.getBank(this.props.bankId);
304
+
305
+ if (this.shouldRenderShareWithCourseCheckbox()) {
306
+ this.props.getSharedBank(this.props.bankId, this.props.scope.type, this.props.scope.uuid);
307
+ }
308
+ } // when courseSharedBank is already loaded
309
+
310
+
311
+ if (this.props.courseSharedBank) {
312
+ this.setShareWithCourseCheckbox();
216
313
  }
217
314
  }
315
+ }, {
316
+ key: "componentDidUpdate",
317
+ value: function componentDidUpdate(prevProps) {
318
+ var _prevProps$courseShar, _this$props$courseSha;
319
+
320
+ var permissionChanged = ((_prevProps$courseShar = prevProps.courseSharedBank) === null || _prevProps$courseShar === void 0 ? void 0 : _prevProps$courseShar.get('permission')) !== ((_this$props$courseSha = this.props.courseSharedBank) === null || _this$props$courseSha === void 0 ? void 0 : _this$props$courseSha.get('permission'));
321
+
322
+ if (this.props.courseSharedBank && permissionChanged) {
323
+ this.setShareWithCourseCheckbox();
324
+ }
325
+ }
326
+ }, {
327
+ key: "setShareWithCourseCheckbox",
328
+ value: function setShareWithCourseCheckbox() {
329
+ if (this.props.courseSharedBank.get('permission') === _quizCommon.REMOVED_ACCESS) {
330
+ this.setState({
331
+ sharedWithCourse: false,
332
+ shareWithCourseCheckboxDisabled: false
333
+ });
334
+ } else {
335
+ this.setState({
336
+ sharedWithCourse: true,
337
+ shareWithCourseCheckboxDisabled: false
338
+ });
339
+ }
340
+ }
341
+ }, {
342
+ key: "componentWillUnmount",
343
+ value: function componentWillUnmount() {
344
+ this.props.removeSharedBank(this.placeholderCourseSharedBankKey());
345
+ }
346
+ }, {
347
+ key: "placeholderCourseSharedBankKey",
348
+ value: function placeholderCourseSharedBankKey() {
349
+ return "notshared_".concat(this.props.bankId, "_").concat(this.props.scope.uuid);
350
+ }
218
351
  }, {
219
352
  key: "renderNav",
220
353
  value: function renderNav() {
221
- var _this$props2 = this.props,
222
- scope = _this$props2.scope,
223
- closeTray = _this$props2.closeTray,
224
- navigateToBanks = _this$props2.navigateToBanks,
225
- navigateToBuild = _this$props2.navigateToBuild,
226
- returnToUrl = _this$props2.returnToUrl;
354
+ var _this$props3 = this.props,
355
+ scope = _this$props3.scope,
356
+ closeTray = _this$props3.closeTray,
357
+ navigateToBanks = _this$props3.navigateToBanks,
358
+ navigateToBuild = _this$props3.navigateToBuild,
359
+ returnToUrl = _this$props3.returnToUrl;
227
360
  var isScopeEmpty = !Object.keys(scope).length;
228
361
  return /*#__PURE__*/_react.default.createElement(_index7.default, {
229
362
  closeTray: closeTray,
@@ -255,6 +388,50 @@ var Bank = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
255
388
  });
256
389
  }
257
390
  }
391
+ }, {
392
+ key: "changeSharedPermissions",
393
+ value: function changeSharedPermissions() {
394
+ if (this.props.bank.canEdit()) {
395
+ if (!this.state.sharedWithCourse) {
396
+ var shareBank = {
397
+ entityId: this.props.scope.uuid,
398
+ entityType: this.props.scope.type,
399
+ title: this.props.scope.title,
400
+ permission: _quizCommon.READ_ONLY,
401
+ bankId: this.props.bankId
402
+ };
403
+ this.props.removeSharedBank(this.placeholderCourseSharedBankKey());
404
+ this.props.shareBank(shareBank);
405
+ } else {
406
+ this.confirmUnshareBankWithCourse();
407
+ }
408
+ }
409
+ }
410
+ }, {
411
+ key: "shouldRenderShareWithCourseCheckbox",
412
+ value: function shouldRenderShareWithCourseCheckbox() {
413
+ return this.props.showShareBankFromTray && this.props.scope.type === 'course' && this.props.scope.title && this.props.scope.uuid;
414
+ }
415
+ }, {
416
+ key: "renderCheckbox",
417
+ value: function renderCheckbox() {
418
+ if (!this.shouldRenderShareWithCourseCheckbox()) {
419
+ return null;
420
+ }
421
+
422
+ var label = (0, _formatMessage.default)('Share with { courseName }', {
423
+ courseName: this.props.scope.title
424
+ });
425
+ return /*#__PURE__*/_react.default.createElement(_uiView.View, {
426
+ margin: "small 0",
427
+ as: "div"
428
+ }, /*#__PURE__*/_react.default.createElement(_uiCheckbox.Checkbox, {
429
+ checked: this.state.sharedWithCourse,
430
+ label: label,
431
+ onChange: this.toggleCheckbox,
432
+ disabled: this.props.bank.canEdit() ? this.state.shareWithCourseCheckboxDisabled : true
433
+ }));
434
+ }
258
435
  }, {
259
436
  key: "renderModals",
260
437
  value: function renderModals() {
@@ -330,7 +507,7 @@ var Bank = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
330
507
  value: function render() {
331
508
  return /*#__PURE__*/_react.default.createElement(_index.default, null, this.renderModals(), this.renderNav(), /*#__PURE__*/_react.default.createElement("div", {
332
509
  className: styles.content
333
- }, this.renderName(), /*#__PURE__*/_react.default.createElement("div", {
510
+ }, this.renderName(), this.renderCheckbox(), /*#__PURE__*/_react.default.createElement("div", {
334
511
  className: styles.topMenu
335
512
  }, this.renderTopLeftMenu(), this.renderTopRightMenu()), this.renderSearch(), /*#__PURE__*/_react.default.createElement(_index2.default, {
336
513
  empty: this.emptyLoadText(),
@@ -352,6 +529,7 @@ var Bank = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
352
529
  closeTray: _propTypes.default.func,
353
530
  getBank: _propTypes.default.func.isRequired,
354
531
  getBankEntries: _propTypes.default.func.isRequired,
532
+ getSharedBank: _propTypes.default.func.isRequired,
355
533
  isCompact: _propTypes.default.bool,
356
534
  isQuizContentLocked: _propTypes.default.bool.isRequired,
357
535
  navigateToBanks: _propTypes.default.func.isRequired,
@@ -360,20 +538,26 @@ var Bank = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
360
538
  // can be from consumer
361
539
  navigateToBuild: _propTypes.default.func,
362
540
  // from consumer
363
- scope: _propTypes.default.objectOf(_propTypes.default.shape({
541
+ scope: _propTypes.default.shape({
364
542
  type: _propTypes.default.string,
365
543
  uuid: _propTypes.default.string,
366
544
  title: _propTypes.default.string
367
- })),
545
+ }),
546
+ courseSharedBank: _reactImmutableProptypes.default.map,
368
547
  returnToUrl: _propTypes.default.string,
369
548
  // from consumer
370
549
  onError: _propTypes.default.func,
371
550
  openModal: _propTypes.default.func.isRequired,
372
551
  position: _propTypes.default.number,
552
+ removeSharedBank: _propTypes.default.func.isRequired,
373
553
  resetSearch: _propTypes.default.func.isRequired,
374
554
  screenreaderNotification: _propTypes.default.func.isRequired,
375
555
  search: _reactImmutableProptypes.default.map.isRequired,
376
- stimulusId: _propTypes.default.string
556
+ shareBank: _propTypes.default.func.isRequired,
557
+ stimulusId: _propTypes.default.string,
558
+ showShareBankFromTray: _propTypes.default.bool,
559
+ updateSharedBankPermission: _propTypes.default.func.isRequired,
560
+ withConfirm: _propTypes.default.func.isRequired
377
561
  }, _class2.defaultProps = {
378
562
  activeQuizId: null,
379
563
  addEntryToQuiz: null,
@@ -387,7 +571,9 @@ var Bank = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
387
571
  stimulusId: null,
388
572
  scope: {},
389
573
  returnToUrl: null,
390
- isQuizContentLocked: false
574
+ isQuizContentLocked: false,
575
+ showShareBankFromTray: false,
576
+ courseSharedBank: null
391
577
  }, _temp)) || _class);
392
578
  exports.Bank = Bank;
393
579
  var _default = Bank;
@@ -32,6 +32,8 @@ var _featureCheck = require("../../../../../common/util/featureCheck.js");
32
32
 
33
33
  var _quizExport = require("../../../../../common/actions/quizExport.js");
34
34
 
35
+ var _alerts = require("../../../../../common/actions/alerts.js");
36
+
35
37
  function mapStateToProps(state) {
36
38
  var quiz = (0, _quizzes.getActiveQuiz)(state);
37
39
  return {
@@ -48,6 +50,7 @@ function mapStateToProps(state) {
48
50
 
49
51
  var mapDispatchToProps = function mapDispatchToProps(dispatch) {
50
52
  return {
53
+ addInfo: (0, _redux.bindActionCreators)(_alerts.addInfo, dispatch),
51
54
  openBanksTray: (0, _redux.bindActionCreators)(_ui.set.bind(void 0, _quizCommon.BUILD_TRAY_OPEN, true), dispatch),
52
55
  setBanksTrayButtonRef: (0, _redux.bindActionCreators)((0, _partial.default)(_ui.set, _quizCommon.BUILD_TRAY_BUTTON_REF), dispatch),
53
56
  startExport: (0, _redux.bindActionCreators)(_quizExport.startQuizExportJob, dispatch),
@@ -66,6 +66,10 @@ var BuildingButtons = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
66
66
 
67
67
  _this = _super.call.apply(_super, [this].concat(args));
68
68
 
69
+ _this.quizExportAlert = function () {
70
+ _this.props.addInfo((0, _formatMessage.default)("The export process has been started. This can take a while for larger quizzes.\n You can leave the page and you'll get notified when the export is completed."));
71
+ };
72
+
69
73
  _this.openBanksTray = function () {
70
74
  _this.props.setBanksTrayButtonRef(_this.banksTrayButton);
71
75
 
@@ -87,6 +91,8 @@ var BuildingButtons = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
87
91
  quizzes: [activeQuizId]
88
92
  };
89
93
 
94
+ _this.quizExportAlert();
95
+
90
96
  _this.props.contentExport({
91
97
  contextUuid: contextUuid,
92
98
  exportSettings: exportSettings
@@ -220,6 +226,7 @@ var BuildingButtons = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
220
226
  return BuildingButtons;
221
227
  }(_react.Component), _class2.propTypes = {
222
228
  app: _propTypes.default.string,
229
+ addInfo: _propTypes.default.func,
223
230
  activeQuizId: _propTypes.default.string,
224
231
  canExport: _propTypes.default.bool.isRequired,
225
232
  canImport: _propTypes.default.bool.isRequired,
@@ -240,6 +247,7 @@ var BuildingButtons = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles
240
247
  contextUuid: _propTypes.default.string
241
248
  }, _class2.defaultProps = {
242
249
  activeQuizId: null,
250
+ addInfo: function addInfo() {},
243
251
  app: null,
244
252
  contentExportEnabled: false,
245
253
  contentExport: null,
@@ -123,7 +123,8 @@ var BanksTray = /*#__PURE__*/function (_Component) {
123
123
  closeTray: this.closeTray,
124
124
  bankId: activeBankId,
125
125
  navigateToBanks: this.clearActiveBank,
126
- navigateToBankEntry: this.props.newActiveBankEntry
126
+ navigateToBankEntry: this.props.newActiveBankEntry,
127
+ scope: this.props.itemBanksScope
127
128
  });
128
129
  }
129
130
  } else {
@@ -28,10 +28,10 @@ var updateSharedBankPermission = function updateSharedBankPermission(sharedBankI
28
28
 
29
29
  exports.updateSharedBankPermission = updateSharedBankPermission;
30
30
 
31
- var removeSharedBank = function removeSharedBank(bankId) {
31
+ var removeSharedBank = function removeSharedBank(sharedBankId) {
32
32
  return {
33
33
  type: _quizCommon.REMOVE_SHARED_BANK,
34
- payload: bankId
34
+ payload: sharedBankId
35
35
  };
36
36
  };
37
37