diff --git a/web/index.html b/web/index.html
index 162c9f165..c025289db 100755
--- a/web/index.html
+++ b/web/index.html
@@ -360,8 +360,9 @@
Activity
Age
Name
- Progress
Ratio
+ Size
+ Progress
Queue Order
State
diff --git a/web/javascript/common.js b/web/javascript/common.js
index b4d147902..0e5631a03 100644
--- a/web/javascript/common.js
+++ b/web/javascript/common.js
@@ -157,6 +157,7 @@ Prefs._SortByAge = 'age';
Prefs._SortByActivity = 'activity';
Prefs._SortByName = 'name';
Prefs._SortByQueue = 'queue_order';
+Prefs._SortBySize = 'size';
Prefs._SortByProgress = 'percent_completed';
Prefs._SortByRatio = 'ratio';
Prefs._SortByState = 'state';
diff --git a/web/javascript/torrent.js b/web/javascript/torrent.js
index 3833dce5d..beb9fa7f1 100644
--- a/web/javascript/torrent.js
+++ b/web/javascript/torrent.js
@@ -408,6 +408,14 @@ Torrent.compareByProgress = function(ta, tb)
return (a - b) || Torrent.compareByRatio(ta, tb);
};
+Torrent.compareBySize = function(ta, tb)
+{
+ var a = ta.getTotalSize(),
+ b = tb.getTotalSize();
+
+ return (a - b) || Torrent.compareByName(ta, tb);
+}
+
Torrent.compareTorrents = function(a, b, sortMethod, sortDirection)
{
var i;
@@ -426,6 +434,9 @@ Torrent.compareTorrents = function(a, b, sortMethod, sortDirection)
case Prefs._SortByProgress:
i = Torrent.compareByProgress(a,b);
break;
+ case Prefs._SortBySize:
+ i = Torrent.compareBySize(a,b);
+ break;
case Prefs._SortByState:
i = Torrent.compareByState(a,b);
break;
@@ -464,6 +475,9 @@ Torrent.sortTorrents = function(torrents, sortMethod, sortDirection)
case Prefs._SortByProgress:
torrents.sort(this.compareByProgress);
break;
+ case Prefs._SortBySize:
+ torrents.sort(this.compareBySize);
+ break;
case Prefs._SortByState:
torrents.sort(this.compareByState);
break;