dom/webidl/Contacts.webidl

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
     4  * You can obtain one at http://mozilla.org/MPL/2.0/.
     5  */
     7 dictionary ContactAddress {
     8   sequence<DOMString>? type;
     9   DOMString? streetAddress;
    10   DOMString? locality;
    11   DOMString? region;
    12   DOMString? postalCode;
    13   DOMString? countryName;
    14   boolean? pref;
    15 };
    17 dictionary ContactField {
    18   sequence<DOMString>? type;
    19   DOMString?           value;
    20   boolean?             pref;
    21 };
    23 dictionary ContactTelField : ContactField {
    24   DOMString? carrier;
    25 };
    27 dictionary ContactProperties {
    28   Date?                          bday;
    29   Date?                          anniversary;
    31   DOMString?                     sex;
    32   DOMString?                     genderIdentity;
    34   sequence<Blob>?                photo;
    36   sequence<ContactAddress>?  adr;
    38   sequence<ContactField>?    email;
    39   sequence<ContactField>?    url;
    40   sequence<ContactField>?    impp;
    42   sequence<ContactTelField>? tel;
    44   sequence<DOMString>?           name;
    45   sequence<DOMString>?           honorificPrefix;
    46   sequence<DOMString>?           givenName;
    47   sequence<DOMString>?           phoneticGivenName;
    48   sequence<DOMString>?           additionalName;
    49   sequence<DOMString>?           familyName;
    50   sequence<DOMString>?           phoneticFamilyName;
    51   sequence<DOMString>?           honorificSuffix;
    52   sequence<DOMString>?           nickname;
    53   sequence<DOMString>?           category;
    54   sequence<DOMString>?           org;
    55   sequence<DOMString>?           jobTitle;
    56   sequence<DOMString>?           note;
    57   sequence<DOMString>?           key;
    58 };
    60 [Constructor(optional ContactProperties properties),
    61  JSImplementation="@mozilla.org/contact;1"]
    62 interface mozContact {
    63                  attribute DOMString  id;
    64         readonly attribute Date?      published;
    65         readonly attribute Date?      updated;
    67                  attribute Date?      bday;
    68                  attribute Date?      anniversary;
    70                  attribute DOMString? sex;
    71                  attribute DOMString? genderIdentity;
    73   [Cached, Pure] attribute sequence<Blob>?            photo;
    75   [Cached, Pure] attribute sequence<ContactAddress>?  adr;
    77   [Cached, Pure] attribute sequence<ContactField>?    email;
    78   [Cached, Pure] attribute sequence<ContactField>?    url;
    79   [Cached, Pure] attribute sequence<ContactField>?    impp;
    81   [Cached, Pure] attribute sequence<ContactTelField>? tel;
    83   [Cached, Pure] attribute sequence<DOMString>?       name;
    84   [Cached, Pure] attribute sequence<DOMString>?       honorificPrefix;
    85   [Cached, Pure] attribute sequence<DOMString>?       givenName;
    86   [Cached, Pure] attribute sequence<DOMString>?       phoneticGivenName;
    87   [Cached, Pure] attribute sequence<DOMString>?       additionalName;
    88   [Cached, Pure] attribute sequence<DOMString>?       familyName;
    89   [Cached, Pure] attribute sequence<DOMString>?       phoneticFamilyName;
    90   [Cached, Pure] attribute sequence<DOMString>?       honorificSuffix;
    91   [Cached, Pure] attribute sequence<DOMString>?       nickname;
    92   [Cached, Pure] attribute sequence<DOMString>?       category;
    93   [Cached, Pure] attribute sequence<DOMString>?       org;
    94   [Cached, Pure] attribute sequence<DOMString>?       jobTitle;
    95   [Cached, Pure] attribute sequence<DOMString>?       note;
    96   [Cached, Pure] attribute sequence<DOMString>?       key;
    98   void init(optional ContactProperties properties);
   100   [ChromeOnly]
   101   void setMetadata(DOMString id, Date? published, Date? updated);
   103   jsonifier;
   104 };
   106 dictionary ContactFindSortOptions {
   107   DOMString sortBy;                    // "givenName" or "familyName"
   108   DOMString sortOrder = "ascending";   // e.g. "descending"
   109 };
   111 dictionary ContactFindOptions : ContactFindSortOptions {
   112   DOMString      filterValue;  // e.g. "Tom"
   113   DOMString      filterOp;     // e.g. "startsWith"
   114   any            filterBy;     // e.g. ["givenName", "nickname"]
   115   unsigned long  filterLimit = 0;
   116 };
   118 [NoInterfaceObject, NavigatorProperty="mozContacts",
   119  JSImplementation="@mozilla.org/contactManager;1"]
   120 interface ContactManager : EventTarget {
   121   DOMRequest find(optional ContactFindOptions options);
   122   DOMCursor  getAll(optional ContactFindSortOptions options);
   123   DOMRequest clear();
   124   DOMRequest save(mozContact contact);
   125   DOMRequest remove((mozContact or DOMString) contactOrId);
   126   DOMRequest getRevision();
   127   DOMRequest getCount();
   129   attribute  EventHandler oncontactchange;
   130 };

mercurial