component {
resources {
component(name = SemContasGit) {
text("{t('settings_git.no_git_account_connected_yet')}", class = u-muted)
}
}
scrollable(direction = vertical, class = u-fill-all) {
column(class = form-panel) {
text(
"{t('settings_git.connected_accounts', gitea_count=gitea_count)}",
class = u-label-cap,
)
column(class = kv-list) {
template(
:for_each = gitea_providers,
var = p,
foreach_fallback = SemContasGit,
) {
row(class = kv-list__row) {
column(class = page-head__titles) {
text("@p.name", class = env__key)
text(
"@p.kind · @p.base_url · @p.auth_mode · @p.account",
class = u-muted,
)
}
button(
class = "btn btn--danger",
on_click = git_provider_delete:@p.id,
disabled = @busy_git_provider_delete,
text = "{t('common.remove')}",
)
}
}
}
hr
text("{t('settings_git.connect_git_account')}", class = u-label-cap)
scroll(class = tabs__scroll, direction = horizontal) {
row(class = tabs__main) {
TabButton(
label = "{t('settings_git.gitea')}",
current = @git_provider_kind,
target = gitea,
action = git_provider_kind:gitea,
)
TabButton(
label = "{t('settings_git.github')}",
current = @git_provider_kind,
target = github,
action = git_provider_kind:github,
)
}
}
text(
"@git_provider_message",
if = @git_provider_message,
not_equals = "",
class = u-muted,
)
button(
if = @git_provider_oauth_url,
not_equals = "",
class = "btn btn--primary",
on_click = open:git_provider_oauth_url,
text = "{t('settings_git.open_authorization_in_the_browser')}",
)
form(
name = git_provider,
on_submit = git_provider_connect,
class = "form form--gap-10",
) {
row(class = healthcheck__grid) {
column(class = healthcheck__field) {
text("{t('common.name')}", class = u-label-cap)
input(
placeholder = "{t('settings_git.my_gitea')}",
class = field__input,
form_control = git_provider_name,
:value = git_provider_name,
on_change = field:git_provider_name,
)
text(
"@error_git_provider_name",
if = @error_git_provider_name,
not_equals = "",
class = u-error,
)
}
column(class = healthcheck__field) {
text("{t('settings_git.base_url')}", class = u-label-cap)
input(
placeholder = "{t('settings_git.https_gitea_example_com')}",
class = field__input,
form_control = git_provider_base_url,
:value = git_provider_base_url,
on_change = field:git_provider_base_url,
)
text(
"{t('settings_git.leave_empty_for_github_com_only')}",
if = @git_provider_kind,
equals = github,
class = u-muted,
)
}
}
text("{t('settings_git.method')}", class = u-label-cap)
scroll(class = tabs__scroll, direction = horizontal) {
tabbar(
:value = git_provider_mode,
active = @git_provider_mode,
:items = git_provider_modes,
tab_class = tabs__tab,
tab_active_class = "tabs__tab tabs__tab--active",
padding = "9 16",
size = 14,
active_bold = false,
)
}
if @git_provider_mode != "pat" {
text("{t('settings_git.client_id')}", class = u-label-cap)
input(
placeholder = "",
class = field__input,
form_control = git_provider_client_id,
:value = git_provider_client_id,
on_change = field:git_provider_client_id,
)
text("{t('settings_git.client_secret')}", class = u-label-cap)
input(
placeholder = "",
secure = true,
class = field__input,
form_control = git_provider_client_secret,
:value = git_provider_client_secret,
on_change = field:git_provider_client_secret,
)
text(
"{t('settings_git.redirect_uri_paste_into_the')}",
class = u-label-cap,
)
row(class = kv-list__row) {
text("@git_provider_redirect", class = "kv-list__val kv-list__val--compact")
button(
class = "btn btn--ghost btn--xs",
on_click = copy_ctx:git_provider_redirect,
text = "{t('common.copy')}",
)
}
text(
"{t('settings_git.on_gitea_settings_applications_create_an')}",
if = @git_provider_kind,
not_equals = github,
class = u-muted,
)
text(
"{t('settings_git.on_github_settings_developer_settings_oauth')}",
if = @git_provider_kind,
equals = github,
class = u-muted,
)
}
if @git_provider_mode == "pat" {
text("{t('settings_git.personal_access_token')}", class = u-label-cap)
input(
placeholder = "",
secure = true,
class = field__input,
form_control = git_provider_personal_access_token,
:value = git_provider_personal_access_token,
on_change = field:git_provider_personal_access_token,
)
text(
"{t('settings_git.on_gitea_settings_applications_generate_new')}",
if = @git_provider_kind,
not_equals = github,
class = u-muted,
)
text(
"{t('settings_git.on_github_settings_developer_settings_personal')}",
if = @git_provider_kind,
equals = github,
class = u-muted,
)
text(
"{t('settings_git.github_pat_repository_access')}",
if = @git_provider_kind,
equals = github,
class = u-muted,
)
text(
"{t('settings_git.github_pat_required_permissions')}",
if = @git_provider_kind,
equals = github,
class = u-muted,
)
text(
"{t('settings_git.github_pat_future_permissions')}",
if = @git_provider_kind,
equals = github,
class = u-muted,
)
text(
"{t('settings_git.github_pat_avoid_permissions')}",
if = @git_provider_kind,
equals = github,
class = u-muted,
)
text(
"{t('settings_git.github_pat_classic_alternative')}",
if = @git_provider_kind,
equals = github,
class = u-muted,
)
}
row(class = env__add) {
button(
class = "btn btn--primary",
on_click = git_provider_connect,
disabled = @busy_git_provider_connect,
text = "{t('settings_git.connect_account')}",
)
button(
class = tabs__tab,
on_click = git_provider_refresh,
disabled = @busy_git_provider_refresh,
text = "{t('settings_git.refresh_list')}",
)
}
}
}
}
}