[ https://issues.apache.org/jira/browse/HDFS-6407?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14529143#comment-14529143 ]
Haohui Mai commented on HDFS-6407: ---------------------------------- {code} +jQuery.fn.dataTable.ext.type.detect.unshift( function ( data ) { + if ( typeof data !== 'string' ) { + return null; + } + + var units = data.replace( /[\d\.]/g, '' ).toLowerCase().trim(); + if ( units !== '' && units !== 'b' && units !== 'kb' && units !== 'mb' && units !== 'gb' && units !== 'tb' && units !== 'pb' ) { + return null; + } + return isNaN( parseFloat( data.trim() ) ) ? + null : + 'file-size'; +} ); + +jQuery.fn.dataTable.ext.type.detect.unshift( function ( data ) { + if ( typeof data !== 'string' ) { + return null; + } + + var units = data.replace( /[\d\.\(\%\)]/g, '' ).toLowerCase().trim(); + if ( units !== '' && units !== 'b' && units !== 'kb' && units !== 'mb' && units !== 'gb' && units !== 'tb' && units !== 'pb' ) { + return null; + } + return isNaN( parseFloat( data.trim() ) ) ? + null : + 'file-size-percent'; +} ); + +/** + * When dealing with computer file sizes, it is common to append a post fix + * such as B, KB, MB or GB to a string in order to easily denote the order of + * magnitude of the file size. This plug-in allows sorting to take these + * indicates of size into account. + * + * A counterpart type detection plug-in is also available. + * + * @name File size + * @summary Sort abbreviated file sizes correctly (8MB, 4KB, etc) + * @author Allan Jardine - datatables.net + * + * @example + * $('#example').DataTable( { + * columnDefs: [ + * { type: 'file-size', targets: 0 } + * ] + * } ); + */ + +jQuery.fn.dataTable.ext.type.order['file-size-pre'] = function ( data ) { + var units = data.replace( /[\d\.]/g, '' ).toLowerCase().trim(); + var multiplier = 1; + + if ( units === 'kb' ) { + multiplier = 1000; + } + else if ( units === 'mb' ) { + multiplier = 1000000; + } + else if ( units === 'gb' ) { + multiplier = 1000000000; + } + else if ( units === 'tb' ) { + multiplier = 1000000000000; + } + else if ( units === 'pb' ) { + multiplier = 1000000000000000; + } + return parseFloat( data ) * multiplier; +}; + +jQuery.fn.dataTable.ext.type.order['file-size-percent-pre'] = function ( data ) { + var units = data.replace( /[\d\.\(\%\)]/g, '' ).toLowerCase().trim(); + var multiplier = 1; + + if ( units === 'kb' ) { + multiplier = 1000; + } + else if ( units === 'mb' ) { + multiplier = 1000000; + } + else if ( units === 'gb' ) { + multiplier = 1000000000; + } + else if ( units === 'tb' ) { + multiplier = 1000000000000; + } + else if ( units === 'pb' ) { + multiplier = 1000000000000000; + } + return parseFloat( data ) * multiplier; {code} The data is available as 64-bit longs in the JMX output. The template engine generates the strings. Just to echo my previous comments -- reparsing the string is error-prone and should be avoided. > new namenode UI, lost ability to sort columns in datanode tab > ------------------------------------------------------------- > > Key: HDFS-6407 > URL: https://issues.apache.org/jira/browse/HDFS-6407 > Project: Hadoop HDFS > Issue Type: Bug > Components: namenode > Affects Versions: 2.4.0 > Reporter: Nathan Roberts > Assignee: Benoy Antony > Priority: Minor > Attachments: 002-datanodes-sorted-capacityUsed.png, > 002-datanodes.png, 002-filebrowser.png, 002-snapshots.png, > HDFS-6407-002.patch, HDFS-6407-003.patch, HDFS-6407.patch, > browse_directory.png, datanodes.png, snapshots.png > > > old ui supported clicking on column header to sort on that column. The new ui > seems to have dropped this very useful feature. > There are a few tables in the Namenode UI to display datanodes information, > directory listings and snapshots. > When there are many items in the tables, it is useful to have ability to sort > on the different columns. -- This message was sent by Atlassian JIRA (v6.3.4#6332)