120 lines
3.7 KiB
JavaScript
120 lines
3.7 KiB
JavaScript
(function(context,$) {
|
|
|
|
"use strict";
|
|
context.JK = context.JK || {};
|
|
context.JK.LaunchAppDialog = function(app) {
|
|
var logger = context.JK.logger;
|
|
var rest = context.JK.Rest();
|
|
var $dialog = null;
|
|
var $contentHolder = null;
|
|
var $templateUnsupportedLaunch = null;
|
|
var $templateAttemptLaunch = null;
|
|
var $templateLaunchSuccessful = null;
|
|
var $templateLaunchUnsuccessful = null;
|
|
var $gear_modal = false;
|
|
|
|
function renderAttemptLaunch() {
|
|
var $template = $(context._.template($templateAttemptLaunch.html(), buildOptions(), { variable: 'data' }));
|
|
$template.find('.btn-cancel').click(handleBack);
|
|
$contentHolder.empty().append($template);
|
|
|
|
|
|
var options = {
|
|
callback:function(success) {
|
|
if(success) {
|
|
renderLaunchSuccess();
|
|
}
|
|
else {
|
|
renderLaunchUnsuccessful();
|
|
}
|
|
},
|
|
fallback:function() {
|
|
renderUnsupportedLaunch();
|
|
}
|
|
};
|
|
|
|
$template.find('.btn-launch-app').customProtocol(options);
|
|
}
|
|
|
|
function renderLaunchSuccess() {
|
|
var $template = $(context._.template($templateLaunchSuccessful.html(), buildOptions(), { variable: 'data' }));
|
|
$template.find('.btn-done').click(handleBack);
|
|
$template.find('.not-actually-launched').click(function() {
|
|
$dialog.find('.dont-see-it').show();
|
|
return false;
|
|
});
|
|
$contentHolder.empty().append($template);
|
|
}
|
|
|
|
function renderLaunchUnsuccessful() {
|
|
var $template = $(context._.template($templateLaunchUnsuccessful.html(), buildOptions(), { variable: 'data' }));
|
|
$template.find('.btn-done').click(handleBack);
|
|
$contentHolder.empty().append($template);
|
|
}
|
|
|
|
function renderUnsupportedLaunch() {
|
|
var $template = $(context._.template($templateUnsupportedLaunch.html(), buildOptions(), { variable: 'data' }));
|
|
$template.find('.btn-cancel').click(handleBack);
|
|
$contentHolder.empty().append($template);
|
|
}
|
|
|
|
function handleBack() {
|
|
app.layout.closeDialog('launch-app-dialog');
|
|
return false;
|
|
}
|
|
|
|
function buildOptions() {
|
|
var osSpecificSystemTray = 'taskbar';
|
|
if($.browser.mac) {
|
|
osSpecificSystemTray = 'dock or status menu';
|
|
}
|
|
|
|
var osSpecificSystemTrayLink = '';
|
|
|
|
if($.browser.win) {
|
|
osSpecificSystemTrayLink = 'http://windows.microsoft.com/en-us/windows/taskbar-overview#1TC=windows-7';
|
|
}
|
|
else if($.browser.mac) {
|
|
osSpecificSystemTrayLink = 'http://support.apple.com/kb/ht3737';
|
|
}
|
|
|
|
var message_prefix = $gear_modal ? "To configure your audio gear" : "To create or find and join a session";
|
|
|
|
return { osSpecificSystemTray: osSpecificSystemTray, osSpecificSystemTrayLink: osSpecificSystemTrayLink, launchUrl: 'jamkazam:', messagePrefix: message_prefix};
|
|
}
|
|
|
|
function reset() {
|
|
renderAttemptLaunch();
|
|
}
|
|
|
|
function beforeShow(args) {
|
|
if (args) {
|
|
$gear_modal = (args.d1 == "gear");
|
|
}
|
|
else {
|
|
$gear_modal = false;
|
|
}
|
|
reset();
|
|
}
|
|
|
|
function initialize() {
|
|
var dialogBindings = {
|
|
'beforeShow' : beforeShow
|
|
};
|
|
|
|
app.bindDialog('launch-app-dialog', dialogBindings);
|
|
|
|
$dialog = $('#launch-app-dialog');
|
|
$contentHolder = $dialog.find('.dialog-inner');
|
|
$templateAttemptLaunch = $('#template-attempt-launch');
|
|
$templateUnsupportedLaunch = $('#template-unsupported-launch');
|
|
$templateLaunchSuccessful = $('#template-launch-successful');
|
|
$templateLaunchUnsuccessful = $('#template-launch-unsuccessful');
|
|
}
|
|
|
|
this.initialize = initialize;
|
|
}
|
|
|
|
return this;
|
|
})(window,jQuery);
|