Commit 7668dd06 authored by Juorder Antonio's avatar Juorder Antonio

fix the wat on we identify archive account, throw regexp store in json config,...

fix the wat on we identify archive account, throw regexp store in json config, add functions of enable / disable archive accounts.
parent e2674fe9
module.exports = {"main":{"js":"/275274bundle.js"}} module.exports = {"main":{"js":"/280485bundle.js"}}
\ No newline at end of file \ No newline at end of file
...@@ -94,6 +94,7 @@ export default class EditDomain extends React.Component { ...@@ -94,6 +94,7 @@ export default class EditDomain extends React.Component {
const businessCategory = this.refs.company.value.trim(); const businessCategory = this.refs.company.value.trim();
const description = this.refs.description.value.trim(); const description = this.refs.description.value.trim();
const zimbraNotes = this.refs.notes.value.trim(); const zimbraNotes = this.refs.notes.value.trim();
const zimbraDomainMaxAccounts = this.refs.mailboxLimit.value;
const plans = this.state.plans; const plans = this.state.plans;
const plansKeys = Object.keys(plans); const plansKeys = Object.keys(plans);
const zimbraDomainCOSMaxAccounts = []; const zimbraDomainCOSMaxAccounts = [];
...@@ -108,7 +109,8 @@ export default class EditDomain extends React.Component { ...@@ -108,7 +109,8 @@ export default class EditDomain extends React.Component {
businessCategory, businessCategory,
description, description,
zimbraNotes, zimbraNotes,
zimbraDomainCOSMaxAccounts zimbraDomainCOSMaxAccounts,
zimbraDomainMaxAccounts
} }
}; };
......
...@@ -33,7 +33,9 @@ export default class CreateMailBox extends React.Component { ...@@ -33,7 +33,9 @@ export default class CreateMailBox extends React.Component {
this.reset = null; this.reset = null;
this.cacheDomain = null; this.cacheDomain = null;
this.state = {}; this.state = {
zimbraCOSId: ''
};
this.s = true; this.s = true;
} }
...@@ -96,8 +98,10 @@ export default class CreateMailBox extends React.Component { ...@@ -96,8 +98,10 @@ export default class CreateMailBox extends React.Component {
const maxCosAccounts = Utils.parseMaxCOSAccounts(thatDomainExists.attrs.zimbraDomainCOSMaxAccounts); const maxCosAccounts = Utils.parseMaxCOSAccounts(thatDomainExists.attrs.zimbraDomainCOSMaxAccounts);
this.setState({ this.setState({
loadingEnableAccounts: true, loadingEnableAccounts: true,
error: false error: false,
zimbraCOSId: ''
}); });
return Client.batchCountAccount([thatDomainExists.name], return Client.batchCountAccount([thatDomainExists.name],
(s) => { (s) => {
const usedAccounts = s.pop(); const usedAccounts = s.pop();
...@@ -175,6 +179,9 @@ export default class CreateMailBox extends React.Component { ...@@ -175,6 +179,9 @@ export default class CreateMailBox extends React.Component {
const domain = document.querySelector('input[list=\'domain\']'); const domain = document.querySelector('input[list=\'domain\']');
const passwd = this.refs.passwd.value; const passwd = this.refs.passwd.value;
const maskPasswd = document.getElementById('password'); const maskPasswd = document.getElementById('password');
let shouldEnableArchive = false;
const plans = this.state.plans;
let plan = null;
if (domain.value === '') { if (domain.value === '') {
GlobalActions.emitMessage({ GlobalActions.emitMessage({
...@@ -206,11 +213,20 @@ export default class CreateMailBox extends React.Component { ...@@ -206,11 +213,20 @@ export default class CreateMailBox extends React.Component {
sn: this.refs.sn.value, sn: this.refs.sn.value,
displayName: `${this.refs.givenName.value} ${this.refs.sn.value}`, displayName: `${this.refs.givenName.value} ${this.refs.sn.value}`,
description: this.refs.description.value, description: this.refs.description.value,
zimbraCOSId: this.refs.zimbraCOSId.value, zimbraCOSId: this.state.zimbraCOSId,
zimbraAccountStatus: this.refs.zimbraAccountStatus.value, zimbraAccountStatus: this.refs.zimbraAccountStatus.value,
zimbraIsDelegatedAdminAccount: this.refs.zimbraIsDelegatedAdminAccount.checked.toString().toUpperCase() zimbraIsDelegatedAdminAccount: this.refs.zimbraIsDelegatedAdminAccount.checked.toString().toUpperCase()
}; };
const keysPlans = Object.keys(this.state.plans);
keysPlans.forEach((p) => {
if (plans[p] === this.state.zimbraCOSId) {
plan = p;
shouldEnableArchive = window.manager_config.plans[p].archiving;
}
});
Client.createAccount( Client.createAccount(
email, email,
passwd, passwd,
...@@ -222,7 +238,17 @@ export default class CreateMailBox extends React.Component { ...@@ -222,7 +238,17 @@ export default class CreateMailBox extends React.Component {
MailboxStore.setMailbox(data); MailboxStore.setMailbox(data);
return Utils.handleLink(event, `/mailboxes/${data.id}`, this.props.location); if (shouldEnableArchive) {
data.enableArchiving(plan, (err) => {
if (err) {
return err;
}
return Utils.handleLink(event, `/mailboxes/${data.id}`, this.props.location);
});
} else {
return Utils.handleLink(event, `/mailboxes/${data.id}`, this.props.location);
}
/*GlobalActions.emitMessage({ /*GlobalActions.emitMessage({
message: 'Se ha creado su cuenta con éxito.', message: 'Se ha creado su cuenta con éxito.',
...@@ -249,7 +275,9 @@ export default class CreateMailBox extends React.Component { ...@@ -249,7 +275,9 @@ export default class CreateMailBox extends React.Component {
} }
handleRadioChanged(val) { handleRadioChanged(val) {
this.refs.zimbraCOSId.value = val; this.setState({
zimbraCOSId: val
});
} }
getAllDomains() { getAllDomains() {
...@@ -364,15 +392,12 @@ export default class CreateMailBox extends React.Component { ...@@ -364,15 +392,12 @@ export default class CreateMailBox extends React.Component {
this.s = false; this.s = false;
} }
shouldComponentUpdate() {
return true;
}
controllerDataList(controller) { controllerDataList(controller) {
this.reset = controller; this.reset = controller;
} }
render() { render() {
const {zimbraCOSId} = this.state;
let message; let message;
let domains = []; let domains = [];
let form = null; let form = null;
...@@ -458,7 +483,77 @@ export default class CreateMailBox extends React.Component { ...@@ -458,7 +483,77 @@ export default class CreateMailBox extends React.Component {
return null; return null;
}); });
for (let plan in plans) { const keyPlans = Object.keys(plans);
keyPlans.forEach((plan) => {
if (plans[plan]) {
let isDisabled = null;
let classCss = null;
let info = null;
let hasPlan = false;
if (this.state.enabledAccounts) {
this.state.enabledAccounts.forEach((p) => {
if (plans[plan] === p.cosId) {
hasPlan = true;
isDisabled = p.enabled < 1 ? true : null;
classCss = p.classCss;
info = (
<div>
<span>
Usadas: {p.used}
</span>
<span> - </span>
<span className={p.enabled <= 0 ? 'text-danger' : 'text-success'}>
Libres: {p.enabled}
</span>
</div>
);
}
});
}
if (this.state.enabledAccounts && !hasPlan && null) {
isDisabled = true;
info = (
<div>
<span className='text-danger'>
Este plan no esta contratado
</span>
</div>
);
}
const disabledCss = isDisabled ? 'disabled' : '';
const item = (
<label
className={`radio radio-info radio-inline pretty-input ${disabledCss}`}
key={plan}
>
<div className='pretty-radio'>
<input
type='radio'
className='pretty'
name='mailbox'
onChange={() => {
this.handleRadioChanged(plans[plan]);
}}
disabled={isDisabled}
/>
<span></span>
</div>
<span className={`${classCss} status-plan`}>
{Utils.titleCase(plan)}
</span>
{info}
</label>
);
checkboxes.push(item);
}
});
/*for (let plan in plans) {
if (plans.hasOwnProperty(plan)) { if (plans.hasOwnProperty(plan)) {
let isDisabled = null; let isDisabled = null;
let classCss = null; let classCss = null;
...@@ -510,7 +605,7 @@ export default class CreateMailBox extends React.Component { ...@@ -510,7 +605,7 @@ export default class CreateMailBox extends React.Component {
); );
checkboxes.push(item); checkboxes.push(item);
} }
} }*/
form = ( form = (
<form <form
...@@ -646,6 +741,7 @@ export default class CreateMailBox extends React.Component { ...@@ -646,6 +741,7 @@ export default class CreateMailBox extends React.Component {
type='hidden' type='hidden'
ref='zimbraCOSId' ref='zimbraCOSId'
data-required='true' data-required='true'
value={zimbraCOSId}
data-message='El plan de su casilla es requerido, por favor verificar.' data-message='El plan de su casilla es requerido, por favor verificar.'
/> />
</div> </div>
...@@ -686,14 +782,20 @@ export default class CreateMailBox extends React.Component { ...@@ -686,14 +782,20 @@ export default class CreateMailBox extends React.Component {
<div className='form-group'> <div className='form-group'>
<div className='col-sm-8 col-sm-offset-3'> <div className='col-sm-8 col-sm-offset-3'>
{counterPlans > 0 && ( /*{counterPlans > 0 && (
<input <input
type='submit' type='submit'
name='commit' name='commit'
value='Guardar' value='Guardar'
className='btn btn-primary action-save' className='btn btn-primary action-save'
/> />
)} )}*/
<input
type='submit'
name='commit'
value='Guardar'
className='btn btn-primary action-save'
/>
<Button <Button
btnAttrs={ btnAttrs={
{ {
......
This diff is collapsed.
...@@ -64,7 +64,7 @@ export default class BlockGeneralInfoMailbox extends React.Component { ...@@ -64,7 +64,7 @@ export default class BlockGeneralInfoMailbox extends React.Component {
let AdminStatus = null; let AdminStatus = null;
const description = attrs.description; const description = attrs.description;
const mailhost = attrs.zimbraMailHost; const mailhost = attrs.zimbraMailHost;
const archive = attrs.zimbraArchiveAccount; const archive = data.archiveEnabled ? attrs.zimbraArchiveAccount : data.archiveEnabled;
const isAdminDelegated = attrs.zimbraIsDelegatedAdminAccount === 'TRUE'; const isAdminDelegated = attrs.zimbraIsDelegatedAdminAccount === 'TRUE';
if (isAdminDelegated) { if (isAdminDelegated) {
statusCos += ' margin-left'; statusCos += ' margin-left';
......
...@@ -36,6 +36,8 @@ export default class Mailboxes extends React.Component { ...@@ -36,6 +36,8 @@ export default class Mailboxes extends React.Component {
super(props); super(props);
this.isStoreEnabled = window.manager_config.enableStores; this.isStoreEnabled = window.manager_config.enableStores;
this.archivingConfig = window.manager_config.plans.archiving;
this.regexp = new RegExp(this.archivingConfig.regexp, 'gi');
this.showMessage = this.showMessage.bind(this); this.showMessage = this.showMessage.bind(this);
this.refreshAllAccounts = this.refreshAllAccounts.bind(this); this.refreshAllAccounts = this.refreshAllAccounts.bind(this);
this.handleChangeFilter = this.handleChangeFilter.bind(this); this.handleChangeFilter = this.handleChangeFilter.bind(this);
...@@ -365,7 +367,7 @@ export default class Mailboxes extends React.Component { ...@@ -365,7 +367,7 @@ export default class Mailboxes extends React.Component {
} }
if (!tipo) { if (!tipo) {
tipo = row.archiveEnabled ? 'Archiving' : 'Desconocido'; tipo = row.name.match(this.regexp) ? 'Archiving' : 'Desconocido';
} }
displayName = attrs.displayName || `${attrs.givenName || attrs.cn} ${attrs.sn}`; displayName = attrs.displayName || `${attrs.givenName || attrs.cn} ${attrs.sn}`;
......
...@@ -37,7 +37,8 @@ ...@@ -37,7 +37,8 @@
"archiving": { "archiving": {
"statusCos": "btn-warning", "statusCos": "btn-warning",
"label": "Archiving", "label": "Archiving",
"isEnabledToEdit": false "isEnabledToEdit": false,
"regexp": ".archive$"
} }
}, },
"multiFormDomain": { "multiFormDomain": {
......
...@@ -690,5 +690,5 @@ export function parseMaxCOSAccounts(maxCosAccounts) { ...@@ -690,5 +690,5 @@ export function parseMaxCOSAccounts(maxCosAccounts) {
return response; return response;
} }
return arrCos; return response;
} }
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