224 lines
6.9 KiB
TypeScript
224 lines
6.9 KiB
TypeScript
/**
|
|
* @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';
|
|
|
|
export const htmlTemplate = html`
|
|
<style include="gr-form-styles">
|
|
/* Workaround for empty style block - see https://github.com/Polymer/tools/issues/408 */
|
|
</style>
|
|
<style include="gr-table-styles">
|
|
/* Workaround for empty style block - see https://github.com/Polymer/tools/issues/408 */
|
|
</style>
|
|
<style include="shared-styles">
|
|
.tags td.name {
|
|
min-width: 25em;
|
|
}
|
|
td.name,
|
|
td.revision,
|
|
td.message {
|
|
word-break: break-word;
|
|
}
|
|
td.revision.tags {
|
|
width: 27em;
|
|
}
|
|
td.message,
|
|
td.tagger {
|
|
max-width: 15em;
|
|
}
|
|
.editing .editItem {
|
|
display: inherit;
|
|
}
|
|
.editItem,
|
|
.editing .editBtn,
|
|
.canEdit .revisionNoEditing,
|
|
.editing .revisionWithEditing,
|
|
.revisionEdit,
|
|
.hideItem {
|
|
display: none;
|
|
}
|
|
.revisionEdit gr-button {
|
|
margin-left: var(--spacing-m);
|
|
}
|
|
.editBtn {
|
|
margin-left: var(--spacing-l);
|
|
}
|
|
.canEdit .revisionEdit {
|
|
align-items: center;
|
|
display: flex;
|
|
}
|
|
.deleteButton:not(.show) {
|
|
display: none;
|
|
}
|
|
.tagger.hide {
|
|
display: none;
|
|
}
|
|
</style>
|
|
<style include="gr-table-styles">
|
|
/* Workaround for empty style block - see https://github.com/Polymer/tools/issues/408 */
|
|
</style>
|
|
<gr-list-view
|
|
create-new="[[_loggedIn]]"
|
|
filter="[[_filter]]"
|
|
items-per-page="[[_itemsPerPage]]"
|
|
items="[[_items]]"
|
|
loading="[[_loading]]"
|
|
offset="[[_offset]]"
|
|
on-create-clicked="_handleCreateClicked"
|
|
path="[[_getPath(_repo, detailType)]]"
|
|
>
|
|
<table id="list" class="genericList gr-form-styles">
|
|
<tbody>
|
|
<tr class="headerRow">
|
|
<th class="name topHeader">Name</th>
|
|
<th class="revision topHeader">Revision</th>
|
|
<th class$="message topHeader [[_hideIfBranch(detailType)]]">
|
|
Message
|
|
</th>
|
|
<th class$="tagger topHeader [[_hideIfBranch(detailType)]]">
|
|
Tagger
|
|
</th>
|
|
<th class="repositoryBrowser topHeader">
|
|
Repository Browser
|
|
</th>
|
|
<th class="delete topHeader"></th>
|
|
</tr>
|
|
<tr id="loading" class$="loadingMsg [[computeLoadingClass(_loading)]]">
|
|
<td>Loading...</td>
|
|
</tr>
|
|
</tbody>
|
|
<tbody class$="[[computeLoadingClass(_loading)]]">
|
|
<template is="dom-repeat" items="[[_shownItems]]">
|
|
<tr class="table">
|
|
<td class$="[[detailType]] name">
|
|
<a href$="[[_computeFirstWebLink(item)]]">
|
|
[[_stripRefs(item.ref, detailType)]]
|
|
</a>
|
|
</td>
|
|
<td
|
|
class$="[[detailType]] revision [[_computeCanEditClass(item.ref, detailType, _isOwner)]]"
|
|
>
|
|
<span class="revisionNoEditing">
|
|
[[item.revision]]
|
|
</span>
|
|
<span class$="revisionEdit [[_computeEditingClass(_isEditing)]]">
|
|
<span class="revisionWithEditing">
|
|
[[item.revision]]
|
|
</span>
|
|
<gr-button
|
|
link=""
|
|
on-click="_handleEditRevision"
|
|
class="editBtn"
|
|
>
|
|
edit
|
|
</gr-button>
|
|
<iron-input bind-value="{{_revisedRef}}" class="editItem">
|
|
<input is="iron-input" bind-value="{{_revisedRef}}" />
|
|
</iron-input>
|
|
<gr-button
|
|
link=""
|
|
on-click="_handleCancelRevision"
|
|
class="cancelBtn editItem"
|
|
>
|
|
Cancel
|
|
</gr-button>
|
|
<gr-button
|
|
link=""
|
|
on-click="_handleSaveRevision"
|
|
class="saveBtn editItem"
|
|
disabled="[[!_revisedRef]]"
|
|
>
|
|
Save
|
|
</gr-button>
|
|
</span>
|
|
</td>
|
|
<td class$="message [[_hideIfBranch(detailType)]]">
|
|
[[_computeMessage(item.message)]]
|
|
</td>
|
|
<td class$="tagger [[_hideIfBranch(detailType)]]">
|
|
<div class$="tagger [[_computeHideTagger(item.tagger)]]">
|
|
<gr-account-link account="[[item.tagger]]"> </gr-account-link>
|
|
(<gr-date-formatter
|
|
has-tooltip=""
|
|
date-str="[[item.tagger.date]]"
|
|
>
|
|
</gr-date-formatter
|
|
>)
|
|
</div>
|
|
</td>
|
|
<td class="repositoryBrowser">
|
|
<template
|
|
is="dom-repeat"
|
|
items="[[_computeWeblink(item)]]"
|
|
as="link"
|
|
>
|
|
<a
|
|
href$="[[link.url]]"
|
|
class="webLink"
|
|
rel="noopener"
|
|
target="_blank"
|
|
>
|
|
([[link.name]])
|
|
</a>
|
|
</template>
|
|
</td>
|
|
<td class="delete">
|
|
<gr-button
|
|
link=""
|
|
class$="deleteButton [[_computeHideDeleteClass(_isOwner, item.can_delete)]]"
|
|
on-click="_handleDeleteItem"
|
|
>
|
|
Delete
|
|
</gr-button>
|
|
</td>
|
|
</tr>
|
|
</template>
|
|
</tbody>
|
|
</table>
|
|
<gr-overlay id="overlay" with-backdrop="">
|
|
<gr-confirm-delete-item-dialog
|
|
class="confirmDialog"
|
|
on-confirm="_handleDeleteItemConfirm"
|
|
on-cancel="_handleConfirmDialogCancel"
|
|
item="[[_refName]]"
|
|
item-type="[[detailType]]"
|
|
></gr-confirm-delete-item-dialog>
|
|
</gr-overlay>
|
|
</gr-list-view>
|
|
<gr-overlay id="createOverlay" with-backdrop="">
|
|
<gr-dialog
|
|
id="createDialog"
|
|
disabled="[[!_hasNewItemName]]"
|
|
confirm-label="Create"
|
|
on-confirm="_handleCreateItem"
|
|
on-cancel="_handleCloseCreate"
|
|
>
|
|
<div class="header" slot="header">
|
|
Create [[_computeItemName(detailType)]]
|
|
</div>
|
|
<div class="main" slot="main">
|
|
<gr-create-pointer-dialog
|
|
id="createNewModal"
|
|
detail-type="[[_computeItemName(detailType)]]"
|
|
has-new-item-name="{{_hasNewItemName}}"
|
|
item-detail="[[detailType]]"
|
|
repo-name="[[_repo]]"
|
|
></gr-create-pointer-dialog>
|
|
</div>
|
|
</gr-dialog>
|
|
</gr-overlay>
|
|
`;
|