Commit 8f742024 authored by Juorder Antonio's avatar Juorder Antonio

fix owners to search, add ,remove correctly.

parent 090aeffe
...@@ -101,7 +101,7 @@ export default class DistributionLists extends React.Component { ...@@ -101,7 +101,7 @@ export default class DistributionLists extends React.Component {
reject(error); reject(error);
}); });
}).then((data) => { }).then((data) => {
DomainStore.setOwners(Utils.getOwners(data.owners)); DomainStore.setOwners(data.owners);
DomainStore.setMembers(data.distributionsList.members); DomainStore.setMembers(data.distributionsList.members);
this.setState({ this.setState({
...@@ -128,7 +128,7 @@ export default class DistributionLists extends React.Component { ...@@ -128,7 +128,7 @@ export default class DistributionLists extends React.Component {
} }
this.multipleActionsOwners(response, this.state.distributionsList).then((res) => { this.multipleActionsOwners(response, this.state.distributionsList).then((res) => {
const newOwners = DomainStore.getOwners(); //const newOwners = DomainStore.getOwners();
const errors = []; const errors = [];
const limit = res.length; const limit = res.length;
...@@ -150,12 +150,24 @@ export default class DistributionLists extends React.Component { ...@@ -150,12 +150,24 @@ export default class DistributionLists extends React.Component {
}); });
} }
this.setState({ if (this.state.domain) {
owners: newOwners, const id = this.props.params.id;
error: errors Client.getDistributionList(id, (success) => {
}); success.getOwners((error, owners) => {
if (owners) {
response.reset(); DomainStore.setOwners(owners);
this.setState({
owners,
error: errors
});
response.reset();
}
});
}, (err) => {
return err;
});
}
}); });
} }
...@@ -266,18 +278,18 @@ export default class DistributionLists extends React.Component { ...@@ -266,18 +278,18 @@ export default class DistributionLists extends React.Component {
for (let index = 0; index < limit; index++) { for (let index = 0; index < limit; index++) {
const res = {}; const res = {};
const newPermitido = array[index];
const promesa = new Promise((resolve) => { const promesa = new Promise((resolve) => {
account.addOwner(array[index], (error) => { account.addOwner(newPermitido, (error) => {
if (error) { if (error) {
res.isCompleted = false; res.isCompleted = false;
res.item = response[key][index]; res.item = newPermitido;
res.action = key; res.action = key;
res.error = error; res.error = error;
} else { } else {
res.isCompleted = true; res.isCompleted = true;
res.item = response[key][index]; res.item = newPermitido;
res.action = key; res.action = key;
DomainStore.addOwners(response[key][index]);
} }
return resolve(res); return resolve(res);
...@@ -294,8 +306,9 @@ export default class DistributionLists extends React.Component { ...@@ -294,8 +306,9 @@ export default class DistributionLists extends React.Component {
for (let index = 0; index < limit; index++) { for (let index = 0; index < limit; index++) {
const res = {}; const res = {};
const permitido = array[index].name || array[index].id;
const promesa = new Promise((resolve) => { const promesa = new Promise((resolve) => {
account.removeOwner(array[index], (error) => { account.removeOwner(permitido, (error) => {
if (error) { if (error) {
res.isCompleted = false; res.isCompleted = false;
res.item = response[key][index]; res.item = response[key][index];
......
...@@ -56,11 +56,8 @@ export default class PanelActions extends React.Component { ...@@ -56,11 +56,8 @@ export default class PanelActions extends React.Component {
const search = this.refs.search.value; const search = this.refs.search.value;
const arrayFiltered = this.props.data.filter((strArray) => { const arrayFiltered = this.props.data.filter((strArray) => {
if (strArray.match(search)) { const strToTest = typeof strArray.name === 'string' ? strArray.name : strArray.id;
return strArray; return strToTest.match(search);
}
return false;
}); });
const states = {}; const states = {};
...@@ -98,11 +95,13 @@ export default class PanelActions extends React.Component { ...@@ -98,11 +95,13 @@ export default class PanelActions extends React.Component {
} }
} }
handleDelete(e, item) { handleDelete(e, element) {
e.preventDefault(); e.preventDefault();
this.remove.push(item); this.remove.push(element);
this.forRemove.push(item); this.forRemove.push(element);
this.props.onDelete(item); if (this.props.onDelete) {
this.props.onDelete(element);
}
} }
reset() { reset() {
...@@ -196,11 +195,10 @@ export default class PanelActions extends React.Component { ...@@ -196,11 +195,10 @@ export default class PanelActions extends React.Component {
componentWillReceiveProps(nextProps) { componentWillReceiveProps(nextProps) {
this.pagination.setArray(nextProps.data); this.pagination.setArray(nextProps.data);
this.pagination.reset();
const states = {}; const states = {};
states['items' + this.props.name] = nextProps.data; states['items' + this.props.name] = this.pagination.reset();
states['pagination' + this.props.name] = this.pagination.getResults(); states['pagination' + this.props.name] = this.pagination.getResults();
this.setState(states); this.setState(states);
...@@ -239,7 +237,7 @@ export default class PanelActions extends React.Component { ...@@ -239,7 +237,7 @@ export default class PanelActions extends React.Component {
const length = array.length; const length = array.length;
if (length > 0) { if (length > 0) {
for (let i = 0; i < length; i++) { for (let i = 0; i < length; i++) {
if (item === array[i]) { if (item.id === array[i].id) {
array.splice(i, 1); array.splice(i, 1);
return true; return true;
} }
...@@ -281,7 +279,9 @@ export default class PanelActions extends React.Component { ...@@ -281,7 +279,9 @@ export default class PanelActions extends React.Component {
response.refresh = this.refresh; response.refresh = this.refresh;
} }
this.props.onApplyChanges(response); if (this.props.onApplyChanges) {
this.props.onApplyChanges(response);
}
} }
render() { render() {
...@@ -367,10 +367,14 @@ export default class PanelActions extends React.Component { ...@@ -367,10 +367,14 @@ export default class PanelActions extends React.Component {
} else { } else {
const data = this.state['items' + this.props.name]; const data = this.state['items' + this.props.name];
rows = data.map((row, index) => { rows = data.map((row, index) => {
const name = row.name || row.id;
const hasError = row.name ? '' : 'alert-danger';
const labelError = row.name ? '' : '(Este elemento no tiene nombre)';
return ( return (
<tr key={index}> <tr key={index}>
<td> <td className={`${hasError}`}>
{row} {`${name} ${labelError}`}
<Button <Button
btnAttrs={ btnAttrs={
...@@ -447,6 +451,7 @@ export default class PanelActions extends React.Component { ...@@ -447,6 +451,7 @@ export default class PanelActions extends React.Component {
if (this.remove.length > 0) { if (this.remove.length > 0) {
itemsForRemove = this.remove.map((element, key) => { itemsForRemove = this.remove.map((element, key) => {
const nameForRemove = element.name || element.id;
return ( return (
<label <label
className='list-inline listed-field' className='list-inline listed-field'
...@@ -455,12 +460,12 @@ export default class PanelActions extends React.Component { ...@@ -455,12 +460,12 @@ export default class PanelActions extends React.Component {
<input <input
type='checkbox' type='checkbox'
defaultChecked={'checked'} defaultChecked={'checked'}
data-value={element} data-value={element.id}
onChange={(e) => { onChange={(e) => {
this.handleChange(e, element, 'remove'); this.handleChange(e, element, 'remove');
}} }}
/> />
{element} {nameForRemove}
</label> </label>
); );
}); });
......
...@@ -558,7 +558,8 @@ export function getOwners(owners) { ...@@ -558,7 +558,8 @@ export function getOwners(owners) {
const limit = owners.length; const limit = owners.length;
const ownersArray = []; const ownersArray = [];
for (let i = 0; i < limit; i++) { for (let i = 0; i < limit; i++) {
ownersArray.push(owners[i].name); const name = owners[i].name || { id: owners[i].id};
ownersArray.push(name);
} }
return ownersArray; return ownersArray;
......
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