|
@@ -1,15 +1,26 @@
|
|
define(["filters/nodefilter"], function (nodefilter) {
|
|
define(["filters/nodefilter"], function (nodefilter) {
|
|
return function (name, key, value, f) {
|
|
return function (name, key, value, f) {
|
|
|
|
+ var negate = false
|
|
|
|
+ var refresh
|
|
|
|
+
|
|
function run(d) {
|
|
function run(d) {
|
|
var o = dictGet(d, key.slice(0))
|
|
var o = dictGet(d, key.slice(0))
|
|
|
|
|
|
if (f)
|
|
if (f)
|
|
o = f(o)
|
|
o = f(o)
|
|
|
|
|
|
- return o === value
|
|
|
|
|
|
+ return o === value ? !negate : negate
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ function setRefresh(f) {
|
|
|
|
+ refresh = f
|
|
}
|
|
}
|
|
|
|
|
|
- function setRefresh() {
|
|
|
|
|
|
+ function draw(el) {
|
|
|
|
+ if (negate)
|
|
|
|
+ el.parentNode.classList.add("not")
|
|
|
|
+ else
|
|
|
|
+ el.parentNode.classList.remove("not")
|
|
}
|
|
}
|
|
|
|
|
|
function render(el) {
|
|
function render(el) {
|
|
@@ -19,7 +30,17 @@ define(["filters/nodefilter"], function (nodefilter) {
|
|
var strong = document.createElement("strong")
|
|
var strong = document.createElement("strong")
|
|
strong.textContent = value
|
|
strong.textContent = value
|
|
|
|
|
|
|
|
+ draw(el)
|
|
|
|
+
|
|
label.appendChild(strong)
|
|
label.appendChild(strong)
|
|
|
|
+ label.onclick = function () {
|
|
|
|
+ negate = !negate
|
|
|
|
+
|
|
|
|
+ draw(el)
|
|
|
|
+
|
|
|
|
+ if (refresh)
|
|
|
|
+ refresh()
|
|
|
|
+ }
|
|
|
|
|
|
el.appendChild(label)
|
|
el.appendChild(label)
|
|
}
|
|
}
|