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 += ",";
+ res += filter.field + "=" + filter.value.replace(/[\\|,]/g, '\\$&');
+ }
+ }
+
+ return res;
+ };
+
return that;
}