<!--
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.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-project-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 #d1d2d3;
          border-radius: 2px;
          font-size: 1em;
          height: 2em;
          padding: 0 .15em;
          width: 20em;
        }
      }
    </style>

    <div class="gr-form-styles">
      <div id="form">
        <section>
          <span class="title">Project name</span>
          <input is="iron-input"
              id="projectNameInput"
              autocomplete="on"
              bind-value="{{_projectConfig.name}}">
        </section>
        <section>
          <span class="title">Rights inherit from</span>
          <span class="value">
            <gr-autocomplete
                id="rightsInheritFromInput"
                text="{{_projectConfig.parent}}"
                query="[[_query]]"
                placeholder="Optional, defaults to 'All-Projects'">
            </gr-autocomplete>
          </span>
        </section>
        <section>
          <span class="title">Create initial empty commit</span>
          <span class="value">
            <gr-select
                id="initialCommit"
                bind-value="{{_projectConfig.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 projects</span>
          <span class="value">
            <gr-select
                id="parentProject"
                bind-value="{{_projectConfig.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-project-dialog.js"></script>
</dom-module>
