Commit 59bc3851 authored by Juorder Antonio's avatar Juorder Antonio

add loading icon on when login is fired, add messagebar on add admin, automatically close modal.

parent f76b13db
module.exports = {"main":{"js":"/534318bundle.js"}} module.exports = {"main":{"js":"/354185bundle.js"}}
\ No newline at end of file \ No newline at end of file
...@@ -193,27 +193,30 @@ export default class Companies extends React.Component { ...@@ -193,27 +193,30 @@ export default class Companies extends React.Component {
} }
render() { render() {
if (!this.state.companies) {
return <div/>;
}
let panelBody;
let noLimitError;
let pagination = null;
const textLoading = this.isGlobalAdmin ? 'Cargando Empresas...' : 'Cargando Mi Empresa...'; const textLoading = this.isGlobalAdmin ? 'Cargando Empresas...' : 'Cargando Mi Empresa...';
if (this.state.loading) { if (!this.state.companies && this.state.loading) {
panelBody = ( return (
<div className='text-center'> <div
key='panelbody-loading.company'
className='text-center content animate-panel'
>
<i className='fa fa-spinner fa-spin fa-4x fa-fw'></i> <i className='fa fa-spinner fa-spin fa-4x fa-fw'></i>
<p>{textLoading}</p> <p>{textLoading}</p>
</div> </div>
); );
} }
let panelBody;
let noLimitError;
let pagination = null;
if (this.state.companies.length === 0) { if (this.state.companies.length === 0) {
panelBody = ( panelBody = (
<div className='center-block text-center'> <div
key='panelbody-nofound'
className='center-block text-center'
>
<h5> <h5>
{'Actualmente no hay ninguna empresa registrada '} {'Actualmente no hay ninguna empresa registrada '}
<label style={{transform: 'rotate(90deg)'}}> <label style={{transform: 'rotate(90deg)'}}>
...@@ -305,7 +308,10 @@ export default class Companies extends React.Component { ...@@ -305,7 +308,10 @@ export default class Companies extends React.Component {
}); });
panelBody = ( panelBody = (
<div className='table-responsive'> <div
key='panelbody-companies'
className='table-responsive'
>
<div className='table-responsive'> <div className='table-responsive'>
<table <table
cellPadding='1' cellPadding='1'
......
...@@ -86,6 +86,16 @@ export default class AddAdminModal extends React.Component { ...@@ -86,6 +86,16 @@ export default class AddAdminModal extends React.Component {
}); });
} }
if (this.props.show) {
this.props.onHide();
setTimeout(() => {
GlobalActions.emitMessage({
message: 'Se ha agregado su administrador éxitoxamente.',
type: Constants.MessageType.SUCCESS
});
}, 1000);
}
return DomainStore.addAdmin(user); return DomainStore.addAdmin(user);
} }
); );
......
...@@ -10,6 +10,7 @@ import ZimbraStore from '../../stores/zimbra_store.jsx'; ...@@ -10,6 +10,7 @@ import ZimbraStore from '../../stores/zimbra_store.jsx';
import Constants from '../../utils/constants.jsx'; import Constants from '../../utils/constants.jsx';
import * as Client from '../../utils/client.jsx'; import * as Client from '../../utils/client.jsx';
import * as Utils from '../../utils/utils.jsx';
import Panel from '../panel.jsx'; import Panel from '../panel.jsx';
import LoginEmail from './login_email.jsx'; import LoginEmail from './login_email.jsx';
...@@ -49,8 +50,9 @@ export default class Login extends React.Component { ...@@ -49,8 +50,9 @@ export default class Login extends React.Component {
browserHistory.push('/mailboxes'); browserHistory.push('/mailboxes');
} }
} }
submit(email, password) { submit(email, password, refs) {
var state = this.state; var state = this.state;
const oldText = refs.submitbutton.innerHTML;
if (!email) { if (!email) {
state.loginError = 'El correo electrónico es obligatorio'; state.loginError = 'El correo electrónico es obligatorio';
...@@ -64,19 +66,26 @@ export default class Login extends React.Component { ...@@ -64,19 +66,26 @@ export default class Login extends React.Component {
return; return;
} }
refs.submitbutton.innerHTML = '<i class="fa fa-spinner fa-spin fa-1x fa-fw"></i> Cargando ...';
Utils.toggleStatusButtons('.btn-block', true);
this.setState({loginError: null}); this.setState({loginError: null});
Client.login(email, password, Client.login(email, password,
() => { () => {
return Client.getAllCos( return Client.getAllCos(
(cosData) => { (cosData) => {
refs.submitbutton.innerHTML = oldText;
ZimbraStore.setAllCos(cosData); ZimbraStore.setAllCos(cosData);
Utils.toggleStatusButtons('.btn-block', false);
browserHistory.push('/mailboxes'); browserHistory.push('/mailboxes');
} }
); );
}, },
(err) => { (err) => {
refs.submitbutton.innerHTML = oldText;
this.setState({loginError: err.message}); this.setState({loginError: err.message});
Utils.toggleStatusButtons('.btn-block', false);
} }
); );
} }
......
...@@ -21,7 +21,7 @@ export default class LoginEmail extends React.Component { ...@@ -21,7 +21,7 @@ export default class LoginEmail extends React.Component {
const email = this.refs.email.value.trim(); const email = this.refs.email.value.trim();
const password = this.refs.password.value.trim(); const password = this.refs.password.value.trim();
this.props.submit(email, password); this.props.submit(email, password, this.refs);
} }
render() { render() {
let errorClass = ''; let errorClass = '';
...@@ -64,6 +64,7 @@ export default class LoginEmail extends React.Component { ...@@ -64,6 +64,7 @@ export default class LoginEmail extends React.Component {
<button <button
type='submit' type='submit'
className='btn btn-success btn-block' className='btn btn-success btn-block'
ref='submitbutton'
> >
{'Ingresar'} {'Ingresar'}
</button> </button>
......
...@@ -65,7 +65,8 @@ ...@@ -65,7 +65,8 @@
"zimbraPrefOutOfOfficeUntilDate": true, "zimbraPrefOutOfOfficeUntilDate": true,
"zimbraPrefOutOfOfficeReply": true, "zimbraPrefOutOfOfficeReply": true,
"zimbraCreateTimestamp": true, "zimbraCreateTimestamp": true,
"zimbraLastLogonTimestamp": true "zimbraLastLogonTimestamp": true,
"zimbraIsDelegatedAdminAccount": true
} }
} }
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment