You've already forked joplin
							
							
				mirror of
				https://github.com/laurent22/joplin.git
				synced 2025-10-31 00:07:48 +02:00 
			
		
		
		
	Fixed sync issue with conflicted notes
This commit is contained in:
		| @@ -546,5 +546,21 @@ describe('Synchronizer', function() { | ||||
|  | ||||
| 		done(); | ||||
| 	}); | ||||
|  | ||||
| 	it('should not sync notes with conflicts', async (done) => { | ||||
| 		let f1 = await Folder.save({ title: "folder" }); | ||||
| 		let n1 = await Note.save({ title: "mynote", parent_id: f1.id, is_conflict: 1 }); | ||||
| 		await synchronizer().start(); | ||||
|  | ||||
| 		await switchClient(2); | ||||
|  | ||||
| 		await synchronizer().start(); | ||||
| 		let notes = await Note.all(); | ||||
| 		let folders = await Folder.all() | ||||
| 		expect(notes.length).toBe(0); | ||||
| 		expect(folders.length).toBe(1); | ||||
|  | ||||
| 		done(); | ||||
| 	}); | ||||
| 	 | ||||
| }); | ||||
| @@ -257,16 +257,21 @@ class BaseItem extends BaseModel { | ||||
| 			const fieldNames = ItemClass.fieldNames(true); | ||||
| 			fieldNames.push('sync_time'); | ||||
|  | ||||
| 			let extraWhere = className == 'Note' ? 'AND is_conflict = 0' : ''; | ||||
|  | ||||
| 			let sql = sprintf(` | ||||
| 				SELECT %s FROM %s | ||||
| 				LEFT JOIN sync_items t ON t.item_id = %s.id | ||||
| 				WHERE t.id IS NULL OR t.sync_time < %s.updated_time | ||||
| 				WHERE  | ||||
| 					(t.id IS NULL OR t.sync_time < %s.updated_time) | ||||
| 					%s | ||||
| 				LIMIT %d | ||||
| 			`, | ||||
| 			this.db().escapeFields(fieldNames), | ||||
| 			this.db().escapeField(ItemClass.tableName()), | ||||
| 			this.db().escapeField(ItemClass.tableName()), | ||||
| 			this.db().escapeField(ItemClass.tableName()), | ||||
| 			extraWhere, | ||||
| 			limit); | ||||
|  | ||||
| 			const items = await ItemClass.modelSelectAll(sql); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user