v1.2.11.1

This commit is contained in:
2023-10-16 16:22:45 +01:00
parent fbac433f63
commit 52232331f8
21 changed files with 82 additions and 23 deletions
@@ -18,6 +18,7 @@ using Saxonite.Net.Standard.Base.App;
using Saxonite.Net.Core.Web.Online.Helpers;
using Org.BouncyCastle.Security;
using static Saxonite.Net.Standard.Base.App.Sax;
using System.Text.Json.Serialization;
namespace Saxonite.Net.Core.Web.Online.Controllers
{
@@ -152,6 +153,9 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
/// </summary>
private class AssociationOrganisationData
{
[JsonIgnore]
public SysId OrganisationId { get; set; }
public String Id { get; set; }
public String Name { get; set; }
public String Display
{
@@ -165,6 +169,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
}
public String Region { get; set; }
public String Sport { get; set; }
public String LogoUrl { get; set; }
}
private class OrganisationItemData : OrganisationListData
{
@@ -198,7 +203,6 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
if (!ValidUserSession) return GetAjaxResult_InvalidSession(responseData);
RefreshModel(model);
// Record disposable items as they are created so all can be disposed when needed.
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
{
@@ -281,6 +285,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
colItemTypeFrom, colItemIdFrom, colOrganisationFrom_Name, colOrganisationFrom_SportIdPrimary, colOrganisationFrom_RegionIdPrimary,
colItemTypeTo, colItemIdTo, colOrganisationTo_Name, colOrganisationTo_SportIdPrimary, colOrganisationTo_RegionIdPrimary
};
List<SysId> assocOrganisationIds = new List<SysId>();
SaxItemAssociation.Params prmAssociations = new SaxItemAssociation.Params();
prmAssociations.ItemIdsIncluded.Add(organisation.GetItemId());
prmAssociations.StatusCat = SaxItemAssociation.StatusCat.ActiveOnly;
@@ -308,6 +313,9 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
{
// 'From' item is the 'Other' organisation.
AssociationOrganisationData assocOrgData = new AssociationOrganisationData();
assocOrgData.OrganisationId = itemIdFrom.Id;
assocOrganisationIds.AddId(assocOrgData.OrganisationId);
assocOrgData.Id = model.EncryptId(assocOrgData.OrganisationId);
assocOrgData.Name = values.GetString(colOrganisationFrom_Name.DataName);
if (!orgSportIdFrom.Equals(orgSportIdTo))
assocOrgData.Sport = model.GetSportCaption(orgSportIdFrom);
@@ -319,6 +327,9 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
{
// 'To' item is the 'Other' organisation.
AssociationOrganisationData assocOrgData = new AssociationOrganisationData();
assocOrgData.OrganisationId = itemIdTo.Id;
assocOrganisationIds.AddId(assocOrgData.OrganisationId);
assocOrgData.Id = model.EncryptId(assocOrgData.OrganisationId);
assocOrgData.Name = values.GetString(colOrganisationTo_Name.DataName);
if (!orgSportIdFrom.Equals(orgSportIdTo))
assocOrgData.Sport = model.GetSportCaption(orgSportIdTo);
@@ -328,6 +339,33 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
}
}
}
// Populate Associated Orgaisation Logo URLs.
if (assocOrganisationIds.Any())
{
ColumnDfn colAssocOrganisation_Id = AccountMgr.GetOrganisationColumnDfn(SaxOrganisation.Column.Id);
ColumnDfn colAssocOrganisation_LogoCount = AccountMgr.GetOrganisationColumnDfn(SaxOrganisation.Column.LogoImage_Count);
List<ColumnDfn> columns = new List<ColumnDfn>() { colAssocOrganisation_Id, colAssocOrganisation_LogoCount };
SaxOrganisation.Params prmAssocOrganisation = new SaxOrganisation.Params();
prmAssocOrganisation.IdsIncluded.AddIds(assocOrganisationIds);
using (DbResultSet resultSet = AccountMgr.ExecuteOrganisationQuery(columns, prmAssocOrganisation))
{
while (resultSet != null && resultSet.HasRows && resultSet.NextRecord())
{
NamedValue.Map values = resultSet.GetRecordValues();
SysId assocOrganisationId = new SysId(values.GetLong(colAssocOrganisation_Id.DataName));
if (values.GetLong(colAssocOrganisation_LogoCount.DataName) > 0)
{
foreach (List<AssociationOrganisationData> assocOrganisations in associationTypeGroups.Values)
{
foreach (AssociationOrganisationData assocOrganisation in assocOrganisations.Where(item => item.OrganisationId.Equals(assocOrganisationId)))
assocOrganisation.LogoUrl = GetOrganisationLogoLink(assocOrganisation.OrganisationId, false);
}
}
}
}
}
// Populate associations to response.
foreach (SaxItemAssociation.TypeOptionData associationTypeGroup in associationTypeGroups.Keys.OrderBy(item => (int)item.TypeOption))
{
@@ -41,7 +41,7 @@ namespace Saxonite.Net.Core.Web.Online.Helpers
case Sax.ContactMethod.LinkedIn:
return "<a href='" + url + "' target='" + Sax.Config.Links.Targets.LinkedIn + "'>" + ConstructImageElement("icon/contact/linkedin-24.png") + value + " </a>";
case Sax.ContactMethod.Twitter:
return "<a href='" + url + "' target='" + Sax.Config.Links.Targets.Twitter + "'>" + ConstructImageElement("icon/contact/twitter-24.png") + value + " </a>";
return "<a href='" + url + "' target='" + Sax.Config.Links.Targets.Twitter + "'>" + ConstructImageElement("icon/contact/x-24.png") + value + " </a>";
case Sax.ContactMethod.Facebook:
return "<a href='" + url + "' target='" + Sax.Config.Links.Targets.Facebook + "'>" + ConstructImageElement("icon/contact/facebook-24.png") + value + " </a>";
case Sax.ContactMethod.Instagram:
@@ -146,7 +146,7 @@
</div>
</div>
</div>
<div class="fixed"><img src="" class="OrganisationLogo" alt="" title=""></div>
<div class="fixed"><div style="min-width:48px;"><img src="" class="OrganisationLogo" alt="" title=""></div></div>
</div>
</div>
@@ -14,7 +14,7 @@
{
min-height: 40px;
max-height: 170px;
padding: 2px 4px;
padding: 4px 4px 2px 4px;
border: 1px solid #a0a0a0;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
@@ -23,13 +23,27 @@
#dlgOrganisation .OrganisationAssociations .sax-value .sax-assoc-type
{
padding: 2px 4px 2px 4px;
font-weight: bold;
text-decoration: underline;
background-color: #e0e0e0;
}
#dlgOrganisation .OrganisationAssociations .sax-value .sax-assoc-org
{
padding-left: 12px;
margin: 2px 0 0 12px;
padding: 0 0 0 8px;
}
#dlgOrganisation .OrganisationAssociations .sax-value .sax-assoc-org:hover
{
cursor: pointer;
text-decoration: underline;
}
#dlgOrganisation .OrganisationAssociations .sax-value .sax-assoc-org img.icon
{
height: 24px;
margin-right:4px;
}
</style>
<script type="text/javascript">
@@ -88,14 +88,14 @@
.sax-panel-filter .sax-header .sax-results-paging .sax-action
{
margin: 2px 1px 0 1px;
background-color: #a0a0a0;
opacity: 0.8;
background-color: #c0c0c0;
opacity: 1.0;
box-shadow: 0 0 0 1px #40404080 inset;
}
.sax-panel-filter .sax-header .sax-results-paging .sax-action:hover
{
background-color: #c0c0c0;
background-color: #e0e0e0;
}
/* Panel header - Burger */
Binary file not shown.

After

Width:  |  Height:  |  Size: 362 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 525 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 743 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

@@ -0,0 +1 @@
<svg viewBox="0 0 24 24" aria-hidden="true" class="r-k200y r-18jsvk2 r-4qtqp9 r-yyyyoo r-5sfk15 r-dnmrzs r-kzbkwu r-bnwqim r-1plcrui r-lrvibr"><g><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"></path></g></svg>

After

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 537 B

@@ -144,7 +144,7 @@
{
$assocs.append($("<div class='sax-assoc-type'>").text(assoc.caption));
for (const org of assoc.organisations)
$assocs.append($("<div class='sax-assoc-org'>").text(org.display));
$assocs.append(so.createAssocOrgItem(org));
}
$('.OrganisationAssociations', dlg).toggle(item.associations.length>0);
let contact = [];
@@ -157,6 +157,12 @@
$dlg.org.dialog('option', 'title', item.name || sax.dlg.title.organisation);
sax.openDialog($dlg.org, 720, 800);
}
so.createAssocOrgItem = function (org)
{
let $org = $('<div class="sax-assoc-org">').text(org.display).on('click', function (evt) { so.viewItem(org); });
$org.prepend($('<img class="icon">').prop('src', org.logoUrl || '../img/action/network-24.png'));
return $org;
}
//--------------------------------------------------------------
$(function ()
{