From 5625c86695ebd39ee5de3f9a8050873d498eab1e Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sun, 2 Jan 2011 15:42:53 +0100 Subject: [PATCH] improve group grid --- .../main/webapp/resources/js/sonia.group.js | 179 +++++++++++++++++- .../src/main/webapp/resources/js/sonia.scm.js | 2 +- 2 files changed, 175 insertions(+), 6 deletions(-) diff --git a/scm-webapp/src/main/webapp/resources/js/sonia.group.js b/scm-webapp/src/main/webapp/resources/js/sonia.group.js index 21679ebaa5..3f584d5683 100644 --- a/scm-webapp/src/main/webapp/resources/js/sonia.group.js +++ b/scm-webapp/src/main/webapp/resources/js/sonia.group.js @@ -32,6 +32,13 @@ // register namespace Ext.ns('Sonia.group'); +Sonia.group.setEditPanel = function(panel){ + var editPanel = Ext.getCmp('groupEditPanel'); + editPanel.removeAll(); + editPanel.add(panel); + editPanel.doLayout(); +} + // GroupGrid Sonia.group.Grid = Ext.extend(Sonia.rest.Grid, { @@ -81,6 +88,29 @@ Sonia.group.Grid = Ext.extend(Sonia.rest.Grid, { } } return out; + }, + + selectItem: function(group){ + if ( debug ){ + console.debug( group.name + ' selected' ); + } + + Ext.getCmp('removeButton').setDisabled(false); + var panel = new Sonia.group.FormPanel({ + item: group, + region: 'south', + title: 'Group Form', + padding: 5, + onUpdate: { + fn: this.reload, + scope: this + }, + onCreate: { + fn: this.reload, + scope: this + } + }); + Sonia.group.setEditPanel(panel); } }); @@ -91,13 +121,105 @@ Ext.reg('groupGrid', Sonia.group.Grid); // GroupFormPanel Sonia.group.FormPanel = Ext.extend(Sonia.rest.FormPanel,{ + memberStore: null, + initComponent: function(){ + + this.memberStore = new Ext.data.SimpleStore({ + fields: ['member'], + sortInfo: { + field: 'member' + } + }); + + var memberColModel = new Ext.grid.ColumnModel({ + defaults: { + sortable: true + }, + columns: [{ + id: 'member', + header: 'Member', + dataIndex: 'member', + editor: new Ext.form.TextField({ + allowBlank: false + }) + }] + }); + + var selectionModel = new Ext.grid.RowSelectionModel({ + singleSelect: true + }); + + if ( this.item != null ){ + var data = []; + if ( this.item.members != null ){ + for ( var i=0; i