interface for combined filters
[confetti] / actions / filter_card.sh
index 9de0288..cc0f912 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/zsh
 
-# Copyright 2014 Paul Hänsch
+# Copyright 2014, 2017 Paul Hänsch
 #
 # This file is part of Confetti.
 # 
 
 cgi_post
 
-case "${_POST[choice]}"; in
-  new_filter)
-    filter="${_POST[filter]}"
-    filtertype="${_POST[filtertype]}"
-    order="${_POST[order]}"
-    echo -n "Location: ?p=cards&filter=$filter&filtertype=$filtertype&order=$order\n\n"
-    ;;
-  *)
-    echo -n "Location: ?p=cards\n\n"
-    ;;
-esac
+if [ "${_POST[choice]}" = new_filter ]; then
+  filter="$(
+    for n in filter{0..100}; do
+      # [ -z "${_POST[$n]:+x}" ] && break
+      printf %s "${_POST[$n]}"
+    done \
+    | sed -r 's;\|+;\|;g; s;\^+;\^;g; s;:\|;:;g; :X; s;\^[^:]*:\^;\^;g; /\^[^:]*:\^/bX; s;^\^;;; s;\^[^:]*:$;;;'
+  )"
+  printf 'Location: ?p=cards&order=%s&filter=%s\n\n' "${_POST[order]}" "$filter"
+else
+  printf 'Location: ?p=cards\n\n'
+fi