Add connection settings form (host, user, port, etc)
This commit is contained in:
@@ -71,25 +71,73 @@
|
||||
<div class="connection-settings">
|
||||
<h1>pgweb</h1>
|
||||
|
||||
<form role="form" id="connection_form">
|
||||
<form role="form" class="form-horizontal" id="connection_form">
|
||||
<div class="form-group">
|
||||
<label>Enter server URL scheme</label>
|
||||
<input type="text" class="form-control" id="connection_url" name="url">
|
||||
<p class="help-block">URL format: postgres://user:password@host:port/db</p>
|
||||
<div class="col-sm-12">
|
||||
<label>Enter server URL scheme</label>
|
||||
<input type="text" class="form-control" id="connection_url" name="url">
|
||||
<p class="help-block">URL format: postgres://user:password@host:port/db</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">Host</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" id="pg_host" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>SSL Mode</label>
|
||||
<select class="form-control" id="connection_ssl">
|
||||
<option value="disable">disable</option>
|
||||
<option value="require" selected="selected">require</option>
|
||||
<option value="verify-full">verify-full</option>
|
||||
</select>
|
||||
<label class="col-sm-2">Username</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" id="pg_user" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2">Password</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" id="pg_password" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2">Database</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" id="pg_db" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2">Port</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" id="pg_port" class="form-control" placeholder="5432" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2">SSL</label>
|
||||
<div class="col-sm-10">
|
||||
<select class="form-control" id="connection_ssl">
|
||||
<option value="disable">disable</option>
|
||||
<option value="require" selected="selected">require</option>
|
||||
<option value="verify-full">verify-full</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
|
||||
<div id="connection_error" class="alert alert-danger"></div>
|
||||
<button type="submit" class="btn btn-primary">Connect</button>
|
||||
<a href="#" id="close_connection_window" class="btn btn-default">Cancel</a>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<button type="submit" class="btn btn-primary">Connect</button>
|
||||
<a href="#" id="close_connection_window" class="btn btn-default">Cancel</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -323,6 +323,31 @@ function showConnectionSettings() {
|
||||
$("#connection_window").show();
|
||||
}
|
||||
|
||||
function getConnectionString() {
|
||||
var url = $.trim($("#connection_url").val());
|
||||
var ssl = $("#connection_ssl").val();
|
||||
|
||||
if (url.length == 0) {
|
||||
var host = $("#pg_host").val();
|
||||
var port = $("#pg_port").val();
|
||||
var user = $("#pg_user").val();
|
||||
var pass = $("#pg_password").val();
|
||||
var db = $("#pg_db").val();
|
||||
|
||||
if (port.length == 0) {
|
||||
port = "5432";
|
||||
}
|
||||
|
||||
url = "postgres://" + user + ":" + pass + "@" + host + ":" + port + "/" + db;
|
||||
}
|
||||
|
||||
if (url.indexOf("sslmode") == -1) {
|
||||
url += "?sslmode=" + ssl;
|
||||
}
|
||||
|
||||
return url;
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
$("#table_content").on("click", function() { showTableContent(); });
|
||||
$("#table_structure").on("click", function() { showTableStructure(); });
|
||||
@@ -388,9 +413,13 @@ $(document).ready(function() {
|
||||
});
|
||||
|
||||
$("#connection_url").on("change", function() {
|
||||
var url = $(this).val();
|
||||
if ($(this).val().indexOf("localhost") != -1) {
|
||||
$("#connection_ssl").val("disable");
|
||||
}
|
||||
});
|
||||
|
||||
if (url.indexOf("localhost") != -1) {
|
||||
$("#pg_host").on("change", function() {
|
||||
if ($(this).val().indexOf("localhost") != -1) {
|
||||
$("#connection_ssl").val("disable");
|
||||
}
|
||||
});
|
||||
@@ -399,17 +428,12 @@ $(document).ready(function() {
|
||||
e.preventDefault();
|
||||
|
||||
var button = $(this).children("button");
|
||||
var url = $.trim($("#connection_url").val());
|
||||
var ssl = $("#connection_ssl").val();
|
||||
|
||||
var url = getConnectionString();
|
||||
|
||||
if (url.length == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (url.indexOf("sslmode") == -1) {
|
||||
url += "?sslmode=" + ssl;
|
||||
}
|
||||
|
||||
$("#connection_error").hide();
|
||||
button.prop("disabled", true).text("Please wait...");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user