fire-ide
Version:
Web-based Integrated Development Environment for fire.js
118 lines (116 loc) • 3.49 kB
JavaScript
jQuery.fn.showDeployLoading = function(msg) {
$(this).html($('<p>').addClass('title').text(msg + "...")).fadeIn()
};
var vcapApiEndPoint = ''
var appName = ''
$('.deploy .endpoint').load('/deploy/vcap/endpoints',function() {
$('#vcap_endpoint').change(function() {
vcapApiEndPoint = $(this).val()
//Check Login for Endpoint
checkVcapLogin()
})
})
var deploymentSocket = io.connect(window.location.origin);
deploymentSocket.on('deployment_progress', function(msg) {
var element = $('.deploy .progress ul li.' + msg.name)
if(element.size() == 0) {
element = $('<li>').addClass(msg.name)
element.append($('<span>'))
element.append($('<img>'))
}
$('span', element).html(msg.message)
if(msg.status == 'waiting') {
$('img', element).attr('src','/images/ajax-loader.gif')
} else if(msg.status == 'success') {
$('img', element).attr('src','/images/ok_22.png')
}
if(element.parent().size() == 0) {
$('.deploy .progress ul').append(element)
}
})
function refreshVcapApps() {
$('.deploy .apps').showDeployLoading('Fetching Applications List')
$.post('/deploy/vcap/apps', {
endpoint: vcapApiEndPoint
}, function(data, response, req) {
$('.deploy .apps').html(data).fadeIn()
$('.deploy .apps a.app').click(function(event) {
event.stopImmediatePropagation()
event.preventDefault()
appName = $(this).attr('title')
$('.deploy .current_app').showDeployLoading('Fetching Application Manifest')
$.post('/deploy/vcap/apps/' + appName + '/info', {
endpoint: vcapApiEndPoint
}, function(data, response, req) {
$('.deploy .current_app').html(data).fadeIn()
$('.deploy .current_app .update').click(function(event) {
event.stopImmediatePropagation()
event.preventDefault()
$('.deploy .progress').fadeIn()
$.post('/deploy/vcap/apps/' + appName + '/update', {
endpoint: vcapApiEndPoint
}, function(data, response, req) {
$('.deploy .result').html(data).fadeIn()
})
})
})
})
$('.deploy .apps .showCreateApp').click(function(event) {
event.stopImmediatePropagation()
event.preventDefault()
var bindCreateAppForm = function() {
$('.deploy .apps form input.endpoint').val(vcapApiEndPoint)
$('.deploy .apps form').ajaxForm({
target: '.deploy .apps',
complete: function(response) {
bindCreateAppForm()
},
success: function(data, status, response) {
if(response.status == 200) {
// continue
refreshVcapApps()
}
}
});
}
$('.deploy .apps').load('/deploy/vcap/apps/new', function() {
bindCreateAppForm()
})
})
})
}
function checkVcapLogin() {
var prepareLoginForm = function() {
$('.deploy .login input.endpoint').val(vcapApiEndPoint)
$('.deploy form.login').ajaxForm({
target: '.deploy .login',
success: function(data, status, response) {
if(response.status == 200) {
// continue
refreshVcapApps()
} else {
prepareLoginForm()
}
}
});
}
$.post('/deploy/vcap/login/', {
endpoint: vcapApiEndPoint
}, function(data, response, req) {
$('.deploy .login').html(data).fadeIn()
$('.deploy .login .logout').click(function(event) {
event.stopImmediatePropagation()
event.preventDefault()
$.post('/deploy/vcap/logout', {
endpoint: vcapApiEndPoint
}, function(data, response, req) {
checkVcapLogin()
})
})
prepareLoginForm()
if(req.status == 200) {
// continue
refreshVcapApps()
}
})
}