You've already forked joplin
							
							
				mirror of
				https://github.com/laurent22/joplin.git
				synced 2025-10-31 00:07:48 +02:00 
			
		
		
		
	Desktop: Fixes #6129: Exported JEX notebook should not contain share metadata
This commit is contained in:
		| @@ -7,7 +7,7 @@ import Note from '../../models/Note'; | ||||
| import Tag from '../../models/Tag'; | ||||
| import Resource from '../../models/Resource'; | ||||
| import * as fs from 'fs-extra'; | ||||
| import { NoteEntity, ResourceEntity } from '../database/types'; | ||||
| import { FolderEntity, NoteEntity, ResourceEntity } from '../database/types'; | ||||
| import { ModelType } from '../../BaseModel'; | ||||
| const ArrayUtils = require('../../ArrayUtils'); | ||||
|  | ||||
| @@ -520,8 +520,11 @@ describe('services_InteropService', function() { | ||||
| 	})); | ||||
|  | ||||
| 	it('should not export certain note properties', (async () => { | ||||
| 		const folder = await Folder.save({ title: 'folder' }); | ||||
| 		await Note.save({ title: 'note', is_shared: 1, share_id: 'someid', parent_id: folder.id }); | ||||
| 		const folder = await Folder.save({ title: 'folder', share_id: 'some_id', is_shared: 1 }); | ||||
| 		let note = await Note.save({ title: 'note', is_shared: 1, share_id: 'someid', parent_id: folder.id }); | ||||
| 		note = await shim.attachFileToNote(note, `${supportDir}/photo.jpg`); | ||||
| 		const resourceId = (await Note.linkedResourceIds(note.body))[0]; | ||||
| 		await Resource.save({ id: resourceId, share_id: 'some_id', is_shared: 1 }); | ||||
|  | ||||
| 		const service = InteropService.instance(); | ||||
| 		const { result, module } = memoryExportModule(); | ||||
| @@ -534,6 +537,16 @@ describe('services_InteropService', function() { | ||||
| 		const exportedNote = (result.items.find(i => i.type === ModelType.Note)).object as NoteEntity; | ||||
| 		expect(exportedNote.share_id).toBe(''); | ||||
| 		expect(exportedNote.is_shared).toBe(0); | ||||
|  | ||||
| 		const exportedFolder = (result.items.find(i => i.type === ModelType.Folder)).object as FolderEntity; | ||||
| 		expect(exportedFolder.share_id).toBe(''); | ||||
| 		expect(exportedFolder.is_shared).toBe(0); | ||||
|  | ||||
| 		const exportedResource = (result.items.find(i => i.type === ModelType.Resource)).object as ResourceEntity; | ||||
| 		expect(exportedResource.share_id).toBe(''); | ||||
| 		expect(exportedResource.is_shared).toBe(0); | ||||
|  | ||||
| 		console.info(result.items); | ||||
| 	})); | ||||
|  | ||||
| 	it('should allow registering new import modules', (async () => { | ||||
|   | ||||
| @@ -9,7 +9,6 @@ import Resource from '../../models/Resource'; | ||||
| import Folder from '../../models/Folder'; | ||||
| import NoteTag from '../../models/NoteTag'; | ||||
| import Note from '../../models/Note'; | ||||
| import { NoteEntity } from '../database/types'; | ||||
| const ArrayUtils = require('../../ArrayUtils'); | ||||
| const { sprintf } = require('sprintf-js'); | ||||
| const { fileExtension } = require('../../path-utils'); | ||||
| @@ -320,12 +319,16 @@ export default class InteropService { | ||||
| 		return result; | ||||
| 	} | ||||
|  | ||||
| 	private normalizeItemForExport(itemType: ModelType, item: any): any { | ||||
| 		if (itemType === ModelType.Note) { | ||||
| 			const output: NoteEntity = { ...item }; | ||||
| 			output.is_shared = 0; | ||||
| 			output.share_id = ''; | ||||
| 			return output; | ||||
| 	private normalizeItemForExport(_itemType: ModelType, item: any): any { | ||||
| 		const override: any = {}; | ||||
| 		if ('is_shared' in item) override.is_shared = 0; | ||||
| 		if ('share_id' in item) override.share_id = ''; | ||||
|  | ||||
| 		if (Object.keys(override).length) { | ||||
| 			return { | ||||
| 				...item, | ||||
| 				...override, | ||||
| 			}; | ||||
| 		} else { | ||||
| 			return item; | ||||
| 		} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user