Browse Source

Fixes #1061 - Most recent first on filestore page

tags/v1.8.0
Paul Martin 8 years ago
parent
commit
17a6c6da21

+ 6
- 1
src/main/java/com/gitblit/models/FilestoreModel.java View File

@@ -31,7 +31,7 @@ import com.gitblit.Constants;
* @author Paul Martin
*
*/
public class FilestoreModel implements Serializable {
public class FilestoreModel implements Serializable, Comparable<FilestoreModel> {

private static final long serialVersionUID = 1L;

@@ -217,5 +217,10 @@ public class FilestoreModel implements Serializable {
}
}

@Override
public int compareTo(FilestoreModel o) {
return this.oid.compareTo(o.oid);
}

}


+ 42
- 2
src/main/java/com/gitblit/wicket/pages/FilestorePage.java View File

@@ -18,15 +18,20 @@ package com.gitblit.wicket.pages;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;

import org.apache.commons.io.FileUtils;
import org.apache.wicket.PageParameters;
import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.markup.repeater.data.DataView;
import org.apache.wicket.markup.repeater.data.ListDataProvider;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;

import com.gitblit.Constants;
import com.gitblit.Keys;
@@ -153,7 +158,7 @@ public class FilestorePage extends RootPage {
}
DataView<FilestoreModel> filesView = new DataView<FilestoreModel>("fileRow",
new ListDataProvider<FilestoreModel>(filteredResults) , itemsPerPage) {
new SortableFilestoreProvider(filteredResults) , itemsPerPage) {
private static final long serialVersionUID = 1L;
private int counter;

@@ -238,4 +243,39 @@ public class FilestorePage extends RootPage {
ok, pending, inprogress, error, deleted;
}
private static class SortableFilestoreProvider extends SortableDataProvider<FilestoreModel> {

private static final long serialVersionUID = 1L;

private List<FilestoreModel> list;

protected SortableFilestoreProvider(List<FilestoreModel> list) {
this.list = list;
}

@Override
public int size() {
if (list == null) {
return 0;
}
return list.size();
}

@Override
public IModel<FilestoreModel> model(FilestoreModel header) {
return new Model<FilestoreModel>(header);
}

@Override
public Iterator<FilestoreModel> iterator(int first, int count) {
Collections.sort(list, new Comparator<FilestoreModel>() {
@Override
public int compare(FilestoreModel o1, FilestoreModel o2) {
return o2.getChangedOn().compareTo(o1.getChangedOn());
}
});
return list.subList(first, first + count).iterator();
}
}
}

Loading…
Cancel
Save