diff --git a/client/galaxy/scripts/mvc/library/library-dataset-view.js b/client/galaxy/scripts/mvc/library/library-dataset-view.js
index bd16d475e7f..53c6d30eb6f 100644
--- a/client/galaxy/scripts/mvc/library/library-dataset-view.js
+++ b/client/galaxy/scripts/mvc/library/library-dataset-view.js
@@ -741,7 +741,7 @@ var LibraryDatasetView = Backbone.View.extend({
<% } %>
<% if (item.get("message")) { %>
- | Message |
+ Description |
<%= _.escape(item.get("message")) %> |
<% } %>
diff --git a/client/galaxy/scripts/mvc/library/library-folderlist-view.js b/client/galaxy/scripts/mvc/library/library-folderlist-view.js
index 55d210fb633..f55714b96cb 100644
--- a/client/galaxy/scripts/mvc/library/library-folderlist-view.js
+++ b/client/galaxy/scripts/mvc/library/library-folderlist-view.js
@@ -25,7 +25,9 @@ var FolderListView = Backbone.View.extend({
"click .folder_row": "selectClickedRow",
"click .sort-folder-name": "sortColumnClicked",
"click .sort-folder-file_ext": "sortColumnClicked",
- "click .sort-folder-description": "sortColumnClicked",
+ "click .sort-folder-message": "sortColumnClicked",
+ "click .sort-folder-update_time": "sortColumnClicked",
+ "click .sort-folder-raw_size": "sortColumnClicked",
"click .sort-folder-state": "sortColumnClicked"
},
@@ -337,10 +339,11 @@ var FolderListView = Backbone.View.extend({
},
renderSortIcon: function() {
+ $('[class*="sort-icon"]')
+ .removeClass("fa-sort-alpha-desc")
+ .removeClass("fa-sort-alpha-asc");
+
if (this.current_sort_order === "asc") {
- $('[class*="sort-icon"]')
- .removeClass("fa-sort-alpha-desc")
- .removeClass("fa-sort-alpha-asc");
$(`.sort-icon-${this.current_sort_key}`).addClass("fa-sort-alpha-asc");
} else {
$(`.sort-icon-${this.current_sort_key}`).addClass("fa-sort-alpha-desc");
@@ -484,22 +487,27 @@ var FolderListView = Backbone.View.extend({
Name
-
+
|
- Description
-
+ Description
+
|
Data Type
-
+
+ |
+
+ Size
+
+ |
+
+ Time Updated (UTC)
+
|
- Size |
- Time Updated (UTC) |
State
-
+
|
|
diff --git a/client/galaxy/scripts/mvc/library/library-model.js b/client/galaxy/scripts/mvc/library/library-model.js
index 3143f0b6c2e..3d9e594e448 100644
--- a/client/galaxy/scripts/mvc/library/library-model.js
+++ b/client/galaxy/scripts/mvc/library/library-model.js
@@ -55,7 +55,7 @@ var Libraries = Backbone.Collection.extend({
},
sortLibraries: function(sort_key, sort_order) {
- this.comparator = mod_util.generateLibraryComparator(sort_key, sort_order);
+ this.comparator = mod_util.generateComparator(sort_key, sort_order);
this.sort();
}
});
@@ -77,7 +77,7 @@ var Folder = Backbone.Collection.extend({
model: LibraryItem,
sortFolder: function(sort_key, sort_order) {
- this.comparator = mod_util.generateFolderComparator(sort_key, sort_order);
+ this.comparator = mod_util.generateComparator(sort_key, sort_order);
this.sort();
}
});
diff --git a/client/galaxy/scripts/mvc/library/library-util.js b/client/galaxy/scripts/mvc/library/library-util.js
index 17e830e5152..c4d546c4b25 100644
--- a/client/galaxy/scripts/mvc/library/library-util.js
+++ b/client/galaxy/scripts/mvc/library/library-util.js
@@ -6,7 +6,7 @@
* @param {str} sort_order order to sort by (asc, desc)
* @return {function} two-argument comparator function
*/
-var generateFolderComparator = (sort_key, sort_order) => (itemA, itemB) => {
+var generateComparator = (sort_key, sort_order) => (itemA, itemB) => {
if (itemA.get("type") === itemB.get("type")) {
if (!itemA.has(sort_key) && !itemB.has(sort_key)) {
return 0;
@@ -15,12 +15,24 @@ var generateFolderComparator = (sort_key, sort_order) => (itemA, itemB) => {
} else if (!itemB.has(sort_key)) {
return -1;
}
- if (itemA.get(sort_key).toLowerCase() > itemB.get(sort_key).toLowerCase()) {
+ var comparable_itemA_key;
+ var comparable_itemB_key;
+ if (typeof itemA.get(sort_key) === "number") {
+ comparable_itemA_key = itemA.get(sort_key);
+ comparable_itemB_key = itemB.get(sort_key);
+ }
+ else
+ {
+ comparable_itemA_key = itemA.get(sort_key).toLowerCase();
+ comparable_itemB_key = itemB.get(sort_key).toLowerCase();
+ }
+ if ( comparable_itemA_key > comparable_itemB_key) {
return sort_order === "asc" ? 1 : -1;
}
- if (itemB.get(sort_key).toLowerCase() > itemA.get(sort_key).toLowerCase()) {
+ if (comparable_itemB_key > comparable_itemA_key) {
return sort_order === "asc" ? -1 : 1;
}
+
return 0; // equal
} else {
if (itemA.get("type") === "folder") {
@@ -29,22 +41,6 @@ var generateFolderComparator = (sort_key, sort_order) => (itemA, itemB) => {
return 1;
}
};
-/**
- * Create alphabetical based two-argument comparator
- * @param {str} sort_key key to sort by
- * @param {str} sort_order order to sort by (asc, desc)
- * @return {function} two-argument comparator function
- */
-var generateLibraryComparator = (sort_key, sort_order) => (libraryA, libraryB) => {
- if (libraryA.get(sort_key).toLowerCase() > libraryB.get(sort_key).toLowerCase()) {
- return sort_order === "asc" ? 1 : -1;
- }
- if (libraryB.get(sort_key).toLowerCase() > libraryA.get(sort_key).toLowerCase()) {
- return sort_order === "asc" ? -1 : 1;
- }
- return 0; // equal
-};
export default {
- generateFolderComparator: generateFolderComparator,
- generateLibraryComparator: generateLibraryComparator
+ generateComparator: generateComparator
};
diff --git a/lib/galaxy/webapps/galaxy/api/folder_contents.py b/lib/galaxy/webapps/galaxy/api/folder_contents.py
index 890b9d2ba74..a7ecc98481d 100644
--- a/lib/galaxy/webapps/galaxy/api/folder_contents.py
+++ b/lib/galaxy/webapps/galaxy/api/folder_contents.py
@@ -105,8 +105,8 @@ class FolderContentsController(BaseAPIController, UsesLibraryMixin, UsesLibraryM
# Can user manage the permissions on the dataset?
can_manage = is_admin or (trans.user and trans.app.security_agent.can_manage_dataset(current_user_roles, content_item.library_dataset_dataset_association.dataset))
-
- nice_size = util.nice_size(int(content_item.library_dataset_dataset_association.get_size()))
+ raw_size = int(content_item.library_dataset_dataset_association.get_size())
+ nice_size = util.nice_size(raw_size)
library_dataset_dict = content_item.to_dict()
encoded_ldda_id = trans.security.encode_id(content_item.library_dataset_dataset_association.id)
@@ -117,6 +117,7 @@ class FolderContentsController(BaseAPIController, UsesLibraryMixin, UsesLibraryM
can_manage=can_manage,
state=library_dataset_dict['state'],
file_size=nice_size,
+ raw_size=raw_size,
ldda_id=encoded_ldda_id))
if content_item.library_dataset_dataset_association.message:
return_item.update(dict(message=content_item.library_dataset_dataset_association.message))