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