<!--
Copyright (C) 2016 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-input/iron-input.html">
<link rel="import" href="../../shared/gr-button/gr-button.html">
<link rel="import" href="../../shared/gr-rest-api-interface/gr-rest-api-interface.html">

<dom-module id="gr-email-editor">
  <template>
    <style>
      th {
        color: #666;
        text-align: left;
      }
      th.emailHeader {
        width: 32.5em;
      }
      th.preferredHeader {
        text-align: center;
        width: 6em;
      }
      tbody tr:nth-child(even) {
        background-color: #f4f4f4;
      }
      td.preferredControl {
        cursor: pointer;
        text-align: center;
      }
      td.preferredControl:hover {
        border: 1px solid #ddd;
      }
    </style>
    <style include="gr-settings-styles"></style>
    <div class="gr-settings-styles">
      <table>
        <thead>
          <tr>
            <th class="emailHeader">Email</th>
            <th class="preferredHeader">Preferred</th>
            <th></th>
          </tr>
        </thead>
        <tbody>
          <template is="dom-repeat" items="[[_emails]]">
            <tr>
              <td>[[item.email]]</td>
              <td class="preferredControl" on-tap="_handlePreferredControlTap">
                <input
                    is="iron-input"
                    type="radio"
                    on-change="_handlePreferredChange"
                    name="preferred"
                    value="[[item.email]]"
                    checked$="[[item.preferred]]">
              </td>
              <td>
                <gr-button
                    data-index$="[[index]]"
                    on-tap="_handleDeleteButton"
                    disabled="[[item.preferred]]"
                    class="remove-button">Delete</gr-button>
              </td>
            </tr>
          </template>
        </tbody>
      </table>
    </div>
    <gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
  </template>
  <script src="gr-email-editor.js"></script>
</dom-module>
