var that = {};
- that.list = function() {
- return m_list;
+ that.toJSON = function() {
+ return $.toJSON(m_list);
};
that.add = function(filter) {
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) {
}
}
return false;
- }
+ };
that.pp2filter = function() {
var res = "";
+ that.visitTargets(function(id, name) {
+ if (res) res += ",";
+ if (id.match(/^[a-z:]+[=~]/)) {
+ m_team.log("filter '" + id + "' already begins with SETTING OP");
+ } else {
+ id = 'pz:id=' + id;
+ }
+ res += id;
+ });
+
+ 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 += ",";
- if (filter.id.match(/^[a-z:]+[=~]/)) {
- m_team.log("filter '" + filter.id + "' already begins with SETTING OP");
- } else {
- filter.id = 'pz:id=' + filter.id;
- }
- res += filter.id;
+ if (!filter.id) {
+ if (res) res += ",";
+ res += filter.field + "=" + filter.value.replace(/[\\|,]/g, '\\$&');
}
}
return res;
- }
+ };
+
return that;
}