mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-04 07:24:13 +00:00 
			
		
		
		
	upd: store old date and use it in previous versions
This commit is contained in:
		
							parent
							
								
									2706b6b618
								
							
						
					
					
						commit
						83be996a3d
					
				
					 6 changed files with 27 additions and 6 deletions
				
			
		
							
								
								
									
										11
									
								
								packages/backend/migration/1697970083001-oldDateNoteEdit.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								packages/backend/migration/1697970083001-oldDateNoteEdit.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
export class OldDateNoteEdit1697970083001 {
 | 
			
		||||
	name = "OldDateNoteEdit1697970083001";
 | 
			
		||||
 | 
			
		||||
	async up(queryRunner) {
 | 
			
		||||
		await queryRunner.query(`ALTER TABLE "note_edit" ADD COLUMN "oldDate" TIMESTAMP WITH TIME ZONE`);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	async down(queryRunner) {
 | 
			
		||||
		await queryRunner.query(`ALTER TABLE "note_edit" DROP COLUMN "oldDate"`);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -388,6 +388,8 @@ export class NoteEditService implements OnApplicationShutdown {
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		if (Object.keys(update).length > 0) {
 | 
			
		||||
			const exists = await this.noteEditRepository.findOneBy({ noteId: oldnote.id });
 | 
			
		||||
 | 
			
		||||
			await this.noteEditRepository.insert({
 | 
			
		||||
				id: this.idService.gen(),
 | 
			
		||||
				noteId: oldnote.id,
 | 
			
		||||
| 
						 | 
				
			
			@ -395,6 +397,7 @@ export class NoteEditService implements OnApplicationShutdown {
 | 
			
		|||
				newText: update.text || undefined,
 | 
			
		||||
				cw: update.cw || undefined,
 | 
			
		||||
				fileIds: undefined,
 | 
			
		||||
				oldDate: exists ? oldnote.updatedAt as Date : this.idService.parse(oldnote.id).date,
 | 
			
		||||
				updatedAt: new Date(),
 | 
			
		||||
			});
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -48,4 +48,9 @@ export class NoteEdit {
 | 
			
		|||
		comment: "The updated date of the Note.",
 | 
			
		||||
	})
 | 
			
		||||
	public updatedAt: Date;
 | 
			
		||||
 | 
			
		||||
	@Column("timestamp with time zone", {
 | 
			
		||||
		comment: "The old date from before the edit",
 | 
			
		||||
	})
 | 
			
		||||
	public oldDate: Date;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -50,12 +50,13 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
 | 
			
		|||
 | 
			
		||||
			for (const edit of edits) {
 | 
			
		||||
				editArray.push({
 | 
			
		||||
					oldDate: edit.oldDate,
 | 
			
		||||
					updatedAt: edit.updatedAt,
 | 
			
		||||
					text: edit.oldText,
 | 
			
		||||
				});
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			editArray = editArray.sort((a, b) => { return new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime(); });
 | 
			
		||||
			editArray = editArray.sort((a, b) => { return new Date(b.oldDate).getTime() - new Date(a.oldDate).getTime(); });
 | 
			
		||||
 | 
			
		||||
			return editArray;
 | 
			
		||||
		});
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,7 +24,7 @@ export async function getNoteVersionsMenu(props: {
 | 
			
		|||
		os.popup(defineAsyncComponent(() => import('@/components/SkOldNoteWindow.vue')), {
 | 
			
		||||
			note: appearNote,
 | 
			
		||||
			oldText: info.text,
 | 
			
		||||
			updatedAt: info.updatedAt,
 | 
			
		||||
			updatedAt: info.oldDate ? info.oldDate : info.updatedAt,
 | 
			
		||||
		}, {
 | 
			
		||||
		}, 'closed');
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -36,13 +36,13 @@ export async function getNoteVersionsMenu(props: {
 | 
			
		|||
 | 
			
		||||
	await statePromise.then((versions) => {
 | 
			
		||||
		for (const edit of versions) {
 | 
			
		||||
			const _time = edit.updatedAt == null ? NaN :
 | 
			
		||||
				typeof edit.updatedAt === 'number' ? edit.updatedAt :
 | 
			
		||||
				(edit.updatedAt instanceof Date ? edit.updatedAt : new Date(edit.updatedAt)).getTime();
 | 
			
		||||
			const _time = edit.oldDate == null ? NaN :
 | 
			
		||||
				typeof edit.oldDate === 'number' ? edit.oldDate :
 | 
			
		||||
				(edit.oldDate instanceof Date ? edit.oldDate : new Date(edit.oldDate)).getTime();
 | 
			
		||||
			
 | 
			
		||||
			menu.push({
 | 
			
		||||
				icon: 'ph-pencil ph-bold ph-lg',
 | 
			
		||||
				text: dateTimeFormat.format(_time),
 | 
			
		||||
				text: _time ? dateTimeFormat.format(_time) : dateTimeFormat.format(new Date(edit.updatedAt)),
 | 
			
		||||
				action: () => openVersion(edit),
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -235,6 +235,7 @@ export type NoteEdit = {
 | 
			
		|||
	cw: string;
 | 
			
		||||
	fileIds: DriveFile['id'][];
 | 
			
		||||
	updatedAt?: DateString;
 | 
			
		||||
	oldDate: DateString;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export type Notification = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue