mirror of
https://github.com/hrfee/jfa-go.git
synced 2024-12-22 09:00:10 +00:00
add option to auto redirect to jellyfin (or given link)
if enabled (General>Auto redirect on success), the user will not have to click "continue" on the form or creation success page and will insted be redirected. For #242.
This commit is contained in:
parent
de6bc02ad8
commit
eb85ee4d35
@ -272,6 +272,7 @@
|
|||||||
"requires_restart": true,
|
"requires_restart": true,
|
||||||
"type": "bool",
|
"type": "bool",
|
||||||
"value": false,
|
"value": false,
|
||||||
|
"advanced": true,
|
||||||
"description": "Navigate directly to the above URL instead of needing the user to click \"Continue\"."
|
"description": "Navigate directly to the above URL instead of needing the user to click \"Continue\"."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,9 @@
|
|||||||
{{ else }}
|
{{ else }}
|
||||||
<title>{{ .strings.pageTitle }}</title>
|
<title>{{ .strings.pageTitle }}</title>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
<script>
|
||||||
|
window.redirectToJellyfin = {{ .redirectToJellyfin }};
|
||||||
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body class="max-w-full overflow-x-hidden section">
|
<body class="max-w-full overflow-x-hidden section">
|
||||||
<div id="modal-success" class="modal">
|
<div id="modal-success" class="modal">
|
||||||
|
10
ts/form.ts
10
ts/form.ts
@ -10,7 +10,8 @@ interface formWindow extends Window {
|
|||||||
telegramModal: Modal;
|
telegramModal: Modal;
|
||||||
discordModal: Modal;
|
discordModal: Modal;
|
||||||
matrixModal: Modal;
|
matrixModal: Modal;
|
||||||
confirmationModal: Modal
|
confirmationModal: Modal;
|
||||||
|
redirectToJellyfin: boolean;
|
||||||
code: string;
|
code: string;
|
||||||
messages: { [key: string]: string };
|
messages: { [key: string]: string };
|
||||||
confirmation: boolean;
|
confirmation: boolean;
|
||||||
@ -412,7 +413,12 @@ const create = (event: SubmitEvent) => {
|
|||||||
if (!vals[type]) { valid = false; }
|
if (!vals[type]) { valid = false; }
|
||||||
}
|
}
|
||||||
if (req.status == 200 && valid) {
|
if (req.status == 200 && valid) {
|
||||||
window.successModal.show();
|
if (window.redirectToJellyfin == true) {
|
||||||
|
const url = ((document.getElementById("modal-success") as HTMLDivElement).querySelector("a.submit") as HTMLAnchorElement).href;
|
||||||
|
window.location.href = url;
|
||||||
|
} else {
|
||||||
|
window.successModal.show();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
submitSpan.classList.add("~critical");
|
submitSpan.classList.add("~critical");
|
||||||
submitSpan.classList.remove("~urge");
|
submitSpan.classList.remove("~urge");
|
||||||
|
79
views.go
79
views.go
@ -170,6 +170,7 @@ func (app *appContext) ResetPassword(gc *gin.Context) {
|
|||||||
data["helpMessage"] = app.config.Section("ui").Key("help_message").String()
|
data["helpMessage"] = app.config.Section("ui").Key("help_message").String()
|
||||||
data["successMessage"] = app.config.Section("ui").Key("success_message").String()
|
data["successMessage"] = app.config.Section("ui").Key("success_message").String()
|
||||||
data["jfLink"] = app.config.Section("ui").Key("redirect_url").String()
|
data["jfLink"] = app.config.Section("ui").Key("redirect_url").String()
|
||||||
|
data["redirectToJellyfin"] = app.config.Section("ui").Key("auto_redirect").MustBool(false)
|
||||||
data["validate"] = app.config.Section("password_validation").Key("enabled").MustBool(false)
|
data["validate"] = app.config.Section("password_validation").Key("enabled").MustBool(false)
|
||||||
data["requirements"] = app.validator.getCriteria()
|
data["requirements"] = app.validator.getCriteria()
|
||||||
data["strings"] = app.storage.lang.PasswordReset[lang].Strings
|
data["strings"] = app.storage.lang.PasswordReset[lang].Strings
|
||||||
@ -437,13 +438,18 @@ func (app *appContext) InviteProxy(gc *gin.Context) {
|
|||||||
fail()
|
fail()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
gcHTML(gc, http.StatusOK, "create-success.html", gin.H{
|
jfLink := app.config.Section("ui").Key("redirect_url").String()
|
||||||
"cssClass": app.cssClass,
|
if app.config.Section("ui").Key("auto_redirect").MustBool(false) {
|
||||||
"strings": app.storage.lang.Form[lang].Strings,
|
gc.Redirect(301, jfLink)
|
||||||
"successMessage": app.config.Section("ui").Key("success_message").String(),
|
} else {
|
||||||
"contactMessage": app.config.Section("ui").Key("contact_message").String(),
|
gcHTML(gc, http.StatusOK, "create-success.html", gin.H{
|
||||||
"jfLink": app.config.Section("ui").Key("redirect_url").String(),
|
"cssClass": app.cssClass,
|
||||||
})
|
"strings": app.storage.lang.Form[lang].Strings,
|
||||||
|
"successMessage": app.config.Section("ui").Key("success_message").String(),
|
||||||
|
"contactMessage": app.config.Section("ui").Key("contact_message").String(),
|
||||||
|
"jfLink": jfLink,
|
||||||
|
})
|
||||||
|
}
|
||||||
inv, ok := app.storage.invites[code]
|
inv, ok := app.storage.invites[code]
|
||||||
if ok {
|
if ok {
|
||||||
l := len(inv.Keys)
|
l := len(inv.Keys)
|
||||||
@ -461,35 +467,36 @@ func (app *appContext) InviteProxy(gc *gin.Context) {
|
|||||||
matrix := matrixEnabled && app.config.Section("matrix").Key("show_on_reg").MustBool(true)
|
matrix := matrixEnabled && app.config.Section("matrix").Key("show_on_reg").MustBool(true)
|
||||||
|
|
||||||
data := gin.H{
|
data := gin.H{
|
||||||
"urlBase": app.getURLBase(gc),
|
"urlBase": app.getURLBase(gc),
|
||||||
"cssClass": app.cssClass,
|
"cssClass": app.cssClass,
|
||||||
"cssVersion": cssVersion,
|
"cssVersion": cssVersion,
|
||||||
"contactMessage": app.config.Section("ui").Key("contact_message").String(),
|
"contactMessage": app.config.Section("ui").Key("contact_message").String(),
|
||||||
"helpMessage": app.config.Section("ui").Key("help_message").String(),
|
"helpMessage": app.config.Section("ui").Key("help_message").String(),
|
||||||
"successMessage": app.config.Section("ui").Key("success_message").String(),
|
"successMessage": app.config.Section("ui").Key("success_message").String(),
|
||||||
"jfLink": app.config.Section("ui").Key("redirect_url").String(),
|
"jfLink": app.config.Section("ui").Key("redirect_url").String(),
|
||||||
"validate": app.config.Section("password_validation").Key("enabled").MustBool(false),
|
"redirectToJellyfin": app.config.Section("ui").Key("auto_redirect").MustBool(false),
|
||||||
"requirements": app.validator.getCriteria(),
|
"validate": app.config.Section("password_validation").Key("enabled").MustBool(false),
|
||||||
"email": email,
|
"requirements": app.validator.getCriteria(),
|
||||||
"username": !app.config.Section("email").Key("no_username").MustBool(false),
|
"email": email,
|
||||||
"strings": app.storage.lang.Form[lang].Strings,
|
"username": !app.config.Section("email").Key("no_username").MustBool(false),
|
||||||
"validationStrings": app.storage.lang.Form[lang].validationStringsJSON,
|
"strings": app.storage.lang.Form[lang].Strings,
|
||||||
"notifications": app.storage.lang.Form[lang].notificationsJSON,
|
"validationStrings": app.storage.lang.Form[lang].validationStringsJSON,
|
||||||
"code": code,
|
"notifications": app.storage.lang.Form[lang].notificationsJSON,
|
||||||
"confirmation": app.config.Section("email_confirmation").Key("enabled").MustBool(false),
|
"code": code,
|
||||||
"userExpiry": inv.UserExpiry,
|
"confirmation": app.config.Section("email_confirmation").Key("enabled").MustBool(false),
|
||||||
"userExpiryMonths": inv.UserMonths,
|
"userExpiry": inv.UserExpiry,
|
||||||
"userExpiryDays": inv.UserDays,
|
"userExpiryMonths": inv.UserMonths,
|
||||||
"userExpiryHours": inv.UserHours,
|
"userExpiryDays": inv.UserDays,
|
||||||
"userExpiryMinutes": inv.UserMinutes,
|
"userExpiryHours": inv.UserHours,
|
||||||
"userExpiryMessage": app.storage.lang.Form[lang].Strings.get("yourAccountIsValidUntil"),
|
"userExpiryMinutes": inv.UserMinutes,
|
||||||
"langName": lang,
|
"userExpiryMessage": app.storage.lang.Form[lang].Strings.get("yourAccountIsValidUntil"),
|
||||||
"passwordReset": false,
|
"langName": lang,
|
||||||
"telegramEnabled": telegram,
|
"passwordReset": false,
|
||||||
"discordEnabled": discord,
|
"telegramEnabled": telegram,
|
||||||
"matrixEnabled": matrix,
|
"discordEnabled": discord,
|
||||||
"emailRequired": app.config.Section("email").Key("required").MustBool(false),
|
"matrixEnabled": matrix,
|
||||||
"captcha": app.config.Section("captcha").Key("enabled").MustBool(false),
|
"emailRequired": app.config.Section("email").Key("required").MustBool(false),
|
||||||
|
"captcha": app.config.Section("captcha").Key("enabled").MustBool(false),
|
||||||
}
|
}
|
||||||
if telegram {
|
if telegram {
|
||||||
data["telegramPIN"] = app.telegram.NewAuthToken()
|
data["telegramPIN"] = app.telegram.NewAuthToken()
|
||||||
|
Loading…
Reference in New Issue
Block a user