mirror of
https://github.com/stashapp/stash.git
synced 2025-12-06 08:26:00 +01:00
allow partial dates (#6333)
This commit is contained in:
parent
97c01c70b3
commit
88747b962a
2 changed files with 17 additions and 3 deletions
|
|
@ -1571,7 +1571,7 @@
|
|||
"urls": "URLs",
|
||||
"validation": {
|
||||
"blank": "${path} must not be blank",
|
||||
"date_invalid_form": "${path} must be in YYYY-MM-DD form",
|
||||
"date_invalid_form": "${path} must be in YYYY, YYYY-MM, or YYYY-MM-DD form",
|
||||
"end_time_before_start_time": "End time must be greater than or equal to start time",
|
||||
"required": "${path} is a required field",
|
||||
"unique": "${path} must be unique"
|
||||
|
|
|
|||
|
|
@ -139,8 +139,22 @@ export function yupDateString(intl: IntlShape) {
|
|||
name: "date",
|
||||
test(value) {
|
||||
if (!value) return true;
|
||||
if (!value.match(/^\d{4}-\d{2}-\d{2}$/)) return false;
|
||||
// Allow YYYY, YYYY-MM, or YYYY-MM-DD formats
|
||||
if (!value.match(/^\d{4}(-\d{2}(-\d{2})?)?$/)) return false;
|
||||
// Validate the date components
|
||||
const parts = value.split("-");
|
||||
const year = parseInt(parts[0], 10);
|
||||
if (year < 1 || year > 9999) return false;
|
||||
if (parts.length >= 2) {
|
||||
const month = parseInt(parts[1], 10);
|
||||
if (month < 1 || month > 12) return false;
|
||||
}
|
||||
if (parts.length === 3) {
|
||||
const day = parseInt(parts[2], 10);
|
||||
if (day < 1 || day > 31) return false;
|
||||
// Full date - validate it parses correctly
|
||||
if (Number.isNaN(Date.parse(value))) return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
message: intl.formatMessage({ id: "validation.date_invalid_form" }),
|
||||
|
|
|
|||
Loading…
Reference in a new issue