<html>
<head>
  <title>commits-panel-sk demo</title>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
  <script src="/res/common/js/common.js"></script>
  <script src="/res/imp/bower_components/webcomponentsjs/webcomponents-lite.js"></script>
  <link rel=import href="/res/imp/bower_components/polymer/polymer.html">
  <link rel=import href="commit.html">
  <style type="text/css" media="screen">
    body {
      font-family:Helvetica,Arial,'Bitstream Vera Sans',sans-serif;
    }

    commits-panel-sk {
      margin-top: 3em;
      display: block;
    }

    a {
      color: #FF7F00;
      font-weight: bold;
    }
  </style>
</head>
<body>
  <h1>Commits</h1>

  <h2>Working with a good commit hash.</h2>
  <commit-sk id=good hash=bb886749feb444edfd8fbf053a9ea815e3605f8a></commit-sk>

  <h2>Bad commit hash</h2>
  <commit-sk hash="some unknown git hash"></commit-sk>

  <h2>The asString() value.</h2>
  <div id=text></div>

  <script type="text/javascript" charset="utf-8">
    var commitinfo = [
      {
        commit_time: 1439649751,
        author: "reed (reed@chromium.org)",
        hash: "bb886749feb444edfd8fbf053a9ea815e3605f8a",
        message: "A description",
      },
      {
        author: "reed (reed@chromium.org)",
        commit_time: 1439648914,
        hash: "e02716908fe82c7c4ae9b415793277620a22bcd6",
        message: "Another description.",
      },
    ]
    sk.Mailbox.send("commits", commitinfo);
    $$$('#text').textContent = $$$('#good').asString();
  </script>
</body>
</html>
