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

Switch out Ember for Can.js. Queue display works.

This commit is contained in:
Dan Barber 2013-11-28 18:12:50 +00:00
parent d1a1cb80cd
commit 64a59274e8
9 changed files with 49 additions and 44611 deletions

View File

@ -1,19 +1,17 @@
var App = Ember.Application.create();
var QueueSong = can.Model({
findAll: 'GET /api/queue'
}, {});
QueueSong.findAll({}, function(songs) {
$('#queue').html(can.view('queueTemplate',
{ songs: songs }));
}, function(xhr) {
App.QueueRoute = Ember.Route.extend({
model: function() {
return Ember.$.getJSON('/api/queue');
}
});
App.QueueController = Ember.ArrayController.extend();
$(document).ready(function() {
$('#transport').html(can.view('transportTemplate'));
App.TransportController = Ember.Controller.extend({
actions: {
sendControl: function(control) {
Ember.$.ajax('/api/control/' + control, { type: 'PUT' });
}
}
$('#controls button').on('click', function(e) {
});
});
App.Song = DS.Model.extend();

12
assets/js/libs/can.jquery.min.js vendored Executable file

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

6
assets/js/libs/jquery-2.0.3.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,7 +1,6 @@
//= require ./libs/jquery-1.10.2.min
//= require ./libs/handlebars-1.0.0
//= require ./libs/ember
//= require ./libs/ember-data
//= require ./libs/can.jquery.min.js
//= require ./application.js
//= require ./router.js

View File

@ -1,3 +1 @@
App.Router.map(function () {
this.route('queue');
});

View File

@ -47,7 +47,7 @@ class MPDClient < Sinatra::Base
end
get '/queue' do
JSON Song.queue.map(&:to_h)
JSON({ data: Song.queue.map(&:to_h) })
end
put '/control/:action' do

View File

@ -7,30 +7,30 @@
<body>
<script type="text/x-handlebars" data-template-name="application">
<h1>MPD Client</h1>
{{ outlet }}
{{ render "transport" }}
</script>
<script type="text/x-handlebars" data-template-name="queue">
<div id="queue"></div>
<div id="transport"></div>
<script type="text/mustache" id="queueTemplate">
<h2>Queue</h2>
<ul id="queue">
{{#each controller}}
<li {{bindAttr class="playing"}}>{{ artist }} - {{ title }}</li>
{{else}}
{{#songs}}
<li{{#playing}} class="playing"{{/playing}}>{{ artist }} - {{ title }}</li>
{{/songs}} {{^songs}}
<li>Play queue empty</li>
{{/each}}
{{/songs}}
</ul>
</script>
<script type="text/x-handlebars" data-template-name="transport">
<script type="text/mustache-handlebars" id="transportTemplate">
<div id="controls">
<button {{ action "sendControl" "previous" }}>previous</button>
<button {{ action "sendControl" "play" }}>play</button>
<button {{ action "sendControl" "pause" }}>pause</button>
<button {{ action "sendControl" "stop" }}>stop</button>
<button {{ action "sendControl" "next" }}>next</button>
<button>previous</button>
<button>play</button>
<button>pause</button>
<button>stop</button>
<button>next</button>
</div>
</script>