mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 18:36:30 +01:00 
			
		
		
		
	deleting attributes, closes #34
This commit is contained in:
		| @@ -12,7 +12,7 @@ const attributes = require('../../services/attributes'); | ||||
| router.get('/notes/:noteId/attributes', auth.checkApiAuth, wrap(async (req, res, next) => { | ||||
|     const noteId = req.params.noteId; | ||||
|  | ||||
|     res.send(await sql.getRows("SELECT * FROM attributes WHERE noteId = ? ORDER BY dateCreated", [noteId])); | ||||
|     res.send(await sql.getRows("SELECT * FROM attributes WHERE isDeleted = 0 AND noteId = ? ORDER BY dateCreated", [noteId])); | ||||
| })); | ||||
|  | ||||
| router.put('/notes/:noteId/attributes', auth.checkApiAuth, wrap(async (req, res, next) => { | ||||
| @@ -23,10 +23,15 @@ router.put('/notes/:noteId/attributes', auth.checkApiAuth, wrap(async (req, res, | ||||
|     await sql.doInTransaction(async () => { | ||||
|         for (const attr of attributes) { | ||||
|             if (attr.attributeId) { | ||||
|                 await sql.execute("UPDATE attributes SET name = ?, value = ?, dateModified = ? WHERE attributeId = ?", | ||||
|                     [attr.name, attr.value, now, attr.attributeId]); | ||||
|                 await sql.execute("UPDATE attributes SET name = ?, value = ?, dateModified = ?, isDeleted = ? WHERE attributeId = ?", | ||||
|                     [attr.name, attr.value, now, attr.isDeleted, attr.attributeId]); | ||||
|             } | ||||
|             else { | ||||
|                 // if it was "created" and then immediatelly deleted, we just don't create it at all | ||||
|                 if (attr.isDeleted) { | ||||
|                     continue; | ||||
|                 } | ||||
|  | ||||
|                 attr.attributeId = utils.newAttributeId(); | ||||
|  | ||||
|                 await sql.insert("attributes", { | ||||
| @@ -35,7 +40,8 @@ router.put('/notes/:noteId/attributes', auth.checkApiAuth, wrap(async (req, res, | ||||
|                    name: attr.name, | ||||
|                    value: attr.value, | ||||
|                    dateCreated: now, | ||||
|                    dateModified: now | ||||
|                    dateModified: now, | ||||
|                    isDeleted: false | ||||
|                 }); | ||||
|             } | ||||
|  | ||||
| @@ -43,11 +49,11 @@ router.put('/notes/:noteId/attributes', auth.checkApiAuth, wrap(async (req, res, | ||||
|         } | ||||
|     }); | ||||
|  | ||||
|     res.send(await sql.getRows("SELECT * FROM attributes WHERE noteId = ? ORDER BY dateCreated", [noteId])); | ||||
|     res.send(await sql.getRows("SELECT * FROM attributes WHERE isDeleted = 0 AND noteId = ? ORDER BY dateCreated", [noteId])); | ||||
| })); | ||||
|  | ||||
| router.get('/attributes/names', auth.checkApiAuth, wrap(async (req, res, next) => { | ||||
|     const names = await sql.getColumn("SELECT DISTINCT name FROM attributes"); | ||||
|     const names = await sql.getColumn("SELECT DISTINCT name FROM attributes WHERE isDeleted = 0"); | ||||
|  | ||||
|     for (const attr of attributes.BUILTIN_ATTRIBUTES) { | ||||
|         if (!names.includes(attr)) { | ||||
| @@ -63,7 +69,7 @@ router.get('/attributes/names', auth.checkApiAuth, wrap(async (req, res, next) = | ||||
| router.get('/attributes/values/:attributeName', auth.checkApiAuth, wrap(async (req, res, next) => { | ||||
|     const attributeName = req.params.attributeName; | ||||
|  | ||||
|     const values = await sql.getColumn("SELECT DISTINCT value FROM attributes WHERE name = ? AND value != '' ORDER BY value", [attributeName]); | ||||
|     const values = await sql.getColumn("SELECT DISTINCT value FROM attributes WHERE isDeleted = 0 AND name = ? AND value != '' ORDER BY value", [attributeName]); | ||||
|  | ||||
|     res.send(values); | ||||
| })); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user