From 60a692daa915c1708b159216b1d5b2bed1667c4d Mon Sep 17 00:00:00 2001 From: Pawel Tomak Date: Sun, 28 Mar 2010 09:43:13 +0200 Subject: Added support for radio-buttons. Little code reorganisation --- examples/data/scripts/formfiller.sh | 60 +++++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 16 deletions(-) (limited to 'examples/data/scripts/formfiller.sh') diff --git a/examples/data/scripts/formfiller.sh b/examples/data/scripts/formfiller.sh index 7bb7cae..a1f7392 100755 --- a/examples/data/scripts/formfiller.sh +++ b/examples/data/scripts/formfiller.sh @@ -95,7 +95,7 @@ dumpFunction='function dump() { rv += input.name + "(" + type + "):" + input.value + "\\n"; } else if(type == "checkbox" || type == "radio") { - rv += input.name + "(" + type + "):" + (input.checked?"ON":"") + "\\n"; + rv += input.name + "[" + input.value + "](" + type + "):" + (input.checked?"ON":"") + "\\n"; } } } @@ -104,6 +104,32 @@ dumpFunction='function dump() { return rv; }; ' +insertFunction="function insert(fname, ftype, fvalue, fchecked) { \ + var allFrames = new Array(window); \ + for(f=0;f 0) { for(i=0;i 0) { e[0].value="\3" } } catch(err) { } } }; document.getElementsByName("\1")[0].value="\3"/p' | \ - sed -e 's/@/\\@/g' >> $fifo - cat $keydir/$domain | \ - sed -n -e 's/\([^(]\+\)(\(checkbox\)):[ ]*\(.\+\)/js if(window.frames.length > 0) { for(i=0;i 0) { e[0].checked=\3 } } catch(err) { } } }; document.getElementsByName("\1")[0].checked=\3/p' | \ - sed -e 's/@/\\@/g' >> $fifo + sed 's/\([^\[]\+\)\[\([^\]]*\)](\(radio\|checkbox\)):[ ]*\(.\+\)/\1[\2](\3):1/;s/\([^\[]\+\)\[\([^\]]*\)](\(radio\|checkbox\)):$/\1[\2](\3):0/' -i $keydir/$domain + fields=`cat $keydir/$domain | \ + sed -n -e "/^!profile=${option}/,/^!profile=/p"` + echo "${fields}" | \ + sed -n -e "s/\([^(]\+\)(\(password\|text\|textarea\)\+):[ ]*\(.\+\)/js $insertFunction; insert('\1', '\2', '\3', 0);/p" | \ + sed -e 's/@/\\@/g' > $fifo + echo "${fields}" | \ + sed -n -e "s/\([^[]\+\)\[\([^]]*\)](\(radio\|checkbox\)):[ ]*\(.\+\)/js $insertFunction; insert('\1', '\3', '\2', '\4');/p" | \ + sed -e 's/@/\\@/g' > $fifo elif [ "$action" = "once" ] then tmpfile=`mktemp` @@ -132,13 +159,14 @@ then [ -e $tmpfile ] || exit 2 - sed 's/\([^(]\+\)(\(checkbox\)):[ ]*\(.\+\)/\1(\2):1/;s/\([^(]\+\)(\(checkbox\)):$/\1(\2):0/' -i $tmpfile - cat $tmpfile | \ - sed -n -e 's/\([^(]\+\)(\(password\|text\|textarea\)\+):[ ]*\(.\+\)/js if(window.frames.length > 0) { for(i=0;i 0) { e[0].value="\3" } } catch(err) { } } }; document.getElementsByName("\1")[0].value="\3"/p' | \ - sed -e 's/@/\\@/g' >> $fifo - cat $tmpfile | \ - sed -n -e 's/\([^(]\+\)(\(checkbox\)):[ ]*\(.\+\)/js if(window.frames.length > 0) { for(i=0;i 0) { e[0].checked=\3 } } catch(err) { } } }; document.getElementsByName("\1")[0].checked=\3/p' | \ - sed -e 's/@/\\@/g' >> $fifo + sed 's/\([^[]\+\)\[\([^]]*\)](\(radio\|checkbox\)):[ ]*\(.\+\)/\1[\2](\3):1/;s/\([^\[]\+\)\[\([^\]]*\)](\(radio\|checkbox\)):$/\1[\2](\3):0/' -i $tmpfile + fields=`cat $tmpfile` + echo "${fields}" | \ + sed -n -e "s/\([^(]\+\)(\(password\|text\|textarea\)\+):[ ]*\(.\+\)/js $insertFunction; insert('\1', '\2', '\3', 0);/p" | \ + sed -e 's/@/\\@/g' > $fifo + echo "${fields}" | \ + sed -n -e "s/\([^\[]\+\)\[\([^\]]*\)](\(radio\|checkbox\)):[ ]*\(.\+\)/js $insertFunction; insert('\1', '\3', '\2', '\4');/p" | \ + sed -e 's/@/\\@/g' > $fifo rm -f $tmpfile else if [ "$action" == 'new' -o "$action" == 'add' ] -- cgit v1.2.3