213 lines
7.7 KiB
HTML
213 lines
7.7 KiB
HTML
<!--
|
|
Copyright (C) 2017 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="../../../behaviors/gr-list-view-behavior/gr-list-view-behavior.html">
|
|
<link rel="import" href="../../../behaviors/gr-url-encoding-behavior.html">
|
|
<link rel="import" href="../../../bower_components/iron-input/iron-input.html">
|
|
<link rel="import" href="../../../bower_components/polymer/polymer.html">
|
|
<link rel="import" href="../../../styles/gr-table-styles.html">
|
|
<link rel="import" href="../../../styles/gr-form-styles.html">
|
|
<link rel="import" href="../../../styles/shared-styles.html">
|
|
<link rel="import" href="../../shared/gr-account-link/gr-account-link.html">
|
|
<link rel="import" href="../../shared/gr-button/gr-button.html">
|
|
<link rel="import" href="../../shared/gr-date-formatter/gr-date-formatter.html">
|
|
<link rel="import" href="../../shared/gr-list-view/gr-list-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">
|
|
<link rel="import" href="../gr-create-pointer-dialog/gr-create-pointer-dialog.html">
|
|
<link rel="import" href="../gr-confirm-delete-item-dialog/gr-confirm-delete-item-dialog.html">
|
|
|
|
<dom-module id="gr-repo-detail-list">
|
|
<template>
|
|
<style include="gr-form-styles"></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: .6em;
|
|
}
|
|
.editBtn {
|
|
margin-left: 1em;
|
|
}
|
|
.canEdit .revisionEdit{
|
|
align-items: center;
|
|
display: flex;
|
|
line-height: 1em;
|
|
}
|
|
.deleteButton:not(.show) {
|
|
display: none;
|
|
}
|
|
.tagger.hide {
|
|
display: none;
|
|
}
|
|
</style>
|
|
<style include="gr-table-styles"></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">
|
|
<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 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-tap="_handleEditRevision"
|
|
class="editBtn">
|
|
edit
|
|
</gr-button>
|
|
<input
|
|
is=iron-input
|
|
bind-value="{{_revisedRef}}"
|
|
class="editItem">
|
|
<gr-button
|
|
link
|
|
on-tap="_handleCancelRevision"
|
|
class="cancelBtn editItem">
|
|
Cancel
|
|
</gr-button>
|
|
<gr-button
|
|
link
|
|
on-tap="_handleSaveRevision"
|
|
class="saveBtn editItem"
|
|
disabled="[[!_revisedRef]]">
|
|
Save
|
|
</gr-button>
|
|
</span>
|
|
</td>
|
|
<td class$="message [[_hideIfBranch(detailType)]]">
|
|
[[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-tap="_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-confirm-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-confirm-dialog>
|
|
</gr-overlay>
|
|
<gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
|
|
</template>
|
|
<script src="gr-repo-detail-list.js"></script>
|
|
</dom-module>
|