| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92 | 2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
402×
402×
402×
2×
402×
402×
402×
402×
402×
402×
2×
25×
25×
25×
25×
25×
165×
165×
165×
165×
402×
| var Exercise, ExternalUrl, Interactive, LoadableItem, Placeholder, React, Reading, STEP_TYPES, Spacer, SpyMode, StepPanel, TaskStepActions, TaskStepLoaded, TaskStepStore, TaskStore, Video, err, getStepType, ref, ref1,
slice = [].slice;
React = require('react');
SpyMode = require('openstax-react-components').SpyMode;
TaskStore = require('../../flux/task').TaskStore;
ref = require('../../flux/task-step'), TaskStepActions = ref.TaskStepActions, TaskStepStore = ref.TaskStepStore;
LoadableItem = require('../loadable-item');
ref1 = require('./all-steps'), Reading = ref1.Reading, Interactive = ref1.Interactive, Video = ref1.Video, Exercise = ref1.Exercise, Placeholder = ref1.Placeholder, Spacer = ref1.Spacer, ExternalUrl = ref1.ExternalUrl;
StepPanel = require('../../helpers/policies').StepPanel;
err = function() {
var msgs;
msgs = 1 <= arguments.length ? slice.call(arguments, 0) : [];
console.error.apply(console, msgs);
throw new Error(JSON.stringify.apply(JSON, msgs));
};
STEP_TYPES = {
reading: Reading,
interactive: Interactive,
video: Video,
exercise: Exercise,
placeholder: Placeholder,
spacer: Spacer,
external_url: ExternalUrl
};
getStepType = function(typeName) {
var type;
type = STEP_TYPES[typeName];
return type || err('BUG: Invalid task step type', typeName);
};
TaskStepLoaded = React.createClass({
displayName: 'TaskStepLoaded',
propTypes: {
id: React.PropTypes.string.isRequired,
onNextStep: React.PropTypes.func.isRequired,
onStepCompleted: React.PropTypes.func.isRequired
},
render: function() {
var Type, id, ref2, spy, taskId, type;
ref2 = this.props, id = ref2.id, taskId = ref2.taskId;
type = TaskStepStore.get(id).type;
spy = TaskStore.get(taskId).spy;
Type = getStepType(type);
return React.createElement("div", null, React.createElement(Type, React.__spread({}, this.props)), React.createElement(SpyMode.Content, {
"className": 'task-ecosystem-info'
}, "TaskId: ", taskId, ", StepId: ", id, ", Ecosystem: ", (spy != null ? spy.ecosystem_title : void 0)));
}
});
module.exports = React.createClass({
displayName: 'TaskStep',
propTypes: {
id: React.PropTypes.string.isRequired,
onNextStep: React.PropTypes.func.isRequired
},
onStepCompleted: function() {
var canWrite, id;
id = this.props.id;
canWrite = StepPanel.canWrite(id);
Eif (canWrite) {
return TaskStepActions.complete(id);
}
},
render: function() {
var id;
id = this.props.id;
return React.createElement(LoadableItem, {
"id": id,
"store": TaskStepStore,
"actions": TaskStepActions,
"renderItem": ((function(_this) {
return function() {
return React.createElement(TaskStepLoaded, React.__spread({}, _this.props, {
"onStepCompleted": _this.onStepCompleted
}));
};
})(this))
});
}
});
|