]> git.proxmox.com Git - proxmox-widget-toolkit.git/commitdiff
log view: code cleanup and refactoring
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 24 Nov 2021 10:42:07 +0000 (11:42 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 24 Nov 2021 10:42:09 +0000 (11:42 +0100)
save some lines while trying to keep or even improve readability a
bit

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
src/panel/LogView.js

index 0ce48f53564b09d0758016c7ef6398c319e7496c..eb7a17c253f72536422c09b0d93402a0391fca94 100644 (file)
@@ -131,38 +131,33 @@ Ext.define('Proxmox.panel.LogView', {
 
        updateStart: function(scrolledToBottom, targetLine) {
            let me = this;
-           let view = me.getView();
-           let viewModel = me.getViewModel();
+           let view = me.getView(), viewModel = me.getViewModel();
 
            let limit = viewModel.get('params.limit');
+           let total = viewModel.get('data.total');
 
-           if (scrolledToBottom) {
-               let total = viewModel.get('data.total');
-               viewModel.set('params.start',
-                   Math.max(parseInt(total - limit, 10), 0));
-           } else {
-               viewModel.set('params.start',
-                   Math.max(parseInt(targetLine - (limit / 2) + 10, 10), 0));
-           }
+           let newStart = scrolledToBottom
+               ? Math.trunc(total - limit, 10)
+               : Math.trunc(targetLine - (limit / 2) + 10);
+
+           viewModel.set('params.start', Math.max(newStart, 0));
 
            view.loadTask.delay(200);
        },
 
        onScroll: function(x, y) {
            let me = this;
-           let view = me.getView();
-           let viewModel = me.getViewModel();
+           let view = me.getView(), viewModel = me.getViewModel();
 
-           let lineHeight = view.lineHeight;
-           let line = view.getScrollY()/lineHeight;
-           let start = viewModel.get('params.start');
-           let limit = viewModel.get('params.limit');
-           let viewLines = view.getHeight()/lineHeight;
+           let line = view.getScrollY() / view.lineHeight;
+           let viewLines = view.getHeight() / view.lineHeight;
 
-           let viewStart = Math.max(parseInt(line - 1 - view.viewBuffer, 10), 0);
-           let viewEnd = parseInt(line + viewLines + 1 + view.viewBuffer, 10);
+           let viewStart = Math.max(Math.trunc(line - 1 - view.viewBuffer), 0);
+           let viewEnd = Math.trunc(line + viewLines + 1 + view.viewBuffer);
 
-           if (viewStart < start || viewEnd > start+limit) {
+           let { start, limit } = viewModel.get('params');
+
+           if (viewStart < start || viewEnd > start + limit) {
                me.updateStart(false, line);
            }
        },
@@ -181,17 +176,16 @@ Ext.define('Proxmox.panel.LogView', {
            viewModel.set('since', since);
            viewModel.set('params.limit', view.pageSize);
            viewModel.set('hide_timespan', !view.log_select_timespan);
-           me.lookup('content').setStyle('line-height', view.lineHeight + 'px');
+           me.lookup('content').setStyle('line-height', `${view.lineHeight}px`);
 
            view.loadTask = new Ext.util.DelayedTask(me.doLoad, me);
 
            me.updateParams();
            view.task = Ext.TaskManager.start({
-               run: function() {
+               run: () => {
                    if (!view.isVisible() || !view.scrollToEnd) {
                        return;
                    }
-
                    if (me.scrollPosBottom() <= 5) {
                        view.loadTask.delay(200);
                    }
@@ -236,9 +230,8 @@ Ext.define('Proxmox.panel.LogView', {
        x: 'auto',
        y: 'auto',
        listeners: {
-           // we have to have this here, since we cannot listen to events
-           // of the scroller in the viewcontroller (extjs bug?), nor does
-           // the panel have a 'scroll' event'
+           // we have to have this here, since we cannot listen to events of the scroller in
+           // the viewcontroller (extjs bug?), nor does the panel have a 'scroll' event'
            scroll: {
                fn: function(scroller, x, y) {
                    let controller = this.component.getController();