diff --git a/browser/main/Actions/PlanetActions.js b/browser/main/Actions/PlanetActions.js index 8f8af599..dfa96df7 100644 --- a/browser/main/Actions/PlanetActions.js +++ b/browser/main/Actions/PlanetActions.js @@ -4,6 +4,8 @@ module.exports = Reflux.createActions([ 'createPlanet', 'fetchPlanet', + 'addUser', + 'createSnippet', 'updateSnippet', 'deleteSnippet', diff --git a/browser/main/Components/PlanetAddUserModal.jsx b/browser/main/Components/PlanetAddUserModal.jsx new file mode 100644 index 00000000..7342edf8 --- /dev/null +++ b/browser/main/Components/PlanetAddUserModal.jsx @@ -0,0 +1,75 @@ +var React = require('react/addons') +var ReactRouter = require('react-router') +var Select = require('react-select') +var request = require('superagent') + +var Catalyst = require('../Mixins/Catalyst') + +var PlanetActions = require('../Actions/PlanetActions') + +var getOptions = function (input, callback) { + request + .get('http://localhost:8000/users/search') + .query({name: input}) + .send() + .end(function (err, res) { + if (err) { + callback(err) + return + } + callback(null, { + options: res.body.map(function (user) { + return { + label: user.name, + value: user.name + } + }), + complete: false + }) + }) +} + +module.exports = React.createClass({ + mixins: [Catalyst.LinkedStateMixin, ReactRouter.State], + propTypes: { + close: React.PropTypes.func + }, + getInitialState: function () { + return { + userName: '' + } + }, + componentDidMount: function () { + window.ns = React.findDOMNode(this).querySelector('.Select') + }, + handleSubmit: function () { + var userName = this.state.userName + var params = this.getParams() + var ownerName = params.userName + var planetName = params.planetName + + PlanetActions.addUser(ownerName + '/' + planetName, userName) + }, + handleChange: function (value) { + this.setState({userName: value}) + }, + stopPropagation: function (e) { + e.stopPropagation() + }, + render: function () { + return ( +
+