chore: release v0.36.1
This commit is contained in:
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [0.36.1] - 2026-04-29
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Date input: default date format changed from US (`MM/DD/YYYY`) to day-month-year (`DD.MM.YYYY`) for new users
|
||||||
|
- Date input: dot-separated dates (`DD.MM.YYYY`) are now accepted in addition to slash-separated dates
|
||||||
|
- Date input: `dmy` placeholder and display format updated to use dots instead of slashes
|
||||||
|
|
||||||
## [0.36.0] - 2026-04-29
|
## [0.36.0] - 2026-04-29
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "oikos",
|
"name": "oikos",
|
||||||
"version": "0.36.0",
|
"version": "0.36.1",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "oikos",
|
"name": "oikos",
|
||||||
"version": "0.36.0",
|
"version": "0.36.1",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bcrypt": "^6.0.0",
|
"bcrypt": "^6.0.0",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "oikos",
|
"name": "oikos",
|
||||||
"version": "0.36.0",
|
"version": "0.36.1",
|
||||||
"description": "Self-hosted family planner - calendar, tasks, shopping, meal planning, budget and more. Private, open-source, no subscription.",
|
"description": "Self-hosted family planner - calendar, tasks, shopping, meal planning, budget and more. Private, open-source, no subscription.",
|
||||||
"main": "server/index.js",
|
"main": "server/index.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
+4
-4
@@ -9,7 +9,7 @@ const SUPPORTED_LOCALES = ['de', 'en', 'es', 'fr', 'it', 'sv', 'el', 'ru', 'tr',
|
|||||||
const DEFAULT_LOCALE = 'de';
|
const DEFAULT_LOCALE = 'de';
|
||||||
const STORAGE_KEY = 'oikos-locale';
|
const STORAGE_KEY = 'oikos-locale';
|
||||||
const DATE_FORMAT_KEY = 'oikos-date-format';
|
const DATE_FORMAT_KEY = 'oikos-date-format';
|
||||||
const DEFAULT_DATE_FORMAT = 'mdy';
|
const DEFAULT_DATE_FORMAT = 'dmy';
|
||||||
|
|
||||||
let currentLocale = DEFAULT_LOCALE;
|
let currentLocale = DEFAULT_LOCALE;
|
||||||
let translations = {};
|
let translations = {};
|
||||||
@@ -100,7 +100,7 @@ function formatDateParts(date, useUtc = false) {
|
|||||||
const month = String((useUtc ? d.getUTCMonth() : d.getMonth()) + 1).padStart(2, '0');
|
const month = String((useUtc ? d.getUTCMonth() : d.getMonth()) + 1).padStart(2, '0');
|
||||||
const day = String(useUtc ? d.getUTCDate() : d.getDate()).padStart(2, '0');
|
const day = String(useUtc ? d.getUTCDate() : d.getDate()).padStart(2, '0');
|
||||||
switch (getDateFormatPreference()) {
|
switch (getDateFormatPreference()) {
|
||||||
case 'dmy': return `${day}/${month}/${year}`;
|
case 'dmy': return `${day}.${month}.${year}`;
|
||||||
case 'ymd': return `${year}-${month}-${day}`;
|
case 'ymd': return `${year}-${month}-${day}`;
|
||||||
default: return `${month}/${day}/${year}`;
|
default: return `${month}/${day}/${year}`;
|
||||||
}
|
}
|
||||||
@@ -127,7 +127,7 @@ export function formatDate(date) {
|
|||||||
|
|
||||||
export function dateInputPlaceholder() {
|
export function dateInputPlaceholder() {
|
||||||
switch (getDateFormatPreference()) {
|
switch (getDateFormatPreference()) {
|
||||||
case 'dmy': return 'DD/MM/YYYY';
|
case 'dmy': return 'DD.MM.YYYY';
|
||||||
case 'ymd': return 'YYYY-MM-DD';
|
case 'ymd': return 'YYYY-MM-DD';
|
||||||
default: return 'MM/DD/YYYY';
|
default: return 'MM/DD/YYYY';
|
||||||
}
|
}
|
||||||
@@ -145,7 +145,7 @@ export function parseDateInput(value) {
|
|||||||
const isoMatch = raw.match(/^(\d{4})-(\d{2})-(\d{2})$/);
|
const isoMatch = raw.match(/^(\d{4})-(\d{2})-(\d{2})$/);
|
||||||
if (isoMatch) return isValidDateParts(isoMatch[1], isoMatch[2], isoMatch[3]) ? raw : '';
|
if (isoMatch) return isValidDateParts(isoMatch[1], isoMatch[2], isoMatch[3]) ? raw : '';
|
||||||
|
|
||||||
const slashMatch = raw.match(/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/);
|
const slashMatch = raw.match(/^(\d{1,2})[\/.](\d{1,2})[\/.](\d{4})$/);
|
||||||
if (!slashMatch) return '';
|
if (!slashMatch) return '';
|
||||||
|
|
||||||
const [, first, second, year] = slashMatch;
|
const [, first, second, year] = slashMatch;
|
||||||
|
|||||||
Reference in New Issue
Block a user