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