From: Dietmar Maurer Date: Tue, 14 Feb 2012 07:59:18 +0000 (+0100) Subject: fix LogViewer updates X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=d98d8f35baaef786f11c26ae4d6cd8c5b0a804c1;p=pve-manager-legacy.git fix LogViewer updates Seems ExtJS onShow/onHide wrappers does not work for panels. --- diff --git a/debian/changelog.Debian b/debian/changelog.Debian index ea5a82b1..e1b1fa34 100644 --- a/debian/changelog.Debian +++ b/debian/changelog.Debian @@ -1,3 +1,9 @@ +pve-manager (2.0-24) unstable; urgency=low + + * fix log viewer (correctly refresh display) + + -- Proxmox Support Team Tue, 14 Feb 2012 09:01:07 +0100 + pve-manager (2.0-23) unstable; urgency=low * fix openvz live migration diff --git a/defines.mk b/defines.mk index 2c899ddb..91bb36a7 100644 --- a/defines.mk +++ b/defines.mk @@ -2,7 +2,7 @@ RELEASE=2.0 VERSION=2.0 PACKAGE=pve-manager -PACKAGERELEASE=23 +PACKAGERELEASE=24 BINDIR=${DESTDIR}/usr/bin PERLLIBDIR=${DESTDIR}/usr/share/perl5 diff --git a/www/manager/panel/LogView.js b/www/manager/panel/LogView.js index 8e6d5271..f1d132a5 100644 --- a/www/manager/panel/LogView.js +++ b/www/manager/panel/LogView.js @@ -116,11 +116,13 @@ Ext.define('PVE.panel.LogView', { } var viewEnd = parseInt(((top + me.getHeight())/ me.lineHeight) + 1, 10); var info = me.viewInfo; + if (info && !force) { if (viewStart >= info.start && viewEnd <= info.end) { return; } } + var line = parseInt((top / me.lineHeight) - (me.pageSize / 2) + 10, 10); if (line < 0) { line = 0; @@ -143,21 +145,24 @@ Ext.define('PVE.panel.LogView', { }, 20); }, - onShow: function() { - /*jslint confusion: true */ + initComponent : function() { var me = this; - me.callParent(arguments); - - var target = me.getTargetEl(); - target.dom.scrollTop = me.savedScrollTop; + if (!me.url) { + throw "no url specified"; + } + + me.dataCmp = Ext.create('Ext.Component', { + style: 'font:normal 11px tahoma, arial, verdana, sans-serif;' + + 'line-height: ' + me.lineHeight.toString() + 'px; white-space: pre;' + }); me.task = Ext.TaskManager.start({ run: function() { - if (!me.scrollToEnd || !me.viewInfo) { + if (!me.isVisible() || !me.scrollToEnd || !me.viewInfo) { return; } - + var maxDown = me.getMaxDown(); if (maxDown > 0) { return; @@ -167,48 +172,30 @@ Ext.define('PVE.panel.LogView', { }, interval: 1000 }); - }, - - onHide: function() { - var me = this; - - var target = me.getTargetEl(); - // Hack: chrome reset scrollTop to 0, so we save/restore - me.savedScrollTop = target.dom.scrollTop; - if (me.task) { - Ext.TaskManager.stop(me.task); - } - - me.callParent(arguments); - }, - - onDestroy: function() { - var me = this; - - if (me.task) { - Ext.TaskManager.stop(me.task); - } - - me.callParent(arguments); - }, - - initComponent : function() { - var me = this; - - if (!me.url) { - throw "no url specified"; - } - - me.dataCmp = Ext.create('Ext.Component', { - style: 'font:normal 11px tahoma, arial, verdana, sans-serif;' + - 'line-height: ' + me.lineHeight.toString() + 'px; white-space: pre;' - }); Ext.apply(me, { autoScroll: true, layout: 'auto', items: me.dataCmp, - bodyStyle: 'padding: 5px;' + bodyStyle: 'padding: 5px;', + listeners: { + show: function() { + var target = me.getTargetEl(); + if (target && target.dom) { + target.dom.scrollTop = me.savedScrollTop; + } + }, + beforehide: function() { + // Hack: chrome reset scrollTop to 0, so we save/restore + var target = me.getTargetEl(); + if (target && target.dom) { + me.savedScrollTop = target.dom.scrollTop; + } + }, + destroy: function() { + Ext.TaskManager.stop(me.task); + } + } }); me.callParent(); diff --git a/www/manager/window/TaskViewer.js b/www/manager/window/TaskViewer.js index 75e91b5e..6bfd95fe 100644 --- a/www/manager/window/TaskViewer.js +++ b/www/manager/window/TaskViewer.js @@ -121,7 +121,9 @@ Ext.define('PVE.window.TaskViewer', { }] }); - me.callParent(); + me.callParent(); + + logView.fireEvent('show', logView); } });