diff --git a/web/app/assets/javascripts/dialog/recordingFinishedDialog.js b/web/app/assets/javascripts/dialog/recordingFinishedDialog.js
index 0b44b745a..4c6df07b9 100644
--- a/web/app/assets/javascripts/dialog/recordingFinishedDialog.js
+++ b/web/app/assets/javascripts/dialog/recordingFinishedDialog.js
@@ -141,18 +141,44 @@
return false;
}
+ function hasGoogleAuth() {
+ var auth=false
+ $.ajax({
+ type: "GET",
+ dataType: "json",
+ url: "/auth/has_google_auth"
+ }).success(function(data) {
+ if(!data.has_google_auth) {
+ auth=true
+ }
+ })
+ return auth
+ }
+
function claimRecording(e) {
resetForm();
registerClaimRecordingHandlers(false);
+ var upload_to_youtube = $('#recording-finished-dialog form input[name=upload_to_youtube]').is(':checked')
+
+ if (upload_to_youtube && !hasGoogleAuth()) {
+ var error_ul = $('
- You must sign in to YouTube
')
+ $('#recording-finished-dialog form [purpose=upload_to_youtube]').addClass('error').append(error_ul)
+ } else {
+ performClaim()
+ }
+
+ return false;
+ }
+
+ function performClaim() {
var name = $('#recording-finished-dialog form input[name=name]').val();
var description = $('#recording-finished-dialog form textarea[name=description]').val();
var genre = $('#recording-finished-dialog form select[name=genre]').val();
var is_public = $('#recording-finished-dialog form input[name=is_public]').is(':checked')
var save_video = $('#recording-finished-dialog form input[name=save_video]').is(':checked')
- var upload_to_youtube = $('#recording-finished-dialog form input[name=upload_to_youtube]').is(':checked')
-
+
rest.claimRecording({
id: recording.id,
name: name,
@@ -162,47 +188,43 @@
save_video: save_video,
upload_to_youtube: upload_to_youtube
})
- .done(function () {
- $dialog.data('result', {keep:true});
- app.layout.closeDialog('recordingFinished');
- context.JK.GA.trackMakeRecording();
- })
- .fail(function (jqXHR) {
- if (jqXHR.status == 422) {
- var errors = JSON.parse(jqXHR.responseText);
+ .done(function () {
+ $dialog.data('result', {keep:true});
+ app.layout.closeDialog('recordingFinished');
+ context.JK.GA.trackMakeRecording();
+ })
+ .fail(function (jqXHR) {
+ if (jqXHR.status == 422) {
+ var errors = JSON.parse(jqXHR.responseText);
- var $name_errors = context.JK.format_errors('name', errors);
- if ($name_errors) $('#recording-finished-dialog form input[name=name]').closest('div.field').addClass('error').end().after($name_errors);
+ var $name_errors = context.JK.format_errors('name', errors);
+ if ($name_errors) $('#recording-finished-dialog form input[name=name]').closest('div.field').addClass('error').end().after($name_errors);
- var $description_errors = context.JK.format_errors('description', errors);
- if ($description_errors) $('#recording-finished-dialog form input[name=description]').closest('div.field').addClass('error').end().after($description_errors);
+ var $description_errors = context.JK.format_errors('description', errors);
+ if ($description_errors) $('#recording-finished-dialog form input[name=description]').closest('div.field').addClass('error').end().after($description_errors);
- var $genre_errors = context.JK.format_errors('genre', errors);
- if ($genre_errors) $('#recording-finished-dialog form select[name=genre]').closest('div.field').addClass('error').end().after($genre_errors);
+ var $genre_errors = context.JK.format_errors('genre', errors);
+ if ($genre_errors) $('#recording-finished-dialog form select[name=genre]').closest('div.field').addClass('error').end().after($genre_errors);
- var $is_public_errors = context.JK.format_errors('is_public', errors);
- if ($is_public_errors) $('#recording-finished-dialog form input[name=is_public]').closest('div.field').addClass('error').end().after($is_public_errors);
+ var $is_public_errors = context.JK.format_errors('is_public', errors);
+ if ($is_public_errors) $('#recording-finished-dialog form input[name=is_public]').closest('div.field').addClass('error').end().after($is_public_errors);
- var $save_video_errors = context.JK.format_errors('save_video', errors);
- if ($save_video_errors) $('#recording-finished-dialog form input[name=save_video]').closest('div.field').addClass('error').end().after($save_video_errors);
+ var $save_video_errors = context.JK.format_errors('save_video', errors);
+ if ($save_video_errors) $('#recording-finished-dialog form input[name=save_video]').closest('div.field').addClass('error').end().after($save_video_errors);
+
+ var recording_error = context.JK.get_first_error('recording_id', errors);
- var $upload_to_youtube_errors = context.JK.format_errors('upload_to_youtube', errors);
- if ($upload_to_youtube_errors) $('#recording-finished-dialog form input[name=upload_to_youtube]').closest('div.field').addClass('error').end().after($upload_to_youtube_errors);
+ if (recording_error) context.JK.showErrorDialog(app, "Unable to claim recording.", recording_error);
+ }
+ else {
+ logger.error("unable to claim recording %o", arguments);
- var recording_error = context.JK.get_first_error('recording_id', errors);
-
- if (recording_error) context.JK.showErrorDialog(app, "Unable to claim recording.", recording_error);
- }
- else {
- logger.error("unable to claim recording %o", arguments);
-
- context.JK.showErrorDialog(app, "Unable to claim recording.", jqXHR.responseText);
- }
- })
- .always(function () {
- registerClaimRecordingHandlers(true);
- });
- return false;
+ context.JK.showErrorDialog(app, "Unable to claim recording.", jqXHR.responseText);
+ }
+ })
+ .always(function () {
+ registerClaimRecordingHandlers(true);
+ });
}
function registerClaimRecordingHandlers(onOff) {