mirror of
				https://github.com/aclindsa/moneygo.git
				synced 2025-10-31 09:53:27 -04: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