diff --git a/client/src/pages/NotesPage.vue b/client/src/pages/NotesPage.vue
index 9b7cdfe..39d526f 100644
--- a/client/src/pages/NotesPage.vue
+++ b/client/src/pages/NotesPage.vue
@@ -218,7 +218,8 @@
'sent': ['paper plane outline', 'Shared Notes'],
'notes': ['file','Notes'],
'highlights': ['paragraph', 'Found In Text'],
- 'trashed': ['poop', 'Trashed Notes']
+ 'trashed': ['poop', 'Trashed Notes'],
+ 'tagged': ['tag', 'Tagged'],
},
noteSections: {
pinned: [],
@@ -227,7 +228,8 @@
sent:[],
notes: [],
highlights: [],
- trashed: []
+ trashed: [],
+ tagged:[],
},
}
@@ -241,7 +243,7 @@
//Do not update note if its open
if(this.activeNoteId1 != noteId){
this.$store.dispatch('fetchAndUpdateUserTotals')
- this.updateSingleNote(noteId)
+ this.updateSingleNote(noteId, false)
}
})
@@ -249,7 +251,7 @@
//Do not update note if its open
if(this.activeNoteId1 != noteId){
this.$store.dispatch('fetchAndUpdateUserTotals')
- this.updateSingleNote(noteId)
+ this.updateSingleNote(noteId, false)
}
})
@@ -258,7 +260,7 @@
//Do not update note if its open
if(this.activeNoteId1 != noteId){
- this.updateSingleNote(noteId)
+ this.updateSingleNote(noteId, false)
}
})
@@ -481,7 +483,7 @@
},
// @TODO Don't even trigger this if the note wasn't changed
- updateSingleNote(noteId){
+ updateSingleNote(noteId, focuseAndAnimate = true){
noteId = parseInt(noteId)
@@ -539,7 +541,7 @@
this.$nextTick( () => {
//Trigger close animation on note
- if(this.$refs['note-'+noteId] && this.$refs['note-'+noteId][0]){
+ if(this.$refs['note-'+noteId] && this.$refs['note-'+noteId][0] && focuseAndAnimate){
this.$refs['note-'+noteId][0].justClosed()
}
})
@@ -662,6 +664,11 @@
//Sort notes into defined sections
notes.forEach(note => {
+ if(this.searchTags.length >= 1){
+ this.noteSections.tagged.push(note)
+ return
+ }
+
//Only show trashed notes when trashed
if(this.fastFilters.onlyShowTrashed == 1){
@@ -725,7 +732,7 @@
this.fastFilters = {}
this.updateFastFilters(5)
this.foundAttachments = [] //Remove all attachments
- // this.$bus.$emit('reset_fast_filters')
+ this.$bus.$emit('reset_fast_filters')
//Load initial batch, then tags, then other batch
this.search(true, this.firstLoadBatchSize)
@@ -733,9 +740,6 @@
//Load a larger batch once first batch has loaded
return this.search(false, this.batchSize, true)
})
- .then( i => {
- //Thats how you promise chain
- })
},
updateFastFilters(index){
diff --git a/server/index.js b/server/index.js
index a20ac03..b040c57 100644
--- a/server/index.js
+++ b/server/index.js
@@ -136,7 +136,7 @@ app.use(function(req, res, next){
// Test Area
-const printResults = true
+const printResults = false
let UserTest = require('@models/User')
let NoteTest = require('@models/Note')
UserTest.keyPairTest('genMan2', '1', printResults)
diff --git a/server/models/Attachment.js b/server/models/Attachment.js
index c3ae14a..2bc99e8 100644
--- a/server/models/Attachment.js
+++ b/server/models/Attachment.js
@@ -138,11 +138,8 @@ Attachment.delete = (userId, attachmentId, urlDelete = false) => {
.then((rows, fields) => {
- noteExists = (rows[0]['exists'] > 0)
+ noteExists = (rows[0][0]['exists'] > 0)
-
-
-
let url = attachment.url
const noteId = attachment.note_id
@@ -158,18 +155,16 @@ Attachment.delete = (userId, attachmentId, urlDelete = false) => {
if(attachment.attachment_type == 1 && !urlDelete && noteExists){
db.promise()
.query(`UPDATE attachment SET visible = 0 WHERE id = ?`, [attachmentId])
- .then((rows, fields) => { })
+ .then((rows, fields) => resolve(true))
.catch(console.log)
return resolve(true)
+ } else {
+ db.promise()
+ .query(`DELETE FROM attachment WHERE id = ?`, [attachmentId])
+ .then((rows, fields) => resolve(true))
+ .catch(console.log)
}
-
- db.promise()
- .query(`DELETE FROM attachment WHERE id = ?`, [attachmentId])
- .then((rows, fields) => { })
- .catch(console.log)
-
- return resolve(true)
})
})
}
diff --git a/server/models/Note.js b/server/models/Note.js
index 5f42d2e..ecb7047 100644
--- a/server/models/Note.js
+++ b/server/models/Note.js
@@ -299,7 +299,7 @@ Note.reindex = (userId, masterKey, removeId = null) => {
return db.promise().query(`
SELECT note.id, text, salt, encrypted_share_password_key FROM note
JOIN note_raw_text ON note.note_raw_text_id = note_raw_text.id
- WHERE indexed = 0 AND salt IS NOT NULL
+ WHERE indexed = 0 AND salt IS NOT NULL AND trashed = 0
AND user_id = ? LIMIT 100`, [userId])
})
@@ -610,7 +610,7 @@ Note.setArchived = (userId, noteId, archivedBoolead) => {
})
}
-Note.setTrashed = (userId, noteId, trashedBoolean) => {
+Note.setTrashed = (userId, noteId, trashedBoolean, masterKey) => {
return new Promise((resolve, reject) => {
const trashed = trashedBoolean ? 1:0
@@ -618,9 +618,18 @@ Note.setTrashed = (userId, noteId, trashedBoolean) => {
//Update other note attributes
return db.promise()
- .query('UPDATE note JOIN note_raw_text ON note_raw_text_id = note_raw_text.id SET trashed = ?, updated = ? WHERE note.id = ? AND user_id = ?',
+ .query('UPDATE note JOIN note_raw_text ON note_raw_text_id = note_raw_text.id SET trashed = ?, updated = ?, indexed = 0 WHERE note.id = ? AND user_id = ?',
[trashed, now, noteId, userId])
.then((rows, fields) => {
+
+ const removeFromIndex = []
+ if(trashed){
+ //Remove note from index
+ removeFromIndex.push(noteId)
+ }
+ Note.reindex(userId, masterKey, removeFromIndex)
+
+
SocketIo.to(userId).emit('note_attribute_modified', noteId)
resolve(true)
})
@@ -1016,12 +1025,16 @@ Note.search = (userId, searchQuery, searchTags, fastFilters, masterKey) => {
//If tags are passed, use those tags in search
if(searchTags.length > 0){
searchParams.push(searchTags)
- noteSearchQuery += ' AND note_tag.tag_id IN (?)'
+ noteSearchQuery += ' AND note_tag.tag_id IN (?) AND note.trashed = 0'
+ searchAllNotes = true
}
+
+
//Show archived notes, only if fast filter is set, default to not archived
if(searchAllNotes == false){
+ //Default set of filters for all notes
if(fastFilters.notesHome == 1){
noteSearchQuery += ' AND note.archived = 0 AND note.trashed = 0 AND note.share_user_id IS NULL'
}
diff --git a/server/models/Tag.js b/server/models/Tag.js
index 7068a75..ac08360 100644
--- a/server/models/Tag.js
+++ b/server/models/Tag.js
@@ -17,7 +17,7 @@ Tag.userTags = (userId, searchQuery, searchTags, fastFilters) => {
FROM tag
JOIN note_tag ON tag.id = note_tag.tag_id
JOIN note ON note.id = note_tag.note_id
- WHERE note_tag.user_id = ?
+ WHERE note_tag.user_id = ? AND note.trashed = 0
`
query += ` GROUP BY tag.id
diff --git a/server/routes/noteController.js b/server/routes/noteController.js
index d024045..4e80eec 100644
--- a/server/routes/noteController.js
+++ b/server/routes/noteController.js
@@ -29,7 +29,7 @@ router.post('/get', function (req, res) {
})
router.post('/delete', function (req, res) {
- Note.delete(userId, req.body.noteId)
+ Note.delete(userId, req.body.noteId, masterKey)
.then( data => res.send(data) )
})
@@ -82,7 +82,7 @@ router.post('/setarchived', function (req, res) {
})
})
router.post('/settrashed', function (req, res) {
- Note.setTrashed(userId, req.body.noteId, req.body.trashed)
+ Note.setTrashed(userId, req.body.noteId, req.body.trashed, masterKey)
.then( results => {
res.send(results)
})