mirror of
				https://github.com/Jermolene/TiddlyWiki5
				synced 2025-10-30 23:23:02 +00:00 
			
		
		
		
	System tiddler syncing (#4987)
* First pass at a fix for system tiddler sync issues * Add new filter syncFromServer * Undo previous attempt at a fix * Added a flag to control sync of system tiddlers from server
This commit is contained in:
		| @@ -28,6 +28,9 @@ exports.handler = function(request,response,state) { | |||||||
| 			return; | 			return; | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  | 	if(state.wiki.getTiddlerText("$:/config/SyncSystemTiddlersFromServer") === "no") { | ||||||
|  | 		filter += "+[!is[system]]"; | ||||||
|  | 	} | ||||||
| 	var excludeFields = (state.queryParameters.exclude || "text").split(","), | 	var excludeFields = (state.queryParameters.exclude || "text").split(","), | ||||||
| 		titles = state.wiki.filterTiddlers(filter); | 		titles = state.wiki.filterTiddlers(filter); | ||||||
| 	response.writeHead(200, {"Content-Type": "application/json"}); | 	response.writeHead(200, {"Content-Type": "application/json"}); | ||||||
|   | |||||||
| @@ -305,7 +305,8 @@ Syncer.prototype.syncFromServer = function() { | |||||||
| 				self.pollTimerId = null; | 				self.pollTimerId = null; | ||||||
| 				self.syncFromServer.call(self); | 				self.syncFromServer.call(self); | ||||||
| 			},self.pollTimerInterval); | 			},self.pollTimerInterval); | ||||||
| 		}; | 		}, | ||||||
|  | 		syncSystemFromServer = (self.wiki.getTiddlerText("$:/config/SyncSystemTiddlersFromServer") === "yes" ? true : false); | ||||||
| 	if(this.syncadaptor && this.syncadaptor.getUpdatedTiddlers) { | 	if(this.syncadaptor && this.syncadaptor.getUpdatedTiddlers) { | ||||||
| 		this.logger.log("Retrieving updated tiddler list"); | 		this.logger.log("Retrieving updated tiddler list"); | ||||||
| 		cancelNextSync(); | 		cancelNextSync(); | ||||||
| @@ -320,9 +321,11 @@ Syncer.prototype.syncFromServer = function() { | |||||||
| 					self.titlesToBeLoaded[title] = true; | 					self.titlesToBeLoaded[title] = true; | ||||||
| 				}); | 				}); | ||||||
| 				$tw.utils.each(updates.deletions,function(title) { | 				$tw.utils.each(updates.deletions,function(title) { | ||||||
| 					delete self.tiddlerInfo[title]; | 					if(syncSystemFromServer || !self.wiki.isSystemTiddler(title)) { | ||||||
| 					self.logger.log("Deleting tiddler missing from server:",title); | 						delete self.tiddlerInfo[title]; | ||||||
| 					self.wiki.deleteTiddler(title); | 						self.logger.log("Deleting tiddler missing from server:",title); | ||||||
|  | 						self.wiki.deleteTiddler(title); | ||||||
|  | 					} | ||||||
| 				}); | 				}); | ||||||
| 				if(updates.modifications.length > 0 || updates.deletions.length > 0) { | 				if(updates.modifications.length > 0 || updates.deletions.length > 0) { | ||||||
| 					self.processTaskQueue(); | 					self.processTaskQueue(); | ||||||
| @@ -365,9 +368,11 @@ Syncer.prototype.syncFromServer = function() { | |||||||
| 			} | 			} | ||||||
| 			// Delete any tiddlers that were previously reported but missing this time | 			// Delete any tiddlers that were previously reported but missing this time | ||||||
| 			$tw.utils.each(previousTitles,function(title) { | 			$tw.utils.each(previousTitles,function(title) { | ||||||
| 				delete self.tiddlerInfo[title]; | 				if(syncSystemFromServer || !self.wiki.isSystemTiddler(title)) { | ||||||
| 				self.logger.log("Deleting tiddler missing from server:",title); | 					delete self.tiddlerInfo[title]; | ||||||
| 				self.wiki.deleteTiddler(title); | 					self.logger.log("Deleting tiddler missing from server:",title); | ||||||
|  | 					self.wiki.deleteTiddler(title); | ||||||
|  | 				} | ||||||
| 			}); | 			}); | ||||||
| 			self.processTaskQueue(); | 			self.processTaskQueue(); | ||||||
| 		}); | 		}); | ||||||
|   | |||||||
| @@ -1,3 +1,3 @@ | |||||||
| title: $:/config/SyncFilter | title: $:/config/SyncFilter | ||||||
|  |  | ||||||
| [is[tiddler]] -[[$:/core]] -[prefix[$:/StoryList]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/isEncrypted]] -[prefix[$:/status/]] -[prefix[$:/state/]] -[prefix[$:/temp/]] | [is[tiddler]] -[[$:/core]] -[[$:/library/sjcl.js]] -[prefix[$:/boot/]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/isEncrypted]] -[prefix[$:/status/]] -[prefix[$:/state/]] -[prefix[$:/temp/]] | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								core/wiki/config/SyncSystemTiddlersFromServer.tid
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								core/wiki/config/SyncSystemTiddlersFromServer.tid
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | title: $:/config/SyncSystemTiddlersFromServer | ||||||
|  |  | ||||||
|  | no | ||||||
		Reference in New Issue
	
	Block a user
	 saqimtiaz
					saqimtiaz