Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit4cb98dd

Browse files
committed
route to final page on complete
1 parent70eb38b commit4cb98dd

File tree

22 files changed

+74
-28
lines changed

22 files changed

+74
-28
lines changed

‎CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,6 @@ This project adheres to [Semantic Versioning](http://semver.org/).
2020
###Added
2121
- smoother setup process
2222
- style, ui improvements
23+
24+
##[0.5.3] - in progress
25+
- fix tutorial progress issues

‎lib/actions/page-actions.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ var package_1 = require('../services/package');
55
var_=require('lodash');
66
functionsetPage(selectedPosition){
77
if(selectedPosition===void0){selectedPosition={chapter:0,page:0};}
8+
if(selectedPosition.completed){
9+
return{type:Type.SET_ROUTE,payload:{route:'final'}};
10+
}
811
varpage=package_1.default.getPage(selectedPosition);
912
vartasks=package_1.default.getTasks(selectedPosition);
1013
vartaskTests=_.flatten(tasks.map(function(task){returntask.tests||[];}));

‎lib/components/_components.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ var progress_1 = require('./progress/progress');
1515
exports.Progress=progress_1.default;
1616
varstart_1=require('./start/start');
1717
exports.Start=start_1.Start;
18+
varfinal_page_1=require('./final-page/final-page');
19+
exports.FinalPage=final_page_1.FinalPage;
1820
varmarkdown_1=require('./markdown/markdown');
1921
exports.MarkdownText=markdown_1.default;
2022
varalert_1=require('./alert/alert');

‎lib/components/app/router.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ var default_1 = (function (_super) {
1919
returnReact.createElement(_components_1.Progress,{progress:state.progress,position:state.position});
2020
case'projects':
2121
returnReact.createElement(_components_1.Start,{tutorials:state.tutorials,warning:state.warning});
22+
case'final':
23+
returnReact.createElement(_components_1.FinalPage,null);
2224
default:
2325
throw'Error: Route not found.';
2426
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
"use strict";
2+
varReact=require('react');
3+
exports.FinalPage=function(){return(React.createElement("div",null,"Final Page"));};

‎lib/components/menu/menu.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ var default_1 = (function (_super) {
5353
default_1.prototype.render=function(){
5454
varorigin={horizontal:'right',vertical:'top'};
5555
varquit=this.props.quit;
56-
return(React.createElement(material_ui_1.AppBar,{title:'CodeRoad',className:'cr-menu-bar',iconElementLeft:React.createElement(material_ui_1.IconButton,{onTouchTap: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:origin,anchorOrigin:origin},this.menuOptions(),window.coderoad.issuesPath ?React.createElement(material_ui_1.MenuItem,{key:'issue'},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',onTouchTap:quit}))}));
56+
return(React.createElement(material_ui_1.AppBar,{title:'CodeRoad',className:'cr-menu-bar',iconElementLeft:React.createElement(material_ui_1.IconButton,{onTouchTap: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:origin,anchorOrigin:origin},this.menuOptions(),window.coderoad.issuesPath ?React.createElement(material_ui_1.MenuItem,{key:'issue',className:'link'},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',onTouchTap:quit}))}));
5757
};
5858
default_1=__decorate([
5959
react_redux_1.connect(null,function(dispatch){

‎lib/components/page/page.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
'use strict';
1+
"use strict";
22
var__extends=(this&&this.__extends)||function(d,b){
33
for(varpinb)if(b.hasOwnProperty(p))d[p]=b[p];
44
function__(){this.constructor=d;}
@@ -28,7 +28,7 @@ var default_1 = (function (_super) {
2828
var_a=this.props,page=_a.page,taskPosition=_a.taskPosition,hintPosition=_a.hintPosition,tasks=_a.tasks,runTests=_a.runTests;
2929
varcurrentTask=taskPosition<=tasks.length ?tasks[taskPosition] :null;
3030
varallComplete=taskPosition>=tasks.length;
31-
return(React.createElement(material_ui_1.Paper,{style:pageStyle,zDepth:1,className:'cr-page'},React.createElement(content_1.default,{page:page}),React.createElement(material_ui_1.Divider,null),React.createElement(task_1.Tasks,{tasks:tasks,taskPosition:taskPosition,runTests:runTests}),React.createElement(hint_1.default,{task:currentTask,hintPosition:hintPosition}),React.createElement(page_complete_1.PageCompleteMessage,{page:page}),React.createElement("div",{ref:'listEnd'}),React.createElement(toolbar_1.default,{tasks:tasks,taskPosition:taskPosition,hintPosition:hintPosition})));
31+
return(React.createElement(material_ui_1.Paper,{style:pageStyle,zDepth:1,className:'cr-page'},React.createElement(content_1.default,{page:page}),React.createElement(material_ui_1.Divider,null),React.createElement(task_1.Tasks,{tasks:tasks,taskPosition:taskPosition,runTests:runTests}),React.createElement(hint_1.default,{task:currentTask,hintPosition:hintPosition}),React.createElement(page_complete_1.PageCompleteMessage,{page:page}),React.createElement("div",{ref:'listEnd'}),React.createElement(toolbar_1.default,{tasks:tasks,taskPosition:taskPosition})));
3232
};
3333
returndefault_1;
3434
}(React.Component));

‎lib/components/page/toolbar.js

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,19 @@ var default_1 = (function (_super) {
3030
functiondefault_1(){
3131
_super.apply(this,arguments);
3232
}
33+
default_1.prototype.getButton=function(){
34+
var_a=this.props,callNextPage=_a.callNextPage,showHint=_a.showHint,taskPosition=_a.taskPosition,tasks=_a.tasks;
35+
switch(true){
36+
casetaskPosition>=tasks.length:
37+
returnReact.createElement(material_ui_1.RaisedButton,{label:'Continue',primary:true,onTouchTap:callNextPage});
38+
default:
39+
returnReact.createElement(material_ui_1.RaisedButton,{label:'Save',secondary:true,onTouchTap:editor_1.save});
40+
}
41+
};
3342
default_1.prototype.render=function(){
34-
var_a=this.props,tasks=_a.tasks,taskPosition=_a.taskPosition,hintPosition=_a.hintPosition,callNextPage=_a.callNextPage,showHint=_a.showHint;
35-
varcurrentTask=taskPosition<=tasks.length ?tasks[taskPosition] :null;
43+
var_a=this.props,tasks=_a.tasks,taskPosition=_a.taskPosition;
3644
varprogress=taskProgress(taskPosition,tasks.length);
37-
varallComplete=taskPosition>=tasks.length;
38-
return(React.createElement("section",{className:'cr-page-toolbar'},React.createElement(ProgressBar,{progress:progress}),React.createElement(material_ui_1.Toolbar,null,React.createElement(material_ui_1.ToolbarGroup,{float:'right'},allComplete ?
39-
React.createElement(material_ui_1.RaisedButton,{label:'Continue',primary:true,onTouchTap:callNextPage})
40-
:
41-
React.createElement(material_ui_1.RaisedButton,{label:'Save',secondary:true,onTouchTap:editor_1.save})))));
45+
return(React.createElement("section",{className:'cr-page-toolbar'},React.createElement(ProgressBar,{progress:progress}),React.createElement(material_ui_1.Toolbar,null,React.createElement(material_ui_1.ToolbarGroup,{float:'right'},this.getButton()))));
4246
};
4347
default_1=__decorate([
4448
react_redux_1.connect(null,function(dispatch,state){

‎lib/services/package.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ var PackageService = (function () {
8484
}
8585
else{
8686
_base_1.store.dispatch(Action.projectComplete());
87-
return{chapter:chapter,page:page};
87+
return{chapter:chapter,page:page,completed:true};
8888
}
8989
};
9090
PackageService.prototype.getProject=function(){

‎src/actions/page-actions.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ import Package from '../services/package';
44
const_=require('lodash');
55

66
exportfunctionsetPage(selectedPosition:CR.Position={chapter:0,page:0}):CR.Action{
7+
if(selectedPosition.completed){
8+
return{type:Type.SET_ROUTE,payload:{route:'final'}};
9+
}
710
constpage:CR.Page=Package.getPage(selectedPosition);
811
consttasks:CR.Task[]=Package.getTasks(selectedPosition);
912
consttaskTests:CR.TaskTest[]=_.flatten(tasks.map((task)=>task.tests||[]));

‎src/components/_components.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export {default as Menu} from './menu/menu';
1414
export{defaultasAccount}from'./account/account';
1515
export{defaultasProgress}from'./progress/progress';
1616
export{Start}from'./start/start';
17+
export{FinalPage}from'./final-page/final-page';
1718

1819
// Common
1920
export{defaultasMarkdownText}from'./markdown/markdown';

‎src/components/app/router.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import*asReactfrom'react';
2-
import{Page,Progress,Start}from'./../_components';
2+
import{Page,Progress,Start,FinalPage}from'./../_components';
33

44
exportdefaultclassextendsReact.Component<{state:CR.State},{}>{
55
chooseRoute(state:CR.State){
@@ -17,6 +17,8 @@ export default class extends React.Component<{state: CR.State}, {}> {
1717
position={state.position}/>;
1818
case'projects':
1919
return<Starttutorials={state.tutorials}warning={state.warning}/>;
20+
case'final':
21+
return<FinalPage/>;
2022
default:
2123
throw'Error: Route not found.';
2224
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import*asReactfrom'react';
2+
import*asReactDOMfrom'react-dom';
3+
import{Paper,Divider}from'material-ui';
4+
5+
exportconstFinalPage=()=>(
6+
<div>Final Page</div>
7+
);

‎src/components/menu/_menu.less

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
.cr {
22
.cr-menu-bar {
33
z-index:999!important;
4+
5+
a,a:visited,a:link,a:hover {
6+
color:black;
7+
text-decoration:none;
8+
}
49
}
510
}

‎src/components/menu/menu.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ export default class extends React.Component<{
7777
{/* Menu Items */}
7878
{this.menuOptions()}
7979

80-
{window.coderoad.issuesPath ?<MenuItemkey='issue'>
80+
{window.coderoad.issuesPath ?<MenuItemkey='issue'className='link'>
8181
<ahref={window.coderoad.issuesPath}>
8282
post issue
8383
</a>

‎src/components/page/page.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
'use strict';
21
import*asReactfrom'react';
32
import*asReactDOMfrom'react-dom';
43
import{Paper,Divider}from'material-ui';
@@ -44,7 +43,7 @@ render() {
4443
<PageCompleteMessagepage={page}/>
4544
<divref='listEnd'></div>
4645

47-
<PageToolbartasks={tasks}taskPosition={taskPosition}hintPosition={hintPosition}/>
46+
<PageToolbartasks={tasks}taskPosition={taskPosition}/>
4847
</Paper>
4948
);
5049
}

‎src/components/page/toolbar.tsx

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {connect} from 'react-redux';
33
import*asActionfrom'../../actions/actions';
44
import{LinearProgress,Toolbar,ToolbarGroup,RaisedButton}from'material-ui';
55
import{save}from'../../atom/editor';
6+
import{store}from'../../_base';
67

78
constProgressBar=({progress})=><LinearProgressmode='determinate'
89
value={progress}style={{height:'10px'}}/>;
@@ -18,14 +19,22 @@ function taskProgress(current: number, max: number) {
1819
};
1920
})
2021
exportdefaultclassextendsReact.Component<{
21-
tasks:CR.Task[],taskPosition:number,hintPosition:number,
22+
tasks:CR.Task[],taskPosition:number,
2223
callNextPage?:()=>void,callNextTask?:()=>void,showHint?:(pos:number)=>void
2324
},{}>{
25+
getButton(){
26+
const{callNextPage, showHint, taskPosition, tasks}=this.props;
27+
switch(true){
28+
casetaskPosition>=tasks.length:
29+
return<RaisedButtonlabel='Continue'primary={true}onTouchTap={callNextPage}/>;
30+
default:
31+
return<RaisedButtonlabel='Save'secondary={true}onTouchTap={save}/>;
32+
}
33+
}
2434
render(){
25-
const{tasks, taskPosition, hintPosition, callNextPage, showHint}=this.props;
26-
constcurrentTask=taskPosition<=tasks.length ?tasks[taskPosition] :null;
35+
const{tasks, taskPosition}=this.props;
2736
constprogress:number=taskProgress(taskPosition,tasks.length);
28-
constallComplete=taskPosition>=tasks.length;
37+
2938
return(
3039
<sectionclassName='cr-page-toolbar'>
3140
<ProgressBarprogress={progress}/>
@@ -34,13 +43,7 @@ export default class extends React.Component<{
3443

3544
<ToolbarGroupfloat='right'>
3645
{/* add log here */}
37-
38-
{/* check work || continue */}
39-
{allComplete ?
40-
<RaisedButtonlabel='Continue'primary={true}onTouchTap={callNextPage}/>
41-
:
42-
<RaisedButtonlabel='Save'secondary={true}onTouchTap={save}/>
43-
}
46+
{this.getButton()}
4447
</ToolbarGroup>
4548

4649
</Toolbar>

‎src/services/package.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ class PackageService {
8383
return{chapter:chapter+1,page:0};
8484
}else{
8585
store.dispatch(Action.projectComplete());
86-
return{chapter, page};
86+
return{chapter, page,completed:true};
8787
}
8888
}
8989
getProject():CR.Project{

‎src/typings/cr/cr.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ declare namespace CR {
5151
interfacePosition{
5252
chapter:number;
5353
page:number;
54+
completed?:boolean;
5455
}
5556

5657
interfaceProgress{

‎src/typings/material-ui/material-ui.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ declare module "material-ui" {
3737
exportimportLeftNav=__MaterialUI.LeftNav;// require('material-ui/lib/left-nav');
3838
exportimportLinearProgress=__MaterialUI.LinearProgress;// require('material-ui/lib/linear-progress');
3939
exportimportList=__MaterialUI.Lists.List;// require('material-ui/lib/lists/list');
40-
exportimportListDivider=__MaterialUI.Lists.ListDivider;// require('material-ui/lib/lists/list-divider');
40+
exportimportDivider=__MaterialUI.Divider;// require('material-ui/lib/divider');
4141
exportimportListItem=__MaterialUI.Lists.ListItem;// require('material-ui/lib/lists/list-item');
4242
exportimportMenu=__MaterialUI.Menus.Menu;// require('material-ui/lib/menus/menu');
4343
exportimportMenuItem=__MaterialUI.Menus.MenuItem;// require('material-ui/lib/menus/menu-item');

‎styles/styles.css

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@ atom-panel-container > atom-panel > #crv {
3232
.cr .cr-menu-bar {
3333
z-index:999!important;
3434
}
35+
.cr .cr-menu-bara,
36+
.cr .cr-menu-bara:visited,
37+
.cr .cr-menu-bara:link,
38+
.cr .cr-menu-bara:hover {
39+
color: black;
40+
text-decoration: none;
41+
}
3542
.cr-chapter {
3643
border:2px solid red;
3744
border-sizing: border-box;

‎tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@
102102
"src/components/alert/alert.tsx",
103103
"src/components/app/app.tsx",
104104
"src/components/app/router.tsx",
105+
"src/components/final-page/final-page.tsx",
105106
"src/components/markdown/markdown.tsx",
106107
"src/components/menu/menu.tsx",
107108
"src/components/page/chapter.tsx",

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp