diff --git a/web/app/assets/javascripts/rateSessionDialog.js b/web/app/assets/javascripts/rateSessionDialog.js index 00d11d126..391425222 100644 --- a/web/app/assets/javascripts/rateSessionDialog.js +++ b/web/app/assets/javascripts/rateSessionDialog.js @@ -9,29 +9,53 @@ var $scopeSelector = "[layout-id='rate-session-dialog']"; function showDialog() { - app.layout.showDialog(dialogId); - return true; // false if should not show dialog + if (context.JK.JamServer.clientID) { + app.layout.showDialog(dialogId); + return true; // false if should not show dialog + } + return false; } function closeDialog() { app.layout.closeDialog(dialogId); if (finishedCallback) { - setTimeout(finishedCallback, 100); + setTimeout(finishedCallback, 10); } } + + function getRating() { + if ($('#btn-rate-session-down', $scopeSelector).hasClass('selected')) { + return -1; + } else if ($('#btn-rate-session-up', $scopeSelector).hasClass('selected')) { + return 1; + } + return 0; + } + + function getComment() { + return $('#txt-rate-session-comment',"[layout-id='rate-session-dialog']").val(); + } function events() { $('#btn-rate-session-cancel', $scopeSelector).click(function(evt) { closeDialog(); }); $('#btn-rate-session-up', $scopeSelector).click(function(evt) { - $(this).hasClass('selected') ? $(this).removeClass('selected') : $(this).addClass('selected'); + if ($(this).hasClass('selected')) { + $(this).removeClass('selected') + } else { + $(this).addClass('selected'); + } if ($('#btn-rate-session-down').hasClass('selected')) { $('#btn-rate-session-down').removeClass('selected') } }); $('#btn-rate-session-down', $scopeSelector).click(function(evt) { - $(this).hasClass('selected') ? $(this).removeClass('selected') : $(this).addClass('selected'); + if ($(this).hasClass('selected')) { + $(this).removeClass('selected') + } else { + $(this).addClass('selected'); + } if ($('#btn-rate-session-up').hasClass('selected')) { $('#btn-rate-session-up').removeClass('selected') } @@ -40,7 +64,8 @@ var url = "/api/participant_histories/"+context.JK.JamServer.clientID+"/rating"; $.ajax({ type: "POST", - url: url + url: url, + data: { rating: getRating(), comment: getComment() } }).done(function (response) { closeDialog(); }); diff --git a/web/app/controllers/api_music_sessions_controller.rb b/web/app/controllers/api_music_sessions_controller.rb index aec1719d3..7c598d56e 100644 --- a/web/app/controllers/api_music_sessions_controller.rb +++ b/web/app/controllers/api_music_sessions_controller.rb @@ -152,7 +152,7 @@ class ApiMusicSessionsController < ApiController def participant_rating if @history = MusicSessionUserHistory.find_by_client_id(params[:client_id]) - @history.add_rating(params[:rating]) + @history.add_rating(params[:rating], params[:comment]) @history.save if @history.errors.any? diff --git a/web/app/views/clients/_rateSession.html.erb b/web/app/views/clients/_rateSession.html.erb index 5bb43602e..612a76d9a 100644 --- a/web/app/views/clients/_rateSession.html.erb +++ b/web/app/views/clients/_rateSession.html.erb @@ -8,7 +8,7 @@