Skip to content

Support PostgreSQL #88

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,6 @@

# Dependency directories (remove the comment below to include it)
# vendor/

# Project runtime log
logs/*.log
File renamed without changes.
7 changes: 5 additions & 2 deletions assets/templates/admin/admin_modify_password.html
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,11 @@
okay: {
text: '关闭',
action: function () {
parent.window.close();
window.open("/login");
if (window.frames.length !== parent.frames.length) {
parent.window.open("/login",'_self');
}else{
window.open("/login",'_self');
}
}
}
}
Expand Down
7 changes: 5 additions & 2 deletions assets/templates/index/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -281,8 +281,11 @@
$.cookie('_nav_title_', '');
$.cookie('_login_token_', '');

parent.window.close();
window.open("/login");
if (window.frames.length !== parent.frames.length) {
parent.window.open("/login",'_self');
}else{
window.open("/login",'_self');
}
},
function (response) {
AjaxError(response);
Expand Down
166 changes: 95 additions & 71 deletions assets/templates/install/install_view.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,13 @@
<link href="/assets/bootstrap/js/jquery-confirm/jquery-confirm.min.css" rel="stylesheet">
<link href="/assets/bootstrap/css/materialdesignicons.min.css" rel="stylesheet">
<link href="/assets/bootstrap/css/style.min.css" rel="stylesheet">
<style>
.btn-group .active {
background-color: #33cabb;
color: white;
border: #33cabb;
}
</style>
</head>

<body>
Expand All @@ -27,7 +34,8 @@
<div class="card-body">
<h5 class="card-title"><span class="badge badge-info">检测 · 环境</span></h5>
<div class="input-group mb-3">
<p class="text-left">所需版本:<code>go{{.MinGoVersion}}+</code> (<small>当前版本 </small><code>{{.GoVersion}}</code>)</p>
<p class="text-left">所需版本:<code>go{{.MinGoVersion}}+</code> (<small>当前版本 </small><code>{{.GoVersion}}</code>)
</p>
</div>

<h5 class="card-title"><span class="badge badge-info">配置 · 语言</span></h5>
Expand Down Expand Up @@ -67,42 +75,57 @@ <h5 class="card-title"><span class="badge badge-info">配置 · Redis</span></h5
placeholder="请输入 DB ,序号从 0 开始,默认是 0">
</div>

<h5 class="card-title"><span class="badge badge-info">配置 · MySQL</span></h5>
<h5 class="card-title"><span class="badge badge-info">配置 · 数据库</span></h5>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">地址</span>
<span class="input-group-text">数据库类型</span>
</div>
<input type="text" class="form-control" id="mysql_addr" value="{{ .Config.MySQL.Write.Addr }}"
placeholder="请输入服务器地址,例如:127.0.0.1:3306">
<select class="form-control select-picker col-lg-3" data-width="auto"
data-live-search="true" id="database_type">
<option value="Mysql">MySQL</option>
<option value="Postgresql">PostgreSQL</option>
</select>
</div>

<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">用户</span>
<div class="Mysql">
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">地址</span>
</div>
<input type="text" class="form-control" id="database_addr"
value="{{ .Config.MySQL.Write.Addr }}"
placeholder="请输入服务器地址,例如:127.0.0.1:3306">
</div>
<input type="text" class="form-control" id="mysql_user" value="{{ .Config.MySQL.Write.User }}"
placeholder="请输入用户名">
</div>

<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">密码</span>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">用户</span>
</div>
<input type="text" class="form-control" id="database_user"
value="{{ .Config.MySQL.Write.User }}"
placeholder="请输入用户名">
</div>
<input type="password" class="form-control" id="mysql_pass" value="{{ .Config.MySQL.Write.Pass }}"
placeholder="请输入密码">
</div>

<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">DB </span>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">密码</span>
</div>
<input type="password" class="form-control" id="database_pass"
value="{{ .Config.MySQL.Write.Pass }}"
placeholder="请输入密码">
</div>
<input type="text" class="form-control" id="mysql_name" value="{{ .Config.MySQL.Write.Name }}"
placeholder="请输入数据库名">
<div class="input-group-append">
<span class="input-group-text"><code>请确保此数据库已存在!</code></span>

<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">DB </span>
</div>
<input type="text" class="form-control" id="database_name"
value="{{ .Config.MySQL.Write.Name }}"
placeholder="请输入数据库名">
<div class="input-group-append">
<span class="input-group-text"><code>请确保此数据库已存在!</code></span>
</div>
</div>
</div>

<button type="button" id="btnOk" class="btn btn-primary">初始化项目</button>
<button type="button" id="btnLoading" class="btn btn-primary" disabled style="display: none">
<span class="spinner-grow spinner-grow-sm" role="status" aria-hidden="true"></span>
Expand Down Expand Up @@ -159,64 +182,65 @@ <h5 class="card-title"><span class="badge badge-info">配置 · MySQL</span></h5
});
return false;
}
const database_addr = $("#database_addr").val();
if (database_addr === "") {
$.alert({
title: '温馨提示',
icon: 'mdi mdi-alert',
type: 'orange',
content: '请输入 MySQL 服务器地址。',
});
return false;
}

const mysql_addr = $("#mysql_addr").val();
if (mysql_addr === "") {
$.alert({
title: '温馨提示',
icon: 'mdi mdi-alert',
type: 'orange',
content: '请输入 MySQL 服务器地址。',
});
return false;
}
const database_user = $("#database_user").val();
if (database_user === "") {
$.alert({
title: '温馨提示',
icon: 'mdi mdi-alert',
type: 'orange',
content: '请输入 MySQL 用户名。',
});
return false;
}

const mysql_user = $("#mysql_user").val();
if (mysql_user === "") {
$.alert({
title: '温馨提示',
icon: 'mdi mdi-alert',
type: 'orange',
content: '请输入 MySQL 用户名。',
});
return false;
}
const database_pass = $("#database_pass").val();
if (database_pass === "") {
$.alert({
title: '温馨提示',
icon: 'mdi mdi-alert',
type: 'orange',
content: '请输入 MySQL 密码。',
});
return false;
}

const mysql_pass = $("#mysql_pass").val();
if (mysql_pass === "") {
$.alert({
title: '温馨提示',
icon: 'mdi mdi-alert',
type: 'orange',
content: '请输入 MySQL 密码。',
});
return false;
}
const database_name = $("#database_name").val();
if (database_name === "") {
$.alert({
title: '温馨提示',
icon: 'mdi mdi-alert',
type: 'orange',
content: '请输入 MySQL 数据库名。',
});
return false;
}

const mysql_name = $("#mysql_name").val();
if (mysql_name === "") {
$.alert({
title: '温馨提示',
icon: 'mdi mdi-alert',
type: 'orange',
content: '请输入 MySQL 数据库名。',
});
return false;
}

const postData = {
language: $("#language").val(),

redis_addr: redis_addr,
redis_pass: $("#redis_pass").val(),
redis_db: redis_db,
database_type: $('#database_type').val(),

mysql_addr: mysql_addr,
mysql_user: mysql_user,
mysql_pass: mysql_pass,
mysql_name: mysql_name,
database_addr: database_addr,
database_user: database_user,
database_pass: database_pass,
database_name: database_name,
};

console.log('postData', postData);
AjaxForm(
"POST",
"/install/execute",
Expand Down
27 changes: 24 additions & 3 deletions assets/templates/tool/tool_data.html
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
<div class="card-body">
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" data-toggle="tab" href="#mysql" aria-selected="true">MySQL</a>
<a class="nav-link active" data-toggle="tab" href="#mysql" aria-selected="true" id="SQLType">MySQL</a>
</li>
</ul>

Expand Down Expand Up @@ -107,6 +107,7 @@
<script type="text/javascript" src="/assets/bootstrap/js/bootstrap-select/i18n/defaults-zh_CN.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var db_type
$('.select-picker').selectpicker();

AjaxForm(
Expand All @@ -116,6 +117,7 @@
function () {
},
function (data) {
db_type=data.db_type
$.each(data.list, function (index, value) {
$("#db").append("<option value='" + value.db_name + "'>" + value.db_name + "</option>");
});
Expand All @@ -124,20 +126,39 @@
$("#db").selectpicker('refresh');

getTables($('#db option:selected').val());
if (db_type==="Mysql"){
console.log( $('#SQLType').html("MySQL"));
}
if (db_type==='Postgresql'){
console.log($('#SQLType').html("PostgreSQL"));
}
},
function (response) {
AjaxError(response);
}
);


$('.btn-select').on('click', function () {
const table = $('#table option:selected').val();
$("#sql").val("SELECT * FROM `" + table + "` ORDER BY 1 DESC");

if (db_type==="Mysql"){
$("#sql").val("SELECT * FROM `" + table + "` ORDER BY 1 DESC");
}
if (db_type==="Postgresql"){
$("#sql").val("SELECT * FROM \"" + table + "\" ORDER BY 1 DESC");
}
});

$('.btn-show-create').on('click', function () {
const table = $('#table option:selected').val();
$("#sql").val("SHOW CREATE TABLE `" + table + "` ");

if (db_type==="Mysql"){
$("#sql").val("SHOW CREATE TABLE `" + table + "` ");
}
if (db_type==="Postgresql"){
$("#sql").val("SELECT tabledef ('public','" + table + "') ");
}
});

$('.btn-format').on('click', function () {
Expand Down
Loading