notes are now created with correct local dates

This commit is contained in:
zadam
2019-03-13 22:43:59 +01:00
parent b68b0fe783
commit 0d0464549f
28 changed files with 482 additions and 250 deletions

View File

@@ -35,8 +35,8 @@ function BackendScriptApi(currentNote, apiParams) {
this.utils = {
unescapeHtml: utils.unescapeHtml,
isoDateTimeStr: dateUtils.dateStr,
isoDateStr: date => dateUtils.dateStr(date).substr(0, 10)
isoDateTimeStr: dateUtils.utcDateStr,
isoDateStr: date => dateUtils.utcDateStr(date).substr(0, 10)
};
/**

View File

@@ -24,7 +24,7 @@ async function periodBackup(optionName, fileName, periodInSeconds) {
if (now.getTime() - lastDailyBackupDate.getTime() > periodInSeconds * 1000) {
await backupNow(fileName);
await optionService.setOption(optionName, dateUtils.nowDate());
await optionService.setOption(optionName, dateUtils.utcNowDateTime());
}
}

View File

@@ -144,7 +144,7 @@ async function getWeekNote(dateStr, options = {}) {
const dateObj = getStartOfTheWeek(dateUtils.parseLocalDate(dateStr), startOfTheWeek);
dateStr = dateUtils.dateStr(dateObj);
dateStr = dateUtils.utcDateStr(dateObj);
return getDateNote(dateStr);
}

View File

@@ -1,8 +1,14 @@
function nowDate() {
return dateStr(new Date());
const dayjs = require('dayjs');
function utcNowDateTime() {
return utcDateStr(new Date());
}
function nowLocalDate() {
function localNowDateTime() {
return dayjs().format('YYYY-MM-DD HH:mm:ss.SSSZZ')
}
function localNowDate() {
const date = new Date();
return date.getFullYear() + "-" + pad(date.getMonth() + 1) + "-" + pad(date.getDate());
@@ -12,8 +18,8 @@ function pad(num) {
return num <= 9 ? `0${num}` : `${num}`;
}
function dateStr(date) {
return date.toISOString();
function utcDateStr(date) {
return date.toISOString().replace('T', ' ');
}
/**
@@ -47,9 +53,10 @@ function getDateTimeForFile() {
}
module.exports = {
nowDate,
nowLocalDate,
dateStr,
utcNowDateTime,
localNowDateTime,
localNowDate,
utcDateStr,
parseDate,
parseDateTime,
parseLocalDate,

View File

@@ -12,7 +12,7 @@ async function addNoteEvent(noteId, comment) {
eventId: utils.newEntityId(),
noteId : noteId,
comment: comment,
utcDateCreated: dateUtils.nowDate()
utcDateCreated: dateUtils.utcNowDateTime()
});
log.info("Event log for " + noteId + ": " + comment);

View File

@@ -64,7 +64,8 @@ async function migrate() {
throw new Error("Unknown migration type " + mig.type);
}
await optionService.setOption("dbVersion", mig.dbVersion);
// not using repository because of changed utcDateModified column in migration 129
await sql.execute(`UPDATE options SET value = ? WHERE name = ?`, [mig.dbVersion, "dbVersion"]);
});
log.info("Migration to version " + mig.dbVersion + " has been successful.");

View File

@@ -299,7 +299,7 @@ async function saveNoteRevision(note) {
const now = new Date();
const noteRevisionSnapshotTimeInterval = parseInt(await optionService.getOption('noteRevisionSnapshotTimeInterval'));
const revisionCutoff = dateUtils.dateStr(new Date(now.getTime() - noteRevisionSnapshotTimeInterval * 1000));
const revisionCutoff = dateUtils.utcDateStr(new Date(now.getTime() - noteRevisionSnapshotTimeInterval * 1000));
const existingNoteRevisionId = await sql.getValue(
"SELECT noteRevisionId FROM note_revisions WHERE noteId = ? AND utcDateModifiedTo >= ?", [note.noteId, revisionCutoff]);
@@ -315,8 +315,10 @@ async function saveNoteRevision(note) {
type: note.type,
mime: note.mime,
isProtected: false, // will be fixed in the protectNoteRevisions() call
dateModifiedFrom: note.dateModified,
dateModifiedTo: dateUtils.localNowDateTime(),
utcDateModifiedFrom: note.utcDateModified,
utcDateModifiedTo: dateUtils.nowDate()
utcDateModifiedTo: dateUtils.utcNowDateTime()
}).save();
}
}
@@ -405,9 +407,9 @@ async function cleanupDeletedNotes() {
// it's better to not use repository for this because it will complain about saving protected notes
// out of protected session
await sql.execute("UPDATE note_contents SET content = NULL WHERE content IS NOT NULL AND noteId IN (SELECT noteId FROM notes WHERE isDeleted = 1 AND notes.utcDateModified <= ?)", [dateUtils.dateStr(cutoffDate)]);
await sql.execute("UPDATE note_contents SET content = NULL WHERE content IS NOT NULL AND noteId IN (SELECT noteId FROM notes WHERE isDeleted = 1 AND notes.utcDateModified <= ?)", [dateUtils.utcDateStr(cutoffDate)]);
await sql.execute("UPDATE note_revisions SET content = NULL WHERE note_revisions.content IS NOT NULL AND noteId IN (SELECT noteId FROM notes WHERE isDeleted = 1 AND notes.utcDateModified <= ?)", [dateUtils.dateStr(cutoffDate)]);
await sql.execute("UPDATE note_revisions SET content = NULL WHERE note_revisions.content IS NOT NULL AND noteId IN (SELECT noteId FROM notes WHERE isDeleted = 1 AND notes.utcDateModified <= ?)", [dateUtils.utcDateStr(cutoffDate)]);
}
sqlInit.dbReady.then(() => {

View File

@@ -31,9 +31,9 @@ async function initSyncedOptions(username, password) {
async function initNotSyncedOptions(initialized, startNotePath = 'root', syncServerHost = '', syncProxy = '') {
await optionService.createOption('startNotePath', startNotePath, false);
await optionService.createOption('hoistedNoteId', 'root', false);
await optionService.createOption('lastDailyBackupDate', dateUtils.nowDate(), false);
await optionService.createOption('lastWeeklyBackupDate', dateUtils.nowDate(), false);
await optionService.createOption('lastMonthlyBackupDate', dateUtils.nowDate(), false);
await optionService.createOption('lastDailyBackupDate', dateUtils.utcNowDateTime(), false);
await optionService.createOption('lastWeeklyBackupDate', dateUtils.utcNowDateTime(), false);
await optionService.createOption('lastMonthlyBackupDate', dateUtils.utcNowDateTime(), false);
await optionService.createOption('dbVersion', appInfo.dbVersion, false);
await optionService.createOption('lastSyncedPull', 0, false);

View File

@@ -8,7 +8,7 @@ const cls = require('./cls');
async function saveSourceId(sourceId) {
await sql.insert("source_ids", {
sourceId: sourceId,
utcDateCreated: dateUtils.nowDate()
utcDateCreated: dateUtils.utcNowDateTime()
});
await refreshSourceIds();

View File

@@ -79,7 +79,7 @@ async function login() {
}
async function doLogin() {
const timestamp = dateUtils.nowDate();
const timestamp = dateUtils.utcNowDateTime();
const documentSecret = await optionService.getOption('documentSecret');
const hash = utils.hmac(documentSecret, timestamp);

View File

@@ -48,7 +48,7 @@ async function addEntitySync(entityName, entityId, sourceId) {
await sql.replace("sync", {
entityName: entityName,
entityId: entityId,
utcSyncDate: dateUtils.nowDate(),
utcSyncDate: dateUtils.utcNowDateTime(),
sourceId: sourceId || cls.getSourceId() || sourceIdService.getCurrentSourceId()
});
}
@@ -78,7 +78,7 @@ async function fillSyncRows(entityName, entityKey, condition = '') {
entityName: entityName,
entityId: entityId,
sourceId: "SYNC_FILL",
utcSyncDate: dateUtils.nowDate()
utcSyncDate: dateUtils.utcNowDateTime()
});
}
}