<script type="text/x-handlebars" data-template-name="albums">
{{#if controller.arrangedContent}}
{{#each album in controller.arrangedContent}}
- <li>{{view Calf.AlbumView contentBinding="album"}}</li>
+ {{view Calf.AlbumView contentBinding="album"}}
{{/each}}
{{else}}
<li>No albums found.</li>
<script src="javascripts/app/models/album.js"></script>
<script src="javascripts/app/models/song.js"></script>
+ <script src="javascripts/app/mixins/haspicture.js"></script>
+
<script src="javascripts/app/views/application.js"></script>
<script src="javascripts/app/views/page.js"></script>
<script src="javascripts/app/views/nowplaying.js"></script>
--- /dev/null
+(function(app, Ember) {
+ 'use strict';
+
+ var HasPictureMixin = Ember.Mixin.create({
+ mouseEnter: function(e) {
+ var npc = app.get('router').get('nowPlayingController');
+ var picture = this.get('content').get('picture');
+
+ if (picture)
+ npc.setPicture(picture);
+ },
+
+ mouseLeave: function(e) {
+ var npc = app.get('router').get('nowPlayingController');
+ npc.unsetPicture();
+ }
+ });
+
+ app.HasPictureMixin = HasPictureMixin;
+})(window.Calf, window.Ember);
\ No newline at end of file
{"id": 0,
"artist_id": 0,
"name": "11:11",
- "year": 2001
+ "year": 2001,
+ "picture": "regina-spektor/1111.jpg"
},
{"id": 1,
"artist_id": 0,
(function(app, Ember) {
'use strict';
- var AlbumView = Ember.View.extend({
+ var AlbumView = Ember.View.extend(app.HasPictureMixin, {
templateName: 'album',
- tagName: 'span',
+ tagName: 'li',
classNames: ['album']
});
(function(app, Ember) {
'use strict';
- var ArtistView = Ember.View.extend({
+ var ArtistView = Ember.View.extend(app.HasPictureMixin, {
templateName: 'artist',
tagName: 'li',
- classNames: ['artist'],
-
- mouseEnter: function(e) {
- var npc = app.get('router').get('nowPlayingController');
- var picture = this.get('content').get('picture');
-
- if (picture)
- npc.setPicture(picture);
- },
-
- mouseLeave: function(e) {
- var npc = app.get('router').get('nowPlayingController');
- npc.unsetPicture();
- }
+ classNames: ['artist']
});
app.ArtistView = ArtistView;
--- /dev/null
+(function(app, Ember) {
+ 'use strict';
+
+ var HasPictureMixin = Ember.Mixin.extend({
+ mouseEnter: function(e) {
+ var npc = app.get('router').get('nowPlayingController');
+ var picture = this.get('content').get('picture');
+
+ if (picture)
+ npc.setPicture(picture);
+ },
+
+ mouseLeave: function(e) {
+ var npc = app.get('router').get('nowPlayingController');
+ npc.unsetPicture();
+ }
+ });
+
+ app.HasPictureMixin = HasPictureMixin;
+})(window.Calf, window.Ember);
\ No newline at end of file