show url and creationdate on gui

This commit is contained in:
Sebastian Sdorra
2010-09-19 17:38:40 +02:00
parent 6de88bfc85
commit 60da0dc453
4 changed files with 83 additions and 2 deletions

View File

@@ -9,6 +9,7 @@ package sonia.scm.repository;
//~--- non-JDK imports -------------------------------------------------------- //~--- non-JDK imports --------------------------------------------------------
import sonia.scm.util.DateAdapter;
import sonia.scm.util.Util; import sonia.scm.util.Util;
//~--- JDK imports ------------------------------------------------------------ //~--- JDK imports ------------------------------------------------------------
@@ -20,14 +21,18 @@ import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType; import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
/** /**
* *
* @author Sebastian Sdorra * @author Sebastian Sdorra
*/ */
@XmlRootElement(name = "repositories") @XmlRootElement(name = "repositories")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(propOrder = @XmlType(propOrder =
{ {
"id", "type", "name", "contact", "description", "creationDate", "url", "id", "type", "name", "contact", "description", "creationDate", "url",
@@ -277,6 +282,7 @@ public class Repository implements Serializable
private String contact; private String contact;
/** Field description */ /** Field description */
@XmlJavaTypeAdapter(DateAdapter.class)
private Date creationDate; private Date creationDate;
/** Field description */ /** Field description */

View File

@@ -0,0 +1,54 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package sonia.scm.util;
//~--- JDK imports ------------------------------------------------------------
import java.util.Date;
import javax.xml.bind.annotation.adapters.XmlAdapter;
/**
*
* @author Sebastian Sdorra
*/
public class DateAdapter extends XmlAdapter<String, Date>
{
/**
* Method description
*
*
* @param data
*
* @return
*
* @throws Exception
*/
@Override
public String marshal(Date data) throws Exception
{
return Util.formatDate(data);
}
/**
* Method description
*
*
* @param string
*
* @return
*
* @throws Exception
*/
@Override
public Date unmarshal(String string) throws Exception
{
return Util.parseDate(string);
}
}

View File

@@ -11,6 +11,19 @@
Syntax recommendation http://www.w3.org/TR/REC-CSS2/ Syntax recommendation http://www.w3.org/TR/REC-CSS2/
*/ */
a {
color: #004077;
text-decoration: none;
}
a:hover {
color: #004077;
}
a:visited {
color: #004077;
}
#header { #header {
margin: 5px; margin: 5px;
} }

View File

@@ -48,12 +48,14 @@ Ext.reg('repositoryEditForm', Sonia.repository.EditForm);
Sonia.repository.Grid = Ext.extend(Sonia.rest.Grid, { Sonia.repository.Grid = Ext.extend(Sonia.rest.Grid, {
urlTemplate: '<a href="{0}" target="_blank">{0}</a>',
initComponent: function(){ initComponent: function(){
var repositoryStore = new Sonia.rest.JsonStore({ var repositoryStore = new Sonia.rest.JsonStore({
url: restUrl + 'repositories.json', url: restUrl + 'repositories.json',
root: 'repositories', root: 'repositories',
fields: [ 'id', 'name', 'type', 'contact', 'description' ], fields: [ 'id', 'name', 'type', 'contact', 'description', 'creationDate', 'url' ],
sortInfo: { sortInfo: {
field: 'name' field: 'name'
} }
@@ -64,7 +66,9 @@ Sonia.repository.Grid = Ext.extend(Sonia.rest.Grid, {
{header: 'Name', sortable: true, width: 100, dataIndex: 'name'}, {header: 'Name', sortable: true, width: 100, dataIndex: 'name'},
{header: 'Type', sortable: true, width: 50, dataIndex: 'type'}, {header: 'Type', sortable: true, width: 50, dataIndex: 'type'},
{header: 'Contact', sortable: true, width: 100, dataIndex: 'contact'}, {header: 'Contact', sortable: true, width: 100, dataIndex: 'contact'},
{header: 'Description', sortable: true, dataIndex: 'description'} {header: 'Description', sortable: true, dataIndex: 'description'},
{header: 'Creation date', sortable: true, dataIndex: 'creationDate'},
{header: 'Url', sortable: true, dataIndex: 'url', scope: this, renderer: this.renderUrl }
] ]
}); });
@@ -82,6 +86,10 @@ Sonia.repository.Grid = Ext.extend(Sonia.rest.Grid, {
Ext.apply(this, Ext.apply(this.initialConfig, config)); Ext.apply(this, Ext.apply(this.initialConfig, config));
Sonia.repository.Grid.superclass.initComponent.apply(this, arguments); Sonia.repository.Grid.superclass.initComponent.apply(this, arguments);
},
renderUrl: function(url){
return String.format( this.urlTemplate, url );
} }
}); });