| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -49,7 +49,7 @@
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							<h2 v-if="fastFilters['onlyArchived'] == 1">Archived Notes</h2>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							<h2 v-if="fastFilters['onlyShowSharedNotes'] == 1">Shared Notes</h2>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							<!-- tags section  -->
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							<div v-if="commonTags.length > 0" class="sixteen wide column">
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								<h4><i class="green tags icon"></i>Tags</h4>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								<span v-for="tag in commonTags" @click="toggleTagFilter(tag.id)">
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -61,72 +61,33 @@
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							<!-- Note title card display  -->
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							<div class="sixteen wide column">
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								<h3 v-if="searchTerm.length > 0 && notes.length == 0">No notes found. Check your spelling, try completing the word or using a different phrase.</h3>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								<h3 v-if="$store.getters.totals && $store.getters.totals['totalNotes'] == 0">
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									No Notes Yet. Create one when you feel ready.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								</h3>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				<!-- 				<div v-if="working">
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									<div class="ui active inline loader"></div> Working...
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								</div> -->
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								<!-- Go to one wide column, do not do this on mobile interface -->
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								<div v-if="notes !== null && notes.length > 0" 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									:class="{'one-column':( 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								<div :class="{'one-column':( 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										(activeNoteId1 != null || activeNoteId2 != null) &&
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										!$store.getters.getIsUserOnMobile
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									)}">
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									<!-- pinned notes -->
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									<div v-if="containsPinnednotes > 0" class="note-card-section">
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										<!-- ({{containsPinnednotes}}) -->
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										<h4><i class="green pin icon"></i>Pinned</h4>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									<!-- render each section based on notes in set  -->
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									<div v-for="section,index in noteSections" v-if="section.length > 0" class="note-card-section">
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										<h4><i :class="`green ${sectionData[index][0]} icon`"></i>{{ sectionData[index][1] }}</h4>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										<div class="note-card-display-area">
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											<note-title-display-card 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												v-for="note in notes"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												v-if="note.pinned"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												v-for="note in section"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												:onClick="openNote"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												:data="note"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												:currently-open="(activeNoteId1 == note.id || activeNoteId2 == note.id)"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												:key="note.id + note.color + note.note_highlights.length + note.attachment_highlights.length + ' -' + note.tag_highlights.length + '-' +note.title.length + '-' +note.subtext.length"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												:key="note.id + note.color + note.note_highlights.length + note.attachment_highlights.length + ' -' + note.tag_highlights.length + '-' +note.title.length + '-' +note.subtext.length + '-' + note.tag_count + note.updated"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											/>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										</div>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									</div>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									<!-- normal notes  -->
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									<div v-if="containsNormalNotes > 0" class="note-card-section">
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										<!-- ({{containsNormalNotes}}) -->
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										<h4><i class="green file icon"></i>Notes</h4>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										<div class="note-card-display-area">
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											<note-title-display-card 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												v-for="note in notes"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												v-if="note.note_highlights && !note.pinned"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												:onClick="openNote"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												:data="note"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												:currently-open="(activeNoteId1 == note.id || activeNoteId2 == note.id)"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												:key="note.id + note.color + note.note_highlights.length + note.attachment_highlights.length + ' -' + note.tag_highlights.length + '-' +note.title.length + '-' +note.subtext.length"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											/>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										</div>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									</div>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									<!-- found in text  -->
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									<div v-if="containsTextResults" class="note-card-section">
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										<h4><i class="green paragraph icon"></i> Found in Text ({{containsTextResults}})</h4>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										<div class="note-card-display-area">
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											<note-title-display-card 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												v-for="note in notes"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												v-if="note.note_highlights && note.note_highlights.length"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												:textResults="true"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												:onClick="openNote"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												:data="note"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												:currently-open="(activeNoteId1 == note.id || activeNoteId2 == note.id)"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												:key="note.id + note.color + note.note_highlights.length + note.attachment_highlights.length + ' -' + note.tag_highlights.length + '-' +note.title.length + '-' +note.subtext.length"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											/>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										</div>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									</div>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								</div>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							</div>
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -206,14 +167,22 @@
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								foundAttachments: [],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								sectionData: {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									'pinned': 		['thumbtack', 'Pinned'],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									'archived': 	['archive', 'Archived'],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									'shared': 		['envelope outline', 'Received Notes'],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									'sent': 		['paper plane outline', 'Shared Notes'],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									'notes': 		['file','Notes'],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									'highlights': 	['paragraph', 'Found In Text']
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								noteSections: {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									'pinned': {},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									'archived': {},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									'recieved': {},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									'sent':{},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									'notes':{},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									'textMatch':{}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									pinned: [],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									archived: [],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									shared:[],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									sent:[],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									notes: [],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									highlights: [],
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
						},
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -232,18 +201,18 @@
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							this.$bus.$on('note_deleted', (noteId) => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								//Remove deleted note from set, its deleted
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								this.notes.forEach( (note, index) => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									if(note.id == noteId){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										if(note.pinned == 1){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											this.containsPinnednotes--
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										} else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											this.containsNormalNotes--
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								Object.keys(this.noteSections).forEach( key => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									this.noteSections[key].forEach( (note, index) => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										if(note.id == noteId){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											this.noteSections[key].splice(index,1)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											return
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										this.notes.splice(index, 1)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							this.$bus.$on('update_fast_filters', newFilter => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								this.fastFilters = newFilter
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -403,8 +372,6 @@
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									//Determine percentage down the page
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									const percentageDown = Math.round( (bottomOfWindow/offsetHeight)*100 )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									// console.log( percentageDown + '%' )
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									//If greater than 80 of the way down the page, load the next batch
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									if(percentageDown >= 80){
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -444,7 +411,6 @@
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								//@TODO - set a timeout on this like 2 minutes or just dont do shit and update it via socket.io
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								//If user leaves page then returns to page, reload the first batch
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								if(this.lastVisibilityState == 'hidden' && document.visibilityState == 'visible'){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									// console.log('Welcome back. Reloading a batch')
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									//Load initial batch, then tags, then other batch
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									this.search(false, this.firstLoadBatchSize)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									.then( () => {
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -475,53 +441,52 @@
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									let foundNote = false
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									if(newNote === undefined){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										console.log('Note not visible on this page')
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										return
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									//Go through each note and find the one just updated
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									this.notes.forEach( (note,index) => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									//Find Just updated note and modify all its attributes
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									Object.keys(this.noteSections).forEach(key => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										if(note.id == noteId){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											foundNote = true
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										this.noteSections[key].forEach( (note,index) => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											if(note.id == noteId){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												foundNote = true
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												//Don't move notes that were not changed
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												if(note.updated == newNote.updated){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
													return
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												//Compare note tags, if they changed, reload tags
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												if(newNote.tag_count != note.tag_count){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
													this.fetchUserTags()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												//go through each prop and update it with new values
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												Object.keys(newNote).forEach(prop => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
													note[prop] = newNote[prop]
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												//Remove note from location and push to front
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												this.noteSections[key].splice(index, 1)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												this.noteSections[key].unshift(note)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											//Don't move notes that were not changed
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											if(note.updated == newNote.updated){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												return
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											//Compare note tags, if they changed, reload tags
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											if(newNote.tag_count != note.tag_count){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												console.log('Tags changed, update those bitches')
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												this.fetchUserTags()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											//go through each prop and update it with new values
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											Object.keys(newNote).forEach(prop => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												note[prop] = newNote[prop]
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											this.notes.splice(index, 1)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											this.notes.unshift(note)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									//This note was not found, update it in list
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									if(foundNote == false){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										if(newNote.pinned == 1){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											this.containsPinnednotes++
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										} else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											this.containsNormalNotes++
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										this.notes.unshift(newNote)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									//New notes don't exist in list, push them to the front
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									if(!foundNote){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										this.noteSections.notes.unshift(newNote)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									//Trigger section rebuild
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									this.rebuildNoteCategorise()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							searchAttachments(){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								axios.post('/api/attachment/textsearch', {'searchTerm':this.searchTerm})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								.then(results => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									console.log('Attachment Results')
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									console.log(results.data)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									this.foundAttachments = results.data
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							},
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -549,10 +514,6 @@
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										fastFilters: this.fastFilters,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									if(showLoading){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										this.working = true
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									//Save initial post data on first load
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									if(this.initialPostData == null){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										this.initialPostData = JSON.stringify(postData)
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -570,8 +531,8 @@
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									//Perform search - or die
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									this.loadingInProgress = true
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									axios.post('/api/note/search', postData).
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									then(response => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									axios.post('/api/note/search', postData)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									.then(response => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										//Save the number of notes just loaded
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										this.batchOffset += response.data.notes.length
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				@@ -581,49 +542,62 @@
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											this.commonTags = response.data.tags
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										//Either reload all notes with return data or merge return data
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										if(!mergeExisting){ 
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											this.notes = response.data.notes
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										} else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											this.notes = this.notes.concat(response.data.notes)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										//Go through each note and see which section to display
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										let textResultsCount = 0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										let pinnedResultsCount = 0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										let normalNotesCount = 0
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										response.data.notes.forEach(note => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											if(note.note_highlights.length > 0){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												textResultsCount++
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												return
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											if(note.pinned == 1){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												pinnedResultsCount++
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
												return
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											normalNotesCount++
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										if(!mergeExisting){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											this.containsNormalNotes = normalNotesCount
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											this.containsPinnednotes = pinnedResultsCount
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											this.containsTextResults = textResultsCount
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										} else {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											this.containsNormalNotes += normalNotesCount
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											this.containsPinnednotes += pinnedResultsCount
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
											this.containsTextResults += textResultsCount
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										this.working = false
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										this.loadingInProgress = false
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										this.generateNoteCategories(response.data.notes, mergeExisting)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										return resolve(true)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							rebuildNoteCategorise(){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								let currentNotes = []
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								Object.keys(this.noteSections).forEach( key => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									this.noteSections[key].forEach( note => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										currentNotes.push(note)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								this.generateNoteCategories(currentNotes, false)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							generateNoteCategories(notes, mergeExisting){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								// Place each note in a category based on certain attributes and fast filters
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								//Reset all sections if we are not merging existing
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								if(!mergeExisting){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									Object.keys(this.noteSections).forEach( key => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										this.noteSections[key] = []
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								//Sort notes into defined sections
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								notes.forEach(note => {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									if(note.archived == 1 && this.fastFilters.onlyArchived == 1){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										this.noteSections.archived.push(note)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										return
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									if(note.shareUsername != null){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										this.noteSections.shared.push(note)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										return
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									//Only show sent notes section if shared is selected
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									if(note.shared == 2 && this.fastFilters.onlyShowSharedNotes == 1){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										this.noteSections.sent.push(note)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										return
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									if(note.note_highlights.length > 0){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										this.noteSections.highlights.push(note)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										return
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									// Pinned notes are always first, they can appear in the archive
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									if(note.pinned == 1){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										this.noteSections.pinned.push(note)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
										return
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
									this.noteSections.notes.push(note)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								})
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							},
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
							searchKeyUp(){
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								let vm = this
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
								clearTimeout(vm.searchDebounce)
 | 
			
		
		
	
	
		
			
				
					
					| 
						
					 | 
				
			
			 | 
			 | 
			
				 
 |