ZeroTierNetwork.jsx 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. var ZeroTierNetwork = React.createClass({
  2. getInitialState: function() {
  3. return {};
  4. },
  5. leaveNetwork: function(event) {
  6. if (confirm("Are you sure you want to leave this network?")) {
  7. Ajax.call({
  8. url: 'network/'+this.props.nwid+'?auth='+this.props.authToken,
  9. cache: false,
  10. type: 'DELETE',
  11. success: function(data) {
  12. if (this.props.onNetworkDeleted)
  13. this.props.onNetworkDeleted(this.props.nwid);
  14. }.bind(this),
  15. error: function(error) {
  16. }.bind(this)
  17. });
  18. }
  19. event.preventDefault();
  20. },
  21. render: function() {
  22. return (
  23. <div className="zeroTierNetwork">
  24. <div className="networkInfo">
  25. <span className="networkId">{this.props.nwid}</span>&nbsp;
  26. <span className="networkName">{this.props.name}</span>
  27. </div>
  28. <div className="networkProps">
  29. <div className="row">
  30. <div className="name">Status</div>
  31. <div className="value">{this.props['status']}</div>
  32. </div>
  33. <div className="row">
  34. <div className="name">Type</div>
  35. <div className="value">{this.props['type']}</div>
  36. </div>
  37. <div className="row">
  38. <div className="name">MAC</div>
  39. <div className="value zeroTierAddress">{this.props['mac']}</div>
  40. </div>
  41. <div className="row">
  42. <div className="name">MTU</div>
  43. <div className="value">{this.props['mtu']}</div>
  44. </div>
  45. <div className="row">
  46. <div className="name">Broadcast</div>
  47. <div className="value">{(this.props['broadcastEnabled']) ? 'ENABLED' : 'DISABLED'}</div>
  48. </div>
  49. <div className="row">
  50. <div className="name">Bridging</div>
  51. <div className="value">{(this.props['bridge']) ? 'ACTIVE' : 'DISABLED'}</div>
  52. </div>
  53. <div className="row">
  54. <div className="name">Device</div>
  55. <div className="value">{(this.props['portDeviceName']) ? this.props['portDeviceName'] : '(none)'}</div>
  56. </div>
  57. <div className="row">
  58. <div className="name">Managed&nbsp;IPs</div>
  59. <div className="value ipList">
  60. {
  61. this.props['assignedAddresses'].map(function(ipAssignment) {
  62. return (
  63. <div key={ipAssignment} className="ipAddress">{ipAssignment}</div>
  64. );
  65. })
  66. }
  67. </div>
  68. </div>
  69. </div>
  70. <button type="button" className="leaveNetworkButton" onClick={this.leaveNetwork}>Leave&nbsp;Network</button>
  71. </div>
  72. );
  73. }
  74. });