blob: 21971e7ec903c65f1d1863cead3c3ca4fab29a0f [file] [log] [blame]
/**
* @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="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">
[[_stripRefs(item.ref, detailType)]]
</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>
<gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
`;