diff options
-rw-r--r-- | chrome/browser/resources/file_manager/js/file_manager.js | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/chrome/browser/resources/file_manager/js/file_manager.js b/chrome/browser/resources/file_manager/js/file_manager.js index 502b1bb..746f97f 100644 --- a/chrome/browser/resources/file_manager/js/file_manager.js +++ b/chrome/browser/resources/file_manager/js/file_manager.js @@ -875,19 +875,14 @@ FileManager.prototype = { * Compare by type first, then by subtype and then by name. */ FileManager.prototype.compareType_ = function(a, b) { - var aType = FileType.getType(a); - var bType = FileType.getType(b); + // Directories precede files. + if (a.isDirectory != b.isDirectory) + return Number(b.isDirectory) - Number(a.isDirectory); + var aType = this.getFileTypeString_(a); + var bType = this.getFileTypeString_(b); - // Files of unknown type follows all the others. - var result = this.collator_.compare(aType.type || 'Z', - bType.type || 'Z'); - if (result != 0) - return result; - - // If types are same both subtypes are defined of both are undefined. - result = this.collator_.compare(aType.subtype || '', - bType.subtype || ''); + var result = this.collator_.compare(aType, bType); if (result != 0) return result; @@ -1991,12 +1986,20 @@ FileManager.prototype = { FileManager.prototype.renderType_ = function(entry, columnId, table) { var div = this.document_.createElement('div'); div.className = 'type'; + div.textContent = this.getFileTypeString_(entry); + return div; + }; + + /** + * @param {Entry} entry File or directory entry. + * @return {string} Localized string representation of file type. + */ + FileManager.prototype.getFileTypeString_ = function(entry) { var fileType = FileType.getType(entry); if (fileType.subtype) - div.textContent = strf(fileType.name, fileType.subtype); + return strf(fileType.name, fileType.subtype); else - div.textContent = str(fileType.name); - return div; + return str(fileType.name); }; /** |