108 lines
4.0 KiB
Plaintext
108 lines
4.0 KiB
Plaintext
@namespace Oqtane.Installer.Controls
|
|
@implements Oqtane.Interfaces.IDatabaseConfigControl
|
|
@inject IStringLocalizer<PostgreSQLConfig> Localizer
|
|
@inject IStringLocalizer<SharedResources> SharedLocalizer
|
|
|
|
<div class="row mb-1 align-items-center">
|
|
<Label Class="col-sm-3" For="server" HelpText="Enter the database server" ResourceKey="Server">Server:</Label>
|
|
<div class="col-sm-9">
|
|
<input id="server" type="text" class="form-control" @bind="@_server" />
|
|
</div>
|
|
</div>
|
|
<div class="row mb-1 align-items-center">
|
|
<Label Class="col-sm-3" For="port" HelpText="Enter the port used to connect to the server" ResourceKey="Port">Port:</Label>
|
|
<div class="col-sm-9">
|
|
<input id="port" type="text" class="form-control" @bind="@_port" />
|
|
</div>
|
|
</div>
|
|
<div class="row mb-1 align-items-center">
|
|
<Label Class="col-sm-3" For="database" HelpText="Enter the name of the database" ResourceKey="Database">Database:</Label>
|
|
<div class="col-sm-9">
|
|
<input id="database" type="text" class="form-control" @bind="@_database" />
|
|
</div>
|
|
</div>
|
|
<div class="row mb-1 align-items-center">
|
|
<Label Class="col-sm-3" For="security" HelpText="Select your security method" ResourceKey="Security">Security:</Label>
|
|
<div class="col-sm-9">
|
|
<select id="security" class="form-select custom-select" @bind="@_security">
|
|
<option value="integrated" selected>@Localizer["Integrated"]</option>
|
|
<option value="custom">@Localizer["Custom"]</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
@if (_security == "custom")
|
|
{
|
|
<div class="row mb-1 align-items-center">
|
|
<Label Class="col-sm-3" For="uid" HelpText="Enter the username to use for the database" ResourceKey="Uid">User Id:</Label>
|
|
<div class="col-sm-9">
|
|
<input id="uid" type="text" class="form-control" @bind="@_uid" />
|
|
</div>
|
|
</div>
|
|
<div class="row mb-1 align-items-center">
|
|
<Label Class="col-sm-3" For="pwd" HelpText="Enter the password to use for the database" ResourceKey="Pwd">Password:</Label>
|
|
<div class="col-sm-9">
|
|
<div class="input-group">
|
|
<input id="pwd" type="@_passwordType" class="form-control" @bind="@_pwd" autocomplete="new-password" />
|
|
<button type="button" class="btn btn-secondary" @onclick="@TogglePassword" tabindex="-1">@_togglePassword</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
@code {
|
|
private string _server = "127.0.0.1";
|
|
private string _port = "5432";
|
|
private string _database = "Oqtane-" + DateTime.UtcNow.ToString("yyyyMMddHHmm");
|
|
private string _security = "integrated";
|
|
private string _uid = String.Empty;
|
|
private string _pwd = String.Empty;
|
|
private string _passwordType = "password";
|
|
private string _togglePassword = string.Empty;
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
_togglePassword = SharedLocalizer["ShowPassword"];
|
|
}
|
|
|
|
public string GetConnectionString()
|
|
{
|
|
var connectionString = String.Empty;
|
|
|
|
if (!String.IsNullOrEmpty(_server) && !String.IsNullOrEmpty(_database) && !String.IsNullOrEmpty(_port))
|
|
{
|
|
connectionString = $"Server={_server};Port={_port};Database={_database};";
|
|
}
|
|
|
|
if (_security == "integrated")
|
|
{
|
|
connectionString += "Integrated Security=true;";
|
|
}
|
|
else
|
|
{
|
|
if (!String.IsNullOrEmpty(_uid) && !String.IsNullOrEmpty(_pwd))
|
|
{
|
|
connectionString += $"User ID={_uid};Password={_pwd};";
|
|
}
|
|
else
|
|
{
|
|
connectionString = String.Empty;
|
|
}
|
|
}
|
|
|
|
return connectionString;
|
|
}
|
|
|
|
private void TogglePassword()
|
|
{
|
|
if (_passwordType == "password")
|
|
{
|
|
_passwordType = "text";
|
|
_togglePassword = SharedLocalizer["HidePassword"];
|
|
}
|
|
else
|
|
{
|
|
_passwordType = "password";
|
|
_togglePassword = SharedLocalizer["ShowPassword"];
|
|
}
|
|
}
|
|
} |