This commit is contained in:
2021-11-01 18:14:21 +00:00
parent ea61d37840
commit 806ebb4024
34 changed files with 766 additions and 411 deletions
@@ -69,6 +69,7 @@ namespace Saxonite.Net.Core.Web.Admin.App
//-------------------------------------------------------------------
// Properties.
public static SaxApplication_Admin AppInstance { get; private set; }
public List<String> Messages { get; } = new List<String>();
public override ISacsDatabase GetCoreDatabase(SaxSessionContext sessionContext)
{
return sessionContexts.GetValue(sessionContext.Index, null)?.CoreDatabase;
@@ -106,6 +107,9 @@ namespace Saxonite.Net.Core.Web.Admin.App
.AddEnvironmentVariables();
SaxConfiguration = builder.Build();
//Messages.Add($"Host: {SaxSystem.ComputerName}");
//Messages.Add($"Config file: appsettings.machine.{SaxSystem.ComputerName}.json");
// Application configuration.
appConfigs = SaxAppConfigHelper.ExtractAppConfigs(SaxConfiguration.GetSection("AppConfigs"));
emailConfigs = SaxEmailConfigHelper.ExtractEmailConfigs(SaxConfiguration.GetSection("EmailConfigs"));
@@ -127,6 +131,9 @@ namespace Saxonite.Net.Core.Web.Admin.App
SaLogger.LogFolder = LoggingRootFolder;
LogApplicationStart(fn);
//Messages.Add($"Database location: {AppConfig.CoreDatabase.Location}");
//Messages.Add($"LoggingRootFolder: {SaLogger.LogFolder}");
// Configure database connection.
SacsDatabaseConsole.OdbcConfig config = new SacsDatabaseConsole.OdbcConfig();
config.location = AppConfig.CoreDatabase.Location;
@@ -136,6 +143,11 @@ namespace Saxonite.Net.Core.Web.Admin.App
if (coreDatabase.HasErrorState())
SaLogger.Warn(fn + " Database initialisation error: " + coreDatabase.ErrorStateMessage);
//Messages.Add($"Database location: {AppConfig.CoreDatabase.Location}");
//Messages.Add($"LoggingRootFolder: {SaLogger.LogFolder}");
//Messages.Add($"OdbcDrivers: {OdbcUtil.GetOdbcDriverNames().Concat(", ")}");
//Messages.Add($"DbConnection: {coreDatabase.ConnectionString}");
// Session context - only one context available/necessary (for now).
SessionContextData sessionContextData = new SessionContextData(new SaxSessionContext_Web(100, Sax.Application.Admin));
sessionContextData.CoreDatabase = coreDatabase;
@@ -181,9 +181,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
// Activate awaiting members and send welcome email to each.
foreach (OrganisationMemberData organisationMember in organisationMembersToActivate)
{
// Ensure that User Organisation has 'Member Admin' role.
if (organisationMember.UserOrganisation == null) continue;
organisationMember.UserOrganisation.AddOrganisationRole(Sax.OrganisationRole.MemberAdmin);
if (AccountMgr.UpdateUserOrganisation(organisationMember.UserOrganisation, DbUpdateInfo))
{
if (organisationMember.UserAccount == null) continue;
@@ -159,6 +159,12 @@
<data name="label.any" xml:space="preserve">
<value>Any</value>
</data>
<data name="label.assigned" xml:space="preserve">
<value>Assigned</value>
</data>
<data name="label.available" xml:space="preserve">
<value>Available</value>
</data>
<data name="label.cancel" xml:space="preserve">
<value>Cancel</value>
</data>
@@ -0,0 +1,113 @@
{
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_dependencyType": "appService.windows"
},
"parameters": {
"resourceGroupName": {
"type": "string",
"defaultValue": "Sportierre",
"metadata": {
"description": "Name of the resource group for the resource. It is recommended to put resources under same resource group for better tracking."
}
},
"resourceGroupLocation": {
"type": "string",
"defaultValue": "westeurope",
"metadata": {
"description": "Location of the resource group. Resource groups could have different location than resources, however by default we use API versions from latest hybrid profile which support all locations for resource types we support."
}
},
"resourceName": {
"type": "string",
"defaultValue": "SportierreAdmin",
"metadata": {
"description": "Name of the main resource to be created by this template."
}
},
"resourceLocation": {
"type": "string",
"defaultValue": "[parameters('resourceGroupLocation')]",
"metadata": {
"description": "Location of the resource. By default use resource group's location, unless the resource provider is not supported there."
}
}
},
"variables": {
"appServicePlan_name": "[concat('Plan', uniqueString(concat(parameters('resourceName'), subscription().subscriptionId)))]",
"appServicePlan_ResourceId": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', parameters('resourceGroupName'), '/providers/Microsoft.Web/serverFarms/', variables('appServicePlan_name'))]"
},
"resources": [
{
"type": "Microsoft.Resources/resourceGroups",
"name": "[parameters('resourceGroupName')]",
"location": "[parameters('resourceGroupLocation')]",
"apiVersion": "2019-10-01"
},
{
"type": "Microsoft.Resources/deployments",
"name": "[concat(parameters('resourceGroupName'), 'Deployment', uniqueString(concat(parameters('resourceName'), subscription().subscriptionId)))]",
"resourceGroup": "[parameters('resourceGroupName')]",
"apiVersion": "2019-10-01",
"dependsOn": [
"[parameters('resourceGroupName')]"
],
"properties": {
"mode": "Incremental",
"template": {
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"location": "[parameters('resourceLocation')]",
"name": "[parameters('resourceName')]",
"type": "Microsoft.Web/sites",
"apiVersion": "2015-08-01",
"tags": {
"[concat('hidden-related:', variables('appServicePlan_ResourceId'))]": "empty"
},
"dependsOn": [
"[variables('appServicePlan_ResourceId')]"
],
"kind": "app",
"properties": {
"name": "[parameters('resourceName')]",
"kind": "app",
"httpsOnly": true,
"reserved": false,
"serverFarmId": "[variables('appServicePlan_ResourceId')]",
"siteConfig": {
"metadata": [
{
"name": "CURRENT_STACK",
"value": "dotnetcore"
}
]
}
},
"identity": {
"type": "SystemAssigned"
}
},
{
"location": "[parameters('resourceLocation')]",
"name": "[variables('appServicePlan_name')]",
"type": "Microsoft.Web/serverFarms",
"apiVersion": "2015-08-01",
"sku": {
"name": "S1",
"tier": "Standard",
"family": "S",
"size": "S1"
},
"properties": {
"name": "[variables('appServicePlan_name')]"
}
}
]
}
}
}
]
}
@@ -1,60 +1,65 @@
@model SaxModel_Admin
@inject SaxLocaliser Localiser
<link rel="stylesheet" href="~/css/sax-selectCode.css?@Model.HrefVersion" />
<script src="~/js/sax-selectCode.js?@Model.HrefVersion"></script>
<script type="text/javascript">
</script>
<link rel="stylesheet" href="~/css/sax-selectCode.css?@Model.HrefVersion" />
<script src="~/js/sax-selectCode.js?@Model.HrefVersion"></script>
<script type="text/javascript">
</script>
<div id="dlgSelectCode" class="sax-dialog sax-form">
<div id="dlgSelectCode" class="sax-dialog sax-form">
@* Filter *@
<div class="">
@* Filter *@
<div class="">
</div>
</div>
<div class="row h-100">
<div class="row h-100">
@* Available codes *@
<div class="col-sm-5">
@* Available codes *@
<div class="col-sm-5">
<div class="h-100 sax-selectCode-codes AvailableCodes">
</div>
</div>
@* Code selection *@
<div class="col-sm-2">
<div class="row">
<div class="col-sx-6 col-sm-12 center">
<button class="sax-button Select">@Localiser["label.select"]</button>
</div>
<div class="col-sx-6 col-sm-12 center">
<button class="sax-button Remove">@Localiser["label.remove"]</button>
</div>
</div>
</div>
@* Selected codes *@
<div class="col-sm-5">
<div class="h-100 sax-selectCode-codes SelectedCodes">
</div>
<div class="h-100 d-flex flex-column">
<div class="">@Localiser["label.available"]:</div>
<div class="spacer"></div>
<div class="sax-selectCode-codes AvailableCodes flex-grow-1 mr-1"></div>
</div>
</div>
<div class="sax-panel-item-template">
<div class="sax-panel-item Code">
<div class="CodeDesc"></div>
@* Code selection *@
<div class="col-sm-2">
<div class="spacer8"></div>
<div class="row">
<div class="col-sx-6 col-sm-12 center">
<button class="sax-button Select">@Localiser["label.select"]</button>
</div>
<div class="col-sx-6 col-sm-12 center">
<button class="sax-button Remove">@Localiser["label.remove"]</button>
</div>
</div>
</div>
@* Selected codes *@
<div class="col-sm-5">
<div class="h-100 d-flex flex-column">
<div class="">@Localiser["label.assigned"]:</div>
<div class="spacer"></div>
<div class="sax-selectCode-codes SelectedCodes flex-grow-1 ml-1"></div>
</div>
</div>
</div>
<div class="sax-panel-item-template">
<div class="sax-panel-item Code">
<div class="CodeDesc"></div>
</div>
</div>
</div>
@@ -16,12 +16,13 @@
{
@Html.HiddenFor(model => model.UserOrganisationId, new { @id = "", @class = "UserOrganisationId" })
}
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmUserEmail"}))
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmUserEmail" }))
{
<input type="hidden" id="" class="UserEmailAddress" name="UserEmailAddress" />
}
<div id="dlgMember" class="sax-dialog" title="">
<div class="spacer"></div>
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmMember", @class = "sax-form", @onSubmit = "return false;" }))
{
@Html.HiddenFor(model => model.UserOrganisationId, new { @id = "", @class = "UserOrganisationId" })
@@ -29,52 +30,77 @@
@* User email *@
<div class="sax-form-control UserEmailAddress">
<div class="sax-label">
<label for="ifMemberUserEmailAddress"><span><span class="required">*</span> @Localiser["label.email.address"]</span></label>
<div class="row">
<div class="col-sm-4">
<div class="sax-label">
<label for="ifMemberUserEmailAddress"><span>@Localiser["label.email.address"]</span>&nbsp;<span class="required">*</span></label>
</div>
</div>
<div class="col-sm">
<div class="sax-control">
@Html.TextBoxFor(model => model.MemberUserEmailAddress, new { @id = "ifMemberUserEmailAddress", @class = "MemberUserEmailAddress sax-input", @maxlength = @Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_EmailAddress) })
</div>
<div class="sax-message"></div>
</div>
</div>
<div class="sax-control">
@Html.TextBoxFor(model => model.MemberUserEmailAddress, new { @id = "ifMemberUserEmailAddress", @class = "MemberUserEmailAddress sax-input", @maxlength = @Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_EmailAddress) })
</div>
<div class="sax-message"></div>
</div>
@* User email *@
<div class="sax-form-control UserName">
<div class="sax-label">
<label for="ifMemberUserName"><span>@Localiser["label.name"]</span></label>
<div class="row">
<div class="col-sm-4">
<div class="sax-label">
<label for="ifMemberUserName"><span>@Localiser["label.name"]</span></label>
</div>
</div>
<div class="col-sm">
<div class="sax-control">
<input type="text" id="ifMemberUserName" class="MemberUserName sax-input" readonly="readonly" />
</div>
<div class="sax-message"></div>
</div>
</div>
<div class="sax-control">
<input type="text" id="ifMemberUserName" class="MemberUserName sax-input" readonly="readonly" />
</div>
<div class="sax-message"></div>
</div>
@* Member roles *@
<div class="sax-form-control MemberRoleCodes">
<div class="sax-label">
<label for="ifMemberRoles"><span>@Localiser["label.roles"]</span></label>
<div class="row">
<div class="col-sm-4">
<div class="sax-label">
<label for="ifMemberRoles"><span>@Localiser["label.roles"]</span></label>
</div>
</div>
<div class="col-sm">
<div class="sax-control row">
@Html.HiddenFor(model => model.MemberRoleCodes, new { @id = "ifMemberRoleCodes", @class = "MemberRoleCodes sax-input" })
<div class="col"><textarea id="ifMemberRoles" class="MemberRoles sax-input" rows="6" readonly="readonly" ondblclick="sax.selectMemberRoles()"></textarea></div>
<div class="fixed"><button id="" class="sax-button" style="min-width:auto;margin-left:4px;padding:4px 6px" onclick="sax.selectMemberRoles()">@Localiser["label.select"]</button></div>
</div>
<div class="sax-message"></div>
</div>
</div>
<div class="sax-control row">
@Html.HiddenFor(model => model.MemberRoleCodes, new { @id = "ifMemberRoleCodes", @class = "MemberRoleCodes sax-input" })
<div class="col"><textarea id="ifMemberRoles" class="MemberRoles sax-input" rows="6" readonly="readonly" ondblclick="sax.selectMemberRoles()"></textarea></div>
<div class="fixed"><button id="" class="sax-button" style="min-width:auto;margin-left:4px;padding:4px 6px" onclick="sax.selectMemberRoles()">@Localiser["label.select"]</button></div>
</div>
<div class="sax-message"></div>
</div>
@* Member status *@
<div class="sax-form-control MemberStatus">
<div class="sax-label">
<label for="cbMemberStatus"><span><span class="required">*</span> @Localiser["label.status"]</span></label>
<div class="row">
<div class="col-sm-4">
<div class="sax-label">
<label for="cbMemberStatus"><span>@Localiser["label.status"]</span>&nbsp;<span class="required">*</span></label>
</div>
</div>
<div class="col-sm">
<div class="sax-control">
<select id="cbMemberStatus" class="sax-select MemberStatus" name="MemberStatusCode"></select>
</div>
<div class="sax-message"></div>
</div>
</div>
<div class="sax-control">
<select id="cbMemberStatus" class="sax-select MemberStatus" name="MemberStatusCode"></select>
</div>
<div class="sax-message"></div>
</div>
}
<partial name="~/Views/Common/SelectCode.cshtml" />
<div class="spacer"></div>
</div>
<partial name="~/Views/Common/SelectCode.cshtml" />
@@ -41,7 +41,7 @@
<div class="row">
<div class="col-sm-4"></div>
<div class="col-sm">
<div class="col-sm-4">
@* Organisation category *@
<div class="sax-form-control OrganisationCategory pr4">
@@ -56,7 +56,7 @@
</div>
<div class="col-sm-6">
<div class="col-sm-4">
@* Organisation type *@
<div class="sax-form-control OrganisationType">
@@ -24,9 +24,9 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
@if (Model.ProhibitCache)
{
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
}
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Script-Type" content="application/javascript" />
@@ -50,7 +50,7 @@
<link rel="stylesheet" href="~/css/sax-form.css?@Model.HrefVersion" />
@foreach (var cssFile in Model.AdditionalFiles_CSS)
{
<link rel="stylesheet" href="~/@cssFile?@Model.HrefVersion" />
<link rel="stylesheet" href="~/@cssFile?@Model.HrefVersion" />
}
@* Scripts *@
@@ -109,52 +109,52 @@
*@
@if (Model.AwaitingLogin)
{
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Policies" asp-action="Privacy">@Localiser["policies.caption.privacy"]</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Security" asp-action="">@Localiser["security.caption.signin"]</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Policies" asp-action="Privacy">@Localiser["policies.caption.privacy"]</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Security" asp-action="">@Localiser["security.caption.signin"]</a>
</li>
}
else
{
<li class="nav-item dropdown">
<a class="nav-link text-dark dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@Localiser["label.reference"]
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<div class="dropdown-item text-dark sax-action" onclick="sax.goToPage('Sport');">@Localiser["sport.caption.sports"]</div>
<div class="dropdown-item text-dark sax-action" onclick="sax.goToPage('Region');">@Localiser["region.caption.regions"]</div>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link text-dark dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@Localiser["label.accounts"]
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<div class="dropdown-item text-dark sax-action" onclick="sax.goToPage('User');">@Localiser["user.caption.users"]</div>
<div class="dropdown-item text-dark sax-action" onclick="sax.goToPage('Organisation');">@Localiser["organisation.caption.organisations"]</div>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link text-dark dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@Localiser["label.system"]
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<div class="dropdown-item text-dark sax-action" onclick="sax.goToPage('System/Database');">@Localiser["label.database"]</div>
<div class="dropdown-item text-dark sax-action" onclick="sax.goToPage('System/Logs');">@Localiser["label.logs"]</div>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link text-dark dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@Localiser["label.security"]
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<div class="dropdown-item text-dark sax-action" onclick="sax.navigateTo('Security/ChangePassword');">@Localiser["security.caption.change.password"]</div>
<div class="dropdown-divider"></div>
<div class="dropdown-item text-dark sax-action" onclick="sax.onSignOut();">@Localiser["security.caption.signout"]</div>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link text-dark dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@Localiser["label.reference"]
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<div class="dropdown-item text-dark sax-action" onclick="sax.goToPage('Sport');">@Localiser["sport.caption.sports"]</div>
<div class="dropdown-item text-dark sax-action" onclick="sax.goToPage('Region');">@Localiser["region.caption.regions"]</div>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link text-dark dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@Localiser["label.accounts"]
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<div class="dropdown-item text-dark sax-action" onclick="sax.goToPage('User');">@Localiser["user.caption.users"]</div>
<div class="dropdown-item text-dark sax-action" onclick="sax.goToPage('Organisation');">@Localiser["organisation.caption.organisations"]</div>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link text-dark dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@Localiser["label.system"]
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<div class="dropdown-item text-dark sax-action" onclick="sax.goToPage('System/Database');">@Localiser["label.database"]</div>
<div class="dropdown-item text-dark sax-action" onclick="sax.goToPage('System/Logs');">@Localiser["label.logs"]</div>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link text-dark dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@Localiser["label.security"]
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<div class="dropdown-item text-dark sax-action" onclick="sax.navigateTo('Security/ChangePassword');">@Localiser["security.caption.change.password"]</div>
<div class="dropdown-divider"></div>
<div class="dropdown-item text-dark sax-action" onclick="sax.onSignOut();">@Localiser["security.caption.signout"]</div>
</div>
</li>
}
</ul>
</div>
@@ -164,9 +164,9 @@
@* Page caption *@
@if (!StringUtil.IsEmpty(Model.PageCaption))
{
<div class="container">
<div class="sax-page-caption">@(Model.PageCaption)</div>
</div>
<div class="container">
<div class="sax-page-caption">@(Model.PageCaption)</div>
</div>
}
</header>
@@ -181,7 +181,15 @@
@* Footer *@
<footer id="sax-page-footer" class="border-top footer text-muted">
<div class="container">
@(Model.CopyrightNotice) - @Localiser["company.name"] @(Model.InstanceVersion)
<div class="row">
<div class="col-sm">@(Model.CopyrightNotice) - @Localiser["company.name"] @(Model.InstanceVersion)</div>
<div class="fixed-sm">
<div style="padding-top:4px;font-size:.8rem;line-height:1.2;">
@* Application messages - for debugging. *@
@(new Microsoft.AspNetCore.Html.HtmlString(Saxonite.Net.Core.Web.Admin.App.SaxApplication_Admin.AppInstance.Messages.Concat("<br/>")))
</div>
</div>
</div>
</div>
</footer>
@@ -212,11 +220,11 @@
<script src="~/js/sax-main.js?@Model.HrefVersion"></script>
@foreach (var jsFile in Model.AdditionalFiles_JS)
{
<script src="~/@jsFile?@Model.HrefVersion"></script>
<script src="~/@jsFile?@Model.HrefVersion"></script>
}
@if (Model.IncludeGoogleAnalytics)
{
<partial name="~/Views/Shared/_GoogleAnalytics.cshtml" />
<partial name="~/Views/Shared/_GoogleAnalytics.cshtml" />
}
@RenderSection("Scripts", required: false)
@@ -0,0 +1,55 @@
{
"AppConfigs": {
"SAX-Prod": {
"Environments": [ "Production" ],
"Instance": "",
"URLs": {
"Online": {
"Root": "https://sportierre.com/"
}
},
"CoreDatabase": {
"Location": "MsSql:sportierre.database.windows.net\\Saxonite_Core_Demo",
"User": "dbadmin",
"Password": "azdb-sport-1970!"
},
"Security": {
"Password": {
"MinLength": 9
},
"SignIn": {
"KeepLoggedIn": {
"Allowed": true,
"CookieExpiresDays": 5
},
"PasswordRequest": {
"LinkExpiresMins": 30
}
}
},
"Email": {
"Context": "SAX-SF-Prod",
"ContactUs": {
"AddressesTo": [],
"AddressesBcc": [ "info@sportierre.com" ]
},
"Signup": {
"Activate": {
"AddressesBcc": [ "info@sportierre.com" ]
},
"Welcome": {
"AddressesBcc": [ "info@sportierre.com" ]
}
}
},
"Documents": {
"RootFolder": "D:\\Home\\Logfiles\\Application\\Saxonite\\Admin\\Docs"
},
"Logging": {
"RootFolder": "D:\\Home\\Logfiles\\Application\\Saxonite\\Admin\\Logs"
},
"Variants": [
]
}
}
}
@@ -28,7 +28,7 @@ html
{
html
{
font-size: 16px;
font-size: 14px;
}
}
@@ -6,7 +6,7 @@
{
"use strict";
let op = sax.mdl.organisations = sax.mdl.organisations || { data: {}, ajax: {} };
let $pnl = sax.$pnl, $frm = sax.$frm, $dlg = sax.$dlg;
let $pnl = op.$pnl = {}, $frm = op.$frm = {}, $dlg = op.$dlg = {};
sax.itemIdPrefix = 'Itm_';
//--------------------------------------------------------------
@@ -200,7 +200,7 @@
$('.OrganisationStatus', frm).val(sax.data.defaultStatusCode);
sax.clearControlErrors();
$dlg.organisation.dialog('option', 'title', sax.dlg.title.createOrganisation);
sax.openDialog($dlg.organisation, 600, 600);
sax.openDialog($dlg.organisation, 600, 480);
}
//--------------------------------------------------------------
@@ -228,7 +228,7 @@
$('.OrganisationStatus', frm).val(item.statusCode);
sax.clearControlErrors();
$dlg.organisation.dialog('option', 'title', sax.dlg.title.updateOrganisation);
sax.openDialog($dlg.organisation, 600, 600);
sax.openDialog($dlg.organisation, 600, 480);
}
//--------------------------------------------------------------
@@ -269,7 +269,6 @@
sax.debug('showActivationInfo', response);
if (!response.success || !response.organisation) return;
let item = response.organisation;
let $dlg = $dlg.activate;
let frm = $('#frmOrganisationActivation');
$('.OrganisationId', frm).val($('.OrganisationId', $frm.orgId).val());
let popItemValue = function (sel, val)
@@ -281,7 +280,7 @@
popItemValue('.OrganisationRegion', item.regionNameCountry);
popItemValue('.OrganisationCategory', item.categoryDesc);
popItemValue('.OrganisationAddress', item.addressSummary);
let $orgMbrs = $('.OrganisationMembers', $dlg).empty();
let $orgMbrs = $('.OrganisationMembers', $dlg.activate).empty();
let $mbrTmpl = $('.sax-panel-item-template tr.sax-item.Member');
sax.debug(response.members, $orgMbrs, $mbrTmpl);
for (let idx = 0; idx < response.members.length; idx++)
@@ -295,7 +294,7 @@
$orgMbrs.append($item);
sax.debug($item);
}
sax.openDialog($dlg, 480, 640);
sax.openDialog($dlg.activate, 480, 420);
}
sax.activateOrganisation = function ()
{
@@ -135,11 +135,7 @@
sax.clearControlErrors();
sax.member = { roleCodes: [] };
sax.$dlg.member.dialog('option', 'title', sax.dlg.title.createMember);
sax.openDialog(sax.$dlg.member, 600, 600);
}
sax.doCreateItem = function ()
{
sax.storeItem();
sax.openDialog(sax.$dlg.member, 600, 480);
}
//--------------------------------------------------------------
@@ -165,11 +161,7 @@
$('.MemberStatus', $frm).val(item.statusCode);
sax.clearControlErrors();
sax.$dlg.member.dialog('option', 'title', sax.dlg.title.updateMember);
sax.openDialog(sax.$dlg.member, 600, 600);
}
sax.doUpdateItem = function ()
{
sax.storeItem();
sax.openDialog(sax.$dlg.member, 600, 480);
}
//--------------------------------------------------------------
@@ -208,7 +200,7 @@
$('#ifMemberUserEmailAddress', sax.$frm.member).on('change', function () { sax.onChangeEmail(); });
var opt = sax.dlgOpts();
opt.buttons[sax.dlg.btn.ok] = function () { sax.doCreateItem(); };
opt.buttons[sax.dlg.btn.ok] = function () { sax.storeItem(); };
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); };
sax.$dlg.member = $('#dlgMember').dialog(opt);
@@ -101,10 +101,6 @@
sax.$dlg.region.dialog('option', 'title', sax.dlg.title.createRegion);
sax.openDialog(sax.$dlg.region, 600, 600);
}
sax.doCreateItem = function ()
{
sax.storeItem();
}
//--------------------------------------------------------------
sax.updateItem = function (id)
@@ -131,10 +127,6 @@
sax.$dlg.region.dialog('option', 'title', sax.dlg.title.updateRegion);
sax.openDialog(sax.$dlg.region, 600, 600);
}
sax.doUpdateItem = function ()
{
sax.storeItem();
}
//--------------------------------------------------------------
sax.storeItem = function ()
@@ -174,7 +166,7 @@
sax.$frm.region = $('#frmRegion');
var opt = sax.dlgOpts();
opt.buttons[sax.dlg.btn.ok] = function () { sax.doCreateItem(); };
opt.buttons[sax.dlg.btn.ok] = function () { sax.storeItem(); };
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); };
sax.$dlg.region = $('#dlgRegion').dialog(opt);
@@ -75,10 +75,6 @@
sax.$dlg.dbTable.dialog('option', 'title', sax.dlg.title.viewDatabaseTable);
sax.openDialog(sax.$dlg.dbTable, 600, 600);
}
sax.doUpdateItem = function ()
{
sax.storeItem();
}
//--------------------------------------------------------------
$(function ()
@@ -92,7 +88,7 @@
sax.$frm.dbTable = $('#frmDatabaseTable');
var opt = sax.dlgOpts();
opt.buttons[sax.dlg.btn.ok] = function () { sax.doCreateItem(); };
opt.buttons[sax.dlg.btn.ok] = function () { sax.storeItem(); };
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); };
sax.$dlg.dbTable = $('#dlgDatabaseTable').dialog(opt);
+3 -3
View File
@@ -210,7 +210,7 @@
sax.clearControlErrors();
sax.userAccount = { userRoleCodes: [] };
$dlg.user.dialog('option', 'title', sax.dlg.title.createUser);
sax.openDialog($dlg.user, 600, 600);
sax.openDialog($dlg.user, 600, 480);
}
//--------------------------------------------------------------
@@ -237,7 +237,7 @@
$('#ifUserRoleCodes').val(item.userRoleCodes.join(sax.data.userRoleCodeDelim));
$('.UserStatus', frm).val(item.statusCode);
$dlg.user.dialog('option', 'title', sax.dlg.title.updateUser);
sax.openDialog($dlg.user, 600, 600);
sax.openDialog($dlg.user, 600, 480);
}
//--------------------------------------------------------------
@@ -274,7 +274,7 @@
$('.RequestPasswordAdminOption', frm).toggle(item.systemAdmin);
$('input[type="checkbox"]', frm).prop('checked', false);
$dlg.emails.dialog('option', { 'title': sax.dlg.title.selectUserEmails });
sax.openDialog($dlg.emails, 600, 600);
sax.openDialog($dlg.emails, 600, 360);
}
sax.sendUserEmails = function ()
{