feat: structured salary fields (min/max/currency/period)
Adds SalaryMin/SalaryMax/SalaryCurrency/SalaryPeriod alongside the existing free-text Salary field (kept for back-compat and display). - JobApplication model + idempotent column bridging for SQLite and MySQL - Create/Update DTOs with NormalizeSalary (clamps negatives, swaps inverted min/max, uppercases currency, whitelists period) - JobApplicationDto exposes the fields; CSV export gains 4 columns - UI: add/edit dialogs get min/max/currency/period inputs; job table renders a formatted range via shared salary.ts formatter (falls back to free-text when structured values are absent) - EN/NB translations; backend + full frontend suites green Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -77,6 +77,13 @@ export const translations = {
|
||||
addJobModalStatus: "Status",
|
||||
addJobModalJobTitle: "Job title",
|
||||
addJobModalSalary: "Salary",
|
||||
salaryMinLabel: "Salary min",
|
||||
salaryMaxLabel: "Salary max",
|
||||
salaryCurrencyLabel: "Currency",
|
||||
salaryPeriodLabel: "Per",
|
||||
salaryPeriodYear: "Year",
|
||||
salaryPeriodMonth: "Month",
|
||||
salaryPeriodHour: "Hour",
|
||||
addJobModalDeadline: "Deadline",
|
||||
addJobModalDescriptionOriginal: "Description (original)",
|
||||
addJobModalTranslatedDescription: "Translated description ({language})",
|
||||
@@ -987,6 +994,13 @@ export const translations = {
|
||||
addJobModalStatus: "Status",
|
||||
addJobModalJobTitle: "Stillingstittel",
|
||||
addJobModalSalary: "Lønn",
|
||||
salaryMinLabel: "Lønn fra",
|
||||
salaryMaxLabel: "Lønn til",
|
||||
salaryCurrencyLabel: "Valuta",
|
||||
salaryPeriodLabel: "Per",
|
||||
salaryPeriodYear: "År",
|
||||
salaryPeriodMonth: "Måned",
|
||||
salaryPeriodHour: "Time",
|
||||
addJobModalDeadline: "Frist",
|
||||
addJobModalDescriptionOriginal: "Beskrivelse (original)",
|
||||
addJobModalTranslatedDescription: "Oversatt beskrivelse ({language})",
|
||||
|
||||
Reference in New Issue
Block a user