From 94c45ea0edf3ff1c05b9d84aacd5a0758b23d66d Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sat, 1 Jan 2011 19:18:43 +0100 Subject: [PATCH] added group grid --- scm-webapp/src/main/webapp/index.html | 1 + .../main/webapp/resources/js/sonia.group.js | 108 ++++++++++++++++++ .../src/main/webapp/resources/js/sonia.scm.js | 5 + 3 files changed, 114 insertions(+) create mode 100644 scm-webapp/src/main/webapp/resources/js/sonia.group.js diff --git a/scm-webapp/src/main/webapp/index.html b/scm-webapp/src/main/webapp/index.html index 36fed234fb..b7ce4c6ccb 100644 --- a/scm-webapp/src/main/webapp/index.html +++ b/scm-webapp/src/main/webapp/index.html @@ -57,6 +57,7 @@ + diff --git a/scm-webapp/src/main/webapp/resources/js/sonia.group.js b/scm-webapp/src/main/webapp/resources/js/sonia.group.js new file mode 100644 index 0000000000..21679ebaa5 --- /dev/null +++ b/scm-webapp/src/main/webapp/resources/js/sonia.group.js @@ -0,0 +1,108 @@ +/* * + * Copyright (c) 2010, Sebastian Sdorra + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of SCM-Manager; nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * http://bitbucket.org/sdorra/scm-manager + * + */ + +// register namespace +Ext.ns('Sonia.group'); + +// GroupGrid +Sonia.group.Grid = Ext.extend(Sonia.rest.Grid, { + + initComponent: function(){ + var groupStore = new Sonia.rest.JsonStore({ + url: restUrl + 'groups.json', + fields: [ 'name', 'members', 'creationDate', 'type'], + sortInfo: { + field: 'name' + } + }); + + var groupColModel = new Ext.grid.ColumnModel({ + defaults: { + sortable: true, + scope: this, + width: 125 + }, + columns: [ + {id: 'name', header: 'Name', dataIndex: 'name'}, + {id: 'members', header: 'Members', dataIndex: 'members', renderer: this.renderMembers}, + {id: 'creationDate', header: 'Creation date', dataIndex: 'creationDate'}, + {id: 'type', header: 'Type', dataIndex: 'type', width: 80} + ] + }); + + var config = { + autoExpandColumn: 'members', + store: groupStore, + colModel: groupColModel, + emptyText: 'No group is configured' + }; + + Ext.apply(this, Ext.apply(this.initialConfig, config)); + Sonia.group.Grid.superclass.initComponent.apply(this, arguments); + }, + + renderMembers: function(members){ + var out = ''; + if ( members != null ){ + var s = members.length; + for ( var i=0; i