Mailspring/packages/nylas-dashboard/public/js/set-all-sync-policies.jsx
Halla Moore 8e790a0e15 Spruce up the dashboard
Consloidate modal functionality into its own component and make
general appearance fixes, especially with the Syncback Request
Details.
2016-07-12 18:27:04 -07:00

60 lines
1.6 KiB
JavaScript

const React = window.React;
const Modal = window.Modal;
class SetAllSyncPolicies extends React.Component {
applyToAllAccounts(accountIds) {
const req = new XMLHttpRequest();
const url = `${window.location.protocol}/sync-policy`;
req.open("POST", url, true);
req.setRequestHeader("Content-type", "application/json");
req.onreadystatechange = () => {
if (req.readyState === XMLHttpRequest.DONE) {
console.log(req.responseText);
if (req.status === 200) {
this.setState({editMode: false});
}
}
}
const newPolicy = document.getElementById(`sync-policy-all`).value;
req.send(JSON.stringify({
sync_policy: newPolicy,
account_ids: accountIds,
}));
}
render() {
return (
<Modal
className="sync-policy"
openLink={{
text: "Set sync policies for currently displayed accounts",
className: "action-link",
id: "open-all-sync",
}}
actionElems={[
{
title: "Apply To All Displayed Accounts",
action: () => this.applyToAllAccounts.call(this, this.props.accountIds),
type: 'button',
className: 'right-action',
}, {
title: "Cancel",
type: 'div',
className: 'action-link cancel',
},
]}
>
<h3>Sync Policy</h3>
<textarea id="sync-policy-all"></textarea>
</Modal>
)
}
}
SetAllSyncPolicies.propTypes = {
accountIds: React.PropTypes.arrayOf(React.PropTypes.number),
}
window.SetAllSyncPolicies = SetAllSyncPolicies;