<!-- The <commit-picker-sk> custom element declaration.

  Attributes:
    commit - A serialized types.Commit of the chosen commit. This is null if
      no selection has been made.

    repo - The URL of the underlying git repo. This assumes a
           googlesource repo when deriving URLs from this value.

  Events:
    commit-selected - Event produced when a commit is selected. The event
      detail contains:

      {
        description: "fixed lengh string descripting the commit",
        hash: "1213982193 (the commit hash)",
      }

  Methods:
    selectHash - Forces the selection of the given hash.

    setCommitInfo(commitinfo) - Where commitinfo is an array of objects of the form:

      {
        author: "foo@example.org"
        commit_time: 1428574804
        hash: "d9f8862ab6bed4195cbfe5dda48693e1062b01e2"
      }

  Mailboxes:
    commits - The sk.Mailbox name to listen for the data to populate
      the element. The mailbox data needs to be a serialized slice
      of []*types.Commit. If not set then the data must be supplied
      by the setCommitInfo method.

        [
          {
            commit_time: 1439649751,
            author: "reed (reed@chromium.org)",
            hash: "bb886749feb444edfd8fbf053a9ea815e3605f8a",
          },
          {
            author: "reed (reed@chromium.org)",
            commit_time: 1439648914,
            hash: "e02716908fe82c7c4ae9b415793277620a22bcd6",
          },
        ]

      Note that the hashes need to be in order, but not necessarily
      contiguous. Note that they also need to be supplied in time ascending
      order, that is, the commit at index 0 needs to be the oldest commit, and
      the last commit in the array needs to be the newest commit.
-->
<link rel="stylesheet" href="/res/common/css/md.css">
<link rel="import" href="commit-panel.html">
<link rel="import" href="/res/imp/bower_components/paper-dialog/paper-dialog.html">
<link rel="import" href="/res/imp/bower_components/paper-dialog-scrollable/paper-dialog-scrollable.html">

<dom-module id="commit-picker-sk">
  <style>
  </style>
  <template>
    <button class=raised id=select><pre id=desc>Select a commit</pre></button>
    <paper-dialog id=dialog>
      <paper-dialog-scrollable>
        <commits-panel-sk id=panel repo="[[repo]]" selection origin="[[origin]]"></commits-panel-sk>
      </paper-dialog-scrollable>
      <div class=buttons>
        <button dialog-confirm>Close</button>
      </div>
    </paper-dialog>
  </template>
</dom-module>

<script>
  Polymer({
    is: "commit-picker-sk",

    properties: {
      commit: {
        type: Object,
        value: null,
      },
      repo: {
          type: String,
          value: "https://skia.googlesource.com/skia",
          notify: true
      },
      origin: {
        type: Boolean,
        value: false,
      }
    },

    listeners: {
      "select.tap": "_selectTap",
      "panel.commit-selected": "_panelSelect",
    },


    selectHash: function(hash) {
      this.$.panel.selectHash(hash);
    },

    setCommitInfo: function(commits) {
      this.$.panel.setCommitInfo(commits);
    },

    _selectTap: function() {
      this.$.dialog.open();
    },

    _panelSelect: function(e) {
      this.$.desc.textContent = e.detail.description;
      this.commit = e.detail.commit;
    },

  });
</script>
