| <!-- 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></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 |
| }, |
| }, |
| |
| 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> |