@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.
- package/es/banks/api/banks.js +35 -1
- package/es/banks/components/Bank/index.js +16 -7
- package/es/banks/components/Bank/presenter.js +198 -18
- package/es/building/components/layout/header/BuildingButtons/index.js +2 -0
- package/es/building/components/layout/header/BuildingButtons/presenter.js +8 -0
- package/es/building/components/resources/BanksTray/presenter.js +2 -1
- package/es/common/actions/sharedBanks.js +2 -2
- package/es/index.js +1 -0
- package/es/moderating/components/events/Event.js +1 -1
- package/es/moderating/components/resources/AccommodationsModal/index.js +1 -1
- package/es/moderating/components/resources/ModerateTable/presenter.js +2 -2
- package/es/moderating/components/resources/ModerateTableRow/index.js +1 -1
- package/es/reporting/components/charts/QuintileDistribution/presenter.js +15 -2
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/index.js +2 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/presenter.js +64 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/theme.js +3 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/index.js +2 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/presenter.js +75 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/theme.js +6 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/index.js +2 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/popoverContent.js +18 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +262 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/theme.js +12 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js +59 -58
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/ReportCard/index.js +68 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/index.js +2 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/presenter.js +84 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/theme.js +12 -0
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/presenter.js +13 -18
- package/es/reporting/components/resources/NewQuizAndItemAnalysis/utils.js +1 -1
- package/es/reporting/components/resources/ReportCard/index.js +1 -1
- package/lib/banks/api/banks.js +40 -2
- package/lib/banks/components/Bank/index.js +15 -2
- package/lib/banks/components/Bank/presenter.js +203 -17
- package/lib/building/components/layout/header/BuildingButtons/index.js +3 -0
- package/lib/building/components/layout/header/BuildingButtons/presenter.js +8 -0
- package/lib/building/components/resources/BanksTray/presenter.js +2 -1
- package/lib/common/actions/sharedBanks.js +2 -2
- package/lib/index.js +107 -98
- package/lib/moderating/components/events/Event.js +1 -1
- package/lib/moderating/components/resources/AccommodationsModal/index.js +1 -1
- package/lib/moderating/components/resources/ModerateTable/presenter.js +2 -2
- package/lib/moderating/components/resources/ModerateTableRow/index.js +1 -1
- package/lib/reporting/components/charts/QuintileDistribution/presenter.js +15 -2
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/index.js +11 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/presenter.js +83 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisMetric/theme.js +10 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/index.js +11 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/presenter.js +95 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/AnalysisPopoverMetric/theme.js +13 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/index.js +11 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/popoverContent.js +27 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/presenter.js +291 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewItemAnalysis/theme.js +19 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/NewQuizAnalysis/presenter.js +64 -63
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/ReportCard/index.js +91 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/index.js +11 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/presenter.js +106 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/theme.js +19 -0
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/presenter.js +15 -20
- package/lib/reporting/components/resources/NewQuizAndItemAnalysis/utils.js +1 -1
- package/lib/reporting/components/resources/ReportCard/index.js +1 -1
- package/package.json +9 -9
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
3
|
+
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
4
|
+
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
5
|
+
|
|
6
|
+
var _dec, _class, _class2, _temp;
|
|
7
|
+
|
|
8
|
+
import React, { Component } from 'react';
|
|
9
|
+
import PropTypes from 'prop-types';
|
|
10
|
+
import t from '@instructure/quiz-i18n/es/format-message';
|
|
11
|
+
import { Text } from '@instructure/ui-text';
|
|
12
|
+
import { Link } from '@instructure/ui-link';
|
|
13
|
+
import { Flex } from '@instructure/ui-flex';
|
|
14
|
+
import { themeable } from '@instructure/ui-themeable';
|
|
15
|
+
import Card from "../../../../../common/components/shared/Card/index.js";
|
|
16
|
+
var styles = {
|
|
17
|
+
componentId: 'eRzKS',
|
|
18
|
+
template: function template(theme) {
|
|
19
|
+
return "\n\n.eRzKS_fbIL{border-radius:".concat(theme.cardBorderRadius || 'inherit', ";box-shadow:").concat(theme.cardBoxShadow || 'inherit', ";display:inline-flex;flex-direction:column;height:").concat(theme.cardHeight || 'inherit', ";margin:").concat(theme.cardMargin || 'inherit', ";padding:").concat(theme.cardPadding || 'inherit', ";width:").concat(theme.cardWidth || 'inherit', "}\n\n.eRzKS_ebWM{padding-top:").concat(theme.detailPadding || 'inherit', "}");
|
|
20
|
+
},
|
|
21
|
+
'card': 'eRzKS_fbIL',
|
|
22
|
+
'details': 'eRzKS_ebWM'
|
|
23
|
+
};
|
|
24
|
+
import theme from "../../ReportCard/theme.js";
|
|
25
|
+
export var NewQuizAndItemAnalysisReportCard = (_dec = themeable(theme, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
|
|
26
|
+
_inherits(NewQuizAndItemAnalysisReportCard, _Component);
|
|
27
|
+
|
|
28
|
+
var _super = _createSuper(NewQuizAndItemAnalysisReportCard);
|
|
29
|
+
|
|
30
|
+
function NewQuizAndItemAnalysisReportCard() {
|
|
31
|
+
_classCallCheck(this, NewQuizAndItemAnalysisReportCard);
|
|
32
|
+
|
|
33
|
+
return _super.apply(this, arguments);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
_createClass(NewQuizAndItemAnalysisReportCard, [{
|
|
37
|
+
key: "render",
|
|
38
|
+
value: function render() {
|
|
39
|
+
var _this$props = this.props,
|
|
40
|
+
name = _this$props.name,
|
|
41
|
+
href = _this$props.href;
|
|
42
|
+
return /*#__PURE__*/React.createElement(Card, {
|
|
43
|
+
className: styles.card
|
|
44
|
+
}, /*#__PURE__*/React.createElement(Flex, {
|
|
45
|
+
direction: "column"
|
|
46
|
+
}, /*#__PURE__*/React.createElement(Flex.Item, null, /*#__PURE__*/React.createElement(Text, {
|
|
47
|
+
size: "medium",
|
|
48
|
+
weight: "bold"
|
|
49
|
+
}, name)), /*#__PURE__*/React.createElement(Flex.Item, {
|
|
50
|
+
align: "end"
|
|
51
|
+
}, /*#__PURE__*/React.createElement(Link, {
|
|
52
|
+
href: href
|
|
53
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
54
|
+
size: "small"
|
|
55
|
+
}, t('View Report'))))));
|
|
56
|
+
}
|
|
57
|
+
}]);
|
|
58
|
+
|
|
59
|
+
NewQuizAndItemAnalysisReportCard.displayName = "NewQuizAndItemAnalysisReportCard";
|
|
60
|
+
return NewQuizAndItemAnalysisReportCard;
|
|
61
|
+
}(Component), _class2.propTypes = {
|
|
62
|
+
name: PropTypes.node,
|
|
63
|
+
href: PropTypes.string
|
|
64
|
+
}, _class2.defaultProps = {
|
|
65
|
+
name: void 0,
|
|
66
|
+
href: void 0
|
|
67
|
+
}, _temp)) || _class);
|
|
68
|
+
export default NewQuizAndItemAnalysisReportCard;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
3
|
+
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
4
|
+
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
|
|
5
|
+
|
|
6
|
+
var _dec, _class, _temp;
|
|
7
|
+
|
|
8
|
+
import React, { Component } from 'react';
|
|
9
|
+
import QuintileDistribution from "../../../../charts/QuintileDistribution/index.js";
|
|
10
|
+
import { themeable } from '@instructure/ui-themeable';
|
|
11
|
+
import theme from "./theme.js";
|
|
12
|
+
var styles = {
|
|
13
|
+
componentId: 'eRgoL',
|
|
14
|
+
template: function template(theme) {
|
|
15
|
+
return "\n\n.eRgoL_YBfL{background-color:".concat(theme.legendRectFillColor || 'inherit', "}\n\n.eRgoL_eDZF{column-gap:10px;display:inline-flex;padding:").concat(theme.legendPadding || 'inherit', " 0}\n\n.eRgoL_dVXF{margin:").concat(theme.legendMargin || 'inherit', " 0}\n\n.eRgoL_dxZa,[dir=ltr] .eRgoL_dxZa,[dir=rtl] .eRgoL_dxZa{text-align:center}");
|
|
16
|
+
},
|
|
17
|
+
'legendRect': 'eRgoL_YBfL',
|
|
18
|
+
'legendContainer': 'eRgoL_eDZF',
|
|
19
|
+
'headingContainer': 'eRgoL_dVXF',
|
|
20
|
+
'chartLabel': 'eRgoL_dxZa'
|
|
21
|
+
};
|
|
22
|
+
import t from '@instructure/quiz-i18n/es/format-message';
|
|
23
|
+
import { Text } from '@instructure/ui-text';
|
|
24
|
+
import { Heading } from '@instructure/ui-heading';
|
|
25
|
+
import Legend from "../../../../charts/Legend/index.js";
|
|
26
|
+
export var ScoreDistribution = (_dec = themeable(theme, styles), _dec(_class = (_temp = /*#__PURE__*/function (_Component) {
|
|
27
|
+
_inherits(ScoreDistribution, _Component);
|
|
28
|
+
|
|
29
|
+
var _super = _createSuper(ScoreDistribution);
|
|
30
|
+
|
|
31
|
+
function ScoreDistribution() {
|
|
32
|
+
var _this;
|
|
33
|
+
|
|
34
|
+
_classCallCheck(this, ScoreDistribution);
|
|
35
|
+
|
|
36
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
37
|
+
args[_key] = arguments[_key];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
41
|
+
|
|
42
|
+
_this.calculateLabelForColumn = function (index, length) {
|
|
43
|
+
var label = Math.floor(index * 100 / length);
|
|
44
|
+
return t('{label, number}%', {
|
|
45
|
+
label: label
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
return _this;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
_createClass(ScoreDistribution, [{
|
|
53
|
+
key: "render",
|
|
54
|
+
value: function render() {
|
|
55
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
56
|
+
className: styles.headingContainer
|
|
57
|
+
}, /*#__PURE__*/React.createElement(Heading, {
|
|
58
|
+
level: "h2",
|
|
59
|
+
theme: {
|
|
60
|
+
h2FontWeight: 300
|
|
61
|
+
}
|
|
62
|
+
}, t('Score Distribution'))), /*#__PURE__*/React.createElement(QuintileDistribution, {
|
|
63
|
+
animateDelay: 1000,
|
|
64
|
+
animateDuration: 1000,
|
|
65
|
+
visualDistribution: this.props.decileDistribution,
|
|
66
|
+
calculateLabelForColumn: this.calculateLabelForColumn
|
|
67
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
68
|
+
className: styles.chartLabel
|
|
69
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
70
|
+
size: "small"
|
|
71
|
+
}, t('Score'))), /*#__PURE__*/React.createElement("div", {
|
|
72
|
+
className: styles.legendContainer
|
|
73
|
+
}, /*#__PURE__*/React.createElement(Legend, {
|
|
74
|
+
series: [{
|
|
75
|
+
className: styles.legendRect,
|
|
76
|
+
label: t('Number of Students')
|
|
77
|
+
}]
|
|
78
|
+
})));
|
|
79
|
+
}
|
|
80
|
+
}]);
|
|
81
|
+
|
|
82
|
+
ScoreDistribution.displayName = "ScoreDistribution";
|
|
83
|
+
return ScoreDistribution;
|
|
84
|
+
}(Component), _temp)) || _class);
|
package/es/reporting/components/resources/NewQuizAndItemAnalysis/charts/ScoreDistribution/theme.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export default function generator(_ref) {
|
|
2
|
+
var colors = _ref.colors,
|
|
3
|
+
spacing = _ref.spacing,
|
|
4
|
+
typography = _ref.typography;
|
|
5
|
+
return {
|
|
6
|
+
legendRectFillColor: colors.electric,
|
|
7
|
+
legendPadding: spacing.small,
|
|
8
|
+
legendBorderColor: colors.ash,
|
|
9
|
+
legendFontSize: typography.fontSizeXSmall,
|
|
10
|
+
legendMargin: spacing.medium
|
|
11
|
+
};
|
|
12
|
+
}
|
|
@@ -4,7 +4,7 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
|
4
4
|
import React, { useEffect, useState } from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { Heading } from '@instructure/ui-heading';
|
|
7
|
-
import
|
|
7
|
+
import NewItemAnalysis from "./NewItemAnalysis/index.js";
|
|
8
8
|
import Spinner from "../../../../common/components/shared/spinner/Spinner.js";
|
|
9
9
|
import NewQuizAnalysis from "./NewQuizAnalysis/index.js";
|
|
10
10
|
|
|
@@ -43,7 +43,10 @@ export var NewQuizAndItemAnalysis = function NewQuizAndItemAnalysis(_ref) {
|
|
|
43
43
|
|
|
44
44
|
case 2:
|
|
45
45
|
response = _context.sent;
|
|
46
|
-
|
|
46
|
+
|
|
47
|
+
if (response) {
|
|
48
|
+
setQuizAnalysis(response.last_successful_analysis);
|
|
49
|
+
}
|
|
47
50
|
|
|
48
51
|
case 4:
|
|
49
52
|
case "end":
|
|
@@ -73,7 +76,10 @@ export var NewQuizAndItemAnalysis = function NewQuizAndItemAnalysis(_ref) {
|
|
|
73
76
|
|
|
74
77
|
case 2:
|
|
75
78
|
response = _context2.sent;
|
|
76
|
-
|
|
79
|
+
|
|
80
|
+
if (response) {
|
|
81
|
+
setItemAnalyses(response.last_successful_analysis);
|
|
82
|
+
}
|
|
77
83
|
|
|
78
84
|
case 4:
|
|
79
85
|
case "end":
|
|
@@ -100,21 +106,10 @@ export var NewQuizAndItemAnalysis = function NewQuizAndItemAnalysis(_ref) {
|
|
|
100
106
|
return /*#__PURE__*/React.createElement("div", {
|
|
101
107
|
className: "fs-mask"
|
|
102
108
|
}, _ref4, _ref5, itemAnalyses === null || itemAnalyses === void 0 ? void 0 : itemAnalyses.map(function (itemAnalysis) {
|
|
103
|
-
return /*#__PURE__*/React.createElement(
|
|
104
|
-
key: itemAnalysis.metadata.item_id
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
renderLabel: "ITEM DIFFICULTY",
|
|
108
|
-
renderValue: itemAnalysis.scores.difficulty_index
|
|
109
|
-
}), /*#__PURE__*/React.createElement(Metric, {
|
|
110
|
-
key: "responded",
|
|
111
|
-
renderLabel: "RESPONDED",
|
|
112
|
-
renderValue: itemAnalysis.attempts.students_responded
|
|
113
|
-
}), /*#__PURE__*/React.createElement(Metric, {
|
|
114
|
-
key: "skipped",
|
|
115
|
-
renderLabel: "SKIPPED/NO RESPONSE",
|
|
116
|
-
renderValue: itemAnalysis.attempts.students_without_response
|
|
117
|
-
}));
|
|
109
|
+
return /*#__PURE__*/React.createElement(NewItemAnalysis, {
|
|
110
|
+
key: itemAnalysis.metadata.item_id,
|
|
111
|
+
itemAnalysis: itemAnalysis
|
|
112
|
+
});
|
|
118
113
|
}));
|
|
119
114
|
/* eslint-enable react/jsx-no-literals */
|
|
120
115
|
}; // TODO: distinguish between loading and empty item analyses (eg. when there is no items in a quiz)
|
|
@@ -12,7 +12,7 @@ import { Link } from '@instructure/ui-link';
|
|
|
12
12
|
import { themeable } from '@instructure/ui-themeable';
|
|
13
13
|
import Card from "../../../../common/components/shared/Card/index.js";
|
|
14
14
|
var styles = {
|
|
15
|
-
componentId: '
|
|
15
|
+
componentId: 'cNnNG',
|
|
16
16
|
template: function template(theme) {
|
|
17
17
|
return "\n\n.eRzKS_fbIL{border-radius:".concat(theme.cardBorderRadius || 'inherit', ";box-shadow:").concat(theme.cardBoxShadow || 'inherit', ";display:inline-flex;flex-direction:column;height:").concat(theme.cardHeight || 'inherit', ";margin:").concat(theme.cardMargin || 'inherit', ";padding:").concat(theme.cardPadding || 'inherit', ";width:").concat(theme.cardWidth || 'inherit', "}\n\n.eRzKS_ebWM{padding-top:").concat(theme.detailPadding || 'inherit', "}");
|
|
18
18
|
},
|
package/lib/banks/api/banks.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.getExistingBankAndEntries = getExistingBankAndEntries;
|
|
9
|
-
exports.updateSharedBankPermission = exports.getSharedBanks = exports.shareBank = exports.deleteBank = exports.updateBank = exports.createBank = exports.getBank = exports.getAllBanks = exports.getBanks = void 0;
|
|
9
|
+
exports.updateSharedBankPermission = exports.getSharedBanks = exports.getSharedBank = exports.shareBank = exports.deleteBank = exports.updateBank = exports.createBank = exports.getBank = exports.getAllBanks = exports.getBanks = void 0;
|
|
10
10
|
|
|
11
11
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
12
12
|
|
|
@@ -34,6 +34,8 @@ var _helpers = require("../../common/api/helpers.js");
|
|
|
34
34
|
|
|
35
35
|
var _quizCommon = require("@instructure/quiz-common");
|
|
36
36
|
|
|
37
|
+
var _lodash = require("lodash");
|
|
38
|
+
|
|
37
39
|
var banksApiEndpoint = '/api/banks';
|
|
38
40
|
var DEFAULT_PAGE_SIZE = 100;
|
|
39
41
|
|
|
@@ -211,7 +213,8 @@ var deleteBank = function deleteBank(bankId) {
|
|
|
211
213
|
|
|
212
214
|
exports.deleteBank = deleteBank;
|
|
213
215
|
|
|
214
|
-
var shareBank = function shareBank(_shareBank
|
|
216
|
+
var shareBank = function shareBank(_shareBank) {
|
|
217
|
+
var getUserInfo = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : _lodash.noop;
|
|
215
218
|
var url = "".concat(banksApiEndpoint, "/").concat(_shareBank.bankId, "/shared_banks");
|
|
216
219
|
return function (dispatch, getState) {
|
|
217
220
|
var shareBankData = JSON.stringify({
|
|
@@ -258,6 +261,41 @@ var shareBank = function shareBank(_shareBank, getUserInfo) {
|
|
|
258
261
|
|
|
259
262
|
exports.shareBank = shareBank;
|
|
260
263
|
|
|
264
|
+
var getSharedBank = function getSharedBank(bankId, entityType, entityId) {
|
|
265
|
+
var url = "".concat(banksApiEndpoint, "/").concat(bankId, "/shared_banks");
|
|
266
|
+
var params = {
|
|
267
|
+
entity_type: entityType,
|
|
268
|
+
entity_id: entityId
|
|
269
|
+
};
|
|
270
|
+
return function (dispatch, getState) {
|
|
271
|
+
var fetcher = new _Fetcher.default({
|
|
272
|
+
onError: (0, _helpers.handleError)(dispatch, (0, _formatMessage.default)('Failed to fetch shared bank.'))
|
|
273
|
+
});
|
|
274
|
+
return fetcher.get(url, params).then(function (sharedBankInfo) {
|
|
275
|
+
// if the API returns no data, we manually add placeholder to the response
|
|
276
|
+
if (sharedBankInfo.length === 0) {
|
|
277
|
+
var placeholder = {
|
|
278
|
+
id: "notshared_".concat(bankId, "_").concat(entityId),
|
|
279
|
+
entityType: entityType,
|
|
280
|
+
entityId: entityId,
|
|
281
|
+
permission: _quizCommon.REMOVED_ACCESS,
|
|
282
|
+
bankId: bankId
|
|
283
|
+
};
|
|
284
|
+
sharedBankInfo.push(placeholder);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
dispatch((0, _callHandlers.handleShareBanksResponse)(sharedBankInfo));
|
|
288
|
+
}).catch(function (err) {
|
|
289
|
+
if (err.response.status === 401) {
|
|
290
|
+
dispatch((0, _ui.clear)(_quizCommon.BANKS_BANK_PAGINATION));
|
|
291
|
+
throw err;
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
};
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
exports.getSharedBank = getSharedBank;
|
|
298
|
+
|
|
261
299
|
var getSharedBanks = function getSharedBanks(bank, getUserInfo, getCourseInfo) {
|
|
262
300
|
var url = "".concat(banksApiEndpoint, "/").concat(bank.id, "/shared_banks");
|
|
263
301
|
var userSharedBanks = [];
|
|
@@ -7,6 +7,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
+
exports.mapStateToProps = mapStateToProps;
|
|
10
11
|
exports.default = exports.Bank = void 0;
|
|
11
12
|
|
|
12
13
|
var immutable = _interopRequireWildcard(require("immutable"));
|
|
@@ -33,11 +34,16 @@ var _alerts = require("../../../common/actions/alerts.js");
|
|
|
33
34
|
|
|
34
35
|
var _bankSearch = require("../../../common/actions/bankSearch.js");
|
|
35
36
|
|
|
37
|
+
var _sharedBanks = require("../../../common/actions/sharedBanks.js");
|
|
38
|
+
|
|
36
39
|
var _featureCheck = require("../../../common/util/featureCheck.js");
|
|
37
40
|
|
|
38
41
|
function mapStateToProps(state, props) {
|
|
39
42
|
var bank = new _Bank.default(state.getIn(['banks', props.bankId]));
|
|
40
43
|
var search = state.get('bankSearch', immutable.Map());
|
|
44
|
+
var courseSharedBank = state.get('sharedBanks', immutable.Map()).find(function (sharedBank) {
|
|
45
|
+
return sharedBank.get('bankId') === props.bankId && sharedBank.get('entityType') === props.scope.type && sharedBank.get('entityId') === props.scope.uuid;
|
|
46
|
+
});
|
|
41
47
|
var activeQuiz = (0, _quizzes.getActiveQuiz)(state);
|
|
42
48
|
var lockBlueprintContentEnabled = (0, _featureCheck.featureOn)('lock_blueprint_content');
|
|
43
49
|
var isQuizContentLocked = activeQuiz && activeQuiz.originalQuizLockedByBlueprint && lockBlueprintContentEnabled;
|
|
@@ -45,10 +51,12 @@ function mapStateToProps(state, props) {
|
|
|
45
51
|
bank: bank,
|
|
46
52
|
isQuizContentLocked: isQuizContentLocked,
|
|
47
53
|
search: search,
|
|
54
|
+
courseSharedBank: courseSharedBank,
|
|
48
55
|
useBankSearch: (0, _featureCheck.featureOn)('item_bank_search'),
|
|
49
56
|
position: state.getIn(['ui', _quizCommon.BUILD_TRAY_POSITION]),
|
|
50
57
|
stimulusId: state.getIn(['ui', _quizCommon.BUILD_TRAY_STIMULUS_ID]),
|
|
51
|
-
activeQuizId: state.getIn(['quizzes', 'activeQuizId'])
|
|
58
|
+
activeQuizId: state.getIn(['quizzes', 'activeQuizId']),
|
|
59
|
+
showShareBankFromTray: (0, _featureCheck.featureOn)('share_bank_from_tray')
|
|
52
60
|
};
|
|
53
61
|
}
|
|
54
62
|
|
|
@@ -56,9 +64,14 @@ var mapDispatchToProps = {
|
|
|
56
64
|
addEntryToQuiz: _quizEntries.createQuizEntry,
|
|
57
65
|
getBank: _banks.getBank,
|
|
58
66
|
getBankEntries: _bankEntries.getBankEntries,
|
|
67
|
+
getSharedBank: _banks.getSharedBank,
|
|
59
68
|
openModal: _modal.openModal,
|
|
69
|
+
removeSharedBank: _sharedBanks.removeSharedBank,
|
|
60
70
|
resetSearch: _bankSearch.reset,
|
|
61
|
-
screenreaderNotification: _alerts.screenreaderNotification
|
|
71
|
+
screenreaderNotification: _alerts.screenreaderNotification,
|
|
72
|
+
shareBank: _banks.shareBank,
|
|
73
|
+
updateSharedBankPermission: _banks.updateSharedBankPermission,
|
|
74
|
+
withConfirm: _modal.withConfirm
|
|
62
75
|
};
|
|
63
76
|
var Bank = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(_presenter.Bank);
|
|
64
77
|
exports.Bank = Bank;
|