1.2.11.9 Golf Countries & Provinces

This commit is contained in:
2024-06-17 18:16:02 +01:00
parent dedea84691
commit 1c77a2b2e9
43 changed files with 2256 additions and 182 deletions
@@ -7,7 +7,7 @@ using Saxonite.Net.Standard.Base.App;
using Saxonite.Net.Standard.Base.Helpers;
using System;
namespace Saxonite.Net.Core.Web.Admin.Controllers
namespace Saxonite.Net.Core.Web.Admin.Controllers.Reference
{
//=======================================================================
// Admin Reference Controller - Contact Method Ajax actions only.
@@ -12,7 +12,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Saxonite.Net.Core.Web.Admin.Controllers
namespace Saxonite.Net.Core.Web.Admin.Controllers.Reference
{
//=======================================================================
// Admin Reference Controller - Ajax actions only.
@@ -13,7 +13,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Saxonite.Net.Core.Web.Admin.Controllers
namespace Saxonite.Net.Core.Web.Admin.Controllers.Reference
{
//=======================================================================
// Reference Golf Controller - Ajax requests.
@@ -21,33 +21,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
partial class ReferenceGolfController
{
//-------------------------------------------------------------------
// USGA Country data.
private class UsgaCountryListData : AjaxResponse_Data.ItemData_Base
{
public String Code { get; set; }
public String Name { get; set; }
public bool? PriorityProvincePopulate { get; set; }
public long? ProvinceCount { get; set; }
public long? ProvinceCountActive { get; set; }
}
private class UsgaCountryItemData : UsgaCountryListData
{
}
private void PopulateUsgaCountryResponseListData(SaxGolfUsgaCountry province, UsgaCountryListData data)
{
data.Id = SysId.ToString(province.Id);
data.Code = province.CountryCode;
data.Name = province.CountryName;
data.StatusCode = province.StatusCode;
data.StatusDesc = province.StatusDesc;
}
private void PopulateUsgaCountryResponseItemData(SaxGolfUsgaCountry province, UsgaCountryItemData data)
{
PopulateUsgaCountryResponseListData(province, data);
}
//-------------------------------------------------------------------
// Get ReferenceGolf List ajax request.
// Get Stats ajax request.
//-------------------------------------------------------------------
private class AjaxResponse_ReferenceGolfStats : AjaxResponse_Data
{
@@ -329,82 +303,6 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
return group;
}
//-------------------------------------------------------------------
// Get ReferenceGolf List ajax request.
//-------------------------------------------------------------------
private class AjaxResponse_ReferenceGolfList : AjaxResponse_Data
{
// Construction.
public AjaxResponse_ReferenceGolfList(SaxModel_Admin model) : base(model) { }
// Country list.
public List<UsgaCountryListData> Countries { get; } = new List<UsgaCountryListData>();
}
//-------------------------------------------------------------------
[HttpPost]
[Route("Reference/Golf/Ajax/GetUsgaCountryList")]
[Route("Reference/Golf/Ajax/GetUsgaCountryies")]
public IActionResult Ajax_GetUsgaCountryList(Model_ReferenceGolf model)
{
String fn = GetType().Name + ".Ajax_GetUsgaCountryList";
String messageTitle = Localiser["caption.reference.golf"];
AjaxResponse_ReferenceGolfList responseData = new AjaxResponse_ReferenceGolfList(model);
// Validate session.
if (!ValidUserSession)
return GetAjaxResult_InvalidSession(responseData);
// Item filter.
SaxGolfUsgaCountry.Params prmUsgaCountry = new SaxGolfUsgaCountry.Params();
prmUsgaCountry.StatusCat = SaxGolfUsgaCountry.StatusCat.Any;
model.Paging.ItemTotal = (ulong)ReferenceGolfMgr.GetUsgaCountryCount(prmUsgaCountry);
model.PopulatePagingTo(prmUsgaCountry.ResultsPaging);
// Item columns.
ColumnDfn colId = ReferenceGolfMgr.GetUsgaCountryColumnDfn(SaxGolfUsgaCountry.Column.Id);
ColumnDfn colCode = ReferenceGolfMgr.GetUsgaCountryColumnDfn(SaxGolfUsgaCountry.Column.CountryCode);
ColumnDfn colName = ReferenceGolfMgr.GetUsgaCountryColumnDfn(SaxGolfUsgaCountry.Column.CountryName);
ColumnDfn colProvinceCount_All = ReferenceGolfMgr.GetUsgaCountryColumnDfn(SaxGolfUsgaCountry.Column.ProvinceCount_All);
ColumnDfn colProvinceCount_Active = ReferenceGolfMgr.GetUsgaCountryColumnDfn(SaxGolfUsgaCountry.Column.ProvinceCount_Active);
ColumnDfn colFlags = ReferenceGolfMgr.GetUsgaCountryColumnDfn(SaxGolfUsgaCountry.Column.Flags);
ColumnDfn colStatus = ReferenceGolfMgr.GetUsgaCountryColumnDfn(SaxGolfUsgaCountry.Column.Status);
List<ColumnDfn> columns = new List<ColumnDfn>()
{
colId, colCode, colName, colProvinceCount_All, colProvinceCount_Active, colFlags, colStatus
};
// Sort order.
prmUsgaCountry.SortColumns.Add(colName);
// Query items.
using (DbResultSet resultSet = ReferenceGolfMgr.ExecuteUsgaCountryQuery(columns, prmUsgaCountry))
{
while (resultSet != null && resultSet.HasRows && resultSet.NextRecord())
{
NamedValue.Map values = resultSet.GetRecordValues();
ushort flags = (ushort)values.GetLong(colFlags.DataName);
UsgaCountryListData provinceData = new UsgaCountryListData()
{
Id = values.GetString(colId.DataName),
Code = values.GetString(colName.DataName),
Name = values.GetString(colName.DataName),
ProvinceCount = values.GetLong(colProvinceCount_All.DataName),
ProvinceCountActive = values.GetLong(colProvinceCount_Active.DataName),
PriorityProvincePopulate = SacsHierarchyItem.GetFlag(flags, SaxGolfUsgaCountry.Flag_Priority),
StatusCode = values.GetString(colStatus.DataName),
StatusDesc = SacsSystem.GetStatusDescForCode(values.GetString(colStatus.DataName))
};
responseData.Countries.Add(provinceData);
}
}
if (model.Paging.IsPaged)
model.Paging.ItemCount = (ushort)responseData.Countries.Count;
// Complete response.
responseData.SetPaging(model);
responseData.Success = true;
return Json(responseData);
}
//-------------------------------------------------------------------
}
//=======================================================================
@@ -0,0 +1,250 @@
using Microsoft.AspNetCore.Mvc;
using Sarand.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.Utils;
using Saxonite.Net.Core.Web.Admin.Models;
using Saxonite.Net.Standard.Base.App;
using Saxonite.Net.Standard.Base.Bus;
using Saxonite.Net.Standard.Base.Bus.Reference;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Saxonite.Net.Core.Web.Admin.Controllers.Reference
{
//=======================================================================
// Reference Golf Controller - Ajax requests.
//=======================================================================
partial class ReferenceGolfController
{
//-------------------------------------------------------------------
// USGA Country data.
private class UsgaCountryListData : AjaxResponse_Data.ItemData_Base
{
public String Code { get; set; }
public String Name { get; set; }
public bool? PriorityProvincePopulate { get; set; }
public long? ProvinceCount { get; set; }
public long? ProvinceCountActive { get; set; }
public long? FacilityCount { get; set; }
public long? FacilityCountActive { get; set; }
}
private class UsgaCountryItemData : UsgaCountryListData
{
}
private void PopulateUsgaCountryResponseListData(SaxGolfUsgaCountry country, UsgaCountryListData data)
{
data.Id = SysId.ToString(country.Id);
data.Code = country.CountryCode;
data.Name = country.CountryName;
data.StatusCode = country.StatusCode;
data.StatusDesc = country.StatusDesc;
}
private void PopulateUsgaCountryResponseItemData(SaxGolfUsgaCountry country, UsgaCountryItemData data)
{
PopulateUsgaCountryResponseListData(country, data);
}
//-------------------------------------------------------------------
// USGA Province data.
private class UsgaProvinceListData : AjaxResponse_Data.ItemData_Base
{
public String Code { get; set; }
public String Name { get; set; }
public bool? PriorityProvincePopulate { get; set; }
public long? FacilityCount { get; set; }
public long? FacilityCountActive { get; set; }
public long? CourseCount { get; set; }
public long? CourseCountActive { get; set; }
}
private class UsgaProvinceItemData : UsgaProvinceListData
{
}
private void PopulateUsgaProvinceResponseListData(SaxGolfUsgaProvince province, UsgaProvinceListData data)
{
data.Id = SysId.ToString(province.Id);
data.Code = province.ProvinceCode;
data.Name = province.ProvinceName;
data.StatusCode = province.StatusCode;
data.StatusDesc = province.StatusDesc;
}
private void PopulateUsgaProvinceResponseItemData(SaxGolfUsgaProvince province, UsgaProvinceItemData data)
{
PopulateUsgaProvinceResponseListData(province, data);
}
//-------------------------------------------------------------------
// Get Country List ajax request.
//-------------------------------------------------------------------
private class AjaxResponse_ReferenceGolf_CountryList : AjaxResponse_Data
{
// Construction.
public AjaxResponse_ReferenceGolf_CountryList(SaxModel_Admin model) : base(model) { }
// Country list.
public List<UsgaCountryListData> Countries { get; } = new List<UsgaCountryListData>();
}
//-------------------------------------------------------------------
[HttpPost]
[Route("Reference/Golf/Ajax/GetUsgaCountryList")]
[Route("Reference/Golf/Ajax/GetUsgaCountries")]
[Route("Reference/Golf/Ajax/GetCountryList")]
[Route("Reference/Golf/Ajax/GetCountries")]
public IActionResult Ajax_GetCountryList(Model_ReferenceGolf model)
{
String fn = GetType().Name + ".Ajax_GetCountryList";
String messageTitle = Localiser["caption.reference.golf"];
AjaxResponse_ReferenceGolf_CountryList responseData = new AjaxResponse_ReferenceGolf_CountryList(model);
// Validate session.
if (!ValidUserSession)
return GetAjaxResult_InvalidSession(responseData);
// Item columns.
ColumnDfn colId = ReferenceGolfMgr.GetUsgaCountryColumnDfn(SaxGolfUsgaCountry.Column.Id);
ColumnDfn colCode = ReferenceGolfMgr.GetUsgaCountryColumnDfn(SaxGolfUsgaCountry.Column.CountryCode);
ColumnDfn colName = ReferenceGolfMgr.GetUsgaCountryColumnDfn(SaxGolfUsgaCountry.Column.CountryName);
ColumnDfn colProvinceCount_All = ReferenceGolfMgr.GetUsgaCountryColumnDfn(SaxGolfUsgaCountry.Column.ProvinceCount_All);
ColumnDfn colProvinceCount_Active = ReferenceGolfMgr.GetUsgaCountryColumnDfn(SaxGolfUsgaCountry.Column.ProvinceCount_Active);
ColumnDfn colFacilityCount_All = ReferenceGolfMgr.GetUsgaCountryColumnDfn(SaxGolfUsgaCountry.Column.FacilityCount_All);
ColumnDfn colFacilityCount_Active = ReferenceGolfMgr.GetUsgaCountryColumnDfn(SaxGolfUsgaCountry.Column.FacilityCount_Active);
ColumnDfn colFlags = ReferenceGolfMgr.GetUsgaCountryColumnDfn(SaxGolfUsgaCountry.Column.Flags);
ColumnDfn colStatus = ReferenceGolfMgr.GetUsgaCountryColumnDfn(SaxGolfUsgaCountry.Column.Status);
List<ColumnDfn> columns = new List<ColumnDfn>()
{
colId, colCode, colName, colProvinceCount_All, colProvinceCount_Active, colFacilityCount_All, colFacilityCount_Active, colFlags, colStatus
};
// Item filter.
SaxGolfUsgaCountry.Params prmUsgaCountry = new SaxGolfUsgaCountry.Params();
prmUsgaCountry.CountryFilter = model.Filter.CountrySearch;
prmUsgaCountry.StatusCat = SaxGolfUsgaCountry.StatusCat.Any;
model.Paging.ItemTotal = (ulong)ReferenceGolfMgr.GetUsgaCountryCount(prmUsgaCountry);
model.PopulatePagingTo(prmUsgaCountry.ResultsPaging);
// Sort order.
prmUsgaCountry.SortColumns.Add(colName);
// Query items.
using (DbResultSet resultSet = ReferenceGolfMgr.ExecuteUsgaCountryQuery(columns, prmUsgaCountry))
{
while (resultSet != null && resultSet.HasRows && resultSet.NextRecord())
{
NamedValue.Map values = resultSet.GetRecordValues();
ushort flags = (ushort)values.GetLong(colFlags.DataName);
UsgaCountryListData provinceData = new UsgaCountryListData()
{
Id = values.GetString(colId.DataName),
Code = values.GetString(colCode.DataName),
Name = values.GetString(colName.DataName),
PriorityProvincePopulate = SacsHierarchyItem.GetFlag(flags, SaxGolfUsgaCountry.Flag_Priority),
ProvinceCount = values.GetLong(colProvinceCount_All.DataName),
ProvinceCountActive = values.GetLong(colProvinceCount_Active.DataName),
FacilityCount = values.GetLong(colFacilityCount_All.DataName),
FacilityCountActive = values.GetLong(colFacilityCount_Active.DataName),
StatusCode = values.GetString(colStatus.DataName),
StatusDesc = SacsSystem.GetStatusDescForCode(values.GetString(colStatus.DataName))
};
responseData.Countries.Add(provinceData);
}
}
if (model.Paging.IsPaged)
model.Paging.ItemCount = (ushort)responseData.Countries.Count;
// Complete response.
responseData.SetPaging(model);
responseData.Success = true;
return Json(responseData);
}
//-------------------------------------------------------------------
// Get Province List ajax request.
//-------------------------------------------------------------------
private class AjaxResponse_ReferenceGolf_ProvinceList : AjaxResponse_Data
{
// Construction.
public AjaxResponse_ReferenceGolf_ProvinceList(SaxModel_Admin model) : base(model) { }
// Province list.
public List<UsgaProvinceListData> Provinces { get; } = new List<UsgaProvinceListData>();
}
//-------------------------------------------------------------------
[HttpPost]
[Route("Reference/Golf/Ajax/GetUsgaProvinceList")]
[Route("Reference/Golf/Ajax/GetUsgaProvinces")]
[Route("Reference/Golf/Ajax/GetProvinceList")]
[Route("Reference/Golf/Ajax/GetProvinces")]
public IActionResult Ajax_GetProvinceList(Model_ReferenceGolf model)
{
String fn = GetType().Name + ".Ajax_GetProvinceList";
String messageTitle = Localiser["caption.reference.golf"];
AjaxResponse_ReferenceGolf_ProvinceList responseData = new AjaxResponse_ReferenceGolf_ProvinceList(model);
// Validate session.
if (!ValidUserSession)
return GetAjaxResult_InvalidSession(responseData);
// Item columns.
ColumnDfn colId = ReferenceGolfMgr.GetUsgaProvinceColumnDfn(SaxGolfUsgaProvince.Column.Id);
ColumnDfn colCode = ReferenceGolfMgr.GetUsgaProvinceColumnDfn(SaxGolfUsgaProvince.Column.ProvinceCode);
ColumnDfn colName = ReferenceGolfMgr.GetUsgaProvinceColumnDfn(SaxGolfUsgaProvince.Column.ProvinceName);
ColumnDfn colFacilityCount_All = ReferenceGolfMgr.GetUsgaProvinceColumnDfn(SaxGolfUsgaProvince.Column.FacilityCount_All);
ColumnDfn colFacilityCount_Active = ReferenceGolfMgr.GetUsgaProvinceColumnDfn(SaxGolfUsgaProvince.Column.FacilityCount_Active);
ColumnDfn colCourseCount_All = ReferenceGolfMgr.GetUsgaProvinceColumnDfn(SaxGolfUsgaProvince.Column.CourseCount_All);
ColumnDfn colCourseCount_Active = ReferenceGolfMgr.GetUsgaProvinceColumnDfn(SaxGolfUsgaProvince.Column.CourseCount_Active);
ColumnDfn colFlags = ReferenceGolfMgr.GetUsgaProvinceColumnDfn(SaxGolfUsgaProvince.Column.Flags);
ColumnDfn colStatus = ReferenceGolfMgr.GetUsgaProvinceColumnDfn(SaxGolfUsgaProvince.Column.Status);
List<ColumnDfn> columns = new List<ColumnDfn>()
{
colId, colCode, colName, colFacilityCount_All, colFacilityCount_Active, colCourseCount_All, colCourseCount_Active, colFlags, colStatus
};
// Item filter.
SaxGolfUsgaProvince.Params prmUsgaProvince = new SaxGolfUsgaProvince.Params();
if (StringUtil.ToLong(model.Filter.CountryId) > 0)
prmUsgaProvince.CountryIdsIncluded.Add(StringUtil.ToSysId(model.Filter.CountryId));
prmUsgaProvince.ProvinceFilter = model.Filter.ProvinceSearch;
prmUsgaProvince.StatusCat = SaxGolfUsgaProvince.StatusCat.Any;
model.Paging.ItemTotal = (ulong)ReferenceGolfMgr.GetUsgaProvinceCount(prmUsgaProvince);
model.PopulatePagingTo(prmUsgaProvince.ResultsPaging);
// Sort order.
prmUsgaProvince.SortColumns.Add(colCode);
// Query items.
using (DbResultSet resultSet = ReferenceGolfMgr.ExecuteUsgaProvinceQuery(columns, prmUsgaProvince))
{
while (resultSet != null && resultSet.HasRows && resultSet.NextRecord())
{
NamedValue.Map values = resultSet.GetRecordValues();
ushort flags = (ushort)values.GetLong(colFlags.DataName);
UsgaProvinceListData provinceData = new UsgaProvinceListData()
{
Id = values.GetString(colId.DataName),
Code = values.GetString(colCode.DataName),
Name = values.GetString(colName.DataName),
PriorityProvincePopulate = SacsHierarchyItem.GetFlag(flags, SaxGolfUsgaProvince.Flag_Priority),
FacilityCount = values.GetLong(colFacilityCount_All.DataName),
FacilityCountActive = values.GetLong(colFacilityCount_Active.DataName),
CourseCount = values.GetLong(colCourseCount_All.DataName),
CourseCountActive = values.GetLong(colCourseCount_Active.DataName),
StatusCode = values.GetString(colStatus.DataName),
StatusDesc = SacsSystem.GetStatusDescForCode(values.GetString(colStatus.DataName))
};
responseData.Provinces.Add(provinceData);
}
}
if (model.Paging.IsPaged)
model.Paging.ItemCount = (ushort)responseData.Provinces.Count;
// Complete response.
responseData.SetPaging(model);
responseData.Success = true;
return Json(responseData);
}
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -9,7 +9,7 @@ using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
namespace Saxonite.Net.Core.Web.Admin.Controllers
namespace Saxonite.Net.Core.Web.Admin.Controllers.Reference
{
//=======================================================================
public partial class ReferenceGolfController : SaxController_Admin
@@ -18,7 +18,7 @@ using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
namespace Saxonite.Net.Core.Web.Admin.Controllers
namespace Saxonite.Net.Core.Web.Admin.Controllers.System
{
//=======================================================================
// System - Ajax - Database controller
@@ -4,6 +4,7 @@ using Sarand.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Dbas;
using Sarand.Net.Standard.Base.IO;
using Sarand.Net.Standard.Base.Utils;
using Saxonite.Net.Core.Web.Admin.Models;
using Saxonite.Net.Standard.Base.App;
@@ -15,7 +16,7 @@ using System.Linq;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace Saxonite.Net.Core.Web.Admin.Controllers
namespace Saxonite.Net.Core.Web.Admin.Controllers.System
{
//=======================================================================
// System - Ajax - Database controller
@@ -256,7 +257,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
responseData.File.Name = Path.GetFileName(responseData.File.Path);
try
{
String[] fileLines = System.IO.File.ReadAllLines(responseData.File.Path);
String[] fileLines = FileUtil.ReadAllFileLines(responseData.File.Path);
responseData.File.Data = String.Join("\n", fileLines);
// Construct html data.
foreach (var fileLine in fileLines)
@@ -14,7 +14,7 @@ using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
namespace Saxonite.Net.Core.Web.Admin.Controllers
namespace Saxonite.Net.Core.Web.Admin.Controllers.System
{
//=======================================================================
public partial class SystemController : SaxController_Admin
@@ -30,6 +30,12 @@ namespace Saxonite.Net.Core.Web.Admin.Models
// Reference Golf list parameters.
public class FilterData
{
public String CountrySearch { get; set; }
public String CountryId { get; set; }
public String ProvinceSearch { get; set; }
public String ProvinceId { get; set; }
public String CourseSearch{ get; set; }
public String CourseId { get; set; }
}
public FilterData Filter { get; } = new FilterData();
@@ -270,6 +270,12 @@
<data name="label.close" xml:space="preserve">
<value>Close</value>
</data>
<data name="label.clubs" xml:space="preserve">
<value>Clubs</value>
</data>
<data name="label.code" xml:space="preserve">
<value>Code</value>
</data>
<data name="label.column" xml:space="preserve">
<value>Column</value>
</data>
@@ -282,12 +288,18 @@
<data name="label.core" xml:space="preserve">
<value>Core</value>
</data>
<data name="label.countries" xml:space="preserve">
<value>Countries</value>
</data>
<data name="label.country" xml:space="preserve">
<value>Country</value>
</data>
<data name="label.county" xml:space="preserve">
<value>County</value>
</data>
<data name="label.courses" xml:space="preserve">
<value>Courses</value>
</data>
<data name="label.create" xml:space="preserve">
<value>Create</value>
</data>
@@ -393,6 +405,9 @@
<data name="label.logs" xml:space="preserve">
<value>Logs</value>
</data>
<data name="label.markers" xml:space="preserve">
<value>Markers</value>
</data>
<data name="label.members" xml:space="preserve">
<value>Members</value>
</data>
@@ -471,9 +486,15 @@
<data name="label.previous" xml:space="preserve">
<value>Previous</value>
</data>
<data name="label.priority" xml:space="preserve">
<value>Priority</value>
</data>
<data name="label.province" xml:space="preserve">
<value>Province</value>
</data>
<data name="label.provinces" xml:space="preserve">
<value>Provinces</value>
</data>
<data name="label.reference" xml:space="preserve">
<value>Reference</value>
</data>
@@ -33,6 +33,12 @@
<div class="sax-content">
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmRefGolfFilter", @class = "sax-form", @onSubmit = "return false;" }))
{
@Html.HiddenFor(model => model.Filter.CountrySearch, new { @class = "FilterCountrySearch" })
@Html.HiddenFor(model => model.Filter.CountryId, new { @class = "FilterCountryId" })
@Html.HiddenFor(model => model.Filter.ProvinceSearch, new { @class = "FilterProvinceSearch" })
@Html.HiddenFor(model => model.Filter.ProvinceId, new { @class = "FilterProvinceId" })
@Html.HiddenFor(model => model.Filter.CourseSearch, new { @class = "FilterCourseSearch" })
@Html.HiddenFor(model => model.Filter.CourseId, new { @class = "FilterCourseId" })
<div class="row">
<div class="col-sm-5 col-md-3 sax-label text-left text-sm-right">@Localiser["label.options"]</div>
<div class="col-sm-7 col-md-3 mb-sm-1 mb-md-0">
@@ -68,28 +74,112 @@
</div>
</div>
<div class="sax-panel-results">
<div class="sax-panel-results">
<div class="sax-panel-messages"></div>
<div class="sax-panel-item-list"></div>
<div class="sax-panel-item-template">
<div class="sax-panel-item GolfCountry">
<div class="sax-header row">
<div class="col">
<div class="sax-caption"><div class="sax-action CountryName"></div></div>
</div>
<div class="fixed sax-actions">
</div>
</div>
<div class="sax-content">
<div class="row">
<div class="col-sm-6"><span class="Flags"></span></div>
<div class="col-sm-6 right"><span class="Status"></span></div>
</div>
@* Reference - Golf - Countries *@
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmCountries", @class = "sax-form", @onSubmit = "return false;" }))
{
<div class="sax-panel-info sax-panel-results Countries">
<div class="sax-header">
<div class="row">
<div class="col left">
<span class="sax-label">@Localiser["label.search"]</span>
<span><input type="search" name="Filter.CountrySearch" class="FilterCountrySearch" maxlength="16" style="width:33%;" /></span>
</div>
<div class="fixed"><div class="sax-caption">@Localiser["label.countries"]</div></div>
<div class="col"></div>
</div>
</div>
<div class="sax-content" style="min-height:48px;max-height:240px;margin:0px;padding:0px;">
<div class="sax-panel-messages"></div>
<table class="sax-item-list">
<thead>
<tr>
<th class="center">@Localiser["label.code"]</th>
<th class="">@Localiser["label.name"]</th>
<th class="center">@Localiser["label.priority"]</th>
<th class="center">@Localiser["label.provinces"]</th>
<th class="center">@Localiser["label.clubs"]</th>
<th class="center">@Localiser["label.status"]</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
<table class="sax-panel-item-template">
<tr class="sax-item GolfCountry">
<td><div class="CountryCode center"></div></td>
<td><div class="CountryName"></div></td>
<td><div class="CountryPriority center"></div></td>
<td><div class="CountryProvinces center"></div></td>
<td><div class="CountryClubs center"></div></td>
<td><div class="CountryStatus center"></div></td>
</tr>
</table>
</div>
}
@* Reference - Golf - Provinces *@
@using (@Html.BeginForm(FormMethod.Post, new { @id = "frmProvinces", @class = "sax-form", @onSubmit = "return false;" }))
{
@Html.HiddenFor(Model => Model.Filter.CountryId, new { @class = "FilterCountryId" })
<div class="sax-panel-info Provinces">
<div class="sax-header">
<div class="row">
<div class="col left">
<span class="sax-label">@Localiser["label.search"]</span>
<span><input type="search" name="Filter.ProvinceSearch" class="FilterProvinceSearch" maxlength="16" style="width:33%;" /></span>
</div>
<div class="fixed"><div class="sax-caption">@Localiser["label.provinces"]</div></div>
<div class="col"></div>
</div>
</div>
<div class="sax-content" style="min-height:48px;max-height:240px;margin:0px;padding:0px;">
<div class="sax-panel-messages"></div>
<table class="sax-item-list">
<thead>
<tr>
<th class="center">@Localiser["label.code"]</th>
<th class="">@Localiser["label.name"]</th>
<th class="center">@Localiser["label.priority"]</th>
<th class="center">@Localiser["label.clubs"]</th>
<th class="center">@Localiser["label.courses"]</th>
<th class="center">@Localiser["label.status"]</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
<table class="sax-panel-item-template">
<tr class="sax-item GolfProvince">
<td><div class="ProvinceCode center"></div></td>
<td><div class="ProvinceName"></div></td>
<td><div class="ProvincePriority center"></div></td>
<td><div class="ProvinceClubs center"></div></td>
<td><div class="ProvinceCourses center"></div></td>
<td><div class="ProvinceStatus center"></div></td>
</tr>
</table>
</div>
}
@* Reference - Golf - Courses *@
<div class="sax-panel-info Courses">
<div class="sax-header">
<div class="sax-caption">@Localiser["label.courses"]</div>
</div>
</div>
@* Icons. *@
<div class="sax-panel-item-template">
<img src="~/img/icon/tick-64.png" alt="" title="" class="sax-tick" style="max-width:16px;" />
</div>
<div class="sax-panel-item-template">
<img src="~/img/icon/sphere-green.svg" alt="Active" title="Active" class="sax-status-atv" style="max-width:16px;" />
</div>
<div class="sax-panel-item-template">
<img src="~/img/icon/sphere-orange.svg" alt="Inactive" title="Inactive" class="sax-status-ina" style="max-width:16px;" />
</div>
<div class="sax-panel-item-template">
<img src="~/img/icon/sphere-purple.svg" alt="Deleted" title="Deleted" class="sax-status-del" style="max-width:16px;" />
</div>
</div>
@@ -170,6 +170,11 @@ select
text-transform: lowercase !important;
}
.left
{
text-align: left !important;
}
.center
{
text-align: center !important;
+51 -9
View File
@@ -77,7 +77,7 @@
{
min-width: 75%;
max-width: 90%;
width:90%;
width: 90%;
}
.sax-panel-filter .sax-content .sax-button
@@ -121,7 +121,7 @@
.sax-header ul.nav.sax-burger ul.sax-dropdown-menu
{
padding: 4px 8px 4px 4px;
border-radius:2px 2px 8px 4px;
border-radius: 2px 2px 8px 4px;
box-shadow: 0 0 8px 2px #80808080;
}
@@ -243,6 +243,13 @@
/* Data Items panel */
@media (min-width: 576px)
{
.sax-panel-results
{
}
}
.sax-panel-results
{
}
@@ -264,6 +271,48 @@
background-image: url("../img/icon/error-18.png");
}
/* Item List table */
.sax-item-list-table-prefix, .sax-item-list-table-suffix
{
width: 100%;
height: 12px;
}
table.sax-item-list
{
width: 100%;
border-spacing: 0;
border-collapse: collapse;
overflow: auto;
}
table.sax-item-list thead th
{
position: sticky;
top: 0;
padding:4px 2px 2px 2px;
z-index: 1;
background-color: #f8f8f8;
}
table.sax-item-list tbody th
{
position: sticky;
left: 0;
background-color: #f8f8f8;
}
table.sax-item-list tbody tr:hover
{
background-color: lightyellow;
}
table.sax-item-list tbody tr.sax-sel
{
background-color: palegreen;
}
/* Item */
.sax-panel-item-template
@@ -331,13 +380,6 @@
font-size: 0.8rem;
}
@media (min-width: 576px)
{
.sax-panel-filter
{
}
}
/* Item statuses */
.sax-status-awa
@@ -42,7 +42,7 @@
.sax-panel-info > .sax-header,
.sax-panel-form > .sax-header
{
padding: 12px 12px;
padding: 8px 12px;
text-align: center;
background-color: #e8e8e8;
border-bottom: solid 1px #606060;
@@ -122,7 +122,7 @@
.sax-panel-info .sax-label
{
padding-right: 16px;
padding-right: 12px;
font-weight: bold;
color: #808080;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.0"
width="128"
height="128"
id="svg2">
<defs
id="defs5">
<linearGradient
id="linearGradient2816">
<stop
style="stop-color:#0000a2;stop-opacity:1"
offset="0"
id="stop2818" />
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="1"
id="stop2820" />
</linearGradient>
<linearGradient
id="linearGradient2794">
<stop
style="stop-color:#545454;stop-opacity:1"
offset="0"
id="stop2796" />
<stop
style="stop-color:#545454;stop-opacity:1"
offset="0.9464286"
id="stop2804" />
<stop
style="stop-color:#c5c5c5;stop-opacity:0"
offset="1"
id="stop2798" />
</linearGradient>
<linearGradient
id="linearGradient2760">
<stop
style="stop-color:#0000ff;stop-opacity:1"
offset="0"
id="stop2762" />
<stop
style="stop-color:#0000a2;stop-opacity:1"
offset="0.61160713"
id="stop2768" />
<stop
style="stop-color:#6666ff;stop-opacity:1"
offset="1"
id="stop2764" />
</linearGradient>
<linearGradient
x1="6.9292336"
y1="121.07077"
x2="6.9292336"
y2="8.9609833"
id="linearGradient2766"
xlink:href="#linearGradient2760"
gradientUnits="userSpaceOnUse" />
<radialGradient
cx="62.984127"
cy="65.015877"
r="54.179893"
fx="62.984127"
fy="65.015877"
id="radialGradient2812"
xlink:href="#linearGradient2794"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="31.5"
y1="63"
x2="31.5"
y2="12"
id="linearGradient2822"
xlink:href="#linearGradient2816"
gradientUnits="userSpaceOnUse" />
</defs>
<path
d="M 117.16402,65.015877 C 117.16402,94.938606 92.906856,119.19577 62.984127,119.19577 C 33.061398,119.19577 8.8042336,94.938606 8.8042336,65.015877 C 8.8042336,35.093148 33.061398,10.835984 62.984127,10.835984 C 92.906856,10.835984 117.16402,35.093148 117.16402,65.015877 z "
transform="translate(5.724864,4.031744)"
style="opacity:1;fill:url(#radialGradient2812);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2790" />
<path
d="M 117.16402,65.015877 C 117.16402,94.938606 92.906856,119.19577 62.984127,119.19577 C 33.061398,119.19577 8.8042336,94.938606 8.8042336,65.015877 C 8.8042336,35.093148 33.061398,10.835984 62.984127,10.835984 C 92.906856,10.835984 117.16402,35.093148 117.16402,65.015877 z "
transform="translate(1.69312,0)"
style="opacity:1;fill:url(#linearGradient2766);fill-opacity:1;fill-rule:nonzero;stroke:#000074;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path1873" />
<path
d="M 95.5,37.5 C 95.5,51.583261 81.173112,63 63.5,63 C 45.826888,63 31.5,51.583261 31.5,37.5 C 31.5,23.416739 45.826888,12 63.5,12 C 81.173112,12 95.5,23.416739 95.5,37.5 z "
transform="translate(1,2)"
style="opacity:1;fill:url(#linearGradient2822);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2814" />
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

@@ -0,0 +1,254 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
width="128"
height="128"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="LGreen_sphere.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<metadata
id="metadata22">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
inkscape:window-height="667"
inkscape:window-width="644"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showgrid="false"
inkscape:zoom="4"
inkscape:cx="72.884938"
inkscape:cy="63.013466"
inkscape:window-x="112"
inkscape:window-y="53"
inkscape:current-layer="svg2" />
<defs
id="defs5">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 64 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="128 : 64 : 1"
inkscape:persp3d-origin="64 : 42.666667 : 1"
id="perspective24" />
<linearGradient
id="linearGradient2816">
<stop
style="stop-color:#074300;stop-opacity:1;"
offset="0"
id="stop2818" />
<stop
style="stop-color:#14e700;stop-opacity:1;"
offset="1"
id="stop2820" />
</linearGradient>
<linearGradient
id="linearGradient2794">
<stop
style="stop-color:#545454;stop-opacity:1"
offset="0"
id="stop2796" />
<stop
style="stop-color:#545454;stop-opacity:1"
offset="0.9464286"
id="stop2804" />
<stop
style="stop-color:#c5c5c5;stop-opacity:0"
offset="1"
id="stop2798" />
</linearGradient>
<linearGradient
id="linearGradient2760">
<stop
style="stop-color:#39e700;stop-opacity:1;"
offset="0"
id="stop2762" />
<stop
style="stop-color:#0e7a00;stop-opacity:1;"
offset="0.61160713"
id="stop2768" />
<stop
style="stop-color:#7ff900;stop-opacity:1;"
offset="1"
id="stop2764" />
</linearGradient>
<linearGradient
x1="6.9292336"
y1="121.07077"
x2="6.9292336"
y2="8.9609833"
id="linearGradient2766"
xlink:href="#linearGradient2760"
gradientUnits="userSpaceOnUse" />
<radialGradient
cx="62.984127"
cy="65.015877"
r="54.179893"
fx="62.984127"
fy="65.015877"
id="radialGradient2812"
xlink:href="#linearGradient2794"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="31.5"
y1="63"
x2="31.5"
y2="12"
id="linearGradient2822"
xlink:href="#linearGradient2816"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1,2)" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="551.71686"
x2="918"
y1="576.36218"
x1="86"
id="linearGradient3189"
xlink:href="#linearGradient3183"
inkscape:collect="always"
gradientTransform="translate(609.43276,-558.0177)" />
<inkscape:perspective
id="perspective10"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="6.1230318e-14 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
id="linearGradient3183"
inkscape:collect="always">
<stop
id="stop3185"
offset="0"
style="stop-color:#0000ff;stop-opacity:1;" />
<stop
id="stop3187"
offset="1"
style="stop-color:#0000ff;stop-opacity:0;" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3183"
id="linearGradient2469"
gradientUnits="userSpaceOnUse"
x1="86"
y1="576.36218"
x2="918"
y2="551.71686"
gradientTransform="translate(609.43276,-558.0177)" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="551.71686"
x2="918"
y1="576.36218"
x1="86"
id="linearGradient2523"
xlink:href="#linearGradient3183"
inkscape:collect="always" />
<inkscape:perspective
id="perspective2521"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="6.1230318e-14 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3183"
id="linearGradient2531"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1414.7443,-1009.6458)"
x1="86"
y1="576.36218"
x2="918"
y2="551.71686" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3183"
id="linearGradient2533"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1414.7443,-1009.6458)"
x1="86"
y1="576.36218"
x2="918"
y2="551.71686" />
</defs>
<path
d="M 117.16402,65.015877 C 117.16402,94.938606 92.906856,119.19577 62.984127,119.19577 C 33.061398,119.19577 8.8042336,94.938606 8.8042336,65.015877 C 8.8042336,35.093148 33.061398,10.835984 62.984127,10.835984 C 92.906856,10.835984 117.16402,35.093148 117.16402,65.015877 z "
style="opacity:1;fill:url(#radialGradient2812);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2790"
transform="translate(5.724864,4.031744)" />
<path
d="M 117.16402,65.015877 C 117.16402,94.938606 92.906856,119.19577 62.984127,119.19577 C 33.061398,119.19577 8.8042336,94.938606 8.8042336,65.015877 C 8.8042336,35.093148 33.061398,10.835984 62.984127,10.835984 C 92.906856,10.835984 117.16402,35.093148 117.16402,65.015877 z "
transform="translate(1.69312,0)"
style="opacity:1;fill:url(#linearGradient2766);fill-opacity:1;fill-rule:nonzero;stroke:#007717;stroke-width:3.75000000000000000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path1873" />
<path
d="M 96.5,39.5 C 96.5,53.583261 82.39697,65 65,65 C 47.60303,65 33.5,53.583261 33.5,39.5 C 33.5,25.416739 47.60303,14 65,14 C 82.39697,14 96.5,25.416739 96.5,39.5 z"
style="opacity:1;fill:url(#linearGradient2822);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2814" />
<g
id="layer1"
inkscape:label="Layer 1"
transform="translate(-609.43276,558.0177)">
<g
inkscape:corner7="-0.041115356 : -0.53396236 : 1077.6932 : 1"
inkscape:corner0="-94.01183 : 0.83577805 : 0 : 1"
inkscape:perspectiveID="#perspective10"
id="g2385"
style="opacity:1;fill:url(#linearGradient3189);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:type="inkscape:box3d">
<path
d="M 205.32583,-956.86944 L 134.34516,-956.81102 L 134.34516,-955.54115 L 205.32583,-955.47839 L 205.32583,-956.86944 z"
inkscape:box3dsidetype="11"
style="fill:url(#linearGradient2469);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
id="path2397"
sodipodi:type="inkscape:box3dside" />
</g>
</g>
<g
id="g2525"
inkscape:label="Layer 1"
transform="translate(-805.31155,451.62808)">
<g
inkscape:corner7="-0.041115356 : -0.53396236 : 1077.6932 : 1"
inkscape:corner0="-94.01183 : 0.83577805 : 0 : 1"
inkscape:perspectiveID="#perspective10"
id="g2527"
style="opacity:1;fill:url(#linearGradient2533);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:type="inkscape:box3d">
<path
d="M 9.4470448,-850.47983 L -61.533625,-850.42141 L -61.533625,-849.15154 L 9.4470448,-849.08878 L 9.4470448,-850.47983 z"
inkscape:box3dsidetype="11"
style="fill:url(#linearGradient2531);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
id="path2529"
sodipodi:type="inkscape:box3dside" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.4 KiB

@@ -0,0 +1,254 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
width="128"
height="128"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="LBlue_sphere.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<metadata
id="metadata22">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
inkscape:window-height="667"
inkscape:window-width="654"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showgrid="false"
inkscape:zoom="2.8284271"
inkscape:cx="83.198081"
inkscape:cy="56.531095"
inkscape:window-x="54"
inkscape:window-y="49"
inkscape:current-layer="svg2" />
<defs
id="defs5">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 64 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="128 : 64 : 1"
inkscape:persp3d-origin="64 : 42.666667 : 1"
id="perspective24" />
<linearGradient
id="linearGradient2816">
<stop
style="stop-color:#004455;stop-opacity:1"
offset="0"
id="stop2818" />
<stop
style="stop-color:#55ddff;stop-opacity:1"
offset="1"
id="stop2820" />
</linearGradient>
<linearGradient
id="linearGradient2794">
<stop
style="stop-color:#545454;stop-opacity:1"
offset="0"
id="stop2796" />
<stop
style="stop-color:#545454;stop-opacity:1"
offset="0.9464286"
id="stop2804" />
<stop
style="stop-color:#c5c5c5;stop-opacity:0"
offset="1"
id="stop2798" />
</linearGradient>
<linearGradient
id="linearGradient2760">
<stop
style="stop-color:#2c89a0;stop-opacity:1"
offset="0"
id="stop2762" />
<stop
style="stop-color:#006680;stop-opacity:1"
offset="0.57376349"
id="stop2768" />
<stop
style="stop-color:#aaeeff;stop-opacity:1"
offset="1"
id="stop2764" />
</linearGradient>
<linearGradient
x1="6.9292336"
y1="121.07077"
x2="6.9292336"
y2="8.9609833"
id="linearGradient2766"
xlink:href="#linearGradient2760"
gradientUnits="userSpaceOnUse" />
<radialGradient
cx="62.984127"
cy="65.015877"
r="54.179893"
fx="62.984127"
fy="65.015877"
id="radialGradient2812"
xlink:href="#linearGradient2794"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="31.5"
y1="63"
x2="31.5"
y2="12"
id="linearGradient2822"
xlink:href="#linearGradient2816"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1,2)" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="551.71686"
x2="918"
y1="576.36218"
x1="86"
id="linearGradient3189"
xlink:href="#linearGradient3183"
inkscape:collect="always"
gradientTransform="translate(609.43276,-558.0177)" />
<inkscape:perspective
id="perspective10"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="6.1230318e-14 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
id="linearGradient3183"
inkscape:collect="always">
<stop
id="stop3185"
offset="0"
style="stop-color:#0000ff;stop-opacity:1;" />
<stop
id="stop3187"
offset="1"
style="stop-color:#0000ff;stop-opacity:0;" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3183"
id="linearGradient2469"
gradientUnits="userSpaceOnUse"
x1="86"
y1="576.36218"
x2="918"
y2="551.71686"
gradientTransform="translate(609.43276,-558.0177)" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="551.71686"
x2="918"
y1="576.36218"
x1="86"
id="linearGradient2523"
xlink:href="#linearGradient3183"
inkscape:collect="always" />
<inkscape:perspective
id="perspective2521"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="6.1230318e-14 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3183"
id="linearGradient2531"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1414.7443,-1009.6458)"
x1="86"
y1="576.36218"
x2="918"
y2="551.71686" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3183"
id="linearGradient2533"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1414.7443,-1009.6458)"
x1="86"
y1="576.36218"
x2="918"
y2="551.71686" />
</defs>
<path
d="M 117.16402,65.015877 C 117.16402,94.938606 92.906856,119.19577 62.984127,119.19577 C 33.061398,119.19577 8.8042336,94.938606 8.8042336,65.015877 C 8.8042336,35.093148 33.061398,10.835984 62.984127,10.835984 C 92.906856,10.835984 117.16402,35.093148 117.16402,65.015877 z "
style="opacity:1;fill:url(#radialGradient2812);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2790"
transform="translate(5.724864,4.031744)" />
<path
d="M 117.16402,65.015877 C 117.16402,94.938606 92.906856,119.19577 62.984127,119.19577 C 33.061398,119.19577 8.8042336,94.938606 8.8042336,65.015877 C 8.8042336,35.093148 33.061398,10.835984 62.984127,10.835984 C 92.906856,10.835984 117.16402,35.093148 117.16402,65.015877 z "
transform="translate(1.69312,0)"
style="opacity:1;fill:url(#linearGradient2766);fill-opacity:1;fill-rule:nonzero;stroke:#006aac;stroke-width:3.75000000000000000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path1873" />
<path
d="M 96.5,39.5 C 96.5,53.583261 82.39697,65 65,65 C 47.60303,65 33.5,53.583261 33.5,39.5 C 33.5,25.416739 47.60303,14 65,14 C 82.39697,14 96.5,25.416739 96.5,39.5 z"
style="opacity:1;fill:url(#linearGradient2822);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2814" />
<g
id="layer1"
inkscape:label="Layer 1"
transform="translate(-609.43276,558.0177)">
<g
inkscape:corner7="-0.041115356 : -0.53396236 : 1077.6932 : 1"
inkscape:corner0="-94.01183 : 0.83577805 : 0 : 1"
inkscape:perspectiveID="#perspective10"
id="g2385"
style="opacity:1;fill:url(#linearGradient3189);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:type="inkscape:box3d">
<path
d="M 205.32583,-956.86944 L 134.34516,-956.81102 L 134.34516,-955.54115 L 205.32583,-955.47839 L 205.32583,-956.86944 z"
inkscape:box3dsidetype="11"
style="fill:url(#linearGradient2469);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
id="path2397"
sodipodi:type="inkscape:box3dside" />
</g>
</g>
<g
id="g2525"
inkscape:label="Layer 1"
transform="translate(-805.31155,451.62808)">
<g
inkscape:corner7="-0.041115356 : -0.53396236 : 1077.6932 : 1"
inkscape:corner0="-94.01183 : 0.83577805 : 0 : 1"
inkscape:perspectiveID="#perspective10"
id="g2527"
style="opacity:1;fill:url(#linearGradient2533);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:type="inkscape:box3d">
<path
d="M 9.4470448,-850.47983 L -61.533625,-850.42141 L -61.533625,-849.15154 L 9.4470448,-849.08878 L 9.4470448,-850.47983 z"
inkscape:box3dsidetype="11"
style="fill:url(#linearGradient2531);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
id="path2529"
sodipodi:type="inkscape:box3dside" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.4 KiB

@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.0"
width="128"
height="128"
id="svg2">
<defs
id="defs5">
<linearGradient
id="linearGradient2816">
<stop
style="stop-color:#00b000;stop-opacity:1"
offset="0"
id="stop2818" />
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="1"
id="stop2820" />
</linearGradient>
<linearGradient
id="linearGradient2794">
<stop
style="stop-color:#545454;stop-opacity:1"
offset="0"
id="stop2796" />
<stop
style="stop-color:#545454;stop-opacity:1"
offset="0.9464286"
id="stop2804" />
<stop
style="stop-color:#c5c5c5;stop-opacity:0"
offset="1"
id="stop2798" />
</linearGradient>
<linearGradient
id="linearGradient2760">
<stop
style="stop-color:#00ff00;stop-opacity:1"
offset="0"
id="stop2762" />
<stop
style="stop-color:#00a200;stop-opacity:1"
offset="0.61160713"
id="stop2768" />
<stop
style="stop-color:#66ff66;stop-opacity:1"
offset="1"
id="stop2764" />
</linearGradient>
<linearGradient
x1="6.9292336"
y1="121.07077"
x2="6.9292336"
y2="8.9609833"
id="linearGradient2766"
xlink:href="#linearGradient2760"
gradientUnits="userSpaceOnUse" />
<radialGradient
cx="62.984127"
cy="65.015877"
r="54.179893"
fx="62.984127"
fy="65.015877"
id="radialGradient2812"
xlink:href="#linearGradient2794"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="31.5"
y1="63"
x2="31.5"
y2="12"
id="linearGradient2822"
xlink:href="#linearGradient2816"
gradientUnits="userSpaceOnUse" />
</defs>
<path
d="M 117.16402,65.015877 C 117.16402,94.938606 92.906856,119.19577 62.984127,119.19577 C 33.061398,119.19577 8.8042336,94.938606 8.8042336,65.015877 C 8.8042336,35.093148 33.061398,10.835984 62.984127,10.835984 C 92.906856,10.835984 117.16402,35.093148 117.16402,65.015877 z "
transform="translate(5.724864,4.031744)"
style="opacity:1;fill:url(#radialGradient2812);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2790" />
<path
d="M 117.16402,65.015877 C 117.16402,94.938606 92.906856,119.19577 62.984127,119.19577 C 33.061398,119.19577 8.8042336,94.938606 8.8042336,65.015877 C 8.8042336,35.093148 33.061398,10.835984 62.984127,10.835984 C 92.906856,10.835984 117.16402,35.093148 117.16402,65.015877 z "
transform="translate(1.69312,0)"
style="opacity:1;fill:url(#linearGradient2766);fill-opacity:1;fill-rule:nonzero;stroke:#007400;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path1873" />
<path
d="M 95.5,37.5 C 95.5,51.583261 81.173112,63 63.5,63 C 45.826888,63 31.5,51.583261 31.5,37.5 C 31.5,23.416739 45.826888,12 63.5,12 C 81.173112,12 95.5,23.416739 95.5,37.5 z "
transform="translate(1,2)"
style="opacity:1;fill:url(#linearGradient2822);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2814" />
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

@@ -0,0 +1,254 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
width="128"
height="128"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="Orange_sphere.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<metadata
id="metadata22">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
inkscape:window-height="808"
inkscape:window-width="1152"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showgrid="false"
inkscape:zoom="4"
inkscape:cx="53.409108"
inkscape:cy="75.817966"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:current-layer="svg2" />
<defs
id="defs5">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 64 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="128 : 64 : 1"
inkscape:persp3d-origin="64 : 42.666667 : 1"
id="perspective24" />
<linearGradient
id="linearGradient2816">
<stop
style="stop-color:#5a1c00;stop-opacity:1;"
offset="0"
id="stop2818" />
<stop
style="stop-color:#ffb44a;stop-opacity:1;"
offset="1"
id="stop2820" />
</linearGradient>
<linearGradient
id="linearGradient2794">
<stop
style="stop-color:#545454;stop-opacity:1"
offset="0"
id="stop2796" />
<stop
style="stop-color:#545454;stop-opacity:1"
offset="0.9464286"
id="stop2804" />
<stop
style="stop-color:#c5c5c5;stop-opacity:0"
offset="1"
id="stop2798" />
</linearGradient>
<linearGradient
id="linearGradient2760">
<stop
style="stop-color:#f96900;stop-opacity:1;"
offset="0"
id="stop2762" />
<stop
style="stop-color:#872b00;stop-opacity:1;"
offset="0.61160713"
id="stop2768" />
<stop
style="stop-color:#ffaa5c;stop-opacity:1;"
offset="1"
id="stop2764" />
</linearGradient>
<linearGradient
x1="6.9292336"
y1="121.07077"
x2="6.9292336"
y2="8.9609833"
id="linearGradient2766"
xlink:href="#linearGradient2760"
gradientUnits="userSpaceOnUse" />
<radialGradient
cx="62.984127"
cy="65.015877"
r="54.179893"
fx="62.984127"
fy="65.015877"
id="radialGradient2812"
xlink:href="#linearGradient2794"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="31.5"
y1="63"
x2="31.5"
y2="12"
id="linearGradient2822"
xlink:href="#linearGradient2816"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1,2)" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="551.71686"
x2="918"
y1="576.36218"
x1="86"
id="linearGradient3189"
xlink:href="#linearGradient3183"
inkscape:collect="always"
gradientTransform="translate(609.43276,-558.0177)" />
<inkscape:perspective
id="perspective10"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="6.1230318e-14 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
id="linearGradient3183"
inkscape:collect="always">
<stop
id="stop3185"
offset="0"
style="stop-color:#0000ff;stop-opacity:1;" />
<stop
id="stop3187"
offset="1"
style="stop-color:#0000ff;stop-opacity:0;" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3183"
id="linearGradient2469"
gradientUnits="userSpaceOnUse"
x1="86"
y1="576.36218"
x2="918"
y2="551.71686"
gradientTransform="translate(609.43276,-558.0177)" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="551.71686"
x2="918"
y1="576.36218"
x1="86"
id="linearGradient2523"
xlink:href="#linearGradient3183"
inkscape:collect="always" />
<inkscape:perspective
id="perspective2521"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="6.1230318e-14 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3183"
id="linearGradient2531"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1414.7443,-1009.6458)"
x1="86"
y1="576.36218"
x2="918"
y2="551.71686" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3183"
id="linearGradient2533"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1414.7443,-1009.6458)"
x1="86"
y1="576.36218"
x2="918"
y2="551.71686" />
</defs>
<path
d="M 117.16402,65.015877 C 117.16402,94.938606 92.906856,119.19577 62.984127,119.19577 C 33.061398,119.19577 8.8042336,94.938606 8.8042336,65.015877 C 8.8042336,35.093148 33.061398,10.835984 62.984127,10.835984 C 92.906856,10.835984 117.16402,35.093148 117.16402,65.015877 z "
style="opacity:1;fill:url(#radialGradient2812);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2790"
transform="translate(5.724864,4.031744)" />
<path
d="M 117.16402,65.015877 C 117.16402,94.938606 92.906856,119.19577 62.984127,119.19577 C 33.061398,119.19577 8.8042336,94.938606 8.8042336,65.015877 C 8.8042336,35.093148 33.061398,10.835984 62.984127,10.835984 C 92.906856,10.835984 117.16402,35.093148 117.16402,65.015877 z "
transform="translate(1.69312,0)"
style="opacity:1;fill:url(#linearGradient2766);fill-opacity:1;fill-rule:nonzero;stroke:#d66c00;stroke-width:3.75000000000000000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path1873" />
<path
d="M 96.5,39.5 C 96.5,53.583261 82.39697,65 65,65 C 47.60303,65 33.5,53.583261 33.5,39.5 C 33.5,25.416739 47.60303,14 65,14 C 82.39697,14 96.5,25.416739 96.5,39.5 z"
style="opacity:1;fill:url(#linearGradient2822);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2814" />
<g
id="layer1"
inkscape:label="Layer 1"
transform="translate(-609.43276,558.0177)">
<g
inkscape:corner7="-0.041115356 : -0.53396236 : 1077.6932 : 1"
inkscape:corner0="-94.01183 : 0.83577805 : 0 : 1"
inkscape:perspectiveID="#perspective10"
id="g2385"
style="opacity:1;fill:url(#linearGradient3189);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:type="inkscape:box3d">
<path
d="M 205.32583,-956.86944 L 134.34516,-956.81102 L 134.34516,-955.54115 L 205.32583,-955.47839 L 205.32583,-956.86944 z"
inkscape:box3dsidetype="11"
style="fill:url(#linearGradient2469);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
id="path2397"
sodipodi:type="inkscape:box3dside" />
</g>
</g>
<g
id="g2525"
inkscape:label="Layer 1"
transform="translate(-805.31155,451.62808)">
<g
inkscape:corner7="-0.041115356 : -0.53396236 : 1077.6932 : 1"
inkscape:corner0="-94.01183 : 0.83577805 : 0 : 1"
inkscape:perspectiveID="#perspective10"
id="g2527"
style="opacity:1;fill:url(#linearGradient2533);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:type="inkscape:box3d">
<path
d="M 9.4470448,-850.47983 L -61.533625,-850.42141 L -61.533625,-849.15154 L 9.4470448,-849.08878 L 9.4470448,-850.47983 z"
inkscape:box3dsidetype="11"
style="fill:url(#linearGradient2531);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
id="path2529"
sodipodi:type="inkscape:box3dside" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.4 KiB

@@ -0,0 +1,216 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
width="128"
height="128"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="Pink_sphere.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<metadata
id="metadata22">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
inkscape:window-height="667"
inkscape:window-width="644"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showgrid="false"
inkscape:zoom="2.56"
inkscape:cx="91.81297"
inkscape:cy="74.516495"
inkscape:window-x="237"
inkscape:window-y="41"
inkscape:current-layer="svg2" />
<defs
id="defs5">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 64 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="128 : 64 : 1"
inkscape:persp3d-origin="64 : 42.666667 : 1"
id="perspective24" />
<linearGradient
id="linearGradient2816">
<stop
style="stop-color:#8c007e;stop-opacity:1;"
offset="0"
id="stop2818" />
<stop
style="stop-color:#ff6ff9;stop-opacity:1;"
offset="1"
id="stop2820" />
</linearGradient>
<linearGradient
id="linearGradient2794">
<stop
style="stop-color:#545454;stop-opacity:1"
offset="0"
id="stop2796" />
<stop
style="stop-color:#545454;stop-opacity:1"
offset="0.9464286"
id="stop2804" />
<stop
style="stop-color:#c5c5c5;stop-opacity:0"
offset="1"
id="stop2798" />
</linearGradient>
<linearGradient
id="linearGradient2760">
<stop
style="stop-color:#ff00f4;stop-opacity:1;"
offset="0"
id="stop2762" />
<stop
style="stop-color:#78007a;stop-opacity:1;"
offset="0.61160713"
id="stop2768" />
<stop
style="stop-color:#ff78d5;stop-opacity:1;"
offset="1"
id="stop2764" />
</linearGradient>
<linearGradient
x1="6.9292336"
y1="121.07077"
x2="6.9292336"
y2="8.9609833"
id="linearGradient2766"
xlink:href="#linearGradient2760"
gradientUnits="userSpaceOnUse" />
<radialGradient
cx="62.984127"
cy="65.015877"
r="54.179893"
fx="62.984127"
fy="65.015877"
id="radialGradient2812"
xlink:href="#linearGradient2794"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="31.5"
y1="63"
x2="31.5"
y2="12"
id="linearGradient2822"
xlink:href="#linearGradient2816"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1,2)" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="551.71686"
x2="918"
y1="576.36218"
x1="86"
id="linearGradient3189"
xlink:href="#linearGradient3183"
inkscape:collect="always"
gradientTransform="translate(609.43276,-558.0177)" />
<inkscape:perspective
id="perspective10"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="6.1230318e-14 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
id="linearGradient3183"
inkscape:collect="always">
<stop
id="stop3185"
offset="0"
style="stop-color:#0000ff;stop-opacity:1;" />
<stop
id="stop3187"
offset="1"
style="stop-color:#0000ff;stop-opacity:0;" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3183"
id="linearGradient2469"
gradientUnits="userSpaceOnUse"
x1="86"
y1="576.36218"
x2="918"
y2="551.71686"
gradientTransform="translate(609.43276,-558.0177)" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="551.71686"
x2="918"
y1="576.36218"
x1="86"
id="linearGradient2523"
xlink:href="#linearGradient3183"
inkscape:collect="always" />
<inkscape:perspective
id="perspective2521"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="6.1230318e-14 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3183"
id="linearGradient2531"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1414.7443,-1009.6458)"
x1="86"
y1="576.36218"
x2="918"
y2="551.71686" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3183"
id="linearGradient2533"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1414.7443,-1009.6458)"
x1="86"
y1="576.36218"
x2="918"
y2="551.71686" />
</defs>
<path
d="M 117.16402,65.015877 C 117.16402,94.938606 92.906856,119.19577 62.984127,119.19577 C 33.061398,119.19577 8.8042336,94.938606 8.8042336,65.015877 C 8.8042336,35.093148 33.061398,10.835984 62.984127,10.835984 C 92.906856,10.835984 117.16402,35.093148 117.16402,65.015877 z "
style="opacity:1;fill:url(#radialGradient2812);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2790"
transform="translate(5.724864,4.031744)" />
<path
d="M 117.16402,65.015877 C 117.16402,94.938606 92.906856,119.19577 62.984127,119.19577 C 33.061398,119.19577 8.8042336,94.938606 8.8042336,65.015877 C 8.8042336,35.093148 33.061398,10.835984 62.984127,10.835984 C 92.906856,10.835984 117.16402,35.093148 117.16402,65.015877 z "
transform="translate(1.69312,0)"
style="opacity:1;fill:url(#linearGradient2766);fill-opacity:1;fill-rule:nonzero;stroke:#e20094;stroke-width:3.75000000000000000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99418604"
id="path1873" />
<path
d="M 96.5,39.496094 C 96.5,53.577197 82.39697,64.992187 65,64.992187 C 47.60303,64.992187 33.5,53.577197 33.5,39.496094 C 33.5,25.41499 47.60303,14 65,14 C 82.39697,14 96.5,25.41499 96.5,39.496094 z"
style="opacity:1;fill:url(#linearGradient2822);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2814" />
</svg>

