1
0
mirror of https://github.com/danbee/mpd-client synced 2025-03-04 08:39:09 +00:00

Root panel works as a component.

This commit is contained in:
Dan Barber 2013-12-19 14:50:31 +00:00
parent ff3bb3bdec
commit 013d79d721
11 changed files with 7019 additions and 9 deletions

View File

@ -32,12 +32,15 @@
.browser
position: absolute
height: 100%
width: 100%
@include transition(left 0.25s ease-in-out)
ul, ol
width: 100%
ul.root, ol.artists, ol.albums
@extend .list
ol.songs
@extend .song-list
div
panel
position: absolute
width: $interface-width
height: 100%

View File

@ -0,0 +1,39 @@
can.Component.extend({
init: function() {
console.log('Initializing');
},
tag: 'panel',
template: can.view('views/panel.mustache'),
scope: {
show: '@',
artist: '@',
album: '@',
title: function() {
if (this.show == 'root')
return 'Library';
},
fetchItems: {
root: new can.Map,
artists: Artist.findAll({}),
albums: Album.findAll({ artist: this.artist }),
songs: Song.findAll({ artist: this.artist, album: this.album })
}
},
events: {
inserted: function() {
console.log('Panel inserted.');
}
},
helpers: {
renderItems: function() {
return can.view.render('views/library/' + this.show, {});
}
}
});

View File

@ -4,7 +4,7 @@ var Library = can.Control.extend({
this.element = element;
this.browser = new can.Model({ title: 'Library', currentPane: 0 });
element.html(
can.view('views/library.ejs', { browser: this.browser })
can.view('views/library.mustache', { browser: this.browser })
);
var rootControl = new Pane('#library .root', { show: 'root' });
this.panes = new can.List([rootControl]);

View File

@ -2,7 +2,7 @@
* CanJS - 2.0.3
* http://canjs.us/
* Copyright (c) 2013 Bitovi
* Tue, 26 Nov 2013 18:21:40 GMT
* Thu, 19 Dec 2013 10:56:42 GMT
* Licensed MIT
* Includes: can/view/ejs
* Download from: http://canjs.com

6951
assets/js/libs/can.jquery.js Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,10 +1,11 @@
//= require ./libs/jquery-2.0.3.min
//= require ./libs/can.jquery.min.js
//= require ./libs/can.jquery.js
//= require ./libs/can.ejs.js
//= require ./routes.js
//= require_tree ./models/
//= require_tree ./helpers/
//= require_tree ./controls/
//= require_tree ./components/
//= require_tree ./constructs/
//= require ./application.js

View File

@ -10,6 +10,6 @@
data-current-pane="<%= browser.attr('currentPane') %>"
style="left: -<%= browser.attr('currentPane') * 20 %>em;">
<div class="root" style="left: 0;"></div>
<panel show="root" style="left: 0;"></panel>
</div>

View File

@ -0,0 +1,5 @@
<div class="browser">
<panel show="root" style="left: 0;"></panel>
</div>

View File

@ -0,0 +1,5 @@
<ul class="root">
<li>{{can.route.link('Artists', { page: 'library', show: 'artists', pane: pane + 1 })}}</li>
<li>{{can.route.link('Albums', { page: 'library', show: 'albums', pane: pane + 1 })}}</li>
<li>{{can.route.link('Songs', { page: 'library', show: 'songs', pane: pane + 1 })}}</li>
</ul>

View File

@ -0,0 +1,6 @@
<header>
<a class="close" href="#!">Close</a>
<h1>{{title}}</h1>
</header>
{{{renderItems}}}