diff --git a/src/octoprint/server/util/flask.py b/src/octoprint/server/util/flask.py index 36a1fd5e..56590bf8 100644 --- a/src/octoprint/server/util/flask.py +++ b/src/octoprint/server/util/flask.py @@ -1297,6 +1297,7 @@ def collect_core_assets(enable_gcodeviewer=True, preferred_stylesheet="css"): 'js/app/bindings/slimscrolledforeach.js', 'js/app/bindings/toggle.js', 'js/app/bindings/togglecontent.js', + 'js/app/bindings/valuewithinit.js', 'js/app/viewmodels/appearance.js', 'js/app/viewmodels/connection.js', 'js/app/viewmodels/control.js', diff --git a/src/octoprint/static/js/app/bindings/valuewithinit.js b/src/octoprint/static/js/app/bindings/valuewithinit.js new file mode 100644 index 00000000..dce55826 --- /dev/null +++ b/src/octoprint/static/js/app/bindings/valuewithinit.js @@ -0,0 +1,11 @@ +ko.bindingHandlers.valueWithInit = { + init: function(element, valueAccessor, allBindingsAccessor, context) { + var observable = valueAccessor(); + var value = element.value; + + observable(value); + + ko.bindingHandlers.value.init(element, valueAccessor, allBindingsAccessor, context); + }, + update: ko.bindingHandlers.value.update +}; \ No newline at end of file diff --git a/src/octoprint/static/js/app/viewmodels/loginstate.js b/src/octoprint/static/js/app/viewmodels/loginstate.js index 7a72a0cd..5b12fa77 100644 --- a/src/octoprint/static/js/app/viewmodels/loginstate.js +++ b/src/octoprint/static/js/app/viewmodels/loginstate.js @@ -76,6 +76,10 @@ $(function() { self.loginUser(""); self.loginPass(""); self.loginRemember(false); + + if (history && history.replaceState) { + history.replaceState({success: true}, document.title, window.location.pathname); + } }) .fail(function() { new PNotify({title: gettext("Login failed"), text: gettext("User unknown or wrong password"), type: "error"}); @@ -95,17 +99,18 @@ $(function() { }); }; - self.onLoginUserKeyup = function(data, event) { - if (event.keyCode == 13) { - self.elementPasswordInput.focus(); + self.prepareLogin = function(data, event) { + if(event && event.preventDefault) { + event.preventDefault(); } + self.login(); }; - self.onLoginPassKeyup = function(data, event) { - if (event.keyCode == 13) { - self.login(); + self.onKeyUp = function(data, event) { + if (event && event.keyCode == 13) { + $('#loginForm').submit(); } - }; + } self.onAllBound = function(allViewModels) { self.allViewModels = allViewModels; diff --git a/src/octoprint/templates/navbar/login.jinja2 b/src/octoprint/templates/navbar/login.jinja2 index f712f82d..a071cf9c 100644 --- a/src/octoprint/templates/navbar/login.jinja2 +++ b/src/octoprint/templates/navbar/login.jinja2 @@ -3,14 +3,16 @@