@model Disco.Web.Areas.Config.Models.SystemConfig.IndexModel @{ Authorization.Require(Claims.Config.System.Show); var canConfigProxy = Authorization.Has(Claims.Config.System.ConfigureProxy); var canConfigAD = Authorization.Has(Claims.Config.System.ConfigureActiveDirectory); ViewBag.Title = Html.ToBreadcrumb("Configuration", MVC.Config.Config.Index(), "System"); if (canConfigAD) { Html.BundleDeferred("~/Style/Fancytree"); Html.BundleDeferred("~/ClientScripts/Modules/jQuery-Fancytree"); Html.BundleDeferred("~/ClientScripts/Modules/Disco-PropertyChangeHelpers"); } }
Disco Version:
@Model.DiscoVersion.ToString(4)
Built @CommonHelpers.FriendlyDate(Model.DiscoVersionBuilt, "Unknown")
Database Connection: @{if (Model.DatabaseSqlAuthUsername != null) { } }
Server: @Model.DatabaseServer
Database: @Model.DatabaseName
Authentication: @Model.DatabaseAuthentication
SQL User: @Model.DatabaseSqlAuthUsername
Data Store Location: @Model.DataStoreLocation

Updates

@{ if (Model.UpdateLatestResponse == null) { } else { if (Model.UpdateLatestResponse.IsUpdatable(typeof(DiscoApplication).Assembly.GetName().Version)) { } else { } } }
Last Check:
 Never
Last Run: @CommonHelpers.FriendlyDate(Model.UpdateLatestResponse.ResponseTimestamp)
Update Available:
 Version @(Model.UpdateLatestResponse.Version) is available
[Released @(CommonHelpers.FriendlyDate(Model.UpdateLatestResponse.VersionReleasedTimestamp))]
@(new HtmlString(Model.UpdateLatestResponse.Blurb))
Download Now
Status:  The latest version is installed
Check for Update: @{ if (Model.UpdateRunningStatus == null) { @Html.ActionLinkSmallButton("Check Now", MVC.API.System.UpdateCheck()) [Will run automatically @CommonHelpers.FriendlyDate(Model.UpdateNextScheduled, "Unknown")] } else { @Html.ActionLink("View Status", MVC.Config.Logging.TaskStatus(Model.UpdateRunningStatus.SessionId)) [Running Now] } } @if (Model.UpdateBetaDeployment) {
 Beta Deployment }

Active Directory

Primary Domain: @Model.ADPrimaryDomain.DnsName [@Model.ADPrimaryDomain.NetBiosName]
Additional Domains: @if (Model.ADAdditionalDomains.Count > 0) { var adDomainFirst = Model.ADAdditionalDomains.First(); @adDomainFirst.DnsName [@adDomainFirst.NetBiosName] foreach (var adDomain in Model.ADAdditionalDomains.Skip(1)) {
@adDomain.DnsName [@adDomain.NetBiosName]
} } else { <None> }
Site: @Model.ADSite.Name
@if (Model.ADSiteServers.Count > 0) { Servers:
    @foreach (var siteServer in Model.ADSiteServers) { var server = siteServer.Item1; var reachable = siteServer.Item2;
  •  @(server.Name)
  • }
} else {
 None Found
}
Forest: @if (Model.ADForestServers == null) {
@Html.CheckBoxFor(m => m.ADSearchEntireForest, new { disabled = "disabled" }) @Html.LabelFor(m => m.ADSearchEntireForest)
 Forest servers are currently being retrieved.
Try refreshing this page in a moment.
} else { if (canConfigAD) { var canSearchEntireForest = (Model.ADForestServers.Count <= Disco.Services.Interop.ActiveDirectory.ActiveDirectory.MaxForestServerSearch);
@if (!canSearchEntireForest) { @Html.CheckBoxFor(m => m.ADSearchEntireForest, new { disabled = "disabled" }) @Html.LabelFor(m => m.ADSearchEntireForest)
 Disco will not search entire forests which consist of more than @(Disco.Services.Interop.ActiveDirectory.ActiveDirectory.MaxForestServerSearch) servers. Only servers within this site will be searched.
} else { @Html.CheckBoxFor(m => m.ADSearchEntireForest) @Html.LabelFor(m => m.ADSearchEntireForest) @AjaxHelpers.AjaxLoader()
If this setting is enabled, Disco will search all servers within the forest rather than only servers within this site.
}
} else {
@Html.CheckBoxFor(m => m.ADSearchEntireForest, new { disabled = "disabled" }) @Html.LabelFor(m => m.ADSearchEntireForest)
If this setting is enabled, Disco will search all servers within the forest rather than only servers within this site.
}

Servers:
    @foreach (var server in Model.ADForestServers.OrderBy(s => s)) {
  • @server @(Model.ADSiteServers.Count(ss => ss.Item1.Name.Equals(server, StringComparison.InvariantCultureIgnoreCase)) > 0 ? "[Site Server]" : null)
  • }
}
Search Scope: @if (Model.ADSearchContainers != null && Model.ADSearchContainers.Count > 0) {
Searching is restricted to the following Organisational Unit containers
    @foreach (var adContainer in Model.ADSearchContainers) {
  • @adContainer.Item3
  • }
} else {
No restrictions are in effect.
When searching, the entire domain will be queried. This is suitable for most single-domain deployments.
} @if (canConfigAD) {
@using (Html.BeginForm(MVC.API.System.UpdateActiveDirectorySearchScope(null, redirect: true))) { }
}
@if (canConfigProxy) { using (Html.BeginForm(MVC.API.System.UpdateProxySettings())) {

Proxy Settings

Address: @Html.EditorFor(m => m.ProxyAddress)
@Html.ValidationMessageFor(m => m.ProxyAddress)
Port: @Html.EditorFor(m => m.ProxyPort)
@Html.ValidationMessageFor(m => m.ProxyPort)
Username: @Html.EditorFor(m => m.ProxyUsername)
@Html.ValidationMessageFor(m => m.ProxyUsername)
Password: @Html.EditorFor(m => m.ProxyPassword)
@Html.ValidationMessageFor(m => m.ProxyPassword)
 
} } else {

Proxy Settings

Address: @Html.DisplayFor(m => m.ProxyAddress)
Port: @Html.DisplayFor(m => m.ProxyPort)
Username: @Html.DisplayFor(m => m.ProxyUsername)
Password: ********
}
@Html.ActionLinkButton("Update Device Last Network Logons", MVC.API.System.UpdateLastNetworkLogonDates())