More work on setup/installation process

This commit is contained in:
Duncan Sommerville 2014-12-03 18:04:47 -05:00
parent 6fd3acf651
commit 9fed113f74
19 changed files with 1072 additions and 198 deletions

View file

@ -1,75 +1,43 @@
<?php
require_once ROOT_PATH . 'public/setup/functions.php';
?>
<html style="background-color: #111141;">
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/bootstrap-3.3.1.min.css">
<script type="text/javascript" src="js/libs/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="js/libs/jquery-ui-1.8.24.min.js"></script>
<script type="text/javascript" src="js/setup/setup-config.js"></script>
<link rel="stylesheet" type="text/css" href="css/bootstrap-3.3.1.min.css" />
<link rel="stylesheet" type="text/css" href="css/setup/setup-config.css" />
</head>
<body style="background-color: #111141; color: white; padding: 2em 0; min-width: 400px; width: 30%; text-align: center; margin: 3em auto;">
<img src="css/images/airtime_logo_jp.png" style="margin-bottom: .5em;" /><br/>
<form action="#" role="form" style="width: 50%; margin: auto;" id="dbSettingsForm">
<h3 style="margin: 1em 0;">Database Settings</h3>
<div class="form-group">
<label class="sr-only" for="dbUser">Database Username</label>
<input required class="form-control" type="text" name="dbUser" id="dbUser" placeholder="Username"/>
<body>
<div class="header">
<h3 class="logo">
<img src="css/images/airtime_logo_jp.png" id="airtimeLogo" /><br/>
<strong>Setup</strong>
</h3>
<strong>Step <span id="stepCount">1</span> of 4</strong>
</div>
<div class="viewport">
<div class="form-slider">
<div id="databaseSettings" class="form-wrapper">
<?php
require_once SETUP_PATH . "forms/database-settings.php";
?>
</div>
<div id="rabbitmqSettings" class="form-wrapper">
<?php
require_once SETUP_PATH . "forms/rabbitmq-settings.php";
?>
</div>
</div>
<div class="form-group">
<label class="sr-only" for="dbPass">Database Password</label>
<input required class="form-control" type="password" name="dbPass" id="dbPass" placeholder="Password"/>
</div>
<div class="form-group">
<label class="sr-only" for="dbName">Database Name</label>
<input required class="form-control" type="text" name="dbName" id="dbName" placeholder="Name"/>
</div>
<div class="form-group">
<label class="sr-only" for="dbHost">Database Host</label>
<input required class="form-control" type="text" name="dbHost" id="dbHost" placeholder="Host" value="localhost"/>
</div>
<div class="form-group">
<input type="submit" class="btn btn-default"/>
</div>
</form>
</div>
<script>
$("#dbSettingsForm").submit(function(e) {
e.preventDefault();
var d = $('#dbSettingsForm').serializeArray();
// First, check if the db user exists (if not, we're done)
$.post('setup/functions.php?fn=airtimeValidateDatabaseUser', d, function(result) {
if (result == true) {
// We know that the user credentials check out, so check if the database exists
$.post('setup/functions.php?fn=airtimeValidateDatabaseSettings', d, function(result) {
if (result == true) {
// The database already exists, so we can just set up the schema
// TODO change alerts to actually useful things
alert("Setting up airtime schema...");
} else {
// The database doesn't exist, so check if the user can create databases
$.post('setup/functions.php?fn=airtimeCheckUserCanCreateDb', d, function(result) {
if (result == true) {
// The user can create a database, so ask if they want to create it
if (confirm("Create database '" + $("#dbName").val() + "' on " + $("#dbHost").val()
+ " as user " + $("#dbUser").val() + "?")) {
// TODO create the database...
alert("Creating airtime database...");
}
} else {
// The user can't create databases, so we're done
alert("No database " + $("#dbName").val() + " exists; user " + $("#dbUser").val()
+ " does not have permission to create databases on " + $("#dbHost").val());
}
}, "json");
}
}, "json");
} else {
alert("User credentials are invalid!");
}
}, "json");
});
$(".btn-skip").click(nextSlide);
$(".btn-back").click(prevSlide);
</script>
</body>
</html>