Skip to content

Commit 259217a

Browse files
committed
link to content on click
1 parent e660f01 commit 259217a

File tree

26 files changed

+170
-113
lines changed

26 files changed

+170
-113
lines changed

lib/actions.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ exports.tutorialActionAdd = tutorial_1.tutorialActionAdd;
1717
var window_1 = require('./modules/window');
1818
exports.windowToggle = window_1.windowToggle;
1919
var editor_paths_1 = require('./modules/editor-paths');
20-
exports.editorOpenPage = editor_paths_1.editorOpenPage;
21-
exports.editorOpenTest = editor_paths_1.editorOpenTest;
20+
exports.editorMarkdownOpen = editor_paths_1.editorMarkdownOpen;
21+
exports.editorTestOpen = editor_paths_1.editorTestOpen;
2222
var alert_1 = require('core-coderoad/lib/alert');
2323
exports.alertOpen = alert_1.alertOpen;
2424
exports.alertClose = alert_1.alertClose;
@@ -29,5 +29,6 @@ exports.editorOpen = editor_1.editorOpen;
2929
exports.editorInsert = editor_1.editorInsert;
3030
exports.editorSave = editor_1.editorSave;
3131
exports.editorSet = editor_1.editorSet;
32+
exports.editorScroll = editor_1.editorScroll;
3233
var route_1 = require('core-coderoad/lib/route');
3334
exports.routeSet = route_1.routeSet;

