package main import ( "fmt" "strings" "verstak/internal/i18n" ) func userRegisterHTML(locale string) string { return fmt.Sprintf(` Verstak Sync — %s

%s

%s %s

`, i18n.T(locale, "server.registerTitle"), i18n.T(locale, "server.register"), i18n.T(locale, "server.username"), i18n.T(locale, "server.email"), i18n.T(locale, "server.password"), i18n.T(locale, "server.registerBtn"), i18n.T(locale, "server.alreadyHaveAccount"), i18n.T(locale, "server.loginBtn"), ) } func userLoginHTML(locale string) string { return fmt.Sprintf(` Verstak Sync — %s

Verstak Sync

`, i18n.T(locale, "server.loginTitle"), i18n.T(locale, "server.usernameOrEmail"), i18n.T(locale, "server.password"), i18n.T(locale, "server.loginBtn"), i18n.T(locale, "server.forgotPassword"), i18n.T(locale, "server.registerBtn"), i18n.T(locale, "server.adminLink"), ) } func adminLoginHTML(locale string) string { return fmt.Sprintf(` %s

Verstak Sync

`, i18n.T(locale, "admin.login"), i18n.T(locale, "admin.username"), i18n.T(locale, "admin.password"), i18n.T(locale, "admin.loginBtn"), ) } func adminUsersHTML(locale string) string { newPassResult := i18n.T(locale, "server.newPasswordResult") newPassParts := strings.SplitN(newPassResult, "%s", 2) newPassPrefix := newPassParts[0] newPassSuffix := strings.ReplaceAll(newPassParts[1], "\n", "\\n") deleteMsg := i18n.T(locale, "admin.deleteUserMessage") deleteMsgParts := strings.SplitN(deleteMsg, "%s", 2) delMsgPrefix := deleteMsgParts[0] delMsgSuffix := deleteMsgParts[1] return fmt.Sprintf(` %[1]s

%[2]s

%[3]s

%[5]s %[6]s %[7]s %[8]s %[9]s %[10]s
`, i18n.T(locale, "admin.users"), i18n.T(locale, "admin.usersHeading"), i18n.T(locale, "server.dashboard"), i18n.T(locale, "admin.filterPlaceholder"), i18n.T(locale, "admin.username"), i18n.T(locale, "admin.email"), i18n.T(locale, "admin.status"), i18n.T(locale, "admin.devices"), i18n.T(locale, "admin.lastSeen"), i18n.T(locale, "admin.actions"), i18n.T(locale, "admin.confirmTitle"), i18n.T(locale, "admin.modalCancel"), i18n.T(locale, "admin.modalConfirm"), i18n.T(locale, "admin.editUser"), i18n.T(locale, "admin.username"), i18n.T(locale, "admin.email"), i18n.T(locale, "admin.modalCancel"), i18n.T(locale, "admin.editBtn"), i18n.T(locale, "admin.resultTitle"), i18n.T(locale, "common.ok"), i18n.T(locale, "admin.confirmed"), i18n.T(locale, "admin.unconfirmed"), i18n.T(locale, "admin.blocked"), i18n.T(locale, "admin.unblock"), i18n.T(locale, "admin.block"), i18n.T(locale, "admin.resetPassword"), i18n.T(locale, "admin.noUsers"), i18n.T(locale, "server.newPassword"), newPassPrefix, newPassSuffix, i18n.T(locale, "admin.resetPasswordConfirm"), i18n.T(locale, "admin.resetPasswordMessage"), i18n.T(locale, "admin.resetBtn"), i18n.T(locale, "admin.deleteUser"), delMsgPrefix, delMsgSuffix, i18n.T(locale, "admin.deleteBtn"), i18n.T(locale, "admin.unblockUserTitle"), i18n.T(locale, "admin.blockUserTitle"), i18n.T(locale, "admin.unblockUserMessage"), i18n.T(locale, "admin.blockUserMessage"), ) } func confirmedHTML(locale string) string { return fmt.Sprintf(` Verstak Sync — %s

%s

%s

%s
`, i18n.T(locale, "server.emailConfirmed"), i18n.T(locale, "server.emailConfirmed"), i18n.T(locale, "server.emailConfirmedMessage"), i18n.T(locale, "server.loginBtn"), ) } func registrationOKHTML(locale string) string { return fmt.Sprintf(` Verstak Sync — %s

%s

%s

%s

%s
`, i18n.T(locale, "server.registerTitle"), i18n.T(locale, "server.registrationSuccess"), i18n.T(locale, "server.registrationEmailSent"), i18n.T(locale, "server.registrationCheckEmail"), i18n.T(locale, "server.loginBtn"), ) } func registrationAutoHTML(locale string) string { return fmt.Sprintf(` Verstak Sync — %s

%s

%s

%s
`, i18n.T(locale, "server.registerTitle"), i18n.T(locale, "server.registrationSuccess"), i18n.T(locale, "server.registrationAutoMessage"), i18n.T(locale, "server.loginBtn"), ) } func forgotPasswordHTML(locale string) string { return fmt.Sprintf(` %s

%s

%s

`, i18n.T(locale, "server.resetPasswordTitle"), i18n.T(locale, "server.resetPassword"), i18n.T(locale, "server.resetInstruction"), i18n.T(locale, "server.email"), i18n.T(locale, "server.sendLink"), i18n.T(locale, "server.backToLogin"), ) } func forgotSentHTML(locale string) string { return fmt.Sprintf(` %s

%s

%s

%s
`, i18n.T(locale, "server.emailSentTitle"), i18n.T(locale, "server.emailSent"), i18n.T(locale, "server.emailSentMessage"), i18n.T(locale, "server.goHome"), ) } func resetPasswordHTML(locale string) string { return fmt.Sprintf(` %s

%s

`, i18n.T(locale, "server.newPasswordTitle"), i18n.T(locale, "server.newPassword"), i18n.T(locale, "server.password"), i18n.T(locale, "server.passwordConfirm"), i18n.T(locale, "server.save"), ) } func resetDoneHTML(locale string) string { return fmt.Sprintf(` Verstak Sync — %s

%s

%s

%s
`, i18n.T(locale, "server.passwordChanged"), i18n.T(locale, "server.passwordChanged"), i18n.T(locale, "server.passwordChangedMessage"), i18n.T(locale, "server.loginBtn"), ) } func adminDashboardHTML(locale string, deviceCount, opsCount int, smtpHost, smtpPort, smtpUser, smtpFrom, smtpSecurity, srvURL string) string { return fmt.Sprintf(` %[1]s

Verstak Sync Server

%[2]s %[40]d
%[3]s %[41]d

%[4]s

`, i18n.T(locale, "admin.dashboard"), i18n.T(locale, "admin.deviceCount"), i18n.T(locale, "admin.opsCount"), i18n.T(locale, "admin.devices"), i18n.T(locale, "admin.noDevices"), i18n.T(locale, "admin.device"), i18n.T(locale, "admin.user"), i18n.T(locale, "admin.version"), i18n.T(locale, "admin.status"), i18n.T(locale, "admin.lastSeen"), i18n.T(locale, "admin.active"), i18n.T(locale, "admin.revoked"), i18n.T(locale, "admin.revoke"), i18n.T(locale, "common.loading"), i18n.T(locale, "admin.smtp"), i18n.T(locale, "admin.users"), i18n.T(locale, "admin.healthCheck"), i18n.T(locale, "admin.smtpServer"), i18n.T(locale, "admin.smtpPort"), i18n.T(locale, "admin.smtpType"), i18n.T(locale, "admin.smtpNoEncryption"), i18n.T(locale, "admin.smtpUsername"), i18n.T(locale, "admin.smtpPassword"), i18n.T(locale, "admin.smtpFrom"), i18n.T(locale, "admin.smtpServerURL"), i18n.T(locale, "admin.smtpSave"), i18n.T(locale, "admin.smtpTest"), i18n.T(locale, "admin.smtpTitle"), i18n.T(locale, "admin.smtpTesting"), i18n.T(locale, "admin.smtpPassed"), i18n.T(locale, "admin.revokeConfirm"), smtpHost, smtpPort, sel(smtpSecurity, "starttls"), sel(smtpSecurity, "tls"), sel(smtpSecurity, "none"), smtpUser, smtpFrom, srvURL, deviceCount, opsCount, ) } func userDashboardHTML(locale, username, deviceRows string) string { return fmt.Sprintf(` Verstak Sync — %[1]s

Verstak Sync

%[1]s · %[2]s

%[3]s

%[9]s
%[4]s%[5]s%[6]s%[7]s%[8]s

%[10]s

%[11]s

`, username, i18n.T(locale, "server.logout"), i18n.T(locale, "userDashboard.devices"), i18n.T(locale, "userDashboard.device"), i18n.T(locale, "userDashboard.status"), i18n.T(locale, "userDashboard.connected"), i18n.T(locale, "userDashboard.lastSeen"), i18n.T(locale, "userDashboard.version"), deviceRows, i18n.T(locale, "userDashboard.connectNew"), i18n.T(locale, "userDashboard.connectNewHint"), i18n.T(locale, "userDashboard.revokeConfirm"), i18n.T(locale, "userDashboard.revokePrompt"), ) } func errorPageHTML(locale, title, msg, backURL string) string { return fmt.Sprintf(` Verstak Sync — %s

%s

%s

%s
`, title, title, msg, backURL, i18n.T(locale, "server.back")) }