<!--
@license
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.
-->
<script>
  // This must be set prior to loading Polymer for the first time.
  if (localStorage.getItem('USE_SHADOW_DOM') === 'true') {
    window.Polymer = {
      dom: 'shadow',
      passiveTouchGestures: true,
    };
  } else if (!window.Polymer) {
    window.Polymer = {
      passiveTouchGestures: true,
    };
  }
</script>

<link rel="import" href="../bower_components/polymer/polymer.html">
<link rel="import" href="../bower_components/polymer-resin/standalone/polymer-resin.html">
<script>
  security.polymer_resin.install({
    allowedIdentifierPrefixes: [''],
    reportHandler: security.polymer_resin.CONSOLE_LOGGING_REPORT_HANDLER,
  });
</script>

<link rel="import" href="../behaviors/base-url-behavior/base-url-behavior.html">
<link rel="import" href="../behaviors/keyboard-shortcut-behavior/keyboard-shortcut-behavior.html">
<link rel="import" href="../styles/shared-styles.html">
<link rel="import" href="../styles/themes/app-theme.html">
<link rel="import" href="./admin/gr-admin-view/gr-admin-view.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="./core/gr-error-manager/gr-error-manager.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="./core/gr-navigation/gr-navigation.html">
<link rel="import" href="./core/gr-reporting/gr-reporting.html">
<link rel="import" href="./core/gr-router/gr-router.html">
<link rel="import" href="./diff/gr-diff-view/gr-diff-view.html">
<link rel="import" href="./edit/gr-editor-view/gr-editor-view.html">
<link rel="import" href="./plugins/gr-endpoint-decorator/gr-endpoint-decorator.html">
<link rel="import" href="./plugins/gr-endpoint-param/gr-endpoint-param.html">
<link rel="import" href="./plugins/gr-external-style/gr-external-style.html">
<link rel="import" href="./plugins/gr-plugin-host/gr-plugin-host.html">
<link rel="import" href="./settings/gr-cla-view/gr-cla-view.html">
<link rel="import" href="./settings/gr-registration-dialog/gr-registration-dialog.html">
<link rel="import" href="./settings/gr-settings-view/gr-settings-view.html">
<link rel="import" href="./shared/gr-fixed-panel/gr-fixed-panel.html">
<link rel="import" href="./shared/gr-lib-loader/gr-lib-loader.html">
<link rel="import" href="./shared/gr-rest-api-interface/gr-rest-api-interface.html">

<script src="../scripts/util.js"></script>

