Skip to content

Instantly share code, notes, and snippets.

@gcollazo
Last active August 29, 2015 14:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gcollazo/5d449da53cd6313d6a00 to your computer and use it in GitHub Desktop.
Save gcollazo/5d449da53cd6313d6a00 to your computer and use it in GitHub Desktop.
import DS from 'ember-data';
var Album = DS.Model.extend({
name: DS.attr('string'),
artworkURL: DS.attr('string'),
artist: DS.belongsTo('artist'),
songs: DS.hasMany('song', {async: true})
});
// Album.reopenClass({
// FIXTURES: [
// {id: 1, name: 'Ultraviolence', artist: 1,
// artworkURL: 'http://i.imgur.com/KfVv5mr.jpg',
// songs: [1, 2, 3]},
// {id: 2, name: 'Terror Amor', artist: 2,
// artworkURL: 'http://i.imgur.com/0Z7W6hh.jpg',
// songs: [4, 5]}
// ]
// });
export default Album;
import DS from 'ember-data';
var Artist = DS.Model.extend({
name: DS.attr('string'),
bio: DS.attr('string'),
albums: DS.hasMany('album')
});
// Artist.reopenClass({
// FIXTURES: [
// {id: 1, name: 'Lana Del Rey'},
// {id: 2, name: 'AJ Davila'}
// ]
// });
export default Artist;
<div class="song-list">
<div class="song-list-header">
<div class="song-star"></div>
<div class="song-name">
NAME
</div>
<div class="song-album">
ALBUM
</div>
<div class="song-artist">
ARTIST
</div>
<div class="song-duration">
DURATION
</div>
</div>
{{#each song in controller}}
{{view 'song' song=song}}
{{/each}}
</div>
{{#if songInPlayer}}
{{#if isPlaying}}
<h3>Playing</h3>
{{else}}
<h3>Paused</h3>
{{/if}}
<div class="se-display-artwork">
<img {{bind-attr src=songInPlayer.album.artworkURL}} class="se-display-artwork-img">
</div>
<h1>{{songInPlayer.name}}</h1>
{{else}}
<h1>Welcome to Soundem</h1>
{{/if}}
<div {{bind-attr class=":song-view view.isSelected view.inAlbumView"}}>
<div class="song-star">
<a href="#" class="song-star-link" {{action 'onSongFavoriteToggle' song}}>
<img {{bind-attr src=view.starImage}}>
</a>
</div>
<div class="song-name">
{{song.name}}
</div>
{{#unless view.inAlbumView}}
<div class="song-album">
{{song.album.name}}
</div>
<div class="song-artist">
{{song.album.artist.name}}
</div>
{{/unless}}
<div class="song-duration">
{{m-duration song.duration}}
</div>
</div>
import DS from 'ember-data';
var Song = DS.Model.extend({
name: DS.attr('string'),
album: DS.belongsTo('album'),
favorite: DS.attr('boolean'),
url: DS.attr('string'),
duration: DS.attr('number')
});
// Song.reopenClass({
// FIXTURES: [
// {id: 1, name: 'Pretty When You Cry', album: 1, favorite: false},
// {id: 2, name: 'Money Power Glory', album: 1, favorite: false},
// {id: 3, name: 'West Coast', album: 2, favorite: true},
// {id: 4, name: 'Animal', album: 1, favorite: false, url: 'http://upload.wikimedia.org/wikipedia/commons/0/0a/Wolfgang_Amadeus_Mozart_-_Don_Giovanni_-_Overt%C3%BCre.ogg'},
// {id: 5, name: 'Dura Como Piedra', album: 2, favorite: true, url: 'http://upload.wikimedia.org/wikipedia/commons/5/5b/Ludwig_van_Beethoven_-_Symphonie_5_c-moll_-_1._Allegro_con_brio.ogg'}
// ]
// });
export default Song;
import Ember from 'ember';
export default Ember.Controller.extend({
needs: ['audio'],
songSelected: Ember.computed.alias('controllers.audio.songSelected'),
songInPlayer: Ember.computed.alias('controllers.audio.songInPlayer'),
audioIsPlaying: Ember.computed.alias('controllers.audio.isPlaying')
});
import DS from 'ember-data';
var User = DS.Model.extend({
email: DS.attr('string'),
songTotal: DS.attr('number'),
albumTotal: DS.attr('number'),
durationTotal: DS.attr('number')
});
// User.reopenClass({
// FIXTURES: [
// {id: 1, songTotal: 11, albumTotal: 3, durationTotal: 1322},
// {id: 2, songTotal: 21, albumTotal: 23, durationTotal: 21322},
// ]
// });
export default User;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment