[freenet-cvs] r11272 - in trunk/freenet/src/freenet/clients/http: . filter
nextgens at freenetproject.org
nextgens at freenetproject.org
Wed Dec 6 18:18:51 UTC 2006
Author: nextgens
Date: 2006-12-06 18:18:48 +0000 (Wed, 06 Dec 2006)
New Revision: 11272
Modified:
trunk/freenet/src/freenet/clients/http/N2NTMToadlet.java
trunk/freenet/src/freenet/clients/http/QueueToadlet.java
trunk/freenet/src/freenet/clients/http/ToadletContextImpl.java
trunk/freenet/src/freenet/clients/http/filter/CSSTokenizerFilter.java
Log:
Cleanup some imports, implement basic sorting on /queue/
Modified: trunk/freenet/src/freenet/clients/http/N2NTMToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/N2NTMToadlet.java 2006-12-06 16:33:18 UTC (rev 11271)
+++ trunk/freenet/src/freenet/clients/http/N2NTMToadlet.java 2006-12-06 18:18:48 UTC (rev 11272)
@@ -21,7 +21,6 @@
import freenet.support.HTMLNode;
import freenet.support.Logger;
import freenet.support.MultiValueTable;
-import freenet.support.ShortBuffer;
import freenet.support.SimpleFieldSet;
import freenet.support.io.Bucket;
Modified: trunk/freenet/src/freenet/clients/http/QueueToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/QueueToadlet.java 2006-12-06 16:33:18 UTC (rev 11271)
+++ trunk/freenet/src/freenet/clients/http/QueueToadlet.java 2006-12-06 18:18:48 UTC (rev 11272)
@@ -60,6 +60,8 @@
private NodeClientCore core;
final FCPServer fcp;
+ private boolean isReversed = false;
+
public QueueToadlet(NodeClientCore core, FCPServer fcp, HighLevelSimpleClient client) {
super(client);
this.core = core;
@@ -292,8 +294,8 @@
return;
}
- HTTPRequest request = new HTTPRequest(uri, null, ctx);
- String requestPath = request.getPath().substring("/queue/".length());
+ final HTTPRequest request = new HTTPRequest(uri, null, ctx);
+ final String requestPath = request.getPath().substring("/queue/".length());
if (requestPath.length() > 0) {
/* okay, there is something in the path, check it. */
@@ -318,6 +320,7 @@
}
} catch (MalformedURLException mue1) {
}
+ return;
}
PageMaker pageMaker = ctx.getPageMaker();
@@ -391,28 +394,58 @@
}
}
- Comparator identifierComparator = new Comparator() {
+ Comparator jobComparator = new Comparator() {
public int compare(Object first, Object second) {
ClientRequest firstRequest = (ClientRequest) first;
ClientRequest secondRequest = (ClientRequest) second;
- short firstPrio = firstRequest.getPriority();
- short secondPrio = secondRequest.getPriority();
- if(firstPrio > secondPrio) return 1;
- if(secondPrio > firstPrio) return -1;
- return firstRequest.getIdentifier().compareTo(secondRequest.getIdentifier());
+
+ int result = 0;
+ boolean isSet = true;
+
+ if(request.isParameterSet("sortBy")){
+ final String sortBy = request.getParam("sortBy");
+
+ if(sortBy.equals("id")){
+ result = firstRequest.getIdentifier().compareToIgnoreCase(secondRequest.getIdentifier());
+ }else if(sortBy.equals("size")){
+ result = (firstRequest.getTotalBlocks() - secondRequest.getTotalBlocks()) < 0 ? -1 : 1;
+ }else if(sortBy.equals("progress")){
+ result = firstRequest.getSuccessFraction() - secondRequest.getSuccessFraction() < 0 ? -1 : 1;
+ }else
+ isSet=false;
+ }else
+ isSet=false;
+
+ if(!isSet){
+ int priorityDifference = firstRequest.getPriority() - secondRequest.getPriority();
+ if (priorityDifference != 0)
+ result = (priorityDifference < 0 ? -1 : 1);
+ else
+ result = firstRequest.getIdentifier().compareTo(secondRequest.getIdentifier());
+ }
+
+ if(result == 0){
+ return 0;
+ }else if(request.isParameterSet("reversed")){
+ isReversed = true;
+ return result > 0 ? -1 : 1;
+ }else{
+ isReversed = false;
+ return result < 0 ? -1 : 1;
+ }
}
};
- Collections.sort(completedDownloadToDisk, identifierComparator);
- Collections.sort(completedDownloadToTemp, identifierComparator);
- Collections.sort(completedUpload, identifierComparator);
- Collections.sort(completedDirUpload, identifierComparator);
- Collections.sort(failedDownload, identifierComparator);
- Collections.sort(failedUpload, identifierComparator);
- Collections.sort(failedDirUpload, identifierComparator);
- Collections.sort(uncompletedDownload, identifierComparator);
- Collections.sort(uncompletedUpload, identifierComparator);
- Collections.sort(uncompletedDirUpload, identifierComparator);
+ Collections.sort(completedDownloadToDisk, jobComparator);
+ Collections.sort(completedDownloadToTemp, jobComparator);
+ Collections.sort(completedUpload, jobComparator);
+ Collections.sort(completedDirUpload, jobComparator);
+ Collections.sort(failedDownload, jobComparator);
+ Collections.sort(failedUpload, jobComparator);
+ Collections.sort(failedDirUpload, jobComparator);
+ Collections.sort(uncompletedDownload, jobComparator);
+ Collections.sort(uncompletedUpload, jobComparator);
+ Collections.sort(uncompletedDirUpload, jobComparator);
HTMLNode pageNode = pageMaker.getPageNode("(" + (uncompletedDirUpload.size() + uncompletedDownload.size()
+ uncompletedUpload.size()) + '/' + (failedDirUpload.size() + failedDownload.size() + failedUpload.size()) + '/'
@@ -799,9 +832,9 @@
for (int columnIndex = 0, columnCount = columns.length; columnIndex < columnCount; columnIndex++) {
int column = columns[columnIndex];
if (column == LIST_IDENTIFIER) {
- headerRow.addChild("th", "Identifier");
+ headerRow.addChild("th").addChild("a", "href", (isReversed ? "?sortBy=id" : "?sortBy=id&reversed")).addChild("#", "Identifier");
} else if (column == LIST_SIZE) {
- headerRow.addChild("th", "Size");
+ headerRow.addChild("th").addChild("a", "href", (isReversed ? "?sortBy=size" : "?sortBy=size&reversed")).addChild("#", "Size");
} else if (column == LIST_DOWNLOAD) {
headerRow.addChild("th", "Download");
} else if (column == LIST_MIME_TYPE) {
@@ -813,13 +846,13 @@
} else if (column == LIST_FILENAME) {
headerRow.addChild("th", "Filename");
} else if (column == LIST_PRIORITY) {
- headerRow.addChild("th", "Priority");
+ headerRow.addChild("th").addChild("a", "href", (isReversed ? "?sortBy=priority" : "?sortBy=priority&reversed")).addChild("#", "Priority");
} else if (column == LIST_FILES) {
headerRow.addChild("th", "Files");
} else if (column == LIST_TOTAL_SIZE) {
headerRow.addChild("th", "Total Size");
} else if (column == LIST_PROGRESS) {
- headerRow.addChild("th", "Progress");
+ headerRow.addChild("th").addChild("a", "href", (isReversed ? "?sortBy=progress" : "?sortBy=progress&reversed")).addChild("#", "Progress");
} else if (column == LIST_REASON) {
headerRow.addChild("th", "Reason");
}
Modified: trunk/freenet/src/freenet/clients/http/ToadletContextImpl.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/ToadletContextImpl.java 2006-12-06 16:33:18 UTC (rev 11271)
+++ trunk/freenet/src/freenet/clients/http/ToadletContextImpl.java 2006-12-06 18:18:48 UTC (rev 11272)
@@ -13,7 +13,6 @@
import java.util.Enumeration;
import java.util.TimeZone;
-import freenet.node.NodeClientCore;
import freenet.support.HTMLEncoder;
import freenet.support.HTMLNode;
import freenet.support.Logger;
Modified: trunk/freenet/src/freenet/clients/http/filter/CSSTokenizerFilter.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/filter/CSSTokenizerFilter.java 2006-12-06 16:33:18 UTC (rev 11271)
+++ trunk/freenet/src/freenet/clients/http/filter/CSSTokenizerFilter.java 2006-12-06 18:18:48 UTC (rev 11272)
@@ -5,7 +5,6 @@
* http://www.gnu.org/ for further details of the GPL. */
package freenet.clients.http.filter;
import java.io.*;
-import java.util.*;
/* This class tokenizes a CSS2 Reader stream, writes it out to the output Writer, and filters any URLs found */
// WARNING: this is not as thorough as the HTML parser - new versions of the standard could lead to anonymity risks. See comments in SaferFilter.java
// FIXME: Rewrite this as a proper whitelist filter. It's about half way there, it
More information about the cvs
mailing list