Skip to content

Commit 937ea83

Browse files
committed
page tasks component
1 parent 4344f92 commit 937ea83

File tree

15 files changed

+49
-229
lines changed

15 files changed

+49
-229
lines changed

lib/components/account/account.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,7 @@ var default_1 = (function (_super) {
1111
_super.apply(this, arguments);
1212
}
1313
default_1.prototype.render = function () {
14-
return (React.createElement("section", {className: 'cr-account'},
15-
React.createElement("h3", null, "Account")
16-
));
14+
return (React.createElement("section", {className: 'cr-account'}, React.createElement("h3", null, "Account")));
1715
};
1816
return default_1;
1917
}(React.Component));

lib/components/app/app.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,7 @@ var default_1 = (function (_super) {
3030
};
3131
default_1.prototype.render = function () {
3232
var state = this.props.state;
33-
return (React.createElement("section", {className: 'cr'},
34-
React.createElement(_components_1.Menu, {route: state.route, position: state.position}),
35-
React.createElement(_components_1.Router, {state: state}),
36-
React.createElement(_components_1.Alert, {alert: state.alert})));
33+
return (React.createElement("section", {className: 'cr'}, React.createElement(_components_1.Menu, {route: state.route, position: state.position}), React.createElement(_components_1.Router, {state: state}), React.createElement(_components_1.Alert, {alert: state.alert})));
3734
};
3835
default_1.childContextTypes = {
3936
muiTheme: React.PropTypes.object,

lib/components/menu/menu.js

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,7 @@ var default_1 = (function (_super) {
3939
default_1.prototype.menuOptions = function () {
4040
switch (this.props.route) {
4141
case 'page':
42-
return (React.createElement("div", null,
43-
React.createElement(material_ui_1.MenuItem, {primaryText: 'progress', onClick: this.props.routeToProgress}),
44-
React.createElement(material_ui_1.MenuItem, {primaryText: 'projects', onClick: this.props.routeToProjects})));
42+
return (React.createElement("div", null, React.createElement(material_ui_1.MenuItem, {primaryText: 'progress', onClick: this.props.routeToProgress}), React.createElement(material_ui_1.MenuItem, {primaryText: 'projects', onClick: this.props.routeToProjects})));
4543
case 'progress':
4644
return React.createElement(material_ui_1.MenuItem, {primaryText: 'projects', onClick: this.props.routeToProjects});
4745
default: return null;
@@ -51,17 +49,7 @@ var default_1 = (function (_super) {
5149
render_1.togglePanel();
5250
};
5351
default_1.prototype.render = function () {
54-
return (React.createElement(material_ui_1.AppBar, {title: 'CodeRoad', className: 'cr-menu-bar', iconElementLeft: React.createElement(material_ui_1.IconButton, {onClick: this.closePanel},
55-
React.createElement(NavigationClose, null)
56-
), iconElementRight: React.createElement(material_ui_1.IconMenu, {iconButtonElement: React.createElement(material_ui_1.IconButton, null,
57-
React.createElement(MoreVertIcon, null)
58-
), targetOrigin: { horizontal: 'right', vertical: 'top' }, anchorOrigin: { horizontal: 'right', vertical: 'top' }},
59-
this.menuOptions(),
60-
window.coderoad.issuesPath ? React.createElement(material_ui_1.MenuItem, null,
61-
React.createElement("a", {href: window.coderoad.issuesPath}, "post issue")
62-
) : null,
63-
React.createElement(material_ui_1.Divider, null),
64-
React.createElement(material_ui_1.MenuItem, {primaryText: 'quit', onClick: this.props.quit}))}));
52+
return (React.createElement(material_ui_1.AppBar, {title: 'CodeRoad', className: 'cr-menu-bar', iconElementLeft: React.createElement(material_ui_1.IconButton, {onClick: this.closePanel}, React.createElement(NavigationClose, null)), iconElementRight: React.createElement(material_ui_1.IconMenu, {iconButtonElement: React.createElement(material_ui_1.IconButton, null, React.createElement(MoreVertIcon, null)), targetOrigin: { horizontal: 'right', vertical: 'top' }, anchorOrigin: { horizontal: 'right', vertical: 'top' }}, this.menuOptions(), window.coderoad.issuesPath ? React.createElement(material_ui_1.MenuItem, null, React.createElement("a", {href: window.coderoad.issuesPath}, "post issue")) : null, React.createElement(material_ui_1.Divider, null), React.createElement(material_ui_1.MenuItem, {primaryText: 'quit', onClick: this.props.quit}))}));
6553
};
6654
default_1 = __decorate([
6755
react_redux_1.connect(null, function (dispatch) {

lib/components/page/chapter.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,5 @@ var _components_1 = require('../_components');
44
Object.defineProperty(exports, "__esModule", { value: true });
55
exports.default = function (_a) {
66
var chapter = _a.chapter;
7-
return (React.createElement("section", {className: 'cr-chapter'},
8-
React.createElement(_components_1.MarkdownText, {text: chapter.title})
9-
));
7+
return (React.createElement("section", {className: 'cr-chapter'}, React.createElement(_components_1.MarkdownText, {text: chapter.title})));
108
};

lib/components/page/content.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,7 @@ var _components_1 = require('../_components');
44
var material_ui_1 = require('material-ui');
55
function default_1(_a) {
66
var page = _a.page;
7-
return (React.createElement(material_ui_1.Card, null,
8-
React.createElement(material_ui_1.CardHeader, {title: page.title}),
9-
React.createElement(material_ui_1.CardText, null,
10-
React.createElement(_components_1.MarkdownText, {text: page.description})
11-
)));
7+
return (React.createElement(material_ui_1.Card, null, React.createElement(material_ui_1.CardHeader, {title: page.title}), React.createElement(material_ui_1.CardText, null, React.createElement(_components_1.MarkdownText, {text: page.description}))));
128
}
139
Object.defineProperty(exports, "__esModule", { value: true });
1410
exports.default = default_1;

lib/components/page/edit.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
66
exports.default = function (editPath) {
77
if (editPath && window.coderoad.edit) {
88
var repoPath = path.join(window.coderoad.repo, 'edit', 'master', editPath);
9-
return React.createElement("a", {href: repoPath},
10-
React.createElement(Edit, {style: { position: 'absolute', top: '10px', right: '10px' }})
11-
);
9+
return React.createElement("a", {href: repoPath}, React.createElement(Edit, {style: { position: 'absolute', top: '10px', right: '10px' }}));
1210
}
1311
};

lib/components/page/hint.js

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,7 @@ function hintsShown(task, hintPosition) {
1010
}
1111
exports.TaskHint = function (_a) {
1212
var hint = _a.hint, index = _a.index;
13-
return (React.createElement(material_ui_1.ListItem, {className: 'cr-task-hint', key: 'hint' + index},
14-
React.createElement("div", {class: 'cr-task-hint-box'},
15-
React.createElement("span", {className: 'cr-task-hint-index'},
16-
index + 1,
17-
"."),
18-
React.createElement("div", {className: 'cr-task-hint-description'},
19-
React.createElement(_components_1.MarkdownText, {text: hint})
20-
))
21-
));
13+
return (React.createElement(material_ui_1.ListItem, {className: 'cr-task-hint', key: 'hint' + index}, React.createElement("div", {class: 'cr-task-hint-box'}, React.createElement("span", {className: 'cr-task-hint-index'}, index + 1, "."), React.createElement("div", {className: 'cr-task-hint-description'}, React.createElement(_components_1.MarkdownText, {text: hint})))));
2214
};
2315
exports.TaskHints = function (_a) {
2416
var task = _a.task, hintPosition = _a.hintPosition;

lib/components/page/page-complete.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ var _components_1 = require('../_components');
55
exports.PageCompleteMessage = function (_a) {
66
var page = _a.page;
77
return (React.createElement("div", {className: 'cr-task-onComplete-description'}, page.completed && page.onPageComplete ?
8-
React.createElement(material_ui_1.ListItem, {className: 'cr-task-onComplete', key: 'page-complete'},
9-
React.createElement(_components_1.MarkdownText, {text: page.onPageComplete})
10-
)
8+
React.createElement(material_ui_1.ListItem, {className: 'cr-task-onComplete', key: 'page-complete'}, React.createElement(_components_1.MarkdownText, {text: page.onPageComplete}))
119
: null));
1210
};

lib/components/page/page.js

Lines changed: 10 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -18,40 +18,15 @@ var ReactDOM = require('react-dom');
1818
var react_redux_1 = require('react-redux');
1919
var Action = require('../../actions/actions');
2020
var iconPath = 'material-ui/lib/svg-icons/';
21-
var _components_1 = require('../_components');
2221
var material_ui_1 = require('material-ui');
23-
var colors_1 = require('material-ui/lib/styles/colors');
24-
var classnames = require('classnames');
2522
var Complete = require(iconPath + 'toggle/check-box');
2623
var Incomplete = require(iconPath + 'toggle/check-box-outline-blank');
2724
var RunningTest = require(iconPath + 'toggle/indeterminate-check-box');
28-
function hintsShown(task, hintPos) {
29-
if (hintPos > -1 && task.hints && task.hints.length > 0) {
30-
return task.hints.slice(0, hintPos + 1);
31-
}
32-
return null;
33-
}
34-
function visibleTasks(tasks, taskPosition) {
35-
return tasks.slice(0, taskPosition + 1);
36-
}
37-
var TaskCheckbox = function (_a) {
38-
var index = _a.index, taskPosition = _a.taskPosition, runTests = _a.runTests;
39-
var icon = null;
40-
if (index < taskPosition) {
41-
icon = React.createElement(Complete, {color: colors_1.green500});
42-
}
43-
else if (index === taskPosition && runTests) {
44-
icon = React.createElement(RunningTest, {color: colors_1.orange500});
45-
}
46-
else {
47-
icon = React.createElement(Incomplete, null);
48-
}
49-
return (React.createElement("span", {className: 'cr-task-checkbox'}, icon));
50-
};
5125
var material_ui_2 = require('material-ui');
5226
var content_1 = require('./content');
5327
var hint_1 = require('./hint');
5428
var page_complete_1 = require('./page-complete');
29+
var task_1 = require('./task');
5530
var Info = require(iconPath + 'action/info');
5631
var InfoOutline = require(iconPath + 'action/info-outline');
5732
var style = {
@@ -90,51 +65,17 @@ var default_1 = (function (_super) {
9065
}
9166
};
9267
default_1.prototype.render = function () {
93-
var _this = this;
94-
var _a = this.props, page = _a.page, taskPosition = _a.taskPosition, hintPosition = _a.hintPosition;
95-
var tasks = visibleTasks(this.props.tasks, taskPosition);
68+
var _a = this.props, page = _a.page, taskPosition = _a.taskPosition, hintPosition = _a.hintPosition, tasks = _a.tasks, runTests = _a.runTests;
9669
var currentTask = taskPosition <= tasks.length ? tasks[taskPosition] : null;
9770
var allComplete = taskPosition >= tasks.length;
98-
return (React.createElement(material_ui_2.Paper, {style: style, zDepth: 1, className: 'cr-page'},
99-
React.createElement(content_1.default, {page: page}),
100-
React.createElement(material_ui_1.Divider, null),
101-
React.createElement(material_ui_1.List, {subheader: 'Tasks', className: 'cr-tasks', ref: 'tasks'},
102-
tasks.map(function (task, index) {
103-
var isCurrentTask = index === taskPosition;
104-
var isDisabledTask = index > taskPosition;
105-
var isCompletedTask = index < taskPosition;
106-
var isFinalTask = index >= tasks.length - 1;
107-
return (React.createElement("div", null,
108-
React.createElement(material_ui_1.ListItem, {ref: 'task' + index, className: classnames({
109-
'cr-task': true,
110-
'isCompletedTask': isCompletedTask,
111-
'isCurrentTask': isCurrentTask,
112-
'isDisabledTask': isDisabledTask
113-
})},
114-
React.createElement(TaskCheckbox, {index: index, taskPosition: taskPosition, runTests: _this.props.runTests}),
115-
React.createElement("span", {className: 'cr-task-index'},
116-
index + 1,
117-
"."),
118-
React.createElement("div", {className: 'cr-task-description'},
119-
React.createElement(_components_1.MarkdownText, {text: task.description})
120-
))
121-
));
122-
}),
123-
React.createElement(hint_1.TaskHints, {task: currentTask, hintPosition: hintPosition}),
124-
React.createElement(page_complete_1.PageCompleteMessage, {page: page}),
125-
React.createElement("div", {ref: 'listEnd'})),
126-
React.createElement("section", {className: 'cr-page-toolbar'},
127-
React.createElement(material_ui_2.LinearProgress, {mode: 'determinate', value: taskProgress(taskPosition, tasks.length), style: { height: '6px' }}),
128-
React.createElement(material_ui_2.Toolbar, null,
129-
currentTask && currentTask.hints && currentTask.hints.length ?
130-
React.createElement(material_ui_2.ToolbarGroup, {float: 'left'}, hintPosition <= currentTask.hints.length - 2 ?
131-
React.createElement(material_ui_2.FlatButton, {className: 'cr-task-showHint', icon: React.createElement(InfoOutline, null), onClick: this.displayHint.bind(this, currentTask)})
132-
: React.createElement(material_ui_2.FlatButton, {className: 'cr-task-showHint-disabled', icon: React.createElement(Info, null), disabled: true}))
133-
: null,
134-
React.createElement(material_ui_2.ToolbarGroup, {float: 'right'}, allComplete ?
135-
React.createElement(material_ui_2.RaisedButton, {label: 'Continue', primary: true, onClick: this.props.callNextPage})
136-
:
137-
React.createElement(material_ui_2.RaisedButton, {label: 'Run', secondary: true, onClick: this.props.callRunTests}))))));
71+
return (React.createElement(material_ui_2.Paper, {style: style, zDepth: 1, className: 'cr-page'}, React.createElement(content_1.default, {page: page}), React.createElement(material_ui_1.Divider, null), React.createElement(material_ui_1.List, {subheader: 'Tasks', className: 'cr-tasks', ref: 'tasks'}, React.createElement(task_1.Tasks, {tasks: tasks, taskPosition: taskPosition, runTests: runTests}), React.createElement(hint_1.TaskHints, {task: currentTask, hintPosition: hintPosition}), React.createElement(page_complete_1.PageCompleteMessage, {page: page}), React.createElement("div", {ref: 'listEnd'})), React.createElement("section", {className: 'cr-page-toolbar'}, React.createElement(material_ui_2.LinearProgress, {mode: 'determinate', value: taskProgress(taskPosition, tasks.length), style: { height: '6px' }}), React.createElement(material_ui_2.Toolbar, null, currentTask && currentTask.hints && currentTask.hints.length ?
72+
React.createElement(material_ui_2.ToolbarGroup, {float: 'left'}, hintPosition <= currentTask.hints.length - 2 ?
73+
React.createElement(material_ui_2.FlatButton, {className: 'cr-task-showHint', icon: React.createElement(InfoOutline, null), onClick: this.displayHint.bind(this, currentTask)})
74+
: React.createElement(material_ui_2.FlatButton, {className: 'cr-task-showHint-disabled', icon: React.createElement(Info, null), disabled: true}))
75+
: null, React.createElement(material_ui_2.ToolbarGroup, {float: 'right'}, allComplete ?
76+
React.createElement(material_ui_2.RaisedButton, {label: 'Continue', primary: true, onClick: this.props.callNextPage})
77+
:
78+
React.createElement(material_ui_2.RaisedButton, {label: 'Run', secondary: true, onClick: this.props.callRunTests}))))));
13879
};
13980
default_1 = __decorate([
14081
react_redux_1.connect(null, function (dispatch, state) {

lib/components/page/task.js

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,11 @@ var TaskCheckbox = function (_a) {
2626
};
2727
var TaskIndex = function (_a) {
2828
var index = _a.index;
29-
return (React.createElement("span", {className: 'cr-task-index'},
30-
index + 1,
31-
"."));
29+
return (React.createElement("span", {className: 'cr-task-index'}, index + 1, "."));
3230
};
3331
var TaskContent = function (_a) {
3432
var task = _a.task;
35-
return (React.createElement("div", {className: 'cr-task-description'},
36-
React.createElement(_components_1.MarkdownText, {text: task.description})
37-
));
33+
return (React.createElement("div", {className: 'cr-task-description'}, React.createElement(_components_1.MarkdownText, {text: task.description})));
3834
};
3935
exports.Task = function (_a) {
4036
var task = _a.task, taskPosition = _a.taskPosition, index = _a.index, runTests = _a.runTests;
@@ -47,10 +43,7 @@ exports.Task = function (_a) {
4743
else if (isCurrentTask) {
4844
taskClass += 'isCurrentTask';
4945
}
50-
return (React.createElement(material_ui_1.ListItem, {key: index, className: taskClass},
51-
React.createElement(TaskCheckbox, {index: index, taskPosition: taskPosition, runTests: runTests}),
52-
React.createElement(TaskIndex, {index: index}),
53-
React.createElement(TaskContent, {task: task})));
46+
return (React.createElement(material_ui_1.ListItem, {key: index, className: taskClass}, React.createElement(TaskCheckbox, {index: index, taskPosition: taskPosition, runTests: runTests}), React.createElement(TaskIndex, {index: index}), React.createElement(TaskContent, {task: task})));
5447
};
5548
exports.Tasks = function (_a) {
5649
var tasks = _a.tasks, taskPosition = _a.taskPosition, runTests = _a.runTests;

lib/components/page/toolbar.js

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,14 @@ var default_1 = (function (_super) {
4848
var currentTask = taskPosition <= tasks.length ? tasks[taskPosition] : null;
4949
var progress = taskProgress(taskPosition, tasks.length);
5050
var allComplete = taskPosition >= tasks.length;
51-
return (React.createElement("section", {className: 'cr-page-toolbar'},
52-
React.createElement(ProgressBar, {progress: progress}),
53-
React.createElement(material_ui_1.Toolbar, null,
54-
currentTask && currentTask.hints && currentTask.hints.length ?
55-
React.createElement(material_ui_1.ToolbarGroup, {float: 'left'}, hintPosition <= currentTask.hints.length - 2 ?
56-
React.createElement(material_ui_1.FlatButton, {className: 'cr-task-showHint', icon: React.createElement(InfoOutline, null), onClick: this.displayHint.bind(this)})
57-
: React.createElement(material_ui_1.FlatButton, {className: 'cr-task-showHint-disabled', icon: React.createElement(Info, null), disabled: true}))
58-
: null,
59-
React.createElement(material_ui_1.ToolbarGroup, {float: 'right'}, allComplete ?
60-
React.createElement(material_ui_1.RaisedButton, {label: 'Continue', primary: true, onClick: callNextPage})
61-
:
62-
React.createElement(material_ui_1.RaisedButton, {label: 'Run', secondary: true, onClick: callRunTests})))));
51+
return (React.createElement("section", {className: 'cr-page-toolbar'}, React.createElement(ProgressBar, {progress: progress}), React.createElement(material_ui_1.Toolbar, null, currentTask && currentTask.hints && currentTask.hints.length ?
52+
React.createElement(material_ui_1.ToolbarGroup, {float: 'left'}, hintPosition <= currentTask.hints.length - 2 ?
53+
React.createElement(material_ui_1.FlatButton, {className: 'cr-task-showHint', icon: React.createElement(InfoOutline, null), onClick: this.displayHint.bind(this)})
54+
: React.createElement(material_ui_1.FlatButton, {className: 'cr-task-showHint-disabled', icon: React.createElement(Info, null), disabled: true}))
55+
: null, React.createElement(material_ui_1.ToolbarGroup, {float: 'right'}, allComplete ?
56+
React.createElement(material_ui_1.RaisedButton, {label: 'Continue', primary: true, onClick: callNextPage})
57+
:
58+
React.createElement(material_ui_1.RaisedButton, {label: 'Run', secondary: true, onClick: callRunTests})))));
6359
};
6460
default_1 = __decorate([
6561
react_redux_1.connect(null, function (dispatch, state) {

0 commit comments

Comments
 (0)