<!--
@license
Copyright (C) 2018 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.
-->

<dom-module id="gr-simple-submit-rules-repo-config">
  <template>
    <style include="shared-styles"></style>
    <style include="gr-form-styles"></style>

    <main class="gr-form-styles">
      <h3 id="options">Simple Submit Rules</h3>

      <fieldset id="unresolved_comments">
        <section>
          <span class="title">Allow submission with unresolved comments</span>
          <span class="value">
            <gr-select id="allowUnresolvedComments"
                bind-value="{{_repoConfig.comments.block_if_unresolved_comments}}">
              <select disabled$="[[_readOnly]]">
                <option value="true">Yes</option>
                <option value="false">No</option>
              </select>
            </gr-select>
          </span>
        </section>
      </fieldset>

      <gr-button on-tap="_handleSaveRepoConfig"
          disabled$="[[_computeButtonDisabled(_readOnly, _configChanged)]]">
        Save Changes
      </gr-button>

    </main>
  </template>
  <script src="./gr-simple-submit-rules-repo-config.js"></script>
</dom-module>
