diff --git a/src/js/components/List.js b/src/js/components/List.js
index d9ce57cc..8682edb0 100755
--- a/src/js/components/List.js
+++ b/src/js/components/List.js
@@ -22,7 +22,7 @@ export default class List extends React.Component{
}
renderHeader(){
- if( !this.props.columns ) return null
+ if (!this.props.columns || this.props.noheader) return null
return (
@@ -39,31 +39,35 @@ export default class List extends React.Component{
var key = key_string.split('.')
var value = row
- for( var i = 0; i < key.length; i++ ){
- if( typeof(value[key[i]]) !== 'undefined' ){
- value = value[key[i]]
- }else{
+ for (var i = 0; i < key.length; i++) {
+ if (typeof(value[key[i]]) === 'undefined' || value[key[i]].trim() == '') {
return
-
+ } else {
+ value = value[key[i]]
}
}
- if( key_string === 'owner' ) return
{value.id}
- if( key[0] === 'artists' ) return
- if( value === true ) return
- if( typeof(value) === 'number' ) return
{value.toLocaleString()}
+ if (key_string === 'owner') return
{value.id}
+ if (key[0] === 'artists') return
+ if (value === true) return
+ if (typeof(value) === 'number') return
{value.toLocaleString()}
return
{value}
}
render(){
- if( !this.props.rows ) return null
+ if (!this.props.rows) return null
return (
{ this.renderHeader() }
{
this.props.rows.map( (row, row_index) => {
+
+ var className = 'list-item'
+ if( row.type ) className += ' '+row.type
+
return (
-
this.handleClick(e, row.uri)} className="list-item cf" key={row_index}>
+
this.handleClick(e, row.uri)} className={className} key={row_index}>
{
this.props.columns.map( (col, col_index) => {
return (
diff --git a/src/js/components/TrackList.js b/src/js/components/TrackList.js
index 2149bfe5..426198b9 100755
--- a/src/js/components/TrackList.js
+++ b/src/js/components/TrackList.js
@@ -231,18 +231,26 @@ class TrackList extends React.Component{
// by default, do nothing
}
+ renderHeader(){
+ if( this.props.noheader ) return null
+
+ return (
+
+ Name
+ Artists
+ Album
+ Length
+
+ )
+ }
+
render(){
if( !this.state.tracks ) return null
let self = this;
return (
-
- Name
- Artists
- Album
- Length
-
+ { this.renderHeader() }
{
this.state.tracks.map(
(track, index) => {
diff --git a/src/js/views/library/LibraryLocalDirectory.js b/src/js/views/library/LibraryLocalDirectory.js
index c35281ec..b012a186 100755
--- a/src/js/views/library/LibraryLocalDirectory.js
+++ b/src/js/views/library/LibraryLocalDirectory.js
@@ -3,9 +3,11 @@ import React, { PropTypes } from 'react'
import { connect } from 'react-redux'
import { bindActionCreators } from 'redux'
import { Link } from 'react-router'
+import FontAwesome from 'react-fontawesome'
import Header from '../../components/Header'
import List from '../../components/List'
+import TrackList from '../../components/TrackList'
import * as mopidyActions from '../../services/mopidy/actions'
import * as spotifyActions from '../../services/spotify/actions'
@@ -40,27 +42,52 @@ class LibraryLocalDirectory extends React.Component{
}
}
+ arrange_directory( directory ){
+ var folders = []
+ var tracks = []
+
+ for (var i = 0; i < directory.length; i++) {
+ if (directory[i].type && directory[i].type == 'track') {
+ tracks.push( directory[i] )
+ } else {
+ folders.push( directory[i] )
+ }
+ }
+
+ return {
+ folders: folders,
+ tracks: tracks
+ }
+ }
+
render(){
if( !this.props.directory ) return null
+ var items = this.arrange_directory( this.props.directory )
+
+ var actions = null
+ if (this.props.params.uri != 'local:directory' ){
+ actions = (
+
+ )
+ }
+
return (
-
+
);
}
}
-
-/**
- * Export our component
- *
- * We also integrate our global store, using connect()
- **/
-
const mapStateToProps = (state, ownProps) => {
return {
mopidy_connected: state.mopidy.connected,