Ability to set gnusocial expire period from control panel

This commit is contained in:
Bob Mottram 2017-04-05 11:58:20 +01:00
parent 7d0f470389
commit 5db30ada00
2 changed files with 78 additions and 6 deletions

View File

@ -274,6 +274,40 @@ function gnusocial_set_title {
esac
}
function gnusocial_set_expire_months {
GNUSOCIAL_DOMAIN_NAME=$(get_completion_param "gnusocial domain")
read_config_param "GNUSOCIAL_EXPIRE_MONTHS"
data=$(tempfile 2>/dev/null)
trap "rm -f $data" 0 1 2 5 15
dialog --title $"GNU Social" \
--backtitle $"Freedombone Control Panel" \
--inputbox $'Set an expiry period for posts in months. Anything older will be deleted. Lower values help to keep the database size small and as fast as possible.' 12 60 "$GNUSOCIAL_EXPIRE_MONTHS" 2>$data
sel=$?
case $sel in
0)
new_expiry_months=$(<$data)
if [ ${#new_expiry_months} -gt 0 ]; then
# should contain no spaces
if [[ "$new_expiry_months" == *" "* ]]; then
return
fi
# should be a number
re='^[0-9]+$'
if ! [[ $new_expiry_months =~ $re ]] ; then
return
fi
# set the new value
GNUSOCIAL_EXPIRE_MONTHS=$new_expiry_months
write_config_param "GNUSOCIAL_EXPIRE_MONTHS" "$GNUSOCIAL_EXPIRE_MONTHS"
expire_gnusocial_posts "$GNUSOCIAL_DOMAIN_NAME" "gnusocial" "$GNUSOCIAL_EXPIRE_MONTHS"
dialog --title $"Set GNU Social post expiry period" \
--msgbox $"Expiry period set to $GNUSOCIAL_EXPIRE_MONTHS months" 6 60
fi
;;
esac
}
function configure_interactive_gnusocial {
while true
do
@ -281,10 +315,11 @@ function configure_interactive_gnusocial {
trap "rm -f $data" 0 1 2 5 15
dialog --backtitle $"Freedombone Control Panel" \
--title $"GNU Social" \
--radiolist $"Choose an operation:" 12 70 3 \
--radiolist $"Choose an operation:" 13 70 4 \
1 $"Set a background image" off \
2 $"Set the title" off \
3 $"Exit" on 2> $data
3 $"Set post expiry period (currently $GNUSOCIAL_EXPIRE_MONTHS months)" off \
4 $"Exit" on 2> $data
sel=$?
case $sel in
1) return;;
@ -293,7 +328,8 @@ function configure_interactive_gnusocial {
case $(cat $data) in
1) gnusocial_set_background_image;;
2) gnusocial_set_title;;
3) break;;
3) gnusocial_set_expire_months;;
4) break;;
esac
done
}

View File

@ -258,6 +258,40 @@ function postactiv_set_title {
esac
}
function postactiv_set_expire_months {
POSTACTIV_DOMAIN_NAME=$(get_completion_param "postactiv domain")
read_config_param "POSTACTIV_EXPIRE_MONTHS"
data=$(tempfile 2>/dev/null)
trap "rm -f $data" 0 1 2 5 15
dialog --title $"PostActiv" \
--backtitle $"Freedombone Control Panel" \
--inputbox $'Set an expiry period for posts in months. Anything older will be deleted. Lower values help to keep the database size small and as fast as possible.' 12 60 "$POSTACTIV_EXPIRE_MONTHS" 2>$data
sel=$?
case $sel in
0)
new_expiry_months=$(<$data)
if [ ${#new_expiry_months} -gt 0 ]; then
# should contain no spaces
if [[ "$new_expiry_months" == *" "* ]]; then
return
fi
# should be a number
re='^[0-9]+$'
if ! [[ $new_expiry_months =~ $re ]] ; then
return
fi
# set the new value
POSTACTIV_EXPIRE_MONTHS=$new_expiry_months
write_config_param "POSTACTIV_EXPIRE_MONTHS" "$POSTACTIV_EXPIRE_MONTHS"
expire_gnusocial_posts "$POSTACTIV_DOMAIN_NAME" "postactiv" "$POSTACTIV_EXPIRE_MONTHS"
dialog --title $"Set PostActiv post expiry period" \
--msgbox $"Expiry period set to $POSTACTIV_EXPIRE_MONTHS months" 6 60
fi
;;
esac
}
function configure_interactive_postactiv {
while true
do
@ -265,10 +299,11 @@ function configure_interactive_postactiv {
trap "rm -f $data" 0 1 2 5 15
dialog --backtitle $"Freedombone Control Panel" \
--title $"PostActiv" \
--radiolist $"Choose an operation:" 12 70 3 \
--radiolist $"Choose an operation:" 13 70 4 \
1 $"Set a background image" off \
2 $"Set the title" off \
3 $"Exit" on 2> $data
3 $"Set post expiry period (currently $POSTACTIV_EXPIRE_MONTHS months)" off \
4 $"Exit" on 2> $data
sel=$?
case $sel in
1) return;;
@ -277,7 +312,8 @@ function configure_interactive_postactiv {
case $(cat $data) in
1) postactiv_set_background_image;;
2) postactiv_set_title;;
3) break;;
3) postactiv_set_expire_months;;
4) break;;
esac
done
}