diff --git a/auth.go b/auth.go index eff79e2..14b4941 100644 --- a/auth.go +++ b/auth.go @@ -97,7 +97,7 @@ func (app *appContext) GetToken(gc *gin.Context) { if status != 200 || err != nil { if status == 401 || status == 400 { app.info.Println("Auth failed: Invalid username and/or password") - respond(401, "Unauthorized", gc) + respond(401, "Invalid username/password", gc) return } app.err.Printf("Auth failed: Couldn't authenticate with Jellyfin: Code %d", status) diff --git a/data/static/admin.js b/data/static/admin.js index 33cd3fc..70e0485 100644 --- a/data/static/admin.js +++ b/data/static/admin.js @@ -527,9 +527,13 @@ document.getElementById('inviteForm').onsubmit = function() { document.getElementById('loginForm').onsubmit = function() { window.token = ""; let details = serializeForm('loginForm'); - let errorArea = document.getElementById('loginErrorArea'); - errorArea.textContent = ''; + // let errorArea = document.getElementById('loginErrorArea'); + // errorArea.textContent = ''; let button = document.getElementById('loginSubmit'); + if (button.classList.contains('btn-danger')) { + button.classList.add('btn-primary'); + button.classList.remove('btn-danger'); + } button.disabled = true; button.innerHTML = '' + @@ -538,14 +542,24 @@ document.getElementById('loginForm').onsubmit = function() { req.responseType = 'json'; req.onreadystatechange = function() { if (this.readyState == 4) { - if (this.status == 401) { + if (this.status != 200) { + let errormsg = req.response["error"]; + if (errormsg == "") { + errormsg = "Unknown error" + } button.disabled = false; - button.textContent = 'Login'; - let wrongPassword = document.createElement('div'); - wrongPassword.classList.add('alert', 'alert-danger'); - wrongPassword.setAttribute('role', 'alert'); - wrongPassword.textContent = "Incorrect username or password."; - errorArea.appendChild(wrongPassword); + button.textContent = errormsg; + if (!button.classList.contains('btn-danger')) { + button.classList.add('btn-danger'); + button.classList.remove('btn-primary'); + } + setTimeout(function () { + if (button.classList.contains('btn-danger')) { + button.classList.add('btn-primary'); + button.classList.remove('btn-danger'); + button.textContent = 'Login'; + } + }, 4000) } else { const data = this.response; window.token = data['token']; diff --git a/data/templates/admin.html b/data/templates/admin.html index cb22f2e..c2d016e 100644 --- a/data/templates/admin.html +++ b/data/templates/admin.html @@ -136,7 +136,6 @@ -