Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -1,15 +1,3 @@
// {
// "parserOptions": {
// "ecmaVersion": 6,
// "sourceType": "module",
// "ecmaFeatures": {
// "jsx": true
// }
// },
// "rules": {
// "semi": 2
// }
// }
{
"extends": "eslint:recommended",
"env": {
Expand Down
14 changes: 8 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@
node_modules
dist
.*/
icomoon/demo-files
.ideaicomoon/demo-filesicomoon/ie7
icomoon/demo.html
icomoon/Read Me.txt
icomoon/selection.json
icomoon/style.css
client/lib/icomoon/demo-files
.idea
client/lib/icomoon/demo-filesicomoon/ie7
client/lib/icomoon/demo.html
client/lib/icomoon/Read Me.txt
client/lib/icomoon/selection.json
client/lib/icomoon/style.css
client/dist
34 changes: 17 additions & 17 deletions src/actions.js → client/actions.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,36 +3,37 @@ This module contains action creators. They are functions which will return an ob
These actions are imported by Redux-aware components who need them, in our case it is just Home.
*/

var C = require('./constants');
import C from './config/constants';
import fetch from 'isomorphic-fetch';
require('es6-promise').polyfill();
import jwtDecode from 'jwt-decode';
import { pushState } from 'redux-router';

module.exports = {
reset: function() {
reset: () => {
// A normal action creator, returns a simple object describing the action.
return { type: C.RESET };
},
addMember: function(member) {
return function(dispatch, getState) {
addMember: (member) => {
return (dispatch, getState) => {
dispatch({ type: C.ADD_MEMBER, member: member });
};
},
removeMember: function(member) {
return function(dispatch, getState) {
removeMember: (member) => {
return (dispatch, getState) => {
dispatch({ type: C.REMOVE_MEMBER, member: member });
};
},
getInitialMembers: function() {
return function(dispatch, getState) {
return fetch('http://localhost:8080/api/members')
getInitialMembers: () => {
return (dispatch, getState) => {
return fetch('/api/members')
.then(response => response.json())
.then(json => dispatch({ type: C.INIT_MEMBERS_LIST, data: json }));
};
},
changeLanguage: function(language) {
return function(dispatch, getState) {
changeLanguage: (language) => {
return (dispatch, getState) => {
console.warn('CL ACTION');
dispatch({ type: C.CHANGE_LANGUAGE, language: language });
};
},
Expand All @@ -44,11 +45,11 @@ module.exports = {
logout: logout,
logoutAndRedirect: logoutAndRedirect,

doLogin: function(usr, pwd, redirect = '/') {
return function(dispatch, getState) {
doLogin: (usr, pwd, redirect = '/') => {
return (dispatch, getState) => {
dispatch(loginUserRequest());

return fetch('http://localhost:8080/api/auth/login', {
return fetch('/api/auth/login', {
method: 'post',
credentials: 'include',
headers: {
Expand All @@ -59,7 +60,6 @@ module.exports = {
})
.then(response => response.json())
.then(response => {

try {
jwtDecode(response.token);
dispatch(loginUserSuccess(response.token));
Expand All @@ -78,8 +78,8 @@ module.exports = {
});
};
},
editMembers: function(token) {
return function(dispatch, getState) {
editMembers: (token) => {
return function (dispatch, getState) {
return fetch('http://localhost:8080/api/editMembers', {
headers: {
'x-access-token': token,
Expand Down
File renamed without changes
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import React, { Component, PropTypes } from 'react';
import translate from '../hoc/translate';

class aboutDetails extends Component {
render() {
Expand All @@ -19,4 +18,4 @@ aboutDetails.defaultProps = {
},
};

export default translate('aboutDetails')(aboutDetails);
export default aboutDetails;
25 changes: 1 addition & 24 deletions src/containers/aboutList.js → client/components/aboutList.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
import React, { PropTypes as ptypes} from 'react';
import * as ReactRedux from 'react-redux';
import actions from '../actions';
import _ from 'lodash';
import {Link} from 'react-router';

Expand Down Expand Up @@ -47,25 +45,4 @@ var aboutList = React.createClass({
},
});

var mapStateToProps = function(state) {
return {
aboutState: state.about,
};
};

var mapDispatchToProps = function(dispatch) {
return {
addMember: function(member) {
dispatch(actions.addMember(this.state.newItemText));
},
removeMember: function(member) {
dispatch(actions.removeMember(member));
},
getInitialMembers:function() {
dispatch(actions.getInitialMembers());
},
};
};

module.exports.rawComponent = aboutList;
module.exports.component = ReactRedux.connect(mapStateToProps, mapDispatchToProps)(aboutList);
module.exports.component = aboutList;
30 changes: 30 additions & 0 deletions client/components/adminHome.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import React, { Component } from 'react';

class AdminHome extends Component {

componentWillMount () {
this.fetchData();
}

fetchData () {
let token = this.props.token;
this.props.fetchProtectedData(token);
}

render () {
return (
<div>

{/* {this.props.isFetching === true? <h1>Loading data...</h1>: */}
<div>
<h1>Welcome back,
{this.props.userName}!</h1>
<h3>{this.props.data.members}</h3>
</div>

</div>
);
}
}

export default AdminHome;
35 changes: 4 additions & 31 deletions src/components/contact.js → client/components/contact.js
Original file line number Diff line number Diff line change
@@ -1,34 +1,14 @@
import React, { PropTypes as pt} from 'react';
import {reduxForm} from 'redux-form';
import fetch from 'isomorphic-fetch';
require('es6-promise').polyfill();
import React, { Component } from 'react';

const validate = require('../../common/validators').contact;
const fields = ['name', 'email', 'message'];
class Contact extends Component {
submit(values, dispatch) { } //noop

class Contact extends React.Component {
submit(values, dispatch) {
return new Promise((resolve, reject) => {
fetch('http://localhost:8080/api/contact', {
method: 'post',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify(values),
})
.then(response => response.json())
.then(response => {
response.success && resolve() || reject(response.errors);
});
});
}
render() {
const {fields: {name, email, message}, handleSubmit} = this.props;
return (
<section className="page-contact">
<h1>{'Contact'}</h1>
<form onSubmit={handleSubmit(this.submit)}>
<form onSubmit={handleSubmit(this.submit) }>
<div className={name.touched && name.error && 'has-error'}>
<input type="text" placeholder="Your name" {...name} />
{name.touched && name.error && <span>{name.error}</span>}
Expand All @@ -48,11 +28,4 @@ class Contact extends React.Component {
}
}

Contact = reduxForm({
form: 'contact',
fields,
//toggle commenting the next line. Commented = will use server-side validation. Uncommented = will use client-side validation.
validate,
})(Contact);

export default Contact;
7 changes: 1 addition & 6 deletions src/components/culture.js → client/components/culture.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,4 @@
import React, { Component } from 'react';
import { connect } from 'react-redux';

const stateToProps = state => ({
culture: state.team.culture,
});

class Culture extends Component {
render() {
Expand All @@ -16,4 +11,4 @@ class Culture extends Component {
}
}

export default connect(stateToProps)(Culture);
export default Culture;
3 changes: 1 addition & 2 deletions src/containers/footer.js → client/components/footer.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import React, { PropTypes, Component } from 'react';
import translate from '../hoc/translate';

class Footer extends Component {
render() {
Expand All @@ -18,4 +17,4 @@ Footer.defaultProps = {
},
};

export default translate('Footer')(Footer);
export default Footer;
13 changes: 2 additions & 11 deletions src/containers/gallery.js → client/components/gallery.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,5 @@
import SimpleGrid from '../components/simpleList';
import React, { Component } from 'react';
import { connect } from 'react-redux';

const stateToProps = state => ({
items: state.team.gallery,
});

// const actionsToProps = dispatch => ({
// handleChange: event => dispatch(changeLanguage(event.target.value)),
// });
import SimpleGrid from '../components/simpleList';

class Gallery extends Component {

Expand All @@ -30,4 +21,4 @@ class Gallery extends Component {
}
}

export default connect(stateToProps)(Gallery);
export default Gallery;
50 changes: 50 additions & 0 deletions client/components/galleryExample.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import React, { Component } from 'react';
import { PhotoSwipeGallery } from 'react-photoswipe';

class GalleryExample extends Component {
constructor() {
super();
}
render() {
let items = [
{
src: '/client/dist/img/gallery/1.png',
thumbnail: '/client/dist/img/gallery/1.png',
w: 1200,
h: 900,
title: 'Image 1',
}, {
src: '/client/dist/img/gallery/2.png',
thumbnail: '/client/dist/img/gallery/2.png',
w: 1200,
h: 900,
title: 'Image 2',
}, {
src: '/client/dist/img/gallery/3.png',
thumbnail: '/client/dist/img/gallery/3.png',
w: 1200,
h: 900,
title: 'Image 3',
},
];

let options = {
//http://photoswipe.com/documentation/options.html
};

const getThumbnailContent = (item) => {
return <img src = {item.thumbnail} width = {120} height = {90} />;
};

return (<div>
<a>{'Show PhotoSwipe'}</a>
<PhotoSwipeGallery items = {items}
options = {options}
thumbnailContent = {getThumbnailContent}
/>
</div>
);
}
}

export default GalleryExample;
File renamed without changes.
7 changes: 3 additions & 4 deletions src/containers/header.js → client/components/header.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import React, { PropTypes, Component } from 'react';
import HeaderLinks from '../components/headerLinks';
import LanguagePicker from '../components/languagePicker';
import translate from '../hoc/translate';
import HeaderLinks from '../containers/headerLinksContainer';
import LanguagePicker from '../containers/languagePickerContainer';

class Header extends Component {
render() {
Expand All @@ -26,4 +25,4 @@ Header.defaultProps = {
},
};

export default translate('Header')(Header);
export default Header;
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import React, { Component, PropTypes } from 'react';
import { Link } from 'react-router';
import translate from '../hoc/translate';
const routePaths = require('../../common/routePaths');

class HeaderLinks extends Component {
Expand Down Expand Up @@ -34,4 +33,4 @@ HeaderLinks.defaultProps = {
},
};

export default translate('HeaderLinks')(HeaderLinks);
export default HeaderLinks;
3 changes: 1 addition & 2 deletions src/components/home.js → client/components/home.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import React, { PropTypes, Component } from 'react';
import translate from '../hoc/translate';

class Home extends Component {
render() {
Expand All @@ -18,4 +17,4 @@ Home.defaultProps = {
},
};

export default translate('Home')(Home);
export default Home;
Loading