Commit bc401ec925285916d52684d8cc403f293dcbfa57
1 parent
5c607b0299
Exists in
master
force git to recognize casing on file names
Showing
11 changed files
with
175 additions
and
241 deletions
Show diff stats
imports/ui/components/Loading.js
... | ... | @@ -0,0 +1,30 @@ |
1 | +import React from 'react'; | |
2 | + | |
3 | +const Loading = () => ( | |
4 | + <svg | |
5 | + version="1.1" | |
6 | + className="loading" | |
7 | + xmlns="http://www.w3.org/2000/svg" | |
8 | + x="0px" | |
9 | + y="0px" | |
10 | + width="40px" | |
11 | + height="40px" | |
12 | + viewBox="0 0 40 40" | |
13 | + enableBackground="new 0 0 40 40"> | |
14 | + <path | |
15 | + opacity="1.0" | |
16 | + fill="#eee" | |
17 | + d="M20.201,5.169c-8.254,0-14.946,6.692-14.946,14.946c0,8.255,6.692,14.946, | |
18 | + 14.946,14.946s14.946-6.691,14.946-14.946C35.146,11.861,28.455,5.169,20.201, | |
19 | + 5.169z M20.201,31.749c-6.425,0-11.634-5.208-11.634-11.634c0-6.425, | |
20 | + 5.209-11.634,11.634-11.634c6.425,0,11.633,5.209,11.633,11.634C31.834, | |
21 | + 26.541,26.626,31.749,20.201,31.749z"/> | |
22 | + <path | |
23 | + fill="#da5347" | |
24 | + d="M26.013,10.047l1.654-2.866c-2.198-1.272-4.743-2.012-7.466-2.012h0v3.312h0 | |
25 | + C22.32,8.481,24.301,9.057,26.013,10.047z"> | |
26 | + </path> | |
27 | + </svg> | |
28 | +); | |
29 | + | |
30 | +export default Loading; | ... | ... |
imports/ui/components/document.js
... | ... | @@ -1,66 +0,0 @@ |
1 | -import React from 'react'; | |
2 | -import { Row, Col, ListGroupItem, FormControl, Button } from 'react-bootstrap'; | |
3 | -import { Bert } from 'meteor/themeteorchef:bert'; | |
4 | -import { updateDocument, removeDocument } from '../../api/documents/methods.js'; | |
5 | - | |
6 | -const handleUpdateDocument = (documentId, event) => { | |
7 | - const title = event.target.value.trim(); | |
8 | - if (title !== '' && event.keyCode === 13) { | |
9 | - updateDocument.call({ | |
10 | - _id: documentId, | |
11 | - update: { title }, | |
12 | - }, (error) => { | |
13 | - if (error) { | |
14 | - Bert.alert(error.reason, 'danger'); | |
15 | - } else { | |
16 | - Bert.alert('Document updated!', 'success'); | |
17 | - } | |
18 | - }); | |
19 | - } | |
20 | -}; | |
21 | - | |
22 | -const handleRemoveDocument = (documentId, event) => { | |
23 | - event.preventDefault(); | |
24 | - // this should be replaced with a styled solution so for now we will | |
25 | - // disable the eslint `no-alert` | |
26 | - // eslint-disable-next-line no-alert | |
27 | - if (confirm('Are you sure? This is permanent.')) { | |
28 | - removeDocument.call({ | |
29 | - _id: documentId, | |
30 | - }, (error) => { | |
31 | - if (error) { | |
32 | - Bert.alert(error.reason, 'danger'); | |
33 | - } else { | |
34 | - Bert.alert('Document removed!', 'success'); | |
35 | - } | |
36 | - }); | |
37 | - } | |
38 | -}; | |
39 | - | |
40 | -const Document = ({ document }) => ( | |
41 | - <ListGroupItem key={ document._id }> | |
42 | - <Row> | |
43 | - <Col xs={ 8 } sm={ 10 }> | |
44 | - <FormControl | |
45 | - type="text" | |
46 | - defaultValue={ document.title } | |
47 | - onKeyUp={ handleUpdateDocument.bind(this, document._id) } | |
48 | - /> | |
49 | - </Col> | |
50 | - <Col xs={ 4 } sm={ 2 }> | |
51 | - <Button | |
52 | - bsStyle="danger" | |
53 | - className="btn-block" | |
54 | - onClick={ handleRemoveDocument.bind(this, document._id) }> | |
55 | - Remove | |
56 | - </Button> | |
57 | - </Col> | |
58 | - </Row> | |
59 | - </ListGroupItem> | |
60 | -); | |
61 | - | |
62 | -Document.propTypes = { | |
63 | - document: React.PropTypes.object, | |
64 | -}; | |
65 | - | |
66 | -export default Document; |
imports/ui/components/loading.js
... | ... | @@ -1,30 +0,0 @@ |
1 | -import React from 'react'; | |
2 | - | |
3 | -const Loading = () => ( | |
4 | - <svg | |
5 | - version="1.1" | |
6 | - className="loading" | |
7 | - xmlns="http://www.w3.org/2000/svg" | |
8 | - x="0px" | |
9 | - y="0px" | |
10 | - width="40px" | |
11 | - height="40px" | |
12 | - viewBox="0 0 40 40" | |
13 | - enableBackground="new 0 0 40 40"> | |
14 | - <path | |
15 | - opacity="1.0" | |
16 | - fill="#eee" | |
17 | - d="M20.201,5.169c-8.254,0-14.946,6.692-14.946,14.946c0,8.255,6.692,14.946, | |
18 | - 14.946,14.946s14.946-6.691,14.946-14.946C35.146,11.861,28.455,5.169,20.201, | |
19 | - 5.169z M20.201,31.749c-6.425,0-11.634-5.208-11.634-11.634c0-6.425, | |
20 | - 5.209-11.634,11.634-11.634c6.425,0,11.633,5.209,11.633,11.634C31.834, | |
21 | - 26.541,26.626,31.749,20.201,31.749z"/> | |
22 | - <path | |
23 | - fill="#da5347" | |
24 | - d="M26.013,10.047l1.654-2.866c-2.198-1.272-4.743-2.012-7.466-2.012h0v3.312h0 | |
25 | - C22.32,8.481,24.301,9.057,26.013,10.047z"> | |
26 | - </path> | |
27 | - </svg> | |
28 | -); | |
29 | - | |
30 | -export default Loading; |
imports/ui/layouts/App.js
... | ... | @@ -0,0 +1,18 @@ |
1 | +import React from 'react'; | |
2 | +import { Grid } from 'react-bootstrap'; | |
3 | +import AppNavigation from '../containers/AppNavigation.js'; | |
4 | + | |
5 | +const App = ({ children }) => ( | |
6 | + <div> | |
7 | + <AppNavigation /> | |
8 | + <Grid> | |
9 | + { children } | |
10 | + </Grid> | |
11 | + </div> | |
12 | +); | |
13 | + | |
14 | +App.propTypes = { | |
15 | + children: React.PropTypes.node, | |
16 | +}; | |
17 | + | |
18 | +export default App; | ... | ... |
imports/ui/layouts/app.js
... | ... | @@ -1,18 +0,0 @@ |
1 | -import React from 'react'; | |
2 | -import { Grid } from 'react-bootstrap'; | |
3 | -import AppNavigation from '../containers/AppNavigation.js'; | |
4 | - | |
5 | -const App = ({ children }) => ( | |
6 | - <div> | |
7 | - <AppNavigation /> | |
8 | - <Grid> | |
9 | - { children } | |
10 | - </Grid> | |
11 | - </div> | |
12 | -); | |
13 | - | |
14 | -App.propTypes = { | |
15 | - children: React.PropTypes.node, | |
16 | -}; | |
17 | - | |
18 | -export default App; |
imports/ui/pages/Index.js
... | ... | @@ -0,0 +1,13 @@ |
1 | +import React from 'react'; | |
2 | +import { Jumbotron } from 'react-bootstrap'; | |
3 | + | |
4 | +const Index = () => ( | |
5 | + <Jumbotron className="text-center"> | |
6 | + <h2>Base</h2> | |
7 | + <p>A starting point for Meteor applications.</p> | |
8 | + <p><a className="btn btn-success" href="https://themeteorchef.com/base" role="button">Read the Documentation</a></p> | |
9 | + <p style={ { fontSize: '16px', color: '#aaa' } }>Currently at v4.8.0</p> | |
10 | + </Jumbotron> | |
11 | +); | |
12 | + | |
13 | +export default Index; | ... | ... |
imports/ui/pages/Login.js
... | ... | @@ -0,0 +1,46 @@ |
1 | +import React from 'react'; | |
2 | +import { Link } from 'react-router'; | |
3 | +import { Row, Col, FormGroup, ControlLabel, FormControl, Button } from 'react-bootstrap'; | |
4 | +import handleLogin from '../../modules/login'; | |
5 | + | |
6 | +export default class Login extends React.Component { | |
7 | + componentDidMount() { | |
8 | + handleLogin({ component: this }); | |
9 | + } | |
10 | + | |
11 | + handleSubmit(event) { | |
12 | + event.preventDefault(); | |
13 | + } | |
14 | + | |
15 | + render() { | |
16 | + return (<Row> | |
17 | + <Col xs={ 12 } sm={ 6 } md={ 4 }> | |
18 | + <h4 className="page-header">Login</h4> | |
19 | + <form ref="login" className="login" onSubmit={ this.handleSubmit }> | |
20 | + <FormGroup> | |
21 | + <ControlLabel>Email Address</ControlLabel> | |
22 | + <FormControl | |
23 | + type="email" | |
24 | + ref="emailAddress" | |
25 | + name="emailAddress" | |
26 | + placeholder="Email Address" | |
27 | + /> | |
28 | + </FormGroup> | |
29 | + <FormGroup> | |
30 | + <ControlLabel> | |
31 | + <span className="pull-left">Password</span> | |
32 | + <Link className="pull-right" to="/recover-password">Forgot Password?</Link> | |
33 | + </ControlLabel> | |
34 | + <FormControl | |
35 | + type="password" | |
36 | + ref="password" | |
37 | + name="password" | |
38 | + placeholder="Password" | |
39 | + /> | |
40 | + </FormGroup> | |
41 | + <Button type="submit" bsStyle="success">Login</Button> | |
42 | + </form> | |
43 | + </Col> | |
44 | + </Row>); | |
45 | + } | |
46 | +} | ... | ... |
imports/ui/pages/Signup.js
... | ... | @@ -0,0 +1,68 @@ |
1 | +import React from 'react'; | |
2 | +import { Link } from 'react-router'; | |
3 | +import { Row, Col, FormGroup, ControlLabel, FormControl, Button } from 'react-bootstrap'; | |
4 | +import handleSignup from '../../modules/signup'; | |
5 | + | |
6 | +export default class Signup extends React.Component { | |
7 | + componentDidMount() { | |
8 | + handleSignup({ component: this }); | |
9 | + } | |
10 | + | |
11 | + handleSubmit(event) { | |
12 | + event.preventDefault(); | |
13 | + } | |
14 | + | |
15 | + render() { | |
16 | + return (<Row> | |
17 | + <Col xs={ 12 } sm={ 6 } md={ 4 }> | |
18 | + <h4 className="page-header">Sign Up</h4> | |
19 | + <form ref="signup" className="signup" onSubmit={ this.handleSubmit }> | |
20 | + <Row> | |
21 | + <Col xs={ 6 } sm={ 6 }> | |
22 | + <FormGroup> | |
23 | + <ControlLabel>First Name</ControlLabel> | |
24 | + <FormControl | |
25 | + type="text" | |
26 | + ref="firstName" | |
27 | + name="firstName" | |
28 | + placeholder="First Name" | |
29 | + /> | |
30 | + </FormGroup> | |
31 | + </Col> | |
32 | + <Col xs={ 6 } sm={ 6 }> | |
33 | + <FormGroup> | |
34 | + <ControlLabel>Last Name</ControlLabel> | |
35 | + <FormControl | |
36 | + type="text" | |
37 | + ref="lastName" | |
38 | + name="lastName" | |
39 | + placeholder="Last Name" | |
40 | + /> | |
41 | + </FormGroup> | |
42 | + </Col> | |
43 | + </Row> | |
44 | + <FormGroup> | |
45 | + <ControlLabel>Email Address</ControlLabel> | |
46 | + <FormControl | |
47 | + type="text" | |
48 | + ref="emailAddress" | |
49 | + name="emailAddress" | |
50 | + placeholder="Email Address" | |
51 | + /> | |
52 | + </FormGroup> | |
53 | + <FormGroup> | |
54 | + <ControlLabel>Password</ControlLabel> | |
55 | + <FormControl | |
56 | + type="password" | |
57 | + ref="password" | |
58 | + name="password" | |
59 | + placeholder="Password" | |
60 | + /> | |
61 | + </FormGroup> | |
62 | + <Button type="submit" bsStyle="success">Sign Up</Button> | |
63 | + </form> | |
64 | + <p>Already have an account? <Link to="/login">Log In</Link>.</p> | |
65 | + </Col> | |
66 | + </Row>); | |
67 | + } | |
68 | +} | ... | ... |
imports/ui/pages/index.js
... | ... | @@ -1,13 +0,0 @@ |
1 | -import React from 'react'; | |
2 | -import { Jumbotron } from 'react-bootstrap'; | |
3 | - | |
4 | -const Index = () => ( | |
5 | - <Jumbotron className="text-center"> | |
6 | - <h2>Base</h2> | |
7 | - <p>A starting point for Meteor applications.</p> | |
8 | - <p><a className="btn btn-success" href="https://themeteorchef.com/base" role="button">Read the Documentation</a></p> | |
9 | - <p style={ { fontSize: '16px', color: '#aaa' } }>Currently at v4.8.0</p> | |
10 | - </Jumbotron> | |
11 | -); | |
12 | - | |
13 | -export default Index; |
imports/ui/pages/login.js
... | ... | @@ -1,46 +0,0 @@ |
1 | -import React from 'react'; | |
2 | -import { Link } from 'react-router'; | |
3 | -import { Row, Col, FormGroup, ControlLabel, FormControl, Button } from 'react-bootstrap'; | |
4 | -import handleLogin from '../../modules/login'; | |
5 | - | |
6 | -export default class Login extends React.Component { | |
7 | - componentDidMount() { | |
8 | - handleLogin({ component: this }); | |
9 | - } | |
10 | - | |
11 | - handleSubmit(event) { | |
12 | - event.preventDefault(); | |
13 | - } | |
14 | - | |
15 | - render() { | |
16 | - return (<Row> | |
17 | - <Col xs={ 12 } sm={ 6 } md={ 4 }> | |
18 | - <h4 className="page-header">Login</h4> | |
19 | - <form ref="login" className="login" onSubmit={ this.handleSubmit }> | |
20 | - <FormGroup> | |
21 | - <ControlLabel>Email Address</ControlLabel> | |
22 | - <FormControl | |
23 | - type="email" | |
24 | - ref="emailAddress" | |
25 | - name="emailAddress" | |
26 | - placeholder="Email Address" | |
27 | - /> | |
28 | - </FormGroup> | |
29 | - <FormGroup> | |
30 | - <ControlLabel> | |
31 | - <span className="pull-left">Password</span> | |
32 | - <Link className="pull-right" to="/recover-password">Forgot Password?</Link> | |
33 | - </ControlLabel> | |
34 | - <FormControl | |
35 | - type="password" | |
36 | - ref="password" | |
37 | - name="password" | |
38 | - placeholder="Password" | |
39 | - /> | |
40 | - </FormGroup> | |
41 | - <Button type="submit" bsStyle="success">Login</Button> | |
42 | - </form> | |
43 | - </Col> | |
44 | - </Row>); | |
45 | - } | |
46 | -} |
imports/ui/pages/signup.js
... | ... | @@ -1,68 +0,0 @@ |
1 | -import React from 'react'; | |
2 | -import { Link } from 'react-router'; | |
3 | -import { Row, Col, FormGroup, ControlLabel, FormControl, Button } from 'react-bootstrap'; | |
4 | -import handleSignup from '../../modules/signup'; | |
5 | - | |
6 | -export default class Signup extends React.Component { | |
7 | - componentDidMount() { | |
8 | - handleSignup({ component: this }); | |
9 | - } | |
10 | - | |
11 | - handleSubmit(event) { | |
12 | - event.preventDefault(); | |
13 | - } | |
14 | - | |
15 | - render() { | |
16 | - return (<Row> | |
17 | - <Col xs={ 12 } sm={ 6 } md={ 4 }> | |
18 | - <h4 className="page-header">Sign Up</h4> | |
19 | - <form ref="signup" className="signup" onSubmit={ this.handleSubmit }> | |
20 | - <Row> | |
21 | - <Col xs={ 6 } sm={ 6 }> | |
22 | - <FormGroup> | |
23 | - <ControlLabel>First Name</ControlLabel> | |
24 | - <FormControl | |
25 | - type="text" | |
26 | - ref="firstName" | |
27 | - name="firstName" | |
28 | - placeholder="First Name" | |
29 | - /> | |
30 | - </FormGroup> | |
31 | - </Col> | |
32 | - <Col xs={ 6 } sm={ 6 }> | |
33 | - <FormGroup> | |
34 | - <ControlLabel>Last Name</ControlLabel> | |
35 | - <FormControl | |
36 | - type="text" | |
37 | - ref="lastName" | |
38 | - name="lastName" | |
39 | - placeholder="Last Name" | |
40 | - /> | |
41 | - </FormGroup> | |
42 | - </Col> | |
43 | - </Row> | |
44 | - <FormGroup> | |
45 | - <ControlLabel>Email Address</ControlLabel> | |
46 | - <FormControl | |
47 | - type="text" | |
48 | - ref="emailAddress" | |
49 | - name="emailAddress" | |
50 | - placeholder="Email Address" | |
51 | - /> | |
52 | - </FormGroup> | |
53 | - <FormGroup> | |
54 | - <ControlLabel>Password</ControlLabel> | |
55 | - <FormControl | |
56 | - type="password" | |
57 | - ref="password" | |
58 | - name="password" | |
59 | - placeholder="Password" | |
60 | - /> | |
61 | - </FormGroup> | |
62 | - <Button type="submit" bsStyle="success">Sign Up</Button> | |
63 | - </form> | |
64 | - <p>Already have an account? <Link to="/login">Log In</Link>.</p> | |
65 | - </Col> | |
66 | - </Row>); | |
67 | - } | |
68 | -} |