mirror of
				https://github.com/aclindsa/moneygo.git
				synced 2025-11-04 02:23:26 -05:00 
			
		
		
		
	Move account settings to Modal
This commit is contained in:
		
							
								
								
									
										64
									
								
								static/ui.js
									
									
									
									
									
								
							
							
						
						
									
										64
									
								
								static/ui.js
									
									
									
									
									
								
							@@ -4,6 +4,7 @@ var TabbedArea = ReactBootstrap.TabbedArea;
 | 
				
			|||||||
var TabPane = ReactBootstrap.TabPane;
 | 
					var TabPane = ReactBootstrap.TabPane;
 | 
				
			||||||
var Panel = ReactBootstrap.Panel;
 | 
					var Panel = ReactBootstrap.Panel;
 | 
				
			||||||
var ButtonGroup = ReactBootstrap.ButtonGroup;
 | 
					var ButtonGroup = ReactBootstrap.ButtonGroup;
 | 
				
			||||||
 | 
					var Modal = ReactBootstrap.Modal;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const NewUserForm = React.createClass({
 | 
					const NewUserForm = React.createClass({
 | 
				
			||||||
	getInitialState: function() {
 | 
						getInitialState: function() {
 | 
				
			||||||
@@ -146,17 +147,25 @@ const NewUserForm = React.createClass({
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const AccountSettings = React.createClass({
 | 
					const AccountSettingsModal = React.createClass({
 | 
				
			||||||
	getInitialState: function() {
 | 
						_getInitialState: function(props) {
 | 
				
			||||||
		return {error: "",
 | 
							return {error: "",
 | 
				
			||||||
			name: this.props.user.Name,
 | 
								name: props.user.Name,
 | 
				
			||||||
			username: this.props.user.Username,
 | 
								username: props.user.Username,
 | 
				
			||||||
			email: this.props.user.Email,
 | 
								email: props.user.Email,
 | 
				
			||||||
			password: BogusPassword,
 | 
								password: BogusPassword,
 | 
				
			||||||
			confirm_password: BogusPassword,
 | 
								confirm_password: BogusPassword,
 | 
				
			||||||
			passwordChanged: false,
 | 
								passwordChanged: false,
 | 
				
			||||||
			initial_password: BogusPassword};
 | 
								initial_password: BogusPassword};
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
						getInitialState: function() {
 | 
				
			||||||
 | 
							 return this._getInitialState(this.props);
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						componentWillReceiveProps: function(nextProps) {
 | 
				
			||||||
 | 
							if (nextProps.show && !this.props.show) {
 | 
				
			||||||
 | 
								this.setState(this._getInitialState(nextProps));
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
	passwordValidationState: function() {
 | 
						passwordValidationState: function() {
 | 
				
			||||||
		if (this.state.passwordChanged) {
 | 
							if (this.state.passwordChanged) {
 | 
				
			||||||
			if (this.state.password.length >= 10)
 | 
								if (this.state.password.length >= 10)
 | 
				
			||||||
@@ -224,7 +233,7 @@ const AccountSettings = React.createClass({
 | 
				
			|||||||
					this.setState({error: e});
 | 
										this.setState({error: e});
 | 
				
			||||||
				} else {
 | 
									} else {
 | 
				
			||||||
					user.Password = "";
 | 
										user.Password = "";
 | 
				
			||||||
					this.props.onSettingsSubmitted(user);
 | 
										this.props.onSubmit(user);
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}.bind(this),
 | 
								}.bind(this),
 | 
				
			||||||
			error: function(jqXHR, status, error) {
 | 
								error: function(jqXHR, status, error) {
 | 
				
			||||||
@@ -236,9 +245,12 @@ const AccountSettings = React.createClass({
 | 
				
			|||||||
		});
 | 
							});
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	render: function() {
 | 
						render: function() {
 | 
				
			||||||
		var title = <h3>Edit Account Settings</h3>;
 | 
					 | 
				
			||||||
		return (
 | 
							return (
 | 
				
			||||||
			<Panel header={title} bsStyle="info">
 | 
								<Modal show={this.props.show} onHide={this.handleCancel} bsSize="large">
 | 
				
			||||||
 | 
									<Modal.Header closeButton>
 | 
				
			||||||
 | 
										<Modal.Title>Edit Account Settings</Modal.Title>
 | 
				
			||||||
 | 
									</Modal.Header>
 | 
				
			||||||
 | 
									<Modal.Body>
 | 
				
			||||||
				<span color="red">{this.state.error}</span>
 | 
									<span color="red">{this.state.error}</span>
 | 
				
			||||||
				<form onSubmit={this.handleSubmit}
 | 
									<form onSubmit={this.handleSubmit}
 | 
				
			||||||
						className="form-horizontal">
 | 
											className="form-horizontal">
 | 
				
			||||||
@@ -281,14 +293,15 @@ const AccountSettings = React.createClass({
 | 
				
			|||||||
							wrapperClassName="col-xs-10"
 | 
												wrapperClassName="col-xs-10"
 | 
				
			||||||
							bsStyle={this.confirmPasswordValidationState()}
 | 
												bsStyle={this.confirmPasswordValidationState()}
 | 
				
			||||||
							hasFeedback/>
 | 
												hasFeedback/>
 | 
				
			||||||
					<ButtonGroup className="pull-right">
 | 
					 | 
				
			||||||
						<Button onClick={this.handleCancel}
 | 
					 | 
				
			||||||
								bsStyle="warning">Cancel</Button>
 | 
					 | 
				
			||||||
						<Button type="submit"
 | 
					 | 
				
			||||||
								bsStyle="success">Save Settings</Button>
 | 
					 | 
				
			||||||
					</ButtonGroup>
 | 
					 | 
				
			||||||
				</form>
 | 
									</form>
 | 
				
			||||||
			</Panel>
 | 
									</Modal.Body>
 | 
				
			||||||
 | 
									<Modal.Footer>
 | 
				
			||||||
 | 
										<ButtonGroup>
 | 
				
			||||||
 | 
											<Button onClick={this.handleCancel} bsStyle="warning">Cancel</Button>
 | 
				
			||||||
 | 
											<Button onClick={this.handleSubmit} bsStyle="success">Save Settings</Button>
 | 
				
			||||||
 | 
										</ButtonGroup>
 | 
				
			||||||
 | 
									</Modal.Footer>
 | 
				
			||||||
 | 
								</Modal>
 | 
				
			||||||
		);
 | 
							);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
@@ -303,7 +316,8 @@ const MoneyGoApp = React.createClass({
 | 
				
			|||||||
			account_map: {},
 | 
								account_map: {},
 | 
				
			||||||
			securities: [],
 | 
								securities: [],
 | 
				
			||||||
			security_map: {},
 | 
								security_map: {},
 | 
				
			||||||
			error: new Error()
 | 
								error: new Error(),
 | 
				
			||||||
 | 
								showAccountSettingsModal: false
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	componentDidMount: function() {
 | 
						componentDidMount: function() {
 | 
				
			||||||
@@ -479,11 +493,16 @@ const MoneyGoApp = React.createClass({
 | 
				
			|||||||
		});
 | 
							});
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	handleAccountSettings: function() {
 | 
						handleAccountSettings: function() {
 | 
				
			||||||
		this.setHash("account");
 | 
							this.setState({showAccountSettingsModal: true});
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	handleSettingsSubmitted: function(user) {
 | 
						handleSettingsSubmitted: function(user) {
 | 
				
			||||||
		this.setState({user: user});
 | 
							this.setState({
 | 
				
			||||||
		this.setHash("home");
 | 
								user: user,
 | 
				
			||||||
 | 
								showAccountSettingsModal: false
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						handleSettingsCanceled: function(user) {
 | 
				
			||||||
 | 
							this.setState({showAccountSettingsModal: false});
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	handleCreateNewUser: function() {
 | 
						handleCreateNewUser: function() {
 | 
				
			||||||
		this.setHash("new_user");
 | 
							this.setHash("new_user");
 | 
				
			||||||
@@ -548,8 +567,6 @@ const MoneyGoApp = React.createClass({
 | 
				
			|||||||
		var mainContent;
 | 
							var mainContent;
 | 
				
			||||||
		if (this.state.hash == "new_user") {
 | 
							if (this.state.hash == "new_user") {
 | 
				
			||||||
			mainContent = <NewUserForm onNewUser={this.handleGoHome} onCancel={this.handleGoHome}/>
 | 
								mainContent = <NewUserForm onNewUser={this.handleGoHome} onCancel={this.handleGoHome}/>
 | 
				
			||||||
		} else if (this.state.hash == "account" && this.state.user.isUser()) {
 | 
					 | 
				
			||||||
			mainContent = <AccountSettings user={this.state.user} onSettingsSubmitted={this.handleSettingsSubmitted} onCancel={this.handleGoHome}/>
 | 
					 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			if (this.state.user.isUser())
 | 
								if (this.state.user.isUser())
 | 
				
			||||||
				mainContent =
 | 
									mainContent =
 | 
				
			||||||
@@ -590,6 +607,11 @@ const MoneyGoApp = React.createClass({
 | 
				
			|||||||
					onAccountSettings={this.handleAccountSettings}
 | 
										onAccountSettings={this.handleAccountSettings}
 | 
				
			||||||
					onLogoutSubmit={this.handleLogoutSubmit} />
 | 
										onLogoutSubmit={this.handleLogoutSubmit} />
 | 
				
			||||||
				{mainContent}
 | 
									{mainContent}
 | 
				
			||||||
 | 
									<AccountSettingsModal
 | 
				
			||||||
 | 
										show={this.state.showAccountSettingsModal}
 | 
				
			||||||
 | 
										user={this.state.user}
 | 
				
			||||||
 | 
										onSubmit={this.handleSettingsSubmitted}
 | 
				
			||||||
 | 
										onCancel={this.handleSettingsCanceled}/>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		);
 | 
							);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user