set the DefaultDBType as the default database option in the Installer and Add Site UI

This commit is contained in:
Shaun Walker 2021-06-11 08:43:46 -04:00
parent aa5aca3a8e
commit 8f944e29ac
4 changed files with 33 additions and 5 deletions

View File

@ -30,10 +30,17 @@
@if (_databases != null) @if (_databases != null)
{ {
foreach (var database in _databases) foreach (var database in _databases)
{
if (database.IsDefault)
{
<option value="@database.Name" selected>@Localizer[@database.Name]</option>
}
else
{ {
<option value="@database.Name">@Localizer[@database.Name]</option> <option value="@database.Name">@Localizer[@database.Name]</option>
} }
} }
}
</select> </select>
</td> </td>
</tr> </tr>

View File

@ -129,9 +129,16 @@ else
<td> <td>
<select id="databaseType" class="custom-select" value="@_databaseName" @onchange="(e => DatabaseChanged(e))"> <select id="databaseType" class="custom-select" value="@_databaseName" @onchange="(e => DatabaseChanged(e))">
@foreach (var database in _databases) @foreach (var database in _databases)
{
if (database.IsDefault)
{
<option value="@database.Name" selected>@Localizer[@database.Name]</option>
}
else
{ {
<option value="@database.Name">@Localizer[@database.Name]</option> <option value="@database.Name">@Localizer[@database.Name]</option>
} }
}
</select> </select>
</td> </td>
</tr> </tr>

View File

@ -1,6 +1,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Oqtane.Infrastructure;
using Oqtane.Models; using Oqtane.Models;
using Oqtane.Shared; using Oqtane.Shared;
@ -10,17 +11,25 @@ namespace Oqtane.Controllers
public class DatabaseController : Controller public class DatabaseController : Controller
{ {
private IOptions<List<Database>> _databaseOptions; private IOptions<List<Database>> _databaseOptions;
private IConfigManager _config;
public DatabaseController(IOptions<List<Database>> databaseOptions) public DatabaseController(IOptions<List<Database>> databaseOptions, IConfigManager config)
{ {
_databaseOptions = databaseOptions; _databaseOptions = databaseOptions;
_config = config;
} }
// GET: api/<controller> // GET: api/<controller>
[HttpGet] [HttpGet]
public IEnumerable<Models.Database> Get() public IEnumerable<Database> Get()
{ {
return _databaseOptions.Value; var databases = _databaseOptions.Value;
var master = _config.GetSetting(SettingKeys.DatabaseSection, SettingKeys.DatabaseTypeKey, "");
if (master != "" && databases.Exists(item => item.DBType == master))
{
databases.Find(item => item.DBType == master).IsDefault = true;
}
return databases;
} }
} }
} }

View File

@ -19,5 +19,10 @@ namespace Oqtane.Models
/// Type of DB using the full namespace, like `Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Database.SqlServer` /// Type of DB using the full namespace, like `Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Database.SqlServer`
/// </summary> /// </summary>
public string DBType { get; set; } public string DBType { get; set; }
/// <summary>
/// whether this item is the default database provider ( ie. specified by DefaultDBType in appsettings.json )
/// </summary>
public bool IsDefault { get; set; }
} }
} }