<!--
@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="../../../behaviors/base-url-behavior/base-url-behavior.html">
<link rel="import" href="../../../behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior.html">
<link rel="import" href="../../../bower_components/iron-input/iron-input.html">
<link rel="import" href="../../../styles/gr-form-styles.html">
<link rel="import" href="../../../styles/shared-styles.html">
<link rel="import" href="../../shared/gr-autocomplete/gr-autocomplete.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">
<link rel="import" href="../../shared/gr-select/gr-select.html">

<dom-module id="gr-create-repo-dialog">
  <template>
    <style include="shared-styles"></style>
    <style include="gr-form-styles">
      :host {
        display: inline-block;
      }
      input {
        width: 20em;
      }
      gr-autocomplete {
        border: none;
        --gr-autocomplete: {
          border: 1px solid var(--border-color);
          border-radius: 2px;
          font-size: var(--font-size-normal);
          height: 2em;
          padding: 0 .15em;
          width: 20em;
        }
      }
    </style>

    <div class="gr-form-styles">
      <div id="form">
        <section>
          <span class="title">Repository name</span>
          <input is="iron-input"
              id="repoNameInput"
              autocomplete="on"
              bind-value="{{_repoConfig.name}}">
        </section>
        <section>
          <span class="title">Rights inherit from</span>
          <span class="value">
            <gr-autocomplete
                id="rightsInheritFromInput"
                text="{{_repoConfig.parent}}"
                query="[[_query]]"
                placeholder="Optional, defaults to 'All-Projects'">
            </gr-autocomplete>
          </span>
        </section>
        <section>
          <span class="title">Owner</span>
          <span class="value">
            <gr-autocomplete
                id="ownerInput"
                text="{{_repoOwner}}"
                value="{{_repoOwnerId}}"
                query="[[_queryGroups]]">
            </gr-autocomplete>
          </span>
        </section>
        <section>
          <span class="title">Create initial empty commit</span>
          <span class="value">
            <gr-select
                id="initalCommit"
                bind-value="{{_repoConfig.create_empty_commit}}">
              <select>
                <option value="false">False</option>
                <option value="true">True</option>
              </select>
            </gr-select>
          </span>
        </section>
        <section>
          <span class="title">Only serve as parent for other repositories</span>
          <span class="value">
            <gr-select
                id="parentRepo"
                bind-value="{{_repoConfig.permissions_only}}">
              <select>
                <option value="false">False</option>
                <option value="true">True</option>
              </select>
            </gr-select>
          </span>
        </section>
      </div>
    </div>
    <gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
  </template>
  <script src="gr-create-repo-dialog.js"></script>
</dom-module>
