Compare commits

...

7 Commits

Author SHA1 Message Date
petru 0e5e7b03ab Modified - [install] [repository-release] [ui] Added release attachment limits to the installer under "Server and Third-Party Service Settings".
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
- 1 - I updated `services/forms/user_form.go`, `routers/install/install.go`, `templates/install.tmpl`, and the EN/RO locale files so the installer now exposes `[repository.release] MAX_FILES` and `FILE_MAX_SIZE`, preloads them from the current settings or imported `app.ini`, and persists them back into the generated configuration with inline help text.
2026-05-22 22:49:34 +03:00
petru a3b699bc70 Fixed - [install] [app-ini-import] [mailer] Corrected installer app.ini import so imported mailer sender details and Site Title branding fully replace the current form state.
- 1 - I updated `routers/install/install.go`, `routers/install/routes_test.go`, and `templates/install.tmpl` so importing `app.ini` now replaces stale split mailer sender fields with the imported `FROM = site_name <email@example.com>` value and immediately refreshes the derived `Install %s` button label from the imported `APP_NAME`.
2026-05-22 21:17:07 +03:00
petru c498ee9b9c Modified - [badge] [label] [repo] [repo-explore] [visibility-badge] [admin] Refined the repo visibility badges (Public / Privat) and the small by ... labels, and kept long admin badge slugs on a single line.
- 1 - I updated `web_src/css/modules/label.css` so the repo visibility badges and the small attribution labels such as `by ...` now use a pill-style border radius with tighter horizontal padding, giving both label families a more compact visual treatment.
- 2 - I updated `templates/admin/badge/list.tmpl` to keep badge slug cells on a single line with `tw-whitespace-nowrap`, preventing awkward wrapping in the admin badge list.
2026-05-22 19:45:51 +03:00
petru a36bddc1c2 Modified - [commit] [segment] [ui] Tightened the attached segment spacing in the repository commit view.
- 1 - I updated `web_src/css/modules/segment.css` so bottom-attached segments no longer keep the extra `1rem` bottom margin, helping the stacked commit-panel blocks on `/user/repo/commit/xxxx` sit more tightly together.
2026-05-22 04:06:21 +03:00
petru c57da3e249 Modified - [locale] [ro] Adjusted the Romanian repo visibility badge labels to use concise badge-friendly wording.
- 1 - I updated `options/locale/locale_ro-RO.json` so `settings.visibility.public`, `settings.visibility.limited`, and `settings.visibility.private` now read `Public`, `Limitat`, and `Privat`, matching the compact badge style used in the repository UI.
2026-05-22 03:50:16 +03:00
petru d931966231 Modified - [commit] [diff] [ui] Refined the sticky commit and diff panel spacing on the repository commit view.
- 1 - I updated `web_src/css/repo.css` so the sticky `.repository .diff-detail-box` gets extra top padding, the sticky `#diff-file-tree` sits 1px lower under the persistent navbar offset, and the sticky second-row `.diff-file-header` is pushed further down to visually clear the adjusted top panel on `/user/repo/commit/xxxx`.
2026-05-22 03:46:22 +03:00
petru 64f260a06d Modified - [migrate] [lfs] [ui] Refined the advanced LFS migration option layout on the repository migrate form.
- 1 - I updated `templates/repo/migrate/options.tmpl` and `web_src/css/modules/form.css` so the advanced LFS endpoint block now uses dedicated `lfs` layout hooks, giving the help text and inline input row a cleaner alignment on `/repo/migrate?service_type=2&org=&mirror=`.
2026-05-22 03:15:27 +03:00
14 changed files with 165 additions and 28 deletions
+22
View File
@@ -838,3 +838,25 @@ History search guidance:
169 - [2026-05-21 01:18:41] - v1.27.0-dev-180-gb1db0705d8 - Type: Modified - [locale] [i18n] Synchronized the locale files with the current installer and sticky-layout strings.
- 1 - I updated all translated `options/locale/locale_*.json` files so `install.install_btn_confirm` now accepts a `%s` site-name placeholder instead of hardcoding `Gitea`, matching the current installer button behavior.
- 2 - I added the missing `footer.show`, `footer.hide`, `install.smtp_from_name_placeholder`, and `install.smtp_from_address_placeholder` keys across the locale files, using the current English fallback text where no localized variant was available in this change.
170 - [2026-05-21 04:51:22] - v1.27.0-dev-181-g7f0a7db812 - Type: Modified - [migrate] [lfs] [ui] Refined the advanced LFS migration option layout on the repository migrate form.
- 1 - I updated `templates/repo/migrate/options.tmpl` and `web_src/css/modules/form.css` so the advanced LFS endpoint block now uses dedicated `lfs` layout hooks, giving the help text and inline input row a cleaner alignment on `/repo/migrate?service_type=2&org=&mirror=`.
171 - [2026-05-22 03:45:09] - v1.27.0-dev-182-g64f260a06d - Type: Modified - [commit] [diff] [ui] Refined the sticky commit and diff panel spacing on the repository commit view.
- 1 - I updated `web_src/css/repo.css` so the sticky `.repository .diff-detail-box` gets extra top padding, the sticky `#diff-file-tree` sits 1px lower under the persistent navbar offset, and the sticky second-row `.diff-file-header` is pushed further down to visually clear the adjusted top panel on `/user/repo/commit/xxxx`.
172 - [2026-05-22 03:49:04] - v1.27.0-dev-183-gd931966231 - Type: Modified - [locale] [ro] Adjusted the Romanian repo visibility badge labels to use concise badge-friendly wording.
- 1 - I updated `options/locale/locale_ro-RO.json` so `settings.visibility.public`, `settings.visibility.limited`, and `settings.visibility.private` now read `Public`, `Limitat`, and `Privat`, matching the compact badge style used in the repository UI.
173 - [2026-05-22 04:05:32] - v1.27.0-dev-184-gc57da3e249 - Type: Modified - [commit] [segment] [ui] Tightened the attached segment spacing in the repository commit view.
- 1 - I updated `web_src/css/modules/segment.css` so bottom-attached segments no longer keep the extra `1rem` bottom margin, helping the stacked commit-panel blocks on `/user/repo/commit/xxxx` sit more tightly together.
174 - [2026-05-22 19:36:16] - v1.27.0-dev-185-ga36bddc1c2 - Type: Modified - [badge] [label] [repo] [repo-explore] [visibility-badge] [admin] Refined the repo visibility badges (`Public` / `Privat`) and the small `by ...` labels, and kept long admin badge slugs on a single line.
- 1 - I updated `web_src/css/modules/label.css` so the repo visibility badges and the small attribution labels such as `by ...` now use a pill-style border radius with tighter horizontal padding, giving both label families a more compact visual treatment.
- 2 - I updated `templates/admin/badge/list.tmpl` to keep badge slug cells on a single line with `tw-whitespace-nowrap`, preventing awkward wrapping in the admin badge list.
175 - [2026-05-22 20:53:37] - v1.27.0-dev-186-gc498ee9b9c - Type: Fixed - [install] [app-ini-import] [mailer] Corrected installer `app.ini` import so imported mailer sender details and `Site Title` branding fully replace the current form state.
- 1 - I updated `routers/install/install.go`, `routers/install/routes_test.go`, and `templates/install.tmpl` so importing `app.ini` now replaces stale split mailer sender fields with the imported `FROM = site_name <email@example.com>` value and immediately refreshes the derived `Install %s` button label from the imported `APP_NAME`.
176 - [2026-05-22 21:27:38] - v1.27.0-dev-187-ga3b699bc70 - Type: Modified - [install] [repository-release] [ui] Added release attachment limits to the installer under "Server and Third-Party Service Settings".
- 1 - I updated `services/forms/user_form.go`, `routers/install/install.go`, `templates/install.tmpl`, and the EN/RO locale files so the installer now exposes `[repository.release] MAX_FILES` and `FILE_MAX_SIZE`, preloads them from the current settings or imported `app.ini`, and persists them back into the generated configuration with inline help text.
+6 -1
View File
@@ -358,6 +358,11 @@
"install.register_manual_confirm_helper": "New accounts stay pending until an administrator reviews and approves the request.",
"install.mail_notify": "Enable Email Notifications",
"install.mail_notify_helper": "Controls routine notification emails such as watches, mentions, and administrative notices. Activation and invitation emails still use the SMTP configuration above.",
"install.repository_options_title": "Repository Options",
"install.release_max_files": "Release Attachment Limit",
"install.release_max_files_helper": "Maximum number of attachment files allowed on each release.",
"install.release_file_max_size": "Release Attachment File Size (KiB)",
"install.release_file_max_size_helper": "Maximum size in KiB for each individual release attachment file. 2048 KiB equals 2 MiB.",
"install.server_service_title": "Server and Third-Party Service Settings",
"install.disable_registration": "Disable Self-Registration",
"install.disable_registration_popup": "Disable user self-registration. Only administrators will be able to create new user accounts.",
@@ -1251,7 +1256,7 @@
"repo.migrate_options_lfs_endpoint.label": "LFS Endpoint",
"repo.migrate_options_lfs_endpoint.description": "Migration will attempt to use your Git remote to <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"%s\">determine the LFS server</a>. You can also specify a custom endpoint if the repository LFS data is stored somewhere else.",
"repo.migrate_options_lfs_endpoint.description.local": "A local server path is supported too.",
"repo.migrate_options_lfs_endpoint.placeholder": "If left blank, the endpoint will be derived from the clone URL.",
"repo.migrate_options_lfs_endpoint.placeholder": "Blank = autodetect from clone URL.",
"repo.migrate_items": "Migration Items",
"repo.migrate_items_wiki": "Wiki",
"repo.migrate_items_milestones": "Milestones",
+9 -4
View File
@@ -358,6 +358,11 @@
"install.register_manual_confirm_helper": "Conturile noi rămân în așteptare până când un administrator revizuiește și aprobă cererea.",
"install.mail_notify": "Activează notificările prin email",
"install.mail_notify_helper": "Controlează emailurile de notificare uzuale, precum urmăriri, mențiuni și notificări administrative. Emailurile de activare și invitație folosesc în continuare configurația SMTP de mai sus.",
"install.repository_options_title": "Opțiuni repo",
"install.release_max_files": "Limita atașamentelor la lansare",
"install.release_max_files_helper": "Numărul maxim de fișiere atașate permis pentru fiecare lansare.",
"install.release_file_max_size": "Dimensiunea fișierului atașat la lansare (KiB)",
"install.release_file_max_size_helper": "Dimensiunea maximă în KiB pentru fiecare fișier atașat individual la o lansare. 2048 KiB înseamnă 2 MiB.",
"install.server_service_title": "Setări server și servicii terță parte",
"install.disable_registration": "Dezactivare înregistrarea automată",
"install.disable_registration_popup": "Dezactivează autoînregistrarea utilizatorului. Doar administratorii vor putea crea noi conturi de utilizator.",
@@ -1102,11 +1107,11 @@
"settings.email_notifications.actions.desc": "Notificările pentru fluxul de lucru rulează pe proiectele configurate cu <a target=\"_blank\" href=\"%s\">Gitea Acțiuni</a>.",
"settings.email_notifications.actions.failure_only": "Notifică numai pentru rulările eșuate ale fluxului de lucru",
"settings.visibility": "Vizibilitatea utilizatorului",
"settings.visibility.public": "Publică",
"settings.visibility.public": "Public",
"settings.visibility.public_tooltip": "Vizibil pentru toată lumea",
"settings.visibility.limited": "Limitată",
"settings.visibility.limited": "Limitat",
"settings.visibility.limited_tooltip": "Vizibil numai pentru utilizatorii autentificați",
"settings.visibility.private": "Privată",
"settings.visibility.private": "Privat",
"settings.visibility.private_tooltip": "Vizibil numai pentru membrii organizațiilor la care te=ai alăturat",
"repo.new_repo_helper": "Un proiect conține toate fișierele de proiect, inclusiv istoricul revizuirilor. Găzduiești deja unul în altă parte? <a href=\"%s\">Migrează proiectul.</a>",
"repo.owner": "Proprietar",
@@ -1251,7 +1256,7 @@
"repo.migrate_options_lfs_endpoint.label": "Punct final LFS",
"repo.migrate_options_lfs_endpoint.description": "Migrarea va încerca să utilizeze sursa Git pentru a <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"%s\"> determina serverul LFS </a>. De asemenea, poți specifica un punct final personalizat dacă datele LFS din repozitoriu sunt stocate în altă parte.",
"repo.migrate_options_lfs_endpoint.description.local": "Este acceptată și o cale de server local.",
"repo.migrate_options_lfs_endpoint.placeholder": "Dacă este lăsat necompletat, punctul final va fi derivat din URL-ul clonării.",
"repo.migrate_options_lfs_endpoint.placeholder": "Necompletat = autodetectat din URL.",
"repo.migrate_items": "Elemente de migrare",
"repo.migrate_items_wiki": "Wiki",
"repo.migrate_items_milestones": "Repere",
+23
View File
@@ -365,6 +365,8 @@ func newInstallFormFromSettings() (forms.InstallForm, string) {
form.NoReplyAddress = setting.Service.NoReplyAddress
form.PasswordAlgorithm = hash.ConfigHashAlgorithm(setting.PasswordHashAlgo)
form.AdminManagementPolicy = setting.Admin.AdminManagementPolicy
form.ReleaseMaxFiles = setting.Repository.Release.MaxFiles
form.ReleaseFileMaxSize = setting.Repository.Release.FileMaxSize
normalizeInstallRegistrationOptions(&form)
return form, curDBType
@@ -397,6 +399,14 @@ func importedInt(sec setting.ConfigSection, key string, fallback int) int {
return cfgKey.MustInt(fallback)
}
func importedInt64(sec setting.ConfigSection, key string, fallback int64) int64 {
cfgKey := setting.ConfigSectionKey(sec, key)
if cfgKey == nil {
return fallback
}
return cfgKey.MustInt64(fallback)
}
func importedFirstLang(value string, fallback string) string {
for _, lang := range strings.Split(value, ",") {
lang = strings.TrimSpace(lang)
@@ -420,6 +430,7 @@ func populateInstallFormFromConfig(form *forms.InstallForm, cfg setting.ConfigPr
securitySec := cfg.Section("security")
adminSec := cfg.Section("admin")
i18nSec := cfg.Section("i18n")
repoReleaseSec := cfg.Section("repository.release")
form.AppName = setting.ConfigSectionKeyString(rootSec, "APP_NAME", form.AppName)
form.RunUser = setting.ConfigSectionKeyString(rootSec, "RUN_USER", form.RunUser)
@@ -445,6 +456,14 @@ func populateInstallFormFromConfig(form *forms.InstallForm, cfg setting.ConfigPr
form.AppURL = setting.ConfigSectionKeyString(serverSec, "ROOT_URL", form.AppURL)
form.LogRootPath = setting.ConfigSectionKeyString(logSec, "ROOT_PATH", form.LogRootPath)
form.SMTPAddr = ""
form.SMTPPort = ""
form.SMTPFrom = ""
form.SMTPFromName = ""
form.SMTPFromAddress = ""
form.SMTPUser = ""
form.SMTPPasswd = ""
if setting.ConfigSectionKeyBool(mailerSec, "ENABLED") {
form.SMTPAddr = setting.ConfigSectionKeyString(mailerSec, "SMTP_ADDR", form.SMTPAddr)
form.SMTPPort = setting.ConfigSectionKeyString(mailerSec, "SMTP_PORT", form.SMTPPort)
@@ -474,6 +493,8 @@ func populateInstallFormFromConfig(form *forms.InstallForm, cfg setting.ConfigPr
form.EnableUpdateChecker = setting.ConfigSectionKeyBool(securitySec, "ENABLE_UPDATE_CHECKER", form.EnableUpdateChecker)
form.PasswordAlgorithm = setting.ConfigSectionKeyString(securitySec, "PASSWORD_HASH_ALGO", form.PasswordAlgorithm)
form.AdminManagementPolicy = setting.ConfigSectionKeyString(adminSec, "ADMIN_MANAGEMENT_POLICY", form.AdminManagementPolicy)
form.ReleaseMaxFiles = importedInt64(repoReleaseSec, "MAX_FILES", form.ReleaseMaxFiles)
form.ReleaseFileMaxSize = importedInt64(repoReleaseSec, "FILE_MAX_SIZE", form.ReleaseFileMaxSize)
if form.ImportSensitiveSecrets {
form.ImportedLFSJWTSecret = readImportedSecretValue(serverSec, "LFS_JWT_SECRET_URI", "LFS_JWT_SECRET")
form.ImportedInternalToken = readImportedSecretValue(securitySec, "INTERNAL_TOKEN_URI", "INTERNAL_TOKEN")
@@ -1059,6 +1080,8 @@ func SubmitInstall(ctx *context.Context) {
cfg.Section("database").Key("LOG_SQL").SetValue("false") // LOG_SQL is rarely helpful
cfg.Section("repository").Key("ROOT").SetValue(form.RepoRootPath)
cfg.Section("repository.release").Key("MAX_FILES").SetValue(strconv.FormatInt(form.ReleaseMaxFiles, 10))
cfg.Section("repository.release").Key("FILE_MAX_SIZE").SetValue(strconv.FormatInt(form.ReleaseFileMaxSize, 10))
cfg.Section("server").Key("SSH_DOMAIN").SetValue(form.Domain)
cfg.Section("server").Key("DOMAIN").SetValue(form.Domain)
cfg.Section("server").Key("HTTP_PORT").SetValue(form.HTTPPort)
+30
View File
@@ -134,6 +134,10 @@ PASSWORD_HASH_ALGO = pbkdf2
[admin]
ADMIN_MANAGEMENT_POLICY = super_admin_only
[repository.release]
MAX_FILES = 20
FILE_MAX_SIZE = 2048
[i18n]
LANGS = de-DE,en-US
`)
@@ -183,6 +187,32 @@ LANGS = de-DE,en-US
assert.True(t, form.EnableUpdateChecker)
assert.Equal(t, "pbkdf2", form.PasswordAlgorithm)
assert.Equal(t, "super_admin_only", form.AdminManagementPolicy)
assert.EqualValues(t, 20, form.ReleaseMaxFiles)
assert.EqualValues(t, 2048, form.ReleaseFileMaxSize)
}
func TestPopulateInstallFormFromConfigReplacesSMTPFromSplitFields(t *testing.T) {
cfg, err := setting.NewConfigProviderFromData(`
APP_NAME = gitSafe: for your code
[mailer]
ENABLED = true
SMTP_ADDR = smtp.example.com
SMTP_PORT = 587
FROM = gitSafe <noreply@example.com>
`)
require.NoError(t, err)
form, curDBType := newInstallFormFromSettings()
form.SMTPFrom = "Legacy <legacy@example.com>"
form.SMTPFromName = "Legacy"
form.SMTPFromAddress = "legacy@example.com"
populateInstallFormFromConfig(&form, cfg, curDBType)
assert.Equal(t, "gitSafe <noreply@example.com>", form.SMTPFrom)
assert.Equal(t, "gitSafe", form.SMTPFromName)
assert.Equal(t, "noreply@example.com", form.SMTPFromAddress)
}
func TestPopulateInstallFormFromConfigWithSensitiveSecrets(t *testing.T) {
+2
View File
@@ -71,6 +71,8 @@ type InstallForm struct {
PasswordAlgorithm string
AdminManagementPolicy string `binding:"In(,super_admin_only,grantor_only,grantor_inheritance)" locale:"install.admin_management_policy"`
ReleaseMaxFiles int64
ReleaseFileMaxSize int64
AdminName string `binding:"OmitEmpty;Username;MaxSize(30)" locale:"install.admin_name"`
AdminPasswd string `binding:"OmitEmpty;MaxSize(255)" locale:"install.admin_password"`
+1 -1
View File
@@ -46,7 +46,7 @@
{{range .Badges}}
<tr>
<td>{{.ID}}</td>
<td>
<td class="tw-whitespace-nowrap">
<a href="{{$.Link}}/slug/{{.Slug | PathEscape}}">{{.Slug}}</a>
</td>
<td class="gt-ellipsis tw-max-w-48">{{.Description}}</td>
+37 -16
View File
@@ -421,6 +421,23 @@
</div>
</details>
<!-- Repository options -->
<details class="optional field">
<summary class="right-content tw-py-2">
{{ctx.Locale.Tr "install.repository_options_title"}}
</summary>
<div class="inline field">
<label for="release_max_files">{{ctx.Locale.Tr "install.release_max_files"}}</label>
<input id="release_max_files" name="release_max_files" type="number" min="1" step="1" value="{{.release_max_files}}">
<span class="help">{{ctx.Locale.Tr "install.release_max_files_helper"}}</span>
</div>
<div class="inline field">
<label for="release_file_max_size">{{ctx.Locale.Tr "install.release_file_max_size"}}</label>
<input id="release_file_max_size" name="release_file_max_size" type="number" min="1" step="1" value="{{.release_file_max_size}}">
<span class="help">{{ctx.Locale.Tr "install.release_file_max_size_helper"}}</span>
</div>
</details>
<!-- Admin -->
<details class="optional field">
<summary class="right-content tw-py-2{{if .Err_Admin}} tw-text-red{{end}}">
@@ -639,25 +656,29 @@
const installConfirmButton = installForm?.querySelector('.js-install-confirm-button');
if (appNameInput instanceof HTMLInputElement && smtpFromNameInput instanceof HTMLInputElement) {
let lastAutoMailerName = smtpFromNameInput.value.trim() || deriveInstallMailerName(appNameInput.value);
if (!smtpFromNameInput.value.trim()) {
smtpFromNameInput.value = lastAutoMailerName;
}
if (installConfirmButton instanceof HTMLButtonElement) {
installConfirmButton.textContent = installConfirmButton.dataset.installLabelTemplate.replace('__SITE_NAME__', lastAutoMailerName);
}
appNameInput.addEventListener('input', () => {
const syncInstallBranding = () => {
const siteName = deriveInstallMailerName(appNameInput.value);
const currentValue = smtpFromNameInput.value.trim();
if (currentValue && currentValue !== lastAutoMailerName) return;
lastAutoMailerName = deriveInstallMailerName(appNameInput.value);
smtpFromNameInput.value = lastAutoMailerName;
if (installConfirmButton instanceof HTMLButtonElement) {
installConfirmButton.textContent = installConfirmButton.dataset.installLabelTemplate.replace('__SITE_NAME__', lastAutoMailerName);
if (!currentValue || currentValue === lastAutoMailerName) {
smtpFromNameInput.value = siteName;
}
});
lastAutoMailerName = siteName;
if (installConfirmButton instanceof HTMLButtonElement) {
installConfirmButton.textContent = installConfirmButton.dataset.installLabelTemplate.replace('__SITE_NAME__', siteName);
}
};
syncInstallBranding();
appNameInput.addEventListener('input', syncInstallBranding);
appNameInput.addEventListener('change', syncInstallBranding);
} else if (appNameInput instanceof HTMLInputElement && installConfirmButton instanceof HTMLButtonElement) {
const siteName = deriveInstallMailerName(appNameInput.value);
installConfirmButton.textContent = installConfirmButton.dataset.installLabelTemplate.replace('__SITE_NAME__', siteName);
const syncInstallButton = () => {
const siteName = deriveInstallMailerName(appNameInput.value);
installConfirmButton.textContent = installConfirmButton.dataset.installLabelTemplate.replace('__SITE_NAME__', siteName);
};
syncInstallButton();
appNameInput.addEventListener('input', syncInstallButton);
appNameInput.addEventListener('change', syncInstallButton);
}
for (const button of document.querySelectorAll('.js-install-test-mail-button')) {
+2 -2
View File
@@ -16,9 +16,9 @@
</div>
<span id="lfs_settings" class="tw-hidden">(<a id="lfs_settings_show" href="#">{{ctx.Locale.Tr "repo.settings.advanced_settings"}}</a>)</span>
</div>
<div id="lfs_endpoint" class="tw-hidden">
<div id="lfs_endpoint" class="lfs tw-hidden">
<span class="help">{{ctx.Locale.Tr "repo.migrate_options_lfs_endpoint.description" "https://github.com/git-lfs/git-lfs/blob/main/docs/api/server-discovery.md#server-discovery"}}{{if .ContextUser.CanImportLocal}} {{ctx.Locale.Tr "repo.migrate_options_lfs_endpoint.description.local"}}{{end}}</span>
<div class="inline field {{if .Err_LFSEndpoint}}error{{end}}">
<div class="inline field lfs {{if .Err_LFSEndpoint}}error{{end}}">
<label>{{ctx.Locale.Tr "repo.migrate_options_lfs_endpoint.label"}}</label>
<input name="lfs_endpoint" value="{{.lfs_endpoint}}" placeholder="{{ctx.Locale.Tr "repo.migrate_options_lfs_endpoint.placeholder"}}">
</div>
+1
View File
@@ -24,6 +24,7 @@
/* other variables */
--border-radius: 4px;
--border-radius-medium: 6px;
--border-radius-max: 10px;
--border-radius-full: 99999px; /* TODO: use calc(infinity * 1px) */
--opacity-disabled: 0.55;
--height-loading: 16rem;
+19
View File
@@ -429,6 +429,11 @@ input:-webkit-autofill:active {
text-wrap: balance;
}
.lfs > .help {
display: block;
margin-left: 265px;
}
.form .help code {
color: var(--color-text-light-1);
}
@@ -456,6 +461,20 @@ input:-webkit-autofill:active {
width: 50%;
}
.inline.field.lfs > label {
text-align: right !important;
width: 348px !important;
margin-right: 10px !important;
}
.inline.field.lfs > input {
width: 37% !important;
}
.inline.field.lfs {
margin-bottom: 16px !important;
}
.ui.form.left-right-form .inline.field .ui.dropdown input.search {
width: 100%;
}
+6
View File
@@ -92,6 +92,8 @@ a.ui.label:hover {
.ui.basic.label {
background: var(--color-button);
border: 1px solid var(--color-light-border);
border-radius: var(--border-radius-max);
padding: 0px 6px;
color: var(--color-text-light);
}
a.ui.basic.label:hover {
@@ -273,13 +275,17 @@ a.ui.ui.ui.basic.grey.label:hover {
.ui.mini.label {
font-size: 0.64285714rem;
border-radius: var(--border-radius-max);
padding: 0px 6px;
}
.ui.tiny.label {
font-size: 0.71428571rem;
}
.ui.small.label {
font-size: 0.78571429rem;
}
.ui.large.label {
font-size: 1rem;
}
+1 -1
View File
@@ -172,7 +172,7 @@
bottom: 0;
margin-top: 0;
top: 0;
margin-bottom: 1rem;
margin-bottom: 0rem;
border-radius: 0 0 0.28571429rem 0.28571429rem;
}
.ui.segment[class*="bottom attached"]:last-child {
+6 -3
View File
@@ -839,7 +839,8 @@ td .commit-summary {
/* top: var(--persistent-navbar-offset, 0px); */
top: calc(var(--persistent-navbar-offset, 0px) + 1px);
z-index: 8;
padding: 7px 5px;
/* padding: 7px 5px; */
padding: 14px 7px 5px;
margin: 0 -5px; /* negative margin so it covers active file shadow */
height: 55px; /* this height should match sticky-2nd-row */
background: var(--color-body);
@@ -1616,7 +1617,8 @@ tbody.commit-list {
line-height: inherit;
position: sticky;
padding-top: 0;
top: calc(47px + var(--persistent-navbar-offset, 0px));
/* top: calc(47px + var(--persistent-navbar-offset, 0px)); */
top: calc(58px + var(--persistent-navbar-offset, 0px));
max-height: calc(100vh - 47px - var(--persistent-navbar-offset, 0px));
height: 100%;
overflow-y: auto;
@@ -1708,7 +1710,8 @@ tbody.commit-list {
.ui.attached.header.diff-file-header.sticky-2nd-row {
position: sticky;
top: calc(44px + var(--persistent-navbar-offset, 0px)); /* match .repository .diff-detail-box */
/* top: calc(44px + var(--persistent-navbar-offset, 0px)); match .repository .diff-detail-box */
top: calc(56px + var(--persistent-navbar-offset, 0px));
z-index: 7;
}