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) {
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 {
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;
}