The surflet-path could be given either explicitly or by options-structure.
This introduced an unexpected behavior: the explicitly given surflet-path
argument was completely ignored when options were given.
Now we accept only one argument to SURFLET-HANDLER that must be an option,
like HTTPD does it.
+ Detach TEXTAREA input field from simple input fields
(concerning its setter) and remove WRAP? parameter from
make-simple-default-setter
+ Rename TOLERATE-OLD-SELECT-OPTIONS to SIMPLE-OPTIONS
+ Deprecate MAKE-ANNOTATED-SELECT; it's not useful anymore
+ Merge MAKE-SELECT and REALLY-MAKE-SELECT to one function MAKE-SELECT
* added new error signal no-nameserver-given
* modified send-receive-message-* functions:
- better error handling
- timeout/maxtries functionality
- try to contact all nameservers,
before error is signaled
Rename function TYPED-OPTONALS to OPTIONALS-FIRST and move its definition
to the only module that uses it: sxml.scm
Use LET-OPTIONALS instead of OPTIONALS, as it does the job, too, and
it ensures that the meaning of an argument depends only on its
position and not on the amount of arguments in front of it.
This commit removes a pitfall in calls to MAKE-TEXTAREA.
Nearly every example SUrflet continues to work unchanged, except of one
line in admin-surflets.scm, thus updating it.
descriptive and not misleading.
If you have written SUrflets that use the input field feature, you must
rename your input field commands to get them work with this change.
Contact me, if you want to have a small script that does this for you.
buttons return the coordinates where the user clicked la
imgbtn321.x=13&imgbtn321.y=12. Thus, we cannot search for the
input-field-name of the image button. To remove this bug, we introduce
following changes:
surflet-input-fields.scm:
+ make-image-button returns a multi-input-field that searches for its
coordinates in the bindings, returning a pair (x y) of it (numbers).
+ Adapt select-input-fields to interface changes of multi-input-fields:
transformers get also their input-fields.
returned-via.scm:
Don't simply check for the input field name in the binding. Use
input-field-value to check for existance of the input field in the
bindings
input-fields.scm:
multi-input-fields get also their input-field as argument
web-server/root/surflets/byte-input.scm:
Adapt to interface change of multi-input-fields: transformers get also
their input-field
web-server/root/surflets/test.scm:
Check the image-button feature correctly.
+ Split input-fields into two structures:
+ surflets/my-input-fields allows you to create your own input-fields.
(complete with structure surflets/input-field-value)
+ surflets/surflet-input-fields are the proposals for input-fields
from SUrflets. They support annotated input-fields where
appropriate (select, radio, checkbox, hidden) and changing of attributes,
e.g. default values. See test.scm for examples.
The interface of the structure SURFLETS has only changed slightly
concerning the input fields
(make-higher-input-field --> make-multi-input-field should be the
main change)
+ Adapt examples to new input-field interface
+ Note new structures in documentation.
Callbacks may now be annotated with arbitrary arguments with which the
function will be called. See surflets/test.scm for a (non-didactic) example.
* The extended callbacks justify an extra structure for callbacks:
surflets/callbacks
- make-callback was moved from surflets/utilities to surflets/callbacks
limited to strings).
For this purpose, the ADDRESS object uses an internal storage that is freed
as soon the ADDRESS object is freed.
admin-surflets.scm shows an example.
Basic User, Advanced User, Administrative User
+ see file SURFLETS-STRUCTURES.TXT for details
+ Adapt example surflets to new structures. Only surflets that use extended
features should need adaptations.
- Removing surflets.scm
+ The surflets package remains and collects the most usual used packages
It does not export any more the outdaters, the access to IDs
(like session-id), callbacks, form-query-list.
(and maybe some other stuff I've forgot to mention here, see list
below).
The new packages are (not included in surflets are marked (*)):
+ surflets/addresses: MAKE-ADDRESS, MAKE-ANNOTATED-ADDRESS
+ surflets/bindings: GET-BINDINGS, EXTRACT-BINDINGS and stuff
+ surflets/ids (*): MY-SESSION-ID, .., INSTANCE-SESSION-ID
+ surflets/input-fields: MAKE-INPUT-FIELD, MAKE-NUMBER-INPUT-FIELD...
+ surflets/outdaters(*): MAKE-OUTDATER, OUTDATER?...
+ surflets/returned-via: RETURNED-VIA, CASE-RETURNED-VIA
+ surflets/send-html: SEND-HTML/SUSPEND...
+ surflets/surflet-sxml: URL-RULE,..., SURLFET-SXML-RULES, ...
+ surflets/sxml: SXML->STRING, DEFAULT-RULE,...
+ surflets/typed-optionals(*): TYPED-OPTIONALS, OPTIONALS
+ surflets/utilities(*): MAKE-CALLBACK, FORM-QUERY-LIST,
GENERATE-UNIQUE-NAME...
default-rules (default, text, attribute, plain-html and url)
surflet-form-rules (input-field and surflet-form)
+ according to mainzelm: lowercase URL tag to url in surflet-xml