mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
@@ -741,7 +741,7 @@ var LibraryDatasetView = Backbone.View.extend({
|
||||
<% } %>
|
||||
<% if (item.get("message")) { %>
|
||||
<tr>
|
||||
<th scope="row">Message</th>
|
||||
<th scope="row">Description</th>
|
||||
<td scope="row"><%= _.escape(item.get("message")) %></td>
|
||||
</tr>
|
||||
<% } %>
|
||||
|
||||
@@ -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({
|
||||
</th>
|
||||
<th>
|
||||
<a class="sort-folder-name" title="Click to reverse order" href="#">Name</a>
|
||||
<span title="Sorted alphabetically"
|
||||
class="sort-icon-name fa fa-sort-alpha-<%- order %>"></span>
|
||||
<span title="Sorted by Name" class="sort-icon-name fa fa-sort-alpha-<%- order %>"></span>
|
||||
</th>
|
||||
<th style="width:20%;">
|
||||
<a class="sort-folder-description" title="Click to reverse order" href="#">Description</a>
|
||||
<span title="Sorted alphabetically" class="sort-icon-description fa"></span>
|
||||
<a class="sort-folder-message" title="Click to reverse order" href="#">Description</a>
|
||||
<span title="Sorted by Desc." class="sort-icon-message fa"></span>
|
||||
</th>
|
||||
<th style="width:5%;">
|
||||
<a class="sort-folder-file_ext" title="Click to reverse order" href="#">Data Type</a>
|
||||
<span title="Sorted alphabetically" class="sort-icon-file_ext fa"></span>
|
||||
<span title="Sorted by Type" class="sort-icon-file_ext fa"></span>
|
||||
</th>
|
||||
<th style="width:10%;">
|
||||
<a class="sort-folder-raw_size" title="Click to reverse order" href='#'>Size</a>
|
||||
<span title="Sorted by Size" class="sort-icon-raw_size fa"></span>
|
||||
</th>
|
||||
<th style="width:160px;">
|
||||
<a class="sort-folder-update_time" title="Click to reverse order" href='#'>Time Updated (UTC)</a>
|
||||
<span title="Sorted by Date" class="sort-icon-update_time fa"></span>
|
||||
</th>
|
||||
<th style="width:10%;">Size</th>
|
||||
<th style="width:160px;">Time Updated (UTC)</th>
|
||||
<th style="width:5%;">
|
||||
<a class="sort-folder-state" title="Click to reverse order" href="#">State</a>
|
||||
<span title="Sorted alphabetically" class="sort-icon-state fa"></span>
|
||||
<span title="Sorted by State" class="sort-icon-state fa"></span>
|
||||
</th>
|
||||
<th style="width:160px;"></th>
|
||||
</thead>
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user