#!/bin/bash
# - These filters not modified, as their purpose is for special review
#   not dependent on context or focus:
#   - report.all.filter
#   - report.completed.filter status:completed
# - What is this -FILTER about in my filters?
#   - In each filter, we negate a non-existent virtual tag -FILTER that
#     doesn't change what the filter matches but does add a recognizable
#     marker. This is used later to substitute the filter with a new one when
#     it changes.
#   - CAUTION: do not add any additional (i.e. non-context, non-focus) material
#     after -FILTER in the report filter variables or else it will be lost next
#     time the context or focus is changed.
script_path=$(dirname ${0})
. "${script_path}/task_functions.sh"

filter_type=$(basename ${0})
task_config "${filter_type}.current" "${@}"
context=$(task_get context.current)
focus=$(task_get focus.current)
colored_context="$(task_color 'white on red' ${context})"
colored_focus="$(task_color 'white on blue' ${focus})"
filter="${context} ${focus}"

filter_vars=$(task_vars filter)
filter_vars=${filter_vars/report.all.filter/}
filter_vars=${filter_vars/report.completed.filter/}
for var in ${filter_vars}; do
    old_value=$(task_get ${var})
    old_value=${old_value/%-FILTER*/}
    task_config ${var} ${old_value} -FILTER ${filter}
done

task_config "shell.prompt" "${colored_context}:${colored_focus}>"

echo "Filter applied to reports and add: ${filter}"
