Add filterSet.visitTargets and filterSet.visitFields methods.
[mkws-moved-to-github.git] / src / mkws-filter.js
index aa3a204..e37a0bd 100644 (file)
@@ -13,6 +13,24 @@ function filterSet(team) {
        m_list.push(filter);
     };
 
+    that.visitTargets = function(callback) {
+       for (var i in m_list) {
+           var filter = m_list[i];
+           if (filter.id) {
+               callback(filter.id, filter.name);
+           }
+       }
+    };
+
+    that.visitFields = function(callback) {
+       for (var i in m_list) {
+           var filter = m_list[i];
+           if (!filter.id) {
+               callback(filter.field, filter.value);
+           }
+       }
+    };
+
     that.removeMatching = function(matchFn) {
        var newList = [];
        for (var i in m_list) {
@@ -43,8 +61,7 @@ function filterSet(team) {
        for (var i in m_list) {
            var filter = m_list[i];
            if (filter.id) {
-               if (res)
-                   res += ",";
+               if (res) res += ",";
                if (filter.id.match(/^[a-z:]+[=~]/)) {
                    m_team.log("filter '" + filter.id + "' already begins with SETTING OP");
                } else {
@@ -57,6 +74,21 @@ function filterSet(team) {
        return res;
     }
 
+    that.pp2limit = function(initial) {
+       var res = initial || "";
+
+       for (var i in m_list) {
+           var filter = m_list[i];
+           if (!filter.id) {
+               if (res) res += ",";
+               res += filter.field + "=" + filter.value.replace(/[\\|,]/g, '\\$&');
+           }
+       }
+
+       return res;
+    }
+
+
     return that;
 }