jam-cloud/web/app/assets/javascripts/shareDialog.js

160 lines
5.7 KiB
JavaScript
Raw Normal View History

2014-01-25 15:37:15 +00:00
(function(context,$) {
"use strict";
context.JK = context.JK || {};
2014-02-02 23:14:47 +00:00
context.JK.ShareDialog = function(app, entityId, entityType) {
2014-01-25 15:37:15 +00:00
var logger = context.JK.logger;
var rest = context.JK.Rest();
2014-02-05 03:17:19 +00:00
var facebookRest = context.JK.FacebookRest();
var facebookHelper = null;
2014-02-05 06:51:26 +00:00
var textMap = {
LIVE_SESSION: "LIVE SESSION",
SESSION: "SESSION",
RECORDING: "RECORDING",
RECORDED: "RECORDED"
};
2014-01-25 15:37:15 +00:00
2014-02-05 03:17:19 +00:00
function handleShareWithFacebook() {
facebookHelper.promptLogin()
.done(function(response) {
if(response.status == "connected") {
facebookRest.post({
access_token: response.authResponse.accessToken,
message: 'A Message',
caption: 'A Caption',
description: 'A description',
link: 'http://staging.jamkazam.com',
name: 'JamKazam',
picture: 'http://staging.jamkazam.com/assets/logo.png'
})
.done(function(response) {
alert("zong")
})
.fail(function(response) {
console.log("failed %o", response);
})
}
})
}
2014-02-05 01:55:51 +00:00
function socialShare() {
var shareWithFacebook = $('.share-with-facebook').is(':checked');
var shareWithGoogle = $('.share-with-google').is(':checked');
var shareWithTwitter = $('.share-with-twitter').is(':checked');
if(!shareWithFacebook && !shareWithGoogle && !shareWithTwitter) {
$('.share-options').addClass('error')
2014-02-05 03:17:19 +00:00
return;
}
else {
$('.share-options').removeClass('error')
}
if(shareWithFacebook) {
handleShareWithFacebook();
2014-02-05 01:55:51 +00:00
}
}
2014-01-25 15:37:15 +00:00
function registerEvents(onOff) {
2014-02-05 01:55:51 +00:00
2014-02-05 02:12:38 +00:00
$('.dialog-share-button').unbind('click').click(function(e){
2014-02-05 01:55:51 +00:00
socialShare();
return false;
});
2014-02-04 18:04:12 +00:00
}
2014-01-30 02:37:36 +00:00
function showDialog() {
app.layout.showDialog('share-dialog');
}
2014-02-02 23:14:47 +00:00
function initDialog() {
2014-02-05 06:51:26 +00:00
var sessionText = textMap.SESSION;
var liveSessionText = textMap.LIVE_SESSION;
2014-02-02 23:14:47 +00:00
2014-02-05 06:51:26 +00:00
var fill = entityType === sessionText.toLowerCase() ? "teal-fill" : "orange-fill";
2014-02-02 23:14:47 +00:00
2014-02-05 06:51:26 +00:00
$("#shareType").text(entityType);
2014-02-02 23:14:47 +00:00
$("#divWidgetCodeHeader").addClass(fill);
$("#divWidgetPreviewHeader").addClass(fill);
$("#divWidgetPreview").addClass(entityType);
// SESSION
2014-02-05 06:51:26 +00:00
if (entityType === sessionText.toLowerCase() ) {
$("#lblWidgetCodeType").html(sessionText.toLowerCase());
$("#lblWidgetPreviewType").html(sessionText.toLowerCase());
$("#spnWidgetCodeBranding").text(liveSessionText.toLowerCase());
$("#spnWidgetPreviewBranding").text(liveSessionText.toLowerCase());
2014-02-02 23:14:47 +00:00
rest.getSessionHistory(entityId)
.done(function(response) {
var name, photoUrl;
});
}
// RECORDING
else {
2014-02-05 06:51:26 +00:00
var recordedText = textMap.RECORDED.toLowerCase();
$("#lblWidgetCodeType").text(textMap.RECORDING);
$("#lblWidgetPreviewType").text(textMap.RECORDING);
$("#spnWidgetCodeBranding").text(recordedText);
$("#spnWidgetPreviewBranding").text(recordedText);
2014-02-02 23:14:47 +00:00
rest.getClaimedRecording(entityId)
.done(function(response) {
var name, photoUrl;
if (response.recording.band) {
name = response.recording.band.name;
photoUrl = context.JK.resolveBandAvatarUrl(response.recording.band.photo_url);
}
else {
name = response.recording.owner.name;
photoUrl = context.JK.resolveAvatarUrl(response.recording.owner.photo_url);
}
$("#imgWidgetCodeAvatar").attr('src', photoUrl);
$("#imgWidgetPreviewAvatar").attr('src', photoUrl);
$("#divWidgetPreviewTitle").html(response.recording.name);
$("#spnWidgetCodeArtistName").html(name);
$("#spnWidgetPreviewArtistName").html(name);
$.each(response.recording.recorded_tracks, function(index, val) {
2014-02-05 06:51:26 +00:00
$(".widget-members").append('<div class="widget-avatar-small">' + '<img src="' + context.JK.resolveAvatarUrl(val.user.photo_url) + '" alt="" />' + '</div>');
2014-02-02 23:14:47 +00:00
});
});
}
}
2014-01-25 15:37:15 +00:00
function clearTextFields() {
}
function beforeShow() {
2014-02-05 03:17:19 +00:00
$('.share-options').removeClass('error');
2014-01-25 15:37:15 +00:00
registerEvents(true);
}
function afterHide() {
registerEvents(false);
}
2014-02-05 03:17:19 +00:00
function initialize(_facebookHelper){
facebookHelper = _facebookHelper;
2014-01-25 15:37:15 +00:00
var dialogBindings = {
'beforeShow' : beforeShow,
'afterHide': afterHide
};
2014-02-05 02:17:52 +00:00
app.bindDialog('share-dialog', dialogBindings);
2014-02-05 06:51:26 +00:00
initDialog();
2014-01-25 15:37:15 +00:00
};
this.initialize = initialize;
2014-01-30 02:37:36 +00:00
this.showDialog = showDialog;
2014-01-25 15:37:15 +00:00
}
return this;
2014-02-05 01:58:11 +00:00
})(window,jQuery)