X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/35d63a9fdee45777535d7ec815bfbc76c5c1bdc9..c312836ce432677d4f7876f1e3a2b6d99f433cd6:/SL/Presenter/Part.pm
diff --git a/SL/Presenter/Part.pm b/SL/Presenter/Part.pm
index 1a33a463b..599d09356 100644
--- a/SL/Presenter/Part.pm
+++ b/SL/Presenter/Part.pm
@@ -55,6 +55,11 @@ C.
C<$value> can be a parts id or a C instance.
+All-in-one picker widget for parts. The name will be both id and name of the
+resulting hidden C input field. An additional dummy input will be generated
+which is used to find parts. For a detailed description of it's behaviour, see
+section L.
+
If C<%params> contains C only parts of this type will be used
for autocompletion. You may comma separate multiple types as in
C.
@@ -75,13 +80,91 @@ presenter can not do this from the template.
=back
+=head1 PART PICKER SPECIFICATION
+
+The following list of design goals were applied:
+
+=over 4
+
+=item *
+
+Parts should not be perceived by the user as distinct inputs of partnumber and
+description but as a single object
+
+=item *
+
+Easy to use without documentation for novice users
+
+=item *
+
+Fast to use with keyboard for experienced users
+
+=item *
+
+Possible to use without any keyboard interaction for mouse (or touchscreen)
+users
+
+=item *
+
+Must not leave the current page in event of ambiguity (cf. current select_item
+mechanism)
+
+=item *
+
+Should be useable with hand scanners or similar alternative keyboard devices
+
+=item *
+
+Should not require a feedback/check loop in the common case
+
+=item *
+
+Should not be constraint to exact matches
+
+=back
+
+The implementation consists of the following parts which will be referenced later:
+
+=over 4
+
+=item 1
+
+A hidden input (id input), used to hold the id of the selected part. The only
+input that gets submitted
+
+=item 2
+
+An input (dummy input) containing a description of the currently selected part,
+also used by the user to search for parts
+
+=item 3
+
+A jquery.autocomplete mechanism attached to the dummy field
+
+=item 4
+
+A popup layer for both feedback and input of additional data in case of
+ambiguity.
+
+=item 5
+
+An internal status of the part picker, indicating wether id input and dummy
+input are consistent. After leaving the dummy input the part picker must
+place itself in a consistent status.
+
+=item 6
+
+A clickable icon (popup trigger) attached to the dummy input, which triggers the popup layer.
+
+=back
+
=head1 BUGS
=over 4
=item *
-Picker icons aren't displayed with css menu, because the spritemap is not loaded.
+Popup triggers are not displayed with css menu, because the spritemap is not loaded.
=back