<!--
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="../../../behaviors/docs-url-behavior/docs-url-behavior.html">
<link rel="import" href="../../../styles/shared-styles.html">
<link rel="import" href="../../../styles/gr-menu-page-styles.html">
<link rel="import" href="../../../styles/gr-page-nav-styles.html">
<link rel="import" href="../../../styles/gr-form-styles.html">
<link rel="import" href="../../settings/gr-change-table-editor/gr-change-table-editor.html">
<link rel="import" href="../../shared/gr-button/gr-button.html">
<link rel="import" href="../../shared/gr-date-formatter/gr-date-formatter.html">
<link rel="import" href="../../shared/gr-page-nav/gr-page-nav.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">
<link rel="import" href="../gr-account-info/gr-account-info.html">
<link rel="import" href="../gr-agreements-list/gr-agreements-list.html">
<link rel="import" href="../gr-email-editor/gr-email-editor.html">
<link rel="import" href="../gr-group-list/gr-group-list.html">
<link rel="import" href="../gr-http-password/gr-http-password.html">
<link rel="import" href="../gr-menu-editor/gr-menu-editor.html">
<link rel="import" href="../gr-ssh-editor/gr-ssh-editor.html">
<link rel="import" href="../gr-watched-projects-editor/gr-watched-projects-editor.html">

