]> git.plutz.net Git - confetti/blobdiff - cards/filter_card.sh
style for card filter dialog
[confetti] / cards / filter_card.sh
index cc0f9127e404fbbaf52ba752ad97d4545dc70ddc..2b25acb8f5dca7f4377964883ce1dcbf738b7605 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/zsh
 
-# Copyright 2014, 2017 Paul Hänsch
+# Copyright 2014, 2017, 2019 Paul Hänsch
 #
 # This file is part of Confetti.
 # 
 # You should have received a copy of the GNU Affero General Public License
 # along with Confetti.  If not, see <http://www.gnu.org/licenses/>. 
 
-cgi_post
+filter="$(
+  seq 0 100 |while read n; do
+    filter_type="$(POST "filter_type${n}")"
+    filter_text="$(POST "filter_text${n}")"
+    [ ! "$filter_type" -a ! "$filter_text"  ] && break
+    if [ "$filter_type" = CATEGORIES ]; then
+      printf '^CATEGORIES:'
+      seq 0 $(POST_COUNT filter_cat$n) |while read m; do
+        printf '|%s' "$(POST filter_cat$n $m)"
+      done
+    else
+      printf '^%s:%s' "$filter_type" "$filter_text"
+    fi
+  done | sed -r \
+         's;\|+;\|;g;   s;\^+;\^;g;   s;:\|;:;g;
+          :X;   s;\^[^:]*:\^;\^;g;   /\^[^:]*:\^/bX;
+          s;^\^;;;   s;\^[^:]*:$;;;'
+)"
 
-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
+case $(POST choice) in
+  filter)
+    REDIRECT "/cards/?o=$(POST order)&f=${filter}"
+    ;;
+  new_filter)
+    REDIRECT "/cards/?o=$(POST order)&f=${filter}&newfilter=yes"
+    ;;
+  *)
+    REDIRECT '/cards/'
+    ;;
+esac