From 21eeaae4d919b80a5295a2f8dd5f28a9a3752738 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sun, 1 Apr 2012 13:02:54 +0200 Subject: [PATCH] fix repository selection by history --- .../js/repository/sonia.repository.grid.js | 2 ++ .../js/repository/sonia.repository.panel.js | 17 +++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/scm-webapp/src/main/webapp/resources/js/repository/sonia.repository.grid.js b/scm-webapp/src/main/webapp/resources/js/repository/sonia.repository.grid.js index 0eb2932cf8..edf4f81aa6 100644 --- a/scm-webapp/src/main/webapp/resources/js/repository/sonia.repository.grid.js +++ b/scm-webapp/src/main/webapp/resources/js/repository/sonia.repository.grid.js @@ -48,6 +48,7 @@ Sonia.repository.Grid = Ext.extend(Sonia.rest.Grid, { // for history parentPanel: null, + ready: false, initComponent: function(){ @@ -218,6 +219,7 @@ Sonia.repository.Grid = Ext.extend(Sonia.rest.Grid, { if (this.searchValue){ this.filterStore(); } + this.ready = true; }, onFallBelowMinHeight: function(height, minHeight){ diff --git a/scm-webapp/src/main/webapp/resources/js/repository/sonia.repository.panel.js b/scm-webapp/src/main/webapp/resources/js/repository/sonia.repository.panel.js index 6cb2c5c728..59c45c887a 100644 --- a/scm-webapp/src/main/webapp/resources/js/repository/sonia.repository.panel.js +++ b/scm-webapp/src/main/webapp/resources/js/repository/sonia.repository.panel.js @@ -292,6 +292,14 @@ Sonia.History.register('repositoryPanel', { return token; }, + waitAndSelect: function(grid, repoId){ + setTimeout(function(){ + if ( grid.ready ){ + grid.selectById(repoId); + } + }, 250); + }, + onChange: function(repoId){ var panel = Ext.getCmp('repositories'); if ( ! panel ){ @@ -308,8 +316,13 @@ Sonia.History.register('repositoryPanel', { } } else { main.addTab(panel); - if (repoId){ - panel.getGrid().selectById(repoId); + if ( repoId ){ + var grid = panel.getGrid(); + if ( grid.ready ){ + grid.selectById(repoId); + } else { + this.waitAndSelect(grid, repoId); + } } } }