| 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
97
98
99
100
101
102
103
104
105
106
107
108 | 2×
2×
2×
2×
2×
2×
2×
2×
521×
521×
521×
168×
353×
353×
353×
2×
2×
454×
454×
454×
454×
454×
101×
353×
353×
353×
353×
2×
| var BS, Details, Instructions, Markdown, React, Time, _;
React = require('react');
BS = require('react-bootstrap');
Time = require('../time');
Markdown = require('../markdown');
_ = require('underscore');
Instructions = React.createClass({
displayName: 'Instructions',
propTypes: {
task: React.PropTypes.object.isRequired,
title: React.PropTypes.string,
trigger: React.PropTypes.string,
placement: React.PropTypes.string,
popverClassName: React.PropTypes.string
},
getDefaultProps: function() {
return {
title: 'Instructions',
trigger: 'hover',
placement: 'top',
popverClassName: 'task-details-popover'
};
},
render: function() {
var children, defaultTriggerButton, instructionsPopover, placement, popverClassName, ref, task, title, trigger;
ref = this.props, task = ref.task, title = ref.title, trigger = ref.trigger, placement = ref.placement, popverClassName = ref.popverClassName, children = ref.children;
if (task.description == null) {
return null;
}
instructionsPopover = React.createElement(BS.Popover, {
"className": popverClassName,
"title": title
}, React.createElement(Markdown, {
"text": task.description
}));
defaultTriggerButton = React.createElement("button", {
"className": 'task-details-instructions'
});
return React.createElement(BS.OverlayTrigger, {
"trigger": trigger,
"placement": placement,
"overlay": instructionsPopover
}, children || defaultTriggerButton);
}
});
Details = React.createClass({
displayName: 'Details',
propTypes: {
task: React.PropTypes.object.isRequired,
title: React.PropTypes.string,
dateFormat: React.PropTypes.string,
dateLabel: React.PropTypes.string,
trigger: React.PropTypes.string,
placement: React.PropTypes.string,
className: React.PropTypes.string,
lateStatus: React.PropTypes.element
},
getDefaultProps: function() {
return {
dateFormat: 'ddd MMM Do',
dateLabel: 'Due'
};
},
render: function() {
var className, dateFormat, dateLabel, details, instructionsProps, lateStatus, ref, task;
ref = this.props, task = ref.task, dateFormat = ref.dateFormat, dateLabel = ref.dateLabel, lateStatus = ref.lateStatus, className = ref.className;
Iif (className == null) {
className = '';
}
className += ' task-details';
if (task.due_at == null) {
return null;
}
Eif (task.description) {
instructionsProps = _.pick(this.props, 'task', 'title', 'trigger', 'placement');
details = React.createElement("div", {
"className": className
}, React.createElement("div", null, dateLabel, " ", React.createElement(Time, {
"date": task.due_at,
"format": dateFormat
}), lateStatus, React.createElement(Instructions, React.__spread({}, instructionsProps))));
} else {
details = React.createElement("div", {
"className": className
}, React.createElement("div", {
"className": 'task-details-due-date'
}, dateLabel, " ", React.createElement(Time, {
"date": task.due_at,
"format": dateFormat
}), lateStatus));
}
return details;
}
});
module.exports = {
Details: Details,
Instructions: Instructions
};
|