Skip to content

Commit 798b1f3

Browse files
committed
tutorial config ui setup
1 parent 0df9bb0 commit 798b1f3

File tree

17 files changed

+240
-21
lines changed

17 files changed

+240
-21
lines changed

lib/actions.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
var actions_1 = require('./modules/page/actions');
33
exports.pageSet = actions_1.pageSet;
44
exports.pageNext = actions_1.pageNext;
5+
var tutorial_config_1 = require('./modules/tutorial-config');
6+
exports.tutorialConfigSave = tutorial_config_1.tutorialConfigSave;
7+
var tutorial_info_1 = require('./modules/tutorial-info');
8+
exports.tutorialInfoSave = tutorial_info_1.tutorialInfoSave;
59
var alert_1 = require('core-coderoad/lib/alert');
610
exports.alertOpen = alert_1.alertOpen;
711
exports.alertClose = alert_1.alertClose;

lib/components/Page/index.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
"use strict";
22
var React = require('react');
33
var index_1 = require('../index');
4-
var Tasks_1 = require('./Tasks');
54
var styles = {
65
width: '100%',
76
overflowY: 'scroll',
87
};
98
var Page = function (_a) {
10-
var page = _a.page, taskPosition = _a.taskPosition, hintPosition = _a.hintPosition, tasks = _a.tasks, testRun = _a.testRun, progress = _a.progress, pagePosition = _a.pagePosition;
11-
var task = taskPosition <= tasks.length ? tasks[taskPosition] : null;
12-
var completed = progress.pages[pagePosition];
13-
return (React.createElement("section", {style: styles, className: 'cr-page'}, React.createElement(index_1.ContentCard, {title: page.title, content: page.description}), React.createElement(Tasks_1.default, {tasks: tasks, taskPosition: taskPosition, testRun: testRun, completed: completed, page: page})));
9+
var page = _a.page, tasks = _a.tasks, pagePosition = _a.pagePosition;
10+
return (React.createElement("section", {style: styles, className: 'cr-page'}, React.createElement(index_1.ContentCard, {title: page.title, content: page.description})));
1411
};
1512
Object.defineProperty(exports, "__esModule", { value: true });
1613
exports.default = Page;

