That's possible, I'm only pasting the part of what's relevant, since it's a huge script by now :)
#!/bin/bash
escaper()
{
action=$?
if [ $action = 1 -o $action = 255 ];
then
dialog --title "$title" --yesno "\nAre you sure you want to quit?" 7 35
sure=$?
if [ $sure = 0 ];
then
clear
exit
fi
fi
}
genhour()
{
genhour=9
hour=$RANDOM
let "hour %= $genhour"
}
genminute()
{
genminute=59
minute=$RANDOM
let "minute %= $genminute"
}
pid=$(echo $$)
if [ -z $1 ];
then
genhour
genminute
dialog --backtitle "$backtitle" --title "$title" --keep-window --form "\nYour Backup Account Details\n" 20 60 0 \
"Username....:" 1 1 "" 1 15 14 0 \
"Password....:" 2 1 "" 2 15 14 0 \
"Server......:" 3 1 "" 3 15 30 0 \
"Backup root.:" 4 1 "/" 4 15 30 0 \
"Weeks.......:" 5 1 "0" 5 15 2 0 \
"Months......:" 6 1 "0" 6 15 2 0 \
"MySQL dumps.:" 7 1 "$mysqldumps" 7 15 1 0 \
"SQL Dir.....:" 8 1 "/var/sqlbackups/" 8 15 30 0 \
"Cron (HH)...:" 9 1 "$hour" 9 15 2 0 \
"Cron (MM)...:" 10 1 "$minute" 10 15 2 0 \
"Logging.....:" 11 1 "Y" 11 15 1 0 \
"Email log...:" 12 1 "N" 12 15 1 0 \
"Emailaddress:" 13 1 "" 13 15 30 0 2> /tmp/$pid-options
escaper
choice=$?
array=( `cat /tmp/$pid-options `)
if [ -f /tmp/$pid-options ];
then
rm /tmp/$pid-options > /dev/null 2> /dev/null
fi
while ! [ ${#array[@]} = 13 ]
do
dialog --backtitle "$backtitle" --title "$title" --msgbox "\nNot all fields are populated!\n\nPlease make sure you fill in all the fields." 10 50; clear
genhour
genminute
dialog --backtitle "$backtitle" --title "$title" --keep-window --form "\nYour Backup Account Details\n" 20 60 0 \
"Username....:" 1 1 "" 1 15 14 0 \
"Password....:" 2 1 "" 2 15 14 0 \
"Server......:" 3 1 "" 3 15 30 0 \
"Backup root.:" 4 1 "$defaultbackuppath" 4 15 30 0 \
"Weeks.......:" 5 1 "0" 5 15 2 0 \
"Months......:" 6 1 "0" 6 15 2 0 \
"MySQL dumps.:" 7 1 "$mysqldumps" 7 15 1 0 \
"SQL Dir.....:" 8 1 "/var/sqlbackups/" 8 15 30 0 \
"Cron (HH)...:" 9 1 "$hour" 9 15 2 0 \
"Cron (MM)...:" 10 1 "$minute" 10 15 2 0 \
"Logging.....:" 11 1 "Y" 11 15 1 0 \
"Email log...:" 12 1 "N" 12 15 1 0 \
"Emailaddress:" 13 1 "" 13 15 30 0 2> /tmp/$pid-options
escaper
choice=$?
array=( `cat /tmp/$pid-options `)
if [ -f /tmp/$pid-options ];
then
rm /tmp/$pid-options > /dev/null 2> /dev/null
fi
done
fi
As you can see, it's showing a message if the array is not completely filled. I want that window on top of the original box, so if a user selects OK, it returns to the original window, keeping the fields with their input.
As stated before, it's not the complete code, but enough to run :). Should you need more, let me know. And indeed, the manpage on dialog is very limited...


