forgejo/web_src/js/features/install.js
Caesar Schinas ee52d43903
[BRANDING] Rebrand default config settings for new installs (#140)
Replaces `Gitea` with `Forgejo` in the default config settings for new installs.

This will not affect existing installs.

Co-authored-by: Caesar Schinas <caesar@caesarschinas.com>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/140
Co-authored-by: Caesar Schinas <caesar@noreply.codeberg.org>
Co-committed-by: Caesar Schinas <caesar@noreply.codeberg.org>
(cherry picked from commit ca1319aa16128516e50dabdc8e8cadc23eb71d2f)
(cherry picked from commit 52a4d238a0b5bbea28b28e55e35f28c51ecbb2de)
(cherry picked from commit f63536538cfe4b010ebb5a6323f4b5e5b6ec7232)

Conflicts:
	web_src/js/features/install.js
(cherry picked from commit 861cc434e129f3fbd932ee36067c560e754dab9a)
(cherry picked from commit 0e6ea60c802d6cfd95dea4aad5df96bb6e4bc7a5)
(cherry picked from commit 0cbc0ec15d9d952b0ecfb68a36bf58cbae0c43dd)
(cherry picked from commit 3cc19b0ae214ae163f23efa52ab0aa53eb7c935b)
(cherry picked from commit 50fcb885fe2f87a27e6ff778cdd0c7cd97bbe9e9)
(cherry picked from commit f6039d4df481fc58b8db3e863158665d24cac847)
(cherry picked from commit 5ae5c6ba2deefe829f768900f5e1bbcbe9389e15)
(cherry picked from commit f0b565e0ed7fe52f0264e92c49736b487b9bff8a)
(cherry picked from commit adbd4d2015e8e2c4789849c84cfa4032acd40b7f)
(cherry picked from commit d26c540ffdbfb7ec83412635576ab39653d1b531)
(cherry picked from commit 6df6781b42ea126d029ba9e85485dbcb9bf6601d)
(cherry picked from commit b6fb56e1c407195bedfe09f91ecb6537024d5189)
(cherry picked from commit bb4f98a0ca7515aa6c44529df0573195f779a643)
(cherry picked from commit 6779229f2732f6791aba3bd1ba51a338a88ca1f3)
(cherry picked from commit d6e878a73973183341b3066595e8835bf2ebf1bf)
(cherry picked from commit b3c612f2ab93193e176d19ec2ed804bc1c035724)
(cherry picked from commit ab09b75301efa6847dbd120feb8a1e5481f1e6c4)
(cherry picked from commit 4bd4279a96e332e0b820df534386d91b4152dd7d)
(cherry picked from commit 1882439f8dedae0d80ddb116d07541643cc79eaf)
2023-07-17 00:25:55 +02:00

122 lines
3.5 KiB
JavaScript

import $ from 'jquery';
import {hideElem, showElem} from '../utils/dom.js';
export function initInstall() {
const $page = $('.page-content.install');
if ($page.length === 0) {
return;
}
if ($page.is('.post-install')) {
initPostInstall();
} else {
initPreInstall();
}
}
function initPreInstall() {
const defaultDbUser = 'forgejo';
const defaultDbName = 'forgejo';
const defaultDbHosts = {
mysql: '127.0.0.1:3306',
postgres: '127.0.0.1:5432',
mssql: '127.0.0.1:1433'
};
const $dbHost = $('#db_host');
const $dbUser = $('#db_user');
const $dbName = $('#db_name');
// Database type change detection.
$('#db_type').on('change', function () {
const dbType = $(this).val();
hideElem($('div[data-db-setting-for]'));
showElem($(`div[data-db-setting-for=${dbType}]`));
if (dbType !== 'sqlite3') {
// for most remote database servers
showElem($(`div[data-db-setting-for=common-host]`));
const lastDbHost = $dbHost.val();
const isDbHostDefault = !lastDbHost || Object.values(defaultDbHosts).includes(lastDbHost);
if (isDbHostDefault) {
$dbHost.val(defaultDbHosts[dbType] ?? '');
}
if (!$dbUser.val() && !$dbName.val()) {
$dbUser.val(defaultDbUser);
$dbName.val(defaultDbName);
}
} // else: for SQLite3, the default path is always prepared by backend code (setting)
}).trigger('change');
const $appUrl = $('#app_url');
const configAppUrl = $appUrl.val();
if (configAppUrl.includes('://localhost')) {
$appUrl.val(window.location.href);
}
const $domain = $('#domain');
const configDomain = $domain.val().trim();
if (configDomain === 'localhost') {
$domain.val(window.location.hostname);
}
// TODO: better handling of exclusive relations.
$('#offline-mode input').on('change', function () {
if ($(this).is(':checked')) {
$('#disable-gravatar').checkbox('check');
$('#federated-avatar-lookup').checkbox('uncheck');
}
});
$('#disable-gravatar input').on('change', function () {
if ($(this).is(':checked')) {
$('#federated-avatar-lookup').checkbox('uncheck');
} else {
$('#offline-mode').checkbox('uncheck');
}
});
$('#federated-avatar-lookup input').on('change', function () {
if ($(this).is(':checked')) {
$('#disable-gravatar').checkbox('uncheck');
$('#offline-mode').checkbox('uncheck');
}
});
$('#enable-openid-signin input').on('change', function () {
if ($(this).is(':checked')) {
if (!$('#disable-registration input').is(':checked')) {
$('#enable-openid-signup').checkbox('check');
}
} else {
$('#enable-openid-signup').checkbox('uncheck');
}
});
$('#disable-registration input').on('change', function () {
if ($(this).is(':checked')) {
$('#enable-captcha').checkbox('uncheck');
$('#enable-openid-signup').checkbox('uncheck');
} else {
$('#enable-openid-signup').checkbox('check');
}
});
$('#enable-captcha input').on('change', function () {
if ($(this).is(':checked')) {
$('#disable-registration').checkbox('uncheck');
}
});
}
function initPostInstall() {
const el = document.getElementById('goto-user-login');
if (!el) return;
const targetUrl = el.getAttribute('href');
let tid = setInterval(async () => {
try {
const resp = await fetch(targetUrl);
if (tid && resp.status === 200) {
clearInterval(tid);
tid = null;
window.location.href = targetUrl;
}
} catch {}
}, 1000);
}