#!/bin/zsh
-# Copyright 2015 Paul Hänsch
+# Copyright 2015 - 2016 Paul Hänsch
#
# This file is part of Confetti.
#
# along with Confetti. If not, see <http://www.gnu.org/licenses/>.
catfile="${_DATA}/mappings/categories"
-cgi_post
remove="${_POST[remove]}"
newcat="${_POST[newcat]}"
--- /dev/null
+#!/bin/zsh
+
+# Copyright 2016 Paul Hänsch
+#
+# This file is part of Confetti.
+#
+# Confetti is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Confetti is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with Confetti. If not, see <http://www.gnu.org/licenses/>.
+
+. "$_EXEC"/pages/categories.sh
+
+catfile="${_DATA}/mappings/categories"
+
+set_categories(){
+ card="${_DATA}/vcard/$1"
+ cats="$2"
+ cardcats="$(sed -nr 's;^CATEGORIES(\;[^":]+|\;"[^"]+")*:([^\r]+)\r?$;\2;p' "$card")"
+
+ debug "CARD: $card"
+ debug "CATS: $cardcats"
+ debug "NEW: $cats"
+ if [ "$cats" != "$cardcats" ]; then
+ sed -ri '
+ /^CATEGORIES[;:]/d
+ /^END:VCARD *\r?$/iCATEGORIES:'"$cats"'\r
+ ' "${card}"
+ fi
+}
+
+listcards |while read card; do
+ cardcats=''
+ for n in "$card" "$card"{0..100}; do
+ if [ -z "${_POST[$n]}" ]; then
+ set_categories "$card" "$cardcats"
+ break
+ fi
+ cardcats="${cardcats}${cardcats:+,}${_POST[$n]}"
+ done
+done
+
+redirect "?p=categories"