]> git.plutz.net Git - confetti/blobdiff - actions/filter_card.sh
interface for combined filters
[confetti] / actions / filter_card.sh
index b5ce333aa85c91db928833abb94f6347ca7efdc7..cc0f9127e404fbbaf52ba752ad97d4545dc70ddc 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)
-    for n in '' {0..100}; do
-      debug "N: $n; ${_POST[filter$n]}"
-      [ -z "${_POST[filter$n]+x}" ] && break
-      filterval="${_POST[filter$n]}"
-      filtertype="${_POST[filtertype$n]}"
-      filter="${filtertype}:${filterval}${filter+^${filter}}"
-    done
-    order="${_POST[order]}"
-    echo -n "Location: ?p=cards&filter=$filter&filtertype=advanced&order=$order\n\n"
-    ;;
-  #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