From 7870c60ab4b47cec678bb270cc98e2933a263e31 Mon Sep 17 00:00:00 2001 From: Rokt33r Date: Sun, 12 Jul 2015 18:13:28 +0900 Subject: [PATCH] add login/signup action --- browser/main/Actions/login.js | 5 ++ browser/main/Actions/register.js | 5 ++ browser/main/Actions/snippetUpdate.js | 6 ++ browser/main/Components/CodeEditor.jsx | 2 +- browser/main/Components/CodeViewer.jsx | 2 +- browser/main/Containers/LoginContainer.jsx | 53 ++++++++++---- browser/main/Containers/PlanetContainer.jsx | 2 +- browser/main/Containers/RegisterContainer.jsx | 67 ++++++++++++------ browser/main/Services/Snippet.js | 2 +- browser/main/Stores/AuthStore.js | 39 ++++++++++ browser/main/favicon.ico | Bin 0 -> 15086 bytes browser/main/index.html | 1 + browser/main/resources/favicon-230x230.png | Bin 0 -> 5265 bytes .../main/containers/LoginContainer.styl | 55 ++++++++++++++ browser/styles/main/index.styl | 22 +++--- browser/styles/shared/modal.styl | 2 +- browser/styles/vars.styl | 4 ++ package.json | 4 +- 18 files changed, 222 insertions(+), 49 deletions(-) create mode 100644 browser/main/Actions/login.js create mode 100644 browser/main/Actions/register.js create mode 100644 browser/main/Actions/snippetUpdate.js create mode 100644 browser/main/Stores/AuthStore.js create mode 100644 browser/main/favicon.ico create mode 100644 browser/main/resources/favicon-230x230.png create mode 100644 browser/styles/main/containers/LoginContainer.styl diff --git a/browser/main/Actions/login.js b/browser/main/Actions/login.js new file mode 100644 index 00000000..da9c4b1a --- /dev/null +++ b/browser/main/Actions/login.js @@ -0,0 +1,5 @@ +var Reflux = require('reflux') + +var login = Reflux.createAction() + +module.exports = login diff --git a/browser/main/Actions/register.js b/browser/main/Actions/register.js new file mode 100644 index 00000000..aa7b08a1 --- /dev/null +++ b/browser/main/Actions/register.js @@ -0,0 +1,5 @@ +var Reflux = require('reflux') + +var register = Reflux.createAction() + +module.exports = register diff --git a/browser/main/Actions/snippetUpdate.js b/browser/main/Actions/snippetUpdate.js new file mode 100644 index 00000000..138dc565 --- /dev/null +++ b/browser/main/Actions/snippetUpdate.js @@ -0,0 +1,6 @@ +var Reflux = require('reflux') + +// Creating an Action +var snippetUpdate = Reflux.createAction() + +module.exports = snippetUpdate diff --git a/browser/main/Components/CodeEditor.jsx b/browser/main/Components/CodeEditor.jsx index 089c652f..ef054e98 100644 --- a/browser/main/Components/CodeEditor.jsx +++ b/browser/main/Components/CodeEditor.jsx @@ -10,8 +10,8 @@ var CodeEditor = React.createClass({ componentDidMount: function () { var el = React.findDOMNode(this.refs.target) var editor = ace.edit(el) - editor.setValue(this.props.code) editor.$blockScrolling = Infinity + editor.setValue(this.props.code) editor.renderer.setShowGutter(true) editor.setTheme('ace/theme/xcode') diff --git a/browser/main/Components/CodeViewer.jsx b/browser/main/Components/CodeViewer.jsx index bb04eef5..35864cb9 100644 --- a/browser/main/Components/CodeViewer.jsx +++ b/browser/main/Components/CodeViewer.jsx @@ -9,8 +9,8 @@ var CodeViewer = React.createClass({ componentDidMount: function () { var el = React.findDOMNode(this.refs.target) var editor = ace.edit(el) - editor.setValue(this.props.code) editor.$blockScrolling = Infinity + editor.setValue(this.props.code) editor.renderer.setShowGutter(false) editor.setReadOnly(true) editor.setTheme('ace/theme/xcode') diff --git a/browser/main/Containers/LoginContainer.jsx b/browser/main/Containers/LoginContainer.jsx index 0d1c69dc..8597bf1f 100644 --- a/browser/main/Containers/LoginContainer.jsx +++ b/browser/main/Containers/LoginContainer.jsx @@ -1,7 +1,9 @@ var React = require('react/addons') var ReactRouter = require('react-router') var Link = ReactRouter.Link -var Auth = require('../Services/Auth') + +var AuthStore = require('../Stores/AuthStore') +var login = require('../Actions/login') module.exports = React.createClass({ mixins: [React.addons.LinkedStateMixin, ReactRouter.Navigation], @@ -11,31 +13,54 @@ module.exports = React.createClass({ password: '' } }, + componentDidMount: function () { + this.unsubscribe = AuthStore.listen(this.onLogin) + }, + componentWillUnmount: function () { + this.unsubscribe() + }, handleSubmit: function (e) { - console.log(this.state) - Auth.attempt() - // TODO: request user data - .then(function (user) { - this.transitionTo('dashboard', {userName: user.name, planetName: user.name}) - }.bind(this)) + login({ + email: this.state.email, + password: this.state.password + }) e.preventDefault() }, + onLogin: function (user) { + var planet = user.Planets.length > 0 ? user.Planets[0] : null + if (planet == null) { + this.transitionTo('user', {userName: user.name}) + return + } + this.transitionTo('dashboard', {userName: user.name, planetName: planet.name}) + }, render: function () { return (
-

