gecko/dom/interfaces/contacts/nsIContactProperties.idl
Ben Kelly 132c8b76a2 Bug 874462 - Add "startsWith" filterOp. r=reuben
The "contains" filterOp in ContactsAPI currently implements a filter that
only matches the start of each value when filtering by fields other than
"tel". This behavior is desirable for some uses, but does not match the
"contains" keyword.

Therefore, add a "startsWith" filterOp in addition to the current "contains".
A warning is sent to console.warn() if "contains" is used for non-"tel"
operations. A separate bug will be written to fix "contains" to perform full
text search.
2013-06-03 13:30:39 -04:00

74 lines
2.9 KiB
Plaintext

/* 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/. */
#include "domstubs.idl"
[scriptable, uuid(9cbfa81c-bcab-4ca9-b0d2-f4318f295e33)]
interface nsIContactAddress : nsISupports
{
attribute DOMString type;
attribute boolean pref; // false = no pref, true = preferred (vCard3 TYPE:PREF; vCard4 PREF:1)
attribute DOMString streetAddress;
attribute DOMString locality;
attribute DOMString region;
attribute DOMString postalCode;
attribute DOMString countryName;
};
[scriptable, uuid(ad19a543-69e4-44f0-adfa-37c011556bc1)]
interface nsIContactField : nsISupports
{
attribute jsval type; // DOMString[], "home", "work", etc.
attribute DOMString value;
attribute boolean pref; // false = no pref, true = preferred (vCard3 TYPE:PREF; vCard4 PREF:1)
};
[scriptable, uuid(4d42c5a9-ea5d-4102-80c3-40cc986367ca)]
interface nsIContactTelField : nsIContactField
{
attribute DOMString carrier;
};
[scriptable, uuid(0a5b1fab-70da-46dd-b902-619904d920c2)]
interface nsIContactFindSortOptions : nsISupports
{
attribute DOMString sortBy; // "givenName" or "familyName"
attribute DOMString sortOrder; // e.g. "descending"
};
[scriptable, uuid(28ce07d0-45d9-4b7a-8843-521df4edd8bc)]
interface nsIContactFindOptions : nsIContactFindSortOptions
{
attribute DOMString filterValue; // e.g. "Tom"
attribute DOMString filterOp; // e.g. "startsWith"
attribute jsval filterBy; // DOMString[], e.g. ["givenName", "nickname"]
attribute unsigned long filterLimit;
};
[scriptable, uuid(6cb78b21-4218-414b-8a84-3b7bf0088b34)]
interface nsIContactProperties : nsISupports
{
attribute jsval name; // DOMString[]
attribute jsval honorificPrefix; // DOMString[]
attribute jsval givenName; // DOMString[]
attribute jsval additionalName; // DOMString[]
attribute jsval familyName; // DOMString[]
attribute jsval honorificSuffix; // DOMString[]
attribute jsval nickname; // DOMString[]
attribute jsval email; // ContactField[]
attribute jsval photo; // nsIDOMBlob[]
attribute jsval url; // ContactField[]
attribute jsval category; // DOMString[]
attribute jsval adr; // ContactAddress[]
attribute jsval tel; // ContactTelField[]
attribute jsval org; // DOMString[]
attribute jsval jobTitle; // DOMString[]
attribute jsval bday; // Date
attribute jsval note; // DOMString[]
attribute jsval impp; // ContactField[]
attribute jsval anniversary; // Date
attribute DOMString sex;
attribute DOMString genderIdentity;
};