diff --git a/Components/Pages/Jobs.razor b/Components/Pages/Jobs.razor index 9cbc13c..7e2eb9a 100644 --- a/Components/Pages/Jobs.razor +++ b/Components/Pages/Jobs.razor @@ -277,6 +277,14 @@ +
+ + +
(selectedInterest); filter.HasSalary = selectedHasSalary == "true" ? true : selectedHasSalary == "false" ? false : null; filter.SalarySourceFilter = selectedHasSalary == "posted" || selectedHasSalary == "estimated" || selectedHasSalary == "not-estimated" ? selectedHasSalary : null; + filter.NeedsDescription = selectedNeedsDescription == "true" ? true : selectedNeedsDescription == "false" ? false : null; filter.ApplicationStage = string.IsNullOrEmpty(selectedApplicationStage) ? null : Enum.Parse(selectedApplicationStage); filter.Source = string.IsNullOrEmpty(selectedSource) ? null : selectedSource; filter.IsAgency = string.IsNullOrEmpty(selectedIsAgency) ? null : bool.Parse(selectedIsAgency); @@ -2978,6 +2988,7 @@ else selectedInterest = ""; selectedScoreBand = ""; selectedHasSalary = ""; + selectedNeedsDescription = ""; selectedApplicationStage = ""; selectedSource = ""; selectedIsAgency = ""; @@ -4318,6 +4329,7 @@ else Interest = selectedInterest, ScoreBand = selectedScoreBand, HasSalary = selectedHasSalary, + NeedsDescription = selectedNeedsDescription, SalarySearch = filter.SalarySearch, SalaryTarget = selectedSalaryTarget, SalaryType = selectedSalaryType, @@ -4350,6 +4362,7 @@ else selectedInterest = vs.Interest ?? ""; selectedScoreBand = vs.ScoreBand ?? ""; selectedHasSalary = vs.HasSalary ?? ""; + selectedNeedsDescription = vs.NeedsDescription ?? ""; selectedSalaryTarget = vs.SalaryTarget ?? ""; selectedSalaryType = vs.SalaryType ?? ""; selectedSource = vs.Source ?? ""; diff --git a/Models/AppSettings.cs b/Models/AppSettings.cs index 23e13e6..9830191 100644 --- a/Models/AppSettings.cs +++ b/Models/AppSettings.cs @@ -62,6 +62,7 @@ public class JobViewState public string? Interest { get; set; } public string? ScoreBand { get; set; } public string? HasSalary { get; set; } + public string? NeedsDescription { get; set; } public string? SalarySearch { get; set; } public string? SalaryTarget { get; set; } public string? SalaryType { get; set; } diff --git a/Portable/JobTracker-x64.zip.001 b/Portable/JobTracker-x64.zip.001 index e0b4a58..ba6576c 100644 --- a/Portable/JobTracker-x64.zip.001 +++ b/Portable/JobTracker-x64.zip.001 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:358521dd9f5cd428c5df4dfb4c0206f1ac2b9881eefdf6a4b8ad94283bed6165 +oid sha256:0c15596778b705162625ae0910dbe60b2a6f6dffb4789b51ac73a37bda54d708 size 83886080 diff --git a/Portable/JobTracker-x64.zip.002 b/Portable/JobTracker-x64.zip.002 index 894650a..9432383 100644 --- a/Portable/JobTracker-x64.zip.002 +++ b/Portable/JobTracker-x64.zip.002 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bdd15a408b2f7161b8d36baad6fa2175cf244a24d033115419791f7b6c20f325 -size 58397239 +oid sha256:67bf152d02b8380a242a94ac0cf0513dd084ad8ce9021630b9e689d212ef7388 +size 58403149 diff --git a/Portable/JobTracker-x86.zip.001 b/Portable/JobTracker-x86.zip.001 index cc6312a..41a6a56 100644 --- a/Portable/JobTracker-x86.zip.001 +++ b/Portable/JobTracker-x86.zip.001 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:19db52e944a8c4167a3c1d781bce213b9042ab04afe4d4fd53c55007d9f05094 +oid sha256:6f62e3fcc8fb611ea9ca844510072562019fac7b9f74f29e5c913ea210314b55 size 83886080 diff --git a/Portable/JobTracker-x86.zip.002 b/Portable/JobTracker-x86.zip.002 index 25cffba..eb72554 100644 --- a/Portable/JobTracker-x86.zip.002 +++ b/Portable/JobTracker-x86.zip.002 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ddd2206c61e794edb8ea4086e2ed02acd4273a43e132a7d3ebe4fbaa39a84fa0 -size 46309397 +oid sha256:c0c1e8846e44d63ddf6b9072160e996fd200bb2e76f855a745ddddeeae6faa67 +size 46302740 diff --git a/Services/JobListingService.cs b/Services/JobListingService.cs index 9a21850..bfe6c4a 100644 --- a/Services/JobListingService.cs +++ b/Services/JobListingService.cs @@ -2280,6 +2280,15 @@ public IEnumerable FilterJobListings(JobListingFilter filter) query = query.Where(j => j.Skills != null && j.Skills.Any(s => s.Contains(skillTerm, StringComparison.OrdinalIgnoreCase))); } + // Needs description filter + if (filter.NeedsDescription.HasValue) + { + if (filter.NeedsDescription.Value) + query = query.Where(j => string.IsNullOrWhiteSpace(j.Description)); + else + query = query.Where(j => !string.IsNullOrWhiteSpace(j.Description)); + } + // Sort order: // 1. Prioritized job first (if specified) // 2. Applied jobs next @@ -3100,6 +3109,7 @@ public class JobListingFilter public bool? IsAgency { get; set; } public bool ShowArchived { get; set; } public List? SkillPriorities { get; set; } + public bool? NeedsDescription { get; set; } } public enum SortOption