diff --git a/src/js/components/List.js b/src/js/components/List.js index 140c8c07..d9ce57cc 100755 --- a/src/js/components/List.js +++ b/src/js/components/List.js @@ -35,8 +35,8 @@ export default class List extends React.Component{ ) } - renderValue( row, key ){ - var key = key.split('.') + renderValue( row, key_string ){ + var key = key_string.split('.') var value = row for( var i = 0; i < key.length; i++ ){ @@ -47,6 +47,7 @@ export default class List extends React.Component{ } } + if( key_string === 'owner' ) return {value.id} if( key[0] === 'artists' ) return if( value === true ) return if( typeof(value) === 'number' ) return {value.toLocaleString()} diff --git a/src/js/components/ListItem.js b/src/js/components/ListItem.js deleted file mode 100755 index 394f4481..00000000 --- a/src/js/components/ListItem.js +++ /dev/null @@ -1,28 +0,0 @@ - -import React, { PropTypes } from 'react' -import FontAwesome from 'react-fontawesome' -import { browserHistory } from 'react-router' - -export default class ListItem extends React.Component{ - - constructor(props) { - super(props); - } - - handleClick(e){ - if( e.target.tagName.toLowerCase() !== 'a' ){ - browserHistory.push( this.props.link ); - } - } - - render(){ - var className = 'list-item'; - if( this.props.extraClasses ) className += ' '+this.props.extraClasses; - - return ( -
  • this.handleClick(e) }> - { this.props.children } -
  • - ); - } -} \ No newline at end of file diff --git a/src/js/helpers.js b/src/js/helpers.js index f1b4d162..e9294583 100755 --- a/src/js/helpers.js +++ b/src/js/helpers.js @@ -260,9 +260,10 @@ export let sortItems = function (array, property, reverse = false){ var a_value = a var a_property_split = property.split('.') - for( var i = 0; i < a_property_split.length; i++ ){ - if( typeof(a_value[a_property_split[i]]) === 'undefined' ){ + for (var i = 0; i < a_property_split.length; i++) { + if (typeof(a_value[a_property_split[i]]) === 'undefined') { a_value = false + break }else{ a_value = a_value[a_property_split[i]] } @@ -271,25 +272,28 @@ export let sortItems = function (array, property, reverse = false){ var b_value = b var b_property_split = property.split('.') for( var i = 0; i < b_property_split.length; i++ ){ - if( typeof(b_value[b_property_split[i]]) === 'undefined' ){ + if (typeof(b_value[b_property_split[i]]) === 'undefined') { b_value = false - }else{ + break + } else { b_value = b_value[b_property_split[i]] } } if( typeof(a_value) === 'boolean'){ - if( a_value && !b_value ) return -1 - if( !a_value && b_value ) return 1 + if (a_value && !b_value) return -1 + if (!a_value && b_value) return 1 return 0 }else if( typeof(a_value) === 'string'){ - if(a_value.toLowerCase() > b_value.toLowerCase()) return 1 - return -1 + if ( !a_value || !b_value ) return 0 + if (a_value.toLowerCase() > b_value.toLowerCase()) return 1 + if (a_value.toLowerCase() < b_value.toLowerCase()) return -1 + return 0 }else{ - if( parseInt(a_value) > parseInt(b_value) ) return 1 - if( parseInt(a_value) < parseInt(b_value) ) return -1 + if (parseInt(a_value) > parseInt(b_value)) return 1 + if (parseInt(a_value) < parseInt(b_value)) return -1 return 0 } } diff --git a/src/js/views/library/LibraryPlaylists.js b/src/js/views/library/LibraryPlaylists.js index dd9da7fd..306f0712 100755 --- a/src/js/views/library/LibraryPlaylists.js +++ b/src/js/views/library/LibraryPlaylists.js @@ -50,7 +50,7 @@ class LibraryPlaylists extends React.Component{ { width: 30, label: 'Owner', - name: 'owner.id' + name: 'owner' }, { width: 10, @@ -99,6 +99,10 @@ class LibraryPlaylists extends React.Component{ value: 'can_edit', label: 'Editable' }, + { + value: 'owner.id', + label: 'Owner' + }, { value: 'tracks.total', label: 'Tracks'