| <!-- |
| @license |
| Copyright (C) 2017 The Android Open Source Project |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <link rel="import" href="/bower_components/polymer/polymer.html"> |
| <link rel="import" href="/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html"> |
| <link rel="import" href="../../../styles/gr-form-styles.html"> |
| <link rel="import" href="../../shared/gr-button/gr-button.html"> |
| <link rel="import" href="../../shared/gr-overlay/gr-overlay.html"> |
| <link rel="import" href="../../shared/gr-rest-api-interface/gr-rest-api-interface.html"> |
| <link rel="import" href="../../../styles/shared-styles.html"> |
| |
| <dom-module id="gr-gpg-editor"> |
| <template> |
| <style include="shared-styles"></style> |
| <style include="gr-form-styles"> |
| .keyHeader { |
| width: 9em; |
| } |
| .userIdHeader { |
| width: 15em; |
| } |
| #viewKeyOverlay { |
| padding: 2em; |
| width: 50em; |
| } |
| .publicKey { |
| font-family: var(--monospace-font-family); |
| overflow-x: scroll; |
| overflow-wrap: break-word; |
| width: 30em; |
| } |
| .closeButton { |
| bottom: 2em; |
| position: absolute; |
| right: 2em; |
| } |
| #existing { |
| margin-bottom: 1em; |
| } |
| </style> |
| <div class="gr-form-styles"> |
| <fieldset id="existing"> |
| <table> |
| <thead> |
| <tr> |
| <th class="idColumn">ID</th> |
| <th class="fingerPrintColumn">Fingerprint</th> |
| <th class="userIdHeader">User IDs</th> |
| <th class="keyHeader">Public Key</th> |
| <th></th> |
| </tr> |
| </thead> |
| <tbody> |
| <template is="dom-repeat" items="[[_keys]]" as="key"> |
| <tr> |
| <td class="idColumn">[[key.id]]</td> |
| <td class="fingerPrintColumn">[[key.fingerprint]]</td> |
| <td class="userIdHeader"> |
| <template is="dom-repeat" items="[[key.user_ids]]"> |
| [[item]] |
| </template> |
| </td> |
| <td class="keyHeader"> |
| <gr-button |
| on-tap="_showKey" |
| data-index$="[[index]]" |
| link>Click to View</gr-button> |
| </td> |
| <td> |
| <gr-button |
| data-index$="[[index]]" |
| on-tap="_handleDeleteKey">Delete</gr-button> |
| </td> |
| </tr> |
| </template> |
| </tbody> |
| </table> |
| <gr-overlay id="viewKeyOverlay" with-backdrop> |
| <fieldset> |
| <section> |
| <span class="title">Status</span> |
| <span class="value">[[_keyToView.status]]</span> |
| </section> |
| <section> |
| <span class="title">Key</span> |
| <span class="value">[[_keyToView.key]]</span> |
| </section> |
| </fieldset> |
| <gr-button |
| class="closeButton" |
| on-tap="_closeOverlay">Close</gr-button> |
| </gr-overlay> |
| <gr-button |
| on-tap="save" |
| disabled$="[[!hasUnsavedChanges]]">Save changes</gr-button> |
| </fieldset> |
| <fieldset> |
| <section> |
| <span class="title">New GPG key</span> |
| <span class="value"> |
| <iron-autogrow-textarea |
| id="newKey" |
| autocomplete="on" |
| bind-value="{{_newKey}}" |
| placeholder="New GPG Key"></iron-autogrow-textarea> |
| </span> |
| </section> |
| <gr-button |
| id="addButton" |
| disabled$="[[_computeAddButtonDisabled(_newKey)]]" |
| on-tap="_handleAddKey">Add new GPG key</gr-button> |
| </fieldset> |
| </div> |
| <gr-rest-api-interface id="restAPI"></gr-rest-api-interface> |
| </template> |
| <script src="gr-gpg-editor.js"></script> |
| </dom-module> |