handle history events for repository, user and group items

This commit is contained in:
Sebastian Sdorra
2011-08-15 11:51:05 +02:00
parent 8763f0392d
commit 2b0f161d35
5 changed files with 32 additions and 6 deletions

View File

@@ -46,6 +46,7 @@ Sonia.group.Grid = Ext.extend(Sonia.rest.Grid, {
url: restUrl + 'groups.json',
disableCaching: false
}),
id: 'name',
fields: [ 'name', 'members', 'description', 'creationDate', 'type'],
sortInfo: {
field: 'name'

View File

@@ -43,7 +43,7 @@ Sonia.repository.Grid = Ext.extend(Sonia.rest.Grid, {
initComponent: function(){
var repositoryStore = new Sonia.rest.JsonStore({
id: 'repositoryStore',
id: 'id',
proxy: new Ext.data.HttpProxy({
url: restUrl + 'repositories.json',
disableCaching: false
@@ -103,7 +103,7 @@ Sonia.repository.Grid = Ext.extend(Sonia.rest.Grid, {
console.debug( item.name + ' selected' );
}
Sonia.History.append(item.name);
Sonia.History.append(item.id);
var infoPanel = main.getInfoPanel(item.type);
infoPanel.item = item;

View File

@@ -129,6 +129,15 @@ Sonia.rest.Grid = Ext.extend(Ext.grid.GridPanel, {
param = "checked='checked' ";
}
return String.format( this.checkboxTemplate, param );
},
handleHistory: function(params){
if (params){
var index = this.getStore().indexOfId(params[0]);
if ( index >= 0 ){
this.getSelectionModel().selectRow(index);
}
}
}
});

View File

@@ -156,18 +156,33 @@ Sonia.scm.Main = Ext.extend(Ext.util.Observable, {
createHistory: function(){
Sonia.History.register('repositories', function(params){
this.addRepositoriesTabPanel();
// todo handle params
var grid = Ext.getCmp('repositoryGrid');
if (grid){
grid.handleHistory(params);
} else if (debug){
console.debug('could not find repository grid');
}
}, this);
Sonia.History.register('scmConfig', this.addScmConfigTabPanel, this);
Sonia.History.register('repositoryConfig', this.addRepositoryConfigTabPanel, this);
Sonia.History.register('plugins', this.addPluginTabPanel, this);
Sonia.History.register('users', function(params){
this.addUsersTabPanel();
// todo handle params
var grid = Ext.getCmp('userGrid');
if (grid){
grid.handleHistory(params);
} else if (debug){
console.debug('could not find user grid');
}
}, this);
Sonia.History.register('groups', function(params){
this.addUsersTabPanel();
// todo handle params
this.addGroupsTabPanel();
var grid = Ext.getCmp('groupGrid');
if (grid){
grid.handleHistory(params);
} else if (debug){
console.debug('could not find group grid');
}
}, this);
},

View File

@@ -49,6 +49,7 @@ Sonia.user.Grid = Ext.extend(Sonia.rest.Grid, {
url: restUrl + 'users.json',
disableCaching: false
}),
id: 'name',
fields: [ 'name', 'displayName', 'mail', 'admin', 'creationDate', 'lastModified', 'type'],
sortInfo: {
field: 'name'