blob: 2bfad1f1b1d5b01c71b664d55a4f67f4647a9343 [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';
export const htmlTemplate = html`
<style include="gr-font-styles">
/* Workaround for empty style block - see https://github.com/Polymer/tools/issues/408 */
</style>
<style include="shared-styles">
/* Workaround for empty style block - see https://github.com/Polymer/tools/issues/408 */
</style>
<style include="gr-subpage-styles">
.info {
margin-bottom: var(--spacing-xl);
}
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>
<div class="main 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$="[[_computeBrowseUrl(weblinks)]]"
><gr-button link disabled="[[!_computeBrowseUrl(weblinks)]]"
>Browse</gr-button
></a
><a href$="[[_computeChangesUrl(repo)]]"
><gr-button link>View Changes</gr-button></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>
<gr-textarea
id="descriptionInput"
class="description"
autocomplete="on"
placeholder="<Insert repo description here>"
rows="4"
text="{{_repoConfig.description}}"
disabled$="[[_readOnly]]"
></gr-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]]"
disabled$="[[_readOnly]]"
></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>
</div>
`;