mirror of
				https://github.com/Jermolene/TiddlyWiki5
				synced 2025-10-31 15:42:59 +00:00 
			
		
		
		
	Refactor wiki.forEachTiddler() and wiki.getTiddlers() to take an options parameter
This commit is contained in:
		| @@ -255,16 +255,25 @@ exports.getModificationFields = function() { | |||||||
| }; | }; | ||||||
|  |  | ||||||
| /* | /* | ||||||
| Return a sorted array of non-system tiddler titles, optionally filtered by a tag  | Return a sorted array of tiddler titles.  Options include: | ||||||
|  | sortField: field to sort by | ||||||
|  | excludeTag: tag to exclude | ||||||
|  | includeSystem: whether to include system tiddlers (defaults to false) | ||||||
| */ | */ | ||||||
| exports.getTiddlers = function(sortField,excludeTag) { | exports.getTiddlers = function(options) { | ||||||
| 	sortField = sortField || "title"; | 	options = options || {}; | ||||||
| 	var tiddlers = [], t, titles = []; | 	var self = this, | ||||||
|  | 		sortField = options.sortField || "title", | ||||||
|  | 		tiddlers = [], t, titles = []; | ||||||
| 	for(t in this.tiddlers) { | 	for(t in this.tiddlers) { | ||||||
| 		if($tw.utils.hop(this.tiddlers,t) && !this.isSystemTiddler(t) && (!excludeTag || !this.tiddlers[t].hasTag(excludeTag))) { | 		if($tw.utils.hop(this.tiddlers,t)) { | ||||||
|  | 			if(options.includeSystem || !this.isSystemTiddler(t)) { | ||||||
|  | 				if(!options.excludeTag || !this.tiddlers[t].hasTag(excludeTag)) { | ||||||
| 					tiddlers.push(this.tiddlers[t]); | 					tiddlers.push(this.tiddlers[t]); | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
| 	tiddlers.sort(function(a,b) { | 	tiddlers.sort(function(a,b) { | ||||||
| 		var aa = a.fields[sortField].toLowerCase() || "", | 		var aa = a.fields[sortField].toLowerCase() || "", | ||||||
| 			bb = b.fields[sortField].toLowerCase() || ""; | 			bb = b.fields[sortField].toLowerCase() || ""; | ||||||
| @@ -285,7 +294,7 @@ exports.getTiddlers = function(sortField,excludeTag) { | |||||||
| }; | }; | ||||||
|  |  | ||||||
| exports.countTiddlers = function(excludeTag) { | exports.countTiddlers = function(excludeTag) { | ||||||
| 	var tiddlers = this.getTiddlers(null,excludeTag); | 	var tiddlers = this.getTiddlers({excludeTag: excludeTag}); | ||||||
| 	return $tw.utils.count(tiddlers); | 	return $tw.utils.count(tiddlers); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| @@ -323,12 +332,17 @@ exports.sortTiddlers = function(titles,sortField,isDescending,isCaseSensitive) { | |||||||
| 	}); | 	}); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| exports.forEachTiddler = function(/* [sortField,[excludeTag,]]callback */) { | /* | ||||||
|  | For every tiddler invoke a callback(title,tiddler) with `this` set to the wiki object. Options include: | ||||||
|  | sortField: field to sort by | ||||||
|  | excludeTag: tag to exclude | ||||||
|  | includeSystem: whether to include system tiddlers (defaults to false) | ||||||
|  | */ | ||||||
|  | exports.forEachTiddler = function(/* [options,]callback */) { | ||||||
| 	var arg = 0, | 	var arg = 0, | ||||||
| 		sortField = arguments.length > 1 ? arguments[arg++] : null, | 		options = arguments.length >= 2 ? arguments[arg++] : {}, | ||||||
| 		excludeTag = arguments.length > 2 ? arguments[arg++] : null, |  | ||||||
| 		callback = arguments[arg++], | 		callback = arguments[arg++], | ||||||
| 		titles = this.getTiddlers(sortField,excludeTag), | 		titles = this.getTiddlers(options), | ||||||
| 		t, tiddler; | 		t, tiddler; | ||||||
| 	for(t=0; t<titles.length; t++) { | 	for(t=0; t<titles.length; t++) { | ||||||
| 		tiddler = this.tiddlers[titles[t]]; | 		tiddler = this.tiddlers[titles[t]]; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jermolene
					Jermolene