440 lines
17 KiB
TypeScript
440 lines
17 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="shared-styles">
|
|
/* Workaround for empty style block - see https://github.com/Polymer/tools/issues/408 */
|
|
</style>
|
|
<style include="gr-subpage-styles">
|
|
h2.edited:after {
|
|
color: var(--deemphasized-text-color);
|
|
content: ' *';
|
|
}
|
|
.loading,
|
|
.hide {
|
|
display: none;
|
|
}
|
|
#loading.loading {
|
|
display: block;
|
|
}
|
|
#loading:not(.loading) {
|
|
display: none;
|
|
}
|
|
#options .repositorySettings {
|
|
display: none;
|
|
}
|
|
#options .repositorySettings.showConfig {
|
|
display: block;
|
|
}
|
|
</style>
|
|
<style include="gr-form-styles">
|
|
/* Workaround for empty style block - see https://github.com/Polymer/tools/issues/408 */
|
|
</style>
|
|
<main class="gr-form-styles read-only">
|
|
<style include="shared-styles">
|
|
/* Workaround for empty style block - see https://github.com/Polymer/tools/issues/408 */
|
|
</style>
|
|
<div class="info">
|
|
<h1 id="Title" class="heading-1">
|
|
[[repo]]
|
|
</h1>
|
|
<hr />
|
|
<div>
|
|
<a href$="[[_computeChangesUrl(repo)]]">(view changes)</a>
|
|
</div>
|
|
</div>
|
|
<div id="loading" class$="[[_computeLoadingClass(_loading)]]">
|
|
Loading...
|
|
</div>
|
|
<div id="loadedContent" class$="[[_computeLoadingClass(_loading)]]">
|
|
<div id="downloadContent" class$="[[_computeHideClass(_schemes)]]">
|
|
<h2 id="download" class="heading-2">Download</h2>
|
|
<fieldset>
|
|
<gr-download-commands
|
|
id="downloadCommands"
|
|
commands="[[_computeCommands(repo, _schemesObj, _selectedScheme)]]"
|
|
schemes="[[_schemes]]"
|
|
selected-scheme="{{_selectedScheme}}"
|
|
></gr-download-commands>
|
|
</fieldset>
|
|
</div>
|
|
<h2
|
|
id="configurations"
|
|
class$="heading-2 [[_computeHeaderClass(_configChanged)]]"
|
|
>
|
|
Configurations
|
|
</h2>
|
|
<div id="form">
|
|
<fieldset>
|
|
<h3 id="Description" class="heading-3">Description</h3>
|
|
<fieldset>
|
|
<iron-autogrow-textarea
|
|
id="descriptionInput"
|
|
class="description"
|
|
autocomplete="on"
|
|
placeholder="<Insert repo description here>"
|
|
bind-value="{{_repoConfig.description}}"
|
|
disabled$="[[_readOnly]]"
|
|
></iron-autogrow-textarea>
|
|
</fieldset>
|
|
<h3 id="Options" class="heading-3">Repository Options</h3>
|
|
<fieldset id="options">
|
|
<section>
|
|
<span class="title">State</span>
|
|
<span class="value">
|
|
<gr-select id="stateSelect" bind-value="{{_repoConfig.state}}">
|
|
<select disabled$="[[_readOnly]]">
|
|
<template is="dom-repeat" items="[[_states]]">
|
|
<option value="[[item.value]]">[[item.label]]</option>
|
|
</template>
|
|
</select>
|
|
</gr-select>
|
|
</span>
|
|
</section>
|
|
<section>
|
|
<span class="title">Submit type</span>
|
|
<span class="value">
|
|
<gr-select
|
|
id="submitTypeSelect"
|
|
bind-value="{{_repoConfig.submit_type}}"
|
|
>
|
|
<select disabled$="[[_readOnly]]">
|
|
<template
|
|
is="dom-repeat"
|
|
items="[[_formatSubmitTypeSelect(_repoConfig)]]"
|
|
>
|
|
<option value="[[item.value]]">[[item.label]]</option>
|
|
</template>
|
|
</select>
|
|
</gr-select>
|
|
</span>
|
|
</section>
|
|
<section>
|
|
<span class="title">Allow content merges</span>
|
|
<span class="value">
|
|
<gr-select
|
|
id="contentMergeSelect"
|
|
bind-value="{{_repoConfig.use_content_merge.configured_value}}"
|
|
>
|
|
<select disabled$="[[_readOnly]]">
|
|
<template
|
|
is="dom-repeat"
|
|
items="[[_formatBooleanSelect(_repoConfig.use_content_merge)]]"
|
|
>
|
|
<option value="[[item.value]]">[[item.label]]</option>
|
|
</template>
|
|
</select>
|
|
</gr-select>
|
|
</span>
|
|
</section>
|
|
<section>
|
|
<span class="title">
|
|
Create a new change for every commit not in the target branch
|
|
</span>
|
|
<span class="value">
|
|
<gr-select
|
|
id="newChangeSelect"
|
|
bind-value="{{_repoConfig.create_new_change_for_all_not_in_target.configured_value}}"
|
|
>
|
|
<select disabled$="[[_readOnly]]">
|
|
<template
|
|
is="dom-repeat"
|
|
items="[[_formatBooleanSelect(_repoConfig.create_new_change_for_all_not_in_target)]]"
|
|
>
|
|
<option value="[[item.value]]">[[item.label]]</option>
|
|
</template>
|
|
</select>
|
|
</gr-select>
|
|
</span>
|
|
</section>
|
|
<section>
|
|
<span class="title">Require Change-Id in commit message</span>
|
|
<span class="value">
|
|
<gr-select
|
|
id="requireChangeIdSelect"
|
|
bind-value="{{_repoConfig.require_change_id.configured_value}}"
|
|
>
|
|
<select disabled$="[[_readOnly]]">
|
|
<template
|
|
is="dom-repeat"
|
|
items="[[_formatBooleanSelect(_repoConfig.require_change_id)]]"
|
|
>
|
|
<option value="[[item.value]]">[[item.label]]</option>
|
|
</template>
|
|
</select>
|
|
</gr-select>
|
|
</span>
|
|
</section>
|
|
<section
|
|
id="enableSignedPushSettings"
|
|
class$="repositorySettings [[_computeRepositoriesClass(_repoConfig.enable_signed_push)]]"
|
|
>
|
|
<span class="title">Enable signed push</span>
|
|
<span class="value">
|
|
<gr-select
|
|
id="enableSignedPush"
|
|
bind-value="{{_repoConfig.enable_signed_push.configured_value}}"
|
|
>
|
|
<select disabled$="[[_readOnly]]">
|
|
<template
|
|
is="dom-repeat"
|
|
items="[[_formatBooleanSelect(_repoConfig.enable_signed_push)]]"
|
|
>
|
|
<option value="[[item.value]]">[[item.label]]</option>
|
|
</template>
|
|
</select>
|
|
</gr-select>
|
|
</span>
|
|
</section>
|
|
<section
|
|
id="requireSignedPushSettings"
|
|
class$="repositorySettings [[_computeRepositoriesClass(_repoConfig.require_signed_push)]]"
|
|
>
|
|
<span class="title">Require signed push</span>
|
|
<span class="value">
|
|
<gr-select
|
|
id="requireSignedPush"
|
|
bind-value="{{_repoConfig.require_signed_push.configured_value}}"
|
|
>
|
|
<select disabled$="[[_readOnly]]">
|
|
<template
|
|
is="dom-repeat"
|
|
items="[[_formatBooleanSelect(_repoConfig.require_signed_push)]]"
|
|
>
|
|
<option value="[[item.value]]">[[item.label]]</option>
|
|
</template>
|
|
</select>
|
|
</gr-select>
|
|
</span>
|
|
</section>
|
|
<section>
|
|
<span class="title">
|
|
Reject implicit merges when changes are pushed for review</span
|
|
>
|
|
<span class="value">
|
|
<gr-select
|
|
id="rejectImplicitMergesSelect"
|
|
bind-value="{{_repoConfig.reject_implicit_merges.configured_value}}"
|
|
>
|
|
<select disabled$="[[_readOnly]]">
|
|
<template
|
|
is="dom-repeat"
|
|
items="[[_formatBooleanSelect(_repoConfig.reject_implicit_merges)]]"
|
|
>
|
|
<option value="[[item.value]]">[[item.label]]</option>
|
|
</template>
|
|
</select>
|
|
</gr-select>
|
|
</span>
|
|
</section>
|
|
<section>
|
|
<span class="title">
|
|
Enable adding unregistered users as reviewers and CCs on
|
|
changes</span
|
|
>
|
|
<span class="value">
|
|
<gr-select
|
|
id="unRegisteredCcSelect"
|
|
bind-value="{{_repoConfig.enable_reviewer_by_email.configured_value}}"
|
|
>
|
|
<select disabled$="[[_readOnly]]">
|
|
<template
|
|
is="dom-repeat"
|
|
items="[[_formatBooleanSelect(_repoConfig.enable_reviewer_by_email)]]"
|
|
>
|
|
<option value="[[item.value]]">[[item.label]]</option>
|
|
</template>
|
|
</select>
|
|
</gr-select>
|
|
</span>
|
|
</section>
|
|
<section>
|
|
<span class="title"> Set all new changes private by default</span>
|
|
<span class="value">
|
|
<gr-select
|
|
id="setAllnewChangesPrivateByDefaultSelect"
|
|
bind-value="{{_repoConfig.private_by_default.configured_value}}"
|
|
>
|
|
<select disabled$="[[_readOnly]]">
|
|
<template
|
|
is="dom-repeat"
|
|
items="[[_formatBooleanSelect(_repoConfig.private_by_default)]]"
|
|
>
|
|
<option value="[[item.value]]">[[item.label]]</option>
|
|
</template>
|
|
</select>
|
|
</gr-select>
|
|
</span>
|
|
</section>
|
|
<section>
|
|
<span class="title">
|
|
Set new changes to "work in progress" by default</span
|
|
>
|
|
<span class="value">
|
|
<gr-select
|
|
id="setAllNewChangesWorkInProgressByDefaultSelect"
|
|
bind-value="{{_repoConfig.work_in_progress_by_default.configured_value}}"
|
|
>
|
|
<select disabled$="[[_readOnly]]">
|
|
<template
|
|
is="dom-repeat"
|
|
items="[[_formatBooleanSelect(_repoConfig.work_in_progress_by_default)]]"
|
|
>
|
|
<option value="[[item.value]]">[[item.label]]</option>
|
|
</template>
|
|
</select>
|
|
</gr-select>
|
|
</span>
|
|
</section>
|
|
<section>
|
|
<span class="title">Maximum Git object size limit</span>
|
|
<span class="value">
|
|
<iron-input
|
|
id="maxGitObjSizeIronInput"
|
|
bind-value="{{_repoConfig.max_object_size_limit.configured_value}}"
|
|
type="text"
|
|
disabled$="[[_readOnly]]"
|
|
>
|
|
<input
|
|
id="maxGitObjSizeInput"
|
|
bind-value="{{_repoConfig.max_object_size_limit.configured_value}}"
|
|
is="iron-input"
|
|
type="text"
|
|
disabled$="[[_readOnly]]"
|
|
/>
|
|
</iron-input>
|
|
<template
|
|
is="dom-if"
|
|
if="[[_repoConfig.max_object_size_limit.value]]"
|
|
>
|
|
effective: [[_repoConfig.max_object_size_limit.value]] bytes
|
|
</template>
|
|
</span>
|
|
</section>
|
|
<section>
|
|
<span class="title"
|
|
>Match authored date with committer date upon submit</span
|
|
>
|
|
<span class="value">
|
|
<gr-select
|
|
id="matchAuthoredDateWithCommitterDateSelect"
|
|
bind-value="{{_repoConfig.match_author_to_committer_date.configured_value}}"
|
|
>
|
|
<select disabled$="[[_readOnly]]">
|
|
<template
|
|
is="dom-repeat"
|
|
items="[[_formatBooleanSelect(_repoConfig.match_author_to_committer_date)]]"
|
|
>
|
|
<option value="[[item.value]]">[[item.label]]</option>
|
|
</template>
|
|
</select>
|
|
</gr-select>
|
|
</span>
|
|
</section>
|
|
<section>
|
|
<span class="title">Reject empty commit upon submit</span>
|
|
<span class="value">
|
|
<gr-select
|
|
id="rejectEmptyCommitSelect"
|
|
bind-value="{{_repoConfig.reject_empty_commit.configured_value}}"
|
|
>
|
|
<select disabled$="[[_readOnly]]">
|
|
<template
|
|
is="dom-repeat"
|
|
items="[[_formatBooleanSelect(_repoConfig.reject_empty_commit)]]"
|
|
>
|
|
<option value="[[item.value]]">[[item.label]]</option>
|
|
</template>
|
|
</select>
|
|
</gr-select>
|
|
</span>
|
|
</section>
|
|
</fieldset>
|
|
<h3 id="Options" class="heading-3">Contributor Agreements</h3>
|
|
<fieldset id="agreements">
|
|
<section>
|
|
<span class="title">
|
|
Require a valid contributor agreement to upload</span
|
|
>
|
|
<span class="value">
|
|
<gr-select
|
|
id="contributorAgreementSelect"
|
|
bind-value="{{_repoConfig.use_contributor_agreements.configured_value}}"
|
|
>
|
|
<select disabled$="[[_readOnly]]">
|
|
<template
|
|
is="dom-repeat"
|
|
items="[[_formatBooleanSelect(_repoConfig.use_contributor_agreements)]]"
|
|
>
|
|
<option value="[[item.value]]">[[item.label]]</option>
|
|
</template>
|
|
</select>
|
|
</gr-select>
|
|
</span>
|
|
</section>
|
|
<section>
|
|
<span class="title">Require Signed-off-by in commit message</span>
|
|
<span class="value">
|
|
<gr-select
|
|
id="useSignedOffBySelect"
|
|
bind-value="{{_repoConfig.use_signed_off_by.configured_value}}"
|
|
>
|
|
<select disabled$="[[_readOnly]]">
|
|
<template
|
|
is="dom-repeat"
|
|
items="[[_formatBooleanSelect(_repoConfig.use_signed_off_by)]]"
|
|
>
|
|
<option value="[[item.value]]">[[item.label]]</option>
|
|
</template>
|
|
</select>
|
|
</gr-select>
|
|
</span>
|
|
</section>
|
|
</fieldset>
|
|
<div
|
|
class$="pluginConfig [[_computeHideClass(_pluginData)]]"
|
|
on-plugin-config-changed="_handlePluginConfigChanged"
|
|
>
|
|
<h3 class="heading-3">Plugins</h3>
|
|
<template is="dom-repeat" items="[[_pluginData]]" as="data">
|
|
<gr-repo-plugin-config
|
|
plugin-data="[[data]]"
|
|
></gr-repo-plugin-config>
|
|
</template>
|
|
</div>
|
|
<gr-button
|
|
on-click="_handleSaveRepoConfig"
|
|
disabled$="[[_computeButtonDisabled(_readOnly, _configChanged)]]"
|
|
>Save changes</gr-button
|
|
>
|
|
</fieldset>
|
|
<gr-endpoint-decorator name="repo-config">
|
|
<gr-endpoint-param
|
|
name="repoName"
|
|
value="[[repo]]"
|
|
></gr-endpoint-param>
|
|
<gr-endpoint-param
|
|
name="readOnly"
|
|
value="[[_readOnly]]"
|
|
></gr-endpoint-param>
|
|
</gr-endpoint-decorator>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
`;
|