78 lines
2.5 KiB
JavaScript
78 lines
2.5 KiB
JavaScript
(function(context,$) {
|
|
|
|
context.JK = context.JK || {};
|
|
context.JK.SessionScreen = function(app) {
|
|
var logger = context.JK.logger;
|
|
|
|
function afterShow(data) {
|
|
var sessionId = data.id;
|
|
$.ajax({
|
|
type: "GET",
|
|
url: "/api/sessions/" + sessionId
|
|
}).done(renderSession);
|
|
}
|
|
|
|
function renderSession(sessionData) {
|
|
_renderSessionInfo(sessionData);
|
|
// TODO: Just for testing. Should respond to events.
|
|
var trackData = {
|
|
clientId: 1,
|
|
name: "Jonathon Wilson",
|
|
part: "Keyboard",
|
|
avatar: "https://en.gravatar.com/userimage/3198431/5ba95e655ce68d976f46dcf6f99fdde5.png",
|
|
latency: "good",
|
|
vu: 0.0,
|
|
gain: 0.5,
|
|
mute: false
|
|
};
|
|
_addTrack(trackData);
|
|
// TODO - hook events to the session-tracks container, not the tracks.
|
|
// then have the events see which track fired.
|
|
}
|
|
|
|
function _renderSessionInfo(sessionData) {
|
|
$info = $('#session-info');
|
|
$info.empty();
|
|
var template = $('#template-session-contents').html();
|
|
var contents = JK.fillTemplate(template, sessionData);
|
|
$info.html(contents);
|
|
}
|
|
|
|
function _addTrack(trackData) {
|
|
var template = $('#template-session-track').html();
|
|
var newTrack = JK.fillTemplate(template, trackData);
|
|
$('#session-tracks').append(newTrack);
|
|
}
|
|
|
|
function _userJoinedSession() {
|
|
logger.debug(arguments);
|
|
}
|
|
|
|
function deleteSession(evt) {
|
|
var sessionId = $(this).attr("action-id");
|
|
if (sessionId) {
|
|
$.ajax({
|
|
type: "DELETE",
|
|
url: "/api/sessions/" + sessionId
|
|
}).done(
|
|
function() { self.location="#/home"; }
|
|
);
|
|
}
|
|
}
|
|
|
|
function events() {
|
|
$('#session-contents').on("click", '[action="delete"]', deleteSession);
|
|
}
|
|
|
|
this.initialize = function() {
|
|
events();
|
|
screenBindings = {
|
|
'afterShow': afterShow
|
|
};
|
|
app.bindScreen('session', screenBindings);
|
|
app.subscribe(JK.MessageType.USER_JOINED_MUSIC_SESSION, _userJoinedSession);
|
|
};
|
|
|
|
};
|
|
|
|
})(window,jQuery); |