/* * * 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'); Sonia.group.setEditPanel = function(panel){ var editPanel = Ext.getCmp('groupEditPanel'); editPanel.removeAll(); editPanel.add(panel); editPanel.doLayout(); } Sonia.group.DefaultPanel = { region: 'south', title: 'Group Form', xtype: 'panel', padding: 5, html: 'Add or select a Group' } // GroupGrid Sonia.group.Grid = Ext.extend(Sonia.rest.Grid, { colNameText: 'Name', colDescriptionText: 'Description', colMembersText: 'Members', colCreationDateText: 'Creation date', colTypeText: 'Type', emptyGroupStoreText: 'No group is configured', groupFormTitleText: 'Group Form', initComponent: function(){ var groupStore = new Sonia.rest.JsonStore({ proxy: new Ext.data.HttpProxy({ url: restUrl + 'groups.json', disableCaching: false }), fields: [ 'name', 'members', 'description', 'creationDate', 'type'], sortInfo: { field: 'name' } }); var groupColModel = new Ext.grid.ColumnModel({ defaults: { sortable: true, scope: this, width: 125 }, columns: [ {id: 'name', header: this.colNameText, dataIndex: 'name'}, {id: 'description', header: this.colDescriptionText, dataIndex: 'description', width: 300 }, {id: 'members', header: this.colMembersText, dataIndex: 'members', renderer: this.renderMembers}, {id: 'creationDate', header: this.colCreationDateText, dataIndex: 'creationDate'}, {id: 'type', header: this.colTypeText, dataIndex: 'type', width: 80} ] }); var config = { autoExpandColumn: 'members', store: groupStore, colModel: groupColModel, emptyText: this.emptyGroupStoreText }; 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