diff --git a/src/controllers/organisms/CasLogin.js b/src/components/login/CasLogin.js similarity index 75% rename from src/controllers/organisms/CasLogin.js rename to src/components/login/CasLogin.js index d84306e587..32116a3f76 100644 --- a/src/controllers/organisms/CasLogin.js +++ b/src/components/login/CasLogin.js @@ -16,10 +16,12 @@ limitations under the License. 'use strict'; -var MatrixClientPeg = require("../../MatrixClientPeg"); +var MatrixClientPeg = require("../MatrixClientPeg"); +var React = require('react'); var url = require("url"); -module.exports = { +module.exports = React.createClass({ + displayName: 'CasLogin', onCasClicked: function(ev) { var cli = MatrixClientPeg.get(); @@ -30,4 +32,12 @@ module.exports = { window.location.href = casUrl; }, -}; + render: function() { + return ( +
+ +
+ ); + } + +}); diff --git a/src/components/login/PasswordLogin.js b/src/components/login/PasswordLogin.js new file mode 100644 index 0000000000..fabd71d67e --- /dev/null +++ b/src/components/login/PasswordLogin.js @@ -0,0 +1,65 @@ +/* +Copyright 2015 OpenMarket Ltd + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +var React = require('react'); +var ReactDOM = require('react-dom'); + +/** + * A pure UI component which displays a username/password form. + */ +module.exports = React.createClass({displayName: 'PasswordLogin', + propTypes: { + onSubmit: React.PropTypes.func.isRequired // fn(username, password) + }, + + getInitialState: function() { + return { + username: "", + password: "" + }; + }, + + onSubmitForm: function(ev) { + ev.preventDefault(); + this.props.onSubmit(this.state.username, this.state.password); + }, + + onUsernameChanged: function(ev) { + this.setState({username: ev.target.value}); + }, + + onPasswordChanged: function(ev) { + this.setState({password: ev.target.value}); + }, + + render: function() { + return ( +
+
+ +
+ +
+ +
+
+ ); + } +}); \ No newline at end of file