part picker doku
authorSven Schöling <s.schoeling@linet-services.de>
Fri, 12 Jul 2013 13:13:04 +0000 (15:13 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Fri, 12 Jul 2013 13:13:04 +0000 (15:13 +0200)
SL/Presenter/Part.pm

index 3c1eecb..f32149d 100644 (file)
@@ -45,7 +45,7 @@ see L<SL::Presenter>
 All-in-one picker widget for parts. The name will be both id and name of the
 resulting hidden C<id> 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 C<PART PICKER SPECIFICATION>.
+section L</PART PICKER SPECIFICATION>.
 
 C<VALUE> can be an id or C<Rose::DB:Object> instance.
 
@@ -61,13 +61,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