<!--
Copyright (C) 2015 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/keyboard-shortcut-behavior.html">
<link rel="import" href="../styles/app-theme.html">

<link rel="import" href="./core/gr-keyboard-shortcuts-dialog/gr-keyboard-shortcuts-dialog.html">
<link rel="import" href="./core/gr-main-header/gr-main-header.html">

<link rel="import" href="./change-list/gr-change-list-view/gr-change-list-view.html">
<link rel="import" href="./change-list/gr-dashboard-view/gr-dashboard-view.html">
<link rel="import" href="./change/gr-change-view/gr-change-view.html">
<link rel="import" href="./diff/gr-diff-view/gr-diff-view.html">

<link rel="import" href="./shared/gr-overlay/gr-overlay.html">
<link rel="import" href="./shared/gr-rest-api-interface/gr-rest-api-interface.html">

<script src="../bower_components/page/page.js"></script>
<script src="../scripts/app.js"></script>
<script src="../scripts/util.js"></script>

<dom-module id="gr-app">
  <template>
    <style>
      :host {
        background-color: var(--secondary-color);
        display: flex;
        min-height: 100vh;
        flex-direction: column;
      }
      gr-main-header,
      footer {
        background-color: var(--primary-color);
        color: var(--primary-text-color);
        padding: .5rem var(--default-horizontal-margin);
      }
      main {
        flex: 1;
      }
      .feedback {
        color: #b71c1c;
      }
    </style>
    <gr-main-header search-query="{{params.query}}"></gr-main-header>
    <main>
      <template is="dom-if" if="{{_showChangeListView}}" restamp="true">
        <gr-change-list-view
            params="[[params]]"
            view-state="{{_viewState.changeListView}}"
            changes-per-page="[[_preferences.changes_per_page]]"
            logged-in="[[_computeLoggedIn(_account)]]"></gr-change-list-view>
      </template>
      <template is="dom-if" if="{{_showDashboardView}}" restamp="true">
        <gr-dashboard-view
            account="[[_account]]"
            params="[[params]]"
            view-state="{{_viewState.dashboardView}}"></gr-dashboard-view>
      </template>
      <template is="dom-if" if="{{_showChangeView}}" restamp="true">
        <gr-change-view
            params="[[params]]"
            server-config="[[_serverConfig]]"
            view-state="{{_viewState.changeView}}"></gr-change-view>
      </template>
      <template is="dom-if" if="{{_showDiffView}}" restamp="true">
        <gr-diff-view
            params="[[params]]"
            prefs="{{_diffPreferences}}"
            change-view-state="{{_viewState.changeView}}"></gr-diff-view>
      </template>
    </main>
    <footer role="contentinfo">
      Powered by <a href="https://www.gerritcodereview.com/" target="_blank">Gerrit Code Review</a>
      ([[_version]])
      <span hidden$="[[!_serverConfig.gerrit.report_bug_url]]">
        |
        <a href$="[[_serverConfig.gerrit.report_bug_url]]" target="_blank">
          <span hidden$="[[!_serverConfig.gerrit.report_bug_text]]">
            [[_serverConfig.gerrit.report_bug_text]]
          </span>
          <span hidden$="[[_serverConfig.gerrit.report_bug_text]]">Report Bug</span>
        </a>
      </span>
      |
      <a class="feedback" href="http://goo.gl/forms/ETHmIH2Kga" target="_blank">
        PolyGerrit Feedback
      </a>
    </footer>
    <gr-overlay id="keyboardShortcuts" with-backdrop>
      <gr-keyboard-shortcuts-dialog
          view="[[params.view]]"
          on-close="_handleKeyboardShortcutDialogClose"></gr-keyboard-shortcuts-dialog>
    </gr-overlay>
    <gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
  </template>
  <script src="gr-app.js"></script>
</dom-module>
