diff -r 000000000000 -r 6474c204b198 dom/webidl/Contacts.webidl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dom/webidl/Contacts.webidl Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,130 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +dictionary ContactAddress { + sequence? type; + DOMString? streetAddress; + DOMString? locality; + DOMString? region; + DOMString? postalCode; + DOMString? countryName; + boolean? pref; +}; + +dictionary ContactField { + sequence? type; + DOMString? value; + boolean? pref; +}; + +dictionary ContactTelField : ContactField { + DOMString? carrier; +}; + +dictionary ContactProperties { + Date? bday; + Date? anniversary; + + DOMString? sex; + DOMString? genderIdentity; + + sequence? photo; + + sequence? adr; + + sequence? email; + sequence? url; + sequence? impp; + + sequence? tel; + + sequence? name; + sequence? honorificPrefix; + sequence? givenName; + sequence? phoneticGivenName; + sequence? additionalName; + sequence? familyName; + sequence? phoneticFamilyName; + sequence? honorificSuffix; + sequence? nickname; + sequence? category; + sequence? org; + sequence? jobTitle; + sequence? note; + sequence? key; +}; + +[Constructor(optional ContactProperties properties), + JSImplementation="@mozilla.org/contact;1"] +interface mozContact { + attribute DOMString id; + readonly attribute Date? published; + readonly attribute Date? updated; + + attribute Date? bday; + attribute Date? anniversary; + + attribute DOMString? sex; + attribute DOMString? genderIdentity; + + [Cached, Pure] attribute sequence? photo; + + [Cached, Pure] attribute sequence? adr; + + [Cached, Pure] attribute sequence? email; + [Cached, Pure] attribute sequence? url; + [Cached, Pure] attribute sequence? impp; + + [Cached, Pure] attribute sequence? tel; + + [Cached, Pure] attribute sequence? name; + [Cached, Pure] attribute sequence? honorificPrefix; + [Cached, Pure] attribute sequence? givenName; + [Cached, Pure] attribute sequence? phoneticGivenName; + [Cached, Pure] attribute sequence? additionalName; + [Cached, Pure] attribute sequence? familyName; + [Cached, Pure] attribute sequence? phoneticFamilyName; + [Cached, Pure] attribute sequence? honorificSuffix; + [Cached, Pure] attribute sequence? nickname; + [Cached, Pure] attribute sequence? category; + [Cached, Pure] attribute sequence? org; + [Cached, Pure] attribute sequence? jobTitle; + [Cached, Pure] attribute sequence? note; + [Cached, Pure] attribute sequence? key; + + void init(optional ContactProperties properties); + + [ChromeOnly] + void setMetadata(DOMString id, Date? published, Date? updated); + + jsonifier; +}; + +dictionary ContactFindSortOptions { + DOMString sortBy; // "givenName" or "familyName" + DOMString sortOrder = "ascending"; // e.g. "descending" +}; + +dictionary ContactFindOptions : ContactFindSortOptions { + DOMString filterValue; // e.g. "Tom" + DOMString filterOp; // e.g. "startsWith" + any filterBy; // e.g. ["givenName", "nickname"] + unsigned long filterLimit = 0; +}; + +[NoInterfaceObject, NavigatorProperty="mozContacts", + JSImplementation="@mozilla.org/contactManager;1"] +interface ContactManager : EventTarget { + DOMRequest find(optional ContactFindOptions options); + DOMCursor getAll(optional ContactFindSortOptions options); + DOMRequest clear(); + DOMRequest save(mozContact contact); + DOMRequest remove((mozContact or DOMString) contactOrId); + DOMRequest getRevision(); + DOMRequest getCount(); + + attribute EventHandler oncontactchange; +};