Commit 80dff840 authored by Juorder Gonzalez's avatar Juorder Gonzalez

Merge pull request #177 from ZBoxApp/issues_resolved_manager

remove store from domains sections to call always via api.
parents b13ce7be 9e9b3d05
1465225624 1465307111
\ No newline at end of file \ No newline at end of file
module.exports = {"main":{"js":"/029325bundle.js"}} module.exports = {"main":{"js":"/482549bundle.js"}}
\ No newline at end of file \ No newline at end of file
...@@ -26,7 +26,8 @@ export default class DomainAdminList extends React.Component { ...@@ -26,7 +26,8 @@ export default class DomainAdminList extends React.Component {
} }
getStateFromStores() { getStateFromStores() {
const admins = DomainStore.getAdmins(this.props.domain); //const admins = DomainStore.getAdmins(this.props.domain);
const admins = null;
return { return {
admins admins
}; };
......
...@@ -45,7 +45,8 @@ export default class DomainDetails extends React.Component { ...@@ -45,7 +45,8 @@ export default class DomainDetails extends React.Component {
} }
getDomain() { getDomain() {
const domain = DomainStore.getCurrent(); //const domain = DomainStore.getCurrent();
const domain = null;
const states = {}; const states = {};
if (domain && domain.id === this.props.params.id) { if (domain && domain.id === this.props.params.id) {
......
...@@ -40,7 +40,7 @@ export default class DomainGeneralInfo extends React.Component { ...@@ -40,7 +40,7 @@ export default class DomainGeneralInfo extends React.Component {
domain.checkMxRecord((err, data) => { domain.checkMxRecord((err, data) => {
if (err) { if (err) {
return self.setState({ return self.setState({
mx: err mx: err.message || err.extra.reason
}); });
} }
...@@ -82,11 +82,33 @@ export default class DomainGeneralInfo extends React.Component { ...@@ -82,11 +82,33 @@ export default class DomainGeneralInfo extends React.Component {
} }
render() { render() {
const domain = this.props.domain; const domain = this.props.domain;
let editDomainButton = null; let editDomainButton;
let masterID = null; let masterID;
let masterDomain;
let badgeMaster;
if (domain.attrs.zimbraDomainAliasTargetId) { if (domain.isAliasDomain && domain.masterDomainName) {
masterID = domain.attrs.zimbraDomainAliasTargetId; masterID = domain.attrs.zimbraDomainAliasTargetId;
masterDomain = (
<li>
<strong>{'Dominio Maestro: '}</strong>
<a
className='account-name'
onClick={(e) => Utils.handleLink(e, `/domains/${masterID}`, this.props.location)}
>
{`${domain.masterDomainName}`}
</a>
</li>
);
badgeMaster = (
<li>
<StatusLabel
classes='btn btn-md btn-warning'
children='Dominio Alias'
/>
</li>
);
} }
const infoBody = ( const infoBody = (
...@@ -114,31 +136,14 @@ export default class DomainGeneralInfo extends React.Component { ...@@ -114,31 +136,14 @@ export default class DomainGeneralInfo extends React.Component {
<strong>{'MX Record: '}</strong> <strong>{'MX Record: '}</strong>
{this.state.mx} {this.state.mx}
</li> </li>
{domain.isAliasDomain && domain.masterDomainName && ( {masterDomain}
<li>
<strong>{'Dominio Maestro: '}</strong>
<a
className='account-name'
onClick={(e) => Utils.handleLink(e, `/domains/${masterID}`, this.props.location)}
>
{domain.masterDomainName}
</a>
</li>
)}
<li> <li>
<strong>{'Próxima renovación: '}</strong> <strong>{'Próxima renovación: '}</strong>
{this.state.date} {this.state.date}
</li> </li>
</ul> </ul>
<ul className='list-inline list-unstyled'> <ul className='list-inline list-unstyled'>
{domain.isAliasDomain && ( {badgeMaster}
<li>
<StatusLabel
classes='btn btn-md btn-warning'
children='Dominio Alias'
/>
</li>
)}
<li> <li>
<StatusLabel <StatusLabel
classes='btn btn-md btn-info' classes='btn btn-md btn-info'
......
...@@ -45,7 +45,7 @@ export default class Domains extends React.Component { ...@@ -45,7 +45,7 @@ export default class Domains extends React.Component {
maxResults: window.manager_config.maxResultOnRequestZimbra maxResults: window.manager_config.maxResultOnRequestZimbra
}; };
if (DomainStore.getDomains()) { /*if (DomainStore.getDomains()) {
const data = DomainStore.getDomains(); const data = DomainStore.getDomains();
GlobalActions.emitEndLoading(); GlobalActions.emitEndLoading();
...@@ -54,7 +54,7 @@ export default class Domains extends React.Component { ...@@ -54,7 +54,7 @@ export default class Domains extends React.Component {
data, data,
loading: false loading: false
}); });
} }*/
const attrneeded = Utils.getAttrsBySectionFromConfig('domains'); const attrneeded = Utils.getAttrsBySectionFromConfig('domains');
attrs.attrs = attrneeded; attrs.attrs = attrneeded;
...@@ -62,6 +62,10 @@ export default class Domains extends React.Component { ...@@ -62,6 +62,10 @@ export default class Domains extends React.Component {
Client.getAllDomains( Client.getAllDomains(
attrs, attrs,
(data) => { (data) => {
data.domain = data.domain.filter((dom) => {
return !dom.isAliasDomain;
});
data.total = data.domain.length;
domains = data.domain; domains = data.domain;
DomainStore.setDomains(data); DomainStore.setDomains(data);
this.getPlans(domains). this.getPlans(domains).
......
...@@ -29,8 +29,9 @@ export default class EditDomain extends React.Component { ...@@ -29,8 +29,9 @@ export default class EditDomain extends React.Component {
} }
getDomain() { getDomain() {
//const domain = DomainStore.getCurrent();
const domainId = this.props.params.id; const domainId = this.props.params.id;
const domain = DomainStore.getCurrent(); const domain = null;
if (domain && domain.id === domainId) { if (domain && domain.id === domainId) {
return this.getCompanies(domain); return this.getCompanies(domain);
......
...@@ -87,7 +87,6 @@ export default class ConfirmDeleteModal extends React.Component { ...@@ -87,7 +87,6 @@ export default class ConfirmDeleteModal extends React.Component {
handleKeyUp() { handleKeyUp() {
let val = this.refs.confirmMailbox.value; let val = this.refs.confirmMailbox.value;
if (val === this.props.data.attrs.mail) { if (val === this.props.data.attrs.mail) {
if (this.refs.buttonDelete.hasAttribute('disabled')) { if (this.refs.buttonDelete.hasAttribute('disabled')) {
Utils.toggleStatusButtons('.action-delete', false); Utils.toggleStatusButtons('.action-delete', false);
......
...@@ -67,7 +67,7 @@ export default class CreateMailBox extends React.Component { ...@@ -67,7 +67,7 @@ export default class CreateMailBox extends React.Component {
return false; return false;
} }
if (passwd.length < 9) { if (passwd.length < Constants.MaxLengthOfPasswd) {
GlobalActions.emitMessage({ GlobalActions.emitMessage({
message: 'La contraseña debe ser mayor a 8 caracteres, verifique por favor.', message: 'La contraseña debe ser mayor a 8 caracteres, verifique por favor.',
typeError: messageType.ERROR typeError: messageType.ERROR
...@@ -86,7 +86,8 @@ export default class CreateMailBox extends React.Component { ...@@ -86,7 +86,8 @@ export default class CreateMailBox extends React.Component {
sn: this.refs.sn.value, sn: this.refs.sn.value,
description: this.refs.description.value, description: this.refs.description.value,
zimbraCOSId: this.refs.zimbraCOSId.value, zimbraCOSId: this.refs.zimbraCOSId.value,
zimbraAccountStatus: this.refs.zimbraAccountStatus.value zimbraAccountStatus: this.refs.zimbraAccountStatus.value,
zimbraIsDelegatedAdminAccount: this.refs.zimbraIsDelegatedAdminAccount.checked.toString().toUpperCase()
}; };
Client.createAccount( Client.createAccount(
...@@ -384,6 +385,28 @@ export default class CreateMailBox extends React.Component { ...@@ -384,6 +385,28 @@ export default class CreateMailBox extends React.Component {
</div> </div>
</div> </div>
<div className='form-group string'>
<label className='string col-sm-3 control-label'>
{'Administrador Delegado'}
</label>
<div className='col-sm-8'>
<label
className='radio radio-info radio-inline pretty-input'
>
<div className='pretty-checkbox'>
<input
type='checkbox'
className='pretty'
name='mailbox'
ref='zimbraIsDelegatedAdminAccount'
/>
<span></span>
</div>
</label>
</div>
</div>
<div className='form-group string'> <div className='form-group string'>
<label className='string required col-sm-3 control-label'> <label className='string required col-sm-3 control-label'>
<abbr title='Requerido'>{'*'}</abbr> <abbr title='Requerido'>{'*'}</abbr>
......
//import select2 from 'select2'; //import select2 from 'select2';
//import ConfirmDeleteModal from './confirm_delete_modal.jsx';
//import ToggleModalButton from '../toggle_modal_button.jsx';
import $ from 'jquery'; import $ from 'jquery';
import React from 'react'; import React from 'react';
import sweetAlert from 'sweetalert';
import Button from '../button.jsx'; import Button from '../button.jsx';
import MessageBar from '../message_bar.jsx'; import MessageBar from '../message_bar.jsx';
import Panel from '../panel.jsx'; import Panel from '../panel.jsx';
import ConfirmDeleteModal from './confirm_delete_modal.jsx';
import ToggleModalButton from '../toggle_modal_button.jsx';
import DataList from 'react-datalist'; import DataList from 'react-datalist';
import UserStore from '../../stores/user_store.jsx'; import UserStore from '../../stores/user_store.jsx';
import Promise from 'bluebird'; import Promise from 'bluebird';
...@@ -45,6 +46,64 @@ export default class EditMailBox extends React.Component { ...@@ -45,6 +46,64 @@ export default class EditMailBox extends React.Component {
this.refs.zimbraCOSId.value = val; this.refs.zimbraCOSId.value = val;
} }
removeAccount() {
const account = this.state.data;
const response = {
title: 'Se ha borrado con éxito',
type: 'success'
};
sweetAlert({
title: 'Borrar Casilla',
text: `¿Esta seguro que dese borrar la casilla ${account.name}?`,
type: 'info',
showCancelButton: true,
confirmButtonColor: '#DD6B55',
confirmButtonText: 'Si, deseo borrarlo!',
closeOnConfirm: false,
showLoaderOnConfirm: true,
animation: 'slide-from-top'
},
(isDeleted) => {
if (isDeleted) {
new Promise((resolve, reject) => {
// start loading
GlobalActions.emitStartLoading();
Client.removeAccount(
account.id,
() => {
return resolve(true);
},
(error) => {
return reject(error);
}
);
}).then(() => {
MailboxStore.removeAccount(account);
response.text = 'Será redireccionado a Casillas.';
return sweetAlert(
response,
() => {
Utils.handleLink(event, '/mailboxes/', this.props.location);
}
);
}).catch((error) => {
response.title = 'Ha ocurrido un error.';
response.text = error.message;
response.type = 'error';
response.confirmButtonText = 'Intentar de nuevo';
response.confirmButtonColor = '#DD6B55';
return sweetAlert(response);
}).finally(() => {
GlobalActions.emitEndLoading();
});
}
}
);
}
handleEnabledRename() { handleEnabledRename() {
const selfButton = this.refs.rename; const selfButton = this.refs.rename;
const inputs = document.querySelectorAll('.action-rename'); const inputs = document.querySelectorAll('.action-rename');
...@@ -313,11 +372,6 @@ export default class EditMailBox extends React.Component { ...@@ -313,11 +372,6 @@ export default class EditMailBox extends React.Component {
} }
componentDidMount() { componentDidMount() {
/*Client.renameAccount('nuevomodificado@zboxapp.dev', (exito) => {
console.log('exito', exito);
}, (fallo) => {
console.log('fallo', fallo);
});*/
$('#sidebar-mailboxes').addClass('active'); $('#sidebar-mailboxes').addClass('active');
EventStore.addMessageListener(this.showMessage); EventStore.addMessageListener(this.showMessage);
this.getMailbox(this.props.params.id); this.getMailbox(this.props.params.id);
...@@ -339,12 +393,12 @@ export default class EditMailBox extends React.Component { ...@@ -339,12 +393,12 @@ export default class EditMailBox extends React.Component {
} }
render() { render() {
let buttonDelete = null;
let message; let message;
let data; let data;
let actions; let actions;
let form; let form;
const domains = []; const domains = [];
let buttonDelete = null;
let currentDomain = ''; let currentDomain = '';
const cosElements = []; const cosElements = [];
let datalist = ( let datalist = (
...@@ -371,7 +425,7 @@ export default class EditMailBox extends React.Component { ...@@ -371,7 +425,7 @@ export default class EditMailBox extends React.Component {
const cos = this.state.cos; const cos = this.state.cos;
currentDomain = data.name.split('@').pop(); currentDomain = data.name.split('@').pop();
buttonDelete = ( /*buttonDelete = (
<ToggleModalButton <ToggleModalButton
role='button' role='button'
className='btn btn-xs btn-danger action-button' className='btn btn-xs btn-danger action-button'
...@@ -381,6 +435,20 @@ export default class EditMailBox extends React.Component { ...@@ -381,6 +435,20 @@ export default class EditMailBox extends React.Component {
> >
{'Eliminar'} {'Eliminar'}
</ToggleModalButton> </ToggleModalButton>
);*/
buttonDelete = (
<a
className='btn btn-danger btn-xs action-button'
onClick={
() => {
this.removeAccount();
}
}
key='btn-delete-mailbox-key'
>
{'Eliminar Casilla'}
</a>
); );
const length = doms.length; const length = doms.length;
......
...@@ -206,19 +206,6 @@ export default class Mailboxes extends React.Component { ...@@ -206,19 +206,6 @@ export default class Mailboxes extends React.Component {
this.domainName = domainName; this.domainName = domainName;
} }
/*const attrsForLockOut = Object.assign({}, attrs);
attrsForLockOut.query = 'zimbraAccountStatus=lockout';
attrsForLockOut.limit = 10;
attrsForLockOut.countOnly = true;
promises.push(Client.getAllAccountsByBatch(attrsForLockOut));
Client.batchRequest(promises, (exito) => {
console.log('exito', exito);
}, (err) => {
console.log('error', err);
});*/
new Promise((resolve, reject) => { new Promise((resolve, reject) => {
if (domainName) { if (domainName) {
const hasMailboxForDomain = MailboxStore.getMailboxByDomainId(this.domainId); const hasMailboxForDomain = MailboxStore.getMailboxByDomainId(this.domainId);
......
...@@ -202,10 +202,10 @@ export function getCompany(id) { ...@@ -202,10 +202,10 @@ export function getCompany(id) {
}, },
dataType: 'json', dataType: 'json',
success: function onSuccess(data) { success: function onSuccess(data) {
resolve(data); return resolve(data);
}, },
error: function onError(xhr) { error: function onError(xhr) {
reject(xhr.responseJSON); return reject(xhr.responseJSON);
} }
}); });
}); });
......
...@@ -106,6 +106,7 @@ export default { ...@@ -106,6 +106,7 @@ export default {
'TXT', 'TXT',
'WKS' 'WKS'
], ],
MaxLengthOfPasswd: 9,
status: { status: {
active: { active: {
label: 'Activa', label: 'Activa',
......
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