2022-01-29 00:00:11 +03:00
import $ from 'jquery' ;
2023-02-19 07:06:14 +03:00
import { hideElem , showElem } from '../utils/dom.js' ;
2022-01-29 00:00:11 +03:00
2021-10-16 20:28:04 +03:00
export function initInstall ( ) {
2021-12-07 08:44:08 +03:00
if ( $ ( '.page-content.install' ) . length === 0 ) {
2021-10-16 20:28:04 +03:00
return ;
}
2021-12-07 08:44:08 +03:00
const defaultDbUser = 'gitea' ;
const defaultDbName = 'gitea' ;
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' ) ;
2021-10-16 20:28:04 +03:00
// Database type change detection.
$ ( '#db_type' ) . on ( 'change' , function ( ) {
const dbType = $ ( this ) . val ( ) ;
2023-02-19 07:06:14 +03:00
hideElem ( $ ( 'div[data-db-setting-for]' ) ) ;
showElem ( $ ( ` div[data-db-setting-for= ${ dbType } ] ` ) ) ;
2021-12-07 08:44:08 +03:00
if ( dbType !== 'sqlite3' ) {
// for most remote database servers
2023-02-19 07:06:14 +03:00
showElem ( $ ( ` div[data-db-setting-for=common-host] ` ) ) ;
2021-12-07 08:44:08 +03:00
const lastDbHost = $dbHost . val ( ) ;
const isDbHostDefault = ! lastDbHost || Object . values ( defaultDbHosts ) . includes ( lastDbHost ) ;
if ( isDbHostDefault ) {
$dbHost . val ( defaultDbHosts [ dbType ] ? ? '' ) ;
2021-10-16 20:28:04 +03:00
}
2021-12-07 08:44:08 +03:00
if ( ! $dbUser . val ( ) && ! $dbName . val ( ) ) {
$dbUser . val ( defaultDbUser ) ;
$dbName . val ( defaultDbName ) ;
2021-10-16 20:28:04 +03:00
}
2021-12-07 08:44:08 +03:00
} // else: for SQLite3, the default path is always prepared by backend code (setting)
} ) . trigger ( 'change' ) ;
2021-10-16 20:28:04 +03:00
// 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' ) ;
}
} ) ;
}