CodeXen

-

Log In | Register

+ + + + +
+

Connect with

+ + +
+ +
+
+
or
+
+
- - +
- - +
- +
diff --git a/browser/main/Containers/PlanetContainer.jsx b/browser/main/Containers/PlanetContainer.jsx index 3b750739..81b40ee4 100644 --- a/browser/main/Containers/PlanetContainer.jsx +++ b/browser/main/Containers/PlanetContainer.jsx @@ -14,7 +14,7 @@ var currentUser = { var userPlanets = [ { id: 1, - name: 'testcat', + name: 'myplanet', profileName: 'TestCat' }, { diff --git a/browser/main/Containers/RegisterContainer.jsx b/browser/main/Containers/RegisterContainer.jsx index 819a17b2..6215c998 100644 --- a/browser/main/Containers/RegisterContainer.jsx +++ b/browser/main/Containers/RegisterContainer.jsx @@ -1,7 +1,9 @@ var React = require('react/addons') var ReactRouter = require('react-router') var Link = ReactRouter.Link -var Auth = require('../Services/Auth') + +var AuthStore = require('../Stores/AuthStore') +var register = require('../Actions/register') module.exports = React.createClass({ mixins: [React.addons.LinkedStateMixin, ReactRouter.Navigation], @@ -13,42 +15,67 @@ module.exports = React.createClass({ profileName: '' } }, + componentDidMount: function () { + this.unsubscribe = AuthStore.listen(this.onRegister) + }, + componentWillUnmount: function () { + this.unsubscribe() + }, handleSubmit: function (e) { - Auth.register() - // TODO: request user data - .then(function (user) { - this.transitionTo('dashboard', {userName: user.name, planetName: user.name}) - }.bind(this)) + register({ + email: this.state.email, + password: this.state.password, + name: this.state.name, + profileName: this.state.profileName + }) e.preventDefault() }, + onRegister: function (user) { + var planet = user.Planets.length > 0 ? user.Planets[0] : null + if (planet == null) { + this.transitionTo('user', {userName: user.name}) + return + } + this.transitionTo('dashboard', {userName: user.name, planetName: planet.name}) + }, render: function () { return (
-

CodeXen

-

Log In | Register

+ + + + +
+

Connect with

+ + +
+ +
+
+
or
+
+
- - +
- - -
-
-
- - +
- - +
- + +
+
+
+ +

Sign Upをクリックすることで、当サイトの利用規約及びCookieの使用を含むデータに関するポリシーに同意するものとします。

) } diff --git a/browser/main/Services/Snippet.js b/browser/main/Services/Snippet.js index a919549e..4435d332 100644 --- a/browser/main/Services/Snippet.js +++ b/browser/main/Services/Snippet.js @@ -1,7 +1,7 @@ var Snippet = {} var snippets = { - testcat: [ + myplanet: [ { id: 1, callSign: 'alert', diff --git a/browser/main/Stores/AuthStore.js b/browser/main/Stores/AuthStore.js new file mode 100644 index 00000000..25feb6c9 --- /dev/null +++ b/browser/main/Stores/AuthStore.js @@ -0,0 +1,39 @@ +/* global localStorage */ +var Reflux = require('reflux') +var request = require('superagent') + +var login = require('../Actions/login') +var register = require('../Actions/register') + +var AuthStore = Reflux.createStore({ + init: function () { + this.listenTo(login, this.login) + this.listenTo(register, this.register) + }, + login: function (input) { + request + .post('http://localhost:8000/auth/login') + .send(input) + .set('Accept', 'application/json') + .end(function (err, res) { + if (err) console.error(err) + var user = res.body.user + localStorage.setItem('token', res.body.token) + this.trigger(user) + }.bind(this)) + }, + register: function (input) { + request + .post('http://localhost:8000/auth/signup') + .send(input) + .set('Accept', 'application/json') + .end(function (err, res) { + if (err) console.error(err) + var user = res.body.user + localStorage.setItem('token', res.body.token) + this.trigger(user) + }.bind(this)) + } +}) + +module.exports = AuthStore diff --git a/browser/main/favicon.ico b/browser/main/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7f2beb9564baebc2dd7da4bf841964445285b7a0 GIT binary patch literal 15086 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 E4-3?|@c;k- literal 0 HcmV?d00001 diff --git a/browser/main/index.html b/browser/main/index.html index 76268582..eaefe99c 100644 --- a/browser/main/index.html +++ b/browser/main/index.html @@ -4,6 +4,7 @@ CodeXen + diff --git a/browser/main/resources/favicon-230x230.png b/browser/main/resources/favicon-230x230.png new file mode 100644 index 0000000000000000000000000000000000000000..e75fdb72677780f855c62addddd665e68f193c33 GIT binary patch literal 5265 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 display block margin-bottom 5px +.stripInput + border none + border-bottom 1px solid borderColor + padding 5px 15px + width 100% + display block + font-size 1em + height 33px + box-sizing border-box + &:focus, &.focus + border-bottom 1px solid brandBorderColor + outline none .block-input, .inline-input border solid 1px borderColor @@ -74,14 +86,6 @@ textarea.block-input #content fullsize() -.LoginContainer, .RegisterContainer - width 400px - margin 15px auto - padding 25px 15px - box-sizing border-box - h1, h2 - margin 5px auto 25px - .UserNavigator background-color planetNavBgColor absolute left top bottom diff --git a/browser/styles/shared/modal.styl b/browser/styles/shared/modal.styl index 7b700d90..de957c47 100644 --- a/browser/styles/shared/modal.styl +++ b/browser/styles/shared/modal.styl @@ -39,5 +39,5 @@ .ace_editor height 300px - border-radius 5px + border-radius 10px border solid 1px borderColor diff --git a/browser/styles/vars.styl b/browser/styles/vars.styl index b17d438c..36fa37e3 100644 --- a/browser/styles/vars.styl +++ b/browser/styles/vars.styl @@ -11,6 +11,7 @@ hoverBackgroundColor= transparentify(#444, 3%) // v0.2.0 +inactiveTextColor = #888 textColor = #4D4D4D backgroundColor= white @@ -27,3 +28,6 @@ planetAnchorActiveBgColor = white popupShadow = 0 0 5px 0 #888 modalBaseColor = transparentify(white, 65%) + +facebookColor= #3b5998 +githubBtn= #201F1F diff --git a/package.json b/package.json index 098a7ee2..1addcff6 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "homepage": "https://github.com/Rokt33r/codexen-app#readme", "dependencies": { "dotenv": "^1.1.0", + "halogen": "^0.1.10", "marked": "^0.3.3", "moment": "^2.10.3", "node-jsx": "^0.13.3", @@ -39,7 +40,8 @@ "react-router": "^0.13.3", "react-select": "^0.5.4", "react-tooltip": "^0.3.3", - "reflux": "^0.2.8" + "reflux": "^0.2.8", + "superagent": "^1.2.0" }, "devDependencies": { "css-loader": "^0.15.1",