]> git.plutz.net Git - lobster/blobdiff - cards/widgets.sh
merge from confetti
[lobster] / cards / widgets.sh
index c0c05946b1c594272d034a33081e351444873df9..9a71f198c4a9322ef6f465dba321290b5d6cc0f1 100755 (executable)
 # You should have received a copy of the GNU Affero General Public License
 # along with Confetti.  If not, see <http://www.gnu.org/licenses/>. 
 
-list_categories() {
-  grep -vxE '^[        ]*$' "${_DATA}/mappings/categories"
-}
-
-list_courses() {
-  local file name cachefile="${_DATA}/cache/courses.ui.cache"
-  if [ $cachefile -nt "${_DATA}/ical" ]; then
-    cat "$cachefile"
-  else
-    for file in "$_DATA/ical"/*.ics; do
-      name="$(pdi_value "$(pdi_load "$file")" SUMMARY |HTML)"
-      printf '%s       %s\n' "$file" "$name"
-    done \
-    | sort -k2 |tee "$cachefile"
-  fi
-}
-
 w_filter_item() {
 n=$3
 cat <<EOF
   [fieldset .item
     [legend $(l10n filter_item):]
 
-    $(for field in any name street zip TEL BDAY CATEGORIES course; do
-      printf '[input id="%s%i" type="radio" name="filter_type%i" value="%s" %s][label for="%s%i" %s ]' \
+    $(for field in any name street zip TEL BDAY; do
+      printf '[input id="%s%i" type="radio" name="filter_type%i" value="%s" %s]
+              [label for="%s%i" %s ]' \
               "$field" "$n" "$n" "$field" "$([ "$1" = "$field" ] && printf checked )" \
               "$field" "$n" "$(l10n filter_$field)"
     done)
-    [input type="text" name="filter_text$n" value="$([ "$1" = CATEGORIES -o "$1" = course ] || HTML "$2")" placeholder="$(l10n filter_placeholder)"]
-    [fieldset .categories
-      $(list_categories | while read cat; do
-          printf '[label [checkbox "filter_cat%i" "|%s" %s] %s ] ' \
-                 "$n" "$(HTML "$cat")" \
-                 "$(printf %s "$cat" |grep -qxEe "$2" && printf checked )" \
-                 "$(HTML "$cat")"
-      done)
-      [a href="/categories/" $(l10n edit_categories)]
-    ]
-    [fieldset .courses
-      $(list_courses | while read course coursename; do
-        printf '[label [checkbox "filter_course%i" "|%s" %s] %s ] ' \
-               "$n" "$(HTML "${course##*/}")" \
-               "$(printf %s "${course##*/}" |grep -qxEe "$2" && printf checked )" \
-               "$coursename"
-      done)
-    ]
+    [input type="text" name="filter_text$n" value="$([ "$1" = CATEGORIES ] || HTML "$2")" placeholder="$(l10n filter_placeholder)"]
   ]
 EOF
 }
@@ -82,8 +49,8 @@ w_filter_diag(){
     [button type="submit" name="choice" value="new_filter" $(l10n filter_more)]
     [fieldset class="order"
       [legend $(l10n filter_order):]
-      [label [radio "order" "firstname" $( [ "$order" = firstname ] && printf checked )] $(l10n filter_firstname)]
       [label [radio "order" "lastname"  $( [ "$order" = lastname  ] && printf checked )] $(l10n filter_lastname)]
+      [label [radio "order" "firstname" $( [ "$order" = firstname ] && printf checked )] $(l10n filter_firstname)]
       [label [radio "order" "bdate"     $( [ "$order" = bdate     ] && printf checked )] $(l10n filter_bdate)]
     ]
     [button type="submit" name="choice" value="filter" $(l10n filter_apply)]
@@ -93,21 +60,6 @@ w_filter_diag(){
 EOF
 }
 
-# listcards |grep ${edit:+-v} "$edit" \
-# | while read card; do
-#   "${_EXEC}"/cgilite/html-sh.sed <<-ENDCARD
-#      [div #${card} .card
-#        $(view_card "$card")[!--
-#        --][div .control
-#          [a "?action=edit_card&card=${card}" .item $(l10n edit)]
-#          [a "?action=export_vcard&card=${card}".item $(l10n vcf_export)]
-#          ${profile_medical:+[a "?action=new_prescription&client=${card}" .item $(l10n new_prescription)]}
-#      ]]
-#      ENDCARD
-# done
-
-#!/bin/sh
-
 card_item(){
   local card="$1"
   local item cnt c
@@ -167,10 +119,42 @@ card_item(){
                     "$(pdi_value "$card" TEL $c |unescape |HTML)"
         done
         ;;
+      X-HEALTH-INSURANCE)
+        [ $cnt -gt 0 ] && printf '[h3 %s]' "$(l10n X-HEALTH-INSURANCE)"
+        seq 1 $cnt |while read c; do
+          IFS=\; read -r hi_name hi_number hi_status <<-EOF
+               $(pdi_value "$card" X-HEALTH-INSURANCE $c)
+               EOF
+          printf '[span .item .hi_company . %s]
+                  [span .item .hi_number [label %s:] %s]
+                  [span .item .hi_status [label %s:] %s]
+                 ' "$(unescape "$hi_name" |HTML)" \
+                   "$(l10n hi_number)" "$(unescape "$hi_number" |HTML)" \
+                   "$(l10n hi_status)" "$(unescape "$hi_status" |HTML)"
+        done
+        ;;
+      therapies)
+        client="$(pdi_value "$card" UID)"
+        printf '[h3 %s]' "$(l10n therapies)"
+        (cd "$_DATA/therapies/"; printf '%s\n' "${client}".*.tpy) \
+        | while read tpyfile; do
+          [ "$tpyfile" = "${client}.*.tpy" ] \
+          && printf '[a .item .therapy href="/therapies/%s/new" . +]' "${client}" \
+          && break
+          tpy="${tpyfile%.tpy}";
+          tpydates="$(sed -En 's;^session[0-9]+_date:;;p;' "$_DATA/therapies/$tpyfile" \
+                      | sort \
+                      | sed -E ':X;N;$!bX; s;^[\n ]+;;; s;[\n ]+$;;; s;(\n.*\n|\n); - ;;'
+                     )"
+          printf '[a .item .therapy href="/therapies/%s" . %s] ' \
+                 "${tpy%.*}/${tpy#*.}" "$(HTML "${tpydates:--}")"
+        done |sort -n
+        ;;
       *)[ $cnt -gt 0 ] && printf '[h3 %s]' "$(l10n "$item")"
