<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
  <title>Slack Invite for OpenWhisk</title>
  <!-- Latest compiled and minified CSS -->
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
    crossorigin="anonymous">

  <!-- Optional theme -->
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp"
    crossorigin="anonymous">

  <!-- Latest compiled and minified JavaScript -->

  <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
    crossorigin="anonymous"></script>

  <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
  <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
 
</style>
</head>

<body>
  <img src="https://s23.postimg.org/oy3kv2uxn/skitch.png" style="height: 60px;"/>
  <p>
    Join the Apache OpenWhisk Slack Community to discuss the project in realtime.
  </p>

  <ul>
    <li><strong>Talk</strong> to the core devs and the OpenWhisk community.</li>
    <li><strong>Learn</strong> from others and ask questions.</li>
    <li><strong>Share</strong> your work and demos.</li>
  </ul>
  <p>Enter your email to join the OpenWhisk community Slack server:</p>
  <form class="form-inline">
    <div class="form-group">
      <label for="exampleInputEmail2">Email:</label>
      <input type="email" class="form-control" id="exampleInputEmail2" placeholder="jane.doe@example.com">
    </div>
    <button type="button" class="btn btn-primary">Send invitation</button>
    
  </form>
  <p>Please be nice, respectful and inclusive of others!</p>
  <p id="result"></p>

<script type="text/javascript">
var btn = $("button");
var res = $("#result");
function handler(){
  var email = $("input")[0].value;
  $.get( "https://545303d4-dd03-4cfc-a553-4253f7929dfd-gws.api-gw.mybluemix.net/openwhisk-team/slackinvite", { email: email} )
  .done(function( data ) {
    alert( "Data Loaded: " + data );
    btn.addClass("btn-success");
    btn.html("WOOT. CHECK YOUR EMAIL!");
    res.html(data.message);
  })
  .fail(function(err){
    res.html(err.statusText+":Your invitation didn't work :-( ");
    btn.addClass("btn-error");
  });
}
btn.click(handler); 
</script>
</body>
</html>
