diff --git a/donate-insights/src/goals.sh b/donate-insights/src/goals.sh new file mode 100644 index 0000000000000000000000000000000000000000..e5204cf0bd4a1a037e9dcc32e23fcfc6df1cdbe9 --- /dev/null +++ b/donate-insights/src/goals.sh @@ -0,0 +1,88 @@ +#!/bin/bash +set -e + +avg_past3=$(echo "scale=2; (($month1_spent + $month2_spent + $month3_spent) / 3) * -1" | bc -l ) +goal1_percentage=$(bc -l <<< "scale=2; (${month0_donated} * 100) / (${avg_past3})") +goal1_reached=$(bc -l <<< "$month0_donated >= $avg_past3") + +goal2_target=$(bc -l <<< "scale=2; $avg_past3 + $spending_buffer") +goal2_percentage=$(bc -l <<< "scale=2; ((${month0_donated} - $avg_past3) * 100) / ($goal2_target - $avg_past3)") +goal2_reached=$(bc -l <<< "$month0_donated >= $goal2_target") + +goal3_target=$(echo "scale=2; ((($month1_th + $month2_th + $month3_th) / 3) * 60) + $goal2_target" | bc -l ) +goal3_percentage=$(bc -l <<< "scale=2; ((${month0_donated} - $goal2_target) * 100) / ($goal3_target - $goal2_target)") +goal3_reached=$(bc -l <<< "$month0_donated >= $goal3_target") + +goals=(1 2 3) +for i in ${goals[@]}; do + percentage=goal${i}_percentage + reached=goal${i}_reached + if (( "${!reached}" == 1 )); then + declare goal${i}_lenght=100 + declare goal${i}_bar="linear-gradient(90deg, #0093f0 0%, #0093f0 100%)" + declare goal${i}_success="background: #0093f0;" + declare goal${i}_noflash="animation: none;" + else + declare goal${i}_lenght=${!percentage} + lenght=goal${i}_lenght + declare goal${i}_bar="linear-gradient(90deg, #0093f0 0%, #0093f0 ${!lenght}%, rgba(0,0,0,0) ${!lenght}%)" + fi +done + +# little bit dirty – to avoid all hr's to get filled at the same time +if [ $goal1_lenght != 100 ]; then + goal2_bar=none + goal3_bar=none +elif [ $goal2_lenght != 100 ]; then + goal3_bar=none +fi + +generated=$(date +'%A, %d.%m.%Y – %H:%M%P %Z') + +echo " span.donate-goals-current>span { + display: none; + } + span.donate-goals-current::after { + content: \"${month0_donated}\"; + visibility: visible; + display: inline-block; + } + .donate-goals > .target .icon.progress-goal1 { + background-image: $goal1_bar; + background-color: #a1b3c4; + } + .donate-goals hr.progress-goal2 { + background-image: $goal2_bar; + } + .donate-goals hr.progress-goal3 { + background-image: $goal3_bar; + } + span.goal1::before { + content: \"$avg_past3\"; + } + span.goal2::before { + content: \"$goal2_target\"; + } + span.goal3::before { + content: \"$goal3_target\"; + } + .donate-goals > .target .icon.progress-goal1, + .progress-goal1+.tooltip+.target>.icon { + $goal1_success + $goal1_noflash + } + .progress-goal2+.target .icon, + .progress-goal2+.tooltip+.target>.icon { + $goal2_success + $goal2_noflash + } + .progress-goal3+.target .icon, + .progress-goal3+.tooltip+.target>.icon { + $goal3_success + $goal3_noflash + } + .donate-goals-generated::before { + content: \"${generated}\"; + } ">$outpath/donate-goals.css + +echo "✅ goals css written."