+        shy="$(printf '\302\255')"
         seq 1 $cnt |while read c; do
           printf '[span .item .%s . %s]' "$item" \
-                 "$(pdi_value "$card" "$item" $c |unescape |HTML)"
+                 "$(pdi_value "$card" "$item" $c |sed -r "s;(straße|weg|damm|allee|ufer);${shy}\1;g" |unescape |HTML)"
         done
         ;;
     esac
@@ -236,7 +220,7 @@ edit_item(){
           printf '[checkbox "%s_delete_%i" "true" .delete #%s_delete_%i][label for="%s_delete_%i" %s]' \
             "$item" $c "$item" $c "$item" $c "$(l10n delete)"
           printf '<textarea class="item %s" name="%s">%s</textarea>' \
-            "$item" "$item" "$(pdi_value "$card" "$item" $c |unescape |HTML)"
+            "$item" "$item" "$(pdi_value "$card" "$item" $c |pdi_unescape |HTML)"
         done
         printf '[button type="submit" name="action" value="addfield %s" %s ]' "$item" "$(l10n edit_addfield)"
         ;;
@@ -259,16 +243,43 @@ edit_item(){
                   "$([ "$teltype" = 'FAX'  ] && printf 'selected="selected"')" "$(l10n TYPE=FAX)"
 
           printf '[input .item .%s name="%s" value="%s" placeholder="%s"]' \
-            "$item" "$item" "$(pdi_value "$card" "$item" $c |unescape |HTML)" "$(l10n "$item")"
+            "$item" "$item" "$(pdi_value "$card" "$item" $c |pdi_unescape |HTML)" "$(l10n "$item")"
         done
         printf '[button type="submit" name="action" value="addfield %s" %s ]' "$item" "$(l10n edit_addfield)"
         ;;
+      X-HEALTH-INSURANCE)
+        printf '[h3 %s]' "$(l10n "$item")"
+        seq 1 $cnt |while read c; do
+          # printf '[checkbox "%s_delete_%i" "true" .delete #%s_delete_%i][label for="%s_delete_%i" %s]' \
+          #   "$item" $c "$item" $c "$item" $c "$(l10n delete)"
+          IFS=\; read -r hi_name hi_number hi_status <<-EOF
+               $(pdi_value "$card" X-HEALTH-INSURANCE $c)
+               EOF
+          cat <<-EOF
+               [input type="radio" name="$item" value="list" #hi_select_list checked]<!--
+               -->[label for="hi_select_list" $(l10n hi_from_list)]<!--
+               -->[input type="radio" name="$item" value="other" #hi_other checked]<!--
+               -->[label for="hi_other" $(l10n hi_other)]<!--
+               -->[select class="item" name="hi_company"
+                 [option value="" disabled="disabled" $(selected "${hi_name}" "") . $(l10n hi_company)]
+                 $(list_hi_companies |while read f; do
+                   printf '[option value="%s" %s . %s]' "$(pdi_unescape "$f" |HTML)" \
+                                                        "$(selected "$f" "$hi_name")" \
+                                                        "$(pdi_unescape "$f" |HTML)"
+                 done)
+               ]
+               [input type="text" name="hi_other" value="$hi_name" placeholder="$(l10n hi_company)"]
+               [input name="hi_number" value="$(pdi_unescape "$hi_number" |HTML)" placeholder="$(l10n hi_number)"]
+               [input name="hi_status" value="$(pdi_unescape "$hi_status" |HTML)" placeholder="$(l10n hi_status)"]
+               EOF
+        done
+        ;;
       *)printf '[h3 %s]' "$(l10n "$item")"
         seq 1 $cnt |while read c; do
           printf '[checkbox "%s_delete_%i" "true" .delete #%s_delete_%i][label for="%s_delete_%i" %s]' \
             "$item" $c "$item" $c "$item" $c "$(l10n delete)"
           printf '[input .item .%s name="%s" value="%s" placeholder="%s"]' \
-            "$item" "$item" "$(pdi_value "$card" "$item" $c |unescape |HTML)" "$(l10n "$item")"
+            "$item" "$item" "$(pdi_value "$card" "$item" $c |pdi_unescape |HTML)" "$(l10n "$item")"
         done
         printf '[button type="submit" name="action" value="addfield %s" %s ]' "$item" "$(l10n edit_addfield)"
         ;;