mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-03 20:06:08 +01:00 
			
		
		
		
	chore: 🤖 move data_notes to using dayjs
This commit is contained in:
		@@ -1,6 +1,5 @@
 | 
			
		||||
import noteService from "./notes.js";
 | 
			
		||||
import attributeService from "./attributes.js";
 | 
			
		||||
import dateUtils from "./date_utils.js";
 | 
			
		||||
import sql from "./sql.js";
 | 
			
		||||
import protectedSessionService from "./protected_session.js";
 | 
			
		||||
import searchService from "../services/search/services/search.js";
 | 
			
		||||
@@ -108,14 +107,14 @@ function getYearNote(dateStr: string, _rootNote: BNote | null = null): BNote {
 | 
			
		||||
    return yearNote as unknown as BNote;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function getMonthNoteTitle(rootNote: BNote, monthNumber: string, dateObj: Date) {
 | 
			
		||||
function getMonthNoteTitle(rootNote: BNote, monthNumber: string, dateObj: Dayjs) {
 | 
			
		||||
    const pattern = rootNote.getOwnedLabelValue("monthPattern") || "{monthNumberPadded} - {month}";
 | 
			
		||||
    const monthName = t(MONTH_TRANSLATION_IDS[dateObj.getMonth()]);
 | 
			
		||||
    const monthName = t(MONTH_TRANSLATION_IDS[dateObj.month()]);
 | 
			
		||||
 | 
			
		||||
    return pattern
 | 
			
		||||
        .replace(/{shortMonth3}/g, monthName.slice(0, 3))
 | 
			
		||||
        .replace(/{shortMonth4}/g, monthName.slice(0, 4))
 | 
			
		||||
        .replace(/{isoMonth}/g, dateUtils.utcDateStr(dateObj).slice(0, 7))
 | 
			
		||||
        .replace(/{isoMonth}/g, dateObj.format('YYYY-MM'))
 | 
			
		||||
        .replace(/{monthNumberPadded}/g, monthNumber)
 | 
			
		||||
        .replace(/{month}/g, monthName);
 | 
			
		||||
}
 | 
			
		||||
@@ -132,9 +131,7 @@ function getMonthNote(dateStr: string, _rootNote: BNote | null = null): BNote {
 | 
			
		||||
        return monthNote;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const dateObj = dateUtils.parseLocalDate(dateStr);
 | 
			
		||||
 | 
			
		||||
    const noteTitle = getMonthNoteTitle(rootNote, monthNumber, dateObj);
 | 
			
		||||
    const noteTitle = getMonthNoteTitle(rootNote, monthNumber, dayjs(dateStr));
 | 
			
		||||
 | 
			
		||||
    const yearNote = getYearNote(dateStr, rootNote);
 | 
			
		||||
 | 
			
		||||
@@ -154,14 +151,14 @@ function getMonthNote(dateStr: string, _rootNote: BNote | null = null): BNote {
 | 
			
		||||
    return monthNote as unknown as BNote;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function getDayNoteTitle(rootNote: BNote, dayNumber: string, dateObj: Date) {
 | 
			
		||||
function getDayNoteTitle(rootNote: BNote, dayNumber: string, dateObj: Dayjs) {
 | 
			
		||||
    const pattern = rootNote.getOwnedLabelValue("datePattern") || "{dayInMonthPadded} - {weekDay}";
 | 
			
		||||
    const weekDay = t(WEEKDAY_TRANSLATION_IDS[dateObj.getDay()]);
 | 
			
		||||
    const weekDay = t(WEEKDAY_TRANSLATION_IDS[dateObj.day()]);
 | 
			
		||||
 | 
			
		||||
    return pattern
 | 
			
		||||
        .replace(/{ordinal}/g, ordinal(parseInt(dayNumber)))
 | 
			
		||||
        .replace(/{dayInMonthPadded}/g, dayNumber)
 | 
			
		||||
        .replace(/{isoDate}/g, dateUtils.utcDateStr(dateObj))
 | 
			
		||||
        .replace(/{isoDate}/g, dateObj.format('YYYY-MM-DD'))
 | 
			
		||||
        .replace(/{weekDay}/g, weekDay)
 | 
			
		||||
        .replace(/{weekDay3}/g, weekDay.substring(0, 3))
 | 
			
		||||
        .replace(/{weekDay2}/g, weekDay.substring(0, 2));
 | 
			
		||||
@@ -196,9 +193,7 @@ function getDayNote(dateStr: string, _rootNote: BNote | null = null): BNote {
 | 
			
		||||
 | 
			
		||||
    const dayNumber = dateStr.substring(8, 10);
 | 
			
		||||
 | 
			
		||||
    const dateObj = dateUtils.parseLocalDate(dateStr);
 | 
			
		||||
 | 
			
		||||
    const noteTitle = getDayNoteTitle(rootNote, dayNumber, dateObj);
 | 
			
		||||
    const noteTitle = getDayNoteTitle(rootNote, dayNumber, dayjs(dateStr));
 | 
			
		||||
 | 
			
		||||
    sql.transactional(() => {
 | 
			
		||||
        dateNote = createNote(dateParentNote as BNote, noteTitle);
 | 
			
		||||
@@ -216,23 +211,20 @@ function getDayNote(dateStr: string, _rootNote: BNote | null = null): BNote {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function getTodayNote(rootNote: BNote | null = null) {
 | 
			
		||||
    return getDayNote(dateUtils.localNowDate(), rootNote);
 | 
			
		||||
    return getDayNote(dayjs().format('YYYY-MM-DD'), rootNote);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function getWeekStartDate(date: Date, startOfWeek: string): Date {
 | 
			
		||||
    const day = date.getDay();
 | 
			
		||||
function getWeekStartDate(date: Dayjs): Dayjs {
 | 
			
		||||
    const day = date.day();
 | 
			
		||||
    let diff;
 | 
			
		||||
 | 
			
		||||
    if (startOfWeek === "monday") {
 | 
			
		||||
        diff = date.getDate() - day + (day === 0 ? -6 : 1); // adjust when day is sunday
 | 
			
		||||
    } else if (startOfWeek === "sunday") {
 | 
			
		||||
        diff = date.getDate() - day;
 | 
			
		||||
    } else {
 | 
			
		||||
        throw new Error(`Unrecognized start of the week ${startOfWeek}`);
 | 
			
		||||
    if (optionService.getOption("firstDayOfWeek") === "0") { // Sunday
 | 
			
		||||
        diff = date.date() - day + (day === 0 ? -6 : 1); // adjust when day is sunday
 | 
			
		||||
    } else { // Monday
 | 
			
		||||
        diff = date.date() - day;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const startDate = new Date(date);
 | 
			
		||||
    startDate.setDate(diff);
 | 
			
		||||
    const startDate = date.clone().date(diff);
 | 
			
		||||
    return startDate;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -307,13 +299,8 @@ function getWeekNumberStr(date: Dayjs): string {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function getWeekFirstDayNote(dateStr: string, rootNote: BNote | null = null) {
 | 
			
		||||
    const startOfWeek = optionService.getOption("firstDayOfWeek") === '0' ? 'sunday' : 'monday';
 | 
			
		||||
 | 
			
		||||
    const dateObj = getWeekStartDate(dateUtils.parseLocalDate(dateStr), startOfWeek);
 | 
			
		||||
 | 
			
		||||
    dateStr = dateUtils.utcDateTimeStr(dateObj);
 | 
			
		||||
 | 
			
		||||
    return getDayNote(dateStr, rootNote);
 | 
			
		||||
    const weekStartDate = getWeekStartDate(dayjs(dateStr));
 | 
			
		||||
    return getDayNote(weekStartDate.format('YYYY-MM-DD'), rootNote);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function checkWeekNoteEnabled(rootNote: BNote) {
 | 
			
		||||
@@ -349,18 +336,16 @@ function getWeekNote(weekStr: string, _rootNote: BNote | null = null): BNote | n
 | 
			
		||||
    const year = parseInt(yearStr);
 | 
			
		||||
    const weekNumber = parseInt(weekNumStr);
 | 
			
		||||
 | 
			
		||||
    const firstDayOfYear = new Date(year, 0, 1);
 | 
			
		||||
    const weekStartDate = new Date(firstDayOfYear);
 | 
			
		||||
    weekStartDate.setDate(firstDayOfYear.getDate() + (weekNumber - 1) * 7);
 | 
			
		||||
    const firstDayOfYear = dayjs().year(year).month(0).date(1);
 | 
			
		||||
    const weekStartDate = firstDayOfYear.add(weekNumber - 1, 'week');
 | 
			
		||||
 | 
			
		||||
    const startDate = getWeekStartDate(weekStartDate, optionService.getOption("firstDayOfWeek") === '0' ? 'sunday' : 'monday');
 | 
			
		||||
    const endDate = new Date(startDate);
 | 
			
		||||
    endDate.setDate(startDate.getDate() + 6);
 | 
			
		||||
    const startDate = getWeekStartDate(weekStartDate);
 | 
			
		||||
    const endDate = dayjs(startDate).add(6, 'day');
 | 
			
		||||
 | 
			
		||||
    const startMonth = startDate.getMonth();
 | 
			
		||||
    const endMonth = endDate.getMonth();
 | 
			
		||||
    const startMonth = startDate.month();
 | 
			
		||||
    const endMonth = endDate.month();
 | 
			
		||||
 | 
			
		||||
    const monthNote = getMonthNote(dateUtils.utcDateStr(startDate), rootNote);
 | 
			
		||||
    const monthNote = getMonthNote(startDate.format('YYYY-MM-DD'), rootNote);
 | 
			
		||||
    const noteTitle = getWeekNoteTitle(rootNote, weekNumber);
 | 
			
		||||
 | 
			
		||||
    sql.transactional(() => {
 | 
			
		||||
@@ -377,7 +362,7 @@ function getWeekNote(weekStr: string, _rootNote: BNote | null = null): BNote | n
 | 
			
		||||
 | 
			
		||||
        // If the week spans different months, clone the week note in the other month as well
 | 
			
		||||
        if (startMonth !== endMonth) {
 | 
			
		||||
            const secondMonthNote = getMonthNote(dateUtils.utcDateStr(endDate), rootNote);
 | 
			
		||||
            const secondMonthNote = getMonthNote(endDate.format('YYYY-MM-DD'), rootNote);
 | 
			
		||||
            cloningService.cloneNoteToParentNote(weekNote.noteId, secondMonthNote.noteId);
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user