mirror of
https://github.com/Suwayomi/Tachidesk.git
synced 2025-12-10 06:42:07 +01:00
Feature/graphql server settings (#629)
* Add "uiName" to WebUI enum * Add "Custom" WebUI to enum * Rename "WebUI" enum to "WebUIFlavor" * Add "WebUIInterface" enum * Add query for server settings * Add mutation for server settings * Add mutation to reset the server settings * Only update the config in case the value changed In case the value of the config is already the same as the new value of the state flow, it is not necessary to update the config file
This commit is contained in:
@@ -111,6 +111,16 @@ open class ConfigManager {
|
||||
}
|
||||
}
|
||||
|
||||
fun resetUserConfig(): ConfigDocument {
|
||||
val serverConfigFileContent = this::class.java.getResource("/server-reference.conf")?.readText()
|
||||
val serverConfigDoc = ConfigDocumentFactory.parseString(serverConfigFileContent)
|
||||
userConfigFile.writeText(serverConfigDoc.render())
|
||||
|
||||
getUserConfig().entrySet().forEach { internalConfig = internalConfig.withValue(it.key, it.value) }
|
||||
|
||||
return serverConfigDoc
|
||||
}
|
||||
|
||||
/**
|
||||
* Makes sure the "UserConfig" is up-to-date.
|
||||
*
|
||||
@@ -118,7 +128,6 @@ open class ConfigManager {
|
||||
* - removes outdated settings
|
||||
*/
|
||||
fun updateUserConfig() {
|
||||
val serverConfigFileContent = this::class.java.getResource("/server-reference.conf")?.readText()
|
||||
val serverConfig = ConfigFactory.parseResources("server-reference.conf")
|
||||
val userConfig = getUserConfig()
|
||||
|
||||
@@ -131,10 +140,7 @@ open class ConfigManager {
|
||||
|
||||
logger.debug { "user config is out of date, updating... (missingSettings= $hasMissingSettings, outdatedSettings= $hasOutdatedSettings" }
|
||||
|
||||
val serverConfigDoc = ConfigDocumentFactory.parseString(serverConfigFileContent)
|
||||
userConfigFile.writeText(serverConfigDoc.render())
|
||||
|
||||
var newUserConfigDoc: ConfigDocument = serverConfigDoc
|
||||
var newUserConfigDoc: ConfigDocument = resetUserConfig()
|
||||
userConfig.entrySet().filter { serverConfig.hasPath(it.key) }.forEach { newUserConfigDoc = newUserConfigDoc.withValue(it.key, it.value) }
|
||||
|
||||
userConfigFile.writeText(newUserConfigDoc.render())
|
||||
|
||||
Reference in New Issue
Block a user