dom/webidl/Contacts.webidl

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/dom/webidl/Contacts.webidl	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,130 @@
     1.4 +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     1.5 +/* This Source Code Form is subject to the terms of the Mozilla Public
     1.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this file,
     1.7 + * You can obtain one at http://mozilla.org/MPL/2.0/.
     1.8 + */
     1.9 +
    1.10 +dictionary ContactAddress {
    1.11 +  sequence<DOMString>? type;
    1.12 +  DOMString? streetAddress;
    1.13 +  DOMString? locality;
    1.14 +  DOMString? region;
    1.15 +  DOMString? postalCode;
    1.16 +  DOMString? countryName;
    1.17 +  boolean? pref;
    1.18 +};
    1.19 +
    1.20 +dictionary ContactField {
    1.21 +  sequence<DOMString>? type;
    1.22 +  DOMString?           value;
    1.23 +  boolean?             pref;
    1.24 +};
    1.25 +
    1.26 +dictionary ContactTelField : ContactField {
    1.27 +  DOMString? carrier;
    1.28 +};
    1.29 +
    1.30 +dictionary ContactProperties {
    1.31 +  Date?                          bday;
    1.32 +  Date?                          anniversary;
    1.33 +
    1.34 +  DOMString?                     sex;
    1.35 +  DOMString?                     genderIdentity;
    1.36 +
    1.37 +  sequence<Blob>?                photo;
    1.38 +
    1.39 +  sequence<ContactAddress>?  adr;
    1.40 +
    1.41 +  sequence<ContactField>?    email;
    1.42 +  sequence<ContactField>?    url;
    1.43 +  sequence<ContactField>?    impp;
    1.44 +
    1.45 +  sequence<ContactTelField>? tel;
    1.46 +
    1.47 +  sequence<DOMString>?           name;
    1.48 +  sequence<DOMString>?           honorificPrefix;
    1.49 +  sequence<DOMString>?           givenName;
    1.50 +  sequence<DOMString>?           phoneticGivenName;
    1.51 +  sequence<DOMString>?           additionalName;
    1.52 +  sequence<DOMString>?           familyName;
    1.53 +  sequence<DOMString>?           phoneticFamilyName;
    1.54 +  sequence<DOMString>?           honorificSuffix;
    1.55 +  sequence<DOMString>?           nickname;
    1.56 +  sequence<DOMString>?           category;
    1.57 +  sequence<DOMString>?           org;
    1.58 +  sequence<DOMString>?           jobTitle;
    1.59 +  sequence<DOMString>?           note;
    1.60 +  sequence<DOMString>?           key;
    1.61 +};
    1.62 +
    1.63 +[Constructor(optional ContactProperties properties),
    1.64 + JSImplementation="@mozilla.org/contact;1"]
    1.65 +interface mozContact {
    1.66 +                 attribute DOMString  id;
    1.67 +        readonly attribute Date?      published;
    1.68 +        readonly attribute Date?      updated;
    1.69 +
    1.70 +                 attribute Date?      bday;
    1.71 +                 attribute Date?      anniversary;
    1.72 +
    1.73 +                 attribute DOMString? sex;
    1.74 +                 attribute DOMString? genderIdentity;
    1.75 +
    1.76 +  [Cached, Pure] attribute sequence<Blob>?            photo;
    1.77 +
    1.78 +  [Cached, Pure] attribute sequence<ContactAddress>?  adr;
    1.79 +
    1.80 +  [Cached, Pure] attribute sequence<ContactField>?    email;
    1.81 +  [Cached, Pure] attribute sequence<ContactField>?    url;
    1.82 +  [Cached, Pure] attribute sequence<ContactField>?    impp;
    1.83 +
    1.84 +  [Cached, Pure] attribute sequence<ContactTelField>? tel;
    1.85 +
    1.86 +  [Cached, Pure] attribute sequence<DOMString>?       name;
    1.87 +  [Cached, Pure] attribute sequence<DOMString>?       honorificPrefix;
    1.88 +  [Cached, Pure] attribute sequence<DOMString>?       givenName;
    1.89 +  [Cached, Pure] attribute sequence<DOMString>?       phoneticGivenName;
    1.90 +  [Cached, Pure] attribute sequence<DOMString>?       additionalName;
    1.91 +  [Cached, Pure] attribute sequence<DOMString>?       familyName;
    1.92 +  [Cached, Pure] attribute sequence<DOMString>?       phoneticFamilyName;
    1.93 +  [Cached, Pure] attribute sequence<DOMString>?       honorificSuffix;
    1.94 +  [Cached, Pure] attribute sequence<DOMString>?       nickname;
    1.95 +  [Cached, Pure] attribute sequence<DOMString>?       category;
    1.96 +  [Cached, Pure] attribute sequence<DOMString>?       org;
    1.97 +  [Cached, Pure] attribute sequence<DOMString>?       jobTitle;
    1.98 +  [Cached, Pure] attribute sequence<DOMString>?       note;
    1.99 +  [Cached, Pure] attribute sequence<DOMString>?       key;
   1.100 +
   1.101 +  void init(optional ContactProperties properties);
   1.102 +
   1.103 +  [ChromeOnly]
   1.104 +  void setMetadata(DOMString id, Date? published, Date? updated);
   1.105 +
   1.106 +  jsonifier;
   1.107 +};
   1.108 +
   1.109 +dictionary ContactFindSortOptions {
   1.110 +  DOMString sortBy;                    // "givenName" or "familyName"
   1.111 +  DOMString sortOrder = "ascending";   // e.g. "descending"
   1.112 +};
   1.113 +
   1.114 +dictionary ContactFindOptions : ContactFindSortOptions {
   1.115 +  DOMString      filterValue;  // e.g. "Tom"
   1.116 +  DOMString      filterOp;     // e.g. "startsWith"
   1.117 +  any            filterBy;     // e.g. ["givenName", "nickname"]
   1.118 +  unsigned long  filterLimit = 0;
   1.119 +};
   1.120 +
   1.121 +[NoInterfaceObject, NavigatorProperty="mozContacts",
   1.122 + JSImplementation="@mozilla.org/contactManager;1"]
   1.123 +interface ContactManager : EventTarget {
   1.124 +  DOMRequest find(optional ContactFindOptions options);
   1.125 +  DOMCursor  getAll(optional ContactFindSortOptions options);
   1.126 +  DOMRequest clear();
   1.127 +  DOMRequest save(mozContact contact);
   1.128 +  DOMRequest remove((mozContact or DOMString) contactOrId);
   1.129 +  DOMRequest getRevision();
   1.130 +  DOMRequest getCount();
   1.131 +
   1.132 +  attribute  EventHandler oncontactchange;
   1.133 +};

mercurial