Merge pull request 'working' (#41) from working into main
Docker Build and Release Upload / build (push) Successful in 1m33s

Reviewed-on: #41
This commit was merged in pull request #41.
This commit is contained in:
2025-09-09 01:34:53 +00:00
4 changed files with 44 additions and 14 deletions
+1 -1
View File
@@ -42,7 +42,6 @@ Client:
Allow users to look up jobs and apply [ Boost visibility | Completely manual ] Allow users to look up jobs and apply [ Boost visibility | Completely manual ]
Mark ghost listings to allow users to be informed and put companies on blast Mark ghost listings to allow users to be informed and put companies on blast
Dont allow users to apply to the same job more than once Dont allow users to apply to the same job more than once
Need to add 'job field' to job for better filtering
Need to add 'clear filter button' Need to add 'clear filter button'
resume/viewer: resume/viewer:
@@ -55,6 +54,7 @@ Client:
Format phone number for database Format phone number for database
Check DataType's for email and phone. Check DataType's for email and phone.
Edit employees not implimented yet Edit employees not implimented yet
verify email buttons are very tall
resume/editor: resume/editor:
There is no data validation There is no data validation
@@ -16,6 +16,7 @@ button {
.top-bar { .top-bar {
display: flex; display: flex;
flex-wrap: wrap;
break-inside: avoid; break-inside: avoid;
padding: 20px; padding: 20px;
border-radius: 20px; border-radius: 20px;
@@ -28,7 +29,8 @@ button {
.top-bar-sub { .top-bar-sub {
display: flex; display: flex;
height: 20px; height: 40px;
align-items: center;
} }
.top-bar-sub :nth-child(1) { .top-bar-sub :nth-child(1) {
@@ -39,7 +41,9 @@ button {
.top-bar-sub :nth-child(2) { .top-bar-sub :nth-child(2) {
margin-right: 50px; margin-right: 50px;
margin-left: 5px; margin-left: 5px;
height: 15px; margin-top: 0;
padding: initial;
height: 20px;
} }
.full-width { .full-width {
@@ -115,6 +119,19 @@ button {
color: var(--Mistox-Black); color: var(--Mistox-Black);
} }
.jobs-per-page {
display: flex;
justify-content: end;
padding: 20px;
padding-top: 0;
}
.jobs-per-page h1 {
margin: 0;
margin-right: 5px;
font-size: 20px;
}
@media (max-width: 1920px) { @media (max-width: 1920px) {
.tile-frame{ .tile-frame{
grid-template-columns: repeat(3, 1fr); grid-template-columns: repeat(3, 1fr);
@@ -2,33 +2,37 @@
<div class="top-bar"> <div class="top-bar">
<div class="top-bar-sub"> <div class="top-bar-sub">
<h1>Country</h1> <h1>Country</h1>
<input name="CountryCode" [(ngModel)]="currentFilter.CountryCode" (ngModelChange)="reloadFilters()" type="text" /> <input name="CountryCode" [(ngModel)]="currentFilter.CountryCode" (ngModelChange)="checkUpdate()" type="text" />
</div> </div>
<div class="top-bar-sub"> <div class="top-bar-sub">
<h1>Postal Code</h1> <h1>Postal Code</h1>
<input name="PostalCode" [(ngModel)]="currentFilter.PostalCode" (ngModelChange)="reloadFilters()" type="text" /> <input name="PostalCode" [(ngModel)]="currentFilter.PostalCode" (ngModelChange)="checkUpdate()" type="text" />
</div> </div>
@if (currentFilter.CountryCode != null && currentFilter.CountryCode !== "" && currentFilter.PostalCode != null && currentFilter.PostalCode !== ""){ @if (currentFilter.CountryCode != null && currentFilter.CountryCode !== "" && currentFilter.PostalCode != null && currentFilter.PostalCode !== ""){
<div class="top-bar-sub"> <div class="top-bar-sub">
<h1>Distance</h1> <h1>Distance</h1>
<input name="Distance" [(ngModel)]="currentFilter.Distance" (ngModelChange)="reloadFilters()" type="number" /> <input name="Distance" [(ngModel)]="currentFilter.Distance" type="number" />
</div> </div>
} }
<div class="top-bar-sub"> <div class="top-bar-sub">
<h1>Job Type</h1> <h1>Job Type</h1>
<input name="CountryCode" [(ngModel)]="currentFilter.JobType" (ngModelChange)="reloadFilters()" type="text" /> <input name="CountryCode" [(ngModel)]="currentFilter.JobType" type="text" />
</div> </div>
<div class="top-bar-sub"> <div class="top-bar-sub">
<h1>Remote</h1> <h1>Remote</h1>
<input name="Remote" [(ngModel)]="currentFilter.Remote" (ngModelChange)="reloadFilters()" type="checkbox" /> <input name="Remote" [(ngModel)]="currentFilter.Remote" type="checkbox" />
</div> </div>
<div class="top-bar-sub"> <div class="top-bar-sub">
<h1>Minimum Salary</h1> <h1>Minimum Salary</h1>
<input name="SalaryMin" [(ngModel)]="currentFilter.SalaryMin" (ngModelChange)="reloadFilters()" type="number" /> <input name="SalaryMin" [(ngModel)]="currentFilter.SalaryMin" type="number" />
</div> </div>
<div class="top-bar-sub"> <div class="top-bar-sub">
<h1>Maximum Salary</h1> <h1>Maximum Salary</h1>
<input name="SalaryMax" [(ngModel)]="currentFilter.SalaryMax" (ngModelChange)="reloadFilters()" type="number" /> <input name="SalaryMax" [(ngModel)]="currentFilter.SalaryMax" type="number" />
</div>
<div class="top-bar-sub">
<h1></h1>
<input name="ApplyButton" style="height: 25px;" value="APPLY" type="button" (click)="reloadFilters()" />
</div> </div>
</div> </div>
@@ -44,6 +48,8 @@
<h1>{{ cur.jobType }}</h1> <h1>{{ cur.jobType }}</h1>
@if(cur.remote){ @if(cur.remote){
<h1>Remote</h1> <h1>Remote</h1>
}@else{
<h1>In-Person</h1>
} }
</div> </div>
<div class="tile-split"> <div class="tile-split">
@@ -55,8 +61,9 @@
</div> </div>
</div> </div>
} }
<div> </div>
<div class="jobs-per-page">
<h1>Jobs Per Page</h1> <h1>Jobs Per Page</h1>
<input name="JobsPerPage" [(ngModel)]="currentFilter.JobsPerPage" (ngModelChange)="reloadFilters()" type="number" /> <input name="JobsPerPage" [(ngModel)]="currentFilter.JobsPerPage" (ngModelChange)="reloadFilters()" type="number" />
</div> </div>
</div>
@@ -38,6 +38,12 @@ export class JobsComponent {
}); });
} }
checkUpdate(){
if ( this.currentFilter.PostalCode === "" || this.currentFilter.CountryCode === "" ){
this.currentFilter.Distance = null;
}
}
reloadFilters(){ reloadFilters(){
var queryBuilder = "api/joblisting?PageQuantity=" + this.currentFilter.JobsPerPage + "&Page=" + this.currentFilter.CurrentPage; var queryBuilder = "api/joblisting?PageQuantity=" + this.currentFilter.JobsPerPage + "&Page=" + this.currentFilter.CurrentPage;