lib/components/Page/Hints/index.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,18 @@ var Hints = (function (_super) {
3939
});
4040
};
4141
Hints.prototype.render = function () {
42-
var hints = this.props.hints;
42+
var _this = this;
43+
var _a = this.props, hints = _a.hints, markdownOpen = _a.markdownOpen;
4344
var text = this.state.text;
4445
return (React.createElement(List_1.List, null, !hints || !hints.length
4546
? []
46-
: hints.map(function (hint, index) { return (React.createElement(List_1.ListItem, {secondaryText: React.createElement("p", null, index + 1, ". ", hint)})); }), React.createElement(TextField_1.default, {style: styles.text, hintText: 'Hint text', multiLine: true, value: text, onChange: this.handleChange.bind(this)})));
47+
: hints.map(function (hint, index) { return (React.createElement(List_1.ListItem, {secondaryText: React.createElement("p", null, index + 1, ". ", hint), onClick: markdownOpen.bind(_this, hint)})); }), React.createElement(TextField_1.default, {style: styles.text, hintText: 'Hint text', multiLine: true, value: text, onChange: this.handleChange.bind(this)})));
4748
};
4849
Hints = __decorate([
4950
react_redux_1.connect(null, function (dispatch) {
5051
return {
51-
addHint: function () { return dispatch(actions_1.tutorialHintAdd(_this.props.taskPosition, _this.state.text)); }
52+
addHint: function () { return dispatch(actions_1.tutorialHintAdd(_this.props.taskPosition, _this.state.text)); },
53+
markdownOpen: function (content) { return dispatch(actions_1.editorMarkdownOpen(null, content)); }
5254
};
5355
}),
5456
__metadata('design:paramtypes', [Object])

lib/components/Page/TaskActions/index.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,17 +65,20 @@ var TaskActions = (function (_super) {
6565
};
6666
TaskActions.prototype.render = function () {
6767
var _this = this;
68-
var _a = this.props, actions = _a.actions, addAction = _a.addAction;
68+
var _a = this.props, actions = _a.actions, addAction = _a.addAction, markdownOpen = _a.markdownOpen;
6969
var stepIndex = this.state.stepIndex;
7070
var actionList = actions.map(function (a) { return task_object_1.default(a); });
7171
return (React.createElement(Stepper_1.Stepper, {activeStep: stepIndex, linear: false, orientation: 'vertical'}, actionList.map(function (a, index) { return (React.createElement(Stepper_1.Step, null, React.createElement(Stepper_1.StepButton, {onClick: function () { return _this.setState({
7272
stepIndex: index, as: _this.state.as }); }}, a.action + (a.singleLine ? ' ' + a.content : '')), React.createElement(Stepper_1.StepContent, null, a.singleLine ? ''
73-
: React.createElement(index_1.Markdown, null, '```js\n' + a.content + '\n```')))); }), React.createElement("span", {style: styles.form}, React.createElement(SelectField_1.default, {value: this.state.as.action, onChange: this.handleSelect.bind(this), style: styles.select}, React.createElement(MenuItem_1.default, {value: 'open', primaryText: 'open'}), React.createElement(MenuItem_1.default, {value: 'set', primaryText: 'set'}), React.createElement(MenuItem_1.default, {value: 'set', primaryText: 'insert'})), React.createElement(TextField_1.default, {hintText: 'Content', value: this.state.as.content, onChange: this.handleText.bind(this)}))));
73+
: React.createElement("div", {onClick: markdownOpen.bind(_this, a.content)}, React.createElement(index_1.Markdown, null, '```js\n' + a.content + '\n```'))))); }), React.createElement("span", {style: styles.form}, React.createElement(SelectField_1.default, {value: this.state.as.action, onChange: this.handleSelect.bind(this), style: styles.select}, React.createElement(MenuItem_1.default, {value: 'open', primaryText: 'open'}), React.createElement(MenuItem_1.default, {value: 'set', primaryText: 'set'}), React.createElement(MenuItem_1.default, {value: 'set', primaryText: 'insert'})), React.createElement(TextField_1.default, {hintText: 'Content', value: this.state.as.content, onChange: this.handleText.bind(this)}))));
7474
};
7575
TaskActions = __decorate([
7676
react_redux_1.connect(null, function (dispatch) {
7777
return {
78-
addAction: function (actionString) { return dispatch(actions_1.tutorialActionAdd(_this.props.taskPosition, actionString)); }
78+
addAction: function (actionString) { return dispatch(actions_1.tutorialActionAdd(_this.props.taskPosition, actionString)); },
79+
markdownOpen: function (content) {
80+
dispatch(actions_1.editorMarkdownOpen(null, content));
81+
}
7982
};
8083
}),
8184
__metadata('design:paramtypes', [Object])

lib/components/Page/TaskActions/task-object.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ function getTaskObject(a) {
77
if (obj.action === 'open') {
88
obj.singleLine = true;
99
}
10-
var cursor = /::>/g;
11-
if (!!obj.content.match(cursor)) {
12-
obj.content = obj.content.replace(cursor, '→');
13-
}
1410
return obj;
1511
}
1612
Object.defineProperty(exports, "__esModule", { value: true });

lib/components/Page/Tasks/index.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,17 @@ var Tasks = (function (_super) {
5353
_super.apply(this, arguments);
5454
}
5555
Tasks.prototype.render = function () {
56-
var _a = this.props, tasks = _a.tasks, page = _a.page, config = _a.config, taskAdd = _a.taskAdd;
57-
return (React.createElement("div", null, tasks.map(function (task, index) { return (React.createElement(Card_1.Card, {style: styles.card, initiallyExpanded: index === 0}, React.createElement(Card_1.CardHeader, {actAsExpander: true, showExpandableButton: true}, React.createElement("span", {style: styles.title}, "Task ", index + 1), React.createElement(Tests_1.default, {style: styles.test, tests: task.tests, config: config})), React.createElement(Card_1.CardText, {expandable: true, style: styles.cardContent}, React.createElement(Tabs_1.Tabs, {tabItemContainerStyle: styles.tabBar}, React.createElement(Tabs_1.Tab, {label: 'Description'}, React.createElement(Task_1.default, {key: index.toString(), index: index, task: task})), React.createElement(Tabs_1.Tab, {label: 'Actions'}, React.createElement(TaskActions_1.default, {actions: task.actions, taskPosition: index})), React.createElement(Tabs_1.Tab, {label: 'Hints'}, React.createElement(Hints_1.default, {hints: task.hints, taskPosition: index})))))); }), React.createElement(AddButton_1.default, {callback: taskAdd}), React.createElement(TasksComplete_1.default, {page: page})));
56+
var _this = this;
57+
var _a = this.props, tasks = _a.tasks, page = _a.page, config = _a.config, taskAdd = _a.taskAdd, markdownOpen = _a.markdownOpen, pagePosition = _a.pagePosition;
58+
return (React.createElement("div", null, tasks.map(function (task, index) { return (React.createElement(Card_1.Card, {style: styles.card, initiallyExpanded: index === 0}, React.createElement(Card_1.CardHeader, {actAsExpander: true, showExpandableButton: true}, React.createElement("span", {style: styles.title}, "Task ", index + 1), React.createElement(Tests_1.default, {style: styles.test, tests: task.tests, config: config})), React.createElement(Card_1.CardText, {expandable: true, style: styles.cardContent}, React.createElement(Tabs_1.Tabs, {tabItemContainerStyle: styles.tabBar}, React.createElement(Tabs_1.Tab, {label: 'Description'}, React.createElement("div", {onClick: markdownOpen.bind(_this, task.description)}, React.createElement(Task_1.default, {key: index.toString(), index: index, task: task}))), React.createElement(Tabs_1.Tab, {label: 'Actions'}, React.createElement(TaskActions_1.default, {actions: task.actions, taskPosition: index})), React.createElement(Tabs_1.Tab, {label: 'Hints'}, React.createElement(Hints_1.default, {hints: task.hints, taskPosition: index})))))); }), React.createElement(AddButton_1.default, {callback: taskAdd}), React.createElement(TasksComplete_1.default, {page: page})));
5859
};
5960
Tasks = __decorate([
6061
react_redux_1.connect(null, function (dispatch) {
6162
return {
62-
taskAdd: function () { return dispatch(actions_1.tutorialTaskAdd()); }
63+
taskAdd: function () { return dispatch(actions_1.tutorialTaskAdd()); },
64+
markdownOpen: function (content) {
65+
dispatch(actions_1.editorMarkdownOpen(null, content));
66+
}
6367
};
6468
}),
6569
__metadata('design:paramtypes', [])
Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,24 @@
11
"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+
};
216
var React = require('react');
17+
var react_redux_1 = require('react-redux');
318
var Card_1 = require('material-ui/Card');
419
var index_1 = require('../../index');
520
var colors_1 = require('material-ui/styles/colors');
21+
var actions_1 = require('../../../actions');
622
var styles = {
723
card: {
824
backgroundColor: colors_1.cyan500,
@@ -13,9 +29,24 @@ var styles = {
1329
fontSize: '1.1em'
1430
},
1531
};
16-
var TasksComplete = function (_a) {
17-
var page = _a.page;
18-
return (React.createElement(Card_1.Card, {style: styles.card}, React.createElement(Card_1.CardHeader, {actAsExpander: true, showExpandableButton: true}), React.createElement(Card_1.CardText, {expandable: true}, React.createElement(index_1.Markdown, {style: styles.text}, page.onPageComplete || 'add on page complete message'))));
19-
};
32+
var TasksComplete = (function (_super) {
33+
__extends(TasksComplete, _super);
34+
function TasksComplete() {
35+
_super.apply(this, arguments);
36+
}
37+
TasksComplete.prototype.render = function () {
38+
var _a = this.props, page = _a.page, markdownOpen = _a.markdownOpen;
39+
return (React.createElement(Card_1.Card, {style: styles.card}, React.createElement(Card_1.CardHeader, {actAsExpander: true, showExpandableButton: true}), React.createElement(Card_1.CardText, {expandable: true}, React.createElement("div", {onClick: markdownOpen}, React.createElement(index_1.Markdown, {style: styles.text}, page.onPageComplete || 'add on page complete message')))));
40+
};
41+
TasksComplete = __decorate([
42+
react_redux_1.connect(null, function (dispatch) {
43+
return {
44+
markdownOpen: function () { return dispatch(actions_1.editorMarkdownOpen(null, '@onPageComplete')); }
45+
};
46+
}),
47+
__metadata('design:paramtypes', [])
48+
], TasksComplete);
49+
return TasksComplete;
50+
}(React.Component));
2051
Object.defineProperty(exports, "__esModule", { value: true });
2152
exports.default = TasksComplete;

lib/components/Page/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ var Page = (function (_super) {
2929
if (!page) {
3030
return null;
3131
}
32-
return (React.createElement("section", {style: styles, className: 'cr-page'}, React.createElement(index_1.ContentCard, {title: page.title, content: page.description, open: true}), React.createElement(Tasks_1.default, {tasks: page.tasks, page: page, config: packageJson.config})));
32+
return (React.createElement("section", {style: styles, className: 'cr-page'}, React.createElement(index_1.ContentCard, {title: page.title, content: page.description, open: true}), React.createElement(Tasks_1.default, {tasks: page.tasks, page: page, config: packageJson.config, pagePosition: pagePosition})));
3333
};
3434
return Page;
3535
}(React.Component));

lib/components/TopPanel/TopPanel.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ var TopPanel = (function (_super) {
5555
return {
5656
pageSet: function (index) {
5757
dispatch(actions_1.pageSet(index));
58-
dispatch(actions_1.editorOpenPage(index));
58+
dispatch(actions_1.editorMarkdownOpen(index));
5959
},
6060
pageAdd: function () { return dispatch(actions_1.tutorialPageAdd()); }
6161
};

lib/modules/editor-paths/index.js

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,24 @@
22
var path_1 = require('path');
33
var actions_1 = require('../../actions');
44
var config_options_1 = require('../../config-options');
5-
function twoDigitify(n) {
6-
return n > 9 ? '' + n : '0' + n;
7-
}
8-
function editorOpenPage(index) {
9-
return function (dispatch) {
10-
var filePath = path_1.join('tutorial', twoDigitify(index + 1), 'index.md');
5+
var twoDigitify_1 = require('../../services/twoDigitify');
6+
function editorMarkdownOpen(index, content) {
7+
console.log(index, content);
8+
return function (dispatch, getState) {
9+
var filePath = path_1.join('tutorial', twoDigitify_1.default(index + 1 || getState().pagePosition + 1), 'index.md');
1110
dispatch(actions_1.editorOpen(filePath));
11+
if (content) {
12+
content = content.replace(//mg, '\n');
13+
dispatch(actions_1.editorScroll(content));
14+
}
1215
};
1316
}
14-
exports.editorOpenPage = editorOpenPage;
15-
function editorOpenTest(pageIndex, testIndex) {
17+
exports.editorMarkdownOpen = editorMarkdownOpen;
18+
function editorTestOpen(pageIndex, testIndex) {
1619
return function (dispatch, getState) {
1720
var suffix = config_options_1.default[getState().packageJson.config].suffix;
18-
var filePath = path_1.join('tutorial', twoDigitify(pageIndex), twoDigitify(testIndex) + '.' + suffix);
21+
var filePath = path_1.join('tutorial', twoDigitify_1.default(pageIndex || getState().pagePosition), twoDigitify_1.default(testIndex) + '.' + suffix);
1922
dispatch(actions_1.editorOpen(filePath));
2023
};
2124
}
22-
exports.editorOpenTest = editorOpenTest;
25+
exports.editorTestOpen = editorTestOpen;

lib/modules/tutorial/utils/pageNew.js

Lines changed: 0 additions & 16 deletions
This file was deleted.

0 commit comments

Comments
 (0)