From 87b82b5822ca54228cfa6df29be3ad9d4bc47d16 Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Mon, 20 Feb 2017 00:05:28 -0800 Subject: Import Upstream version 2d2 --- htmlform.txi | 205 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 htmlform.txi (limited to 'htmlform.txi') diff --git a/htmlform.txi b/htmlform.txi new file mode 100644 index 0000000..ffa0665 --- /dev/null +++ b/htmlform.txi @@ -0,0 +1,205 @@ +@code{(require 'html-form)} +@ftindex html-form + + +@defun html:atval txt +Returns a string with character substitutions appropriate to +send @var{txt} as an @dfn{attribute-value}. +@cindex attribute-value +@end defun + +@defun html:plain txt +Returns a string with character substitutions appropriate to +send @var{txt} as an @dfn{plain-text}. +@cindex plain-text +@end defun + +@defun html:meta name content +Returns a tag of meta-information suitable for passing as the +third argument to @code{html:head}. The tag produced is @samp{}. The string or symbol @var{name} can be +@samp{author}, @samp{copyright}, @samp{keywords}, @samp{description}, +@samp{date}, @samp{robots}, @dots{}. +@end defun + +@defun html:http-equiv name content +Returns a tag of HTTP information suitable for passing as the +third argument to @code{html:head}. The tag produced is @samp{}. The string or symbol @var{name} can be +@samp{Expires}, @samp{PICS-Label}, @samp{Content-Type}, +@samp{Refresh}, @dots{}. +@end defun + +@defun html:meta-refresh delay uri + + +@defunx html:meta-refresh delay + +Returns a tag suitable for passing as the third argument to +@code{html:head}. If @var{uri} argument is supplied, then @var{delay} seconds after +displaying the page with this tag, Netscape or IE browsers will fetch +and display @var{uri}. Otherwise, @var{delay} seconds after displaying the page with +this tag, Netscape or IE browsers will fetch and redisplay this page. +@end defun + +@defun html:head title backlink tags @dots{} + + +@defunx html:head title backlink + +@defunx html:head title + +Returns header string for an HTML page named @var{title}. If @var{backlink} is a string, +it is used verbatim between the @samp{H1} tags; otherwise @var{title} is +used. If string arguments @var{tags} ... are supplied, then they are +included verbatim within the @t{} section. +@end defun + +@defun html:body body @dots{} +Returns HTML string to end a page. +@end defun + +@defun html:pre line1 line @dots{} +Returns the strings @var{line1}, @var{lines} as @dfn{PRE}formmated plain text +@cindex PRE +(rendered in fixed-width font). Newlines are inserted between @var{line1}, +@var{lines}. HTML tags (@samp{}) within @var{lines} will be visible verbatim. +@end defun + +@defun html:comment line1 line @dots{} +Returns the strings @var{line1} as HTML comments. +@end defun +@section HTML Forms + + +@defun html:form method action body @dots{} +The symbol @var{method} is either @code{get}, @code{head}, @code{post}, +@code{put}, or @code{delete}. The strings @var{body} form the body of the +form. @code{html:form} returns the HTML @dfn{form}. +@cindex form +@end defun + +@defun html:hidden name value +Returns HTML string which will cause @var{name}=@var{value} in form. +@end defun + +@defun html:checkbox pname default +Returns HTML string for check box. +@end defun + +@defun html:text pname default size @dots{} +Returns HTML string for one-line text box. +@end defun + +@defun html:text-area pname default-list +Returns HTML string for multi-line text box. +@end defun + +@defun html:select pname arity default-list foreign-values +Returns HTML string for pull-down menu selector. +@end defun + +@defun html:buttons pname arity default-list foreign-values +Returns HTML string for any-of selector. +@end defun + +@defun form:submit submit-label command + + +@defunx form:submit submit-label + +The string or symbol @var{submit-label} appears on the button which submits the form. +If the optional second argument @var{command} is given, then @code{*command*=@var{command}} +and @code{*button*=@var{submit-label}} are set in the query. Otherwise, +@code{*command*=@var{submit-label}} is set in the query. +@end defun + +@defun form:image submit-label image-src +The @var{image-src} appears on the button which submits the form. +@end defun + +@defun form:reset +Returns a string which generates a @dfn{reset} button. +@cindex reset +@end defun + +@defun form:element pname arity default-list foreign-values +Returns a string which generates an INPUT element for the field +named @var{pname}. The element appears in the created form with its +representation determined by its @var{arity} and domain. For domains which +are foreign-keys: + +@table @code +@item single +select menu +@item optional +select menu +@item nary +check boxes +@item nary1 +check boxes +@end table + +If the foreign-key table has a field named @samp{visible-name}, then +the contents of that field are the names visible to the user for +those choices. Otherwise, the foreign-key itself is visible. + +For other types of domains: + +@table @code +@item single +text area +@item optional +text area +@item boolean +check box +@item nary +text area +@item nary1 +text area +@end table +@end defun + +@defun form:delimited pname doc aliat arity default-list foreign-values + + +Returns a HTML string for a form element embedded in a line of a +delimited list. Apply map @code{form:delimited} to the list returned by +@code{command->p-specs}. +@end defun + +@defun command->p-specs rdb command-table command + + +The symbol @var{command-table} names a command table in the @var{rdb} relational database. +The symbol @var{command} names a key in @var{command-table}. + +@code{command->p-specs} returns a list of lists of @var{pname}, @var{doc}, @var{aliat}, +@var{arity}, @var{default-list}, and @var{foreign-values}. The +returned list has one element for each parameter of command @var{command}. + +This example demonstrates how to create a HTML-form for the @samp{build} +command. + +@example +(require (in-vicinity (implementation-vicinity) "build.scm")) +(call-with-output-file "buildscm.html" + (lambda (port) + (display + (string-append + (html:head 'commands) + (html:body + (sprintf #f "

%s:

%s
\\n" + (html:plain 'build) + (html:plain ((comtab 'get 'documentation) 'build))) + (html:form + 'post + (or "http://localhost:8081/buildscm" "/cgi-bin/build.cgi") + (apply html:delimited-list + (apply map form:delimited + (command->p-specs build '*commands* 'build))) + (form:submit 'build) + (form:reset)))) + port))) +@end example +@end defun -- cgit v1.2.3