lib/components/Routes/index.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ var Routes = (function (_super) {
2727
return React.createElement(index_1.Start, __assign({}, this.props));
2828
case 'tutorials':
2929
return React.createElement(index_1.Tutorials, __assign({}, this.props));
30+
case 'tutorialConfig':
31+
return React.createElement(index_1.TutorialConfig, __assign({}, this.props));
32+
case 'tutorialInfo':
33+
return React.createElement(index_1.TutorialInfo, __assign({}, this.props));
3034
default:
3135
throw 'Error: Route not found.';
3236
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
"use strict";
2+
var __extends = (this && this.__extends) || function (d, b) {
3+
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
4+
function __() { this.constructor = d; }
5+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
6+
};
7+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
8+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
10+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
11+
return c > 3 && r && Object.defineProperty(target, key, r), r;
12+
};
13+
var __metadata = (this && this.__metadata) || function (k, v) {
14+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
15+
};
16+
var React = require('react');
17+
var react_redux_1 = require('react-redux');
18+
var TextField_1 = require('material-ui/TextField');
19+
var SelectField_1 = require('material-ui/SelectField');
20+
var MenuItem_1 = require('material-ui/MenuItem');
21+
var Card_1 = require('material-ui/Card');
22+
var RaisedButton_1 = require('material-ui/RaisedButton');
23+
var actions_1 = require('../../actions');
24+
var styles = {
25+
margin: '10px',
26+
padding: '30px 20px',
27+
textAlign: 'center',
28+
};
29+
var TutorialConfig = (function (_super) {
30+
__extends(TutorialConfig, _super);
31+
function TutorialConfig(props) {
32+
_super.call(this, props);
33+
this.state = {
34+
name: 'coderoad-',
35+
repo: '',
36+
language: 'JS',
37+
runner: 'mocha-coderoad',
38+
runnerOptions: {}
39+
};
40+
}
41+
TutorialConfig.prototype.handleChange = function (value, event) {
42+
var obj = {};
43+
obj[value] = event.target.value;
44+
this.setState(Object.assign({}, this.state, obj));
45+
};
46+
TutorialConfig.prototype.save = function () {
47+
this.props.save(this.state);
48+
};
49+
TutorialConfig.prototype.render = function () {
50+
return (React.createElement(Card_1.Card, {style: styles}, React.createElement(Card_1.CardHeader, {title: 'Tutorial Configuration'}), React.createElement(TextField_1.default, {floatingLabelText: 'Tutorial Package Name', value: this.state.name, onChange: this.handleChange.bind(this, 'name', event)}), React.createElement("br", null), React.createElement(SelectField_1.default, {floatingLabelText: 'Language', value: this.state.language, onChange: this.handleChange.bind(this, 'language', event)}, React.createElement(MenuItem_1.default, {value: 'JS', primaryText: 'JS'}), React.createElement(MenuItem_1.default, {value: 'Python', primaryText: 'Python'})), React.createElement("br", null), React.createElement(SelectField_1.default, {floatingLabelText: 'Test Runner', value: this.state.runner, onChange: this.handleChange.bind(this, 'runner', event)}, React.createElement(MenuItem_1.default, {value: 'mocha-coderoad', primaryText: 'Mocha-CodeRoad'})), React.createElement("br", null), React.createElement("br", null), React.createElement(RaisedButton_1.default, {label: 'Save', primary: true, onTouchTap: this.save.bind(this)})));
51+
};
52+
TutorialConfig = __decorate([
53+
react_redux_1.connect(null, function (dispatch) {
54+
return {
55+
save: function (config) { return dispatch(actions_1.tutorialConfigSave(config)); }
56+
};
57+
}),
58+
__metadata('design:paramtypes', [Object])
59+
], TutorialConfig);
60+
return TutorialConfig;
61+
}(React.Component));
62+
Object.defineProperty(exports, "__esModule", { value: true });
63+
exports.default = TutorialConfig;
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
"use strict";
2+
var React = require('react');
3+
var TutorialInfo = function (_a) {
4+
var tutorialInfo = _a.tutorialInfo;
5+
return (React.createElement("div", null));
6+
};
7+
Object.defineProperty(exports, "__esModule", { value: true });
8+
exports.default = TutorialInfo;

lib/components/index.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ var Checks_1 = require('./Start/Checks');
1111
exports.Checks = Checks_1.default;
1212
var Tutorials_1 = require('./Tutorials');
1313
exports.Tutorials = Tutorials_1.default;
14+
var TutorialConfig_1 = require('./TutorialConfig');
15+
exports.TutorialConfig = TutorialConfig_1.default;
16+
var TutorialInfo_1 = require('./TutorialInfo');
17+
exports.TutorialInfo = TutorialInfo_1.default;
1418
var Alert_1 = require('./common/Alert');
1519
exports.Alert = Alert_1.default;
1620
var Markdown_1 = require('./common/Markdown');

lib/modules/page/actions.js

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
"use strict";
22
var types_1 = require('./types');
33
var actions_1 = require('../../actions');
4-
var actions_2 = require('../../actions');
5-
exports.editorOpen = actions_2.editorOpen;
6-
exports.editorSave = actions_2.editorSave;
7-
exports.editorSet = actions_2.editorSet;
8-
exports.editorInsert = actions_2.editorInsert;
4+
exports.editorOpen = actions_1.editorOpen;
5+
exports.editorSave = actions_1.editorSave;
6+
exports.editorSet = actions_1.editorSet;
7+
exports.editorInsert = actions_1.editorInsert;
98
function pageNext() {
109
return function (dispatch, getState) {
1110
var pagePosition = getState().pagePosition;
@@ -17,10 +16,6 @@ function pageSet(pagePosition) {
1716
if (pagePosition === void 0) { pagePosition = 0; }
1817
return function (dispatch, getState) {
1918
var _a = getState(), dir = _a.dir, progress = _a.progress, tutorial = _a.tutorial, route = _a.route;
20-
if (pagePosition >= progress.pages.length) {
21-
return dispatch(actions_1.routeSet('final'));
22-
}
23-
dispatch(actions_1.hintPositionSet(0));
2419
var tasks = tutorial.pages[pagePosition].tasks || [];
2520
dispatch({
2621
type: types_1.PAGE_SET, payload: { dir: dir, pagePosition: pagePosition, tutorial: tutorial, progress: progress, tasks: tasks }
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
"use strict";
2+
var types_1 = require('./types');
3+
function tutorialConfigSave(config) {
4+
return { type: types_1.TUTORIAL_CONFIG_SAVE, payload: { config: config } };
5+
}
6+
exports.tutorialConfigSave = tutorialConfigSave;
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
"use strict";
2+
var actions_1 = require('./actions');
3+
exports.tutorialConfigSave = actions_1.tutorialConfigSave;
4+
var reducer_1 = require('./reducer');
5+
exports.reducer = reducer_1.default;
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
"use strict";
2+
var types_1 = require('./types');
3+
var _config = {
4+
name: '',
5+
repo: '',
6+
language: '',
7+
runner: '',
8+
runnerOptions: {}
9+
};
10+
function tutorialConfig(c, action) {
11+
if (c === void 0) { c = _config; }
12+
switch (action.type) {
13+
case types_1.TUTORIAL_CONFIG_SAVE:
14+
return action.payload.config;
15+
default:
16+
return c;
17+
}
18+
}
19+
Object.defineProperty(exports, "__esModule", { value: true });
20+
exports.default = tutorialConfig;

0 commit comments

Comments
 (0)