mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 02:16:05 +01:00 
			
		
		
		
	improved note list pager for many pages
This commit is contained in:
		| @@ -239,18 +239,29 @@ class NoteListRenderer { | ||||
|  | ||||
|         $pager.toggle(pageCount > 1); | ||||
|  | ||||
|         let lastPrinted; | ||||
|  | ||||
|         for (let i = 1; i <= pageCount; i++) { | ||||
|             $pager.append( | ||||
|                 i === this.page | ||||
|                     ? $('<span>').text(i).css('text-decoration', 'underline').css('font-weight', "bold") | ||||
|                     : $('<a href="javascript:">') | ||||
|                         .text(i) | ||||
|                         .on('click', () => { | ||||
|                             this.page = i; | ||||
|                             this.renderList(); | ||||
|                         }), | ||||
|                 "   " | ||||
|             ); | ||||
|             if (pageCount < 20 || i <= 5 || pageCount - i <= 5 || Math.abs(this.page - i) <= 2) { | ||||
|                 lastPrinted = true; | ||||
|  | ||||
|                 $pager.append( | ||||
|                     i === this.page | ||||
|                         ? $('<span>').text(i).css('text-decoration', 'underline').css('font-weight', "bold") | ||||
|                         : $('<a href="javascript:">') | ||||
|                             .text(i) | ||||
|                             .on('click', () => { | ||||
|                                 this.page = i; | ||||
|                                 this.renderList(); | ||||
|                             }), | ||||
|                     "   " | ||||
|                 ); | ||||
|             } | ||||
|             else if (lastPrinted) { | ||||
|                 $pager.append("...   "); | ||||
|  | ||||
|                 lastPrinted = false; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -97,9 +97,6 @@ function getNotesAndBranchesAndAttributes(noteIds) { | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     branches.sort((a, b) => a.notePosition - b.notePosition < 0 ? -1 : 1); | ||||
|     attributes.sort((a, b) => a.position - b.position < 0 ? -1 : 1); | ||||
|  | ||||
|     return { | ||||
|         branches, | ||||
|         notes, | ||||
|   | ||||
| @@ -13,7 +13,7 @@ class Attribute { | ||||
|         /** @param {string} */ | ||||
|         this.type = row.type; | ||||
|         /** @param {string} */ | ||||
|         this.name = row.name.toLowerCase(); | ||||
|         this.name = row.name; | ||||
|         /** @param {int} */ | ||||
|         this.position = row.position; | ||||
|  | ||||
|   | ||||
| @@ -17,7 +17,7 @@ class Branch { | ||||
|         /** @param {int} */ | ||||
|         this.notePosition = row.notePosition; | ||||
|         /** @param {boolean} */ | ||||
|         this.isExpanded = row.isExpanded; | ||||
|         this.isExpanded = !!row.isExpanded; | ||||
|  | ||||
|         if (this.branchId === 'root') { | ||||
|             return; | ||||
|   | ||||
| @@ -14,7 +14,7 @@ class NoteCache { | ||||
|         this.childParentToBranch = {}; | ||||
|         /** @type {Object.<String, Attribute>} */ | ||||
|         this.attributes = []; | ||||
|         /** @type {Object.<String, Attribute[]>} Points from attribute type-name to list of attributes them */ | ||||
|         /** @type {Object.<String, Attribute[]>} Points from attribute type-name to list of attributes */ | ||||
|         this.attributeIndex = {}; | ||||
|  | ||||
|         this.loaded = false; | ||||
| @@ -22,7 +22,7 @@ class NoteCache { | ||||
|  | ||||
|     /** @return {Attribute[]} */ | ||||
|     findAttributes(type, name) { | ||||
|         return this.attributeIndex[`${type}-${name}`] || []; | ||||
|         return this.attributeIndex[`${type}-${name.toLowerCase()}`] || []; | ||||
|     } | ||||
|  | ||||
|     /** @return {Attribute[]} */ | ||||
|   | ||||
| @@ -14,6 +14,7 @@ sqlInit.dbReady.then(() => { | ||||
| }); | ||||
|  | ||||
| function load() { | ||||
|     const start = Date.now(); | ||||
|     noteCache.reset(); | ||||
|  | ||||
|     for (const row of sql.iterateRows(`SELECT noteId, title, type, mime, isProtected, dateCreated, dateModified, utcDateCreated, utcDateModified FROM notes WHERE isDeleted = 0`, [])) { | ||||
| @@ -29,6 +30,8 @@ function load() { | ||||
|     } | ||||
|  | ||||
|     noteCache.loaded = true; | ||||
|  | ||||
|     log.info(`Note cache load took ${Date.now() - start}ms`); | ||||
| } | ||||
|  | ||||
| eventService.subscribe([eventService.ENTITY_CHANGED, eventService.ENTITY_DELETED, eventService.ENTITY_SYNCED],  ({entityName, entity}) => { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user