<dom-module id="gr-app">
  <template>
    <style include="shared-styles">
      :host {
        background-color: var(--view-background-color);
        display: flex;
        flex-direction: column;
        min-height: 100%;
      }
      gr-fixed-panel {
        /**
         * This one should be greater that the z-index in gr-diff-view
         * because gr-main-header contains overlay.
         */
        z-index: 10;
      }
      gr-main-header,
      footer {
        color: var(--primary-text-color);
      }
      gr-main-header {
        background-color: var(--header-background-color);
        padding: 0 var(--default-horizontal-margin);
        border-bottom: 1px solid var(--border-color);
      }
      gr-main-header.shadow {
        /* Make it obvious for shadow dom testing */
        border-bottom: 1px solid pink;
      }
      footer {
        background-color: var(--footer-background-color);
        border-top: 1px solid var(--border-color);
        display: flex;
        justify-content: space-between;
        padding: .5rem var(--default-horizontal-margin);
        z-index: 100;
      }
      main {
        flex: 1;
        padding-bottom: 2em;
        position: relative;
      }
      .errorView {
        align-items: center;
        display: none;
        flex-direction: column;
        justify-content: center;
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
      }
      .errorView.show {
        display: flex;
      }
      .errorEmoji {
        font-size: 2.6rem;
      }
      .errorText,
      .errorMoreInfo {
        margin-top: .75em;
      }
      .errorText {
        font-size: 1.2rem;
      }
      .errorMoreInfo {
        color: var(--deemphasized-text-color);
      }
      .feedback {
        color: var(--error-text-color);
      }
    </style>
    <gr-fixed-panel id="header">
      <gr-main-header
          id="mainHeader"
          search-query="{{params.query}}"
          class$="[[_computeShadowClass(_isShadowDom)]]">
      </gr-main-header>
    </gr-fixed-panel>
    <main>
      <template is="dom-if" if="[[_showChangeListView]]" restamp="true">
        <gr-change-list-view
            params="[[params]]"
            account="[[_account]]"
            view-state="{{_viewState.changeListView}}"></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]]"
            view-state="{{_viewState.changeView}}"
            back-page="[[_lastSearchPage]]"></gr-change-view>
      </template>
      <template is="dom-if" if="[[_showEditorView]]" restamp="true">
        <gr-editor-view
            params="[[params]]"></gr-editor-view>
      </template>
      <template is="dom-if" if="[[_showDiffView]]" restamp="true">
          <gr-diff-view
              params="[[params]]"
              change-view-state="{{_viewState.changeView}}"></gr-diff-view>
        </template>
      <template is="dom-if" if="[[_showSettingsView]]" restamp="true">
        <gr-settings-view
            params="[[params]]"
            on-account-detail-update="_handleAccountDetailUpdate">
        </gr-settings-view>
      </template>
      <template is="dom-if" if="[[_showAdminView]]" restamp="true">
        <gr-admin-view path="[[_path]]"
            params=[[params]]></gr-admin-view>
      </template>
      <template is="dom-if" if="[[_showPluginScreen]]" restamp="true">
        <gr-endpoint-decorator name="[[_pluginScreenName]]">
          <gr-endpoint-param name="token" value="[[params.screen]]"></gr-endpoint-param>
        </gr-endpoint-decorator>
      </template>
      <template is="dom-if" if="[[_showCLAView]]" restamp="true">
        <gr-cla-view></gr-cla-view>
      </template>
      <div id="errorView" class="errorView">
        <div class="errorEmoji">[[_lastError.emoji]]</div>
        <div class="errorText">[[_lastError.text]]</div>
        <div class="errorMoreInfo">[[_lastError.moreInfo]]</div>
      </div>
    </main>
    <footer r="contentinfo" class$="[[_computeShadowClass(_isShadowDom)]]">
      <div>
        Powered by <a href="https://www.gerritcodereview.com/" rel="noopener"
        target="_blank">Gerrit Code Review</a>
        ([[_version]])
      </div>
      <div>
        <a class="feedback"
            href="https://bugs.chromium.org/p/gerrit/issues/entry?template=PolyGerrit%20Issue"
            rel="noopener" target="_blank">Send feedback</a>
        <template is="dom-if" if="[[_computeShowGwtUiLink(_serverConfig)]]">
          |
          <a id="gwtLink" href$="[[computeGwtUrl(_path)]]" rel="external">Switch to Old UI</a>
        </template>
        | Press &ldquo;?&rdquo; for keyboard shortcuts
      </div>
    </footer>
    <gr-overlay id="keyboardShortcuts" with-backdrop>
      <gr-keyboard-shortcuts-dialog
          view="[[params.view]]"
          on-close="_handleKeyboardShortcutDialogClose"></gr-keyboard-shortcuts-dialog>
    </gr-overlay>
    <gr-overlay id="registration" with-backdrop>
      <gr-registration-dialog
          settings-url="[[_settingsUrl]]"
          on-account-detail-update="_handleAccountDetailUpdate"
          on-close="_handleRegistrationDialogClose">
      </gr-registration-dialog>
    </gr-overlay>
    <gr-endpoint-decorator name="plugin-overlay"></gr-endpoint-decorator>
    <gr-error-manager id="errorManager"></gr-error-manager>
    <gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
    <gr-reporting id="reporting"></gr-reporting>
    <gr-router id="router"></gr-router>
    <gr-plugin-host id="plugins"
        config="[[_serverConfig]]">
    </gr-plugin-host>
    <gr-lib-loader id="libLoader"></gr-lib-loader>
    <gr-external-style id="externalStyle" name="app-theme"></gr-external-style>
  </template>
  <script src="gr-app.js" crossorigin="anonymous"></script>
</dom-module>
