diff options
author | Derrell Lipman <derrell@samba.org> | 2006-12-31 20:12:12 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:35:23 -0500 |
commit | d1e09e2e6f9db62bbab84abb53e23ee73764178a (patch) | |
tree | 18e57f756611c9d3e10fb41bf7c09eeb795028dd /swat.obsolete/scripting/forms.js | |
parent | 710dfce70ca9024d2f026518638bb193e914f4a0 (diff) | |
download | samba-d1e09e2e6f9db62bbab84abb53e23ee73764178a.tar.gz samba-d1e09e2e6f9db62bbab84abb53e23ee73764178a.tar.bz2 samba-d1e09e2e6f9db62bbab84abb53e23ee73764178a.zip |
r20446: rename swat directory to swat.obsolete; keeping it around since there is lots of useful info in it.
(This used to be commit 5f9f72a9cfab80561b23284001b67c4ea961757b)
Diffstat (limited to 'swat.obsolete/scripting/forms.js')
-rw-r--r-- | swat.obsolete/scripting/forms.js | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/swat.obsolete/scripting/forms.js b/swat.obsolete/scripting/forms.js new file mode 100644 index 0000000000..2de9e34462 --- /dev/null +++ b/swat.obsolete/scripting/forms.js @@ -0,0 +1,112 @@ +/* + js functions for forms +*/ + + +/* + display a simple form from a ejs Form object + caller should fill in + f.name = form name + f.action = action to be taken on submit (optional, defaults to current page) + f.class = css class (optional, defaults to 'form') + f.submit = an array of submit labels + f.add(name, label, [type], [value]) = + Add another element + f.element[i].label = element label + f.element[i].name = element name (defaults to label) + f.element[i].type = element type (defaults to text) + f.element[i].value = current value (optional, defaults to "") + */ +function form_display() { + var f = this; + var i, size = 20; + write('<form name="' + f.name + + '" method="post" action="' + f.action + + '" class="' + f.class + '">\n'); + if (f.element.length > 0) { + write("<table>\n"); + } + for (i in f.element) { + var e = f.element[i]; + if (e.name == undefined) { + e.name = e.label; + } + if (e.value == undefined) { + e.value = ""; + } + if (strlen(e.value) > size) { + size = strlen(e.value) + 4; + } + } + for (i in f.element) { + var e = f.element[i]; + write("<tr>"); + write("<td>" + e.label + "</td>"); + if (e.type == "select") { + write('<td><select name="' + e.name + '">\n'); + for (s in e.list) { + if (e.value == e.list[s]) { + write('<option selected=selected>' + e.list[s] + '</option>\n'); + } else { + write('<option>' + e.list[s] + '</option>\n'); + } + } + write('</select></td>\n'); + } else { + var sizestr = ""; + if (e.type == "text" || e.type == "password") { + sizestr = sprintf('size="%d"', size); + } + writef('<td><input name="%s" type="%s" value="%s" %s /></td>\n', + e.name, e.type, e.value, sizestr); + } + write("</tr>"); + } + if (f.element.length > 0) { + write("</table>\n"); + } + for (i in f.submit) { + write('<input name="submit" type="submit" value="' + f.submit[i] + '" />\n'); + } + write("</form>\n"); +} + +function __addMethod(name, label) +{ + var f = this; + var i = f.element.length; + f.element[i] = new Object(); + f.element[i].name = name; + f.element[i].label = label; + f.element[i].type = "text"; + f.element[i].value = ""; + if (arguments.length > 2) { + f.element[i].type = arguments[2]; + } + if (arguments.length > 3) { + f.element[i].value = arguments[3]; + } +} + +/* + create a Form object with the defaults filled in, ready for display() + */ +function FormObj(name, num_elements, num_submits) +{ + var f = new Object(); + f.name = name; + f.element = new Array(num_elements); + f.submit = new Array(num_submits); + f.action = session_uri(request.REQUEST_URI); + f.class = "defaultform"; + f.add = __addMethod; + for (i in f.element) { + f.element[i] = new Object(); + f.element[i].type = "text"; + f.element[i].value = ""; + } + f.display = form_display; + + return f; +} + |