v1.2.2
This commit is contained in:
@@ -100,6 +100,8 @@ namespace Saxonite.Net.Core.Web.Base.Consoles
|
|||||||
prmActivityIndex.EffectiveFrom = context.EffectiveFrom;
|
prmActivityIndex.EffectiveFrom = context.EffectiveFrom;
|
||||||
prmActivityIndex.EffectiveTo = context.EffectiveTo;
|
prmActivityIndex.EffectiveTo = context.EffectiveTo;
|
||||||
prmActivityIndex.Alias_ActivityIndex = alias_ActivityIndex;
|
prmActivityIndex.Alias_ActivityIndex = alias_ActivityIndex;
|
||||||
|
prmActivityIndex.ResultsPaging.PageNo = 1;
|
||||||
|
prmActivityIndex.ResultsPaging.PageLength = 100;
|
||||||
query.Filters.AddRange(internals.ActivityMgr.GetActivityIndexQueryFilter(prmActivityIndex));
|
query.Filters.AddRange(internals.ActivityMgr.GetActivityIndexQueryFilter(prmActivityIndex));
|
||||||
|
|
||||||
// First pass, note the activity Item and effective date.
|
// First pass, note the activity Item and effective date.
|
||||||
@@ -137,7 +139,8 @@ namespace Saxonite.Net.Core.Web.Base.Consoles
|
|||||||
{
|
{
|
||||||
PopulateUserActivityDetails(context, activities);
|
PopulateUserActivityDetails(context, activities);
|
||||||
PopulateArticleDetails(context, activities);
|
PopulateArticleDetails(context, activities);
|
||||||
PopulateOrganisationOpportunitiesDetails(context, activities);
|
PopulateOrganisationEventDetails(context, activities);
|
||||||
|
PopulateOrganisationOpportunityDetails(context, activities);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
@@ -247,9 +250,67 @@ namespace Saxonite.Net.Core.Web.Base.Consoles
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
// Organisation Event details.
|
||||||
|
private void PopulateOrganisationEventDetails(IndexContext context, List<ActivityData_Web> activities)
|
||||||
|
{
|
||||||
|
// Extract organisationEvent Ids.
|
||||||
|
List<SysId> organisationEventIds = activities.FindAll(item => item.ItemId.Type == (int)Sax.DataItemType.OrganisationEvent).Select(ItemId => ItemId.ItemId.Id).ToList();
|
||||||
|
if (organisationEventIds.IsEmpty()) return;
|
||||||
|
|
||||||
|
// Event columns - limit to essential information.
|
||||||
|
ColumnDfn colId = Internals.ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.Id);
|
||||||
|
ColumnDfn colOrganisationId = Internals.ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.OrganisationId);
|
||||||
|
ColumnDfn colOrganisation = Internals.ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.Organisation_Name);
|
||||||
|
ColumnDfn colEventAt = Internals.ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.EventAt_DateTime);
|
||||||
|
ColumnDfn colSummary = Internals.ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.Summary);
|
||||||
|
ColumnDfn colDetails = Internals.ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.Details);
|
||||||
|
ColumnDfn colSportId = Internals.ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.SportIdPrimary);
|
||||||
|
ColumnDfn colSportName = Internals.ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.Sport_Name);
|
||||||
|
ColumnDfn colRegionId = Internals.ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.RegionIdCountry);
|
||||||
|
ColumnDfn colRegionName = Internals.ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.Region_Name);
|
||||||
|
List<ColumnDfn> columns = new List<ColumnDfn>() { colId, colOrganisationId, colOrganisation, colEventAt, colSummary, colDetails, colSportId, colSportName, colRegionId, colRegionName };
|
||||||
|
|
||||||
|
// Event filter.
|
||||||
|
SaxOrganisationEvent.Params prmEvent = new SaxOrganisationEvent.Params();
|
||||||
|
prmEvent.IdsIncluded.AddRange(organisationEventIds);
|
||||||
|
prmEvent.StatusCat = SaxOrganisationEvent.StatusCat.ActiveOnly;
|
||||||
|
|
||||||
|
using (DbResultSet dbResultSet = Internals.ActivityMgr.ExecuteOrganisationEventQuery(columns, prmEvent))
|
||||||
|
{
|
||||||
|
while (dbResultSet != null && dbResultSet.NextRecord())
|
||||||
|
{
|
||||||
|
NamedValue.Map values = dbResultSet.GetRecordValues();
|
||||||
|
ItemId itemId = new ItemId((short)Sax.DataItemType.OrganisationEvent, new SysId(values.GetLong(colId.DataName)));
|
||||||
|
SysId organisationId = new SysId(values.GetLong(colOrganisationId.DataName));
|
||||||
|
String organisation = values.GetString(colOrganisation.DataName);
|
||||||
|
DateTime eventAt = values.GetDateTime(colEventAt.DataName);
|
||||||
|
String eventAtDisplay = DateUtil.Format(eventAt, "d-MMM-yy");
|
||||||
|
if (eventAt.Hour > 0 || eventAt.Minute > 0)
|
||||||
|
eventAtDisplay += DateUtil.Format(values.GetDateTime(colEventAt.DataName), " HH:mm");
|
||||||
|
String eventSummary = values.GetString(colSummary.DataName);
|
||||||
|
String eventDetails = values.GetString(colDetails.DataName);
|
||||||
|
SysId sportId = new SysId(values.GetLong(colSportId.DataName));
|
||||||
|
String sportName = values.GetString(colSportName.DataName);
|
||||||
|
SysId regionId = new SysId(values.GetLong(colRegionId.DataName));
|
||||||
|
String regionName = values.GetString(colRegionName.DataName);
|
||||||
|
|
||||||
|
// Populate to corresponding activities.
|
||||||
|
foreach (ActivityData_Web activity in activities.FindAll(item => item.ItemId.Equals(itemId)))
|
||||||
|
{
|
||||||
|
activity.SetOrganisation(organisationId, organisation);
|
||||||
|
activity.SetCaption(eventAtDisplay);
|
||||||
|
activity.SetBlurb(eventSummary);
|
||||||
|
activity.SetSport(sportId, sportName);
|
||||||
|
activity.SetRegion(regionId, regionName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
// Organisation Opportunity details.
|
// Organisation Opportunity details.
|
||||||
private void PopulateOrganisationOpportunitiesDetails(IndexContext context, List<ActivityData_Web> activities)
|
private void PopulateOrganisationOpportunityDetails(IndexContext context, List<ActivityData_Web> activities)
|
||||||
{
|
{
|
||||||
// Extract opportunity Ids.
|
// Extract opportunity Ids.
|
||||||
List<SysId> opportunityIds = activities.FindAll(item => item.ItemId.Type == (int)Sax.DataItemType.OrganisationOpportunity).Select(ItemId => ItemId.ItemId.Id).ToList();
|
List<SysId> opportunityIds = activities.FindAll(item => item.ItemId.Type == (int)Sax.DataItemType.OrganisationOpportunity).Select(ItemId => ItemId.ItemId.Id).ToList();
|
||||||
@@ -258,14 +319,14 @@ namespace Saxonite.Net.Core.Web.Base.Consoles
|
|||||||
// Opportunity columns - limit to essential information.
|
// Opportunity columns - limit to essential information.
|
||||||
ColumnDfn colId = Internals.ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Id);
|
ColumnDfn colId = Internals.ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Id);
|
||||||
ColumnDfn colOrganisationId = Internals.ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.OrganisationId);
|
ColumnDfn colOrganisationId = Internals.ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.OrganisationId);
|
||||||
ColumnDfn colOrganisation= Internals.ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Organisation_Name);
|
ColumnDfn colOrganisation = Internals.ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Organisation_Name);
|
||||||
ColumnDfn colPosition = Internals.ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Position);
|
ColumnDfn colPosition = Internals.ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Position);
|
||||||
ColumnDfn colOutline = Internals.ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Outline);
|
ColumnDfn colOutline = Internals.ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Outline);
|
||||||
ColumnDfn colSportId = Internals.ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.SportIdPrimary);
|
ColumnDfn colSportId = Internals.ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.SportIdPrimary);
|
||||||
ColumnDfn colSportName = Internals.ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Sport_Name);
|
ColumnDfn colSportName = Internals.ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Sport_Name);
|
||||||
ColumnDfn colRegionId = Internals.ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.RegionIdPrimary);
|
ColumnDfn colRegionId = Internals.ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.RegionIdPrimary);
|
||||||
ColumnDfn colRegionName = Internals.ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Region_Name);
|
ColumnDfn colRegionName = Internals.ActivityMgr.GetOrganisationOpportunityColumnDfn(SaxOrganisationOpportunity.Column.Region_Name);
|
||||||
List<ColumnDfn> columns = new List<ColumnDfn>() { colId, colPosition, colOutline, colSportId, colSportName, colRegionId, colRegionName };
|
List<ColumnDfn> columns = new List<ColumnDfn>() { colId, colOrganisationId, colOrganisation, colPosition, colOutline, colSportId, colSportName, colRegionId, colRegionName };
|
||||||
|
|
||||||
// Opportunity filter.
|
// Opportunity filter.
|
||||||
SaxOrganisationOpportunity.Params prmOpportunity = new SaxOrganisationOpportunity.Params();
|
SaxOrganisationOpportunity.Params prmOpportunity = new SaxOrganisationOpportunity.Params();
|
||||||
|
|||||||
@@ -238,19 +238,19 @@ namespace Saxonite.Net.Core.Web.Base.Controllers
|
|||||||
String fn = nameof(ControllerBase) + ".EncryptParameters";
|
String fn = nameof(ControllerBase) + ".EncryptParameters";
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// Copy the list of parameters, adding a random name/value pair to randomise the encryption.
|
// Copy the list of parameters and sort the keys.
|
||||||
NameValueCollection parametersToEncrypt = new NameValueCollection(parameters);
|
NameValueCollection parametersToEncrypt = new NameValueCollection(parameters);
|
||||||
// NB Range 10-189 intended to have equal chance of 2 or 3 digit number.
|
|
||||||
parametersToEncrypt.Add("!" + SacsRandomHelper.getRandomLengthNumber(4), null);
|
|
||||||
|
|
||||||
// Sort the keys to ensure that the random '!' param is first in the query string.
|
|
||||||
String[] paramKeys = parametersToEncrypt.AllKeys;
|
String[] paramKeys = parametersToEncrypt.AllKeys;
|
||||||
Array.Sort(paramKeys);
|
Array.Sort(paramKeys);
|
||||||
|
|
||||||
// Serialise parameters as if in a URL query string - so that they can be deserialised in DecryptParameters() below.
|
// Serialise parameters as if in a URL query string - so that they can be deserialised in DecryptParameters() below.
|
||||||
string queryString = String.Join("&", paramKeys.Select(a => a + "=" + HttpUtility.UrlEncode(parametersToEncrypt[a])));
|
// Start with a random length parameter name at start of list to obscure the encryption.
|
||||||
|
string queryString = SacsRandomHelper.getRandomLengthNumber(4) + "&";
|
||||||
|
queryString += String.Join("&", paramKeys.Select(a => a + "=" + HttpUtility.UrlEncode(parametersToEncrypt[a])));
|
||||||
|
|
||||||
|
// Encrypt data.
|
||||||
String encrypted = SacsEncryptionHelper.Encrypt(queryString, base64IV, base64Key);
|
String encrypted = SacsEncryptionHelper.Encrypt(queryString, base64IV, base64Key);
|
||||||
if (SacsSystem.DebugMode) SaLogger.Debug(fn + "\n\tData: " + queryString + " \n\tEncrypted: " + encrypted);
|
//if (SacsSystem.DebugMode) SaLogger.Debug(fn + "\n\tData: " + queryString + " \n\tEncrypted: " + encrypted);
|
||||||
return encrypted;
|
return encrypted;
|
||||||
}
|
}
|
||||||
catch (Exception exc) { SaLogger.Warn(fn + " " + ExceptionUtil.GetErrorStateMessage(exc)); }
|
catch (Exception exc) { SaLogger.Warn(fn + " " + ExceptionUtil.GetErrorStateMessage(exc)); }
|
||||||
@@ -262,7 +262,7 @@ namespace Saxonite.Net.Core.Web.Base.Controllers
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
String queryString = SacsEncryptionHelper.Decrypt(encrypted, base64IV, base64Key);
|
String queryString = SacsEncryptionHelper.Decrypt(encrypted, base64IV, base64Key);
|
||||||
if (SacsSystem.DebugMode) SaLogger.Debug(fn + " \n\tEncrypted: " + encrypted + "\n\tData: " + queryString);
|
//if (SacsSystem.DebugMode) SaLogger.Debug(fn + " \n\tEncrypted: " + encrypted + "\n\tData: " + queryString);
|
||||||
return HttpUtility.ParseQueryString(queryString);
|
return HttpUtility.ParseQueryString(queryString);
|
||||||
}
|
}
|
||||||
catch (Exception exc) { SaLogger.Warn(fn + " " + ExceptionUtil.GetErrorStateMessage(exc)); }
|
catch (Exception exc) { SaLogger.Warn(fn + " " + ExceptionUtil.GetErrorStateMessage(exc)); }
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
<div class="sax-header"><div class="sax-caption">@Localiser["security.caption.change.password"]</div></div>
|
<div class="sax-header"><div class="sax-caption">@Localiser["security.caption.change.password"]</div></div>
|
||||||
|
|
||||||
<div class="sax-content">
|
<div class="sax-content">
|
||||||
|
<div class="spacer4"></div>
|
||||||
|
|
||||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmChangePassword", @class = "sax-form" }))
|
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmChangePassword", @class = "sax-form" }))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
<div class="sax-header"><div class="sax-caption">@Localiser["security.caption.request.password"]</div></div>
|
<div class="sax-header"><div class="sax-caption">@Localiser["security.caption.request.password"]</div></div>
|
||||||
|
|
||||||
<div class="sax-content">
|
<div class="sax-content">
|
||||||
|
<div class="spacer4"></div>
|
||||||
|
|
||||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmRequestPassword", @class = "sax-form" }))
|
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmRequestPassword", @class = "sax-form" }))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
<div class="sax-header"><div class="sax-caption">@Localiser["security.caption.signin"]</div></div>
|
<div class="sax-header"><div class="sax-caption">@Localiser["security.caption.signin"]</div></div>
|
||||||
|
|
||||||
<div class="sax-content">
|
<div class="sax-content">
|
||||||
|
<div class="spacer4"></div>
|
||||||
|
|
||||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmSignIn", @class = "sax-form" }))
|
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmSignIn", @class = "sax-form" }))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -237,6 +237,9 @@
|
|||||||
<data name="label.article" xml:space="preserve">
|
<data name="label.article" xml:space="preserve">
|
||||||
<value>Article</value>
|
<value>Article</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="label.at" xml:space="preserve">
|
||||||
|
<value>At</value>
|
||||||
|
</data>
|
||||||
<data name="label.calendar" xml:space="preserve">
|
<data name="label.calendar" xml:space="preserve">
|
||||||
<value>Calendar</value>
|
<value>Calendar</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -276,6 +279,9 @@
|
|||||||
<data name="label.created" xml:space="preserve">
|
<data name="label.created" xml:space="preserve">
|
||||||
<value>Created</value>
|
<value>Created</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="label.date" xml:space="preserve">
|
||||||
|
<value>Date</value>
|
||||||
|
</data>
|
||||||
<data name="label.date.of.birth" xml:space="preserve">
|
<data name="label.date.of.birth" xml:space="preserve">
|
||||||
<value>Date of birth</value>
|
<value>Date of birth</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -285,6 +291,9 @@
|
|||||||
<data name="label.delete" xml:space="preserve">
|
<data name="label.delete" xml:space="preserve">
|
||||||
<value>Delete</value>
|
<value>Delete</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="label.details" xml:space="preserve">
|
||||||
|
<value>Details</value>
|
||||||
|
</data>
|
||||||
<data name="label.discipline" xml:space="preserve">
|
<data name="label.discipline" xml:space="preserve">
|
||||||
<value>Discipline</value>
|
<value>Discipline</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -294,6 +303,9 @@
|
|||||||
<data name="label.drag.image.here" xml:space="preserve">
|
<data name="label.drag.image.here" xml:space="preserve">
|
||||||
<value>Drag your image here.</value>
|
<value>Drag your image here.</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="label.duration" xml:space="preserve">
|
||||||
|
<value>Duration</value>
|
||||||
|
</data>
|
||||||
<data name="label.edit" xml:space="preserve">
|
<data name="label.edit" xml:space="preserve">
|
||||||
<value>Edit</value>
|
<value>Edit</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -306,6 +318,9 @@
|
|||||||
<data name="label.email.address" xml:space="preserve">
|
<data name="label.email.address" xml:space="preserve">
|
||||||
<value>Email address</value>
|
<value>Email address</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="label.events" xml:space="preserve">
|
||||||
|
<value>Events</value>
|
||||||
|
</data>
|
||||||
<data name="label.excellent" xml:space="preserve">
|
<data name="label.excellent" xml:space="preserve">
|
||||||
<value>Excellent</value>
|
<value>Excellent</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -375,12 +390,18 @@
|
|||||||
<data name="label.not.specified" xml:space="preserve">
|
<data name="label.not.specified" xml:space="preserve">
|
||||||
<value>Not specified</value>
|
<value>Not specified</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="label.occurs" xml:space="preserve">
|
||||||
|
<value>Occurs</value>
|
||||||
|
</data>
|
||||||
<data name="label.officiating" xml:space="preserve">
|
<data name="label.officiating" xml:space="preserve">
|
||||||
<value>Officiating</value>
|
<value>Officiating</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="label.ok" xml:space="preserve">
|
<data name="label.ok" xml:space="preserve">
|
||||||
<value>OK</value>
|
<value>OK</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="label.on" xml:space="preserve">
|
||||||
|
<value>On</value>
|
||||||
|
</data>
|
||||||
<data name="label.opportunities" xml:space="preserve">
|
<data name="label.opportunities" xml:space="preserve">
|
||||||
<value>Opportunities</value>
|
<value>Opportunities</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -501,6 +522,9 @@
|
|||||||
<data name="label.team" xml:space="preserve">
|
<data name="label.team" xml:space="preserve">
|
||||||
<value>Team</value>
|
<value>Team</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="label.time" xml:space="preserve">
|
||||||
|
<value>Time</value>
|
||||||
|
</data>
|
||||||
<data name="label.title" xml:space="preserve">
|
<data name="label.title" xml:space="preserve">
|
||||||
<value>Title</value>
|
<value>Title</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -620,6 +644,12 @@ You will then be able to publicise your sporting activities.</value>
|
|||||||
<data name="organisation.caption.event" xml:space="preserve">
|
<data name="organisation.caption.event" xml:space="preserve">
|
||||||
<value>Event</value>
|
<value>Event</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="organisation.caption.event.create" xml:space="preserve">
|
||||||
|
<value>Create Event</value>
|
||||||
|
</data>
|
||||||
|
<data name="organisation.caption.event.update" xml:space="preserve">
|
||||||
|
<value>Update event</value>
|
||||||
|
</data>
|
||||||
<data name="organisation.caption.events" xml:space="preserve">
|
<data name="organisation.caption.events" xml:space="preserve">
|
||||||
<value>Events</value>
|
<value>Events</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
{
|
{
|
||||||
public short ItemType { get; set; }
|
public short ItemType { get; set; }
|
||||||
public String ItemTypeClass { get; set; }
|
public String ItemTypeClass { get; set; }
|
||||||
public long ItemIdx { get; set; }
|
public String ItemId { get; set; }
|
||||||
public String Organisation { get; set; }
|
public String Organisation { get; set; }
|
||||||
public String Author { get; set; }
|
public String Author { get; set; }
|
||||||
public String Caption { get; set; }
|
public String Caption { get; set; }
|
||||||
@@ -102,6 +102,29 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
}
|
}
|
||||||
public ContentData Content { get; } = new ContentData();
|
public ContentData Content { get; } = new ContentData();
|
||||||
}
|
}
|
||||||
|
/// <summary>Event activity info. </summary>
|
||||||
|
private class ActivityResponseData_Event
|
||||||
|
{
|
||||||
|
public ActivityResponseData_Event(SaxModel_Online model, SaxOrganisationEvent organisationEvent)
|
||||||
|
{
|
||||||
|
Organisation = model.GetOrganisationName(organisationEvent.OrganisationId);
|
||||||
|
EventAt = DateUtil.Format(organisationEvent.EventAt, "d-MMM-yy");
|
||||||
|
if (organisationEvent.EventAt.Hour>0 || organisationEvent.EventAt.Minute > 0)
|
||||||
|
EventAt += DateUtil.Format(organisationEvent.EventAt, " HH:ss");
|
||||||
|
Summary = organisationEvent.Summary;
|
||||||
|
Details = organisationEvent.Details;
|
||||||
|
Sport = model.GetSportCaption(organisationEvent.SportIdPrimary);
|
||||||
|
Region = model.GetRegionCaption(organisationEvent.RegionIdCountry);
|
||||||
|
PublishedOnFmt = model.Localiser.FormatDate(organisationEvent.PublishedAt);
|
||||||
|
}
|
||||||
|
public String Organisation { get; set; }
|
||||||
|
public String EventAt{ get; set; }
|
||||||
|
public String Summary { get; set; }
|
||||||
|
public String Details { get; set; }
|
||||||
|
public String Sport { get; set; }
|
||||||
|
public String Region { get; set; }
|
||||||
|
public String PublishedOnFmt { get; set; }
|
||||||
|
}
|
||||||
/// <summary>Opportunity activity info. </summary>
|
/// <summary>Opportunity activity info. </summary>
|
||||||
private class ActivityResponseData_Opportunity
|
private class ActivityResponseData_Opportunity
|
||||||
{
|
{
|
||||||
@@ -115,7 +138,6 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
PublishedOnFmt = model.Localiser.FormatDate(opportunity.PublishedAt);
|
PublishedOnFmt = model.Localiser.FormatDate(opportunity.PublishedAt);
|
||||||
}
|
}
|
||||||
public String Organisation { get; set; }
|
public String Organisation { get; set; }
|
||||||
public String Author { get; set; }
|
|
||||||
public String Position { get; set; }
|
public String Position { get; set; }
|
||||||
public String Outline { get; set; }
|
public String Outline { get; set; }
|
||||||
public String Sport { get; set; }
|
public String Sport { get; set; }
|
||||||
@@ -170,10 +192,12 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
activityData.ItemType = itemData.ItemId.Type;
|
activityData.ItemType = itemData.ItemId.Type;
|
||||||
if (itemData.ItemId.Type == (int)Sax.DataItemType.Article)
|
if (itemData.ItemId.Type == (int)Sax.DataItemType.Article)
|
||||||
activityData.ItemTypeClass = "Article";
|
activityData.ItemTypeClass = "Article";
|
||||||
|
else if (itemData.ItemId.Type == (int)Sax.DataItemType.OrganisationEvent)
|
||||||
|
activityData.ItemTypeClass = "Event";
|
||||||
else if (itemData.ItemId.Type == (int)Sax.DataItemType.OrganisationOpportunity)
|
else if (itemData.ItemId.Type == (int)Sax.DataItemType.OrganisationOpportunity)
|
||||||
activityData.ItemTypeClass = "Opportunity";
|
activityData.ItemTypeClass = "Opportunity";
|
||||||
// ToDo Mask activity index Id with cross-reference stored in session data.
|
// ToDo Mask activity index Id with cross-reference stored in session data.
|
||||||
activityData.ItemIdx = SysId.ToLong(itemData.ItemId.Id);
|
activityData.ItemId = model.EncryptId(itemData.ItemId.Id);
|
||||||
activityData.Organisation = itemData.Organisation;
|
activityData.Organisation = itemData.Organisation;
|
||||||
activityData.Author = itemData.Author;
|
activityData.Author = itemData.Author;
|
||||||
activityData.Caption = itemData.Caption;
|
activityData.Caption = itemData.Caption;
|
||||||
@@ -199,6 +223,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
private class AjaxResponse_ActivityInfo : AjaxResponse_Base
|
private class AjaxResponse_ActivityInfo : AjaxResponse_Base
|
||||||
{
|
{
|
||||||
public ActivityResponseData_Article Article { get; set; }
|
public ActivityResponseData_Article Article { get; set; }
|
||||||
|
public ActivityResponseData_Event Event { get; set; }
|
||||||
public ActivityResponseData_Opportunity Opportunity { get; set; }
|
public ActivityResponseData_Opportunity Opportunity { get; set; }
|
||||||
}
|
}
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
@@ -224,8 +249,8 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
{
|
{
|
||||||
|
|
||||||
// Identify activity.
|
// Identify activity.
|
||||||
Sax.DataItemType itemType = (Sax.DataItemType)StringUtil.ToShort(model.ActivityType);
|
Sax.DataItemType itemType = (Sax.DataItemType)StringUtil.ToShort(model.ActivityItemType);
|
||||||
SysId itemId = model.ExtractSysId(model.ActivityIdx);
|
SysId itemId = model.ExtractSysId(model.ActivityItemId);
|
||||||
if (itemType <= 0 || !SysId.IsValid(itemId))
|
if (itemType <= 0 || !SysId.IsValid(itemId))
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Activity type/Id inncorrectly specified." + GetLogSuffix());
|
SaLogger.Warn(fn + " Activity type/Id inncorrectly specified." + GetLogSuffix());
|
||||||
@@ -247,6 +272,18 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
disposableItems.Add(organisation);
|
disposableItems.Add(organisation);
|
||||||
responseData.Article = new ActivityResponseData_Article(this, model, article, organisation);
|
responseData.Article = new ActivityResponseData_Article(this, model, article, organisation);
|
||||||
}
|
}
|
||||||
|
else if (itemType == Sax.DataItemType.OrganisationEvent)
|
||||||
|
{
|
||||||
|
// Organisation Event.
|
||||||
|
SaxOrganisationEvent organisationEvent = ActivityMgr.GetOrganisationEventById(itemId);
|
||||||
|
disposableItems.Add(organisationEvent);
|
||||||
|
if (organisationEvent == null)
|
||||||
|
{
|
||||||
|
SaLogger.Warn(fn + " Event not found for Activity Id: " + itemId.ToString() + "." + GetLogSuffix());
|
||||||
|
return Json(responseData);
|
||||||
|
}
|
||||||
|
responseData.Event = new ActivityResponseData_Event(model, organisationEvent);
|
||||||
|
}
|
||||||
else if (itemType == Sax.DataItemType.OrganisationOpportunity)
|
else if (itemType == Sax.DataItemType.OrganisationOpportunity)
|
||||||
{
|
{
|
||||||
// Organisation Opportunity.
|
// Organisation Opportunity.
|
||||||
@@ -297,8 +334,8 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
SaxSessionData_Online sessionData = SessionData_Online;
|
SaxSessionData_Online sessionData = SessionData_Online;
|
||||||
|
|
||||||
// Identify activity.
|
// Identify activity.
|
||||||
Sax.DataItemType itemType = (Sax.DataItemType)StringUtil.ToShort(model.ActivityType);
|
Sax.DataItemType itemType = (Sax.DataItemType)StringUtil.ToShort(model.ActivityItemType);
|
||||||
SysId itemId = model.ExtractSysId(model.ActivityIdx);
|
SysId itemId = model.ExtractSysId(model.ActivityItemId);
|
||||||
if (itemType <= 0 || !SysId.IsValid(itemId))
|
if (itemType <= 0 || !SysId.IsValid(itemId))
|
||||||
{
|
{
|
||||||
SaLogger.Warn(fn + " Activity type/Id inncorrectly specified." + GetLogSuffix());
|
SaLogger.Warn(fn + " Activity type/Id inncorrectly specified." + GetLogSuffix());
|
||||||
|
|||||||
@@ -27,31 +27,34 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
public String EventTimeFmt { get; set; }
|
public String EventTimeFmt { get; set; }
|
||||||
public String TypeCode { get; set; }
|
public String TypeCode { get; set; }
|
||||||
public String TypeDesc { get; set; }
|
public String TypeDesc { get; set; }
|
||||||
public String About { get; set; }
|
public String Summary { get; set; }
|
||||||
public String RegionCaption { get; set; }
|
public String Details { get; set; }
|
||||||
public String SportCaption { get; set; }
|
public String SportCaptionPrimary { get; set; }
|
||||||
|
public String RegionCaptionCountry { get; set; }
|
||||||
public String PublishedOnFmt { get; set; }
|
public String PublishedOnFmt { get; set; }
|
||||||
public String ExpiresOnFmt { get; set; }
|
public String ExpiresOnFmt { get; set; }
|
||||||
}
|
}
|
||||||
private class EventData_Detail : EventData_List
|
private class EventData_Detail : EventData_List
|
||||||
{
|
{
|
||||||
public String EventAt_YYYYMMDD { get; set; }
|
public String EventOn_Calendar { get; set; }
|
||||||
|
public String EventOn_YYYYMMDD { get; set; }
|
||||||
public String EventAt_HHMM { get; set; }
|
public String EventAt_HHMM { get; set; }
|
||||||
public String RegionIdCountry { get; set; }
|
|
||||||
public String SportIdPrimary { get; set; }
|
public String SportIdPrimary { get; set; }
|
||||||
|
public String RegionIdCountry { get; set; }
|
||||||
public String PublishedOn_YYYYMMDD { get; set; }
|
public String PublishedOn_YYYYMMDD { get; set; }
|
||||||
public String ExpiresOn_YYYYMMDD { get; set; }
|
public String ExpiresOn_YYYYMMDD { get; set; }
|
||||||
}
|
}
|
||||||
private void PopulateEventResponseData(Model_Organisation_Events model, SaxOrganisationEvent organisationEvent, EventData_List data)
|
private void PopulateEventResponseData(Model_Organisation_Events model, SaxOrganisationEvent organisationEvent, EventData_List data)
|
||||||
{
|
{
|
||||||
data.Id = SysId.ToString(organisationEvent.Id);
|
data.Id = model.EncryptId(organisationEvent.Id);
|
||||||
data.EventDateFmt = Localiser.FormatDate(organisationEvent.EventAt);
|
data.EventDateFmt = Localiser.FormatDate(organisationEvent.EventAt);
|
||||||
data.EventTimeFmt = DateUtil.Format(organisationEvent.EventAt, "HH:mm");
|
data.EventTimeFmt = DateUtil.Format(organisationEvent.EventAt, "HH:mm");
|
||||||
data.TypeCode = EventTypeCodes.GetCodeForType(organisationEvent.EventType);
|
data.TypeCode = EventTypeCodes.GetCodeForType(organisationEvent.EventType);
|
||||||
data.TypeDesc = Localiser.GetEventTypeCaption(organisationEvent.EventType);
|
data.TypeDesc = Localiser.GetEventTypeCaption(organisationEvent.EventType);
|
||||||
data.About = organisationEvent.About;
|
data.Summary = organisationEvent.Summary;
|
||||||
data.RegionCaption = model.GetRegionCaption(organisationEvent.RegionIdCountry);
|
data.Details = organisationEvent.Details;
|
||||||
data.SportCaption = model.GetSportCaption(organisationEvent.SportIdPrimary);
|
data.SportCaptionPrimary = model.GetSportCaption(organisationEvent.SportIdPrimary);
|
||||||
|
data.RegionCaptionCountry = model.GetRegionCaption(organisationEvent.RegionIdCountry);
|
||||||
data.CreatedOnFmt = Localiser.FormatDate(organisationEvent.CreateStamp.On);
|
data.CreatedOnFmt = Localiser.FormatDate(organisationEvent.CreateStamp.On);
|
||||||
data.PublishedOnFmt = Localiser.FormatDate(organisationEvent.PublishedAt);
|
data.PublishedOnFmt = Localiser.FormatDate(organisationEvent.PublishedAt);
|
||||||
data.ExpiresOnFmt = Localiser.FormatDate(organisationEvent.ExpiresAt);
|
data.ExpiresOnFmt = Localiser.FormatDate(organisationEvent.ExpiresAt);
|
||||||
@@ -61,7 +64,8 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
private void PopulateEventResponseData(Model_Organisation_Events model, SaxOrganisationEvent organisationEvent, EventData_Detail data)
|
private void PopulateEventResponseData(Model_Organisation_Events model, SaxOrganisationEvent organisationEvent, EventData_Detail data)
|
||||||
{
|
{
|
||||||
PopulateEventResponseData(model, organisationEvent, data as EventData_List);
|
PopulateEventResponseData(model, organisationEvent, data as EventData_List);
|
||||||
data.EventAt_YYYYMMDD = DateUtil.Format(organisationEvent.EventAt, "yyyyMMdd");
|
data.EventOn_Calendar = model.FormatDateForForm(organisationEvent.EventAt);
|
||||||
|
data.EventOn_YYYYMMDD = DateUtil.Format(organisationEvent.EventAt, "yyyyMMdd");
|
||||||
data.EventAt_HHMM = DateUtil.Format(organisationEvent.EventAt, "HH:mm");
|
data.EventAt_HHMM = DateUtil.Format(organisationEvent.EventAt, "HH:mm");
|
||||||
data.RegionIdCountry = model.GetEncryptedRegionId(organisationEvent.RegionIdCountry);
|
data.RegionIdCountry = model.GetEncryptedRegionId(organisationEvent.RegionIdCountry);
|
||||||
data.SportIdPrimary = model.GetEncryptedSportId(organisationEvent.SportIdPrimary);
|
data.SportIdPrimary = model.GetEncryptedSportId(organisationEvent.SportIdPrimary);
|
||||||
@@ -175,7 +179,8 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
ColumnDfn colId = ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.Id);
|
ColumnDfn colId = ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.Id);
|
||||||
ColumnDfn colEventAt = ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.EventAt_DateTime);
|
ColumnDfn colEventAt = ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.EventAt_DateTime);
|
||||||
ColumnDfn colEventTypeCode = ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.EventTypeCode);
|
ColumnDfn colEventTypeCode = ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.EventTypeCode);
|
||||||
ColumnDfn colAbout = ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.About);
|
ColumnDfn colSummary = ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.Summary);
|
||||||
|
ColumnDfn colDetails = ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.Details);
|
||||||
ColumnDfn colRegionId = ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.RegionIdCountry);
|
ColumnDfn colRegionId = ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.RegionIdCountry);
|
||||||
ColumnDfn colRegionName = ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.Region_Name);
|
ColumnDfn colRegionName = ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.Region_Name);
|
||||||
ColumnDfn colSportId = ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.SportIdPrimary);
|
ColumnDfn colSportId = ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.SportIdPrimary);
|
||||||
@@ -186,7 +191,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
ColumnDfn colCreatedOn = ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.CreateOn_Date);
|
ColumnDfn colCreatedOn = ActivityMgr.GetOrganisationEventColumnDfn(SaxOrganisationEvent.Column.CreateOn_Date);
|
||||||
List<ColumnDfn> columns = new List<ColumnDfn>()
|
List<ColumnDfn> columns = new List<ColumnDfn>()
|
||||||
{
|
{
|
||||||
colId, colEventAt, colEventTypeCode, colAbout,
|
colId, colEventAt, colEventTypeCode, colSummary, colDetails,
|
||||||
colRegionId, colRegionName, colSportId, colSportName,
|
colRegionId, colRegionName, colSportId, colSportName,
|
||||||
colPublishedOn, colExpiresOn,
|
colPublishedOn, colExpiresOn,
|
||||||
colStatus, colCreatedOn
|
colStatus, colCreatedOn
|
||||||
@@ -204,14 +209,15 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
NamedValue.Map values = resultSet.GetRecordValues();
|
NamedValue.Map values = resultSet.GetRecordValues();
|
||||||
EventData_List eventData = new EventData_List()
|
EventData_List eventData = new EventData_List()
|
||||||
{
|
{
|
||||||
Id = values.GetLong(colId.DataName).ToString(),
|
Id = model.EncryptId(new SysId(values.GetLong(colId.DataName))),
|
||||||
EventDateFmt = Localiser.FormatDate(values.GetDateTime(colEventAt.DataName)),
|
EventDateFmt = Localiser.FormatDate(values.GetDateTime(colEventAt.DataName)),
|
||||||
EventTimeFmt = DateUtil.Format(values.GetDateTime(colEventAt.DataName), "HH:mm"),
|
EventTimeFmt = DateUtil.Format(values.GetDateTime(colEventAt.DataName), "HH:mm"),
|
||||||
TypeCode = values.GetString(colEventTypeCode.DataName),
|
TypeCode = values.GetString(colEventTypeCode.DataName),
|
||||||
TypeDesc = Localiser.GetEventTypeCaption((Sax.EventType)EventTypeCodes.GetTypeForCode(values.GetString(colEventTypeCode.DataName))),
|
TypeDesc = Localiser.GetEventTypeCaption((Sax.EventType)EventTypeCodes.GetTypeForCode(values.GetString(colEventTypeCode.DataName))),
|
||||||
About = values.GetString(colAbout.DataName),
|
Summary = ActivityMgr.GetOrganisationEventDataValue(colSummary, values).AsString(),
|
||||||
RegionCaption = model.GetRegionCaption(values.GetString(colRegionId.DataName).ToSysId()),
|
Details = ActivityMgr.GetOrganisationEventDataValue(colDetails, values).AsString(),
|
||||||
SportCaption = model.GetSportCaption(values.GetString(colSportId.DataName).ToSysId()),
|
RegionCaptionCountry = model.GetRegionCaption(values.GetString(colRegionId.DataName).ToSysId()),
|
||||||
|
SportCaptionPrimary = model.GetSportCaption(values.GetString(colSportId.DataName).ToSysId()),
|
||||||
CreatedOnFmt = Localiser.FormatDate(values.GetDateTime(colCreatedOn.DataName)),
|
CreatedOnFmt = Localiser.FormatDate(values.GetDateTime(colCreatedOn.DataName)),
|
||||||
PublishedOnFmt = Localiser.FormatDate(values.GetDateTime(colPublishedOn.DataName)),
|
PublishedOnFmt = Localiser.FormatDate(values.GetDateTime(colPublishedOn.DataName)),
|
||||||
ExpiresOnFmt = Localiser.FormatDate(values.GetDateTime(colExpiresOn.DataName)),
|
ExpiresOnFmt = Localiser.FormatDate(values.GetDateTime(colExpiresOn.DataName)),
|
||||||
@@ -390,8 +396,10 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
}
|
}
|
||||||
if (model.EventTypeCode != null)
|
if (model.EventTypeCode != null)
|
||||||
organisationEvent.EventType = (Sax.EventType)EventTypeCodes.GetTypeForCode(model.EventTypeCode);
|
organisationEvent.EventType = (Sax.EventType)EventTypeCodes.GetTypeForCode(model.EventTypeCode);
|
||||||
if (model.EventAbout != null)
|
if (model.EventSummary != null)
|
||||||
organisationEvent.About = model.EventAbout;
|
organisationEvent.Summary = model.EventSummary;
|
||||||
|
if (model.EventDetails != null)
|
||||||
|
organisationEvent.Details = model.EventDetails;
|
||||||
if (model.EventStatusCode != null)
|
if (model.EventStatusCode != null)
|
||||||
organisationEvent.Status = model.EventStatus;
|
organisationEvent.Status = model.EventStatus;
|
||||||
|
|
||||||
@@ -414,7 +422,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Store Event Activity Index data.
|
// Store Event Activity Index data.
|
||||||
// ToDo ActivityConsole.StoreActivityIndex(organisationEvent, DbUpdateInfo);
|
ActivityConsole.StoreActivityIndex(organisationEvent, DbUpdateInfo);
|
||||||
|
|
||||||
// Construct response.
|
// Construct response.
|
||||||
PopulateEventResponseData(model, organisationEvent, responseData.Event);
|
PopulateEventResponseData(model, organisationEvent, responseData.Event);
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
public bool? CurrentUser { get; set; } = null;
|
public bool? CurrentUser { get; set; } = null;
|
||||||
public String EmailAddress { get; set; }
|
public String EmailAddress { get; set; }
|
||||||
public String DisplayName { get; set; }
|
public String DisplayName { get; set; }
|
||||||
|
public String MemberRoles { get; set; }
|
||||||
public List<String> RoleCodes { get; set; } = new List<string>();
|
public List<String> RoleCodes { get; set; } = new List<string>();
|
||||||
public List<CodeDesc> Roles { get; set; } = new List<CodeDesc>();
|
public List<CodeDesc> Roles { get; set; } = new List<CodeDesc>();
|
||||||
public String AdminComment { get; set; }
|
public String AdminComment { get; set; }
|
||||||
@@ -41,8 +42,8 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
}
|
}
|
||||||
private void PopulateMemberResponseData(Model_Organisation_Members model, SaxUserOrganisation userOrganisation, SaxUserAccount userAccount, SaxOrganisation organisation, MemberData_List data)
|
private void PopulateMemberResponseData(Model_Organisation_Members model, SaxUserOrganisation userOrganisation, SaxUserAccount userAccount, SaxOrganisation organisation, MemberData_List data)
|
||||||
{
|
{
|
||||||
data.Id = SysId.ToString(userOrganisation.Id);
|
data.Id = model.EncryptId(userOrganisation.Id);
|
||||||
data.UserAccountId = SysId.ToString(userOrganisation.UserAccountId);
|
data.UserAccountId = model.EncryptId(userOrganisation.UserAccountId);
|
||||||
if (userOrganisation.UserAccountId.Equals(UserAccountId)) data.CurrentUser = true;
|
if (userOrganisation.UserAccountId.Equals(UserAccountId)) data.CurrentUser = true;
|
||||||
data.EmailAddress = userAccount.EmailAddress;
|
data.EmailAddress = userAccount.EmailAddress;
|
||||||
data.DisplayName = userAccount.GetDisplayName();
|
data.DisplayName = userAccount.GetDisplayName();
|
||||||
@@ -56,6 +57,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
data.RoleCodes.Add(memberRoleCode);
|
data.RoleCodes.Add(memberRoleCode);
|
||||||
data.Roles.Add(memberRoleCode, Localiser.GetOrganisationRoleCaption(organisationRole));
|
data.Roles.Add(memberRoleCode, Localiser.GetOrganisationRoleCaption(organisationRole));
|
||||||
}
|
}
|
||||||
|
data.MemberRoles = data.Roles.Select(item => item.Desc).ToList().Concat(", ");
|
||||||
data.AdminComment = userOrganisation.AdminComment;
|
data.AdminComment = userOrganisation.AdminComment;
|
||||||
// NB UserAccount status (not UserOrganisation).
|
// NB UserAccount status (not UserOrganisation).
|
||||||
data.StatusCode = userAccount.StatusCode;
|
data.StatusCode = userAccount.StatusCode;
|
||||||
@@ -138,7 +140,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
prmMember.OrganisationIdsIncluded.Add(organisationId);
|
prmMember.OrganisationIdsIncluded.Add(organisationId);
|
||||||
prmMember.UserAccountStatusCat = responseData.User.CanManage ? SaxUserAccount.StatusCat.AwaitingOrActive : SaxUserAccount.StatusCat.ActiveOnly;
|
prmMember.UserAccountStatusCat = responseData.User.CanManage ? SaxUserAccount.StatusCat.AwaitingOrActive : SaxUserAccount.StatusCat.ActiveOnly;
|
||||||
prmMember.OrganisationMembersOnly = true;
|
prmMember.OrganisationMembersOnly = true;
|
||||||
//prmMember.MemberFilter = model.Filter.Member;
|
prmMember.UserFilterPartial = model.Filter.Member;
|
||||||
prmMember.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
prmMember.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
||||||
model.Paging.ItemTotal = (ulong)AccountMgr.GetUserOrganisationCount(prmMember);
|
model.Paging.ItemTotal = (ulong)AccountMgr.GetUserOrganisationCount(prmMember);
|
||||||
model.PopulatePagingTo(prmMember.ResultsPaging);
|
model.PopulatePagingTo(prmMember.ResultsPaging);
|
||||||
@@ -171,8 +173,8 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
NamedValue.Map values = resultSet.GetRecordValues();
|
NamedValue.Map values = resultSet.GetRecordValues();
|
||||||
MemberData_List memberData = new MemberData_List()
|
MemberData_List memberData = new MemberData_List()
|
||||||
{
|
{
|
||||||
Id = values.GetLong(colId.DataName).ToString(),
|
Id = model.EncryptId(new SysId(values.GetLong(colId.DataName))),
|
||||||
UserAccountId = values.GetString(colUserAccountId.DataName),
|
UserAccountId = model.EncryptId(new SysId(values.GetLong(colUserAccountId.DataName))),
|
||||||
EmailAddress = values.GetString(colEmailAddress.DataName),
|
EmailAddress = values.GetString(colEmailAddress.DataName),
|
||||||
DisplayName = AccountMgr.GetUserOrganisationDataValue(colDisplayName, values).ToString(),
|
DisplayName = AccountMgr.GetUserOrganisationDataValue(colDisplayName, values).ToString(),
|
||||||
CreatedOnFmt = Localiser.FormatDate(values.GetDateTime(colCreatedOn.DataName)),
|
CreatedOnFmt = Localiser.FormatDate(values.GetDateTime(colCreatedOn.DataName)),
|
||||||
@@ -191,6 +193,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
memberData.RoleCodes.Add(memberRoleCode);
|
memberData.RoleCodes.Add(memberRoleCode);
|
||||||
memberData.Roles.Add(memberRoleCode, Localiser.GetOrganisationRoleCaption(organisationRole));
|
memberData.Roles.Add(memberRoleCode, Localiser.GetOrganisationRoleCaption(organisationRole));
|
||||||
}
|
}
|
||||||
|
memberData.MemberRoles = memberData.Roles.Select(item => item.Desc).ToList().Concat(", ");
|
||||||
responseData.Members.Add(memberData);
|
responseData.Members.Add(memberData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -41,7 +41,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
}
|
}
|
||||||
private void PopulateOpportunityResponseData(Model_Organisation_Opportunities model, SaxOrganisationOpportunity opportunity, OpportunityData_List data)
|
private void PopulateOpportunityResponseData(Model_Organisation_Opportunities model, SaxOrganisationOpportunity opportunity, OpportunityData_List data)
|
||||||
{
|
{
|
||||||
data.Id = SysId.ToString(opportunity.Id);
|
data.Id = model.EncryptId(opportunity.Id);
|
||||||
data.TypeCode = OpportunityTypeCodes.GetCodeForType(opportunity.OpportunityType);
|
data.TypeCode = OpportunityTypeCodes.GetCodeForType(opportunity.OpportunityType);
|
||||||
data.TypeDesc = Localiser.GetOpportunityTypeCaption(opportunity.OpportunityType);
|
data.TypeDesc = Localiser.GetOpportunityTypeCaption(opportunity.OpportunityType);
|
||||||
data.Position = opportunity.Position;
|
data.Position = opportunity.Position;
|
||||||
@@ -198,7 +198,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
NamedValue.Map values = resultSet.GetRecordValues();
|
NamedValue.Map values = resultSet.GetRecordValues();
|
||||||
OpportunityData_List opportunityData = new OpportunityData_List()
|
OpportunityData_List opportunityData = new OpportunityData_List()
|
||||||
{
|
{
|
||||||
Id = values.GetLong(colId.DataName).ToString(),
|
Id = model.EncryptId(new SysId(values.GetLong(colId.DataName))),
|
||||||
TypeCode = values.GetString(colOpportunityTypeCode.DataName),
|
TypeCode = values.GetString(colOpportunityTypeCode.DataName),
|
||||||
TypeDesc = Localiser.GetOpportunityTypeCaption((Sax.OpportunityType)OpportunityTypeCodes.GetTypeForCode(values.GetString(colOpportunityTypeCode.DataName))),
|
TypeDesc = Localiser.GetOpportunityTypeCaption((Sax.OpportunityType)OpportunityTypeCodes.GetTypeForCode(values.GetString(colOpportunityTypeCode.DataName))),
|
||||||
Position = values.GetString(colPosition.DataName),
|
Position = values.GetString(colPosition.DataName),
|
||||||
|
|||||||
@@ -24,11 +24,11 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
// Organisation data.
|
// Organisation data.
|
||||||
public class OrganisationResponseData
|
public class OrganisationResponseData
|
||||||
{
|
{
|
||||||
public long Id { get; set; }
|
public String Id { get; set; }
|
||||||
public String Name { get; set; }
|
public String Name { get; set; }
|
||||||
public long RegionId { get; set; }
|
public String RegionId { get; set; }
|
||||||
public String RegionName { get; set; }
|
public String RegionName { get; set; }
|
||||||
public long SportId { get; set; }
|
public String SportId { get; set; }
|
||||||
public String SportName { get; set; }
|
public String SportName { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,11 +86,11 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
NamedValue.Map values = resultSet.GetRecordValues();
|
NamedValue.Map values = resultSet.GetRecordValues();
|
||||||
OrganisationResponseData organisationData = new OrganisationResponseData()
|
OrganisationResponseData organisationData = new OrganisationResponseData()
|
||||||
{
|
{
|
||||||
Id = values.GetLong(colOrganisationId.DataName),
|
Id = model.EncryptId(new SysId(values.GetLong(colOrganisationId.DataName))),
|
||||||
Name = values.GetString(colOrganisationName.DataName),
|
Name = values.GetString(colOrganisationName.DataName),
|
||||||
RegionId = values.GetLong(colRegionId.DataName),
|
RegionId = model.EncryptId(new SysId(values.GetLong(colRegionId.DataName))),
|
||||||
RegionName = values.GetString(colRegionName.DataName),
|
RegionName = values.GetString(colRegionName.DataName),
|
||||||
SportId = values.GetLong(colSportId.DataName),
|
SportId = model.EncryptId(new SysId(values.GetLong(colSportId.DataName))),
|
||||||
SportName = values.GetString(colSportName.DataName),
|
SportName = values.GetString(colSportName.DataName),
|
||||||
};
|
};
|
||||||
responseData.Organisations.Add(organisationData);
|
responseData.Organisations.Add(organisationData);
|
||||||
@@ -106,23 +106,23 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
// Get Member Organisation List ajax request.
|
// Get Member Admin Organisation List ajax request.
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
private class AjaxResponse_MemberOrganisationList : AjaxResponse_Data
|
private class AjaxResponse_MemberAdminOrganisationList : AjaxResponse_Data
|
||||||
{
|
{
|
||||||
// Construction.
|
// Construction.
|
||||||
public AjaxResponse_MemberOrganisationList(SaxModel_Online model) : base(model) { }
|
public AjaxResponse_MemberAdminOrganisationList(SaxModel_Online model) : base(model) { }
|
||||||
// Organisation list.
|
// Organisation list.
|
||||||
public List<OrganisationResponseData> Organisations { get; } = new List<OrganisationResponseData>();
|
public List<OrganisationResponseData> Organisations { get; } = new List<OrganisationResponseData>();
|
||||||
}
|
}
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[Route("Organisation/Ajax/GetMemberOrganisationList")]
|
[Route("Organisation/Ajax/GetMemberAdminOrganisationList")]
|
||||||
public IActionResult Ajax_GetMemberOrganisationList(Model_Organisation model)
|
public IActionResult Ajax_GetMemberAdminOrganisationList(Model_Organisation model)
|
||||||
{
|
{
|
||||||
String fn = GetType().Name + ".Ajax_GetMemberOrganisationList";
|
String fn = GetType().Name + ".Ajax_GetMemberAdminOrganisationList";
|
||||||
String messageTitle = Localiser["organisation.caption.organisations"];
|
String messageTitle = Localiser["organisation.caption.organisations"];
|
||||||
AjaxResponse_MemberOrganisationList responseData = new AjaxResponse_MemberOrganisationList(model);
|
AjaxResponse_MemberAdminOrganisationList responseData = new AjaxResponse_MemberAdminOrganisationList(model);
|
||||||
|
|
||||||
// Validate session and referrer.
|
// Validate session and referrer.
|
||||||
if (!ValidReferer) return Forbid();
|
if (!ValidReferer) return Forbid();
|
||||||
@@ -146,7 +146,10 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
// Organisation filter
|
// Organisation filter
|
||||||
SaxUserOrganisation.Params prmUserOrganisation = new SaxUserOrganisation.Params();
|
SaxUserOrganisation.Params prmUserOrganisation = new SaxUserOrganisation.Params();
|
||||||
prmUserOrganisation.UserAccountIdsIncluded.Add(UserAccountId);
|
prmUserOrganisation.UserAccountIdsIncluded.Add(UserAccountId);
|
||||||
|
prmUserOrganisation.OrganisationStatusCat = SaxOrganisation.StatusCat.ActiveOnly;
|
||||||
prmUserOrganisation.OrganisationMembersOnly = true;
|
prmUserOrganisation.OrganisationMembersOnly = true;
|
||||||
|
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.Admin);
|
||||||
|
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.MemberAdmin);
|
||||||
prmUserOrganisation.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
prmUserOrganisation.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
||||||
prmUserOrganisation.SortColumns.Add(colOrganisationName);
|
prmUserOrganisation.SortColumns.Add(colOrganisationName);
|
||||||
model.Paging.ItemTotal = (ulong)AccountMgr.GetUserOrganisationCount(prmUserOrganisation);
|
model.Paging.ItemTotal = (ulong)AccountMgr.GetUserOrganisationCount(prmUserOrganisation);
|
||||||
@@ -158,11 +161,161 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
NamedValue.Map values = resultSet.GetRecordValues();
|
NamedValue.Map values = resultSet.GetRecordValues();
|
||||||
OrganisationResponseData organisationData = new OrganisationResponseData()
|
OrganisationResponseData organisationData = new OrganisationResponseData()
|
||||||
{
|
{
|
||||||
Id = values.GetLong(colOrganisationId.DataName),
|
Id = model.EncryptId(new SysId(values.GetLong(colOrganisationId.DataName))),
|
||||||
Name = values.GetString(colOrganisationName.DataName),
|
Name = values.GetString(colOrganisationName.DataName),
|
||||||
RegionId = values.GetLong(colRegionId.DataName),
|
RegionId = model.EncryptId(new SysId(values.GetLong(colRegionId.DataName))),
|
||||||
RegionName = values.GetString(colRegionName.DataName),
|
RegionName = values.GetString(colRegionName.DataName),
|
||||||
SportId = values.GetLong(colSportId.DataName),
|
SportId = model.EncryptId(new SysId(values.GetLong(colSportId.DataName))),
|
||||||
|
SportName = values.GetString(colSportName.DataName),
|
||||||
|
};
|
||||||
|
responseData.Organisations.Add(organisationData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (model.Paging.IsPaged)
|
||||||
|
model.Paging.ItemCount = (ushort)responseData.Organisations.Count;
|
||||||
|
|
||||||
|
// Complete response.
|
||||||
|
responseData.SetPaging(model);
|
||||||
|
responseData.Success = true;
|
||||||
|
return Json(responseData);
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
// Get Event Admin Organisation List ajax request.
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
private class AjaxResponse_EventAdminOrganisationList : AjaxResponse_Data
|
||||||
|
{
|
||||||
|
// Construction.
|
||||||
|
public AjaxResponse_EventAdminOrganisationList(SaxModel_Online model) : base(model) { }
|
||||||
|
// Organisation list.
|
||||||
|
public List<OrganisationResponseData> Organisations { get; } = new List<OrganisationResponseData>();
|
||||||
|
}
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
[HttpPost]
|
||||||
|
[Route("Organisation/Ajax/GetEventAdminOrganisationList")]
|
||||||
|
public IActionResult Ajax_GetEventAdminOrganisationList(Model_Organisation model)
|
||||||
|
{
|
||||||
|
String fn = GetType().Name + ".Ajax_GetEventAdminOrganisationList";
|
||||||
|
String messageTitle = Localiser["organisation.caption.organisations"];
|
||||||
|
AjaxResponse_EventAdminOrganisationList responseData = new AjaxResponse_EventAdminOrganisationList(model);
|
||||||
|
|
||||||
|
// Validate session and referrer.
|
||||||
|
if (!ValidReferer) return Forbid();
|
||||||
|
if (!ValidUserSession) return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
RefreshModel(model);
|
||||||
|
|
||||||
|
// Query columns.
|
||||||
|
ColumnDfn colOrganisationId = AccountMgr.GetUserOrganisationColumnDfn(SaxUserOrganisation.Column.OrganisationId);
|
||||||
|
ColumnDfn colOrganisationName = AccountMgr.GetUserOrganisationColumnDfn(SaxUserOrganisation.Column.Organisation_Name);
|
||||||
|
ColumnDfn colRegionId = AccountMgr.GetUserOrganisationColumnDfn(SaxUserOrganisation.Column.Organisation_RegionId);
|
||||||
|
ColumnDfn colRegionName = AccountMgr.GetUserOrganisationColumnDfn(SaxUserOrganisation.Column.Organisation_Region_Name);
|
||||||
|
ColumnDfn colSportId = AccountMgr.GetUserOrganisationColumnDfn(SaxUserOrganisation.Column.Organisation_SportId);
|
||||||
|
ColumnDfn colSportName = AccountMgr.GetUserOrganisationColumnDfn(SaxUserOrganisation.Column.Organisation_Sport_Name);
|
||||||
|
List<ColumnDfn> columns = new List<ColumnDfn>()
|
||||||
|
{
|
||||||
|
colOrganisationId, colOrganisationName,
|
||||||
|
colRegionId, colRegionName,
|
||||||
|
colSportId, colSportName
|
||||||
|
};
|
||||||
|
|
||||||
|
// Organisation filter
|
||||||
|
SaxUserOrganisation.Params prmUserOrganisation = new SaxUserOrganisation.Params();
|
||||||
|
prmUserOrganisation.UserAccountIdsIncluded.Add(UserAccountId);
|
||||||
|
prmUserOrganisation.OrganisationStatusCat = SaxOrganisation.StatusCat.ActiveOnly;
|
||||||
|
prmUserOrganisation.OrganisationMembersOnly = true;
|
||||||
|
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.Admin);
|
||||||
|
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.ScheduleAdmin);
|
||||||
|
prmUserOrganisation.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
||||||
|
prmUserOrganisation.SortColumns.Add(colOrganisationName);
|
||||||
|
model.Paging.ItemTotal = (ulong)AccountMgr.GetUserOrganisationCount(prmUserOrganisation);
|
||||||
|
model.PopulatePagingTo(prmUserOrganisation.ResultsPaging);
|
||||||
|
using (DbResultSet resultSet = AccountMgr.ExecuteUserOrganisationQuery(columns, prmUserOrganisation))
|
||||||
|
{
|
||||||
|
while (resultSet != null && resultSet.HasRows && resultSet.NextRecord())
|
||||||
|
{
|
||||||
|
NamedValue.Map values = resultSet.GetRecordValues();
|
||||||
|
OrganisationResponseData organisationData = new OrganisationResponseData()
|
||||||
|
{
|
||||||
|
Id = model.EncryptId(new SysId(values.GetLong(colOrganisationId.DataName))),
|
||||||
|
Name = values.GetString(colOrganisationName.DataName),
|
||||||
|
RegionId = model.EncryptId(new SysId(values.GetLong(colRegionId.DataName))),
|
||||||
|
RegionName = values.GetString(colRegionName.DataName),
|
||||||
|
SportId = model.EncryptId(new SysId(values.GetLong(colSportId.DataName))),
|
||||||
|
SportName = values.GetString(colSportName.DataName),
|
||||||
|
};
|
||||||
|
responseData.Organisations.Add(organisationData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (model.Paging.IsPaged)
|
||||||
|
model.Paging.ItemCount = (ushort)responseData.Organisations.Count;
|
||||||
|
|
||||||
|
// Complete response.
|
||||||
|
responseData.SetPaging(model);
|
||||||
|
responseData.Success = true;
|
||||||
|
return Json(responseData);
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
// Get Opportunity Admin Organisation List ajax request.
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
private class AjaxResponse_OpportunityAdminOrganisationList : AjaxResponse_Data
|
||||||
|
{
|
||||||
|
// Construction.
|
||||||
|
public AjaxResponse_OpportunityAdminOrganisationList(SaxModel_Online model) : base(model) { }
|
||||||
|
// Organisation list.
|
||||||
|
public List<OrganisationResponseData> Organisations { get; } = new List<OrganisationResponseData>();
|
||||||
|
}
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
[HttpPost]
|
||||||
|
[Route("Organisation/Ajax/GetOpportunityAdminOrganisationList")]
|
||||||
|
public IActionResult Ajax_GetOpportunityAdminOrganisationList(Model_Organisation model)
|
||||||
|
{
|
||||||
|
String fn = GetType().Name + ".Ajax_GetOpportunityAdminOrganisationList";
|
||||||
|
String messageTitle = Localiser["organisation.caption.organisations"];
|
||||||
|
AjaxResponse_OpportunityAdminOrganisationList responseData = new AjaxResponse_OpportunityAdminOrganisationList(model);
|
||||||
|
|
||||||
|
// Validate session and referrer.
|
||||||
|
if (!ValidReferer) return Forbid();
|
||||||
|
if (!ValidUserSession) return GetAjaxResult_InvalidSession(responseData);
|
||||||
|
RefreshModel(model);
|
||||||
|
|
||||||
|
// Query columns.
|
||||||
|
ColumnDfn colOrganisationId = AccountMgr.GetUserOrganisationColumnDfn(SaxUserOrganisation.Column.OrganisationId);
|
||||||
|
ColumnDfn colOrganisationName = AccountMgr.GetUserOrganisationColumnDfn(SaxUserOrganisation.Column.Organisation_Name);
|
||||||
|
ColumnDfn colRegionId = AccountMgr.GetUserOrganisationColumnDfn(SaxUserOrganisation.Column.Organisation_RegionId);
|
||||||
|
ColumnDfn colRegionName = AccountMgr.GetUserOrganisationColumnDfn(SaxUserOrganisation.Column.Organisation_Region_Name);
|
||||||
|
ColumnDfn colSportId = AccountMgr.GetUserOrganisationColumnDfn(SaxUserOrganisation.Column.Organisation_SportId);
|
||||||
|
ColumnDfn colSportName = AccountMgr.GetUserOrganisationColumnDfn(SaxUserOrganisation.Column.Organisation_Sport_Name);
|
||||||
|
List<ColumnDfn> columns = new List<ColumnDfn>()
|
||||||
|
{
|
||||||
|
colOrganisationId, colOrganisationName,
|
||||||
|
colRegionId, colRegionName,
|
||||||
|
colSportId, colSportName
|
||||||
|
};
|
||||||
|
|
||||||
|
// Organisation filter
|
||||||
|
SaxUserOrganisation.Params prmUserOrganisation = new SaxUserOrganisation.Params();
|
||||||
|
prmUserOrganisation.UserAccountIdsIncluded.Add(UserAccountId);
|
||||||
|
prmUserOrganisation.OrganisationStatusCat = SaxOrganisation.StatusCat.ActiveOnly;
|
||||||
|
prmUserOrganisation.OrganisationMembersOnly = true;
|
||||||
|
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.Admin);
|
||||||
|
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.OpportunityAdmin);
|
||||||
|
prmUserOrganisation.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
||||||
|
prmUserOrganisation.SortColumns.Add(colOrganisationName);
|
||||||
|
model.Paging.ItemTotal = (ulong)AccountMgr.GetUserOrganisationCount(prmUserOrganisation);
|
||||||
|
model.PopulatePagingTo(prmUserOrganisation.ResultsPaging);
|
||||||
|
using (DbResultSet resultSet = AccountMgr.ExecuteUserOrganisationQuery(columns, prmUserOrganisation))
|
||||||
|
{
|
||||||
|
while (resultSet != null && resultSet.HasRows && resultSet.NextRecord())
|
||||||
|
{
|
||||||
|
NamedValue.Map values = resultSet.GetRecordValues();
|
||||||
|
OrganisationResponseData organisationData = new OrganisationResponseData()
|
||||||
|
{
|
||||||
|
Id = model.EncryptId(new SysId(values.GetLong(colOrganisationId.DataName))),
|
||||||
|
Name = values.GetString(colOrganisationName.DataName),
|
||||||
|
RegionId = model.EncryptId(new SysId(values.GetLong(colRegionId.DataName))),
|
||||||
|
RegionName = values.GetString(colRegionName.DataName),
|
||||||
|
SportId = model.EncryptId(new SysId(values.GetLong(colSportId.DataName))),
|
||||||
SportName = values.GetString(colSportName.DataName),
|
SportName = values.GetString(colSportName.DataName),
|
||||||
};
|
};
|
||||||
responseData.Organisations.Add(organisationData);
|
responseData.Organisations.Add(organisationData);
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ using Sarand.Net.Standard.Base.Dbas;
|
|||||||
using Sarand.Net.Standard.Base.Utils;
|
using Sarand.Net.Standard.Base.Utils;
|
||||||
using Saxonite.Net.Core.Web.Base.App;
|
using Saxonite.Net.Core.Web.Base.App;
|
||||||
using Saxonite.Net.Core.Web.Online.Models;
|
using Saxonite.Net.Core.Web.Online.Models;
|
||||||
|
using Saxonite.Net.Standard.Base.App;
|
||||||
using Saxonite.Net.Standard.Base.Bus;
|
using Saxonite.Net.Standard.Base.Bus;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -38,6 +39,33 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
return RedirectToAction("", "");
|
return RedirectToAction("", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
[HttpGet]
|
||||||
|
public IActionResult Members()
|
||||||
|
{
|
||||||
|
// Validate session.
|
||||||
|
if (!ValidUserSession)
|
||||||
|
return RedirectToAction("", "");
|
||||||
|
|
||||||
|
// Model.
|
||||||
|
Model_Organisation_Members model = new Model_Organisation_Members(Localiser);
|
||||||
|
|
||||||
|
// Get a suitable organisation for the filter.
|
||||||
|
SysId filterOrganisationId = SessionData_Online.Filter.OrganisationIdMember;
|
||||||
|
String filterOrganisationCaption = SessionData_Online.Filter.OrganisationCaptionMember;
|
||||||
|
OrganisationData organisationData = GetOrganisationForFilter(filterOrganisationId, filterOrganisationCaption, Sax.OrganisationRole.MemberAdmin);
|
||||||
|
if (organisationData == null)
|
||||||
|
return RedirectToAction("", "");
|
||||||
|
|
||||||
|
// Make a note of the filter values.
|
||||||
|
model.Filter.OrganisationId = model.EncryptId(organisationData.Id);
|
||||||
|
model.Filter.OrganisationCaption = organisationData.Caption;
|
||||||
|
SessionData_Online.Filter.OrganisationIdMember = organisationData.Id;
|
||||||
|
SessionData_Online.Filter.OrganisationCaptionMember = organisationData.Caption;
|
||||||
|
|
||||||
|
return View(model);
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public IActionResult Events()
|
public IActionResult Events()
|
||||||
@@ -52,12 +80,12 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
// Get a suitable organisation for the filter.
|
// Get a suitable organisation for the filter.
|
||||||
SysId filterOrganisationId = SessionData_Online.Filter.OrganisationIdMember;
|
SysId filterOrganisationId = SessionData_Online.Filter.OrganisationIdMember;
|
||||||
String filterOrganisationCaption = SessionData_Online.Filter.OrganisationCaptionMember;
|
String filterOrganisationCaption = SessionData_Online.Filter.OrganisationCaptionMember;
|
||||||
OrganisationData organisationData = GetOrganisationForFilter(filterOrganisationId, filterOrganisationCaption);
|
OrganisationData organisationData = GetOrganisationForFilter(filterOrganisationId, filterOrganisationCaption, Sax.OrganisationRole.ScheduleAdmin);
|
||||||
if (organisationData == null)
|
if (organisationData == null)
|
||||||
return RedirectToAction("", "");
|
return RedirectToAction("", "");
|
||||||
|
|
||||||
// Make a note of the filter values.
|
// Make a note of the filter values.
|
||||||
model.Filter.OrganisationId = SysId.ToString(organisationData.Id);
|
model.Filter.OrganisationId = model.EncryptId(organisationData.Id);
|
||||||
model.Filter.OrganisationCaption = organisationData.Caption;
|
model.Filter.OrganisationCaption = organisationData.Caption;
|
||||||
SessionData_Online.Filter.OrganisationIdMember = organisationData.Id;
|
SessionData_Online.Filter.OrganisationIdMember = organisationData.Id;
|
||||||
SessionData_Online.Filter.OrganisationCaptionMember = organisationData.Caption;
|
SessionData_Online.Filter.OrganisationCaptionMember = organisationData.Caption;
|
||||||
@@ -79,39 +107,12 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
// Get a suitable organisation for the filter.
|
// Get a suitable organisation for the filter.
|
||||||
SysId filterOrganisationId = SessionData_Online.Filter.OrganisationIdMember;
|
SysId filterOrganisationId = SessionData_Online.Filter.OrganisationIdMember;
|
||||||
String filterOrganisationCaption = SessionData_Online.Filter.OrganisationCaptionMember;
|
String filterOrganisationCaption = SessionData_Online.Filter.OrganisationCaptionMember;
|
||||||
OrganisationData organisationData = GetOrganisationForFilter(filterOrganisationId, filterOrganisationCaption);
|
OrganisationData organisationData = GetOrganisationForFilter(filterOrganisationId, filterOrganisationCaption, Sax.OrganisationRole.OpportunityAdmin);
|
||||||
if (organisationData == null)
|
if (organisationData == null)
|
||||||
return RedirectToAction("", "");
|
return RedirectToAction("", "");
|
||||||
|
|
||||||
// Make a note of the filter values.
|
// Make a note of the filter values.
|
||||||
model.Filter.OrganisationId = SysId.ToString(organisationData.Id);
|
model.Filter.OrganisationId = model.EncryptId(organisationData.Id);
|
||||||
model.Filter.OrganisationCaption = organisationData.Caption;
|
|
||||||
SessionData_Online.Filter.OrganisationIdMember = organisationData.Id;
|
|
||||||
SessionData_Online.Filter.OrganisationCaptionMember = organisationData.Caption;
|
|
||||||
|
|
||||||
return View(model);
|
|
||||||
}
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------
|
|
||||||
[HttpGet]
|
|
||||||
public IActionResult Members()
|
|
||||||
{
|
|
||||||
// Validate session.
|
|
||||||
if (!ValidUserSession)
|
|
||||||
return RedirectToAction("", "");
|
|
||||||
|
|
||||||
// Model.
|
|
||||||
Model_Organisation_Members model = new Model_Organisation_Members(Localiser);
|
|
||||||
|
|
||||||
// Get a suitable organisation for the filter.
|
|
||||||
SysId filterOrganisationId = SessionData_Online.Filter.OrganisationIdMember;
|
|
||||||
String filterOrganisationCaption = SessionData_Online.Filter.OrganisationCaptionMember;
|
|
||||||
OrganisationData organisationData = GetOrganisationForFilter(filterOrganisationId, filterOrganisationCaption);
|
|
||||||
if (organisationData == null)
|
|
||||||
return RedirectToAction("", "");
|
|
||||||
|
|
||||||
// Make a note of the filter values.
|
|
||||||
model.Filter.OrganisationId = SysId.ToString(organisationData.Id);
|
|
||||||
model.Filter.OrganisationCaption = organisationData.Caption;
|
model.Filter.OrganisationCaption = organisationData.Caption;
|
||||||
SessionData_Online.Filter.OrganisationIdMember = organisationData.Id;
|
SessionData_Online.Filter.OrganisationIdMember = organisationData.Id;
|
||||||
SessionData_Online.Filter.OrganisationCaptionMember = organisationData.Caption;
|
SessionData_Online.Filter.OrganisationCaptionMember = organisationData.Caption;
|
||||||
@@ -126,27 +127,46 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
|||||||
public SysId Id { get; }
|
public SysId Id { get; }
|
||||||
public String Caption { get; set; }
|
public String Caption { get; set; }
|
||||||
}
|
}
|
||||||
private OrganisationData GetOrganisationForFilter(SysId filterOrganisationId, String filterOrganisationCaption)
|
private OrganisationData GetOrganisationForFilter(SysId filterOrganisationId, String filterOrganisationCaption, Sax.OrganisationRole organisationRole)
|
||||||
{
|
{
|
||||||
// Check that user is associated with organisations.
|
// Check that user is associated with organisations.
|
||||||
SaxUserOrganisation.Params prmUserOrganisation = new SaxUserOrganisation.Params();
|
SaxUserOrganisation.Params prmUserOrganisation = new SaxUserOrganisation.Params();
|
||||||
prmUserOrganisation.UserAccountIdsIncluded.Add(UserAccountId);
|
prmUserOrganisation.UserAccountIdsIncluded.Add(UserAccountId);
|
||||||
|
prmUserOrganisation.OrganisationStatusCat = SaxOrganisation.StatusCat.ActiveOnly;
|
||||||
prmUserOrganisation.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
prmUserOrganisation.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
||||||
if (AccountMgr.GetUserOrganisationCount(prmUserOrganisation) < 1)
|
if (AccountMgr.GetUserOrganisationCount(prmUserOrganisation) < 1)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
// Filter organisation.
|
// Roles (any) required for organisation list.
|
||||||
OrganisationData organisationData = new OrganisationData(filterOrganisationId);
|
List<Sax.OrganisationRole> requiredRoles = new List<Sax.OrganisationRole>() { Sax.OrganisationRole.Admin };
|
||||||
organisationData.Caption = filterOrganisationCaption;
|
if (organisationRole > 0)
|
||||||
if (!SysId.IsValid(filterOrganisationId) || StringUtil.IsEmpty(filterOrganisationCaption))
|
requiredRoles.Add(organisationRole);
|
||||||
|
|
||||||
|
// Retrieve specified organisation.
|
||||||
|
OrganisationData organisationData = null;
|
||||||
|
if (SysId.IsValid(filterOrganisationId))
|
||||||
{
|
{
|
||||||
// Pick the first Organisation that the user is a member of.
|
organisationData = new OrganisationData(filterOrganisationId) { Caption = filterOrganisationCaption };
|
||||||
|
using (SaxOrganisation organisation = AccountMgr.GetOrganisationById(organisationData.Id))
|
||||||
|
{
|
||||||
|
// Validate organisation.
|
||||||
|
if (organisation != null && organisation.IsStatusActive && AccountMgr.UserHasAnyOrganisationRole(UserAccountId, organisation.Id, requiredRoles))
|
||||||
|
organisationData.Caption = organisation.Name;
|
||||||
|
else
|
||||||
|
organisationData = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (organisationData == null)
|
||||||
|
{
|
||||||
|
// Pick the first valid Organisation that the user is a member of.
|
||||||
ColumnDfn colOrganisationId = AccountMgr.GetUserOrganisationColumnDfn(SaxUserOrganisation.Column.OrganisationId);
|
ColumnDfn colOrganisationId = AccountMgr.GetUserOrganisationColumnDfn(SaxUserOrganisation.Column.OrganisationId);
|
||||||
ColumnDfn colOrganisationName = AccountMgr.GetUserOrganisationColumnDfn(SaxUserOrganisation.Column.Organisation_Name);
|
ColumnDfn colOrganisationName = AccountMgr.GetUserOrganisationColumnDfn(SaxUserOrganisation.Column.Organisation_Name);
|
||||||
prmUserOrganisation = new SaxUserOrganisation.Params();
|
prmUserOrganisation = new SaxUserOrganisation.Params();
|
||||||
prmUserOrganisation.UserAccountIdsIncluded.Add(UserAccountId);
|
prmUserOrganisation.UserAccountIdsIncluded.Add(UserAccountId);
|
||||||
if (SysId.IsValid(filterOrganisationId))
|
if (organisationData != null && SysId.IsValid(organisationData.Id))
|
||||||
prmUserOrganisation.OrganisationIdsIncluded.Add(filterOrganisationId);
|
prmUserOrganisation.OrganisationIdsIncluded.Add(organisationData.Id);
|
||||||
|
prmUserOrganisation.OrganisationStatusCat = SaxOrganisation.StatusCat.ActiveOnly;
|
||||||
prmUserOrganisation.OrganisationMembersOnly = true;
|
prmUserOrganisation.OrganisationMembersOnly = true;
|
||||||
prmUserOrganisation.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
prmUserOrganisation.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
||||||
prmUserOrganisation.SortColumns.Add(colOrganisationName);
|
prmUserOrganisation.SortColumns.Add(colOrganisationName);
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ using System.Threading.Tasks;
|
|||||||
namespace Saxonite.Net.Core.Web.Online.Models
|
namespace Saxonite.Net.Core.Web.Online.Models
|
||||||
{
|
{
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
public class Model_Activity: SaxModel_Online
|
public class Model_Activity : SaxModel_Online
|
||||||
{
|
{
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
// Construction.
|
// Construction.
|
||||||
@@ -32,14 +32,14 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
|||||||
|
|
||||||
// Activity identity.
|
// Activity identity.
|
||||||
// ToDo Replace Type + Idx (Id) with Idx and cross-reference stored in Session data.
|
// ToDo Replace Type + Idx (Id) with Idx and cross-reference stored in Session data.
|
||||||
public String ActivityType { get; set; }
|
public String ActivityItemType { get; set; }
|
||||||
public String ActivityIdx { get; set; }
|
public String ActivityItemId { get; set; }
|
||||||
public String ActivityReaction{ get; set; }
|
public String ActivityReaction { get; set; }
|
||||||
public Sax.ActivityReaction GetActivityReaction()
|
public Sax.ActivityReaction GetActivityReaction()
|
||||||
{
|
{
|
||||||
Sax.ActivityReaction reaction = EnumUtil.ParseEnum(ActivityReaction, Sax.ActivityReaction.Unknown);
|
Sax.ActivityReaction reaction = EnumUtil.ParseEnum(ActivityReaction, Sax.ActivityReaction.Unknown);
|
||||||
if (reaction <= 0 && StringUtil.IsNumeric(ActivityReaction))
|
if (reaction <= 0 && StringUtil.IsNumeric(ActivityReaction))
|
||||||
reaction = (Sax.ActivityReaction)StringUtil.ToShort(ActivityReaction);
|
reaction = (Sax.ActivityReaction)StringUtil.ToShort(ActivityReaction);
|
||||||
return reaction;
|
return reaction;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,8 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
|||||||
public String EventDate { get; set; }
|
public String EventDate { get; set; }
|
||||||
public String EventTime { get; set; }
|
public String EventTime { get; set; }
|
||||||
public String EventTypeCode { get; set; }
|
public String EventTypeCode { get; set; }
|
||||||
public String EventAbout { get; set; }
|
public String EventSummary { get; set; }
|
||||||
|
public String EventDetails { get; set; }
|
||||||
public String EventStatusCode { get; set; }
|
public String EventStatusCode { get; set; }
|
||||||
public SaStatus EventStatus { get { return SacsSystem.GetStatusForCode(EventStatusCode); } }
|
public SaStatus EventStatus { get { return SacsSystem.GetStatusForCode(EventStatusCode); } }
|
||||||
|
|
||||||
@@ -69,6 +70,9 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
|||||||
// Event date.
|
// Event date.
|
||||||
if (EventDate != null)
|
if (EventDate != null)
|
||||||
{
|
{
|
||||||
|
DateTime eventOn = ParseDateFromForm(EventDate);
|
||||||
|
if (!DateUtil.IsValid(eventOn))
|
||||||
|
responseData.SetControlError(nameof(EventDate), Localiser["msg.validation.mandatory.value"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Event time.
|
// Event time.
|
||||||
@@ -76,14 +80,22 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// Event about.
|
// Event summary.
|
||||||
if (EventAbout != null)
|
if (EventSummary != null)
|
||||||
{
|
{
|
||||||
responseData.SetControlValue(nameof(EventAbout), EventAbout);
|
responseData.SetControlValue(nameof(EventSummary), EventSummary);
|
||||||
if (StringUtil.IsEmpty(EventAbout))
|
if (StringUtil.IsEmpty(EventSummary))
|
||||||
responseData.SetControlError(nameof(EventAbout), Localiser["msg.validation.mandatory.value"]);
|
responseData.SetControlError(nameof(EventSummary), Localiser["msg.validation.mandatory.value"]);
|
||||||
else if (StringUtil.GetLength(EventAbout) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_About))
|
else if (StringUtil.GetLength(EventSummary) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_Summary))
|
||||||
responseData.SetControlError(nameof(EventAbout), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_About)]);
|
responseData.SetControlError(nameof(EventSummary), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_Summary)]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Event details.
|
||||||
|
if (EventDetails != null)
|
||||||
|
{
|
||||||
|
responseData.SetControlValue(nameof(EventDetails), EventDetails);
|
||||||
|
if (StringUtil.GetLength(EventDetails) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_Details))
|
||||||
|
responseData.SetControlError(nameof(EventDetails), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_Details)]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Event sport.
|
// Event sport.
|
||||||
@@ -91,7 +103,7 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
|||||||
{
|
{
|
||||||
SysId articleSportId = ExtractSysId(EventSportIdPrimary);
|
SysId articleSportId = ExtractSysId(EventSportIdPrimary);
|
||||||
if (!SysId.IsValid(articleSportId))
|
if (!SysId.IsValid(articleSportId))
|
||||||
responseData.SetControlError(nameof(EventSportIdPrimary), Localiser["msg.validation.mandatory.value"]);
|
responseData.SetControlError("EventSportPrimary", Localiser["msg.validation.mandatory.value"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Event region.
|
// Event region.
|
||||||
@@ -99,16 +111,16 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
|||||||
{
|
{
|
||||||
SysId articleRegionId = ExtractSysId(EventRegionIdCountry);
|
SysId articleRegionId = ExtractSysId(EventRegionIdCountry);
|
||||||
if (!SysId.IsValid(articleRegionId))
|
if (!SysId.IsValid(articleRegionId))
|
||||||
responseData.SetControlError(nameof(EventRegionIdCountry), Localiser["msg.validation.mandatory.value"]);
|
responseData.SetControlError("EventRegionCountry", Localiser["msg.validation.mandatory.value"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Event status.
|
// Event status.
|
||||||
if (EventStatusCode != null)
|
if (EventStatusCode != null)
|
||||||
{
|
{
|
||||||
if (StringUtil.IsEmpty(EventStatusCode))
|
if (StringUtil.IsEmpty(EventStatusCode))
|
||||||
responseData.SetControlError(nameof(EventStatusCode), Localiser["msg.validation.mandatory.value"]);
|
responseData.SetControlError(nameof(EventStatus), Localiser["msg.validation.mandatory.value"]);
|
||||||
else if (!SaxOrganisationEvent.ValidStatuses.Contains(EventStatus))
|
else if (!SaxOrganisationEvent.ValidStatuses.Contains(EventStatus))
|
||||||
responseData.SetControlError(nameof(EventStatusCode), Localiser["msg.validation.invalid.value"]);
|
responseData.SetControlError(nameof(EventStatus), Localiser["msg.validation.invalid.value"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return !responseData.HasControlErrors();
|
return !responseData.HasControlErrors();
|
||||||
|
|||||||
@@ -21,10 +21,14 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
|||||||
{
|
{
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
// Data members.
|
// Data members.
|
||||||
private bool? userCanManageOrganisationMembers = null;
|
private class UserCanManageOptions
|
||||||
private bool? userCanManageOrganisationOpportunities = null;
|
{
|
||||||
private bool? userCanManageOrganisationSchedule = null;
|
public bool? OrganisationMembers { get; set; } = null;
|
||||||
private bool? userCanManageOrganisationArticles = null;
|
public bool? OrganisationOpportunities { get; set; } = null;
|
||||||
|
public bool? OrganisationSchedule { get; set; } = null;
|
||||||
|
public bool? OrganisationArticles { get; set; } = null;
|
||||||
|
}
|
||||||
|
private readonly UserCanManageOptions userCanManage = new UserCanManageOptions();
|
||||||
|
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
// Protected construction.
|
// Protected construction.
|
||||||
@@ -42,9 +46,10 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
|||||||
|
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
// Menu options.
|
// Menu options.
|
||||||
public bool MembersAllowed { get { return UserCanManageOrganisationMembers; } }
|
public bool OrganisationMembersAllowed { get { return UserCanManageOrganisationMembers; } }
|
||||||
public bool ArticlesAllowed { get { return UserIsJournalist || UserCanManageOrganisationArticles; } }
|
public bool ArticlesAllowed { get { return UserIsJournalist || UserCanManageOrganisationArticles; } }
|
||||||
public bool OpportunitiesAllowed { get { return UserCanManageOrganisationOpportunities; } }
|
public bool OrganisationOpportunitiesAllowed { get { return UserCanManageOrganisationOpportunities; } }
|
||||||
|
public bool OrganisationEventsAllowed { get { return UserCanManageOrganisationSchedule; } }
|
||||||
|
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
// Security profile.
|
// Security profile.
|
||||||
@@ -53,7 +58,7 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (userCanManageOrganisationMembers == null && ValidUserSession)
|
if (userCanManage.OrganisationMembers == null && ValidUserSession)
|
||||||
{
|
{
|
||||||
SaxUserOrganisation.Params prmUserOrganisation = new SaxUserOrganisation.Params();
|
SaxUserOrganisation.Params prmUserOrganisation = new SaxUserOrganisation.Params();
|
||||||
prmUserOrganisation.UserAccountIdsIncluded.Add(UserAccountId);
|
prmUserOrganisation.UserAccountIdsIncluded.Add(UserAccountId);
|
||||||
@@ -61,16 +66,16 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
|||||||
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.Admin);
|
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.Admin);
|
||||||
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.MemberAdmin);
|
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.MemberAdmin);
|
||||||
prmUserOrganisation.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
prmUserOrganisation.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
||||||
userCanManageOrganisationMembers = (AccountMgr.GetUserOrganisationCount(prmUserOrganisation) > 0);
|
userCanManage.OrganisationMembers = (AccountMgr.GetUserOrganisationCount(prmUserOrganisation) > 0);
|
||||||
}
|
}
|
||||||
return userCanManageOrganisationMembers == true ? true : false;
|
return userCanManage.OrganisationMembers == true ? true : false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public bool UserCanManageOrganisationOpportunities
|
public bool UserCanManageOrganisationOpportunities
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (userCanManageOrganisationOpportunities == null && ValidUserSession)
|
if (userCanManage.OrganisationOpportunities == null && ValidUserSession)
|
||||||
{
|
{
|
||||||
SaxUserOrganisation.Params prmUserOrganisation = new SaxUserOrganisation.Params();
|
SaxUserOrganisation.Params prmUserOrganisation = new SaxUserOrganisation.Params();
|
||||||
prmUserOrganisation.UserAccountIdsIncluded.Add(UserAccountId);
|
prmUserOrganisation.UserAccountIdsIncluded.Add(UserAccountId);
|
||||||
@@ -78,16 +83,16 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
|||||||
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.Admin);
|
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.Admin);
|
||||||
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.OpportunityAdmin);
|
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.OpportunityAdmin);
|
||||||
prmUserOrganisation.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
prmUserOrganisation.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
||||||
userCanManageOrganisationOpportunities = (AccountMgr.GetUserOrganisationCount(prmUserOrganisation) > 0);
|
userCanManage.OrganisationOpportunities = (AccountMgr.GetUserOrganisationCount(prmUserOrganisation) > 0);
|
||||||
}
|
}
|
||||||
return userCanManageOrganisationOpportunities == true ? true : false;
|
return userCanManage.OrganisationOpportunities == true ? true : false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public bool UserCanManageOrganisationSchedule
|
public bool UserCanManageOrganisationSchedule
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (userCanManageOrganisationSchedule == null && ValidUserSession)
|
if (userCanManage.OrganisationSchedule == null && ValidUserSession)
|
||||||
{
|
{
|
||||||
SaxUserOrganisation.Params prmUserOrganisation = new SaxUserOrganisation.Params();
|
SaxUserOrganisation.Params prmUserOrganisation = new SaxUserOrganisation.Params();
|
||||||
prmUserOrganisation.UserAccountIdsIncluded.Add(UserAccountId);
|
prmUserOrganisation.UserAccountIdsIncluded.Add(UserAccountId);
|
||||||
@@ -95,16 +100,16 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
|||||||
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.Admin);
|
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.Admin);
|
||||||
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.ScheduleAdmin);
|
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.ScheduleAdmin);
|
||||||
prmUserOrganisation.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
prmUserOrganisation.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
||||||
userCanManageOrganisationSchedule = (AccountMgr.GetUserOrganisationCount(prmUserOrganisation) > 0);
|
userCanManage.OrganisationSchedule = (AccountMgr.GetUserOrganisationCount(prmUserOrganisation) > 0);
|
||||||
}
|
}
|
||||||
return userCanManageOrganisationSchedule == true ? true : false;
|
return userCanManage.OrganisationSchedule == true ? true : false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public bool UserCanManageOrganisationArticles
|
public bool UserCanManageOrganisationArticles
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (userCanManageOrganisationArticles == null && ValidUserSession)
|
if (userCanManage.OrganisationArticles == null && ValidUserSession)
|
||||||
{
|
{
|
||||||
SaxUserOrganisation.Params prmUserOrganisation = new SaxUserOrganisation.Params();
|
SaxUserOrganisation.Params prmUserOrganisation = new SaxUserOrganisation.Params();
|
||||||
prmUserOrganisation.UserAccountIdsIncluded.Add(UserAccountId);
|
prmUserOrganisation.UserAccountIdsIncluded.Add(UserAccountId);
|
||||||
@@ -112,9 +117,9 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
|||||||
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.Admin);
|
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.Admin);
|
||||||
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.ArticleAdmin);
|
prmUserOrganisation.OrganisationRolesAny.Add(Sax.OrganisationRole.ArticleAdmin);
|
||||||
prmUserOrganisation.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
prmUserOrganisation.StatusCat = SaxUserOrganisation.StatusCat.ActiveOnly;
|
||||||
userCanManageOrganisationArticles = (AccountMgr.GetUserOrganisationCount(prmUserOrganisation) > 0);
|
userCanManage.OrganisationArticles = (AccountMgr.GetUserOrganisationCount(prmUserOrganisation) > 0);
|
||||||
}
|
}
|
||||||
return userCanManageOrganisationArticles == true ? true : false;
|
return userCanManage.OrganisationArticles == true ? true : false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -86,15 +86,15 @@ else
|
|||||||
@* Activity Id form - to retrieve details for the selected activity. *@
|
@* Activity Id form - to retrieve details for the selected activity. *@
|
||||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmActivityId", @class = "", @action = "#", onsubmit = "return false;" }))
|
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmActivityId", @class = "", @action = "#", onsubmit = "return false;" }))
|
||||||
{
|
{
|
||||||
<input type="hidden" name="ActivityType" class="ActivityType" />
|
<input type="hidden" name="ActivityItemType" class="ActivityItemType" />
|
||||||
<input type="hidden" name="ActivityIdx" class="ActivityIdx" />
|
<input type="hidden" name="ActivityItemId" class="ActivityItemId" />
|
||||||
}
|
}
|
||||||
|
|
||||||
@* Activity React form - to record reaction to the selected activity. *@
|
@* Activity React form - to record reaction to the selected activity. *@
|
||||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmActivityReact", @class = "", @action = "#", onsubmit = "return false;" }))
|
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmActivityReact", @class = "", @action = "#", onsubmit = "return false;" }))
|
||||||
{
|
{
|
||||||
<input type="hidden" name="ActivityType" class="ActivityType" />
|
<input type="hidden" name="ActivityItemType" class="ActivityItemType" />
|
||||||
<input type="hidden" name="ActivityIdx" class="ActivityIdx" />
|
<input type="hidden" name="ActivityItemId" class="ActivityItemId" />
|
||||||
<input type="hidden" name="ActivityReaction" class="ActivityReaction" />
|
<input type="hidden" name="ActivityReaction" class="ActivityReaction" />
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -121,6 +121,12 @@ else
|
|||||||
<div class="sax-panel-item ArticleContentSegmentImage center">
|
<div class="sax-panel-item ArticleContentSegmentImage center">
|
||||||
<img src="" alt="" title="" />
|
<img src="" alt="" title="" />
|
||||||
</div>
|
</div>
|
||||||
|
<div class="sax-panel-item Event">
|
||||||
|
<div class="EventOrganisation"></div>
|
||||||
|
<div class="EventAt"></div>
|
||||||
|
<div class="EventSummary"></div>
|
||||||
|
<div class="EventDetails"></div>
|
||||||
|
</div>
|
||||||
<div class="sax-panel-item Opportunity">
|
<div class="sax-panel-item Opportunity">
|
||||||
<div class="OpportunityOrganisation"></div>
|
<div class="OpportunityOrganisation"></div>
|
||||||
<div class="OpportunityPosition"></div>
|
<div class="OpportunityPosition"></div>
|
||||||
|
|||||||
@@ -0,0 +1,109 @@
|
|||||||
|
@model Model_Organisation_Events
|
||||||
|
@inject SaxLocaliser Localiser
|
||||||
|
@{
|
||||||
|
ViewData["Title"] = "Organisation - Events";
|
||||||
|
}
|
||||||
|
|
||||||
|
<div class="sax-panel Events">
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
sax.lbl.edit = '@(Localiser.GetJavascriptText("label.edit"))';
|
||||||
|
</script>
|
||||||
|
|
||||||
|
@* Filter Form *@
|
||||||
|
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmEventFilter", @class = "sax-form", @action = "#", @method = "POST", onsubmit = "return false;" }))
|
||||||
|
{
|
||||||
|
|
||||||
|
@* Filter Panel *@
|
||||||
|
<div class="sax-panel-filter">
|
||||||
|
@* Filter header *@
|
||||||
|
<div class="sax-header row">
|
||||||
|
<div class="col"><div class="sax-caption">@Localiser["organisation.caption.events"]</div></div>
|
||||||
|
<div class="fixed row">
|
||||||
|
@* Burger menu *@
|
||||||
|
<ul class="nav navbar-nav navbar-dark navbar-right sax-burger">
|
||||||
|
<li class="dropdown-toggle caret-off">
|
||||||
|
<a href="#" class="dropdown" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><span class="navbar-toggler-icon"></span></a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-right sax-dropdown-menu">@* Menu items will be inserted here. *@</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="sax-content">
|
||||||
|
<div class="sax-control row">
|
||||||
|
<div class="col-sm-4"><div class="sax-label text-left text-sm-right">@Localiser["label.organisation"]</div></div>
|
||||||
|
<div class="col-sm-8 row">
|
||||||
|
@Html.HiddenFor(model => model.Filter.OrganisationId, new { @id = "ifFilterOrganisationId", @class = "FilterOrganisationId" })
|
||||||
|
<div class="col"><input type="text" id="ifFilterOrganisation" class="FilterOrganisation sax-input" readonly="readonly" value="@(Model.Filter.OrganisationCaption)" /></div>
|
||||||
|
<div class="fixed"><button class="sax-button SelectFilterOrganisation">@Localiser["label.select"]</button></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="sax-control row">
|
||||||
|
<div class="col-sm-4"><div class="sax-label text-left text-sm-right">@Localiser["label.search"]</div></div>
|
||||||
|
<div class="col-sm-8"><input type="search" id="ifEventFilter" name="Filter.Event" class="EventFilter sax-input" maxlength="64" autocomplete="off" /></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@* Filter item templates *@
|
||||||
|
<div class="sax-panel-item-template">
|
||||||
|
@* Burger dropdown item template - ul is ignored *@
|
||||||
|
<ul class="sax-dropdown-menu Events">
|
||||||
|
<li class="sax-dropdown-item sax-action"><div class="sax-label">...</div></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@* Results Panel *@
|
||||||
|
<div class="sax-panel-results">
|
||||||
|
<div class="sax-panel-messages"></div>
|
||||||
|
<div class="sax-panel-item-list"></div>
|
||||||
|
|
||||||
|
@* Element templates *@
|
||||||
|
<div class="sax-panel-item-template">
|
||||||
|
|
||||||
|
@* Item template *@
|
||||||
|
<div class="sax-panel-item Event">
|
||||||
|
<div class="sax-header row">
|
||||||
|
<div class="col">
|
||||||
|
<div class="sax-caption"><div class="sax-action"><span class="EventDate"></span><span class=""></span></div></div>
|
||||||
|
</div>
|
||||||
|
<div class="fixed sax-actions">
|
||||||
|
@* Burger menu *@
|
||||||
|
<ul class="nav navbar-nav navbar-light navbar-right sax-burger">
|
||||||
|
<li class="dropdown-toggle caret-off">
|
||||||
|
<a href="#" class="dropdown" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><span class="navbar-toggler-icon"></span></a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-right sax-dropdown-menu">@* Menu items will be inserted here. *@</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="sax-content">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12"><div class="EventSummary"></div></div>
|
||||||
|
<div class="col-sm-6"><div class="EventRegionCaption sax-note"></div></div>
|
||||||
|
<div class="col-sm-6 right"><div class="EventSportCaption sax-note"></div></div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-4"><div class="sax-note">@Localiser["label.created"]: <span class="EventCreatedOn"></span></div></div>
|
||||||
|
<div class="col-sm-4"><div class="EventPublished sax-note">@Localiser["label.published"]: <span class="EventPublishedOn"></span></div></div>
|
||||||
|
<div class="col-sm-4 right"><div class="EventStatusDesc sax-note"></div></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@* Burger dropdown item template - ul is ignored *@
|
||||||
|
<ul class="sax-dropdown-menu Event">
|
||||||
|
<li class="sax-dropdown-item sax-action"><div class="sax-label">...</div></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<partial name="~/Views/Common/OrganisationSelect.cshtml" />
|
||||||
|
<partial name="Panel-EventDialog.cshtml" />
|
||||||
|
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
<div class="col-sm-8 row">
|
<div class="col-sm-8 row">
|
||||||
@Html.HiddenFor(model => model.Filter.OrganisationId, new { @id = "ifFilterOrganisationId", @class = "FilterOrganisationId" })
|
@Html.HiddenFor(model => model.Filter.OrganisationId, new { @id = "ifFilterOrganisationId", @class = "FilterOrganisationId" })
|
||||||
<div class="col"><input type="text" id="ifFilterOrganisation" class="FilterOrganisation sax-input" value="@(Model.Filter.OrganisationCaption)" /></div>
|
<div class="col"><input type="text" id="ifFilterOrganisation" class="FilterOrganisation sax-input" value="@(Model.Filter.OrganisationCaption)" /></div>
|
||||||
<div class="fixed"><button class="sax-button" onclick="sax.selectFilterOrganisation()">@Localiser["label.select"]</button></div>
|
<div class="fixed"><button class="sax-button SelectFilterOrganisation">@Localiser["label.select"]</button></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sax-control row">
|
<div class="sax-control row">
|
||||||
@@ -92,14 +92,11 @@
|
|||||||
<div class="sax-content">
|
<div class="sax-content">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-6"><div class="MemberEmail"></div></div>
|
<div class="col-sm-6"><div class="MemberEmail"></div></div>
|
||||||
<div class="col-sm-6 text-sm-right"><div class=""></div></div>
|
<div class="col-sm-6 text-sm-right"><div class="MemberRoles"></div></div>
|
||||||
</div>
|
|
||||||
<div class="">
|
|
||||||
<div class="MemberAdminComment sax-note"></div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-6"><div class=" sax-note"></div></div>
|
<div class="col-sm-8"><div class="MemberAdminComment sax-note"></div></div>
|
||||||
<div class="col-sm-6 text-sm-right"><div class="MemberStatus sax-note"></div></div>
|
<div class="col-sm-4 text-sm-right"><div class="MemberStatus sax-note"></div></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
<div class="col-sm-8 row">
|
<div class="col-sm-8 row">
|
||||||
@Html.HiddenFor(model => model.Filter.OrganisationId, new { @id = "ifFilterOrganisationId", @class = "FilterOrganisationId" })
|
@Html.HiddenFor(model => model.Filter.OrganisationId, new { @id = "ifFilterOrganisationId", @class = "FilterOrganisationId" })
|
||||||
<div class="col"><input type="text" id="ifFilterOrganisation" class="FilterOrganisation sax-input" readonly="readonly" value="@(Model.Filter.OrganisationCaption)" /></div>
|
<div class="col"><input type="text" id="ifFilterOrganisation" class="FilterOrganisation sax-input" readonly="readonly" value="@(Model.Filter.OrganisationCaption)" /></div>
|
||||||
<div class="fixed"><button class="sax-button" onclick="sax.selectFilterOrganisation()">@Localiser["label.select"]</button></div>
|
<div class="fixed"><button class="sax-button SelectFilterOrganisation">@Localiser["label.select"]</button></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sax-control row">
|
<div class="sax-control row">
|
||||||
|
|||||||
@@ -0,0 +1,127 @@
|
|||||||
|
@model Model_Organisation_Events
|
||||||
|
@inject SaxLocaliser Localiser
|
||||||
|
@{
|
||||||
|
/* Organisation Events - Event dialog panel */
|
||||||
|
}
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
sax.dlg.title.createEvent = '@Localiser.GetJavascriptText("organisation.caption.event.create")';
|
||||||
|
sax.dlg.title.updateEvent = '@Localiser.GetJavascriptText("organisation.caption.event.update")';
|
||||||
|
sax.dlg.title.selectRegion = '@Localiser.GetJavascriptText("reference.caption.region.select")';
|
||||||
|
sax.dlg.title.selectSport = '@Localiser.GetJavascriptText("reference.caption.sport.select")';
|
||||||
|
</script>
|
||||||
|
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmEventId", @class = "sax-form" }))
|
||||||
|
{
|
||||||
|
@Html.HiddenFor(model => model.EventId, new { @class = "EventId" })
|
||||||
|
}
|
||||||
|
<div id="dlgEvent" class="sax-dialog" title="">
|
||||||
|
|
||||||
|
<div class="spacer2"></div>
|
||||||
|
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmEvent", @class = "sax-form", @onSubmit = "return false;" }))
|
||||||
|
{
|
||||||
|
|
||||||
|
@Html.HiddenFor(model => model.EventId, new { @id = "ifEventId", @class = "EventId" })
|
||||||
|
@Html.HiddenFor(model => model.EventExists, new { @id = "ifEventExists", @class = "EventExists" })
|
||||||
|
<input type="hidden" id="ifEventOrganisationId" class="EventOrganisationId" name="EventOrganisationId" value="@(Model.Filter.OrganisationId)" />
|
||||||
|
|
||||||
|
@* Event type *@
|
||||||
|
<div class="sax-form-control EventTypeCode">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-3">
|
||||||
|
<div class="sax-label">
|
||||||
|
<label for="cbEventType"><span>@Localiser["label.type"]</span><span class="required"> *</span></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm">
|
||||||
|
<div class="sax-control">
|
||||||
|
<select id="cbEventType" class="EventType sax-select" name="EventTypeCode"></select>
|
||||||
|
</div>
|
||||||
|
<div class="sax-message"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@* Event date and time *@
|
||||||
|
<div class="sax-form-control EventDate">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-3">
|
||||||
|
<div class="sax-label">
|
||||||
|
<label for="ifEventDate"><span>@Localiser["label.occurs"]</span><span class="required"> *</span></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm">
|
||||||
|
<div class="sax-control">
|
||||||
|
<input id="ifEventDate" name="EventDate" class="EventDate sax-input sax-calendar" readonly="readonly" />
|
||||||
|
</div>
|
||||||
|
<div class="sax-message"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@* Event summary *@
|
||||||
|
<div class="sax-form-control EventSummary">
|
||||||
|
<div class="sax-label">
|
||||||
|
<label for="ifEventSummary"><span>@Localiser["label.summary"]</span><span class="required"> *</span></label>
|
||||||
|
</div>
|
||||||
|
<div class="sax-control">
|
||||||
|
@Html.TextAreaFor(model => model.EventSummary, new { @id = "ifEventSummary", @class = "EventSummary sax-textarea", @rows = 3, @maxlength = @Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_Summary) })
|
||||||
|
</div>
|
||||||
|
<div class="sax-message"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@* Event details *@
|
||||||
|
<div class="sax-form-control EventDetails">
|
||||||
|
<div class="sax-label">
|
||||||
|
<label for="ifEventDetails"><span>@Localiser["label.details"]</span><span class="required"> </span></label>
|
||||||
|
</div>
|
||||||
|
<div class="sax-control">
|
||||||
|
@Html.TextAreaFor(model => model.EventDetails, new { @id = "ifEventDetails", @class = "EventDetails sax-textarea", @rows = 6, @maxlength = @Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_Details) })
|
||||||
|
</div>
|
||||||
|
<div class="sax-message"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@* Sport *@
|
||||||
|
<div class="sax-form-control EventSportPrimary">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-3">
|
||||||
|
<div class="sax-label">
|
||||||
|
<label for="ifEventSportPrimaryCaption"><span>@Localiser["label.sport"]</span><span class="required"> *</span></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm">
|
||||||
|
<div class="sax-control row">
|
||||||
|
@Html.HiddenFor(model => model.EventSportIdPrimary, new { @id = "ifEventSportIdPrimary", @class = "EventSportIdPrimary" })
|
||||||
|
<div class="col"><input type="text" id="ifEventSportCaptionPrimary" class="EventSportCaptionPrimary sax-input" readonly="readonly" /></div>
|
||||||
|
<div class="fixed"><button class="SelectEventSportPrimary sax-button" style="min-width:auto;margin-left:4px;padding:4px 6px">@Localiser["label.select"]</button></div>
|
||||||
|
</div>
|
||||||
|
<div class="sax-message"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@* Region *@
|
||||||
|
<div class="sax-form-control EventRegionCountry">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-3">
|
||||||
|
<div class="sax-label">
|
||||||
|
<label for="ifEventRegionCountryCaption"><span>@Localiser["label.region"]</span><span class="required"> *</span></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm">
|
||||||
|
<div class="sax-control row">
|
||||||
|
@Html.HiddenFor(model => model.EventRegionIdCountry, new { @id = "ifEventRegionIdCountry", @class = "EventRegionIdCountry" })
|
||||||
|
<div class="col"><input type="text" id="ifEventRegionCaptionCountry" class="EventRegionCaptionCountry sax-input" readonly="readonly" /></div>
|
||||||
|
<div class="fixed"><button class="SelectEventRegionCountry sax-button" style="min-width:auto;margin-left:4px;padding:4px 6px">@Localiser["label.select"]</button></div>
|
||||||
|
</div>
|
||||||
|
<div class="sax-message"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
}
|
||||||
|
<div class="spacer2"></div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<partial name="~/Views/Common/RegionSelect.cshtml" />
|
||||||
|
<partial name="~/Views/Common/SportSelect.cshtml" />
|
||||||
@@ -16,6 +16,7 @@
|
|||||||
<input type="hidden" name="MemberId" class="MemberId" />
|
<input type="hidden" name="MemberId" class="MemberId" />
|
||||||
}
|
}
|
||||||
<div id="dlgMember" class="sax-dialog" title="">
|
<div id="dlgMember" class="sax-dialog" title="">
|
||||||
|
<div class="spacer2"></div>
|
||||||
|
|
||||||
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmMember", @class = "sax-form", @onSubmit = "return false;" }))
|
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmMember", @class = "sax-form", @onSubmit = "return false;" }))
|
||||||
{
|
{
|
||||||
@@ -26,92 +27,121 @@
|
|||||||
|
|
||||||
@* Member Email Address *@
|
@* Member Email Address *@
|
||||||
<div class="sax-form-control MemberEmailAddress">
|
<div class="sax-form-control MemberEmailAddress">
|
||||||
<div class="sax-label">
|
<div class="row">
|
||||||
<label for="ifMemberEmailAddress"><span>@Localiser["label.email"]</span><span class="required"> *</span></label>
|
<div class="col-sm-3">
|
||||||
|
<div class="sax-label">
|
||||||
|
<label for="ifMemberEmailAddress"><span>@Localiser["label.email"]</span><span class="required"> *</span></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm">
|
||||||
|
<div class="sax-control">
|
||||||
|
<input type="text" name="MemberEmailAddress" class="MemberEmailAddress sax-input" autocomplete="off" readonly="readonly" maxlength="@(Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_EmailAddress))" />
|
||||||
|
</div>
|
||||||
|
<div class="sax-message"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sax-control">
|
|
||||||
<input type="text" name="MemberEmailAddress" class="MemberEmailAddress sax-input" autocomplete="off" readonly="readonly" maxlength="@(Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_EmailAddress))" />
|
|
||||||
</div>
|
|
||||||
<div class="sax-message"></div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@* Member Display Name *@
|
@* Member Display Name *@
|
||||||
<div class="sax-form-control MemberDisplayName">
|
<div class="sax-form-control MemberDisplayName">
|
||||||
<div class="sax-label">
|
<div class="row">
|
||||||
<label for="ifMemberDisplayName"><span>@Localiser["label.name"]</span></label>
|
<div class="col-sm-3">
|
||||||
|
<div class="sax-label">
|
||||||
|
<label for="ifMemberDisplayName"><span>@Localiser["label.name"]</span></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm">
|
||||||
|
<div class="sax-control">
|
||||||
|
<input type="text" if="ifMemberDisplayName" class="MemberDisplayName sax-input" readonly="readonly" />
|
||||||
|
</div>
|
||||||
|
<div class="sax-message"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sax-control">
|
|
||||||
<input type="text" if="ifMemberDisplayName" class="MemberDisplayName sax-input" readonly="readonly" />
|
|
||||||
</div>
|
|
||||||
<div class="sax-message"></div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@* Member Name *@
|
@* Member Name *@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
<div class="col-sm-3"></div>
|
||||||
|
<div class="col-sm">
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
@* User Title *@
|
@* User Title *@
|
||||||
<div class="sax-form-control MemberTitle">
|
<div class="sax-form-control MemberTitle pr-sm-1">
|
||||||
<div class="sax-label">
|
<div class="sax-label">
|
||||||
<label for="cbMemberTitle"><span>@Localiser["label.title"]</span></label>
|
<label for="cbMemberTitle"><span>@Localiser["label.title"]</span></label>
|
||||||
|
</div>
|
||||||
|
<div class="sax-control">
|
||||||
|
<select id="cbMemberTitle" name="MemberTitle" class="MemberTitle sax-input"></select>
|
||||||
|
</div>
|
||||||
|
<div class="sax-message"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sax-control">
|
|
||||||
<select id="cbMemberTitle" name="MemberTitle" class="MemberTitle sax-input"></select>
|
<div class="col-sm-4">
|
||||||
|
@* User First Name *@
|
||||||
|
<div class="sax-form-control MemberFirstName pr-sm-1">
|
||||||
|
<div class="sax-label">
|
||||||
|
<label for="ifMemberFirstName"><span>@Localiser["label.first.name"]</span><span class="required"> *</span></label>
|
||||||
|
</div>
|
||||||
|
<div class="sax-control">
|
||||||
|
<input type="text" id="ifMemberFirstName" name="MemberFirstName" class="MemberFirstName sax-input" autocomplete="off" maxlength="@(Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_FirstName))" />
|
||||||
|
</div>
|
||||||
|
<div class="sax-message"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sax-message"></div>
|
|
||||||
|
<div class="col-sm-4">
|
||||||
|
@* User Last Name *@
|
||||||
|
<div class="sax-form-control MemberLastName">
|
||||||
|
<div class="sax-label">
|
||||||
|
<label for="ifMemberLastName"><span>@Localiser["label.last.name"]</span><span class="required"> *</span></label>
|
||||||
|
</div>
|
||||||
|
<div class="sax-control">
|
||||||
|
<input type="text" id="ifMemberLastName" name="MemberLastName" class="MemberLastName sax-input" autocomplete="off" maxlength="@(Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_LastName))" />
|
||||||
|
</div>
|
||||||
|
<div class="sax-message"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-4">
|
|
||||||
@* User First Name *@
|
|
||||||
<div class="sax-form-control MemberFirstName">
|
|
||||||
<div class="sax-label">
|
|
||||||
<label for="ifMemberFirstName"><span>@Localiser["label.first.name"]</span><span class="required"> *</span></label>
|
|
||||||
</div>
|
|
||||||
<div class="sax-control">
|
|
||||||
<input type="text" id="ifMemberFirstName" name="MemberFirstName" class="MemberFirstName sax-input" autocomplete="off" maxlength="@(Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_FirstName))" />
|
|
||||||
</div>
|
|
||||||
<div class="sax-message"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-sm-4">
|
|
||||||
@* User Last Name *@
|
|
||||||
<div class="sax-form-control MemberLastName">
|
|
||||||
<div class="sax-label">
|
|
||||||
<label for="ifMemberLastName"><span>@Localiser["label.last.name"]</span><span class="required"> *</span></label>
|
|
||||||
</div>
|
|
||||||
<div class="sax-control">
|
|
||||||
<input type="text" id="ifMemberLastName" name="MemberLastName" class="MemberLastName sax-input" autocomplete="off" maxlength="@(Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_LastName))" />
|
|
||||||
</div>
|
|
||||||
<div class="sax-message"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@* Member roles *@
|
@* Member roles *@
|
||||||
<div class="sax-form-control MemberRoleCodes">
|
<div class="sax-form-control MemberRoleCodes">
|
||||||
<div class="sax-label">
|
<div class="row">
|
||||||
<label for="ifMemberRoles"><span>@Localiser["label.roles"]</span></label>
|
<div class="col-sm-3">
|
||||||
|
<div class="sax-label">
|
||||||
|
<label for="ifMemberRoles"><span>@Localiser["label.roles"]</span></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm">
|
||||||
|
<div class="sax-control row">
|
||||||
|
<input type="hidden" name="MemberRoleCodes" class="MemberRoleCodes sax-input" />
|
||||||
|
<div class="col"><textarea class="MemberRoles sax-input" rows="4" readonly="readonly"></textarea></div>
|
||||||
|
<div class="fixed"><button class="sax-button SelectMemberRoles" style="min-width:auto;margin-left:4px;padding:4px 6px">@Localiser["label.select"]</button></div>
|
||||||
|
</div>
|
||||||
|
<div class="sax-message"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sax-control row">
|
|
||||||
<input type="hidden" name="MemberRoleCodes" class="MemberRoleCodes sax-input" />
|
|
||||||
<div class="col"><textarea class="MemberRoles sax-input" rows="6" readonly="readonly" ondblclick="sax.selectMemberRoles()"></textarea></div>
|
|
||||||
<div class="fixed"><button 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>
|
||||||
|
|
||||||
@* Admin Comment *@
|
@* Admin Comment *@
|
||||||
<div class="sax-form-control MemberAdminComment">
|
<div class="sax-form-control MemberAdminComment">
|
||||||
<div class="sax-label">
|
<div class="row">
|
||||||
<label for="ifMemberAdminComment"><span>@Localiser["label.comment"]</span></label>
|
<div class="col-sm-3">
|
||||||
|
<div class="sax-label">
|
||||||
|
<label for="ifMemberAdminComment"><span>@Localiser["label.comment"]</span></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm">
|
||||||
|
<div class="sax-control">
|
||||||
|
<textarea type="text" id="ifMemberAdminComment" name="MemberAdminComment" class="MemberAdminComment sax-textarea" rows="6" autocomplete="off" maxlength="@(Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserOrganisation_AdminComment))"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="sax-message"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sax-control">
|
|
||||||
<textarea type="text" id="ifMemberAdminComment" name="MemberAdminComment" class="MemberAdminComment sax-textarea" rows="4" autocomplete="off" maxlength="@(Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserOrganisation_AdminComment))"></textarea>
|
|
||||||
</div>
|
|
||||||
<div class="sax-message"></div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,7 +64,7 @@
|
|||||||
<label for="ifOpportunityOutline"><span>@Localiser["label.outline"]</span><span class="required"> *</span></label>
|
<label for="ifOpportunityOutline"><span>@Localiser["label.outline"]</span><span class="required"> *</span></label>
|
||||||
</div>
|
</div>
|
||||||
<div class="sax-control">
|
<div class="sax-control">
|
||||||
@Html.TextAreaFor(model => model.OpportunityOutline, new { @id = "ifOpportunityOutline", @class = "OpportunityOutline sax-input", @rows = 4, @maxlength = @Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.OrganisationOpportunity_Outline) })
|
@Html.TextAreaFor(model => model.OpportunityOutline, new { @id = "ifOpportunityOutline", @class = "OpportunityOutline sax-textarea", @rows = 4, @maxlength = @Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.OrganisationOpportunity_Outline) })
|
||||||
</div>
|
</div>
|
||||||
<div class="sax-message"></div>
|
<div class="sax-message"></div>
|
||||||
</div>
|
</div>
|
||||||
@@ -80,8 +80,8 @@
|
|||||||
<div class="col-sm">
|
<div class="col-sm">
|
||||||
<div class="sax-control row">
|
<div class="sax-control row">
|
||||||
@Html.HiddenFor(model => model.OpportunitySportId, new { @id = "ifOpportunitySportId", @class = "OpportunitySportId" })
|
@Html.HiddenFor(model => model.OpportunitySportId, new { @id = "ifOpportunitySportId", @class = "OpportunitySportId" })
|
||||||
<div class="col"><input type="text" id="ifOpportunitySportCaption" class="OpportunitySportCaption sax-input" readonly="readonly" ondblclick="sax.selectSport()" /></div>
|
<div class="col"><input type="text" id="ifOpportunitySportCaption" class="OpportunitySportCaption sax-input" readonly="readonly" /></div>
|
||||||
<div class="fixed"><button class="SelectSport sax-button" style="min-width:auto;margin-left:4px;padding:4px 6px" onclick="sax.selectSport()">@Localiser["label.select"]</button></div>
|
<div class="fixed"><button class="SelectOpportunitySport sax-button" style="min-width:auto;margin-left:4px;padding:4px 6px">@Localiser["label.select"]</button></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sax-message"></div>
|
<div class="sax-message"></div>
|
||||||
</div>
|
</div>
|
||||||
@@ -99,8 +99,8 @@
|
|||||||
<div class="col-sm">
|
<div class="col-sm">
|
||||||
<div class="sax-control row">
|
<div class="sax-control row">
|
||||||
@Html.HiddenFor(model => model.OpportunityRegionId, new { @id = "ifOpportunityRegionId", @class = "OpportunityRegionId" })
|
@Html.HiddenFor(model => model.OpportunityRegionId, new { @id = "ifOpportunityRegionId", @class = "OpportunityRegionId" })
|
||||||
<div class="col"><input type="text" id="ifOpportunityRegionCaption" class="OpportunityRegionCaption sax-input" readonly="readonly" ondblclick="sax.selectRegion()" /></div>
|
<div class="col"><input type="text" id="ifOpportunityRegionCaption" class="OpportunityRegionCaption sax-input" readonly="readonly" /></div>
|
||||||
<div class="fixed"><button class="SelectRegion sax-button" style="min-width:auto;margin-left:4px;padding:4px 6px" onclick="sax.selectRegion()">@Localiser["label.select"]</button></div>
|
<div class="fixed"><button class="SelectOpportunityRegion sax-button" style="min-width:auto;margin-left:4px;padding:4px 6px">@Localiser["label.select"]</button></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sax-message"></div>
|
<div class="sax-message"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -134,14 +134,18 @@
|
|||||||
{
|
{
|
||||||
<div class="dropdown-item text-dark sax-action" onclick="sax.goToPage('Article/Index');">@Localiser["article.caption.articles"]</div>
|
<div class="dropdown-item text-dark sax-action" onclick="sax.goToPage('Article/Index');">@Localiser["article.caption.articles"]</div>
|
||||||
}
|
}
|
||||||
@if (Model.MembersAllowed)
|
@if (Model.OrganisationMembersAllowed)
|
||||||
{
|
{
|
||||||
<div class="dropdown-item text-dark sax-action" onclick="sax.goToPage('Organisation/Members');">@Localiser["label.members"]</div>
|
<div class="dropdown-item text-dark sax-action" onclick="sax.goToPage('Organisation/Members');">@Localiser["label.members"]</div>
|
||||||
}
|
}
|
||||||
@if (Model.OpportunitiesAllowed)
|
@if (Model.OrganisationOpportunitiesAllowed)
|
||||||
{
|
{
|
||||||
<div class="dropdown-item text-dark sax-action" onclick="sax.goToPage('Organisation/Opportunities');">@Localiser["label.opportunities"]</div>
|
<div class="dropdown-item text-dark sax-action" onclick="sax.goToPage('Organisation/Opportunities');">@Localiser["label.opportunities"]</div>
|
||||||
}
|
}
|
||||||
|
@if (Model.OrganisationEventsAllowed)
|
||||||
|
{
|
||||||
|
<div class="dropdown-item text-dark sax-action" onclick="sax.goToPage('Organisation/Events');">@Localiser["label.events"]</div>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
|
|||||||
@@ -342,6 +342,19 @@
|
|||||||
background-color: var(--color-article-pale);
|
background-color: var(--color-article-pale);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Events*/
|
||||||
|
|
||||||
|
.sax-panel-item.Event,
|
||||||
|
.sax-panel-item.Event > .sax-header
|
||||||
|
{
|
||||||
|
border-color: var(--color-event);
|
||||||
|
}
|
||||||
|
|
||||||
|
.sax-panel-item.Event > .sax-header
|
||||||
|
{
|
||||||
|
background-color: var(--color-event-pale);
|
||||||
|
}
|
||||||
|
|
||||||
/* Opportunities */
|
/* Opportunities */
|
||||||
|
|
||||||
.sax-panel-item.Opportunity,
|
.sax-panel-item.Opportunity,
|
||||||
|
|||||||
@@ -45,6 +45,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
#dlgActivity .sax-panel-item.Article .ArticleHeadline,
|
#dlgActivity .sax-panel-item.Article .ArticleHeadline,
|
||||||
|
#dlgActivity .sax-panel-item.Event .EventOrganisation,
|
||||||
#dlgActivity .sax-panel-item.Opportunity .OpportunityOrganisation
|
#dlgActivity .sax-panel-item.Opportunity .OpportunityOrganisation
|
||||||
{
|
{
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@@ -55,9 +56,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
#dlgActivity .sax-panel-item.Article .ArticleSummary,
|
#dlgActivity .sax-panel-item.Article .ArticleSummary,
|
||||||
|
#dlgActivity .sax-panel-item.Event .EventAt,
|
||||||
|
#dlgActivity .sax-panel-item.Event .EventSummary,
|
||||||
#dlgActivity .sax-panel-item.Opportunity .OpportunityOrganisation,
|
#dlgActivity .sax-panel-item.Opportunity .OpportunityOrganisation,
|
||||||
#dlgActivity .sax-panel-item.Opportunity .OpportunityPosition,
|
#dlgActivity .sax-panel-item.Opportunity .OpportunityPosition
|
||||||
#dlgActivity .sax-panel-item.Opportunity .OpportunityOutline
|
|
||||||
{
|
{
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 8px 8px;
|
padding: 8px 8px;
|
||||||
@@ -74,6 +76,12 @@
|
|||||||
border-bottom: 1px solid #b0b0b0;
|
border-bottom: 1px solid #b0b0b0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#dlgActivity .sax-panel-item.Event .EventDetails,
|
||||||
|
#dlgActivity .sax-panel-item.Opportunity .OpportunityOutline
|
||||||
|
{
|
||||||
|
padding: 8px 8px;
|
||||||
|
}
|
||||||
|
|
||||||
#dlgActivity .sax-panel-item.Article .ArticleAuthor,
|
#dlgActivity .sax-panel-item.Article .ArticleAuthor,
|
||||||
#dlgActivity .sax-panel-item.Article .ArticleOrganisation
|
#dlgActivity .sax-panel-item.Article .ArticleOrganisation
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -20,6 +20,10 @@
|
|||||||
--color-article: #9966CC;
|
--color-article: #9966CC;
|
||||||
--color-article-light: #b38cd9;
|
--color-article-light: #b38cd9;
|
||||||
--color-article-pale: #decdee;
|
--color-article-pale: #decdee;
|
||||||
|
--color-event-dark: #38969d;
|
||||||
|
--color-event: #71b4b9;
|
||||||
|
--color-event-light: #aad2d5;
|
||||||
|
--color-event-pale: #c6e1e3;
|
||||||
--color-opportunity-dark: #8f6b24;
|
--color-opportunity-dark: #8f6b24;
|
||||||
--color-opportunity: #CC9933;
|
--color-opportunity: #CC9933;
|
||||||
--color-opportunity-light: #dbb870;
|
--color-opportunity-light: #dbb870;
|
||||||
|
|||||||
@@ -125,6 +125,97 @@
|
|||||||
sax.refreshResults(50);
|
sax.refreshResults(50);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
sax.createItem = function ()
|
||||||
|
{
|
||||||
|
sax.clearItem();
|
||||||
|
sax.populateArticleContent({});
|
||||||
|
sax.openArticleDialog(sax.dlg.title.createArticle);
|
||||||
|
}
|
||||||
|
sax.clearItem = function ()
|
||||||
|
{
|
||||||
|
let $frmF = $frm.filter;
|
||||||
|
let $frmA = $frm.article;
|
||||||
|
$('#ifArticleId,#ifArticleExists,#ifArticleOrganisationId,#ifArticleRegionId,#ifArticleSportId,input[type="text"],textarea,select', $frmA).val('');
|
||||||
|
let orgId = $('#ifFilterOrganisationId', $frmF).val();
|
||||||
|
$('#ifArticleOrganisationId', $frmA).val(orgId);
|
||||||
|
$('#ifArticleOrganisation', $frmA).val($('#ifFilterOrganisation', $frmF).val());
|
||||||
|
$('.sax-form-control.ArticleOrganisation', $frmA).toggle(!!orgId);
|
||||||
|
$('#chkArticlePublish', $frmA).prop("checked", false);
|
||||||
|
$('.sax-input.sax-calendar.ArticlePublishOn', $frmA).datepicker('setDate', 'today');
|
||||||
|
sax.clearControlErrors();
|
||||||
|
}
|
||||||
|
sax.openArticleDialog = function (title)
|
||||||
|
{
|
||||||
|
sax.clearControlErrors();
|
||||||
|
sax.switchArticleHeader();
|
||||||
|
sax.$dlg.article.dialog('option', 'title', title);
|
||||||
|
sax.openDialog(sax.$dlg.article, 600, 800);
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
sax.updateItem = function (item)
|
||||||
|
{
|
||||||
|
$('.ArticleId', $frm.articleId).val(item.id);
|
||||||
|
sax.ajax.updateItem = sax.ajax.updateItem || { url: sax.url.base + 'Article/Ajax/GetItem', formId: 'frmArticleId', callbackFn: sax.onUpdateItem };
|
||||||
|
sax.doAjaxRequest(sax.ajax.updateItem, 50);
|
||||||
|
}
|
||||||
|
sax.onUpdateItem = function (response)
|
||||||
|
{
|
||||||
|
//sax.debug('onUpdateItem', response);
|
||||||
|
sax.clearItem();
|
||||||
|
if (!response.success) return;
|
||||||
|
let $frmA = $frm.article;
|
||||||
|
let item = response.article;
|
||||||
|
$('#ifArticleId', $frmA).val(item.id);
|
||||||
|
$('#ifArticleExists', $frmA).val(1);
|
||||||
|
$('#ifArticleHeadline', $frmA).val(item.headline);
|
||||||
|
$('#ifArticleSummary', $frmA).val(item.summary);
|
||||||
|
$('#ifArticleRegionId', $frmA).val(item.regionIdPrimary);
|
||||||
|
$('#ifArticleRegionCaption', $frmA).val(item.regionCaptionPrimary);
|
||||||
|
$('#ifArticleSportId', $frmA).val(item.sportIdPrimary);
|
||||||
|
$('#ifArticleSportCaption', $frmA).val(item.sportCaptionPrimary);
|
||||||
|
if (item.published)
|
||||||
|
$('span.ArticlePublishedOn', $frmA).text(item.publishedOnFmt);
|
||||||
|
$('div.ArticlePublish', $frmA).toggle(!item.published);
|
||||||
|
$('div.ArticlePublished', $frmA).toggle(!!item.published);
|
||||||
|
$('#cbArticleStatusCode', $frmA).val(item.statusCode);
|
||||||
|
sax.populateArticleContent(item.content);
|
||||||
|
sax.openArticleDialog(sax.dlg.title.updateArticle);
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
sax.switchArticleHeader = function ()
|
||||||
|
{
|
||||||
|
$('.sax-article').removeClass('ArticleContent').addClass('ArticleHeader');
|
||||||
|
}
|
||||||
|
sax.switchArticleContent = function ()
|
||||||
|
{
|
||||||
|
$('.sax-article').removeClass('ArticleHeader').addClass('ArticleContent');
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
sax.selectSport = function ()
|
||||||
|
{
|
||||||
|
sax.mdl.selectSport.fn.selectSport({ caption: sax.dlg.title.selectSport, sportId: $('#ifArticleSportId').val(), fnCallback: sax.onSelectSport })
|
||||||
|
}
|
||||||
|
sax.onSelectSport = function (sport)
|
||||||
|
{
|
||||||
|
sax.clearControlError($('#ifArticleSportId').val(sport.id));
|
||||||
|
$('#ifArticleSportCaption').val(sport ? sport.name : '');
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
sax.selectRegion = function ()
|
||||||
|
{
|
||||||
|
sax.mdl.selectRegion.fn.selectRegion({ caption: sax.dlg.title.selectRegion, regionId: $('#ifArticleRegionId').val(), fnCallback: sax.onSelectRegion })
|
||||||
|
}
|
||||||
|
sax.onSelectRegion = function (region)
|
||||||
|
{
|
||||||
|
sax.clearControlError($('#ifArticleRegionId').val(region.id));
|
||||||
|
$('#ifArticleRegionCaption').val(region ? region.name : '');
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
sax.segmentId = function (idx)
|
sax.segmentId = function (idx)
|
||||||
{
|
{
|
||||||
@@ -333,97 +424,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
|
||||||
sax.createItem = function ()
|
|
||||||
{
|
|
||||||
sax.clearItem();
|
|
||||||
sax.populateArticleContent({});
|
|
||||||
sax.openArticleDialog(sax.dlg.title.createArticle);
|
|
||||||
}
|
|
||||||
sax.clearItem = function ()
|
|
||||||
{
|
|
||||||
let $frmF = $frm.filter;
|
|
||||||
let $frmA = $frm.article;
|
|
||||||
$('#ifArticleId,#ifArticleExists,#ifArticleOrganisationId,#ifArticleRegionId,#ifArticleSportId,input[type="text"],textarea,select', $frmA).val('');
|
|
||||||
let orgId = $('#ifFilterOrganisationId', $frmF).val();
|
|
||||||
$('#ifArticleOrganisationId', $frmA).val(orgId);
|
|
||||||
$('#ifArticleOrganisation', $frmA).val($('#ifFilterOrganisation', $frmF).val());
|
|
||||||
$('.sax-form-control.ArticleOrganisation', $frmA).toggle(!!orgId);
|
|
||||||
$('#chkArticlePublish', $frmA).prop("checked", false);
|
|
||||||
$('.sax-input.sax-calendar.ArticlePublishOn', $frmA).datepicker('setDate', 'today');
|
|
||||||
sax.clearControlErrors();
|
|
||||||
}
|
|
||||||
sax.openArticleDialog = function (title)
|
|
||||||
{
|
|
||||||
sax.clearControlErrors();
|
|
||||||
sax.switchArticleHeader();
|
|
||||||
sax.$dlg.article.dialog('option', 'title', title);
|
|
||||||
sax.openDialog(sax.$dlg.article, 600, 800);
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
|
||||||
sax.updateItem = function (item)
|
|
||||||
{
|
|
||||||
$('.ArticleId', $frm.articleId).val(item.id);
|
|
||||||
sax.ajax.updateItem = sax.ajax.updateItem || { url: sax.url.base + 'Article/Ajax/GetItem', formId: 'frmArticleId', callbackFn: sax.onUpdateItem };
|
|
||||||
sax.doAjaxRequest(sax.ajax.updateItem, 50);
|
|
||||||
}
|
|
||||||
sax.onUpdateItem = function (response)
|
|
||||||
{
|
|
||||||
//sax.debug('onUpdateItem', response);
|
|
||||||
sax.clearItem();
|
|
||||||
if (!response.success) return;
|
|
||||||
let $frmA = $frm.article;
|
|
||||||
let item = response.article;
|
|
||||||
$('#ifArticleId', $frmA).val(item.id);
|
|
||||||
$('#ifArticleExists', $frmA).val(1);
|
|
||||||
$('#ifArticleHeadline', $frmA).val(item.headline);
|
|
||||||
$('#ifArticleSummary', $frmA).val(item.summary);
|
|
||||||
$('#ifArticleRegionId', $frmA).val(item.regionIdPrimary);
|
|
||||||
$('#ifArticleRegionCaption', $frmA).val(item.regionCaptionPrimary);
|
|
||||||
$('#ifArticleSportId', $frmA).val(item.sportIdPrimary);
|
|
||||||
$('#ifArticleSportCaption', $frmA).val(item.sportCaptionPrimary);
|
|
||||||
if (item.published)
|
|
||||||
$('span.ArticlePublishedOn', $frmA).text(item.publishedOnFmt);
|
|
||||||
$('div.ArticlePublish', $frmA).toggle(!item.published);
|
|
||||||
$('div.ArticlePublished', $frmA).toggle(!!item.published);
|
|
||||||
$('#cbArticleStatusCode', $frmA).val(item.statusCode);
|
|
||||||
sax.populateArticleContent(item.content);
|
|
||||||
sax.openArticleDialog(sax.dlg.title.updateArticle);
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
|
||||||
sax.switchArticleHeader = function ()
|
|
||||||
{
|
|
||||||
$('.sax-article').removeClass('ArticleContent').addClass('ArticleHeader');
|
|
||||||
}
|
|
||||||
sax.switchArticleContent = function ()
|
|
||||||
{
|
|
||||||
$('.sax-article').removeClass('ArticleHeader').addClass('ArticleContent');
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
|
||||||
sax.selectSport = function ()
|
|
||||||
{
|
|
||||||
sax.mdl.selectSport.fn.selectSport({ caption: sax.dlg.title.selectSport, sportId: $('#ifArticleSportId').val(), fnCallback: sax.onSelectSport })
|
|
||||||
}
|
|
||||||
sax.onSelectSport = function (sport)
|
|
||||||
{
|
|
||||||
sax.clearControlError($('#ifArticleSportId').val(sport.id));
|
|
||||||
$('#ifArticleSportCaption').val(sport ? sport.name : '');
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
|
||||||
sax.selectRegion = function ()
|
|
||||||
{
|
|
||||||
sax.mdl.selectRegion.fn.selectRegion({ caption: sax.dlg.title.selectRegion, regionId: $('#ifArticleRegionId').val(), fnCallback: sax.onSelectRegion })
|
|
||||||
}
|
|
||||||
sax.onSelectRegion = function (region)
|
|
||||||
{
|
|
||||||
sax.clearControlError($('#ifArticleRegionId').val(region.id));
|
|
||||||
$('#ifArticleRegionCaption').val(region ? region.name : '');
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
sax.storeItem = function ()
|
sax.storeItem = function ()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
(function (win, doc, undef)
|
(function (win, doc, undef)
|
||||||
{
|
{
|
||||||
"use strict";
|
"use strict";
|
||||||
sax.itemIdPrefix = 'Act_';
|
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
sax.refreshResults = function (delay)
|
sax.refreshResults = function (delay)
|
||||||
@@ -46,7 +45,7 @@
|
|||||||
{
|
{
|
||||||
//sax.debug('populateItem', item);
|
//sax.debug('populateItem', item);
|
||||||
if (!item) return;
|
if (!item) return;
|
||||||
$item.prop('id', sax.itemIdPrefix + item.itemIdx).addClass(item.itemTypeClass).toggleClass('sax-activity-reaction-' + item.reaction, !!item.reaction);
|
$item.addClass(item.itemTypeClass).toggleClass('sax-activity-reaction-' + item.reaction, !!item.reaction);
|
||||||
$('.ActivityOrganisation', $item).text(item.organisation);
|
$('.ActivityOrganisation', $item).text(item.organisation);
|
||||||
$('.ActivityAuthor', $item).text(item.author);
|
$('.ActivityAuthor', $item).text(item.author);
|
||||||
$('.ActivityCaption', $item).text(item.caption);
|
$('.ActivityCaption', $item).text(item.caption);
|
||||||
@@ -69,17 +68,19 @@
|
|||||||
{
|
{
|
||||||
//sax.debug('expandActivity', item, $item);
|
//sax.debug('expandActivity', item, $item);
|
||||||
let $frm = $('#frmActivityId');
|
let $frm = $('#frmActivityId');
|
||||||
$('.ActivityType', $frm).val(item.itemType);
|
$('.ActivityItemType', $frm).val(item.itemType);
|
||||||
$('.ActivityIdx', $frm).val(item.itemIdx);
|
$('.ActivityItemId', $frm).val(item.itemId);
|
||||||
sax.activity = { item: item, $item: $item };
|
sax.activity = { item: item, $item: $item };
|
||||||
sax.ajax.activityInfo = sax.ajax.activityInfo || { url: sax.url.base + 'Activity/Ajax/GetInfo', formId: 'frmActivityId', callbackFn: sax.showActivityDetails, noWaitIcon: true };
|
sax.ajax.activityInfo = sax.ajax.activityInfo || { url: sax.url.base + 'Activity/Ajax/GetInfo', formId: 'frmActivityId', callbackFn: sax.showActivityDetails, noWaitIcon: true };
|
||||||
sax.doAjaxRequest(sax.ajax.activityInfo, 50);
|
sax.doAjaxRequest(sax.ajax.activityInfo, 50);
|
||||||
}
|
}
|
||||||
sax.showActivityDetails = function (response)
|
sax.showActivityDetails = function (response)
|
||||||
{
|
{
|
||||||
sax.debug('showActivityDetails', response);
|
//sax.debug('showActivityDetails', response);
|
||||||
let $act = $('#dlgActivity .sax-content').empty();
|
let $act = $('.sax-content', sax.$dlg.activity).empty();
|
||||||
|
let $ar = $('.ActivityReaction', sax.$dlg.activity.parent()).hide();
|
||||||
let item;
|
let item;
|
||||||
|
let dlgH = 480;
|
||||||
if (item = response.article)
|
if (item = response.article)
|
||||||
{
|
{
|
||||||
let $itm = $('.sax-panel-item-template .sax-panel-item.Article').clone();
|
let $itm = $('.sax-panel-item-template .sax-panel-item.Article').clone();
|
||||||
@@ -88,7 +89,7 @@
|
|||||||
$('.ArticleSummary', $itm).text(item.summary).toggle(!!item.summary);
|
$('.ArticleSummary', $itm).text(item.summary).toggle(!!item.summary);
|
||||||
$('.ArticleAuthor', $itm).text(item.author);
|
$('.ArticleAuthor', $itm).text(item.author);
|
||||||
$('.ArticleOrganisation', $itm).text(item.organisation);
|
$('.ArticleOrganisation', $itm).text(item.organisation);
|
||||||
$('.ArticleOrigin', $itm).toggle(!!(item.author||item.organisation));
|
$('.ArticleOrigin', $itm).toggle(!!(item.author || item.organisation));
|
||||||
let segs = item.content.segments;
|
let segs = item.content.segments;
|
||||||
for (let segIdx = 0; segIdx < segs.length; segIdx++)
|
for (let segIdx = 0; segIdx < segs.length; segIdx++)
|
||||||
{
|
{
|
||||||
@@ -106,6 +107,17 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$act.append($itm);
|
$act.append($itm);
|
||||||
|
$ar.show();
|
||||||
|
dlgH = 1600;
|
||||||
|
}
|
||||||
|
else if (item = response.event)
|
||||||
|
{
|
||||||
|
let $itm = $('.sax-panel-item-template .sax-panel-item.Event').clone();
|
||||||
|
$('.EventOrganisation', $itm).text(item.organisation);
|
||||||
|
$('.EventAt', $itm).text(item.eventAt);
|
||||||
|
$('.EventSummary', $itm).text(item.summary).toggle(!!item.summary);
|
||||||
|
$('.EventDetails', $itm).text(item.details).toggle(!!item.details);
|
||||||
|
$act.append($itm);
|
||||||
}
|
}
|
||||||
else if (item = response.opportunity)
|
else if (item = response.opportunity)
|
||||||
{
|
{
|
||||||
@@ -117,7 +129,7 @@
|
|||||||
}
|
}
|
||||||
else return;
|
else return;
|
||||||
sax.setActivityReactionButton(sax.activity.item.reaction);
|
sax.setActivityReactionButton(sax.activity.item.reaction);
|
||||||
sax.openDialog(sax.$dlg.activity, 800, 1600);
|
sax.openDialog(sax.$dlg.activity, 800, dlgH);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
@@ -133,7 +145,7 @@
|
|||||||
}
|
}
|
||||||
sax.setActivityReaction = function (r)
|
sax.setActivityReaction = function (r)
|
||||||
{
|
{
|
||||||
//sax.debug('setActivityReaction', r);
|
sax.debug('setActivityReaction', r, $('.sax-dialog-activity button.ActivityReaction' + r));
|
||||||
if ($('.sax-dialog-activity button.ActivityReaction' + r).hasClass(selectedClass)) r = 0;
|
if ($('.sax-dialog-activity button.ActivityReaction' + r).hasClass(selectedClass)) r = 0;
|
||||||
sax.clearActivityReactionButton();
|
sax.clearActivityReactionButton();
|
||||||
let fn = function (response)
|
let fn = function (response)
|
||||||
@@ -143,8 +155,8 @@
|
|||||||
sax.setActivityReactionButton(response.reaction);
|
sax.setActivityReactionButton(response.reaction);
|
||||||
}
|
}
|
||||||
let $frm = $('#frmActivityReact');
|
let $frm = $('#frmActivityReact');
|
||||||
$('.ActivityType', $frm).val(sax.activity.item.itemType);
|
$('.ActivityItemType', $frm).val(sax.activity.item.itemType);
|
||||||
$('.ActivityIdx', $frm).val(sax.activity.item.itemIdx);
|
$('.ActivityItemId', $frm).val(sax.activity.item.itemId);
|
||||||
$('.ActivityReaction', $frm).val(r);
|
$('.ActivityReaction', $frm).val(r);
|
||||||
sax.ajax.activityReact = sax.ajax.activityReact || { url: sax.url.base + 'Activity/Ajax/React', formId: 'frmActivityReact', callbackFn: fn, noWaitIcon: true };
|
sax.ajax.activityReact = sax.ajax.activityReact || { url: sax.url.base + 'Activity/Ajax/React', formId: 'frmActivityReact', callbackFn: fn, noWaitIcon: true };
|
||||||
sax.doAjaxRequest(sax.ajax.activityReact, 20);
|
sax.doAjaxRequest(sax.ajax.activityReact, 20);
|
||||||
|
|||||||
@@ -0,0 +1,270 @@
|
|||||||
|
/*
|
||||||
|
* Organisation - Events page scripts.
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function (win, doc, undef)
|
||||||
|
{
|
||||||
|
"use strict";
|
||||||
|
let oe = sax.OrgEvt = { data: {}, fn: {} };
|
||||||
|
let $pnl = oe.$pnl = {}, $frm = oe.$frm = {}, $dlg = oe.$dlg = {};
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
oe.refreshResults = function (delay)
|
||||||
|
{
|
||||||
|
sax.data.userCanManageEvents = false;
|
||||||
|
if (!sax.awaitingRefreshResponse)
|
||||||
|
{
|
||||||
|
$('.sax-burger', $pnl.filter).hide();
|
||||||
|
$('.sax-panel-item-list', $pnl.results).fadeOut(200).empty();
|
||||||
|
$('.sax-panel-messages', $pnl.results).hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
|
||||||
|
}
|
||||||
|
sax.ajax.refreshResults = sax.ajax.refreshResults || { url: sax.url.base + 'Organisation/Ajax/GetEventList', formId: 'frmEventFilter', callbackFn: oe.doRefreshResults };
|
||||||
|
sax.doAjaxRequest(sax.ajax.refreshResults, delay || 50);
|
||||||
|
sax.awaitingRefreshResponse = true;
|
||||||
|
}
|
||||||
|
oe.doRefreshResults = function (response)
|
||||||
|
{
|
||||||
|
//sax.debug('doRefreshResults', response);
|
||||||
|
delete sax.awaitingRefreshResponse;
|
||||||
|
sax.refreshControlValues(response.controlValues);
|
||||||
|
var $msgs = $('.sax-panel-messages', $pnl.results).hide().empty();
|
||||||
|
var $items = $('.sax-panel-item-list', $pnl.results).hide().empty();
|
||||||
|
if (!response.success) return;
|
||||||
|
oe.data.organisation = response.organisation;
|
||||||
|
// Reference data - Event types.
|
||||||
|
if (response.eventTypes)
|
||||||
|
sax.populateSelectCodeDesc('#cbEventType', response.eventTypes);
|
||||||
|
// Menu.
|
||||||
|
let $bgr = $('.sax-burger', $pnl.filter);
|
||||||
|
let $mnu = $('ul.sax-dropdown-menu', $bgr).empty();
|
||||||
|
$mnu.append(oe.getFilterMenuOption(sax.lbl.refresh, function () { oe.refreshResults(); }, 'sax-refresh'));
|
||||||
|
if (sax.data.userCanManageEvents = (response.user && response.user.canManage))
|
||||||
|
$mnu.append(oe.getFilterMenuOption(sax.lbl.add, function () { oe.createItem(); }, 'sax-edit'));
|
||||||
|
$bgr.toggle(!!$('.sax-dropdown-item', $mnu).length);
|
||||||
|
// Items.
|
||||||
|
var items = response.events;
|
||||||
|
if (!items.length)
|
||||||
|
return $msgs.append($('<div class="sax-message">' + sax.msg.dataNoneFound + '</div>')).fadeIn(500);
|
||||||
|
for (let itemIdx = 0; itemIdx < items.length; itemIdx++)
|
||||||
|
$items.append(oe.populateItem(oe.getItemTemplate(), items[itemIdx]));
|
||||||
|
$items.fadeIn(50);
|
||||||
|
}
|
||||||
|
oe.populateItem = function ($item, item)
|
||||||
|
{
|
||||||
|
if (!item) return;
|
||||||
|
$('.sax-panel-results .sax-panel-messages').hide().empty();
|
||||||
|
$('.EventType', $item).text(item.typeDesc);
|
||||||
|
$('.EventDate', $item).text(item.eventDateFmt);
|
||||||
|
$('.EventTime', $item).text(item.eventTimeFmt);
|
||||||
|
$('.EventSummary', $item).text(item.summary);
|
||||||
|
$('.EventDetails', $item).text(item.details);
|
||||||
|
$('.EventSportCaption', $item).text(item.sportCaptionPrimary);
|
||||||
|
$('.EventRegionCaption', $item).text(item.regionCaptionCountry);
|
||||||
|
$('.EventCreatedOn', $item).text(item.createdOnFmt);
|
||||||
|
$('.EventPublishedOn', $item).text(item.publishedOnFmt);
|
||||||
|
$('.EventPublished', $item).toggle(!!item.publishedOnFmt);
|
||||||
|
$('.EventExpiresOn', $item).text(item.expiresOnFmt);
|
||||||
|
$('.EventExpires', $item).toggle(!!item.expiresOnFmt);
|
||||||
|
$('.EventStatusDesc', $item).text(item.statusDesc).addClass('sax-status-' + item.statusCode.toLowerCase());
|
||||||
|
|
||||||
|
let $bgr = $('.sax-burger', $item);
|
||||||
|
let $mnu = $('ul.sax-dropdown-menu', $bgr).empty();
|
||||||
|
if (!item.deleted)
|
||||||
|
{
|
||||||
|
if (sax.data.userCanManageEvents)
|
||||||
|
{
|
||||||
|
let fnUpd = function () { oe.updateItem(item, $item) };
|
||||||
|
$mnu.append(oe.getItemMenuOption(sax.lbl.edit, fnUpd, 'sax-edit'));
|
||||||
|
$('.sax-caption .sax-action', $item).off('click').on('click', fnUpd);
|
||||||
|
$item.off('dblclick').on('dblclick', fnUpd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else $('.sax-caption .sax-action', $item).removeClass('sax-action');
|
||||||
|
$bgr.toggle(!!$('.sax-dropdown-menu .sax-dropdown-item', $item).length);
|
||||||
|
return $item;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
oe.getFilterDropdownTemplate = function ()
|
||||||
|
{
|
||||||
|
return $('.sax-panel-item-template .sax-dropdown-menu.Events li.sax-dropdown-item', sax.$pnl.filter).clone();
|
||||||
|
}
|
||||||
|
oe.getItemTemplate = function ()
|
||||||
|
{
|
||||||
|
return $('.sax-panel-item-template .sax-panel-item.Event', sax.$pnl.results).clone();
|
||||||
|
}
|
||||||
|
oe.getItemDropdownTemplate = function ()
|
||||||
|
{
|
||||||
|
return $('.sax-panel-item-template .sax-dropdown-menu.Event li.sax-dropdown-item', sax.$pnl.results).clone();
|
||||||
|
}
|
||||||
|
oe.getFilterMenuOption = function (lbl, fn, cls)
|
||||||
|
{
|
||||||
|
return oe.getMenuOption(oe.getFilterDropdownTemplate(), lbl, fn, cls);
|
||||||
|
}
|
||||||
|
oe.getItemMenuOption = function (lbl, fn, cls)
|
||||||
|
{
|
||||||
|
return oe.getMenuOption(oe.getItemDropdownTemplate(), lbl, fn, cls);
|
||||||
|
}
|
||||||
|
oe.getMenuOption = function ($opt, lbl, fn, cls)
|
||||||
|
{
|
||||||
|
return $opt.find('div.sax-label').text(lbl).end().on('click', fn).addClass(cls);
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
oe.selectFilterOrganisation = function ()
|
||||||
|
{
|
||||||
|
if (!sax.data.memberOrganisations)
|
||||||
|
oe.getMemberOrganisations(oe.showSelectOrganisation);
|
||||||
|
else oe.showSelectOrganisation();
|
||||||
|
}
|
||||||
|
oe.getMemberOrganisations = function (fnCallback)
|
||||||
|
{
|
||||||
|
let handleMemberOrganisationsResponse = function (response)
|
||||||
|
{
|
||||||
|
//sax.debug('handleUserOrgsResponse', response);
|
||||||
|
if (!response.success) return;
|
||||||
|
sax.data.memberOrganisations = response.organisations;
|
||||||
|
if (fnCallback) fnCallback();
|
||||||
|
}
|
||||||
|
sax.ajax.userOrgs = sax.ajax.userOrgs || { url: sax.url.base + 'Organisation/Ajax/GetEventAdminOrganisationList', formId: 'frmNavigate', callbackFn: handleMemberOrganisationsResponse };
|
||||||
|
sax.doAjaxRequest(sax.ajax.userOrgs);
|
||||||
|
}
|
||||||
|
oe.showSelectOrganisation = function ()
|
||||||
|
{
|
||||||
|
//sax.debug('selectFilterOrganisation');
|
||||||
|
sax.selectOrganisation.fn.selectOrganisation({ caption: sax.dlg.title.selectOrganisation, items: sax.data.memberOrganisations, fnCallback: oe.onOrganisationSelected });
|
||||||
|
}
|
||||||
|
oe.onOrganisationSelected = function (id, name)
|
||||||
|
{
|
||||||
|
//sax.debug('onOrganisationSelected', id, name);
|
||||||
|
$('#frmEventFilter #ifFilterOrganisationId, #frmEvent #ifEventOrganisationId').val(id);
|
||||||
|
$('#frmEventFilter #ifFilterOrganisation').val(name);
|
||||||
|
oe.refreshResults(50);
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
oe.selectSportPrimary = function ()
|
||||||
|
{
|
||||||
|
sax.mdl.selectSport.fn.selectSport({ caption: sax.dlg.title.selectSport, sportId: $('.EventSportIdPrimary', $frm.evt).val(), fnCallback: oe.onSelectSport })
|
||||||
|
}
|
||||||
|
oe.onSelectSport = function (sport)
|
||||||
|
{
|
||||||
|
sax.clearControlError($('.EventSportIdPrimary', $frm.evt).val(sport.id));
|
||||||
|
$('.EventSportCaptionPrimary', $frm.evt).val(sport ? sport.name : '');
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
oe.selectRegionCountry = function ()
|
||||||
|
{
|
||||||
|
sax.mdl.selectRegion.fn.selectRegion({ caption: sax.dlg.title.selectRegion, regionId: $('.EventRegionIdCountry', $frm.evt).val(), fnCallback: oe.onSelectRegion })
|
||||||
|
}
|
||||||
|
oe.onSelectRegion = function (region)
|
||||||
|
{
|
||||||
|
sax.clearControlError($('.EventRegionIdCountry', $frm.evt).val(region.id));
|
||||||
|
$('.EventRegionCaptionCountry', $frm.evt).val(region ? region.name : '');
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
oe.createItem = function ()
|
||||||
|
{
|
||||||
|
if (!sax.data.userCanManageEvents) return;
|
||||||
|
oe.clearItem();
|
||||||
|
$('#cbEventType', $frm.evt).prepend($("<option>", { value: '', selected: true }));
|
||||||
|
$('#ifEventSportIdPrimary', $frm.evt).val(oe.data.organisation.sportId);
|
||||||
|
$('#ifEventSportCaptionPrimary', $frm.evt).val(oe.data.organisation.sportName);
|
||||||
|
$('#ifEventRegionIdCountry', $frm.evt).val(oe.data.organisation.regionId);
|
||||||
|
$('#ifEventRegionCaptionCountry', $frm.evt).val(oe.data.organisation.regionName);
|
||||||
|
$dlg.event.dialog('option', 'title', sax.dlg.title.createEvent);
|
||||||
|
sax.openDialog($dlg.event, 600, 600);
|
||||||
|
}
|
||||||
|
oe.clearItem = function ()
|
||||||
|
{
|
||||||
|
delete oe.$item;
|
||||||
|
$('#ifEventId,#ifEventExists,#ifEventSportIdPrimary,#ifEventRegionIdCountry,input[type="text"],textarea,select', $frm.evt).val('');
|
||||||
|
$('#cbEventType', $frm.evt).find('option[value=""]').remove();
|
||||||
|
sax.clearControlErrors();
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
oe.updateItem = function (item, $item)
|
||||||
|
{
|
||||||
|
if (!sax.data.userCanManageEvents) return;
|
||||||
|
oe.clearItem();
|
||||||
|
oe.$item = $item;
|
||||||
|
$('.EventId', $frm.evtId).val(item.id);
|
||||||
|
sax.ajax.updateItem = sax.ajax.updateItem || { url: sax.url.base + 'Organisation/Ajax/GetEvent', formId: 'frmEventId', callbackFn: oe.onUpdateItem };
|
||||||
|
sax.doAjaxRequest(sax.ajax.updateItem, 50);
|
||||||
|
}
|
||||||
|
oe.onUpdateItem = function (response)
|
||||||
|
{
|
||||||
|
//sax.debug('onUpdateItem', response);
|
||||||
|
if (!response.success) return;
|
||||||
|
let item = response.event;
|
||||||
|
$('#ifEventId', $frm.evt).val(item.id);
|
||||||
|
$('#ifEventExists', $frm.evt).val(1);
|
||||||
|
$('#cbEventType', $frm.evt).val(item.typeCode);
|
||||||
|
$('#ifEventDate', $frm.evt).val(item.eventOn_Calendar);
|
||||||
|
$('#ifEventSummary', $frm.evt).val(item.summary);
|
||||||
|
$('#ifEventDetails', $frm.evt).val(item.details);
|
||||||
|
$('#ifEventSportIdPrimary', $frm.evt).val(item.sportIdPrimary);
|
||||||
|
$('#ifEventSportCaptionPrimary', $frm.evt).val(item.sportCaptionPrimary);
|
||||||
|
$('#ifEventRegionIdCountry', $frm.evt).val(item.regionIdCountry);
|
||||||
|
$('#ifEventRegionCaptionCountry', $frm.evt).val(item.regionCaptionCountry);
|
||||||
|
$('#cbEventStatusCode', $frm.evt).val(item.statusCode);
|
||||||
|
sax.clearControlErrors();
|
||||||
|
$dlg.event.dialog('option', 'title', sax.dlg.title.updateEvent);
|
||||||
|
sax.openDialog($dlg.event, 600, 600);
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
oe.storeItem = function ()
|
||||||
|
{
|
||||||
|
sax.ajax.storeItem = sax.ajax.storeItem || { url: sax.url.base + 'Organisation/Ajax/StoreEvent', formId: 'frmEvent', callbackFn: oe.onStoreItem };
|
||||||
|
sax.doAjaxRequest(sax.ajax.storeItem, 50);
|
||||||
|
}
|
||||||
|
oe.onStoreItem = function (response)
|
||||||
|
{
|
||||||
|
//sax.debug('onStoreItem', response);
|
||||||
|
sax.refreshControlValues(response.controlValues);
|
||||||
|
if (!response.success) return;
|
||||||
|
$dlg.event.dialog('close');
|
||||||
|
|
||||||
|
var item = response.event;
|
||||||
|
if (!oe.$item || oe.$item.length != 1)
|
||||||
|
{
|
||||||
|
oe.$item = $('.sax-panel-item-template .sax-panel-item', $pnl.results).clone();
|
||||||
|
$('.sax-panel-item-list', $pnl.results).prepend(oe.$item).show();
|
||||||
|
}
|
||||||
|
oe.populateItem(oe.$item, item)
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
$(function ()
|
||||||
|
{
|
||||||
|
$pnl.events = $('.sax-panel.Events');
|
||||||
|
$pnl.filter = $('.sax-panel-filter', $pnl.events);
|
||||||
|
$pnl.results = $('.sax-panel-results', $pnl.events);
|
||||||
|
$frm.filter = $('#frmEventFilter', $pnl.events);
|
||||||
|
$('.EventFilter', $frm.filter).on('input', function () { oe.refreshResults(250); }).on('keypress', function (event)
|
||||||
|
{
|
||||||
|
if (event.keyCode == 13) setTimeout(oe.refreshResults, 50);
|
||||||
|
});
|
||||||
|
$frm.filter.on('dblclick', 'input.FilterOrganisation', oe.selectFilterOrganisation).on('click', 'button.SelectFilterOrganisation', oe.selectFilterOrganisation);
|
||||||
|
$frm.evtId = $('#frmEventId');
|
||||||
|
$frm.evt = $('#frmEvent');
|
||||||
|
$('.sax-input', $frm.evt).on('input', function () { sax.clearControlError(this); });
|
||||||
|
sax.initCalendars('#frmEvent .sax-input.sax-calendar').datepicker('option', { maxDate: '+700' });
|
||||||
|
$frm.evt.on('dblclick', 'input.EventSportCaptionPrimary', oe.selectSportPrimary).on('click', 'button.SelectEventSportPrimary', oe.selectSportPrimary);
|
||||||
|
$frm.evt.on('dblclick', 'input.EventRegionCaptionCountry', oe.selectRegionCountry).on('click', 'button.SelectEventRegionCountry', oe.selectRegionCountry);
|
||||||
|
|
||||||
|
var opt = sax.dlgOpts();
|
||||||
|
opt.buttons[sax.dlg.btn.ok] = function () { oe.storeItem(); };
|
||||||
|
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); };
|
||||||
|
$dlg.event = $('#dlgEvent').dialog(opt);
|
||||||
|
|
||||||
|
setTimeout(oe.refreshResults, 250);
|
||||||
|
});
|
||||||
|
|
||||||
|
}(window, window.document));
|
||||||
|
|
||||||
|
/* The End */
|
||||||
@@ -5,11 +5,11 @@
|
|||||||
(function (win, doc, undef)
|
(function (win, doc, undef)
|
||||||
{
|
{
|
||||||
"use strict";
|
"use strict";
|
||||||
let $pnl = sax.$pnl, $frm = sax.$frm, $dlg = sax.$dlg;
|
let om = sax.OrgMbr = { data: {}, fn: {} };
|
||||||
sax.members = {};
|
let $pnl = om.$pnl = {}, $frm = om.$frm = {}, $dlg = om.$dlg = {};
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
sax.refreshResults = function (delay)
|
om.refreshResults = function (delay)
|
||||||
{
|
{
|
||||||
sax.data.userCanManageMembers = false;
|
sax.data.userCanManageMembers = false;
|
||||||
if (!sax.awaitingRefreshResponse)
|
if (!sax.awaitingRefreshResponse)
|
||||||
@@ -18,11 +18,11 @@
|
|||||||
$('.sax-panel-item-list', $pnl.results).fadeOut(200).empty();
|
$('.sax-panel-item-list', $pnl.results).fadeOut(200).empty();
|
||||||
$('.sax-panel-messages', $pnl.results).hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
|
$('.sax-panel-messages', $pnl.results).hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
|
||||||
}
|
}
|
||||||
sax.ajax.refreshResults = sax.ajax.refreshResults || { url: sax.url.base + 'Organisation/Ajax/GetMemberList', formId: 'frmMemberFilter', callbackFn: sax.doRefreshResults };
|
sax.ajax.refreshResults = sax.ajax.refreshResults || { url: sax.url.base + 'Organisation/Ajax/GetMemberList', formId: 'frmMemberFilter', callbackFn: om.doRefreshResults };
|
||||||
sax.doAjaxRequest(sax.ajax.refreshResults, delay || 50);
|
sax.doAjaxRequest(sax.ajax.refreshResults, delay || 50);
|
||||||
sax.awaitingRefreshResponse = true;
|
sax.awaitingRefreshResponse = true;
|
||||||
}
|
}
|
||||||
sax.doRefreshResults = function (response)
|
om.doRefreshResults = function (response)
|
||||||
{
|
{
|
||||||
//sax.debug('doRefreshResults', response);
|
//sax.debug('doRefreshResults', response);
|
||||||
delete sax.awaitingRefreshResponse;
|
delete sax.awaitingRefreshResponse;
|
||||||
@@ -36,38 +36,39 @@
|
|||||||
// Menu.
|
// Menu.
|
||||||
let $bgr = $('.sax-burger', $pnl.filter);
|
let $bgr = $('.sax-burger', $pnl.filter);
|
||||||
let $mnu = $('ul.sax-dropdown-menu', $bgr).empty();
|
let $mnu = $('ul.sax-dropdown-menu', $bgr).empty();
|
||||||
$mnu.append(sax.getFilterMenuOption(sax.lbl.refresh, function () { sax.refreshResults(); }, 'sax-refresh'));
|
$mnu.append(om.getFilterMenuOption(sax.lbl.refresh, function () { om.refreshResults(); }, 'sax-refresh'));
|
||||||
if (sax.data.userCanManageMembers = (response.user && response.user.canManage))
|
if (sax.data.userCanManageMembers = (response.user && response.user.canManage))
|
||||||
$mnu.append(sax.getFilterMenuOption(sax.lbl.add, function () { sax.createItem(); }, 'sax-edit'));
|
$mnu.append(om.getFilterMenuOption(sax.lbl.add, function () { om.createItem(); }, 'sax-edit'));
|
||||||
$bgr.toggle(!!$('.sax-dropdown-item', $mnu).length);
|
$bgr.toggle(!!$('.sax-dropdown-item', $mnu).length);
|
||||||
// Items.
|
// Items.
|
||||||
var items = response.members;
|
var items = response.members;
|
||||||
if (!items.length)
|
if (!items.length)
|
||||||
return $msgs.append($('<div class="sax-message">' + sax.msg.dataNoneFound + '</div>')).fadeIn(500);
|
return $msgs.append($('<div class="sax-message">' + sax.msg.dataNoneFound + '</div>')).fadeIn(500);
|
||||||
for (let itemIdx = 0; itemIdx < items.length; itemIdx++)
|
for (let itemIdx = 0; itemIdx < items.length; itemIdx++)
|
||||||
$items.append(sax.populateItem(sax.getItemTemplate(), items[itemIdx]));
|
$items.append(om.populateItem(om.getItemTemplate(), items[itemIdx]));
|
||||||
$items.fadeIn(50);
|
$items.fadeIn(50);
|
||||||
}
|
}
|
||||||
sax.populateItem = function ($item, item)
|
om.populateItem = function ($item, item)
|
||||||
{
|
{
|
||||||
if (!item) return;
|
if (!item) return;
|
||||||
$('.sax-panel-messages', $pnl.results).hide().empty();
|
$('.sax-panel-messages', $pnl.results).hide().empty();
|
||||||
$item.prop('id', sax.getItemId(item.id));
|
|
||||||
$('.MemberEmail', $item).text(item.emailAddress);
|
$('.MemberEmail', $item).text(item.emailAddress);
|
||||||
$('.MemberDisplayName', $item).text(item.displayName);
|
$('.MemberDisplayName', $item).text(item.displayName);
|
||||||
|
$('.MemberRoles', $item).text(item.memberRoles);
|
||||||
$('.MemberAdminComment', $item).text(item.adminComment);
|
$('.MemberAdminComment', $item).text(item.adminComment);
|
||||||
$('.MemberStatus', $item).text(item.statusDesc).addClass('sax-status-' + item.statusCode.toLowerCase());
|
$('.MemberStatus', $item).text(item.statusDesc).addClass('sax-status-' + item.statusCode.toLowerCase());
|
||||||
let $bgr = $('.sax-burger', $item);
|
let $bgr = $('.sax-burger', $item);
|
||||||
let $mnu = $('ul.sax-dropdown-menu', $bgr).empty();
|
let $mnu = $('ul.sax-dropdown-menu', $bgr).empty();
|
||||||
if (sax.data.userCanManageMembers)
|
if (sax.data.userCanManageMembers)
|
||||||
{
|
{
|
||||||
let fnUpd = function () { sax.updateItem(item) };
|
let fnUpd = function () { om.updateItem(item, $item) };
|
||||||
$mnu.append(sax.getItemMenuOption(sax.lbl.edit, fnUpd, 'sax-edit'));
|
$mnu.append(om.getItemMenuOption(sax.lbl.edit, fnUpd, 'sax-edit'));
|
||||||
if (!item.currentUser)
|
if (!item.currentUser)
|
||||||
$mnu.append(sax.getItemMenuOption(sax.lbl.remove, function () { sax.removeItem(item.id) }, 'sax-remove'));
|
$mnu.append(om.getItemMenuOption(sax.lbl.remove, function () { om.removeItem(item, $item) }, 'sax-remove'));
|
||||||
if (item.awaiting)
|
if (item.awaiting)
|
||||||
$mnu.append(sax.getItemMenuOption(sax.lbl.activate, function () { sax.activateItem(item.id) }, 'sax-user'));
|
$mnu.append(om.getItemMenuOption(sax.lbl.activate, function () { om.activateItem(item, $item) }, 'sax-user'));
|
||||||
$('.sax-caption .sax-action', $item).off('click').on('click', fnUpd);
|
$('.sax-caption .sax-action', $item).off('click').on('click', fnUpd);
|
||||||
|
$('.sax-content', $item).off('dblclick').on('dblclick', fnUpd);
|
||||||
}
|
}
|
||||||
else $('.sax-caption .sax-action', $item).removeClass('sax-action');
|
else $('.sax-caption .sax-action', $item).removeClass('sax-action');
|
||||||
$bgr.toggle(!!$('.sax-dropdown-menu .sax-dropdown-item', $item).length);
|
$bgr.toggle(!!$('.sax-dropdown-menu .sax-dropdown-item', $item).length);
|
||||||
@@ -75,142 +76,137 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
sax.getItemId = function (id)
|
om.getFilterDropdownTemplate = function ()
|
||||||
{
|
|
||||||
return 'Itm_' + id;
|
|
||||||
}
|
|
||||||
sax.getFilterDropdownTemplate = function ()
|
|
||||||
{
|
{
|
||||||
return $('.sax-panel-item-template .sax-dropdown-menu.Members li.sax-dropdown-item', $pnl.filter).clone();
|
return $('.sax-panel-item-template .sax-dropdown-menu.Members li.sax-dropdown-item', $pnl.filter).clone();
|
||||||
}
|
}
|
||||||
sax.getItemTemplate = function ()
|
om.getItemTemplate = function ()
|
||||||
{
|
{
|
||||||
return $('.sax-panel-item-template .sax-panel-item.Member', $pnl.results).clone();
|
return $('.sax-panel-item-template .sax-panel-item.Member', $pnl.results).clone();
|
||||||
}
|
}
|
||||||
sax.getItemDropdownTemplate = function ()
|
om.getItemDropdownTemplate = function ()
|
||||||
{
|
{
|
||||||
return $('.sax-panel-item-template .sax-dropdown-menu.Member li.sax-dropdown-item', $pnl.results).clone();
|
return $('.sax-panel-item-template .sax-dropdown-menu.Member li.sax-dropdown-item', $pnl.results).clone();
|
||||||
}
|
}
|
||||||
sax.getFilterMenuOption = function (lbl, fn, cls)
|
om.getFilterMenuOption = function (lbl, fn, cls)
|
||||||
{
|
{
|
||||||
return sax.getMenuOption(sax.getFilterDropdownTemplate(), lbl, fn, cls);
|
return om.getMenuOption(om.getFilterDropdownTemplate(), lbl, fn, cls);
|
||||||
}
|
}
|
||||||
sax.getItemMenuOption = function (lbl, fn, cls)
|
om.getItemMenuOption = function (lbl, fn, cls)
|
||||||
{
|
{
|
||||||
return sax.getMenuOption(sax.getItemDropdownTemplate(), lbl, fn, cls);
|
return om.getMenuOption(om.getItemDropdownTemplate(), lbl, fn, cls);
|
||||||
}
|
}
|
||||||
sax.getMenuOption = function ($opt, lbl, fn, cls)
|
om.getMenuOption = function ($opt, lbl, fn, cls)
|
||||||
{
|
{
|
||||||
return $opt.find('div.sax-label').text(lbl).end().on('click', fn).addClass(cls);
|
return $opt.find('div.sax-label').text(lbl).end().on('click', fn).addClass(cls);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
sax.selectFilterOrganisation = function ()
|
om.selectFilterOrganisation = function ()
|
||||||
{
|
{
|
||||||
if (!sax.data.memberOrganisations)
|
if (!sax.data.memberOrganisations)
|
||||||
sax.getMemberOrganisations(sax.showSelectOrganisation);
|
om.getMemberOrganisations(om.showSelectOrganisation);
|
||||||
else sax.showSelectOrganisation();
|
else om.showSelectOrganisation();
|
||||||
}
|
}
|
||||||
sax.getMemberOrganisations = function (fnCallback)
|
om.getMemberOrganisations = function (fnCallback)
|
||||||
{
|
{
|
||||||
let handleMemberOrganisationsResponse = function (response)
|
let handleMbrOrgsResponse = function (response)
|
||||||
{
|
{
|
||||||
//sax.debug('handleUserOrgsResponse', response);
|
//sax.debug('handleMbrOrgsResponse', response);
|
||||||
if (!response.success) return;
|
if (!response.success) return;
|
||||||
sax.data.memberOrganisations = response.organisations;
|
sax.data.memberOrganisations = response.organisations;
|
||||||
if (fnCallback) fnCallback();
|
if (fnCallback) fnCallback();
|
||||||
}
|
}
|
||||||
sax.ajax.userOrgs = sax.ajax.userOrgs || { url: sax.url.base + 'Organisation/Ajax/GetMemberOrganisationList', formId: 'frmNavigate', callbackFn: handleMemberOrganisationsResponse };
|
sax.ajax.userOrgs = sax.ajax.userOrgs || { url: sax.url.base + 'Organisation/Ajax/GetMemberAdminOrganisationList', formId: 'frmNavigate', callbackFn: handleMbrOrgsResponse };
|
||||||
sax.doAjaxRequest(sax.ajax.userOrgs);
|
sax.doAjaxRequest(sax.ajax.userOrgs);
|
||||||
}
|
}
|
||||||
sax.showSelectOrganisation = function ()
|
om.showSelectOrganisation = function ()
|
||||||
{
|
{
|
||||||
//sax.debug('sax.selectFilterOrganisation');
|
//sax.debug('sax.selectFilterOrganisation');
|
||||||
sax.selectOrganisation.fn.selectOrganisation({ caption: sax.dlg.title.selectOrganisation, items: sax.data.memberOrganisations, fnCallback: sax.onOrganisationSelected });
|
sax.selectOrganisation.fn.selectOrganisation({ caption: sax.dlg.title.selectOrganisation, items: sax.data.memberOrganisations, fnCallback: om.onOrganisationSelected });
|
||||||
}
|
}
|
||||||
sax.onOrganisationSelected = function (id, name)
|
om.onOrganisationSelected = function (id, name)
|
||||||
{
|
{
|
||||||
//sax.debug('sax.onOrganisationSelected', id, name);
|
//sax.debug('om.onOrganisationSelected', id, name);
|
||||||
$('#frmMemberFilter #ifFilterOrganisationId, #frmMember #ifMemberOrganisationId').val(id);
|
$('#frmMemberFilter #ifFilterOrganisationId, #frmMember #ifMemberOrganisationId').val(id);
|
||||||
$('#frmMemberFilter #ifFilterOrganisation').val(name);
|
$('#frmMemberFilter #ifFilterOrganisation').val(name);
|
||||||
sax.refreshResults(50);
|
om.refreshResults(50);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
sax.createItem = function ()
|
om.createItem = function ()
|
||||||
{
|
{
|
||||||
if (!sax.data.userCanManageMembers) return;
|
if (!sax.data.userCanManageMembers) return;
|
||||||
sax.clearItem();
|
om.clearItem();
|
||||||
$('.MemberOrganisationId', $frm.member).val($('.FilterOrganisationId', $frm.filter).val());
|
$('.MemberOrganisationId', $frm.mbr).val($('.FilterOrganisationId', $frm.filter).val());
|
||||||
$dlg.member.dialog('option', 'title', sax.dlg.title.createMember);
|
$dlg.member.dialog('option', 'title', sax.dlg.title.createMember);
|
||||||
sax.openDialog($dlg.member, 600, 600);
|
sax.openDialog($dlg.member, 600, 560);
|
||||||
}
|
}
|
||||||
sax.clearItem = function ()
|
om.clearItem = function ()
|
||||||
{
|
{
|
||||||
|
delete om.$item;
|
||||||
sax.member = { roleCodes: [] };
|
sax.member = { roleCodes: [] };
|
||||||
let $frmM = $frm.member;
|
$('.MemberId,.MemberExists,.MemberRoleCodes,input[type="text"],textarea,select', $frm.mbr).val('');
|
||||||
$('.MemberId,.MemberExists,.MemberRoleCodes,input[type="text"],textarea,select', $frmM).val('');
|
$('.MemberEmailAddress', $frm.mbr).prop('readonly', false);
|
||||||
$('.MemberEmailAddress', $frmM).prop('readonly', false);
|
$('.MemberDisplayName,.MemberTitle,.MemberFirstName,.MemberLastName', $frm.mbr).hide();
|
||||||
$('.MemberDisplayName,.MemberTitle,.MemberFirstName,.MemberLastName', $frmM).hide();
|
|
||||||
sax.clearControlErrors();
|
sax.clearControlErrors();
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
sax.updateItem = function (item)
|
om.updateItem = function (item, $item)
|
||||||
{
|
{
|
||||||
if (!sax.data.userCanManageMembers) return;
|
if (!sax.data.userCanManageMembers) return;
|
||||||
$('.MemberId', $frm.memberId).val(item.id);
|
om.clearItem();
|
||||||
sax.ajax.updateItem = sax.ajax.updateItem || { url: sax.url.base + 'Organisation/Ajax/GetMember', formId: 'frmMemberId', callbackFn: sax.onUpdateItem };
|
om.$item = $item;
|
||||||
|
$('.MemberId', $frm.mbrId).val(item.id);
|
||||||
|
sax.ajax.updateItem = sax.ajax.updateItem || { url: sax.url.base + 'Organisation/Ajax/GetMember', formId: 'frmMemberId', callbackFn: om.onUpdateItem };
|
||||||
sax.doAjaxRequest(sax.ajax.updateItem, 50);
|
sax.doAjaxRequest(sax.ajax.updateItem, 50);
|
||||||
}
|
}
|
||||||
sax.onUpdateItem = function (response)
|
om.onUpdateItem = function (response)
|
||||||
{
|
{
|
||||||
//sax.debug('onUpdateItem', response);
|
//sax.debug('onUpdateItem', response);
|
||||||
sax.clearItem();
|
|
||||||
if (!response.success) return;
|
if (!response.success) return;
|
||||||
let $frmM = $frm.member;
|
|
||||||
let item = sax.member = response.member;
|
let item = sax.member = response.member;
|
||||||
$('.MemberId', $frmM).val(item.id);
|
$('.MemberId', $frm.mbr).val(item.id);
|
||||||
$('.MemberExists', $frmM).val(1);
|
$('.MemberExists', $frm.mbr).val(1);
|
||||||
$('.MemberOrganisationId', $frmM).val();
|
$('.MemberOrganisationId', $frm.mbr).val();
|
||||||
$('.MemberEmailAddress', $frmM).val(item.emailAddress).prop('readonly', true);
|
$('.MemberEmailAddress', $frm.mbr).val(item.emailAddress).prop('readonly', true);
|
||||||
$('.MemberDisplayName', $frmM).toggle(!item.awaiting).val(item.displayName);
|
$('.MemberDisplayName', $frm.mbr).toggle(!item.awaiting).val(item.displayName);
|
||||||
$('.MemberTitle', $frmM).toggle(!!item.awaiting).val(item.title);
|
$('.MemberTitle', $frm.mbr).toggle(!!item.awaiting).val(item.title);
|
||||||
$('.MemberFirstName', $frmM).toggle(!!item.awaiting).val(item.firstName);
|
$('.MemberFirstName', $frm.mbr).toggle(!!item.awaiting).val(item.firstName);
|
||||||
$('.MemberLastName', $frmM).toggle(!!item.awaiting).val(item.lastName);
|
$('.MemberLastName', $frm.mbr).toggle(!!item.awaiting).val(item.lastName);
|
||||||
$('.MemberRoleCodes', $frmM).val(item.roleCodes);
|
$('.MemberRoleCodes', $frm.mbr).val(item.roleCodes);
|
||||||
$('.MemberRoles', $frmM).val(sax.getSelectedMemberRoleDescs().join('\n'));
|
$('.MemberRoles', $frm.mbr).val(om.getSelectedMemberRoleDescs().join('\n'));
|
||||||
$('.MemberAdminComment', $frmM).val(item.adminComment);
|
$('.MemberAdminComment', $frm.mbr).val(item.adminComment);
|
||||||
sax.clearControlErrors();
|
sax.clearControlErrors();
|
||||||
$dlg.member.dialog('option', 'title', sax.dlg.title.updateMember);
|
$dlg.member.dialog('option', 'title', sax.dlg.title.updateMember);
|
||||||
sax.openDialog($dlg.member, 600, 600);
|
sax.openDialog($dlg.member, 600, 560);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
// Member Roles.
|
// Member Roles.
|
||||||
sax.selectMemberRoles = function ()
|
om.selectMemberRoles = function ()
|
||||||
{
|
{
|
||||||
//sax.debug('selectMemberRoles',sax.data);
|
//sax.debug('selectMemberRoles',sax.data);
|
||||||
sax.codeSelectCfg = sax.codeSelectCfg || { caption: sax.dlg.title.selectRoles, width: 520, fnCallback: sax.updateMemberRoles };
|
sax.codeSelectCfg = sax.codeSelectCfg || { caption: sax.dlg.title.selectRoles, width: 520, fnCallback: om.updateMemberRoles };
|
||||||
sax.codeSelectCfg.codes = sax.data.memberRoles;
|
sax.codeSelectCfg.codes = sax.data.memberRoles;
|
||||||
sax.codeSelectCfg.selectedCodes = sax.member.roleCodes || [];
|
sax.codeSelectCfg.selectedCodes = sax.member.roleCodes || [];
|
||||||
sax.codeSelect.fn.openCodeSelect(sax.codeSelectCfg);
|
sax.codeSelect.fn.openCodeSelect(sax.codeSelectCfg);
|
||||||
}
|
}
|
||||||
sax.updateMemberRoles = function (memberRoleCodes)
|
om.updateMemberRoles = function (memberRoleCodes)
|
||||||
{
|
{
|
||||||
//sax.debug('updateMemberRoles', memberRoleCodes);
|
//sax.debug('updateMemberRoles', memberRoleCodes);
|
||||||
let $frmM = $frm.member;
|
|
||||||
sax.member.roleCodes = memberRoleCodes;
|
sax.member.roleCodes = memberRoleCodes;
|
||||||
$('.MemberRoleCodes', $frmM).val(memberRoleCodes.join(sax.data.memberRoleCodeDelim));
|
$('.MemberRoleCodes', $frm.mbr).val(memberRoleCodes.join(sax.data.memberRoleCodeDelim));
|
||||||
$('.MemberRoles', $frmM).val(sax.getSelectedMemberRoleDescs().join('\n'));
|
$('.MemberRoles', $frm.mbr).val(om.getSelectedMemberRoleDescs().join('\n'));
|
||||||
}
|
}
|
||||||
sax.getSelectedMemberRoleDescs = function ()
|
om.getSelectedMemberRoleDescs = function ()
|
||||||
{
|
{
|
||||||
let roles = [];
|
let roles = [];
|
||||||
sax.member.roleCodes.forEach(function (value) { roles.push(sax.getMemberRoleDesc(value)); })
|
sax.member.roleCodes.forEach(function (value) { roles.push(om.getMemberRoleDesc(value)); })
|
||||||
return roles.sortCI();
|
return roles.sortCI();
|
||||||
}
|
}
|
||||||
sax.getMemberRoleDesc = function (roleCode)
|
om.getMemberRoleDesc = function (roleCode)
|
||||||
{
|
{
|
||||||
let roleDesc = '';
|
let roleDesc = '';
|
||||||
sax.data.memberRoles.some(function (value) { if (value.code == roleCode) { roleDesc = value.desc; return true; } return false; })
|
sax.data.memberRoles.some(function (value) { if (value.code == roleCode) { roleDesc = value.desc; return true; } return false; })
|
||||||
@@ -218,77 +214,80 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
sax.storeItem = function ()
|
om.storeItem = function ()
|
||||||
{
|
{
|
||||||
let $frmM = $frm.member;
|
$('.MemberNameSupplied', $frm.mbr).val($('.MemberLastName', $frm.mbr).is(":visible") ? 1 : 0);
|
||||||
$('.MemberNameSupplied', $frmM).val($('.MemberLastName', $frmM).is(":visible") ? 1 : 0);
|
sax.ajax.storeItem = sax.ajax.storeItem || { url: sax.url.base + 'Organisation/Ajax/StoreMember', formId: 'frmMember', callbackFn: om.onStoreItem };
|
||||||
sax.ajax.storeItem = sax.ajax.storeItem || { url: sax.url.base + 'Organisation/Ajax/StoreMember', formId: 'frmMember', callbackFn: sax.onStoreItem };
|
|
||||||
sax.doAjaxRequest(sax.ajax.storeItem, 50);
|
sax.doAjaxRequest(sax.ajax.storeItem, 50);
|
||||||
}
|
}
|
||||||
sax.onStoreItem = function (response)
|
om.onStoreItem = function (response)
|
||||||
{
|
{
|
||||||
//sax.debug('onStoreItem', response);
|
//sax.debug('onStoreItem', response);
|
||||||
sax.refreshControlValues(response.controlValues);
|
sax.refreshControlValues(response.controlValues);
|
||||||
if (!response.success) return;
|
if (!response.success) return;
|
||||||
let $frmM = $frm.member;
|
|
||||||
if (response.memberNameRequired)
|
if (response.memberNameRequired)
|
||||||
{
|
{
|
||||||
$('.MemberEmailAddress', $frmM).prop('readonly', true);
|
$('.MemberEmailAddress', $frm.mbr).prop('readonly', true);
|
||||||
$('.MemberTitle,.MemberFirstName,.MemberLastName', $frmM).show();
|
$('.MemberTitle,.MemberFirstName,.MemberLastName', $frm.mbr).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$dlg.member.dialog('close');
|
$dlg.member.dialog('close');
|
||||||
var item = response.member;
|
var item = response.member;
|
||||||
var $item = $('#' + sax.getItemId(item.id));
|
if (!om.$item || om.$item.length != 1)
|
||||||
if (!$item.length)
|
|
||||||
{
|
{
|
||||||
$item = sax.getItemTemplate();
|
om.$item = om.getItemTemplate();
|
||||||
$('.sax-panel-item-list', $pnl.results).prepend($item).show();
|
$('.sax-panel-item-list', $pnl.results).prepend(om.$item).show();
|
||||||
}
|
}
|
||||||
sax.populateItem($item, item)
|
om.populateItem(om.$item, item)
|
||||||
|
delete om.$item;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
sax.removeItem = function (id)
|
om.removeItem = function (item, $item)
|
||||||
{
|
{
|
||||||
|
om.$item = $item;
|
||||||
let fn = function ()
|
let fn = function ()
|
||||||
{
|
{
|
||||||
$('.MemberId', $frm.memberId).val(id);
|
$('.MemberId', $frm.mbrId).val(item.id);
|
||||||
sax.ajax.removeItem = sax.ajax.removeItem || { url: sax.url.base + 'Organisation/Ajax/RemoveMember', formId: 'frmMemberId', callbackFn: sax.onItemRemoved };
|
sax.ajax.removeItem = sax.ajax.removeItem || { url: sax.url.base + 'Organisation/Ajax/RemoveMember', formId: 'frmMemberId', callbackFn: om.onItemRemoved };
|
||||||
sax.doAjaxRequest(sax.ajax.removeItem, 50);
|
sax.doAjaxRequest(sax.ajax.removeItem, 50);
|
||||||
}
|
}
|
||||||
|
|
||||||
sax.doConfirm(sax.dlg.title.remove, sax.msg.remove, fn);
|
sax.doConfirm(sax.dlg.title.remove, sax.msg.remove, fn);
|
||||||
}
|
}
|
||||||
sax.onItemRemoved = function (response)
|
om.onItemRemoved = function (response)
|
||||||
{
|
{
|
||||||
if (!response.success) return;
|
if (!response.success) return;
|
||||||
var item = response.member;
|
var item = response.member;
|
||||||
var $item = $('#' + sax.getItemId(item.id));
|
//sax.debug(item, om.$item);
|
||||||
//sax.debug(item, $item);
|
if (om.$item && om.$item.length == 1)
|
||||||
if ($item.length)
|
{
|
||||||
$item.remove();
|
om.$item.remove();
|
||||||
|
delete om.$item;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
sax.activateItem = function (id)
|
om.activateItem = function (item, $item)
|
||||||
{
|
{
|
||||||
|
om.$item = $item;
|
||||||
let fn = function ()
|
let fn = function ()
|
||||||
{
|
{
|
||||||
$('.MemberId', $frm.memberId).val(id);
|
$('.MemberId', $frm.mbrId).val(item.id);
|
||||||
sax.ajax.activateItem = sax.ajax.activateItem || { url: sax.url.base + 'Organisation/Ajax/ActivateMember', formId: 'frmMemberId', callbackFn: sax.onItemActivated };
|
sax.ajax.activateItem = sax.ajax.activateItem || { url: sax.url.base + 'Organisation/Ajax/ActivateMember', formId: 'frmMemberId', callbackFn: om.onItemActivated };
|
||||||
sax.doAjaxRequest(sax.ajax.activateItem, 50);
|
sax.doAjaxRequest(sax.ajax.activateItem, 50);
|
||||||
}
|
}
|
||||||
sax.doConfirm(sax.dlg.title.activate, sax.msg.activate, fn);
|
sax.doConfirm(sax.dlg.title.activate, sax.msg.activate, fn);
|
||||||
}
|
}
|
||||||
sax.onItemActivated = function (response)
|
om.onItemActivated = function (response)
|
||||||
{
|
{
|
||||||
if (!response.success) return;
|
if (!response.success) return;
|
||||||
var item = response.member;
|
var item = response.member;
|
||||||
var $item = $('#' + sax.getItemId(item.id));
|
//sax.debug(item, om.$item);
|
||||||
//sax.debug(item, $item);
|
if (om.$item && om.$item.length == 1)
|
||||||
if ($item.length)
|
{
|
||||||
sax.populateItem($item, item)
|
om.populateItem(om.$item, item)
|
||||||
|
delete om.$item;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
@@ -297,21 +296,24 @@
|
|||||||
$pnl.members = $('.sax-panel.Members');
|
$pnl.members = $('.sax-panel.Members');
|
||||||
$pnl.filter = $('.sax-panel-filter', $pnl.members);
|
$pnl.filter = $('.sax-panel-filter', $pnl.members);
|
||||||
$pnl.results = $('.sax-panel-results', $pnl.members);
|
$pnl.results = $('.sax-panel-results', $pnl.members);
|
||||||
$frm.filter = $('#frmMemberFilter');
|
$frm.filter = $('#frmMemberFilter', $pnl.members);
|
||||||
$('.MemberFilter', $frm.filter).on('input', function () { sax.refreshResults(250); }).on('keypress', function (event)
|
$('.MemberFilter', $frm.filter).on('input', function () { om.refreshResults(250); }).on('keypress', function (event)
|
||||||
{
|
{
|
||||||
if (event.keyCode == 13) setTimeout(sax.refreshResults, 50);
|
if (event.keyCode == 13) setTimeout(om.refreshResults, 50);
|
||||||
});
|
});
|
||||||
$frm.memberId = $('#frmMemberId');
|
$frm.filter.on('dblclick', 'input.FilterOrganisation', om.selectFilterOrganisation).on('click', 'button.SelectFilterOrganisation', om.selectFilterOrganisation);
|
||||||
$frm.member = $('#frmMember');
|
$frm.mbrId = $('#frmMemberId');
|
||||||
$('.sax-input', $frm.member).on('input', function () { sax.clearControlError(this); });
|
$frm.mbr = $('#frmMember');
|
||||||
|
$('.sax-input', $frm.mbr).on('input', function () { sax.clearControlError(this); });
|
||||||
|
$('.MemberRoles', $frm.mbr).on('dblclick', om.selectMemberRoles);
|
||||||
|
$('button.SelectMemberRoles', $frm.mbr).on('click', om.selectMemberRoles);
|
||||||
|
|
||||||
var opt = sax.dlgOpts();
|
var opt = sax.dlgOpts();
|
||||||
opt.buttons[sax.dlg.btn.ok] = function () { sax.storeItem(); };
|
opt.buttons[sax.dlg.btn.ok] = function () { om.storeItem(); };
|
||||||
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); };
|
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); };
|
||||||
$dlg.member = $('#dlgMember').dialog(opt);
|
$dlg.member = $('#dlgMember').dialog(opt);
|
||||||
|
|
||||||
setTimeout(sax.refreshResults, 250);
|
setTimeout(om.refreshResults, 250);
|
||||||
});
|
});
|
||||||
|
|
||||||
}(window, window.document));
|
}(window, window.document));
|
||||||
|
|||||||
@@ -5,11 +5,11 @@
|
|||||||
(function (win, doc, undef)
|
(function (win, doc, undef)
|
||||||
{
|
{
|
||||||
"use strict";
|
"use strict";
|
||||||
let $pnl = sax.$pnl, $frm = sax.$frm, $dlg = sax.$dlg;
|
|
||||||
let oo = sax.OrgOpp = { data: {}, fn: {} };
|
let oo = sax.OrgOpp = { data: {}, fn: {} };
|
||||||
|
let $pnl = oo.$pnl = {}, $frm = oo.$frm = {}, $dlg = oo.$dlg = {};
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
sax.refreshResults = function (delay)
|
oo.refreshResults = function (delay)
|
||||||
{
|
{
|
||||||
sax.data.userCanManageOpportunities = false;
|
sax.data.userCanManageOpportunities = false;
|
||||||
if (!sax.awaitingRefreshResponse)
|
if (!sax.awaitingRefreshResponse)
|
||||||
@@ -18,11 +18,11 @@
|
|||||||
$('.sax-panel-item-list', $pnl.results).fadeOut(200).empty();
|
$('.sax-panel-item-list', $pnl.results).fadeOut(200).empty();
|
||||||
$('.sax-panel-messages', $pnl.results).hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
|
$('.sax-panel-messages', $pnl.results).hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
|
||||||
}
|
}
|
||||||
sax.ajax.refreshResults = sax.ajax.refreshResults || { url: sax.url.base + 'Organisation/Ajax/GetOpportunityList', formId: 'frmOpportunityFilter', callbackFn: sax.doRefreshResults };
|
sax.ajax.refreshResults = sax.ajax.refreshResults || { url: sax.url.base + 'Organisation/Ajax/GetOpportunityList', formId: 'frmOpportunityFilter', callbackFn: oo.doRefreshResults };
|
||||||
sax.doAjaxRequest(sax.ajax.refreshResults, delay || 50);
|
sax.doAjaxRequest(sax.ajax.refreshResults, delay || 50);
|
||||||
sax.awaitingRefreshResponse = true;
|
sax.awaitingRefreshResponse = true;
|
||||||
}
|
}
|
||||||
sax.doRefreshResults = function (response)
|
oo.doRefreshResults = function (response)
|
||||||
{
|
{
|
||||||
//sax.debug('doRefreshResults', response);
|
//sax.debug('doRefreshResults', response);
|
||||||
delete sax.awaitingRefreshResponse;
|
delete sax.awaitingRefreshResponse;
|
||||||
@@ -37,23 +37,22 @@
|
|||||||
// Menu.
|
// Menu.
|
||||||
let $bgr = $('.sax-burger', $pnl.filter);
|
let $bgr = $('.sax-burger', $pnl.filter);
|
||||||
let $mnu = $('ul.sax-dropdown-menu', $bgr).empty();
|
let $mnu = $('ul.sax-dropdown-menu', $bgr).empty();
|
||||||
$mnu.append(sax.getFilterMenuOption(sax.lbl.refresh, function () { sax.refreshResults(); }, 'sax-refresh'));
|
$mnu.append(oo.getFilterMenuOption(sax.lbl.refresh, function () { oo.refreshResults(); }, 'sax-refresh'));
|
||||||
if (sax.data.userCanManageOpportunities = (response.user && response.user.canManage))
|
if (sax.data.userCanManageOpportunities = (response.user && response.user.canManage))
|
||||||
$mnu.append(sax.getFilterMenuOption(sax.lbl.add, function () { sax.createItem(); }, 'sax-edit'));
|
$mnu.append(oo.getFilterMenuOption(sax.lbl.add, function () { oo.createItem(); }, 'sax-edit'));
|
||||||
$bgr.toggle(!!$('.sax-dropdown-item', $mnu).length);
|
$bgr.toggle(!!$('.sax-dropdown-item', $mnu).length);
|
||||||
// Items.
|
// Items.
|
||||||
var items = response.opportunities;
|
var items = response.opportunities;
|
||||||
if (!items.length)
|
if (!items.length)
|
||||||
return $msgs.append($('<div class="sax-message">' + sax.msg.dataNoneFound + '</div>')).fadeIn(500);
|
return $msgs.append($('<div class="sax-message">' + sax.msg.dataNoneFound + '</div>')).fadeIn(500);
|
||||||
for (let itemIdx = 0; itemIdx < items.length; itemIdx++)
|
for (let itemIdx = 0; itemIdx < items.length; itemIdx++)
|
||||||
$items.append(sax.populateItem(sax.getItemTemplate(), items[itemIdx]));
|
$items.append(oo.populateItem(oo.getItemTemplate(), items[itemIdx]));
|
||||||
$items.fadeIn(50);
|
$items.fadeIn(50);
|
||||||
}
|
}
|
||||||
sax.populateItem = function ($item, item)
|
oo.populateItem = function ($item, item)
|
||||||
{
|
{
|
||||||
if (!item) return;
|
if (!item) return;
|
||||||
$('.sax-panel-results .sax-panel-messages').hide().empty();
|
$('.sax-panel-results .sax-panel-messages').hide().empty();
|
||||||
$item.prop('id', sax.getItemId(item.id));
|
|
||||||
$('.OpportunityType', $item).text(item.typeDesc);
|
$('.OpportunityType', $item).text(item.typeDesc);
|
||||||
$('.OpportunityPosition', $item).text(item.position);
|
$('.OpportunityPosition', $item).text(item.position);
|
||||||
$('.OpportunityOutline', $item).text(item.outline);
|
$('.OpportunityOutline', $item).text(item.outline);
|
||||||
@@ -64,7 +63,7 @@
|
|||||||
$('.OpportunityPublished', $item).toggle(!!item.publishedOnFmt);
|
$('.OpportunityPublished', $item).toggle(!!item.publishedOnFmt);
|
||||||
$('.OpportunityExpiresOn', $item).text(item.expiresOnFmt);
|
$('.OpportunityExpiresOn', $item).text(item.expiresOnFmt);
|
||||||
$('.OpportunityExpires', $item).toggle(!!item.expiresOnFmt);
|
$('.OpportunityExpires', $item).toggle(!!item.expiresOnFmt);
|
||||||
$('.OpportunityStatusDesc', $item).text(item.statusDesc);
|
$('.OpportunityStatusDesc', $item).text(item.statusDesc).addClass('sax-status-' + item.statusCode.toLowerCase());
|
||||||
|
|
||||||
let $bgr = $('.sax-burger', $item);
|
let $bgr = $('.sax-burger', $item);
|
||||||
let $mnu = $('ul.sax-dropdown-menu', $bgr).empty();
|
let $mnu = $('ul.sax-dropdown-menu', $bgr).empty();
|
||||||
@@ -72,8 +71,8 @@
|
|||||||
{
|
{
|
||||||
if (sax.data.userCanManageOpportunities)
|
if (sax.data.userCanManageOpportunities)
|
||||||
{
|
{
|
||||||
let fnUpd = function () { sax.updateItem(item) };
|
let fnUpd = function () { oo.updateItem(item, $item) };
|
||||||
$mnu.append(sax.getItemMenuOption(sax.lbl.edit, fnUpd, 'sax-edit'));
|
$mnu.append(oo.getItemMenuOption(sax.lbl.edit, fnUpd, 'sax-edit'));
|
||||||
$('.sax-caption .sax-action', $item).off('click').on('click', fnUpd);
|
$('.sax-caption .sax-action', $item).off('click').on('click', fnUpd);
|
||||||
$item.off('dblclick').on('dblclick', fnUpd);
|
$item.off('dblclick').on('dblclick', fnUpd);
|
||||||
}
|
}
|
||||||
@@ -84,43 +83,39 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
sax.getItemId = function (id)
|
oo.getFilterDropdownTemplate = function ()
|
||||||
{
|
|
||||||
return 'Itm_' + id;
|
|
||||||
}
|
|
||||||
sax.getFilterDropdownTemplate = function ()
|
|
||||||
{
|
{
|
||||||
return $('.sax-panel-item-template .sax-dropdown-menu.Opportunities li.sax-dropdown-item', sax.$pnl.filter).clone();
|
return $('.sax-panel-item-template .sax-dropdown-menu.Opportunities li.sax-dropdown-item', sax.$pnl.filter).clone();
|
||||||
}
|
}
|
||||||
sax.getItemTemplate = function ()
|
oo.getItemTemplate = function ()
|
||||||
{
|
{
|
||||||
return $('.sax-panel-item-template .sax-panel-item.Opportunity', sax.$pnl.results).clone();
|
return $('.sax-panel-item-template .sax-panel-item.Opportunity', sax.$pnl.results).clone();
|
||||||
}
|
}
|
||||||
sax.getItemDropdownTemplate = function ()
|
oo.getItemDropdownTemplate = function ()
|
||||||
{
|
{
|
||||||
return $('.sax-panel-item-template .sax-dropdown-menu.Opportunity li.sax-dropdown-item', sax.$pnl.results).clone();
|
return $('.sax-panel-item-template .sax-dropdown-menu.Opportunity li.sax-dropdown-item', sax.$pnl.results).clone();
|
||||||
}
|
}
|
||||||
sax.getFilterMenuOption = function (lbl, fn, cls)
|
oo.getFilterMenuOption = function (lbl, fn, cls)
|
||||||
{
|
{
|
||||||
return sax.getMenuOption(sax.getFilterDropdownTemplate(), lbl, fn, cls);
|
return oo.getMenuOption(oo.getFilterDropdownTemplate(), lbl, fn, cls);
|
||||||
}
|
}
|
||||||
sax.getItemMenuOption = function (lbl, fn, cls)
|
oo.getItemMenuOption = function (lbl, fn, cls)
|
||||||
{
|
{
|
||||||
return sax.getMenuOption(sax.getItemDropdownTemplate(), lbl, fn, cls);
|
return oo.getMenuOption(oo.getItemDropdownTemplate(), lbl, fn, cls);
|
||||||
}
|
}
|
||||||
sax.getMenuOption = function ($opt, lbl, fn, cls)
|
oo.getMenuOption = function ($opt, lbl, fn, cls)
|
||||||
{
|
{
|
||||||
return $opt.find('div.sax-label').text(lbl).end().on('click', fn).addClass(cls);
|
return $opt.find('div.sax-label').text(lbl).end().on('click', fn).addClass(cls);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
sax.selectFilterOrganisation = function ()
|
oo.selectFilterOrganisation = function ()
|
||||||
{
|
{
|
||||||
if (!sax.data.memberOrganisations)
|
if (!sax.data.memberOrganisations)
|
||||||
sax.getMemberOrganisations(sax.showSelectOrganisation);
|
oo.getMemberOrganisations(oo.showSelectOrganisation);
|
||||||
else sax.showSelectOrganisation();
|
else oo.showSelectOrganisation();
|
||||||
}
|
}
|
||||||
sax.getMemberOrganisations = function (fnCallback)
|
oo.getMemberOrganisations = function (fnCallback)
|
||||||
{
|
{
|
||||||
let handleMemberOrganisationsResponse = function (response)
|
let handleMemberOrganisationsResponse = function (response)
|
||||||
{
|
{
|
||||||
@@ -129,100 +124,102 @@
|
|||||||
sax.data.memberOrganisations = response.organisations;
|
sax.data.memberOrganisations = response.organisations;
|
||||||
if (fnCallback) fnCallback();
|
if (fnCallback) fnCallback();
|
||||||
}
|
}
|
||||||
sax.ajax.userOrgs = sax.ajax.userOrgs || { url: sax.url.base + 'Organisation/Ajax/GetMemberOrganisationList', formId: 'frmNavigate', callbackFn: handleMemberOrganisationsResponse };
|
sax.ajax.userOrgs = sax.ajax.userOrgs || { url: sax.url.base + 'Organisation/Ajax/GetOpportunityAdminOrganisationList', formId: 'frmNavigate', callbackFn: handleMemberOrganisationsResponse };
|
||||||
sax.doAjaxRequest(sax.ajax.userOrgs);
|
sax.doAjaxRequest(sax.ajax.userOrgs);
|
||||||
}
|
}
|
||||||
sax.showSelectOrganisation = function ()
|
oo.showSelectOrganisation = function ()
|
||||||
{
|
{
|
||||||
//sax.debug('sax.selectFilterOrganisation');
|
//sax.debug('selectFilterOrganisation');
|
||||||
sax.selectOrganisation.fn.selectOrganisation({ caption: sax.dlg.title.selectOrganisation, items: sax.data.memberOrganisations, fnCallback: sax.onOrganisationSelected });
|
sax.selectOrganisation.fn.selectOrganisation({ caption: sax.dlg.title.selectOrganisation, items: sax.data.memberOrganisations, fnCallback: oo.onOrganisationSelected });
|
||||||
}
|
}
|
||||||
sax.onOrganisationSelected = function (id, name)
|
oo.onOrganisationSelected = function (id, name)
|
||||||
{
|
{
|
||||||
//sax.debug('sax.onOrganisationSelected', id, name);
|
//sax.debug('onOrganisationSelected', id, name);
|
||||||
$('#frmOpportunityFilter #ifFilterOrganisationId, #frmOpportunity #ifOpportunityOrganisationId').val(id);
|
$('#frmOpportunityFilter #ifFilterOrganisationId, #frmOpportunity #ifOpportunityOrganisationId').val(id);
|
||||||
$('#frmOpportunityFilter #ifFilterOrganisation').val(name);
|
$('#frmOpportunityFilter #ifFilterOrganisation').val(name);
|
||||||
sax.refreshResults(50);
|
oo.refreshResults(50);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
sax.selectSport = function ()
|
oo.selectSport = function ()
|
||||||
{
|
{
|
||||||
sax.mdl.selectSport.fn.selectSport({ caption: sax.dlg.title.selectSport, sportId: $('#ifOpportunitySportId').val(), fnCallback: sax.onSelectSport })
|
sax.mdl.selectSport.fn.selectSport({ caption: sax.dlg.title.selectSport, sportId: $('#ifOpportunitySportId').val(), fnCallback: oo.onSelectSport })
|
||||||
}
|
}
|
||||||
sax.onSelectSport = function (sport)
|
oo.onSelectSport = function (sport)
|
||||||
{
|
{
|
||||||
sax.clearControlError($('#ifOpportunitySportId').val(sport.id));
|
sax.clearControlError($('#ifOpportunitySportId').val(sport.id));
|
||||||
$('#ifOpportunitySportCaption').val(sport ? sport.name : '');
|
$('#ifOpportunitySportCaption').val(sport ? sport.name : '');
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
sax.selectRegion = function ()
|
oo.selectRegion = function ()
|
||||||
{
|
{
|
||||||
sax.mdl.selectRegion.fn.selectRegion({ caption: sax.dlg.title.selectRegion, regionId: $('#ifOpportunityRegionId').val(), fnCallback: sax.onSelectRegion })
|
sax.mdl.selectRegion.fn.selectRegion({ caption: sax.dlg.title.selectRegion, regionId: $('#ifOpportunityRegionId').val(), fnCallback: oo.onSelectRegion })
|
||||||
}
|
}
|
||||||
sax.onSelectRegion = function (region)
|
oo.onSelectRegion = function (region)
|
||||||
{
|
{
|
||||||
sax.clearControlError($('#ifOpportunityRegionId').val(region.id));
|
sax.clearControlError($('#ifOpportunityRegionId').val(region.id));
|
||||||
$('#ifOpportunityRegionCaption').val(region ? region.name : '');
|
$('#ifOpportunityRegionCaption').val(region ? region.name : '');
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
sax.createItem = function ()
|
oo.createItem = function ()
|
||||||
{
|
{
|
||||||
if (!sax.data.userCanManageOpportunities) return;
|
if (!sax.data.userCanManageOpportunities) return;
|
||||||
sax.clearItem();
|
oo.clearItem();
|
||||||
let $frmO = $frm.opportunity;
|
$('#cbOpportunityType', $frm.opp).prepend($("<option>", { value: '', selected: true }));
|
||||||
$('#ifOpportunitySportId', $frmO).val(oo.data.organisation.sportId);
|
$('#ifOpportunitySportId', $frm.opp).val(oo.data.organisation.sportId);
|
||||||
$('#ifOpportunitySportCaption', $frmO).val(oo.data.organisation.sportName);
|
$('#ifOpportunitySportCaption', $frm.opp).val(oo.data.organisation.sportName);
|
||||||
$('#ifOpportunityRegionId', $frmO).val(oo.data.organisation.regionId);
|
$('#ifOpportunityRegionId', $frm.opp).val(oo.data.organisation.regionId);
|
||||||
$('#ifOpportunityRegionCaption', $frmO).val(oo.data.organisation.regionName);
|
$('#ifOpportunityRegionCaption', $frm.opp).val(oo.data.organisation.regionName);
|
||||||
$dlg.opportunity.dialog('option', 'title', sax.dlg.title.createOpportunity);
|
$dlg.opportunity.dialog('option', 'title', sax.dlg.title.createOpportunity);
|
||||||
sax.openDialog($dlg.opportunity, 600, 600);
|
sax.openDialog($dlg.opportunity, 600, 600);
|
||||||
}
|
}
|
||||||
sax.clearItem = function ()
|
oo.clearItem = function ()
|
||||||
{
|
{
|
||||||
$('#ifOpportunityId,#ifOpportunityExists,#ifOpportunityRegionId,#ifOpportunitySportId,input[type="text"],textarea,select', $frm.opportunity).val('');
|
delete oo.$item;
|
||||||
|
$('#ifOpportunityId,#ifOpportunityExists,#ifOpportunityRegionId,#ifOpportunitySportId,input[type="text"],textarea,select', $frm.opp).val('');
|
||||||
|
$('#cbOpportunityType', $frm.opp).find('option[value=""]').remove();
|
||||||
sax.clearControlErrors();
|
sax.clearControlErrors();
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
sax.updateItem = function (item)
|
oo.updateItem = function (item, $item)
|
||||||
{
|
{
|
||||||
if (!sax.data.userCanManageOpportunities) return;
|
if (!sax.data.userCanManageOpportunities) return;
|
||||||
$('.OpportunityId', $frm.opportunityId).val(item.id);
|
oo.clearItem();
|
||||||
sax.ajax.updateItem = sax.ajax.updateItem || { url: sax.url.base + 'Organisation/Ajax/GetOpportunity', formId: 'frmOpportunityId', callbackFn: sax.onUpdateItem };
|
oo.$item = $item;
|
||||||
|
$('.OpportunityId', $frm.oppId).val(item.id);
|
||||||
|
sax.ajax.updateItem = sax.ajax.updateItem || { url: sax.url.base + 'Organisation/Ajax/GetOpportunity', formId: 'frmOpportunityId', callbackFn: oo.onUpdateItem };
|
||||||
sax.doAjaxRequest(sax.ajax.updateItem, 50);
|
sax.doAjaxRequest(sax.ajax.updateItem, 50);
|
||||||
}
|
}
|
||||||
sax.onUpdateItem = function (response)
|
oo.onUpdateItem = function (response)
|
||||||
{
|
{
|
||||||
//sax.debug('onUpdateItem', response);
|
//sax.debug('onUpdateItem', response);
|
||||||
sax.clearItem();
|
|
||||||
if (!response.success) return;
|
if (!response.success) return;
|
||||||
let $frmO = $frm.opportunity;
|
|
||||||
let item = response.opportunity;
|
let item = response.opportunity;
|
||||||
$('#ifOpportunityId', $frmO).val(item.id);
|
$('#ifOpportunityId', $frm.opp).val(item.id);
|
||||||
$('#ifOpportunityExists', $frmO).val(1);
|
$('#ifOpportunityExists', $frm.opp).val(1);
|
||||||
$('#cbOpportunityType', $frmO).val(item.typeCode);
|
$('#cbOpportunityType', $frm.opp).val(item.typeCode);
|
||||||
$('#ifOpportunityPosition', $frmO).val(item.position);
|
$('#ifOpportunityPosition', $frm.opp).val(item.position);
|
||||||
$('#ifOpportunityOutline', $frmO).val(item.outline);
|
$('#ifOpportunityOutline', $frm.opp).val(item.outline);
|
||||||
$('#ifOpportunityRegionId', $frmO).val(item.regionIdPrimary);
|
$('#ifOpportunityRegionId', $frm.opp).val(item.regionIdPrimary);
|
||||||
$('#ifOpportunityRegionCaption', $frmO).val(item.regionCaption);
|
$('#ifOpportunityRegionCaption', $frm.opp).val(item.regionCaption);
|
||||||
$('#ifOpportunitySportId', $frmO).val(item.sportIdPrimary);
|
$('#ifOpportunitySportId', $frm.opp).val(item.sportIdPrimary);
|
||||||
$('#ifOpportunitySportCaption', $frmO).val(item.sportCaption);
|
$('#ifOpportunitySportCaption', $frm.opp).val(item.sportCaption);
|
||||||
$('#cbOpportunityStatusCode', $frmO).val(item.statusCode);
|
$('#cbOpportunityStatusCode', $frm.opp).val(item.statusCode);
|
||||||
sax.clearControlErrors();
|
sax.clearControlErrors();
|
||||||
$dlg.opportunity.dialog('option', 'title', sax.dlg.title.updateOpportunity);
|
$dlg.opportunity.dialog('option', 'title', sax.dlg.title.updateOpportunity);
|
||||||
sax.openDialog($dlg.opportunity, 600, 600);
|
sax.openDialog($dlg.opportunity, 600, 600);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
sax.storeItem = function ()
|
oo.storeItem = function ()
|
||||||
{
|
{
|
||||||
sax.ajax.storeItem = sax.ajax.storeItem || { url: sax.url.base + 'Organisation/Ajax/StoreOpportunity', formId: 'frmOpportunity', callbackFn: sax.onStoreItem };
|
sax.ajax.storeItem = sax.ajax.storeItem || { url: sax.url.base + 'Organisation/Ajax/StoreOpportunity', formId: 'frmOpportunity', callbackFn: oo.onStoreItem };
|
||||||
sax.doAjaxRequest(sax.ajax.storeItem, 50);
|
sax.doAjaxRequest(sax.ajax.storeItem, 50);
|
||||||
}
|
}
|
||||||
sax.onStoreItem = function (response)
|
oo.onStoreItem = function (response)
|
||||||
{
|
{
|
||||||
//sax.debug('onStoreItem', response);
|
//sax.debug('onStoreItem', response);
|
||||||
sax.refreshControlValues(response.controlValues);
|
sax.refreshControlValues(response.controlValues);
|
||||||
@@ -230,13 +227,12 @@
|
|||||||
$dlg.opportunity.dialog('close');
|
$dlg.opportunity.dialog('close');
|
||||||
|
|
||||||
var item = response.opportunity;
|
var item = response.opportunity;
|
||||||
var $item = $('#' + sax.getItemId(item.id));
|
if (!oo.$item || oo.$item.length != 1)
|
||||||
if (!$item.length)
|
|
||||||
{
|
{
|
||||||
$item = $('.sax-panel-item-template .sax-panel-item', $pnl.results).clone();
|
oo.$item = $('.sax-panel-item-template .sax-panel-item', $pnl.results).clone();
|
||||||
$('.sax-panel-item-list', $pnl.results).prepend($item).show();
|
$('.sax-panel-item-list', $pnl.results).prepend(oo.$item).show();
|
||||||
}
|
}
|
||||||
sax.populateItem($item, item)
|
oo.populateItem(oo.$item, item)
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
@@ -245,21 +241,24 @@
|
|||||||
$pnl.opportunities = $('.sax-panel.Opportunities');
|
$pnl.opportunities = $('.sax-panel.Opportunities');
|
||||||
$pnl.filter = $('.sax-panel-filter', $pnl.opportunities);
|
$pnl.filter = $('.sax-panel-filter', $pnl.opportunities);
|
||||||
$pnl.results = $('.sax-panel-results', $pnl.opportunities);
|
$pnl.results = $('.sax-panel-results', $pnl.opportunities);
|
||||||
$frm.filter = $('#frmOpportunityFilter', $pnl.filter);
|
$frm.filter = $('#frmOpportunityFilter', $pnl.opportunities);
|
||||||
$('.OpportunityFilter', $frm.filter).on('input', function () { sax.refreshResults(250); }).on('keypress', function (event)
|
$('.OpportunityFilter', $frm.filter).on('input', function () { oo.refreshResults(250); }).on('keypress', function (event)
|
||||||
{
|
{
|
||||||
if (event.keyCode == 13) setTimeout(sax.refreshResults, 50);
|
if (event.keyCode == 13) setTimeout(oo.refreshResults, 50);
|
||||||
});
|
});
|
||||||
$frm.opportunityId = $('#frmOpportunityId');
|
$frm.filter.on('dblclick', 'input.FilterOrganisation', oo.selectFilterOrganisation).on('click', 'button.SelectFilterOrganisation', oo.selectFilterOrganisation);
|
||||||
$frm.opportunity = $('#frmOpportunity');
|
$frm.oppId = $('#frmOpportunityId');
|
||||||
$('.sax-input', $frm.opportunity).on('input', function () { sax.clearControlError(this); });
|
$frm.opp = $('#frmOpportunity');
|
||||||
|
$('.sax-input', $frm.opp).on('input', function () { sax.clearControlError(this); });
|
||||||
|
$frm.opp.on('dblclick', 'input.OpportunitySportCaption', oo.selectSport).on('click', 'button.SelectOpportunitySport', oo.selectSport);
|
||||||
|
$frm.opp.on('dblclick', 'input.OpportunityRegionCaption', oo.selectRegion).on('click', 'button.SelectOpportunityRegion', oo.selectRegion);
|
||||||
|
|
||||||
var opt = sax.dlgOpts();
|
var opt = sax.dlgOpts();
|
||||||
opt.buttons[sax.dlg.btn.ok] = function () { sax.storeItem(); };
|
opt.buttons[sax.dlg.btn.ok] = function () { oo.storeItem(); };
|
||||||
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); };
|
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); };
|
||||||
$dlg.opportunity = $('#dlgOpportunity').dialog(opt);
|
$dlg.opportunity = $('#dlgOpportunity').dialog(opt);
|
||||||
|
|
||||||
setTimeout(sax.refreshResults, 250);
|
setTimeout(oo.refreshResults, 250);
|
||||||
});
|
});
|
||||||
|
|
||||||
}(window, window.document));
|
}(window, window.document));
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
or.selectOrgRegionCountry = function ()
|
or.selectOrgRegionCountry = function ()
|
||||||
{
|
{
|
||||||
sax.debug($('.OrganisationRegionIdCountry', or.$frm).val());
|
//sax.debug($('.OrganisationRegionIdCountry', or.$frm).val());
|
||||||
sax.mdl.selectRegion.fn.selectRegion({ caption: sax.dlg.title.selectRegion, regionId: $('.OrganisationRegionIdCountry', or.$frm).val(), typesInc: [30], fnCallback: or.onSelectOrgRegionCountry })
|
sax.mdl.selectRegion.fn.selectRegion({ caption: sax.dlg.title.selectRegion, regionId: $('.OrganisationRegionIdCountry', or.$frm).val(), typesInc: [30], fnCallback: or.onSelectOrgRegionCountry })
|
||||||
}
|
}
|
||||||
or.onSelectOrgRegionCountry = function (region)
|
or.onSelectOrgRegionCountry = function (region)
|
||||||
|
|||||||
@@ -176,7 +176,7 @@
|
|||||||
}
|
}
|
||||||
sax.selectContactImage = function ()
|
sax.selectContactImage = function ()
|
||||||
{
|
{
|
||||||
sax.debug('selectContactImage');
|
//sax.debug('selectContactImage');
|
||||||
let dlg = $dlg.selectContactImage.dialog('option', { title: sax.dlg.title.imageUpload });
|
let dlg = $dlg.selectContactImage.dialog('option', { title: sax.dlg.title.imageUpload });
|
||||||
$('#ifContactImage', dlg).val('');
|
$('#ifContactImage', dlg).val('');
|
||||||
sax.openDialog(dlg, 560, 240);
|
sax.openDialog(dlg, 560, 240);
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace Saxonite.Net.Standard.Base.App
|
|||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
public static class Version
|
public static class Version
|
||||||
{
|
{
|
||||||
private static String version { get; } = "1.2.1.1";
|
private static String version { get; } = "1.2.2";
|
||||||
// Retrieve version.
|
// Retrieve version.
|
||||||
public static String GetFullVersion () { return version; }
|
public static String GetFullVersion () { return version; }
|
||||||
public static String GetAppVersion ()
|
public static String GetAppVersion ()
|
||||||
@@ -40,6 +40,8 @@ namespace Saxonite.Net.Standard.Base.App
|
|||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
// Version history.
|
// Version history.
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
|
// 1.2.2 8-Dec-2021 Online Activities.
|
||||||
|
// - Organisation Events.
|
||||||
// 1.2.1 20-Nov-2021 Online Profile.
|
// 1.2.1 20-Nov-2021 Online Profile.
|
||||||
// - Online Organisation edit.
|
// - Online Organisation edit.
|
||||||
// 1.2.0 1-Nov-2021 'Admin' Organisation role
|
// 1.2.0 1-Nov-2021 'Admin' Organisation role
|
||||||
|
|||||||
@@ -259,6 +259,7 @@ namespace Saxonite.Net.Standard.Base.App
|
|||||||
/* Do not change the values or codes - tied to database. */
|
/* Do not change the values or codes - tied to database. */
|
||||||
Playing,
|
Playing,
|
||||||
Training,
|
Training,
|
||||||
|
Organisation,
|
||||||
Social,
|
Social,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// Code generated by Sarand Database Utilities Sat 20-Nov-2021 14:44:06
|
// Code generated by Sarand Database Utilities Wed 8-Dec-2021 14:16:53
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
namespace Saxonite.Base.App
|
namespace Saxonite.Base.App
|
||||||
{
|
{
|
||||||
@@ -165,7 +165,8 @@ namespace Saxonite.Base.App
|
|||||||
OrganisationEvent_RegionIdCountry,
|
OrganisationEvent_RegionIdCountry,
|
||||||
OrganisationEvent_EventAt,
|
OrganisationEvent_EventAt,
|
||||||
OrganisationEvent_EventTypeCode,
|
OrganisationEvent_EventTypeCode,
|
||||||
OrganisationEvent_About,
|
OrganisationEvent_Summary,
|
||||||
|
OrganisationEvent_Details,
|
||||||
OrganisationEvent_EventData,
|
OrganisationEvent_EventData,
|
||||||
OrganisationEvent_PublishedAt,
|
OrganisationEvent_PublishedAt,
|
||||||
OrganisationEvent_ExpiresAt,
|
OrganisationEvent_ExpiresAt,
|
||||||
@@ -356,7 +357,7 @@ namespace Saxonite.Base.App
|
|||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
// Data members.
|
// Data members.
|
||||||
private static readonly int tableCount = 17;
|
private static readonly int tableCount = 17;
|
||||||
private static readonly int columnCount = 310;
|
private static readonly int columnCount = 311;
|
||||||
private static ulong maxTextLen = 0;
|
private static ulong maxTextLen = 0;
|
||||||
|
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
@@ -669,7 +670,8 @@ namespace Saxonite.Base.App
|
|||||||
new ColumnDfn(7,"RegionIdCountry",4,4,false,10),
|
new ColumnDfn(7,"RegionIdCountry",4,4,false,10),
|
||||||
new ColumnDfn(7,"EventAt",9,93,false,16),
|
new ColumnDfn(7,"EventAt",9,93,false,16),
|
||||||
new ColumnDfn(7,"EventTypeCode",0,12,false,3),
|
new ColumnDfn(7,"EventTypeCode",0,12,false,3),
|
||||||
new ColumnDfn(7,"About",0,-9,false,2000),
|
new ColumnDfn(7,"Summary",0,-9,false,200),
|
||||||
|
new ColumnDfn(7,"Details",0,-9,false,2000),
|
||||||
new ColumnDfn(7,"EventData",0,-9,false,0),
|
new ColumnDfn(7,"EventData",0,-9,false,0),
|
||||||
new ColumnDfn(7,"PublishedAt",9,93,false,16),
|
new ColumnDfn(7,"PublishedAt",9,93,false,16),
|
||||||
new ColumnDfn(7,"ExpiresAt",9,93,false,16),
|
new ColumnDfn(7,"ExpiresAt",9,93,false,16),
|
||||||
|
|||||||
@@ -154,8 +154,9 @@ namespace Saxonite.Net.Standard.Base.App
|
|||||||
//---------------------------------------------------------------
|
//---------------------------------------------------------------
|
||||||
// Event types.
|
// Event types.
|
||||||
eventTypeCodes.Add(Sax.EventType.Playing, "PLG", "Playing");
|
eventTypeCodes.Add(Sax.EventType.Playing, "PLG", "Playing");
|
||||||
eventTypeCodes.Add(Sax.EventType.Playing, "TRN", "Training");
|
eventTypeCodes.Add(Sax.EventType.Training, "TRN", "Training");
|
||||||
eventTypeCodes.Add(Sax.EventType.Playing, "SCL", "Social");
|
eventTypeCodes.Add(Sax.EventType.Organisation, "ORG", "Organisation");
|
||||||
|
eventTypeCodes.Add(Sax.EventType.Social, "SCL", "Social");
|
||||||
|
|
||||||
//---------------------------------------------------------------
|
//---------------------------------------------------------------
|
||||||
// Opportunity types.
|
// Opportunity types.
|
||||||
|
|||||||
@@ -32,7 +32,8 @@ namespace Saxonite.Net.Standard.Base.Bus
|
|||||||
EventAt_DateTime,
|
EventAt_DateTime,
|
||||||
EventTypeCode,
|
EventTypeCode,
|
||||||
EventType_Desc,
|
EventType_Desc,
|
||||||
About,
|
Summary,
|
||||||
|
Details,
|
||||||
PublishedAt_Date,
|
PublishedAt_Date,
|
||||||
PublishedAt_DateTime,
|
PublishedAt_DateTime,
|
||||||
ExpiresAt_Date,
|
ExpiresAt_Date,
|
||||||
@@ -57,7 +58,8 @@ namespace Saxonite.Net.Standard.Base.Bus
|
|||||||
public SysId RegionIdCountry { get; set; }
|
public SysId RegionIdCountry { get; set; }
|
||||||
public DateTime EventAt { get; set; }
|
public DateTime EventAt { get; set; }
|
||||||
public Sax.EventType EventType { get; set; }
|
public Sax.EventType EventType { get; set; }
|
||||||
public String About { get; set; } = String.Empty;
|
public String Summary { get; set; } = String.Empty;
|
||||||
|
public String Details { get; set; } = String.Empty;
|
||||||
public String EventData { get; set; } = String.Empty;
|
public String EventData { get; set; } = String.Empty;
|
||||||
public DateTime PublishedAt { get; set; }
|
public DateTime PublishedAt { get; set; }
|
||||||
public DateTime ExpiresAt { get; set; }
|
public DateTime ExpiresAt { get; set; }
|
||||||
@@ -100,10 +102,15 @@ namespace Saxonite.Net.Standard.Base.Bus
|
|||||||
get { return data.EventType; }
|
get { return data.EventType; }
|
||||||
set { CheckChanged((int)data.EventType, (int)value); data.EventType = value; }
|
set { CheckChanged((int)data.EventType, (int)value); data.EventType = value; }
|
||||||
}
|
}
|
||||||
public String About
|
public String Summary
|
||||||
{
|
{
|
||||||
get { return data.About; }
|
get { return data.Summary; }
|
||||||
set { CheckChanged(data.About, value); data.About = value; }
|
set { CheckChanged(data.Summary, value); data.Summary = value; }
|
||||||
|
}
|
||||||
|
public String Details
|
||||||
|
{
|
||||||
|
get { return data.Details; }
|
||||||
|
set { CheckChanged(data.Details, value); data.Details = value; }
|
||||||
}
|
}
|
||||||
public String EventData
|
public String EventData
|
||||||
{
|
{
|
||||||
@@ -128,7 +135,8 @@ namespace Saxonite.Net.Standard.Base.Bus
|
|||||||
RegionIdCountry = data.RegionIdCountry;
|
RegionIdCountry = data.RegionIdCountry;
|
||||||
EventAt = data.EventAt;
|
EventAt = data.EventAt;
|
||||||
EventType = data.EventType;
|
EventType = data.EventType;
|
||||||
About = data.About;
|
Summary = data.Summary;
|
||||||
|
Details = data.Details;
|
||||||
EventData = data.EventData;
|
EventData = data.EventData;
|
||||||
PublishedAt = data.PublishedAt;
|
PublishedAt = data.PublishedAt;
|
||||||
ExpiresAt = data.ExpiresAt;
|
ExpiresAt = data.ExpiresAt;
|
||||||
@@ -152,7 +160,8 @@ namespace Saxonite.Net.Standard.Base.Bus
|
|||||||
public ValidValue RegionIdCountry { get; set; } = ValidValue.Valid;
|
public ValidValue RegionIdCountry { get; set; } = ValidValue.Valid;
|
||||||
public ValidValue EventAt { get; set; } = ValidValue.Valid;
|
public ValidValue EventAt { get; set; } = ValidValue.Valid;
|
||||||
public ValidValue EventType { get; set; } = ValidValue.Valid;
|
public ValidValue EventType { get; set; } = ValidValue.Valid;
|
||||||
public ValidValue About { get; set; } = ValidValue.Valid;
|
public ValidValue Summary { get; set; } = ValidValue.Valid;
|
||||||
|
public ValidValue Details { get; set; } = ValidValue.Valid;
|
||||||
public ValidValue EventData { get; set; } = ValidValue.Valid;
|
public ValidValue EventData { get; set; } = ValidValue.Valid;
|
||||||
public ValidValue PublishedAt { get; set; } = ValidValue.Valid;
|
public ValidValue PublishedAt { get; set; } = ValidValue.Valid;
|
||||||
public ValidValue ExpiresAt { get; set; } = ValidValue.Valid;
|
public ValidValue ExpiresAt { get; set; } = ValidValue.Valid;
|
||||||
@@ -234,10 +243,15 @@ namespace Saxonite.Net.Standard.Base.Bus
|
|||||||
get { return data.EventType; }
|
get { return data.EventType; }
|
||||||
set { data.EventType = value; }
|
set { data.EventType = value; }
|
||||||
}
|
}
|
||||||
public String About
|
public String Summary
|
||||||
{
|
{
|
||||||
get { return data.About; }
|
get { return data.Summary; }
|
||||||
set { data.About = value; }
|
set { data.Summary = value; }
|
||||||
|
}
|
||||||
|
public String Details
|
||||||
|
{
|
||||||
|
get { return data.Details; }
|
||||||
|
set { data.Details = value; }
|
||||||
}
|
}
|
||||||
public String EventData
|
public String EventData
|
||||||
{
|
{
|
||||||
@@ -289,7 +303,7 @@ namespace Saxonite.Net.Standard.Base.Bus
|
|||||||
public List<SysId> RegionIdsIncluded { get; } = new List<SysId>();
|
public List<SysId> RegionIdsIncluded { get; } = new List<SysId>();
|
||||||
public DateTime EventFrom { get; set; }
|
public DateTime EventFrom { get; set; }
|
||||||
public DateTime EventTo{ get; set; }
|
public DateTime EventTo{ get; set; }
|
||||||
public String AboutPartial { get; set; }
|
public String SummaryPartial { get; set; }
|
||||||
/// <summary>General filter value - position, outline, sport, body etc. </summary>
|
/// <summary>General filter value - position, outline, sport, body etc. </summary>
|
||||||
public String EventFilter { get; set; }
|
public String EventFilter { get; set; }
|
||||||
public String NotesPartial { get; set; }
|
public String NotesPartial { get; set; }
|
||||||
|
|||||||
@@ -356,6 +356,10 @@ namespace Saxonite.Net.Standard.Base.Bus
|
|||||||
public bool OrganisationMembersOnly { get; set; }
|
public bool OrganisationMembersOnly { get; set; }
|
||||||
public List<Sax.OrganisationRole> OrganisationRoles { get; } = new List<Sax.OrganisationRole>();
|
public List<Sax.OrganisationRole> OrganisationRoles { get; } = new List<Sax.OrganisationRole>();
|
||||||
public List<Sax.OrganisationRole> OrganisationRolesAny { get; } = new List<Sax.OrganisationRole>();
|
public List<Sax.OrganisationRole> OrganisationRolesAny { get; } = new List<Sax.OrganisationRole>();
|
||||||
|
/// <summary>Exact match on various user account properties including name, email etc.</summary>
|
||||||
|
public String UserFilter { get; set; }
|
||||||
|
/// <summary>Partial match on various user account properties including name, countries etc.</summary>
|
||||||
|
public String UserFilterPartial { get; set; }
|
||||||
// Common properties.
|
// Common properties.
|
||||||
public String NotesPartial { get; set; }
|
public String NotesPartial { get; set; }
|
||||||
public StatusCat StatusCat { get; set; } = StatusCat.NotDeleted;
|
public StatusCat StatusCat { get; set; } = StatusCat.NotDeleted;
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ namespace Saxonite.Net.Standard.Base.Consoles
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class IndexContext
|
public class IndexContext
|
||||||
{
|
{
|
||||||
|
// ToDo Include Localiser.
|
||||||
public IndexContext (SysId userAccountId)
|
public IndexContext (SysId userAccountId)
|
||||||
{
|
{
|
||||||
UserAccountId = userAccountId;
|
UserAccountId = userAccountId;
|
||||||
@@ -31,9 +32,9 @@ namespace Saxonite.Net.Standard.Base.Consoles
|
|||||||
public SysId UserAccountId { get; }
|
public SysId UserAccountId { get; }
|
||||||
public List<SysId> SportIds { get; } = new List<SysId>();
|
public List<SysId> SportIds { get; } = new List<SysId>();
|
||||||
public List<SysId> RegionIds { get; } = new List<SysId>();
|
public List<SysId> RegionIds { get; } = new List<SysId>();
|
||||||
// Default period is ~3 months up to today.
|
// Default period is ~12 months ago up to ~3 months in the future.
|
||||||
public DateTime EffectiveFrom { get; } = DateUtil.IncrementDate(DateTime.Today, -90);
|
public DateTime EffectiveFrom { get; } = DateUtil.IncrementDate(DateTime.Today, -365);
|
||||||
public DateTime EffectiveTo { get; } = DateTime.Today;
|
public DateTime EffectiveTo { get; } = DateUtil.IncrementDate(DateTime.Today, 30);
|
||||||
public bool IsValid()
|
public bool IsValid()
|
||||||
{
|
{
|
||||||
// Context must contain at least a sport, a region and a valid effective period.
|
// Context must contain at least a sport, a region and a valid effective period.
|
||||||
@@ -83,6 +84,7 @@ namespace Saxonite.Net.Standard.Base.Consoles
|
|||||||
private readonly List<Sax.DataItemType> validActivityItemTypes = new List<Sax.DataItemType>()
|
private readonly List<Sax.DataItemType> validActivityItemTypes = new List<Sax.DataItemType>()
|
||||||
{
|
{
|
||||||
Sax.DataItemType.Article,
|
Sax.DataItemType.Article,
|
||||||
|
Sax.DataItemType.OrganisationEvent,
|
||||||
Sax.DataItemType.OrganisationOpportunity,
|
Sax.DataItemType.OrganisationOpportunity,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -148,6 +150,31 @@ namespace Saxonite.Net.Standard.Base.Consoles
|
|||||||
return ClearActivityIndex(article.GetItemId(), dbUpdateInfo);
|
return ClearActivityIndex(article.GetItemId(), dbUpdateInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------
|
||||||
|
/// <summary>
|
||||||
|
/// Store the Activity Index for a Organisation Event.
|
||||||
|
/// </summary>
|
||||||
|
public bool StoreActivityIndex(SaxOrganisationEvent organisationEvent, DbUpdateInfo dbUpdateInfo)
|
||||||
|
{
|
||||||
|
ClearErrorState();
|
||||||
|
|
||||||
|
// Only active opportunities have an activity index.
|
||||||
|
if (!organisationEvent.IsStatusActive) ClearActivityIndex(organisationEvent.GetItemId(), dbUpdateInfo);
|
||||||
|
|
||||||
|
// NB There will be other rules as well, eg. whether published.
|
||||||
|
|
||||||
|
// Activity Index properties.
|
||||||
|
IndexData indexData = new IndexData(organisationEvent.GetItemId());
|
||||||
|
indexData.SportIds.Add(organisationEvent.SportIdPrimary);
|
||||||
|
indexData.RegionIds.Add(organisationEvent.RegionIdCountry);
|
||||||
|
indexData.EffectiveOn = DateUtil.OnInvalid(organisationEvent.PublishedAt.Date, organisationEvent.CreateStamp.On.Date);
|
||||||
|
return StoreActivityIndexData(indexData, dbUpdateInfo);
|
||||||
|
}
|
||||||
|
public bool ClearActivityIndex(SaxOrganisationEvent organisationEvent, DbUpdateInfo dbUpdateInfo)
|
||||||
|
{
|
||||||
|
return ClearActivityIndex(organisationEvent.GetItemId(), dbUpdateInfo);
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------
|
//-------------------------------------------------------------------
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Store the Activity Index for a Organisation Opportunity.
|
/// Store the Activity Index for a Organisation Opportunity.
|
||||||
@@ -166,7 +193,6 @@ namespace Saxonite.Net.Standard.Base.Consoles
|
|||||||
indexData.SportIds.Add(opportunity.SportIdPrimary);
|
indexData.SportIds.Add(opportunity.SportIdPrimary);
|
||||||
indexData.RegionIds.Add(opportunity.RegionIdPrimary);
|
indexData.RegionIds.Add(opportunity.RegionIdPrimary);
|
||||||
indexData.EffectiveOn = DateUtil.OnInvalid(opportunity.PublishedAt.Date, opportunity.CreateStamp.On.Date);
|
indexData.EffectiveOn = DateUtil.OnInvalid(opportunity.PublishedAt.Date, opportunity.CreateStamp.On.Date);
|
||||||
List<SysId> regionIds = new List<SysId>();
|
|
||||||
return StoreActivityIndexData(indexData, dbUpdateInfo);
|
return StoreActivityIndexData(indexData, dbUpdateInfo);
|
||||||
}
|
}
|
||||||
public bool ClearActivityIndex(SaxOrganisationOpportunity opportunity, DbUpdateInfo dbUpdateInfo)
|
public bool ClearActivityIndex(SaxOrganisationOpportunity opportunity, DbUpdateInfo dbUpdateInfo)
|
||||||
|
|||||||
@@ -91,10 +91,16 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
|||||||
errField.EventType = SacsHierarchyItem.ValidValue.Invalid;
|
errField.EventType = SacsHierarchyItem.ValidValue.Invalid;
|
||||||
return SetErrorState("Event type must be specified.");
|
return SetErrorState("Event type must be specified.");
|
||||||
}
|
}
|
||||||
// About.
|
// Summary.
|
||||||
if (errField.About != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.About, "outline", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_About), true))
|
if (errField.Summary != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Summary, "outline", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_Summary), true))
|
||||||
{
|
{
|
||||||
errField.About = SacsHierarchyItem.ValidValue.Invalid;
|
errField.Summary = SacsHierarchyItem.ValidValue.Invalid;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// Details.
|
||||||
|
if (errField.Details != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Details, "details", (long)SaxDbDfn_Core.GetColTextLen(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_Details)))
|
||||||
|
{
|
||||||
|
errField.Details = SacsHierarchyItem.ValidValue.Invalid;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -207,7 +213,15 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
|||||||
|
|
||||||
//-----------------------------------------------------------
|
//-----------------------------------------------------------
|
||||||
// Summary - limit to 200 chars.
|
// Summary - limit to 200 chars.
|
||||||
case SaxOrganisationEvent.Column.About:
|
case SaxOrganisationEvent.Column.Summary:
|
||||||
|
{
|
||||||
|
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
//-----------------------------------------------------------
|
||||||
|
// Details - limit to 200 chars.
|
||||||
|
case SaxOrganisationEvent.Column.Details:
|
||||||
{
|
{
|
||||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// Code generated by Sarand Database Utilities Sat 20-Nov-2021 14:44:06
|
// Code generated by Sarand Database Utilities Wed 8-Dec-2021 14:16:53
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// Code generated by Sarand Database Utilities Sat 20-Nov-2021 14:44:06
|
// Code generated by Sarand Database Utilities Wed 8-Dec-2021 14:16:53
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// Code generated by Sarand Database Utilities Sat 20-Nov-2021 14:44:06
|
// Code generated by Sarand Database Utilities Wed 8-Dec-2021 14:16:53
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// Code generated by Sarand Database Utilities Sat 20-Nov-2021 14:44:06
|
// Code generated by Sarand Database Utilities Wed 8-Dec-2021 14:16:53
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// Code generated by Sarand Database Utilities Sat 20-Nov-2021 14:44:06
|
// Code generated by Sarand Database Utilities Wed 8-Dec-2021 14:16:53
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// Code generated by Sarand Database Utilities Sat 20-Nov-2021 14:44:06
|
// Code generated by Sarand Database Utilities Wed 8-Dec-2021 14:16:53
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||||
{
|
{
|
||||||
@@ -25,7 +25,8 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
|||||||
public ColumnDataInt32 _RegionIdCountry { get; } = new ColumnDataInt32("RegionIdCountry");
|
public ColumnDataInt32 _RegionIdCountry { get; } = new ColumnDataInt32("RegionIdCountry");
|
||||||
public ColumnDataDateTime _EventAt { get; } = new ColumnDataDateTime("EventAt");
|
public ColumnDataDateTime _EventAt { get; } = new ColumnDataDateTime("EventAt");
|
||||||
public ColumnDataString _EventTypeCode { get; } = new ColumnDataString("EventTypeCode");
|
public ColumnDataString _EventTypeCode { get; } = new ColumnDataString("EventTypeCode");
|
||||||
public ColumnDataString _About { get; } = new ColumnDataString("About");
|
public ColumnDataString _Summary { get; } = new ColumnDataString("Summary");
|
||||||
|
public ColumnDataString _Details { get; } = new ColumnDataString("Details");
|
||||||
public ColumnDataString _EventData { get; } = new ColumnDataString("EventData");
|
public ColumnDataString _EventData { get; } = new ColumnDataString("EventData");
|
||||||
public ColumnDataDateTime _PublishedAt { get; } = new ColumnDataDateTime("PublishedAt");
|
public ColumnDataDateTime _PublishedAt { get; } = new ColumnDataDateTime("PublishedAt");
|
||||||
public ColumnDataDateTime _ExpiresAt { get; } = new ColumnDataDateTime("ExpiresAt");
|
public ColumnDataDateTime _ExpiresAt { get; } = new ColumnDataDateTime("ExpiresAt");
|
||||||
@@ -50,7 +51,8 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
|||||||
"RegionIdCountry",
|
"RegionIdCountry",
|
||||||
"EventAt",
|
"EventAt",
|
||||||
"EventTypeCode",
|
"EventTypeCode",
|
||||||
"About",
|
"Summary",
|
||||||
|
"Details",
|
||||||
"EventData",
|
"EventData",
|
||||||
"PublishedAt",
|
"PublishedAt",
|
||||||
"ExpiresAt",
|
"ExpiresAt",
|
||||||
@@ -101,7 +103,8 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
|||||||
public Int32 _RegionIdCountry { get { return Cols._RegionIdCountry.Value; } set { Cols._RegionIdCountry.Value = value; } }
|
public Int32 _RegionIdCountry { get { return Cols._RegionIdCountry.Value; } set { Cols._RegionIdCountry.Value = value; } }
|
||||||
public DateTime _EventAt { get { return Cols._EventAt.Value; } set { Cols._EventAt.Value = value; } }
|
public DateTime _EventAt { get { return Cols._EventAt.Value; } set { Cols._EventAt.Value = value; } }
|
||||||
public String _EventTypeCode { get { return Cols._EventTypeCode.Value; } set { Cols._EventTypeCode.Value = value; } }
|
public String _EventTypeCode { get { return Cols._EventTypeCode.Value; } set { Cols._EventTypeCode.Value = value; } }
|
||||||
public String _About { get { return Cols._About.Value; } set { Cols._About.Value = value; } }
|
public String _Summary { get { return Cols._Summary.Value; } set { Cols._Summary.Value = value; } }
|
||||||
|
public String _Details { get { return Cols._Details.Value; } set { Cols._Details.Value = value; } }
|
||||||
public String _EventData { get { return Cols._EventData.Value; } set { Cols._EventData.Value = value; } }
|
public String _EventData { get { return Cols._EventData.Value; } set { Cols._EventData.Value = value; } }
|
||||||
public DateTime _PublishedAt { get { return Cols._PublishedAt.Value; } set { Cols._PublishedAt.Value = value; } }
|
public DateTime _PublishedAt { get { return Cols._PublishedAt.Value; } set { Cols._PublishedAt.Value = value; } }
|
||||||
public DateTime _ExpiresAt { get { return Cols._ExpiresAt.Value; } set { Cols._ExpiresAt.Value = value; } }
|
public DateTime _ExpiresAt { get { return Cols._ExpiresAt.Value; } set { Cols._ExpiresAt.Value = value; } }
|
||||||
@@ -141,7 +144,8 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
|||||||
_RegionIdCountry = GetFieldInt32(dbDataReader, "RegionIdCountry", _RegionIdCountry);
|
_RegionIdCountry = GetFieldInt32(dbDataReader, "RegionIdCountry", _RegionIdCountry);
|
||||||
_EventAt = GetFieldDateTime(dbDataReader, "EventAt", _EventAt);
|
_EventAt = GetFieldDateTime(dbDataReader, "EventAt", _EventAt);
|
||||||
_EventTypeCode = GetFieldString(dbDataReader, "EventTypeCode", _EventTypeCode);
|
_EventTypeCode = GetFieldString(dbDataReader, "EventTypeCode", _EventTypeCode);
|
||||||
_About = GetFieldString(dbDataReader, "About", _About);
|
_Summary = GetFieldString(dbDataReader, "Summary", _Summary);
|
||||||
|
_Details = GetFieldString(dbDataReader, "Details", _Details);
|
||||||
_EventData = GetFieldString(dbDataReader, "EventData", _EventData);
|
_EventData = GetFieldString(dbDataReader, "EventData", _EventData);
|
||||||
_PublishedAt = GetFieldDateTime(dbDataReader, "PublishedAt", _PublishedAt);
|
_PublishedAt = GetFieldDateTime(dbDataReader, "PublishedAt", _PublishedAt);
|
||||||
_ExpiresAt = GetFieldDateTime(dbDataReader, "ExpiresAt", _ExpiresAt);
|
_ExpiresAt = GetFieldDateTime(dbDataReader, "ExpiresAt", _ExpiresAt);
|
||||||
@@ -180,7 +184,8 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
|||||||
if (columnNames.ContainsCI("RegionIdCountry")) AddCommandParameter(dbCommand, "@RegionIdCountry", _RegionIdCountry);
|
if (columnNames.ContainsCI("RegionIdCountry")) AddCommandParameter(dbCommand, "@RegionIdCountry", _RegionIdCountry);
|
||||||
if (columnNames.ContainsCI("EventAt")) AddCommandParameter(dbCommand, "@EventAt", _EventAt);
|
if (columnNames.ContainsCI("EventAt")) AddCommandParameter(dbCommand, "@EventAt", _EventAt);
|
||||||
if (columnNames.ContainsCI("EventTypeCode")) AddCommandParameter(dbCommand, "@EventTypeCode", _EventTypeCode);
|
if (columnNames.ContainsCI("EventTypeCode")) AddCommandParameter(dbCommand, "@EventTypeCode", _EventTypeCode);
|
||||||
if (columnNames.ContainsCI("About")) AddCommandParameter(dbCommand, "@About", _About);
|
if (columnNames.ContainsCI("Summary")) AddCommandParameter(dbCommand, "@Summary", _Summary);
|
||||||
|
if (columnNames.ContainsCI("Details")) AddCommandParameter(dbCommand, "@Details", _Details);
|
||||||
if (columnNames.ContainsCI("EventData")) AddCommandParameter(dbCommand, "@EventData", _EventData);
|
if (columnNames.ContainsCI("EventData")) AddCommandParameter(dbCommand, "@EventData", _EventData);
|
||||||
if (columnNames.ContainsCI("PublishedAt")) AddCommandParameter(dbCommand, "@PublishedAt", _PublishedAt);
|
if (columnNames.ContainsCI("PublishedAt")) AddCommandParameter(dbCommand, "@PublishedAt", _PublishedAt);
|
||||||
if (columnNames.ContainsCI("ExpiresAt")) AddCommandParameter(dbCommand, "@ExpiresAt", _ExpiresAt);
|
if (columnNames.ContainsCI("ExpiresAt")) AddCommandParameter(dbCommand, "@ExpiresAt", _ExpiresAt);
|
||||||
@@ -234,7 +239,8 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
|||||||
if (columnNames.ContainsCI("RegionIdCountry")) AddCommandParameter(dbCommand, "@RegionIdCountry", _RegionIdCountry);
|
if (columnNames.ContainsCI("RegionIdCountry")) AddCommandParameter(dbCommand, "@RegionIdCountry", _RegionIdCountry);
|
||||||
if (columnNames.ContainsCI("EventAt")) AddCommandParameter(dbCommand, "@EventAt", _EventAt);
|
if (columnNames.ContainsCI("EventAt")) AddCommandParameter(dbCommand, "@EventAt", _EventAt);
|
||||||
if (columnNames.ContainsCI("EventTypeCode")) AddCommandParameter(dbCommand, "@EventTypeCode", _EventTypeCode);
|
if (columnNames.ContainsCI("EventTypeCode")) AddCommandParameter(dbCommand, "@EventTypeCode", _EventTypeCode);
|
||||||
if (columnNames.ContainsCI("About")) AddCommandParameter(dbCommand, "@About", _About);
|
if (columnNames.ContainsCI("Summary")) AddCommandParameter(dbCommand, "@Summary", _Summary);
|
||||||
|
if (columnNames.ContainsCI("Details")) AddCommandParameter(dbCommand, "@Details", _Details);
|
||||||
if (columnNames.ContainsCI("EventData")) AddCommandParameter(dbCommand, "@EventData", _EventData);
|
if (columnNames.ContainsCI("EventData")) AddCommandParameter(dbCommand, "@EventData", _EventData);
|
||||||
if (columnNames.ContainsCI("PublishedAt")) AddCommandParameter(dbCommand, "@PublishedAt", _PublishedAt);
|
if (columnNames.ContainsCI("PublishedAt")) AddCommandParameter(dbCommand, "@PublishedAt", _PublishedAt);
|
||||||
if (columnNames.ContainsCI("ExpiresAt")) AddCommandParameter(dbCommand, "@ExpiresAt", _ExpiresAt);
|
if (columnNames.ContainsCI("ExpiresAt")) AddCommandParameter(dbCommand, "@ExpiresAt", _ExpiresAt);
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// Code generated by Sarand Database Utilities Sat 20-Nov-2021 14:44:06
|
// Code generated by Sarand Database Utilities Wed 8-Dec-2021 14:16:53
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// Code generated by Sarand Database Utilities Sat 20-Nov-2021 14:44:06
|
// Code generated by Sarand Database Utilities Wed 8-Dec-2021 14:16:53
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// Code generated by Sarand Database Utilities Sat 20-Nov-2021 14:44:06
|
// Code generated by Sarand Database Utilities Wed 8-Dec-2021 14:16:53
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// Code generated by Sarand Database Utilities Sat 20-Nov-2021 14:44:06
|
// Code generated by Sarand Database Utilities Wed 8-Dec-2021 14:16:53
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// Code generated by Sarand Database Utilities Sat 20-Nov-2021 14:44:06
|
// Code generated by Sarand Database Utilities Wed 8-Dec-2021 14:16:53
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// Code generated by Sarand Database Utilities Sat 20-Nov-2021 14:44:06
|
// Code generated by Sarand Database Utilities Wed 8-Dec-2021 14:16:53
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// Code generated by Sarand Database Utilities Sat 20-Nov-2021 14:44:06
|
// Code generated by Sarand Database Utilities Wed 8-Dec-2021 14:16:53
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// Code generated by Sarand Database Utilities Sat 20-Nov-2021 14:44:06
|
// Code generated by Sarand Database Utilities Wed 8-Dec-2021 14:16:53
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// Code generated by Sarand Database Utilities Sat 20-Nov-2021 14:44:06
|
// Code generated by Sarand Database Utilities Wed 8-Dec-2021 14:16:53
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// Code generated by Sarand Database Utilities Sat 20-Nov-2021 14:44:06
|
// Code generated by Sarand Database Utilities Wed 8-Dec-2021 14:16:53
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
// Code generated by Sarand Database Utilities Sat 20-Nov-2021 14:44:06
|
// Code generated by Sarand Database Utilities Wed 8-Dec-2021 14:16:53
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -511,40 +511,11 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
|||||||
|
|
||||||
// User filter.
|
// User filter.
|
||||||
if (!StringUtil.IsEmpty(prm.UserFilter))
|
if (!StringUtil.IsEmpty(prm.UserFilter))
|
||||||
{
|
filter.AddRange(GetUserAccountFilters(prm.UserFilter, aliasUserAccount));
|
||||||
// Split filter into words.
|
|
||||||
List<String> filterWords = prm.UserFilter.Split((char[])null, StringSplitOptions.RemoveEmptyEntries).ToList();
|
|
||||||
filterWords.RemoveDuplicatesCI();
|
|
||||||
filterWords.RemoveBlanks();
|
|
||||||
foreach (String filterWord in filterWords)
|
|
||||||
{
|
|
||||||
List<String> userFilter = new List<string>();
|
|
||||||
// Exact match for each word to avoid Online user search allowing partial lookup.
|
|
||||||
userFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_EmailAddress, aliasUserAccount) + "='" + DbQuery.FormatForCondition(filterWord) + "'");
|
|
||||||
userFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_Title, aliasUserAccount) + "='" + DbQuery.FormatForCondition(filterWord) + "'");
|
|
||||||
userFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_FirstName, aliasUserAccount) + "='" + DbQuery.FormatForCondition(filterWord) + "'");
|
|
||||||
userFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_LastName, aliasUserAccount) + "='" + DbQuery.FormatForCondition(filterWord) + "'");
|
|
||||||
filter.Add(userFilter.Concat(" OR ", "(", ")"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// User filter - partial.
|
// User filter - partial.
|
||||||
if (!StringUtil.IsEmpty(prm.UserFilterPartial))
|
if (!StringUtil.IsEmpty(prm.UserFilterPartial))
|
||||||
{
|
filter.AddRange(GetPartialUserAccountFilters(prm.UserFilterPartial, aliasUserAccount));
|
||||||
// Split filter into words.
|
|
||||||
List<String> filterWords = prm.UserFilterPartial.Split((char[])null, StringSplitOptions.RemoveEmptyEntries).ToList();
|
|
||||||
filterWords.RemoveDuplicatesCI();
|
|
||||||
filterWords.RemoveBlanks();
|
|
||||||
foreach (String filterWord in filterWords)
|
|
||||||
{
|
|
||||||
List<String> userAccountFilter = new List<string>();
|
|
||||||
userAccountFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_EmailAddress, aliasUserAccount) + " Like '%" + DbQuery.FormatForLike(filterWord) + "%'");
|
|
||||||
userAccountFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_Title, aliasUserAccount) + " Like '%" + DbQuery.FormatForLike(filterWord) + "%'");
|
|
||||||
userAccountFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_FirstName, aliasUserAccount) + " Like '%" + DbQuery.FormatForLike(filterWord) + "%'");
|
|
||||||
userAccountFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_LastName, aliasUserAccount) + " Like '%" + DbQuery.FormatForLike(filterWord) + "%'");
|
|
||||||
filter.Add(userAccountFilter.Concat(" OR ", "(", ")"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Active roles.
|
// Active roles.
|
||||||
List<String> roleCodes = new List<string>();
|
List<String> roleCodes = new List<string>();
|
||||||
@@ -581,6 +552,49 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
|||||||
if (filter.Count < 1) filter.Add("1=1");
|
if (filter.Count < 1) filter.Add("1=1");
|
||||||
return filter;
|
return filter;
|
||||||
}
|
}
|
||||||
|
internal static List<String> GetUserAccountFilters(String userFilter, String aliasUserAccount)
|
||||||
|
{
|
||||||
|
List<String> filter = new List<string>();
|
||||||
|
if (!StringUtil.IsEmpty(userFilter))
|
||||||
|
{
|
||||||
|
// Split filter into words.
|
||||||
|
List<String> filterWords = userFilter.Split((char[])null, StringSplitOptions.RemoveEmptyEntries).ToList();
|
||||||
|
filterWords.RemoveDuplicatesCI();
|
||||||
|
filterWords.RemoveBlanks();
|
||||||
|
foreach (String filterWord in filterWords)
|
||||||
|
{
|
||||||
|
List<String> userAccountFilter = new List<string>();
|
||||||
|
// Exact match for each word to avoid Online user search allowing partial lookup.
|
||||||
|
userAccountFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_EmailAddress, aliasUserAccount) + "='" + DbQuery.FormatForCondition(filterWord) + "'");
|
||||||
|
userAccountFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_Title, aliasUserAccount) + "='" + DbQuery.FormatForCondition(filterWord) + "'");
|
||||||
|
userAccountFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_FirstName, aliasUserAccount) + "='" + DbQuery.FormatForCondition(filterWord) + "'");
|
||||||
|
userAccountFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_LastName, aliasUserAccount) + "='" + DbQuery.FormatForCondition(filterWord) + "'");
|
||||||
|
filter.Add(userAccountFilter.Concat(" OR ", "(", ")"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return filter;
|
||||||
|
}
|
||||||
|
internal static List<String> GetPartialUserAccountFilters(String userFilterPartial, String aliasUserAccount)
|
||||||
|
{
|
||||||
|
List<String> filter = new List<string>();
|
||||||
|
if (!StringUtil.IsEmpty(userFilterPartial))
|
||||||
|
{
|
||||||
|
// Split filter into words.
|
||||||
|
List<String> filterWords = userFilterPartial.Split((char[])null, StringSplitOptions.RemoveEmptyEntries).ToList();
|
||||||
|
filterWords.RemoveDuplicatesCI();
|
||||||
|
filterWords.RemoveBlanks();
|
||||||
|
foreach (String filterWord in filterWords)
|
||||||
|
{
|
||||||
|
List<String> userAccountFilter = new List<string>();
|
||||||
|
userAccountFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_EmailAddress, aliasUserAccount) + " Like '%" + DbQuery.FormatForLike(filterWord) + "%'");
|
||||||
|
userAccountFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_Title, aliasUserAccount) + " Like '%" + DbQuery.FormatForLike(filterWord) + "%'");
|
||||||
|
userAccountFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_FirstName, aliasUserAccount) + " Like '%" + DbQuery.FormatForLike(filterWord) + "%'");
|
||||||
|
userAccountFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_LastName, aliasUserAccount) + " Like '%" + DbQuery.FormatForLike(filterWord) + "%'");
|
||||||
|
filter.Add(userAccountFilter.Concat(" OR ", "(", ")"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return filter;
|
||||||
|
}
|
||||||
internal static String GetUserAccountStatusCatFilterCondition(SaxUserAccount.StatusCat statusCat)
|
internal static String GetUserAccountStatusCatFilterCondition(SaxUserAccount.StatusCat statusCat)
|
||||||
{
|
{
|
||||||
if (statusCat == SaxUserAccount.StatusCat.AwaitingOnly)
|
if (statusCat == SaxUserAccount.StatusCat.AwaitingOnly)
|
||||||
@@ -597,6 +611,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
|||||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Deleted) + "'";
|
return "='" + SacsSystem.GetStatusCode(SaStatus.Deleted) + "'";
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------
|
||||||
// Item sort columns.
|
// Item sort columns.
|
||||||
public List<String> GetUserAccountSortColumns(SaxUserAccount.Params prm)
|
public List<String> GetUserAccountSortColumns(SaxUserAccount.Params prm)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -450,22 +450,36 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
|||||||
if (!userAccountIdsIncluded.IsEmpty())
|
if (!userAccountIdsIncluded.IsEmpty())
|
||||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserOrganisation_UserAccountId, aliasUserOrganisation) + " IN (" + userAccountIdsIncluded + ")");
|
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserOrganisation_UserAccountId, aliasUserOrganisation) + " IN (" + userAccountIdsIncluded + ")");
|
||||||
|
|
||||||
// User Account status.
|
// User Account filters.
|
||||||
if (prm.UserAccountStatusCat != SaxUserAccount.StatusCat.Any)
|
if (StringUtil.IsEmpty(prm.Alias_UserAccount))
|
||||||
{
|
{
|
||||||
if (StringUtil.IsEmpty(prm.Alias_UserAccount))
|
// User Account table isn't linked - use sub-query.
|
||||||
{
|
DbQuery qry = new DbQuery(CoreDatabase.DbmsType);
|
||||||
// User Account table isn't linked.
|
qry.Tables.Add(SaxDbDfn_Core.GetTableName(SaxDbDfn_Core.TableIdx.UserAccount), aliasUserOrganisation_UserAccount);
|
||||||
DbQuery qry = new DbQuery(CoreDatabase.DbmsType);
|
qry.Columns.Add("1");
|
||||||
qry.Tables.Add(SaxDbDfn_Core.GetTableName(SaxDbDfn_Core.TableIdx.UserAccount), aliasUserOrganisation_UserAccount);
|
// Construct required filters.
|
||||||
qry.Columns.Add("1");
|
if (prm.UserAccountStatusCat != SaxUserAccount.StatusCat.Any)
|
||||||
qry.Filters.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_Id, aliasUserOrganisation_UserAccount) + "=" + SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserOrganisation_UserAccountId, aliasUserOrganisation));
|
|
||||||
qry.Filters.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_Status, aliasUserOrganisation_UserAccount) + GetUserAccountStatusCatFilterCondition(prm.UserAccountStatusCat));
|
qry.Filters.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_Status, aliasUserOrganisation_UserAccount) + GetUserAccountStatusCatFilterCondition(prm.UserAccountStatusCat));
|
||||||
|
if (!StringUtil.IsEmpty(prm.UserFilter))
|
||||||
|
qry.Filters.AddRange(SaxAccountMgr_Dbas.GetUserAccountFilters(prm.UserFilter, aliasUserOrganisation_UserAccount));
|
||||||
|
if (!StringUtil.IsEmpty(prm.UserFilterPartial))
|
||||||
|
qry.Filters.AddRange(SaxAccountMgr_Dbas.GetPartialUserAccountFilters(prm.UserFilterPartial, aliasUserOrganisation_UserAccount));
|
||||||
|
if (!qry.Filters.IsEmpty())
|
||||||
|
{
|
||||||
|
// At least one User Account filter has been applied. Include Id filter and construct main query filter.
|
||||||
|
qry.Filters.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_Id, aliasUserOrganisation_UserAccount) + "=" + SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserOrganisation_UserAccountId, aliasUserOrganisation));
|
||||||
filter.Add("Exists (" + qry.BuildQuery() + ")");
|
filter.Add("Exists (" + qry.BuildQuery() + ")");
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
// User Account table is linked - filter directly.
|
else
|
||||||
|
{
|
||||||
|
// User Account table is linked - filter directly.
|
||||||
|
if (prm.UserAccountStatusCat != SaxUserAccount.StatusCat.Any)
|
||||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_Status, prm.Alias_UserAccount) + GetUserAccountStatusCatFilterCondition(prm.UserAccountStatusCat));
|
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_Status, prm.Alias_UserAccount) + GetUserAccountStatusCatFilterCondition(prm.UserAccountStatusCat));
|
||||||
|
if (!StringUtil.IsEmpty(prm.UserFilter))
|
||||||
|
filter.AddRange(SaxAccountMgr_Dbas.GetUserAccountFilters(prm.UserFilter, prm.Alias_UserAccount));
|
||||||
|
if (!StringUtil.IsEmpty(prm.UserFilterPartial))
|
||||||
|
filter.AddRange(SaxAccountMgr_Dbas.GetPartialUserAccountFilters(prm.UserFilterPartial, prm.Alias_UserAccount));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Organisations.
|
// Organisations.
|
||||||
@@ -537,6 +551,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
|||||||
return "='" + SacsSystem.GetStatusCode(SaStatus.Deleted) + "'";
|
return "='" + SacsSystem.GetStatusCode(SaStatus.Deleted) + "'";
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------
|
||||||
// Item sort columns.
|
// Item sort columns.
|
||||||
public List<String> GetUserOrganisationSortColumns(SaxUserOrganisation.Params prm)
|
public List<String> GetUserOrganisationSortColumns(SaxUserOrganisation.Params prm)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -218,7 +218,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
|||||||
dbOrganisationEvent._RegionIdCountry = SysId.ToInt(organisationEvent.RegionIdCountry);
|
dbOrganisationEvent._RegionIdCountry = SysId.ToInt(organisationEvent.RegionIdCountry);
|
||||||
dbOrganisationEvent._EventAt = organisationEvent.EventAt;
|
dbOrganisationEvent._EventAt = organisationEvent.EventAt;
|
||||||
dbOrganisationEvent._EventTypeCode = EventTypeCodes.GetCodeForType(organisationEvent.EventType);
|
dbOrganisationEvent._EventTypeCode = EventTypeCodes.GetCodeForType(organisationEvent.EventType);
|
||||||
dbOrganisationEvent._About = organisationEvent.About;
|
dbOrganisationEvent._Summary = organisationEvent.Summary;
|
||||||
|
dbOrganisationEvent._Details = organisationEvent.Details;
|
||||||
dbOrganisationEvent._EventData = organisationEvent.EventData;
|
dbOrganisationEvent._EventData = organisationEvent.EventData;
|
||||||
dbOrganisationEvent._PublishedAt = organisationEvent.PublishedAt;
|
dbOrganisationEvent._PublishedAt = organisationEvent.PublishedAt;
|
||||||
dbOrganisationEvent._ExpiresAt = organisationEvent.ExpiresAt;
|
dbOrganisationEvent._ExpiresAt = organisationEvent.ExpiresAt;
|
||||||
@@ -243,7 +244,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
|||||||
organisationEvent.RegionIdCountry = new SysId(dbOrganisationEvent._RegionIdCountry);
|
organisationEvent.RegionIdCountry = new SysId(dbOrganisationEvent._RegionIdCountry);
|
||||||
organisationEvent.EventAt = dbOrganisationEvent._EventAt;
|
organisationEvent.EventAt = dbOrganisationEvent._EventAt;
|
||||||
organisationEvent.EventType = (Sax.EventType)EventTypeCodes.GetTypeForCode(dbOrganisationEvent._EventTypeCode);
|
organisationEvent.EventType = (Sax.EventType)EventTypeCodes.GetTypeForCode(dbOrganisationEvent._EventTypeCode);
|
||||||
organisationEvent.About = dbOrganisationEvent._About;
|
organisationEvent.Summary = dbOrganisationEvent._Summary;
|
||||||
|
organisationEvent.Details = dbOrganisationEvent._Details;
|
||||||
organisationEvent.EventData = dbOrganisationEvent._EventData;
|
organisationEvent.EventData = dbOrganisationEvent._EventData;
|
||||||
organisationEvent.PublishedAt = dbOrganisationEvent._PublishedAt;
|
organisationEvent.PublishedAt = dbOrganisationEvent._PublishedAt;
|
||||||
organisationEvent.ExpiresAt = dbOrganisationEvent._ExpiresAt;
|
organisationEvent.ExpiresAt = dbOrganisationEvent._ExpiresAt;
|
||||||
@@ -341,8 +343,11 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
|||||||
case SaxOrganisationEvent.Column.EventType_Desc:
|
case SaxOrganisationEvent.Column.EventType_Desc:
|
||||||
SetOrganisationEventColDfn(columnDfn, "Type", 120, SaxDbDfn_Core.ColumnIdx.OrganisationEvent_EventTypeCode, ColumnAlignment.Center);
|
SetOrganisationEventColDfn(columnDfn, "Type", 120, SaxDbDfn_Core.ColumnIdx.OrganisationEvent_EventTypeCode, ColumnAlignment.Center);
|
||||||
break;
|
break;
|
||||||
case SaxOrganisationEvent.Column.About:
|
case SaxOrganisationEvent.Column.Summary:
|
||||||
SetOrganisationEventColDfn(columnDfn, "About", 200, SaxDbDfn_Core.ColumnIdx.OrganisationEvent_About);
|
SetOrganisationEventColDfn(columnDfn, "Summary", 200, SaxDbDfn_Core.ColumnIdx.OrganisationEvent_Summary);
|
||||||
|
break;
|
||||||
|
case SaxOrganisationEvent.Column.Details:
|
||||||
|
SetOrganisationEventColDfn(columnDfn, "Details", 200, SaxDbDfn_Core.ColumnIdx.OrganisationEvent_Details);
|
||||||
break;
|
break;
|
||||||
case SaxOrganisationEvent.Column.PublishedAt_Date:
|
case SaxOrganisationEvent.Column.PublishedAt_Date:
|
||||||
SetOrganisationEventColDfn(columnDfn, "Published", 80, SaxDbDfn_Core.ColumnIdx.OrganisationEvent_PublishedAt, ColumnAlignment.Center, DataValue.DataType.Date);
|
SetOrganisationEventColDfn(columnDfn, "Published", 80, SaxDbDfn_Core.ColumnIdx.OrganisationEvent_PublishedAt, ColumnAlignment.Center, DataValue.DataType.Date);
|
||||||
@@ -453,11 +458,11 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
|||||||
if (!regionIdsIncluded.IsEmpty())
|
if (!regionIdsIncluded.IsEmpty())
|
||||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_RegionIdCountry, aliasOrganisationEvent) + " IN (" + regionIdsIncluded + ")");
|
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_RegionIdCountry, aliasOrganisationEvent) + " IN (" + regionIdsIncluded + ")");
|
||||||
|
|
||||||
// About.
|
// Summary.
|
||||||
if (!StringUtil.IsEmpty(prm.AboutPartial))
|
if (!StringUtil.IsEmpty(prm.SummaryPartial))
|
||||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_About, aliasOrganisationEvent) + " Like '%" + DbQuery.FormatForLike(prm.AboutPartial, true) + "%'");
|
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_Summary, aliasOrganisationEvent) + " Like '%" + DbQuery.FormatForLike(prm.SummaryPartial, true) + "%'");
|
||||||
|
|
||||||
// Article.
|
// Event filter.
|
||||||
if (!StringUtil.IsEmpty(prm.EventFilter))
|
if (!StringUtil.IsEmpty(prm.EventFilter))
|
||||||
{
|
{
|
||||||
// Split filter into words.
|
// Split filter into words.
|
||||||
@@ -467,7 +472,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
|||||||
foreach (String filterWord in filterWords)
|
foreach (String filterWord in filterWords)
|
||||||
{
|
{
|
||||||
List<String> articleFilter = new List<String>();
|
List<String> articleFilter = new List<String>();
|
||||||
articleFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_About, aliasOrganisationEvent) + " Like '%" + DbQuery.FormatForLike(filterWord, true) + "%'");
|
articleFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_Summary, aliasOrganisationEvent) + " Like '%" + DbQuery.FormatForLike(filterWord, true) + "%'");
|
||||||
|
articleFilter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_Details, aliasOrganisationEvent) + " Like '%" + DbQuery.FormatForLike(filterWord, true) + "%'");
|
||||||
filter.Add(articleFilter.Concat(" OR ", "(", ")"));
|
filter.Add(articleFilter.Concat(" OR ", "(", ")"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -606,8 +612,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
|||||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_EventAt, aliasOrganisationEvent));
|
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_EventAt, aliasOrganisationEvent));
|
||||||
if (columns.HasId(SaxOrganisationEvent.Column.EventTypeCode) || columns.HasId(SaxOrganisationEvent.Column.EventType_Desc))
|
if (columns.HasId(SaxOrganisationEvent.Column.EventTypeCode) || columns.HasId(SaxOrganisationEvent.Column.EventType_Desc))
|
||||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_EventTypeCode, aliasOrganisationEvent));
|
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_EventTypeCode, aliasOrganisationEvent));
|
||||||
if (columns.HasId(SaxOrganisationEvent.Column.About))
|
if (columns.HasId(SaxOrganisationEvent.Column.Summary))
|
||||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_About, aliasOrganisationEvent));
|
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_Summary, aliasOrganisationEvent));
|
||||||
|
if (columns.HasId(SaxOrganisationEvent.Column.Details))
|
||||||
|
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_Details, aliasOrganisationEvent));
|
||||||
if (columns.HasId(SaxOrganisationEvent.Column.PublishedAt_Date) || columns.HasId(SaxOrganisationEvent.Column.PublishedAt_DateTime))
|
if (columns.HasId(SaxOrganisationEvent.Column.PublishedAt_Date) || columns.HasId(SaxOrganisationEvent.Column.PublishedAt_DateTime))
|
||||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_PublishedAt, aliasOrganisationEvent));
|
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_PublishedAt, aliasOrganisationEvent));
|
||||||
if (columns.HasId(SaxOrganisationEvent.Column.ExpiresAt_Date) || columns.HasId(SaxOrganisationEvent.Column.ExpiresAt_DateTime))
|
if (columns.HasId(SaxOrganisationEvent.Column.ExpiresAt_Date) || columns.HasId(SaxOrganisationEvent.Column.ExpiresAt_DateTime))
|
||||||
|
|||||||
@@ -256,7 +256,7 @@
|
|||||||
<Clustered>false</Clustered>
|
<Clustered>false</Clustered>
|
||||||
<Nullable>false</Nullable>
|
<Nullable>false</Nullable>
|
||||||
<Pages>1</Pages>
|
<Pages>1</Pages>
|
||||||
<UniqueValues>11</UniqueValues>
|
<UniqueValues>12</UniqueValues>
|
||||||
<HasColumns>false</HasColumns>
|
<HasColumns>false</HasColumns>
|
||||||
<Columns>
|
<Columns>
|
||||||
<DbDfnIndexColumn>
|
<DbDfnIndexColumn>
|
||||||
@@ -2637,7 +2637,24 @@
|
|||||||
<Schema>dbo</Schema>
|
<Schema>dbo</Schema>
|
||||||
<Table>OrganisationEvent</Table>
|
<Table>OrganisationEvent</Table>
|
||||||
<Pos>7</Pos>
|
<Pos>7</Pos>
|
||||||
<Name>About</Name>
|
<Name>Summary</Name>
|
||||||
|
<DataType>VarChar</DataType>
|
||||||
|
<DataTypeName />
|
||||||
|
<DataTypeNative>-9</DataTypeNative>
|
||||||
|
<DataTypeNameNative>nvarchar</DataTypeNameNative>
|
||||||
|
<IsIdentity>false</IsIdentity>
|
||||||
|
<Size>200</Size>
|
||||||
|
<BufferLen>400</BufferLen>
|
||||||
|
<DecimalDigits>0</DecimalDigits>
|
||||||
|
<Nullable>NoNulls</Nullable>
|
||||||
|
<IsNullable>false</IsNullable>
|
||||||
|
<Remarks />
|
||||||
|
</DbDfnColumn>
|
||||||
|
<DbDfnColumn>
|
||||||
|
<Schema>dbo</Schema>
|
||||||
|
<Table>OrganisationEvent</Table>
|
||||||
|
<Pos>8</Pos>
|
||||||
|
<Name>Details</Name>
|
||||||
<DataType>VarChar</DataType>
|
<DataType>VarChar</DataType>
|
||||||
<DataTypeName />
|
<DataTypeName />
|
||||||
<DataTypeNative>-9</DataTypeNative>
|
<DataTypeNative>-9</DataTypeNative>
|
||||||
@@ -2653,7 +2670,7 @@
|
|||||||
<DbDfnColumn>
|
<DbDfnColumn>
|
||||||
<Schema>dbo</Schema>
|
<Schema>dbo</Schema>
|
||||||
<Table>OrganisationEvent</Table>
|
<Table>OrganisationEvent</Table>
|
||||||
<Pos>8</Pos>
|
<Pos>9</Pos>
|
||||||
<Name>EventData</Name>
|
<Name>EventData</Name>
|
||||||
<DataType>VarChar</DataType>
|
<DataType>VarChar</DataType>
|
||||||
<DataTypeName />
|
<DataTypeName />
|
||||||
@@ -2670,7 +2687,7 @@
|
|||||||
<DbDfnColumn>
|
<DbDfnColumn>
|
||||||
<Schema>dbo</Schema>
|
<Schema>dbo</Schema>
|
||||||
<Table>OrganisationEvent</Table>
|
<Table>OrganisationEvent</Table>
|
||||||
<Pos>9</Pos>
|
<Pos>10</Pos>
|
||||||
<Name>PublishedAt</Name>
|
<Name>PublishedAt</Name>
|
||||||
<DataType>DateTime</DataType>
|
<DataType>DateTime</DataType>
|
||||||
<DataTypeName />
|
<DataTypeName />
|
||||||
@@ -2687,7 +2704,7 @@
|
|||||||
<DbDfnColumn>
|
<DbDfnColumn>
|
||||||
<Schema>dbo</Schema>
|
<Schema>dbo</Schema>
|
||||||
<Table>OrganisationEvent</Table>
|
<Table>OrganisationEvent</Table>
|
||||||
<Pos>10</Pos>
|
<Pos>11</Pos>
|
||||||
<Name>ExpiresAt</Name>
|
<Name>ExpiresAt</Name>
|
||||||
<DataType>DateTime</DataType>
|
<DataType>DateTime</DataType>
|
||||||
<DataTypeName />
|
<DataTypeName />
|
||||||
@@ -2704,7 +2721,7 @@
|
|||||||
<DbDfnColumn>
|
<DbDfnColumn>
|
||||||
<Schema>dbo</Schema>
|
<Schema>dbo</Schema>
|
||||||
<Table>OrganisationEvent</Table>
|
<Table>OrganisationEvent</Table>
|
||||||
<Pos>11</Pos>
|
<Pos>12</Pos>
|
||||||
<Name>Notes</Name>
|
<Name>Notes</Name>
|
||||||
<DataType>VarChar</DataType>
|
<DataType>VarChar</DataType>
|
||||||
<DataTypeName />
|
<DataTypeName />
|
||||||
@@ -2721,7 +2738,7 @@
|
|||||||
<DbDfnColumn>
|
<DbDfnColumn>
|
||||||
<Schema>dbo</Schema>
|
<Schema>dbo</Schema>
|
||||||
<Table>OrganisationEvent</Table>
|
<Table>OrganisationEvent</Table>
|
||||||
<Pos>12</Pos>
|
<Pos>13</Pos>
|
||||||
<Name>Flags</Name>
|
<Name>Flags</Name>
|
||||||
<DataType>SmallInt</DataType>
|
<DataType>SmallInt</DataType>
|
||||||
<DataTypeName />
|
<DataTypeName />
|
||||||
@@ -2738,7 +2755,7 @@
|
|||||||
<DbDfnColumn>
|
<DbDfnColumn>
|
||||||
<Schema>dbo</Schema>
|
<Schema>dbo</Schema>
|
||||||
<Table>OrganisationEvent</Table>
|
<Table>OrganisationEvent</Table>
|
||||||
<Pos>13</Pos>
|
<Pos>14</Pos>
|
||||||
<Name>Status</Name>
|
<Name>Status</Name>
|
||||||
<DataType>VarChar</DataType>
|
<DataType>VarChar</DataType>
|
||||||
<DataTypeName />
|
<DataTypeName />
|
||||||
@@ -2755,7 +2772,7 @@
|
|||||||
<DbDfnColumn>
|
<DbDfnColumn>
|
||||||
<Schema>dbo</Schema>
|
<Schema>dbo</Schema>
|
||||||
<Table>OrganisationEvent</Table>
|
<Table>OrganisationEvent</Table>
|
||||||
<Pos>14</Pos>
|
<Pos>15</Pos>
|
||||||
<Name>CreateOn</Name>
|
<Name>CreateOn</Name>
|
||||||
<DataType>DateTime</DataType>
|
<DataType>DateTime</DataType>
|
||||||
<DataTypeName />
|
<DataTypeName />
|
||||||
@@ -2772,7 +2789,7 @@
|
|||||||
<DbDfnColumn>
|
<DbDfnColumn>
|
||||||
<Schema>dbo</Schema>
|
<Schema>dbo</Schema>
|
||||||
<Table>OrganisationEvent</Table>
|
<Table>OrganisationEvent</Table>
|
||||||
<Pos>15</Pos>
|
<Pos>16</Pos>
|
||||||
<Name>CreateBy</Name>
|
<Name>CreateBy</Name>
|
||||||
<DataType>Int</DataType>
|
<DataType>Int</DataType>
|
||||||
<DataTypeName />
|
<DataTypeName />
|
||||||
@@ -2789,7 +2806,7 @@
|
|||||||
<DbDfnColumn>
|
<DbDfnColumn>
|
||||||
<Schema>dbo</Schema>
|
<Schema>dbo</Schema>
|
||||||
<Table>OrganisationEvent</Table>
|
<Table>OrganisationEvent</Table>
|
||||||
<Pos>16</Pos>
|
<Pos>17</Pos>
|
||||||
<Name>CreateHost</Name>
|
<Name>CreateHost</Name>
|
||||||
<DataType>VarChar</DataType>
|
<DataType>VarChar</DataType>
|
||||||
<DataTypeName />
|
<DataTypeName />
|
||||||
@@ -2806,7 +2823,7 @@
|
|||||||
<DbDfnColumn>
|
<DbDfnColumn>
|
||||||
<Schema>dbo</Schema>
|
<Schema>dbo</Schema>
|
||||||
<Table>OrganisationEvent</Table>
|
<Table>OrganisationEvent</Table>
|
||||||
<Pos>17</Pos>
|
<Pos>18</Pos>
|
||||||
<Name>UpdateOn</Name>
|
<Name>UpdateOn</Name>
|
||||||
<DataType>DateTime</DataType>
|
<DataType>DateTime</DataType>
|
||||||
<DataTypeName />
|
<DataTypeName />
|
||||||
@@ -2823,7 +2840,7 @@
|
|||||||
<DbDfnColumn>
|
<DbDfnColumn>
|
||||||
<Schema>dbo</Schema>
|
<Schema>dbo</Schema>
|
||||||
<Table>OrganisationEvent</Table>
|
<Table>OrganisationEvent</Table>
|
||||||
<Pos>18</Pos>
|
<Pos>19</Pos>
|
||||||
<Name>UpdateBy</Name>
|
<Name>UpdateBy</Name>
|
||||||
<DataType>Int</DataType>
|
<DataType>Int</DataType>
|
||||||
<DataTypeName />
|
<DataTypeName />
|
||||||
@@ -2840,7 +2857,7 @@
|
|||||||
<DbDfnColumn>
|
<DbDfnColumn>
|
||||||
<Schema>dbo</Schema>
|
<Schema>dbo</Schema>
|
||||||
<Table>OrganisationEvent</Table>
|
<Table>OrganisationEvent</Table>
|
||||||
<Pos>19</Pos>
|
<Pos>20</Pos>
|
||||||
<Name>UpdateHost</Name>
|
<Name>UpdateHost</Name>
|
||||||
<DataType>VarChar</DataType>
|
<DataType>VarChar</DataType>
|
||||||
<DataTypeName />
|
<DataTypeName />
|
||||||
@@ -2865,8 +2882,8 @@
|
|||||||
<Primary>false</Primary>
|
<Primary>false</Primary>
|
||||||
<Clustered>false</Clustered>
|
<Clustered>false</Clustered>
|
||||||
<Nullable>false</Nullable>
|
<Nullable>false</Nullable>
|
||||||
<Pages>0</Pages>
|
<Pages>1</Pages>
|
||||||
<UniqueValues>0</UniqueValues>
|
<UniqueValues>1</UniqueValues>
|
||||||
<HasColumns>false</HasColumns>
|
<HasColumns>false</HasColumns>
|
||||||
<Columns>
|
<Columns>
|
||||||
<DbDfnIndexColumn>
|
<DbDfnIndexColumn>
|
||||||
@@ -3278,7 +3295,7 @@
|
|||||||
<Clustered>false</Clustered>
|
<Clustered>false</Clustered>
|
||||||
<Nullable>false</Nullable>
|
<Nullable>false</Nullable>
|
||||||
<Pages>1</Pages>
|
<Pages>1</Pages>
|
||||||
<UniqueValues>5</UniqueValues>
|
<UniqueValues>6</UniqueValues>
|
||||||
<HasColumns>false</HasColumns>
|
<HasColumns>false</HasColumns>
|
||||||
<Columns>
|
<Columns>
|
||||||
<DbDfnIndexColumn>
|
<DbDfnIndexColumn>
|
||||||
@@ -4988,7 +5005,7 @@
|
|||||||
<Clustered>false</Clustered>
|
<Clustered>false</Clustered>
|
||||||
<Nullable>false</Nullable>
|
<Nullable>false</Nullable>
|
||||||
<Pages>1</Pages>
|
<Pages>1</Pages>
|
||||||
<UniqueValues>18</UniqueValues>
|
<UniqueValues>19</UniqueValues>
|
||||||
<HasColumns>false</HasColumns>
|
<HasColumns>false</HasColumns>
|
||||||
<Columns>
|
<Columns>
|
||||||
<DbDfnIndexColumn>
|
<DbDfnIndexColumn>
|
||||||
|
|||||||
Reference in New Issue
Block a user