diff --git a/core/modules/filters.js b/core/modules/filters.js index aa82a352a..054a5d493 100644 --- a/core/modules/filters.js +++ b/core/modules/filters.js @@ -200,12 +200,20 @@ exports.parseFilter = function(filterString) { exports.getFilterOperators = function() { if(!this.filterOperators) { - $tw.Wiki.prototype.filterOperators = {}; - $tw.modules.applyMethods("filteroperator",this.filterOperators); + $tw.Wiki.prototype.oldFilterOperators = {}; + $tw.modules.applyMethods("filteroperator",this.oldFilterOperators); + $tw.Wiki.prototype.newFilterOperators = {}; + $tw.modules.applyMethods("newfilteroperator",this.newFilterOperators); + $tw.Wiki.prototype.filterOperators = $tw.utils.extend({},$tw.Wiki.prototype.oldFilterOperators,$tw.Wiki.prototype.newFilterOperators); } return this.filterOperators; }; +exports.isFilterOperatorNew = function(name) { + this.getFilterOperators(); + return name in $tw.Wiki.prototype.newFilterOperators; +}; + exports.getFilterRunPrefixes = function() { if(!this.filterRunPrefixes) { $tw.Wiki.prototype.filterRunPrefixes = {}; @@ -214,11 +222,21 @@ exports.getFilterRunPrefixes = function() { return this.filterRunPrefixes; } -exports.filterTiddlers = function(filterString,widget,source) { +exports.filterTiddlersPolymorphic = function(filterString,widget,source) { var fn = this.compileFilter(filterString); return fn.call(this,source,widget); }; +exports.filterTiddlers = function(filterString,widget,source) { + var results = this.filterTiddlersPolymorphic(filterString,widget,source); + for(var t=0; t