/*
* Copyright 2012 LinkedIn Corp.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
$.namespace('azkaban');
var dbUploadPanel;
azkaban.DBUploadPanel= Backbone.View.extend({
events : {
"click #upload-jar-btn" : "handleUpload"
},
initialize : function(settings) {
},
render: function() {
},
handleUpload: function(){
var filename = $("#file").val();
if (filename.length > 4) {
var lastIndexOf = filename.lastIndexOf('.');
var lastIndexOfForwardSlash = filename.lastIndexOf('\\');
var lastIndexOfBackwardSlash = filename.lastIndexOf('/');
var startIndex = Math.max(lastIndexOfForwardSlash, lastIndexOfBackwardSlash);
startIndex += 1;
var subfilename = filename.substring(startIndex, filename.length);
var end = filename.substring(lastIndexOf, filename.length);
if (end != ".jar") {
alert("File "+ subfilename + " doesn't appear to be a jar. Looking for mysql-connector*.jar");
return;
}
else if (subfilename.substr(0, "mysql-connector".length) != "mysql-connector") {
alert("File "+ subfilename + " doesn't appear to be a mysql connector jar. Looking for mysql-connector*.jar");
return;
}
console.log("Looks valid, uploading.");
var uploadForm = document.getElementById("upload-form");
var formData = new FormData(uploadForm);
var contextUrl = contextURL;
var xhr = new XMLHttpRequest();
xhr.onreadystatechange=function() {
if (xhr.readyState==4) {
var data = JSON.parse(xhr.responseText);
if (data.error) {
alert(data.error);
}
else {
$("#installed").html("Uploaded <span class=bold>" + data.jarname + "</span>");
}
}
}
xhr.open("POST", "uploadServlet");
xhr.send(formData);
console.log("Finished.");
}
else {
alert("File doesn't appear to be valid.");
}
}
});
var dbConnectionsPanel;
azkaban.DBConnectionPanel= Backbone.View.extend({
events : {
"click #save-connection-button" : "handleSaveConnection"
},
initialize : function(settings) {
if (verified) {
$("#save-results").text(message);
$("#save-results").css("color", "#00CC00");
} else {
$("#save-results").hide();
}
},
render: function() {
},
handleSaveConnection: function(){
var host = $("#host").val();
var port = $("#port").val();
var database = $("#database").val();
var username = $("#username").val();
var password = $("#password").val();
var contextUrl = contextURL;
$.post(
contextUrl,
{
ajax: "saveDbConnection",
host: host,
port: port,
database: database,
username: username,
password: password
},
function(data) {
if (data.error) {
verified = false;
$("#save-results").text(data.error);
$("#save-results").css("color", "#FF0000");
}
else if (data.success) {
verified = true;
$("#save-results").text(data.success);
$("#save-results").css("color", "#00CC00");
}
$("#save-results").show();
}
);
}
});
$(function() {
dbUploadPanel = new azkaban.DBUploadPanel({el:$( '#dbuploadpanel')});
dbConnectionPanel = new azkaban.DBConnectionPanel({el:$( '#dbsettingspanel')});
$("#saveAndContinue").click(function(data) {
if (!verified) {
alert("The database connection hasn't been verified.");
}
else {
window.location="/?usersetup";
}
});
});