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:
parent
d1a1cb80cd
commit
64a59274e8
@ -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
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
36470
assets/js/libs/ember.js
36470
assets/js/libs/ember.js
File diff suppressed because it is too large
Load Diff
6
assets/js/libs/jquery-2.0.3.min.js
vendored
Normal file
6
assets/js/libs/jquery-2.0.3.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -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
|
||||
|
||||
@ -1,3 +1 @@
|
||||
App.Router.map(function () {
|
||||
this.route('queue');
|
||||
});
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user