projects
/
mkws-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of ssh://git.indexdata.com:222/home/git/private/mkws
[mkws-moved-to-github.git]
/
src
/
mkws-filter.js
diff --git
a/src/mkws-filter.js
b/src/mkws-filter.js
index
03e07e1
..
2266993
100644
(file)
--- a/
src/mkws-filter.js
+++ b/
src/mkws-filter.js
@@
-16,7
+16,7
@@
function filterSet(team) {
that.visitTargets = function(callback) {
for (var i in m_list) {
var filter = m_list[i];
that.visitTargets = function(callback) {
for (var i in m_list) {
var filter = m_list[i];
- if (filter.id) {
+ if (filter.type === 'target') {
callback(filter.id, filter.name);
}
}
callback(filter.id, filter.name);
}
}
@@
-25,12
+25,21
@@
function filterSet(team) {
that.visitFields = function(callback) {
for (var i in m_list) {
var filter = m_list[i];
that.visitFields = function(callback) {
for (var i in m_list) {
var filter = m_list[i];
- if (!filter.id) {
+ if (filter.type === 'field') {
callback(filter.field, filter.value);
}
}
};
callback(filter.field, filter.value);
}
}
};
+ that.visitCategories = function(callback) {
+ for (var i in m_list) {
+ var filter = m_list[i];
+ if (filter.type === 'category') {
+ callback(filter.id);
+ }
+ }
+ };
+
that.removeMatching = function(matchFn) {
var newList = [];
for (var i in m_list) {
that.removeMatching = function(matchFn) {
var newList = [];
for (var i in m_list) {
@@
-47,7
+56,7
@@
function filterSet(team) {
that.targetFiltered = function(id) {
for (var i = 0; i < m_list.length; i++) {
that.targetFiltered = function(id) {
for (var i = 0; i < m_list.length; i++) {
- if (m_list[i].id === id ||
+ if (m_list[i].type === 'target' ||
m_list[i].id === 'pz:id=' + id) {
return true;
}
m_list[i].id === 'pz:id=' + id) {
return true;
}
@@
-72,34
+81,21
@@
function filterSet(team) {
};
that.pp2limit = function(initial) {
};
that.pp2limit = function(initial) {
- var OLD = that.OLD_pp2limit(initial);
- var NEW = that.NEW_pp2limit(initial);
- if (OLD !== NEW) {
- alert("pp2limit(): OLD[" + OLD + "] !== NEW[" + NEW + "]");
- }
- return OLD;
- };
-
- that.OLD_pp2limit = function(initial) {
var res = 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, '\\$&');
- }
- }
-
+ that.visitFields(function(field, value) {
+ if (res) res += ",";
+ res += field + "=" + value.replace(/[\\|,]/g, '\\$&');
+ });
return res;
return res;
- };
+ }
- that.NEW_pp2limit = function(initial) {
- var res = initial || "";
+ that.pp2catLimit = function() {
+ var res = "";
- that.visitFields(function(field, value) {
+ that.visitCategories(function(id) {
if (res) res += ",";
if (res) res += ",";
- res += field + "=" + value.replace(/[\\|,]/g, '\\$&');
+ res += "category~" + id.replace(/[\\|,]/g, '\\$&');
});
return res;
}
});
return res;
}
@@
-108,15
+104,26
@@
function filterSet(team) {
}
}
-// Factory function for filters. These can be of several types.
-function filter(id, name, field, value) {
- var res;
+// Factory functions for filters. These can be of several types.
+function targetFilter(id, name) {
+ return {
+ type: 'target',
+ id: id,
+ name: name
+ };
+}
- if (id) {
- res = { id: id, name: name };
- } else {
- res = { field: field, value: value };
- }
+function fieldFilter(field, value) {
+ return {
+ type: 'field',
+ field: field,
+ value: value
+ };
+}
- return res;
+function categoryFilter(id) {
+ return {
+ type: 'category',
+ id: id,
+ };
}
}