From 910049e9fe2563a2906b454e2c5729f18d24f7e1 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 13 Oct 2010 15:07:06 +0200 Subject: [PATCH] start improving user interface --- .../scm/api/rest/resources/GroupResource.java | 156 -------------- scm-webapp/src/main/webapp/index.html | 1 - .../src/main/webapp/resources/js/layout.js | 15 +- .../main/webapp/resources/js/sonia.group.js | 170 --------------- .../webapp/resources/js/sonia.repository.js | 5 +- .../main/webapp/resources/js/sonia.rest.js | 203 +++++++++++------- 6 files changed, 135 insertions(+), 415 deletions(-) delete mode 100644 scm-webapp/src/main/java/sonia/scm/api/rest/resources/GroupResource.java delete mode 100644 scm-webapp/src/main/webapp/resources/js/sonia.group.js diff --git a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/GroupResource.java b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/GroupResource.java deleted file mode 100644 index d19e0af1c1..0000000000 --- a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/GroupResource.java +++ /dev/null @@ -1,156 +0,0 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ - - - -package sonia.scm.api.rest.resources; - -//~--- non-JDK imports -------------------------------------------------------- - -import com.google.inject.Singleton; - -import sonia.scm.group.Group; - -//~--- JDK imports ------------------------------------------------------------ - -import java.util.Collection; -import java.util.LinkedHashMap; - -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -/** - * - * @author Sebastian Sdorra - */ -@Path("groups") -@Singleton -@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) -public class GroupResource extends AbstractResource -{ - - /** Field description */ - public static final String PATH_PART = "groups"; - - //~--- constructors --------------------------------------------------------- - - /** - * Constructs ... - * - */ - public GroupResource() - { - groupStore = new LinkedHashMap(); - groupStore.put("csit", - new Group("static", "csit", "th", "merlec", "hopper", - "oelkersd", "sdorra", "gollnict")); - groupStore.put("devel", - new Group("static", "devel", "sdorra", "th", "merlec", - "oelkersd")); - } - - //~--- methods -------------------------------------------------------------- - - /** - * Method description - * - * - * @param item - */ - @Override - protected void addItem(Group item) - { - groupStore.put(item.getName(), item); - } - - /** - * Method description - * - * - * @param item - */ - @Override - protected void removeItem(Group item) - { - groupStore.remove(item.getName()); - } - - /** - * Method description - * - * - * @param name - * @param item - */ - @Override - protected void updateItem(String name, Group item) - { - Group group = groupStore.get(name); - - group.setMembers(item.getMembers()); - } - - //~--- get methods ---------------------------------------------------------- - - /** - * Method description - * - * - * @return - */ - @Override - protected Group[] getAllItems() - { - Collection groupCollection = groupStore.values(); - - return groupCollection.toArray(new Group[groupCollection.size()]); - } - - /** - * Method description - * - * - * @param item - * - * @return - */ - @Override - protected String getId(Group item) - { - return item.getName(); - } - - /** - * Method description - * - * - * @param name - * - * @return - */ - @Override - protected Group getItem(String name) - { - return groupStore.get(name); - } - - /** - * Method description - * - * - * @return - */ - @Override - protected String getPathPart() - { - return PATH_PART; - } - - //~--- fields --------------------------------------------------------------- - - /** Field description */ - private LinkedHashMap groupStore; -} diff --git a/scm-webapp/src/main/webapp/index.html b/scm-webapp/src/main/webapp/index.html index 67950096b6..2d5caab72b 100644 --- a/scm-webapp/src/main/webapp/index.html +++ b/scm-webapp/src/main/webapp/index.html @@ -19,7 +19,6 @@ - diff --git a/scm-webapp/src/main/webapp/resources/js/layout.js b/scm-webapp/src/main/webapp/resources/js/layout.js index 0f1721c6af..5872508354 100644 --- a/scm-webapp/src/main/webapp/resources/js/layout.js +++ b/scm-webapp/src/main/webapp/resources/js/layout.js @@ -62,12 +62,14 @@ Ext.onReady(function(){ tabPanel.setActiveTab(id); } - function addGroupPanel(){ - addTabPanel('t_group', 'groupGrid', 'Groups'); - } - function addRepositoryPanel(){ - addTabPanel('t_repository', 'repositoryGrid', 'Repositories'); + tabPanel.add({ + id: 't_repository', + title: 'Repositories', + xtype: 'restPanel', + grid: {xtype: 'repositoryGrid'} + }); + tabPanel.setActiveTab('t_repository'); } function addConfigPanel(){ @@ -79,9 +81,6 @@ Ext.onReady(function(){ panel.addSections([{ title: 'Main', items: [{ - label: 'Groups', - fn: addGroupPanel - },{ label: 'Repositories', fn: addRepositoryPanel }] diff --git a/scm-webapp/src/main/webapp/resources/js/sonia.group.js b/scm-webapp/src/main/webapp/resources/js/sonia.group.js deleted file mode 100644 index 3d53d02992..0000000000 --- a/scm-webapp/src/main/webapp/resources/js/sonia.group.js +++ /dev/null @@ -1,170 +0,0 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ - -Ext.ns('Sonia.group'); - -Sonia.group.EditForm = new Ext.extend(Sonia.rest.EditForm, { - - initComponent: function(){ - this.store = new Ext.data.ArrayStore({ - fields: [ 'name' ] - }); - - var update = this.data != null; - - var config = { - title: 'Edit Group', - focusField: 'groupName', - items:[{ - id: 'groupName', - fieldLabel:'Name', - name:'name', - anchor: '100%', - allowBlank: false, - readOnly: update - },{ - fieldLabel: 'Members', - xtype: 'fieldset', - items: [{ - id: 'addMembersView', - name: 'members', - xtype: 'listview', - columnResize: false, - multiSelect: true, - hideHeaders: true, - store: this.store, - columns: [{ - xtype: 'lvcolumn', - header: 'Member', - dataIndex: 'name' - }] - }] - },{ - fieldLabel: 'Add Member', - xtype: 'compositefield', - items: [{ - id: 'addMemberField', - name: 'addMember', - width: '60%', - xtype: 'textfield', - scope: this, - listeners: { - specialkey: { - fn: function(field, e){ - if (e.getKey() == e.ENTER) { - this.addMember(); - } - }, - scope: this - } - } - },{ - xtype: 'button', - text: 'Add', - scope: this, - handler: this.addMember - },{ - xtype: 'button', - text: 'Del', - scope: this, - handler: this.removeSelectedMember - }] - }] - }; - - Ext.apply(this, Ext.apply(this.initialConfig, config)); - Sonia.group.EditForm.superclass.initComponent.apply(this, arguments); - }, - - load: function(item){ - var members = item.members; - for (var i=0; i