After

Width:  |  Height:  |  Size: 7.5 KiB

@@ -0,0 +1,254 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
width="128"
height="128"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="Purple_sphere.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<metadata
id="metadata22">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
inkscape:window-height="667"
inkscape:window-width="644"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
showgrid="false"
inkscape:zoom="4"
inkscape:cx="72.884938"
inkscape:cy="63.013466"
inkscape:window-x="117"
inkscape:window-y="60"
inkscape:current-layer="svg2" />
<defs
id="defs5">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 64 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="128 : 64 : 1"
inkscape:persp3d-origin="64 : 42.666667 : 1"
id="perspective24" />
<linearGradient
id="linearGradient2816">
<stop
style="stop-color:#22002b;stop-opacity:1"
offset="0"
id="stop2818" />
<stop
style="stop-color:#e580ff;stop-opacity:1"
offset="1"
id="stop2820" />
</linearGradient>
<linearGradient
id="linearGradient2794">
<stop
style="stop-color:#545454;stop-opacity:1"
offset="0"
id="stop2796" />
<stop
style="stop-color:#545454;stop-opacity:1"
offset="0.9464286"
id="stop2804" />
<stop
style="stop-color:#c5c5c5;stop-opacity:0"
offset="1"
id="stop2798" />
</linearGradient>
<linearGradient
id="linearGradient2760">
<stop
style="stop-color:#660080;stop-opacity:1"
offset="0"
id="stop2762" />
<stop
style="stop-color:#22002b;stop-opacity:1"
offset="0.61160713"
id="stop2768" />
<stop
style="stop-color:#892ca0;stop-opacity:1"
offset="1"
id="stop2764" />
</linearGradient>
<linearGradient
x1="6.9292336"
y1="121.07077"
x2="6.9292336"
y2="8.9609833"
id="linearGradient2766"
xlink:href="#linearGradient2760"
gradientUnits="userSpaceOnUse" />
<radialGradient
cx="62.984127"
cy="65.015877"
r="54.179893"
fx="62.984127"
fy="65.015877"
id="radialGradient2812"
xlink:href="#linearGradient2794"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="31.5"
y1="63"
x2="31.5"
y2="12"
id="linearGradient2822"
xlink:href="#linearGradient2816"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1,2)" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="551.71686"
x2="918"
y1="576.36218"
x1="86"
id="linearGradient3189"
xlink:href="#linearGradient3183"
inkscape:collect="always"
gradientTransform="translate(609.43276,-558.0177)" />
<inkscape:perspective
id="perspective10"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="6.1230318e-14 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
id="linearGradient3183"
inkscape:collect="always">
<stop
id="stop3185"
offset="0"
style="stop-color:#0000ff;stop-opacity:1;" />
<stop
id="stop3187"
offset="1"
style="stop-color:#0000ff;stop-opacity:0;" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3183"
id="linearGradient2469"
gradientUnits="userSpaceOnUse"
x1="86"
y1="576.36218"
x2="918"
y2="551.71686"
gradientTransform="translate(609.43276,-558.0177)" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="551.71686"
x2="918"
y1="576.36218"
x1="86"
id="linearGradient2523"
xlink:href="#linearGradient3183"
inkscape:collect="always" />
<inkscape:perspective
id="perspective2521"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="6.1230318e-14 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3183"
id="linearGradient2531"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1414.7443,-1009.6458)"
x1="86"
y1="576.36218"
x2="918"
y2="551.71686" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3183"
id="linearGradient2533"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1414.7443,-1009.6458)"
x1="86"
y1="576.36218"
x2="918"
y2="551.71686" />
</defs>
<path
d="M 117.16402,65.015877 C 117.16402,94.938606 92.906856,119.19577 62.984127,119.19577 C 33.061398,119.19577 8.8042336,94.938606 8.8042336,65.015877 C 8.8042336,35.093148 33.061398,10.835984 62.984127,10.835984 C 92.906856,10.835984 117.16402,35.093148 117.16402,65.015877 z "
style="opacity:1;fill:url(#radialGradient2812);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2790"
transform="translate(5.724864,4.031744)" />
<path
d="M 117.16402,65.015877 C 117.16402,94.938606 92.906856,119.19577 62.984127,119.19577 C 33.061398,119.19577 8.8042336,94.938606 8.8042336,65.015877 C 8.8042336,35.093148 33.061398,10.835984 62.984127,10.835984 C 92.906856,10.835984 117.16402,35.093148 117.16402,65.015877 z "
transform="translate(1.69312,0)"
style="opacity:1;fill:url(#linearGradient2766);fill-opacity:1;fill-rule:nonzero;stroke:#46004a;stroke-width:3.75000000000000000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path1873" />
<path
d="M 96.5,39.5 C 96.5,53.583261 82.39697,65 65,65 C 47.60303,65 33.5,53.583261 33.5,39.5 C 33.5,25.416739 47.60303,14 65,14 C 82.39697,14 96.5,25.416739 96.5,39.5 z"
style="opacity:1;fill:url(#linearGradient2822);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path2814" />
<g
id="layer1"
inkscape:label="Layer 1"
transform="translate(-609.43276,558.0177)">
<g
inkscape:corner7="-0.041115356 : -0.53396236 : 1077.6932 : 1"
inkscape:corner0="-94.01183 : 0.83577805 : 0 : 1"
inkscape:perspectiveID="#perspective10"
id="g2385"
style="opacity:1;fill:url(#linearGradient3189);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:type="inkscape:box3d">
<path
d="M 205.32583,-956.86944 L 134.34516,-956.81102 L 134.34516,-955.54115 L 205.32583,-955.47839 L 205.32583,-956.86944 z"
inkscape:box3dsidetype="11"
style="fill:url(#linearGradient2469);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
id="path2397"
sodipodi:type="inkscape:box3dside" />
</g>
</g>
<g
id="g2525"
inkscape:label="Layer 1"
transform="translate(-805.31155,451.62808)">
<g
inkscape:corner7="-0.041115356 : -0.53396236 : 1077.6932 : 1"
inkscape:corner0="-94.01183 : 0.83577805 : 0 : 1"
inkscape:perspectiveID="#perspective10"
id="g2527"
style="opacity:1;fill:url(#linearGradient2533);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
sodipodi:type="inkscape:box3d">
<path
d="M 9.4470448,-850.47983 L -61.533625,-850.42141 L -61.533625,-849.15154 L 9.4470448,-849.08878 L 9.4470448,-850.47983 z"
inkscape:box3dsidetype="11"
style="fill:url(#linearGradient2531);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
id="path2529"
sodipodi:type="inkscape:box3dside" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.4 KiB

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128" version="1.0">
<defs>
<linearGradient id="b">
<stop offset="0" stop-color="#a20000"/>
<stop offset="1" stop-color="#fff"/>
</linearGradient>
<linearGradient id="c">
<stop offset="0" stop-color="#545454"/>
<stop offset=".9464286" stop-color="#545454"/>
<stop offset="1" stop-color="#c5c5c5" stop-opacity="0"/>
</linearGradient>
<linearGradient id="a">
<stop offset="0" stop-color="red"/>
<stop offset=".61160713" stop-color="#a20000"/>
<stop offset="1" stop-color="#f66"/>
</linearGradient>
<linearGradient xlink:href="#a" id="e" x1="6.9292336" x2="6.9292336" y1="121.07077" y2="8.9609833" gradientUnits="userSpaceOnUse"/>
<linearGradient xlink:href="#b" id="f" x1="31.5" x2="31.5" y1="63" y2="12" gradientUnits="userSpaceOnUse"/>
<radialGradient xlink:href="#c" id="d" cx="62.984127" cy="65.015877" r="54.179893" fx="62.984127" fy="65.015877" gradientUnits="userSpaceOnUse"/>
</defs>
<path fill="url(#d)" d="M117.16402 65.015877a54.179893 54.179893 0 1 1-108.3597864 0 54.179893 54.179893 0 1 1 108.3597864 0z" transform="translate(5.724864 4.031744)"/>
<path fill="url(#e)" stroke="#740000" stroke-linejoin="round" stroke-width="3.75" d="M117.16402 65.015877a54.179893 54.179893 0 1 1-108.3597864 0 54.179893 54.179893 0 1 1 108.3597864 0z" transform="translate(1.69312)"/>
<path fill="url(#f)" d="M95.5 37.5a32 25.5 0 1 1-64 0 32 25.5 0 1 1 64 0z" transform="translate(1 2)"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 721 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 897 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

