diff --git a/src/octoprint/static/js/app/main.js b/src/octoprint/static/js/app/main.js index 3112a4b7..08cdde55 100644 --- a/src/octoprint/static/js/app/main.js +++ b/src/octoprint/static/js/app/main.js @@ -302,12 +302,24 @@ $(function() { }; $(element).popover(options); } - } + }; ko.bindingHandlers.allowBindings = { - init: function (elem, valueAccessor) { - return { controlsDescendantBindings: !valueAccessor() }; - } + init: function (elem, valueAccessor) { + return { controlsDescendantBindings: !valueAccessor() }; + } + }; + + ko.bindingHandlers.slimScrolledForeach = { + init: function(element, valueAccessor, allBindings, viewModel, bindingContext) { + return ko.bindingHandlers.foreach.init(element, valueAccessor(), allBindings, viewModel, bindingContext); + }, + update: function(element, valueAccessor, allBindings, viewModel, bindingContext) { + setTimeout(function() { + $(element).slimScroll({scrollBy: 0}); + }, 10); + return ko.bindingHandlers.foreach.update(element, valueAccessor(), allBindings, viewModel, bindingContext); + } }; ko.applyBindings(connectionViewModel, document.getElementById("connection_accordion")); diff --git a/src/octoprint/static/js/app/viewmodels/files.js b/src/octoprint/static/js/app/viewmodels/files.js index 89f5c05f..115ea618 100644 --- a/src/octoprint/static/js/app/viewmodels/files.js +++ b/src/octoprint/static/js/app/viewmodels/files.js @@ -14,6 +14,9 @@ function GcodeFilesViewModel(printerStateViewModel, loginStateViewModel) { self.isSdReady = ko.observable(undefined); self.searchQuery = ko.observable(undefined); + self.searchQuery.subscribe(function() { + self.performSearch(); + }); self.freeSpace = ko.observable(undefined); self.freeSpaceString = ko.computed(function() { diff --git a/src/octoprint/templates/index.jinja2 b/src/octoprint/templates/index.jinja2 index 303cfd09..9d03ef63 100644 --- a/src/octoprint/templates/index.jinja2 +++ b/src/octoprint/templates/index.jinja2 @@ -184,12 +184,9 @@
-
+
Uploaded: