]> git.proxmox.com Git - proxmox-widget-toolkit.git/blobdiff - panel/LogView.js
use eslint and execute as check target
[proxmox-widget-toolkit.git] / panel / LogView.js
index aae7440f586cd88f3d6a24bf17e0a986e8a40d9e..1ce83bc0f30c2301bc701e73b156f587a9ad23e1 100644 (file)
@@ -20,10 +20,10 @@ Ext.define('Proxmox.panel.LogView', {
        xclass: 'Ext.app.ViewController',
 
        updateParams: function() {
-           var me = this;
-           var viewModel = me.getViewModel();
-           var since = viewModel.get('since');
-           var until = viewModel.get('until');
+           let me = this;
+           let viewModel = me.getViewModel();
+           let since = viewModel.get('since');
+           let until = viewModel.get('until');
            if (viewModel.get('hide_timespan')) {
                return;
            }
@@ -39,18 +39,18 @@ Ext.define('Proxmox.panel.LogView', {
        },
 
        scrollPosBottom: function() {
-           var view = this.getView();
-           var pos = view.getScrollY();
-           var maxPos = view.getScrollable().getMaxPosition().y;
+           let view = this.getView();
+           let pos = view.getScrollY();
+           let maxPos = view.getScrollable().getMaxPosition().y;
            return maxPos - pos;
        },
 
        updateView: function(text, first, total) {
-           var me = this;
-           var view = me.getView();
-           var viewModel = me.getViewModel();
-           var content = me.lookup('content');
-           var data = viewModel.get('data');
+           let me = this;
+           let view = me.getView();
+           let viewModel = me.getViewModel();
+           let content = me.lookup('content');
+           let data = viewModel.get('data');
 
            if (first === data.first && total === data.total && text.length === data.textlen) {
                return; // same content, skip setting and scrolling
@@ -58,10 +58,10 @@ Ext.define('Proxmox.panel.LogView', {
            viewModel.set('data', {
                first: first,
                total: total,
-               textlen: text.length
+               textlen: text.length,
            });
 
-           var scrollPos = me.scrollPosBottom();
+           let scrollPos = me.scrollPosBottom();
 
            content.update(text);
 
@@ -72,19 +72,23 @@ Ext.define('Proxmox.panel.LogView', {
        },
 
        doLoad: function() {
-           var me = this;
+           let me = this;
+           if (me.running) {
+               me.requested = true;
+               return;
+           }
            me.running = true;
-           var view = me.getView();
-           var viewModel = me.getViewModel();
+           let view = me.getView();
+           let viewModel = me.getViewModel();
            Proxmox.Utils.API2Request({
                url: me.getView().url,
                params: viewModel.get('params'),
                method: 'GET',
                success: function(response) {
                    Proxmox.Utils.setErrorMask(me, false);
-                   var total = response.result.total;
-                   var lines = new Array();
-                   var first = Infinity;
+                   let total = response.result.total;
+                   let lines = [];
+                   let first = Infinity;
 
                    Ext.Array.each(response.result.data, function(line) {
                        if (first > line.n) {
@@ -96,49 +100,57 @@ Ext.define('Proxmox.panel.LogView', {
                    lines.length = total;
                    me.updateView(lines.join('<br>'), first - 1, total);
                    me.running = false;
+                   if (me.requested) {
+                       me.requested = false;
+                       view.loadTask.delay(200);
+                   }
                },
                failure: function(response) {
                    if (view.failCallback) {
                        view.failCallback(response);
                    } else {
-                       var msg = response.htmlStatus;
+                       let msg = response.htmlStatus;
                        Proxmox.Utils.setErrorMask(me, msg);
                    }
                    me.running = false;
-               }
+                   if (me.requested) {
+                       me.requested = false;
+                       view.loadTask.delay(200);
+                   }
+               },
            });
        },
 
        onScroll: function(x, y) {
-           var me = this;
-           var view = me.getView();
-           var viewModel = me.getViewModel();
+           let me = this;
+           let view = me.getView();
+           let viewModel = me.getViewModel();
 
-           var lineHeight = view.lineHeight;
-           var line = view.getScrollY()/lineHeight;
-           var start = viewModel.get('params.start');
-           var limit = viewModel.get('params.limit');
-           var viewLines = view.getHeight()/lineHeight;
+           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;
 
-           var viewStart = Math.max(parseInt(line - 1 - view.viewBuffer, 10), 0);
-           var viewEnd = parseInt(line + viewLines + 1 + view.viewBuffer, 10);
+           let viewStart = Math.max(parseInt(line - 1 - view.viewBuffer, 10), 0);
+           let viewEnd = parseInt(line + viewLines + 1 + view.viewBuffer, 10);
 
-           if (viewStart < start || viewEnd > (start+limit)) {
+           if (viewStart < start || viewEnd > start+limit) {
                viewModel.set('params.start',
-                   Math.max(parseInt(line - limit/2 + 10, 10), 0));
+                   Math.max(parseInt(line - (limit / 2) + 10, 10), 0));
                view.loadTask.delay(200);
            }
        },
 
        init: function(view) {
-           var me = this;
+           let me = this;
 
            if (!view.url) {
                throw "no url specified";
            }
 
-           var viewModel = this.getViewModel();
-           var since = new Date();
+           let viewModel = this.getViewModel();
+           let since = new Date();
            since.setDate(since.getDate() - 3);
            viewModel.set('until', new Date());
            viewModel.set('since', since);
@@ -156,25 +168,23 @@ Ext.define('Proxmox.panel.LogView', {
                    }
 
                    if (me.scrollPosBottom() <= 1) {
-                       if (!me.running) {
-                           view.loadTask.delay(200);
-                       }
+                       view.loadTask.delay(200);
                    }
                },
-               interval: 1000
+               interval: 1000,
            });
-       }
+       },
     },
 
     onDestroy: function() {
-       var me = this;
+       let me = this;
        me.loadTask.cancel();
        Ext.TaskManager.stop(me.task);
     },
 
     // for user to initiate a load from outside
     requestUpdate: function() {
-       var me = this;
+       let me = this;
        me.loadTask.delay(200);
     },
 
@@ -186,13 +196,13 @@ Ext.define('Proxmox.panel.LogView', {
            data: {
                start: 0,
                total: 0,
-               textlen: 0
+               textlen: 0,
            },
            params: {
                start: 0,
                limit: 500,
-           }
-       }
+           },
+       },
     },
 
     layout: 'auto',
@@ -206,19 +216,19 @@ Ext.define('Proxmox.panel.LogView', {
            // the panel have a 'scroll' event'
            scroll: {
                fn: function(scroller, x, y) {
-                   var controller = this.component.getController();
+                   let controller = this.component.getController();
                    if (controller) { // on destroy, controller can be gone
-                       controller.onScroll(x,y);
+                       controller.onScroll(x, y);
                    }
                },
-               buffer: 200
+               buffer: 200,
            },
-       }
+       },
     },
 
     tbar: {
        bind: {
-           hidden: '{hide_timespan}'
+           hidden: '{hide_timespan}',
        },
        items: [
            '->',
@@ -230,8 +240,8 @@ Ext.define('Proxmox.panel.LogView', {
                format: 'Y-m-d',
                bind: {
                    value: '{since}',
-                   maxValue: '{until}'
-               }
+                   maxValue: '{until}',
+               },
            },
            'Until: ',
            {
@@ -241,14 +251,14 @@ Ext.define('Proxmox.panel.LogView', {
                format: 'Y-m-d',
                bind: {
                    value: '{until}',
-                   minValue: '{since}'
-               }
+                   minValue: '{since}',
+               },
            },
            {
                xtype: 'button',
                text: 'Update',
-               handler: 'updateParams'
-           }
+               handler: 'updateParams',
+           },
        ],
     },
 
@@ -258,8 +268,8 @@ Ext.define('Proxmox.panel.LogView', {
            reference: 'content',
            style: {
                font: 'normal 11px tahoma, arial, verdana, sans-serif',
-               'white-space': 'pre'
+               'white-space': 'pre',
            },
-       }
-    ]
+       },
+    ],
 });