| 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
93
94
95
96 | 2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
| var BS, ExternalPlan, PlanFooter, PlanMixin, React, Router, TaskPlanActions, TaskPlanBuilder, TaskPlanStore, TutorDateInput, TutorInput, TutorTextArea, _, ref, ref1, validator;
React = require('react');
_ = require('underscore');
BS = require('react-bootstrap');
Router = require('react-router');
validator = require('validator');
ref = require('../../tutor-input'), TutorInput = ref.TutorInput, TutorDateInput = ref.TutorDateInput, TutorTextArea = ref.TutorTextArea;
ref1 = require('../../../flux/task-plan'), TaskPlanStore = ref1.TaskPlanStore, TaskPlanActions = ref1.TaskPlanActions;
PlanFooter = require('../footer');
PlanMixin = require('../plan-mixin');
TaskPlanBuilder = require('../builder');
ExternalPlan = React.createClass({
displayName: 'ExternalPlan',
mixins: [PlanMixin],
setUrl: function(url) {
var id;
id = this.props.id;
return TaskPlanActions.updateUrl(id, url);
},
validate: function(inputValue) {
if (!((inputValue != null) && inputValue.length > 0)) {
return ['required'];
}
if (!validator.isURL(inputValue)) {
return ['url'];
}
},
render: function() {
var courseId, externalUrl, footer, formClasses, header, id, isURLLocked, label, plan, ref2, ref3, ref4;
ref2 = this.props, id = ref2.id, courseId = ref2.courseId;
plan = TaskPlanStore.get(id);
externalUrl = plan != null ? (ref3 = plan.settings) != null ? ref3.external_url : void 0 : void 0;
formClasses = ['edit-external', 'dialog'];
footer = React.createElement(PlanFooter, {
"id": id,
"courseId": courseId,
"onPublish": this.publish,
"onSave": this.save,
"onCancel": this.cancel,
"getBackToCalendarParams": this.getBackToCalendarParams,
"goBackToCalendar": this.goBackToCalendar
});
header = this.builderHeader('external');
label = 'Assignment URL';
if ((ref4 = this.state) != null ? ref4.invalid : void 0) {
formClasses.push('is-invalid-form');
}
isURLLocked = TaskPlanStore.isOpened(id) && TaskPlanStore.isPublished(id);
if (isURLLocked) {
label = label + " (Cannot be changed once assignment is opened and published)";
}
return React.createElement("div", {
"className": 'external-plan task-plan',
"data-assignment-type": 'external'
}, React.createElement(BS.Panel, {
"bsStyle": 'primary',
"className": formClasses.join(' '),
"footer": footer,
"header": header
}, React.createElement(BS.Grid, {
"fluid": true
}, React.createElement(TaskPlanBuilder, {
"courseId": courseId,
"id": id
}), React.createElement(BS.Row, null, React.createElement(BS.Col, {
"xs": 12.,
"md": 12.
}, React.createElement(TutorInput, {
"disabled": isURLLocked,
"label": label,
"className": 'external-url',
"id": 'external-url',
"default": externalUrl,
"required": true,
"validate": this.validate,
"onChange": this.setUrl
}))))));
}
});
module.exports = {
ExternalPlan: ExternalPlan
};
|