- From: Richard Tibbett via cvs-syncmail <cvsmail@w3.org>
- Date: Mon, 07 Jun 2010 10:49:45 +0000
- To: public-dap-commits@w3.org
Update of /sources/public/2009/dap/contacts In directory hutz:/tmp/cvs-serv6488/contacts Modified Files: Overview.html contacts_picker.png Log Message: - Added 'User Interaction Guidelines' Annex Index: contacts_picker.png =================================================================== RCS file: /sources/public/2009/dap/contacts/contacts_picker.png,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 Binary files /tmp/cvsqMw8hY and /tmp/cvshoF2LG differ Index: Overview.html =================================================================== RCS file: /sources/public/2009/dap/contacts/Overview.html,v retrieving revision 1.55 retrieving revision 1.56 diff -u -d -r1.55 -r1.56 --- Overview.html 7 Jun 2010 10:15:04 -0000 1.55 +++ Overview.html 7 Jun 2010 10:49:43 -0000 1.56 @@ -91,7 +91,6 @@ extent to which they share their address book information and the ability to restrict which pieces of information related to which contact gets shared. </p> - <p> The API itself is agnostic of any underlying address book sources, data formats and storage. </p> @@ -1534,6 +1533,122 @@ </section> </section> </section> + <section + class="informative appendix"> + <h2> + User Interaction Guidelines + </h2> + <p> + This specification is primarily intended to provide the user with the ability to view and control the contact information that may + be shared, saved or removed from their unified address book. This annex provides some examples of a conformant user experience that + this specification enables. + </p> + <section> + <h3> + Sharing Contact Information + </h3> + <p> + A website requests access to a user's address book with the following code: + </p> +<pre + class='example sh_javascript_dom'> +function successContactFindCallback(contacts) { + // do something with resulting contact objects + for (var i in contacts) alert(contacts[i].name); + // ... +} + +function generalErrorCB(error) { + // do something with resulting errors + alert(error.code); + // ... +} + +// Perform an address book search. Obtain the 'name' and 'emails' properties +// and initially filter the list to Contact records containing 'Bob': +navigator.service.contacts.find(['name', 'emails'], + successContactFindCallback, + generalErrorCB, + {filter: 'Bob'} + ); +</pre> + <p> + As a result of executing this code, the <a>user agent</a> may provide a non-blocking <dfn>contact search notification</dfn> as + follows: + </p> + <p align="center"> + <img + src="contacts_notification.png" + alt="Contact Search Notification" /><br> + (<a + href="contacts_notification.png">View as PNG</a>) + </p> + <p> + If the user clicks 'Cancel', the <a + href="#contacterrorcb-interface"><code>ContactErrorCB</code></a> defined for the find() operation will be invoked with an error + code of <a + href="#widl-ContactError-PERMISSION_DENIED_ERROR"><code>ContactError::PERMISSION_DENIED_ERROR</code></a>. + </p> + <p> + If the user clicks 'Select', the <a>user agent</a> may provide a <dfn>contact picker</dfn>, utilising all of the + parameters provided in the find() operation as follows: + </p> + <p align="center"> + <img + src="contacts_picker.png" + alt="Contact Picker" /><br> + (<a + href="contacts_picker.png">View as PNG</a>) + </p> + <p> + In this dialog, the user is provided with a summary of the sharing that the application is requesting and the option to select + one or more contacts (as appropriate) from the user interface. + </p> + <p> + If the user clicks 'Cancel', the <a + href="#contacterrorcb-interface"><code>ContactErrorCB</code></a> associated to the current find() operation will be invoked with + an error code of <a + href="#widl-ContactError-PERMISSION_DENIED_ERROR"><code>ContactError::PERMISSION_DENIED_ERROR</code></a>. + </p> + <p> + If the user clicks 'Select', the <a + href="#contactfindsuccesscb-interface"><code>ContactFindSuccessCB</code></a> associated to the current find() operation will be + invoked with the contact information selected by the user provided as the only parameter. + </p> + <p> + Further to this initial sharing of Contact information, the <a + href="#security-and-privacy-considerations">Security and Privacy Considerations</a> section expects that the user should easily + be able to review and revoke permissions to web applications at a later date. + </p> + <p + class="note"> + Include permission review/revocation mockup? + </p> + </section> + <section> + <h3> + Contact Writebacks + </h3> + <section> + <h4> + Saving a Contact to the Address Book + </h4> + <p + class="note"> + Include Contact creation/modification writeback mockup. + </p> + </section> + <section> + <h4> + Removing a Contact from the Address Book + </h4> + <p + class="note"> + Include Contact deletion writeback mockup. + </p> + </section> + </section> + </section> </body> </html>
Received on Monday, 7 June 2010 10:49:50 UTC