+147 -5
View File
@@ -6,20 +6,19 @@
{
"use strict";
let rg = sax.refGolf = sax.refGolf || { data: {}, fn: {}, $pnl: {}, $frm: {}, $dlg: {} };
rg.attr_id = 'sax-id';
rg.class_sel = 'sax-sel';
//--------------------------------------------------------------
/* Reference - Golf - Stats. */
rg.fn.refreshStats = function (delay)
{
//sax.debug('refreshOrganisations');
rg.ajaxGolfStats = rg.ajaxGolfStats || { url: sax.url.base + 'Reference/Golf/Ajax/GetStats', formId: rg.$frm.filter.prop('id'), callbackFn: rg.fn.doRefreshStats };
sax.doAjaxRequest(rg.ajaxGolfStats, delay || 50);
}
rg.fn.doRefreshStats = function (response)
{
sax.debug('doRefreshStats', response);
if (!response.success) return;
let $msgs = $('.sax-panel-messages', rg.$pnl.stats).empty();
let $list = $('.sax-panel-item-list', rg.$pnl.stats).empty();
for (let groupIdx = 0; groupIdx < (response.groups || []).length; groupIdx++)
@@ -29,11 +28,11 @@
for (let statIdx = 0; statIdx < (group.stats || []).length; statIdx++)
{
let stat = group.stats[statIdx];
if (stat.value>0) $list.append(rg.fn.populateStat(rg.fn.getStatTemplate(), stat.caption, stat.value));
if (stat.value > 0) $list.append(rg.fn.populateStat(rg.fn.getStatTemplate(), stat.caption, stat.value));
}
}
}
rg.fn.populateStatGroup=function($item, caption)
rg.fn.populateStatGroup = function ($item, caption)
{
$('.GroupCaption', $item).text(caption);
return $item;
@@ -53,6 +52,134 @@
return $('.sax-panel-item-template .GolfStat', rg.$pnl.stats).clone();
}
//--------------------------------------------------------------
/* Reference - Golf - Countries. */
rg.fn.clearCountries = function ()
{
rg.fn.clearProvinces();
rg.$pnl.countriesMsgs.empty();
rg.$pnl.countriesList.find('tbody tr').remove();
$('.FilterProvinceSearch', rg.$frm.provinces).val('');
}
rg.fn.refreshCountries = function (delay)
{
rg.fn.clearCountries();
rg.ajaxGolfCountries = rg.ajaxGolfCountries || { url: sax.url.base + 'Reference/Golf/Ajax/GetCountries', formId: rg.$frm.countries.prop('id'), callbackFn: rg.fn.doRefreshCountries };
sax.doAjaxRequest(rg.ajaxGolfCountries, delay || 50);
}
rg.fn.doRefreshCountries = function (response)
{
//sax.debug('doRefreshCountries', response);
rg.fn.clearCountries();
if (!response.success) return;
let $list = rg.$pnl.countriesList;
$('tbody tr', $list).remove()
for (let countryIdx = 0; countryIdx < (response.countries || []).length; countryIdx++)
{
let $item = rg.fn.getCountryTemplate();
let item = response.countries[countryIdx];
$list.append(rg.fn.populateCountry($item, item));
if (countryIdx == 0 && response.countries.length == 1)
rg.fn.selectCountry($item, item);
}
}
rg.fn.populateCountry = function ($item, item)
{
$item.attr(rg.attr_id, item.id).on('click', function () { rg.fn.selectCountry($item, item); })
$('.CountryCode', $item).text(item.code);
$('.CountryName', $item).text(item.name);
if (item.provinceCountActive) $('.CountryProvinces', $item).text(item.provinceCountActive);
if (item.facilityCountActive) $('.CountryClubs', $item).text(item.facilityCountActive);
if (item.priorityProvincePopulate) $('.CountryPriority', $item).append(rg.fn.getTickIcon());
$('.CountryStatus', $item).append(rg.fn.getStatusIcon(item.statusCode.toLowerCase()));
return $item;
}
rg.fn.getCountryTemplate = function ()
{
return $('table.sax-panel-item-template tr.GolfCountry', rg.$pnl.countries).clone();
}
rg.fn.selectCountry = function ($item, item)
{
//sax.debug('selectCountry', $item, item)
$('table.sax-item-list tbody tr', rg.$pnl.countries).removeClass(rg.class_sel);
$item.addClass(rg.class_sel);
setTimeout(rg.fn.refreshProvinces(500), 100);
}
//--------------------------------------------------------------
/* Reference - Golf - Provinces. */
rg.fn.clearProvinces = function ()
{
rg.$pnl.provincesMsgs.empty();
rg.$pnl.provincesList.find('tbody tr').remove();
}
rg.fn.refreshProvinces = function (delay)
{
rg.fn.clearProvinces();
let countryId = rg.$pnl.countriesList.find('tbody tr.' + rg.class_sel).attr(rg.attr_id);
if (!countryId)
{
rg.$pnl.provincesMsgs.empty().text('Country must be selected.');
return;
}
$('.FilterCountryId', rg.$frm.provinces).val(countryId);
rg.ajaxGolfProvinces = rg.ajaxGolfProvinces || { url: sax.url.base + 'Reference/Golf/Ajax/GetProvinces', formId: rg.$frm.provinces.prop('id'), callbackFn: rg.fn.doRefreshProvinces };
sax.doAjaxRequest(rg.ajaxGolfProvinces, delay || 50);
}
rg.fn.doRefreshProvinces = function (response)
{
//sax.debug('doRefreshProvinces', response);
rg.fn.clearProvinces();
if (!response.success) return;
let $list = rg.$pnl.provincesList;
$('tbody tr', $list).remove()
for (let provinceIdx = 0; provinceIdx < (response.provinces || []).length; provinceIdx++)
$list.append(rg.fn.populateProvince(rg.fn.getProvinceTemplate(), response.provinces[provinceIdx]));
}
rg.fn.populateProvince = function ($item, item)
{
$item.attr(rg.attr_id, item.id).on('click', function () { rg.fn.selectProvince($item, item); })
$('.ProvinceCode', $item).text(item.code);
$('.ProvinceName', $item).text(item.name);
if (item.facilityCountActive) $('.ProvinceClubs', $item).text(item.facilityCountActive);
if (item.courseCountActive) $('.ProvinceCourses', $item).text(item.courseCountActive);
if (item.priorityClubPopulate) $('.ProvincePriority', $item).append(rg.fn.getTickIcon());
$('.ProvinceStatus', $item).append(rg.fn.getStatusIcon(item.statusCode.toLowerCase()));
return $item;
}
rg.fn.getProvinceTemplate = function ()
{
return $('table.sax-panel-item-template tr.GolfProvince', rg.$pnl.provinces).clone();
}
rg.fn.selectProvince = function ($item, item)
{
//sax.debug('selectProvince', $item, item)
$('table.sax-item-list tbody tr', rg.$pnl.provinces).removeClass(rg.class_sel);
$item.addClass(rg.class_sel);
setTimeout(rg.fn.refreshClubs(500), 100);
}
//--------------------------------------------------------------
/* Reference - Golf - Clubs. */
rg.fn.refreshClubs = function (delay)
{
}
//--------------------------------------------------------------
// Utilities.
rg.fn.getTickIcon = function ()
{
return $('.sax-panel-item-template img.sax-tick', rg.$pnl.golf).clone();
}
rg.fn.getCrossIcon = function ()
{
return $('.sax-panel-item-template img.sax-cross', rg.$pnl.golf).clone();
}
rg.fn.getStatusIcon = function (stat)
{
return $('.sax-panel-item-template img.sax-status-' + stat, rg.$pnl.golf).clone();
}
//--------------------------------------------------------------
$(function ()
{
@@ -65,6 +192,21 @@
rg.$pnl.stats = $('.sax-panel-info.GolfStats', rg.$pnl.golf);
setTimeout(rg.fn.refreshStats, 250);
// Countries.
rg.$pnl.countries = $('.sax-panel-info.Countries', rg.$pnl.golf);
rg.$pnl.countriesMsgs = $('.sax-panel-messages', rg.$pnl.countries);
rg.$pnl.countriesList = $('table.sax-item-list', rg.$pnl.countries);
rg.$frm.countries = $('#frmCountries', rg.$pnl.golf);
$('.FilterCountrySearch', rg.$frm.countries).on('input', function () { setTimeout(rg.fn.refreshCountries(500), 100); });
setTimeout(rg.fn.refreshCountries, 1000);
// Provinces.
rg.$pnl.provinces = $('.sax-panel-info.Provinces', rg.$pnl.golf);
rg.$pnl.provincesMsgs = $('.sax-panel-messages', rg.$pnl.provinces);
rg.$pnl.provincesList = $('table.sax-item-list', rg.$pnl.provinces);
rg.$frm.provinces = $('#frmProvinces', rg.$pnl.golf);
$('.FilterProvinceSearch', rg.$frm.provinces).on('input', function () { setTimeout(rg.fn.refreshProvinces(500), 100); });
// Courses.
//$('.PagingPageNo', rg.$dlg).val(1);
//$('.PagingPageLength', rg.$dlg).val(16);
@@ -153,6 +153,11 @@ textarea
text-transform: lowercase !important;
}
.left
{
text-align: left !important;
}
.center
{
text-align: center !important;
@@ -117,7 +117,7 @@
.sax-panel-info .sax-label
{
padding-right: 16px;
padding-right: 12px;
font-weight: bold;
color: #808080;
}
+1 -1
View File
@@ -176,7 +176,7 @@ namespace Saxonite.Net.Standard.Base.App
public static class UsgaGolfDataLookup
{
public static bool Enabled { get; set; } = SacsSystem.DebugMode ? true : true;
public static int MinsBetweenExecution { get; set; } = SacsSystem.DebugMode ? 8 : 30;
public static int MinsBetweenExecution { get; set; } = SacsSystem.DebugMode ? 8 : 15;
public static int HoursBetweenCountryLookup { get; set; } = SacsSystem.DebugMode ? 24 : 24 * 5;
}
}
+1 -1
View File
@@ -18,7 +18,7 @@ namespace Saxonite.Net.Standard.Base.App
//-------------------------------------------------------------------
public static class Version
{
private static String version { get; } = "1.2.11.8";
private static String version { get; } = "1.2.11.9";
// Retrieve version.
public static String GetFullVersion () { return version; }
public static String GetAppVersion ()
+1 -1
View File
@@ -28,7 +28,7 @@ namespace Saxonite.Net.Standard.Base.App
//-------------------------------------------------------------------
public static Sax.Environment GetEnvironment()
{
if (ComputerName.EqualsCI("Sarand602"))
if (ComputerName.ContainsCI("Sarand602"))
return Sax.Environment.Production;
if (ComputerName.ContainsCI("Sarand"))
return Sax.Environment.Development;
@@ -29,6 +29,8 @@ namespace Saxonite.Net.Standard.Base.Bus.Reference
// Associated data.
ProvinceCount_All,
ProvinceCount_Active,
FacilityCount_All,
FacilityCount_Active,
// Common.
Notes,
Flags,
@@ -27,6 +27,10 @@ namespace Saxonite.Net.Standard.Base.Bus.Reference
EntProvinceCode,
ProvinceName,
// Associated data.
FacilityCount_All,
FacilityCount_Active,
CourseCount_All,
CourseCount_Active,
// Common.
Notes,
Flags,
@@ -317,6 +317,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
private static readonly String aliasUsgaCountry = "UsgPrv";
private static readonly String aliasUsgaCountry_Dummy = "UsgPrv_Cty";
private static readonly String prefixUsgaCountry_Dummy = aliasUsgaCountry_Dummy + "_";
private static readonly String colCountry_Province_Count = "Cty_Prv_Count";
private static readonly String colCountry_Province_Active_Count = "Cty_Prv_Act_Count";
private static readonly String colCountry_Facility_Count = "Cty_Fty_Count";
private static readonly String colCountry_Facility_Active_Count = "Cty_Fty_Act_Count";
private void SetUsgaCountryColDfn
(ColumnDfn col, String caption, int width, SaxDbDfn_Reference.ColumnIdx dbCol,
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
@@ -357,6 +361,22 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
//-----------------------------------------------------------
// Derived properties.
case SaxGolfUsgaCountry.Column.ProvinceCount_All:
SetUsgaCountryColDfn(columnDfn, "Provinces", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colCountry_Province_Count;
break;
case SaxGolfUsgaCountry.Column.ProvinceCount_Active:
SetUsgaCountryColDfn(columnDfn, "Provinces (act)", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colCountry_Province_Active_Count;
break;
case SaxGolfUsgaCountry.Column.FacilityCount_All:
SetUsgaCountryColDfn(columnDfn, "Facilities", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colCountry_Facility_Count;
break;
case SaxGolfUsgaCountry.Column.FacilityCount_Active:
SetUsgaCountryColDfn(columnDfn, "Facilities (act)", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colCountry_Facility_Active_Count;
break;
//-----------------------------------------------------------
// Common properties.
@@ -418,10 +438,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
filterWords.RemoveBlanks();
foreach (String filterWord in filterWords)
{
List<String> articleFilter = new List<String>();
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CountryCode, aliasUsgaCountry)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CountryName, aliasUsgaCountry)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
filter.Add(articleFilter.Concat(" OR ", "(", ")"));
List<String> countryFilter = new List<String>();
countryFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CountryCode, aliasUsgaCountry)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
countryFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_CountryName, aliasUsgaCountry)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
filter.Add(countryFilter.Concat(" OR ", "(", ")"));
}
}
@@ -469,7 +489,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
public List<String> GetUsgaCountrySortColumns(SaxGolfUsgaCountry.Params prm)
{
// Sort sequence:
List<String> sortColumnNames = new List<String>();
HashSet<String> sortColumnNames = new HashSet<String>();
foreach (var columnDfn in prm.SortColumns)
{
// Need to ensure correct alias used for UsgaCountry columns in case of conflict.
@@ -496,7 +516,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
// Default sort columns.
sortColumnNames.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Id, aliasUsgaCountry) + " ASC");
}
return sortColumnNames;
return sortColumnNames.ToList();
}
//-------------------------------------------------------------------
@@ -581,6 +601,68 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
if (columns.HasId(SaxGolfUsgaCountry.Column.UpdateOn_Date))
query.Columns.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_UpdateOn, aliasUsgaCountry));
//---------------------------------------------------------------------
// Province count.
if (columns.HasId(SaxGolfUsgaCountry.Column.ProvinceCount_All))
{
String aliasProvince = "aCtyPrv_Count";
DbQuery queryProvince = new DbQuery(CoreDatabase.DbmsType);
queryProvince.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaProvince), aliasProvince);
queryProvince.Columns.Add("Count(*)");
queryProvince.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_CountryId, aliasProvince) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Id, aliasUsgaCountry));
query.Columns.Add("(" + queryProvince.BuildQuery() + ")", colCountry_Province_Count);
}
// Active Province count.
if (columns.HasId(SaxGolfUsgaCountry.Column.ProvinceCount_Active))
{
String aliasProvince = "aCtyPrvAct_Count";
DbQuery queryProvince = new DbQuery(CoreDatabase.DbmsType);
queryProvince.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaProvince), aliasProvince);
queryProvince.Columns.Add("Count(*)");
queryProvince.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_CountryId, aliasProvince) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Id, aliasUsgaCountry));
queryProvince.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Status, aliasProvince) + "='" + SacsSystem.GetStatusCode(SaStatus.Active) + "'");
query.Columns.Add("(" + queryProvince.BuildQuery() + ")", colCountry_Province_Active_Count);
}
//---------------------------------------------------------------------
// Facility count.
if (columns.HasId(SaxGolfUsgaCountry.Column.ProvinceCount_All))
{
String aliasProvince = "aCtyFty_Count_Prv";
DbQuery queryProvince = new DbQuery(CoreDatabase.DbmsType);
queryProvince.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaProvince), aliasProvince);
queryProvince.Columns.Add("Count(*)");
queryProvince.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_CountryId, aliasProvince) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Id, aliasUsgaCountry));
// Join to Facility.
String aliasFacility = "aCtyFty_Count_Fty";
DbQueryJoin joinFacility = new DbQueryJoin(DbJoinType.Inner);
joinFacility.Table = new StringPair(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility), aliasFacility);
joinFacility.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_ProvinceId, aliasFacility) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, aliasProvince));
queryProvince.Joins.Add(joinFacility);
// Construct sub-query.
query.Columns.Add("(" + queryProvince.BuildQuery() + ")", colCountry_Facility_Count);
}
// Active Facility count.
if (columns.HasId(SaxGolfUsgaCountry.Column.ProvinceCount_Active))
{
String aliasProvince = "aCtyFty_Count_Prv";
DbQuery queryProvince = new DbQuery(CoreDatabase.DbmsType);
queryProvince.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaProvince), aliasProvince);
queryProvince.Columns.Add("Count(*)");
queryProvince.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_CountryId, aliasProvince) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCountry_Id, aliasUsgaCountry));
// Join to Facility.
String aliasFacility = "aCtyFty_Count_Fty";
DbQueryJoin joinFacility = new DbQueryJoin(DbJoinType.Inner);
joinFacility.Table = new StringPair(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility), aliasFacility);
joinFacility.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_ProvinceId, aliasFacility) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, aliasProvince));
joinFacility.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Status, aliasFacility) + "='" + SacsSystem.GetStatusCode(SaStatus.Active) + "'");
queryProvince.Joins.Add(joinFacility);
// Construct sub-query.
query.Columns.Add("(" + queryProvince.BuildQuery() + ")", colCountry_Facility_Active_Count);
}
//---------------------------------------------------------------------
// Populate filter.
query.Filters.AddRange(GetUsgaCountryQueryFilter(prm));
@@ -529,13 +529,13 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
filterWords.RemoveBlanks();
foreach (String filterWord in filterWords)
{
List<String> articleFilter = new List<String>();
articleFilter.Add($"{col_CourseName} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_FullName, aliasUsgaCourse)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Address1, aliasUsgaCourse)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Address2, aliasUsgaCourse)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_City, aliasUsgaCourse)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
filter.Add(articleFilter.Concat(" OR ", "(", ")"));
List<String> courseFilter = new List<String>();
courseFilter.Add($"{col_CourseName} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
courseFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_FullName, aliasUsgaCourse)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
courseFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Address1, aliasUsgaCourse)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
courseFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Address2, aliasUsgaCourse)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
courseFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_City, aliasUsgaCourse)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
filter.Add(courseFilter.Concat(" OR ", "(", ")"));
}
}
@@ -468,9 +468,9 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
filterWords.RemoveBlanks();
foreach (String filterWord in filterWords)
{
List<String> articleFilter = new List<String>();
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_FacilityName, aliasUsgaFacility)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
filter.Add(articleFilter.Concat(" OR ", "(", ")"));
List<String> facilityFilter = new List<String>();
facilityFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_FacilityName, aliasUsgaFacility)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
filter.Add(facilityFilter.Concat(" OR ", "(", ")"));
}
}
@@ -514,12 +514,12 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
filterWords.RemoveBlanks();
foreach (String filterWord in filterWords)
{
List<String> articleFilter = new List<String>();
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Caption, aliasUsgaMarker)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_HolesCaption, aliasUsgaMarker)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Tee, aliasUsgaMarker)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Gender, aliasUsgaMarker)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
filter.Add(articleFilter.Concat(" OR ", "(", ")"));
List<String> markerFilter = new List<String>();
markerFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Caption, aliasUsgaMarker)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
markerFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_HolesCaption, aliasUsgaMarker)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
markerFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Tee, aliasUsgaMarker)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
markerFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaMarker_Gender, aliasUsgaMarker)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
filter.Add(markerFilter.Concat(" OR ", "(", ")"));
}
}
@@ -327,6 +327,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
private static readonly String aliasUsgaProvince = "UsgPrv";
private static readonly String aliasUsgaProvince_Country = "UsgPrv_Cty";
private static readonly String prefixUsgaProvince_Country = aliasUsgaProvince_Country + "_";
private static readonly String colProvince_Facility_Count = "Prv_Fty_Count";
private static readonly String colProvince_Facility_Active_Count = "Prv_Fty_Act_Count";
private static readonly String colProvince_Course_Count = "Prv_Crs_Count";
private static readonly String colProvince_Course_Active_Count = "Prv_Crs_Act_Count";
private void SetUsgaProvinceColDfn
(ColumnDfn col, String caption, int width, SaxDbDfn_Reference.ColumnIdx dbCol,
ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String,
@@ -377,6 +381,22 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
//-----------------------------------------------------------
// Derived properties.
case SaxGolfUsgaProvince.Column.FacilityCount_All:
SetUsgaProvinceColDfn(columnDfn, "Facilities", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colProvince_Facility_Count;
break;
case SaxGolfUsgaProvince.Column.FacilityCount_Active:
SetUsgaProvinceColDfn(columnDfn, "Facilities (act)", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colProvince_Facility_Active_Count;
break;
case SaxGolfUsgaProvince.Column.CourseCount_All:
SetUsgaProvinceColDfn(columnDfn, "Courses", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colProvince_Course_Count;
break;
case SaxGolfUsgaProvince.Column.CourseCount_Active:
SetUsgaProvinceColDfn(columnDfn, "Courses (act)", 60, SaxDbDfn_Reference.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Long);
columnDfn.DataName = colProvince_Course_Active_Count;
break;
//-----------------------------------------------------------
// Common properties.
@@ -442,10 +462,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
filterWords.RemoveBlanks();
foreach (String filterWord in filterWords)
{
List<String> articleFilter = new List<String>();
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceCode, aliasUsgaProvince)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
articleFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceName, aliasUsgaProvince)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
filter.Add(articleFilter.Concat(" OR ", "(", ")"));
List<String> provinceFilter = new List<String>();
provinceFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceCode, aliasUsgaProvince)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
provinceFilter.Add($"{SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_ProvinceName, aliasUsgaProvince)} Like '%{DbQuery.FormatForLike(filterWord, true)}%'");
filter.Add(provinceFilter.Concat(" OR ", "(", ")"));
}
}
@@ -623,6 +643,68 @@ namespace Saxonite.Net.Standard.Dbas.Mgr.Reference
prm.Alias_Country = aliasUsgaProvince_Country;
}
//---------------------------------------------------------------------
// Facility count.
if (columns.HasId(SaxGolfUsgaProvince.Column.FacilityCount_All))
{
String aliasFacility = "aPrvFty_Count";
DbQuery queryFacility = new DbQuery(CoreDatabase.DbmsType);
queryFacility.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility), aliasFacility);
queryFacility.Columns.Add("Count(*)");
queryFacility.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_ProvinceId, aliasFacility) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, aliasUsgaProvince));
query.Columns.Add("(" + queryFacility.BuildQuery() + ")", colProvince_Facility_Count);
}
// Active Facility count.
if (columns.HasId(SaxGolfUsgaProvince.Column.FacilityCount_Active))
{
String aliasFacility = "aPrvFtyAct_Count";
DbQuery queryFacility = new DbQuery(CoreDatabase.DbmsType);
queryFacility.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility), aliasFacility);
queryFacility.Columns.Add("Count(*)");
queryFacility.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_ProvinceId, aliasFacility) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, aliasUsgaProvince));
queryFacility.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Status, aliasFacility) + "='" + SacsSystem.GetStatusCode(SaStatus.Active) + "'");
query.Columns.Add("(" + queryFacility.BuildQuery() + ")", colProvince_Facility_Active_Count);
}
//---------------------------------------------------------------------
// Course count.
if (columns.HasId(SaxGolfUsgaProvince.Column.FacilityCount_All))
{
String aliasFacility = "aPrvFty_Count_Fty";
DbQuery queryFacility = new DbQuery(CoreDatabase.DbmsType);
queryFacility.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility), aliasFacility);
queryFacility.Columns.Add("Count(*)");
queryFacility.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_ProvinceId, aliasFacility) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, aliasUsgaProvince));
// Join to Course.
String aliasCourse = "aPrvFty_Count_Crs";
DbQueryJoin joinCourse = new DbQueryJoin(DbJoinType.Inner);
joinCourse.Table = new StringPair(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaCourse), aliasCourse);
joinCourse.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_FacilityId, aliasCourse) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Id, aliasFacility));
queryFacility.Joins.Add(joinCourse);
// Construct sub-query.
query.Columns.Add("(" + queryFacility.BuildQuery() + ")", colProvince_Course_Count);
}
// Active Course count.
if (columns.HasId(SaxGolfUsgaProvince.Column.FacilityCount_Active))
{
String aliasFacility = "aPrvFty_Count_Fty";
DbQuery queryFacility = new DbQuery(CoreDatabase.DbmsType);
queryFacility.Tables.Add(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaFacility), aliasFacility);
queryFacility.Columns.Add("Count(*)");
queryFacility.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_ProvinceId, aliasFacility) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaProvince_Id, aliasUsgaProvince));
// Join to Course.
String aliasCourse = "aPrvFty_Count_Crs";
DbQueryJoin joinCourse = new DbQueryJoin(DbJoinType.Inner);
joinCourse.Table = new StringPair(SaxDbDfn_Reference.GetTableNameQual(SaxDbDfn_Reference.TableIdx.UsgaCourse), aliasCourse);
joinCourse.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_FacilityId, aliasCourse) + "=" + SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaFacility_Id, aliasFacility));
joinCourse.Filters.Add(SaxDbDfn_Reference.GetColumnNameQual(SaxDbDfn_Reference.ColumnIdx.UsgaCourse_Status, aliasCourse) + "='" + SacsSystem.GetStatusCode(SaStatus.Active) + "'");
queryFacility.Joins.Add(joinCourse);
// Construct sub-query.
query.Columns.Add("(" + queryFacility.BuildQuery() + ")", colProvince_Course_Active_Count);
}
//---------------------------------------------------------------------
// Populate filter.
query.Filters.AddRange(GetUsgaProvinceQueryFilter(prm));
@@ -92,11 +92,6 @@ namespace Saxonite.Web.Api.App
{
try
{
// Environment.
environmentName = Environments.Development;
if (SaxSystem.ComputerName.EqualsCI("Sarand601"))
environmentName = Environments.Production;
// Application configuration.
appConfigs = SaxAppConfigHelper.ExtractAppConfigs(SaxConfiguration.GetSection("AppConfigs"));
emailConfigs = SaxEmailConfigHelper.ExtractEmailConfigs(SaxConfiguration.GetSection("EmailConfigs"));
@@ -51,9 +51,10 @@ namespace Saxonite.Web.Api.Controllers
{
public class ConfigData
{
public String? Version { get; set; }
public String? Environment { get; set; }
public String? Instance { get; set; }
public String? Version { get; set; }
public String? Host{ get; set; }
public String? ConfigLogFolder { get; set; }
public String? LogFolder { get; set; }
public String? EmailContext { get; set; }
@@ -71,9 +72,10 @@ namespace Saxonite.Web.Api.Controllers
public ResponseData_Config GetConfig_Post(RequestData_Config requestData)
{
ResponseData_Config responseData = new ResponseData_Config();
responseData.Config.Version = Sax.Version.GetFullVersion();
responseData.Config.Environment = SaxApplication_Api.AppInstance?.EnvironmentName;
responseData.Config.Instance = SaxApplication_Api.AppInstance?.InstanceType.ToString();
responseData.Config.Version = Sax.Version.GetFullVersion();
responseData.Config.Host = SaxSystem.ComputerName;
responseData.Config.ConfigLogFolder = SaxApplication_Api.AppInstance?.AppConfig.Logging.RootFolder;
responseData.Config.LogFolder = SaLogger.LogFolder;
responseData.Config.EmailContext = SaxApplication_Api.AppInstance?.EmailConfig.Context;