Files
gerrit/polygerrit-ui/app/elements/change/gr-thread-list/gr-thread-list_html.js
Tao Zhou 4fd32d5e7c Support deep linking on tabs
This change includes:
1. added shared constants folder for constants and messages
2. refactor the change-view page on switching tab behavior
3. replace hardcoded logic for findings tab in gr-thread-list
with emptyThreadMsg
4. add a new middleware in gr-router to parse the querystring
to queryMap
5. allow active primary tab and secondary tab with url param

A follow up change will support auto-update on url once tab switched,
and also use the link in other places like submit dialog,
this change itself should not affect any existing flow without the
follow up change.

Change-Id: I63e03a9acfb5ebab87fe8c256dcc027abfa876ea
2020-04-06 17:23:10 +02:00

76 lines
3.0 KiB
JavaScript

/**
* @license
* Copyright (C) 2020 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.
*/
import {html} from '@polymer/polymer/lib/utils/html-tag.js';
export const htmlTemplate = html`
<style include="shared-styles">
#threads {
display: block;
padding: var(--spacing-l);
}
gr-comment-thread {
display: block;
margin-bottom: var(--spacing-m);
max-width: 80ch;
}
.header {
align-items: center;
background-color: var(--table-header-background-color);
border-bottom: 1px solid var(--border-color);
border-top: 1px solid var(--border-color);
display: flex;
justify-content: left;
min-height: 3.2em;
padding: var(--spacing-m) var(--spacing-l);
}
.toggleItem.draftToggle {
display: none;
}
.toggleItem.draftToggle.show {
display: flex;
}
.toggleItem {
align-items: center;
display: flex;
margin-right: var(--spacing-l);
}
.draftsOnly:not(.unresolvedOnly) gr-comment-thread[has-draft],
.unresolvedOnly:not(.draftsOnly) gr-comment-thread[unresolved],
.draftsOnly.unresolvedOnly gr-comment-thread[has-draft][unresolved] {
display: block
}
</style>
<template is="dom-if" if="[[!hideToggleButtons]]">
<div class="header">
<div class="toggleItem">
<paper-toggle-button id="unresolvedToggle" checked="{{_unresolvedOnly}}"></paper-toggle-button>
Only unresolved threads</div>
<div class\$="toggleItem draftToggle [[_computeShowDraftToggle(loggedIn)]]">
<paper-toggle-button id="draftToggle" checked="{{_draftsOnly}}"></paper-toggle-button>
Only threads with drafts</div>
</div>
</template>
<div id="threads">
<template is="dom-if" if="[[!threads.length]]">
[[emptyThreadMsg]]
</template>
<template is="dom-repeat" items="[[_filteredThreads]]" as="thread" initial-count="5" target-framerate="60">
<gr-comment-thread show-file-path="" change-num="[[changeNum]]" comments="[[thread.comments]]" comment-side="[[thread.commentSide]]" project-name="[[change.project]]" is-on-parent="[[_isOnParent(thread.commentSide)]]" line-num="[[thread.line]]" patch-num="[[thread.patchNum]]" path="[[thread.path]]" root-id="{{thread.rootId}}" on-thread-changed="_handleCommentsChanged" on-thread-discard="_handleThreadDiscard"></gr-comment-thread>
</template>
</div>
`;