<dom-module id="gr-settings-view">
  <template>
    <style include="shared-styles">
      #newEmailInput {
        width: 20em;
      }
      #email {
        margin-bottom: 1em;
      }
      .filters p {
        margin-bottom: 1em;
      }
      .queryExample em {
        color: violet;
      }
    </style>
    <style include="gr-form-styles"></style>
    <style include="gr-menu-page-styles"></style>
    <style include="gr-page-nav-styles"></style>
    <div class="loading" hidden$="[[!_loading]]">Loading...</div>
    <div hidden$="[[_loading]]" hidden>
      <gr-page-nav class="navStyles">
        <ul>
          <li><a href="#Profile">Profile</a></li>
          <li><a href="#Preferences">Preferences</a></li>
          <li><a href="#DiffPreferences">Diff Preferences</a></li>
          <li><a href="#Menu">Menu</a></li>
          <li><a href="#ChangeTableColumns">Change Table Columns</a></li>
          <li><a href="#Notifications">Notifications</a></li>
          <li><a href="#EmailAddresses">Email Addresses</a></li>
          <template is="dom-if" if="[[_showHttpAuth(_serverConfig)]]">
            <li><a href="#HTTPCredentials">HTTP Credentials</a></li>
          </template>
          <li hidden$="[[!_serverConfig.sshd]]"><a href="#SSHKeys">
            SSH Keys
          </a></li>
          <li><a href="#Groups">Groups</a></li>
          <template is="dom-if" if="[[_serverConfig.auth.use_contributor_agreements]]">
            <li>
              <a href="#Agreements">Agreements</a>
            </li>
          </template>
          <li><a href="#MailFilters">Mail Filters</a></li>
        </ul>
      </gr-page-nav>
      <main class="gr-form-styles">
        <h1>User Settings</h1>
        <h2
            id="Profile"
            class$="[[_computeHeaderClass(_accountInfoChanged)]]">Profile</h2>
        <fieldset id="profile">
          <gr-account-info
              id="accountInfo"
              mutable="{{_accountNameMutable}}"
              has-unsaved-changes="{{_accountInfoChanged}}"></gr-account-info>
          <gr-button
              on-tap="_handleSaveAccountInfo"
              disabled="[[!_accountInfoChanged]]">Save changes</gr-button>
        </fieldset>
        <h2
            id="Preferences"
            class$="[[_computeHeaderClass(_prefsChanged)]]">Preferences</h2>
        <fieldset id="preferences">
          <section>
            <span class="title">Changes per page</span>
            <span class="value">
              <gr-select
                  bind-value="{{_localPrefs.changes_per_page}}">
                <select>
                  <option value="10">10 rows per page</option>
                  <option value="25">25 rows per page</option>
                  <option value="50">50 rows per page</option>
                  <option value="100">100 rows per page</option>
                </select>
              </gr-select>
            </span>
          </section>
          <section>
            <span class="title">Date/time format</span>
            <span class="value">
              <gr-select
                  bind-value="{{_localPrefs.date_format}}">
                <select>
                  <option value="STD">Jun 3 ; Jun 3, 2016</option>
                  <option value="US">06/03 ; 06/03/16</option>
                  <option value="ISO">06-03 ; 2016-06-03</option>
                  <option value="EURO">3. Jun ; 03.06.2016</option>
                  <option value="UK">03/06 ; 03/06/2016</option>
                </select>
              </gr-select>
              <gr-select
                  bind-value="{{_localPrefs.time_format}}">
                <select>
                  <option value="HHMM_12">4:10 PM</option>
                  <option value="HHMM_24">16:10</option>
                </select>
              </gr-select>
            </span>
          </section>
          <section>
            <span class="title">Email notifications</span>
            <span class="value">
              <gr-select
                  bind-value="{{_localPrefs.email_strategy}}">
                <select>
                  <option value="CC_ON_OWN_COMMENTS">Every comment</option>
                  <option value="ENABLED">Only comments left by others</option>
                  <option value="DISABLED">None</option>
                </select>
              </gr-select>
            </span>
          </section>
          <section hidden$="[[!_localPrefs.email_format]]">
            <span class="title">Email format</span>
            <span class="value">
              <gr-select
                  bind-value="{{_localPrefs.email_format}}">
                <select>
                  <option value="HTML_PLAINTEXT">HTML and plaintext</option>
                  <option value="PLAINTEXT">Plaintext only</option>
                </select>
              </gr-select>
            </span>
          </section>
          <section>
            <span class="title">Diff view</span>
            <span class="value">
              <gr-select
                  bind-value="{{_localPrefs.diff_view}}">
                <select>
                  <option value="SIDE_BY_SIDE">Side by side</option>
                  <option value="UNIFIED_DIFF">Unified diff</option>
                </select>
              </gr-select>
            </span>
          </section>
          <section>
            <span class="title">Expand inline diffs</span>
            <span class="value">
              <input
                  id="expandInlineDiffs"
                  type="checkbox"
                  checked$="[[_localPrefs.expand_inline_diffs]]"
                  on-change="_handleExpandInlineDiffsChanged">
            </span>
          </section>
          <section>
            <span class="title">Publish comments on push</span>
            <span class="value">
              <input
                  id="publishCommentsOnPush"
                  type="checkbox"
                  checked$="[[_localPrefs.publish_comments_on_push]]"
                  on-change="_handlePublishCommentsOnPushChanged">
            </span>
          </section>
          <section>
            <span class="title">Set new changes to "work in progress" by default</span>
            <span class="value">
              <input
                  id="workInProgressByDefault"
                  type="checkbox"
                  checked$="[[_localPrefs.work_in_progress_by_default]]"
                  on-change="_handleWorkInProgressByDefault">
            </span>
          </section>
          <section>
            <span class="title">
              Insert Signed-off-by Footer For Inline Edit Changes
            </span>
            <span class="value">
              <input
                  id="insertSignedOff"
                  type="checkbox"
                  checked$="[[_localPrefs.signed_off_by]]"
                  on-change="_handleInsertSignedOff">
            </span>
          </section>
          <gr-button
              id="savePrefs"
              on-tap="_handleSavePreferences"
              disabled="[[!_prefsChanged]]">Save changes</gr-button>
        </fieldset>
        <h2
            id="DiffPreferences"
            class$="[[_computeHeaderClass(_diffPrefsChanged)]]">
          Diff Preferences
        </h2>
        <fieldset id="diffPreferences">
          <section>
            <span class="title">Context</span>
            <span class="value">
              <gr-select bind-value="{{_diffPrefs.context}}">
                <select>
                  <option value="3">3 lines</option>
                  <option value="10">10 lines</option>
                  <option value="25">25 lines</option>
                  <option value="50">50 lines</option>
                  <option value="75">75 lines</option>
                  <option value="100">100 lines</option>
                  <option value="-1">Whole file</option>
                </select>
              </gr-select>
            </span>
          </section>
          <section>
            <span class="title">Fit to screen</span>
            <span class="value">
              <input
                  id="lineWrapping"
                  type="checkbox"
                  checked$="[[_diffPrefs.line_wrapping]]"
                  on-change="_handleLineWrappingChanged">
            </span>
          </section>
          <section id="columnsPref" hidden$="[[_diffPrefs.line_wrapping]]">
            <span class="title">Diff width</span>
            <span class="value">
              <input
                  is="iron-input"
                  type="number"
                  prevent-invalid-input
                  allowed-pattern="[0-9]"
                  bind-value="{{_diffPrefs.line_length}}">
            </span>
          </section>
          <section>
            <span class="title">Tab width</span>
            <span class="value">
              <input
                  is="iron-input"
                  type="number"
                  prevent-invalid-input
                  allowed-pattern="[0-9]"
                  bind-value="{{_diffPrefs.tab_size}}">
            </span>
          </section>
          <section hidden$="[[!_diffPrefs.font_size]]">
            <span class="title">Font size</span>
            <span class="value">
              <input
                  is="iron-input"
                  type="number"
                  prevent-invalid-input
                  allowed-pattern="[0-9]"
                  bind-value="{{_diffPrefs.font_size}}">
            </span>
          </section>
          <section>
            <span class="title">Show tabs</span>
            <span class="value">
              <input
                  id="showTabs"
                  type="checkbox"
                  checked$="[[_diffPrefs.show_tabs]]"
                  on-change="_handleShowTabsChanged">
            </span>
          </section>
          <section>
            <span class="title">Show trailing whitespace</span>
            <span class="value">
              <input
                  id="showTrailingWhitespace"
                  type="checkbox"
                  checked$="[[_diffPrefs.show_whitespace_errors]]"
                  on-change="_handleShowTrailingWhitespaceChanged">
            </span>
          </section>
          <section>
            <span class="title">Syntax highlighting</span>
            <span class="value">
              <input
                  id="syntaxHighlighting"
                  type="checkbox"
                  checked$="[[_diffPrefs.syntax_highlighting]]"
                  on-change="_handleSyntaxHighlightingChanged">
            </span>
          </section>
          <gr-button
              id="saveDiffPrefs"
              on-tap="_handleSaveDiffPreferences"
              disabled$="[[!_diffPrefsChanged]]">Save changes</gr-button>
        </fieldset>
        <h2 id="Menu" class$="[[_computeHeaderClass(_menuChanged)]]">Menu</h2>
        <fieldset id="menu">
          <gr-menu-editor
              menu-items="{{_localMenu}}"></gr-menu-editor>
          <gr-button
              id="saveMenu"
              on-tap="_handleSaveMenu"
              disabled="[[!_menuChanged]]">Save changes</gr-button>
          <gr-button
              id="resetMenu"
              link
              on-tap="_handleResetMenuButton">Reset</gr-button>
        </fieldset>
        <h2 id="ChangeTableColumns"
            class$="[[_computeHeaderClass(_changeTableChanged)]]">
          Change Table Columns
        </h2>
        <fieldset id="changeTableColumns">
          <gr-change-table-editor
              show-number="{{_showNumber}}"
              displayed-columns="{{_localChangeTableColumns}}">
          </gr-change-table-editor>
          <gr-button
              id="saveChangeTable"
              on-tap="_handleSaveChangeTable"
              disabled="[[!_changeTableChanged]]">Save changes</gr-button>
        </fieldset>
        <h2
            id="Notifications"
            class$="[[_computeHeaderClass(_watchedProjectsChanged)]]">
          Notifications
        </h2>
        <fieldset id="watchedProjects">
          <gr-watched-projects-editor
              has-unsaved-changes="{{_watchedProjectsChanged}}"
              id="watchedProjectsEditor"></gr-watched-projects-editor>
          <gr-button
              on-tap="_handleSaveWatchedProjects"
              disabled$="[[!_watchedProjectsChanged]]"
              id="_handleSaveWatchedProjects">Save changes</gr-button>
        </fieldset>
        <h2
            id="EmailAddresses"
            class$="[[_computeHeaderClass(_emailsChanged)]]">
          Email Addresses
        </h2>
        <fieldset id="email">
          <gr-email-editor
              id="emailEditor"
              has-unsaved-changes="{{_emailsChanged}}"></gr-email-editor>
          <gr-button
              link
              on-tap="_handleSaveEmails"
              disabled$="[[!_emailsChanged]]">Save changes</gr-button>
        </fieldset>
        <fieldset id="newEmail">
          <section>
            <span class="title">New email address</span>
            <span class="value">
              <input
                  id="newEmailInput"
                  bind-value="{{_newEmail}}"
                  is="iron-input"
                  type="text"
                  disabled="[[_addingEmail]]"
                  on-keydown="_handleNewEmailKeydown"
                  placeholder="email@example.com">
            </span>
          </section>
          <section
              id="verificationSentMessage"
              hidden$="[[!_lastSentVerificationEmail]]">
            <p>
              A verification email was sent to
              <em>[[_lastSentVerificationEmail]]</em>. Please check your inbox.
            </p>
          </section>
          <gr-button
              disabled="[[!_computeAddEmailButtonEnabled(_newEmail, _addingEmail)]]"
              on-tap="_handleAddEmailButton">Send verification</gr-button>
        </fieldset>
        <template is="dom-if" if="[[_showHttpAuth(_serverConfig)]]">
          <div>
            <h2 id="HTTPCredentials">HTTP Credentials</h2>
            <fieldset>
              <gr-http-password id="httpPass"></gr-http-password>
            </fieldset>
          </div>
        </template>
        <div hidden$="[[!_serverConfig.sshd]]">
          <h2
              id="SSHKeys"
              class$="[[_computeHeaderClass(_keysChanged)]]">SSH keys</h2>
          <gr-ssh-editor
              id="sshEditor"
              has-unsaved-changes="{{_keysChanged}}"></gr-ssh-editor>
        </div>
        <h2 id="Groups">Groups</h2>
        <fieldset>
          <gr-group-list id="groupList"></gr-group-list>
        </fieldset>
        <template is="dom-if" if="[[_serverConfig.auth.use_contributor_agreements]]">
          <h2 id="Agreements">Agreements</h2>
          <fieldset>
            <gr-agreements-list id="agreementsList"></gr-agreements-list>
          </fieldset>
        </template>
        <h2 id="MailFilters">Mail Filters</h2>
        <fieldset class="filters">
          <p>
            Gerrit emails include metadata about the change to support
            writing mail filters.
          </p>
          <p>
            Here are some example Gmail queries that can be used for filters or
            for searching through archived messages. View the
            <a href$="[[_getFilterDocsLink(_docsBaseUrl)]]"
                target="_blank"
                rel="nofollow">Gerrit documentation</a>
            for the complete set of footers.
          </p>
          <table>
            <tbody>
              <tr><th>Name</th><th>Query</th></tr>
              <tr>
                <td>Changes requesting my review</td>
                <td>
                  <code class="queryExample">
                    "Gerrit-Reviewer: <em>Your Name</em>
                    &lt;<em>your.email@example.com</em>&gt;"
                  </code>
                </td>
              </tr>
              <tr>
                <td>Changes from a specific owner</td>
                <td>
                  <code class="queryExample">
                    "Gerrit-Owner: <em>Owner name</em>
                    &lt;<em>owner.email@example.com</em>&gt;"
                  </code>
                </td>
              </tr>
              <tr>
                <td>Changes targeting a specific branch</td>
                <td>
                  <code class="queryExample">
                    "Gerrit-Branch: <em>branch-name</em>"
                  </code>
                </td>
              </tr>
              <tr>
                <td>Changes in a specific project</td>
                <td>
                  <code class="queryExample">
                    "Gerrit-Project: <em>project-name</em>"
                  </code>
                </td>
              </tr>
              <tr>
                <td>Messages related to a specific Change ID</td>
                <td>
                  <code class="queryExample">
                    "Gerrit-Change-Id: <em>Change ID</em>"
                  </code>
                </td>
              </tr>
              <tr>
                <td>Messages related to a specific change number</td>
                <td>
                  <code class="queryExample">
                    "Gerrit-Change-Number: <em>change number</em>"
                  </code>
                </td>
              </tr>
            </tbody>
          </table>
        </fieldset>
      </main>
    </div>
    <gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
  </template>
  <script src="../../../scripts/util.js"></script>
  <script src="gr-settings-view.js"></script>
</dom-module>
