зеркало из https://github.com/mozilla/pjs.git
Bug #357321 --> address book changes for supporting a per card attribute
for allowing remote content in HTML mail. r=mark banner
This commit is contained in:
Родитель
aecf439a54
Коммит
8a3dd57758
|
@ -38,7 +38,7 @@
|
|||
|
||||
const kNonVcardFields =
|
||||
["nickNameContainer", "secondaryEmailContainer", "screenNameContainer",
|
||||
"homeAddressGroup", "customFields"];
|
||||
"homeAddressGroup", "customFields", "allowRemoteContent"];
|
||||
|
||||
const kPhoneticFields =
|
||||
["PhoneticLastName", "PhoneticLabel1", "PhoneticSpacer1",
|
||||
|
@ -140,6 +140,10 @@ function OnLoadNewCard()
|
|||
if ("aimScreenName" in window.arguments[0])
|
||||
gEditCard.card.aimScreenName = window.arguments[0].aimScreenName;
|
||||
|
||||
if ("allowRemoteContent" in window.arguments[0])
|
||||
document.getElementById('allowRemoteContent').checked =
|
||||
window.arguments[0].allowRemoteContent == 'true';
|
||||
|
||||
if ("okCallback" in window.arguments[0])
|
||||
gOkCallback = window.arguments[0].okCallback;
|
||||
|
||||
|
@ -234,11 +238,12 @@ function EditCardOKButton()
|
|||
|
||||
gEditCard.card.editCardToDatabase(gEditCard.abURI);
|
||||
|
||||
for (i=0; i<foundDirectoriesCount; i++) {
|
||||
for (i=0; i < foundDirectoriesCount; i++) {
|
||||
// Update the addressLists item for this card
|
||||
foundDirectories[i].directory.addressLists.
|
||||
SetElementAt(foundDirectories[i].index, gEditCard.card);
|
||||
}
|
||||
|
||||
NotifySaveListeners();
|
||||
|
||||
// callback to allow caller to update
|
||||
|
@ -297,11 +302,15 @@ function OnLoadEditCard()
|
|||
document.getElementById(kPhoneticFields[3]).readonly = true;
|
||||
|
||||
// Also disable the mail format popup.
|
||||
document.getElementById("PreferMailFormatPopup").disabled = true;
|
||||
document.getElementById("PreferMailFormatPopup").disabled = true;
|
||||
|
||||
document.documentElement.buttons = "accept";
|
||||
document.documentElement.removeAttribute("ondialogaccept");
|
||||
}
|
||||
|
||||
// hide remote content in HTML field for remote directories
|
||||
if (directory.isRemote)
|
||||
document.getElementById('allowRemoteContent').hidden = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -419,6 +428,10 @@ function GetCardValues(cardproperty, doc)
|
|||
var popup = document.getElementById("PreferMailFormatPopup");
|
||||
if (popup)
|
||||
popup.value = cardproperty.preferMailFormat;
|
||||
|
||||
var allowRemoteContentEl = document.getElementById("allowRemoteContent");
|
||||
if (allowRemoteContentEl)
|
||||
allowRemoteContentEl.checked = cardproperty.allowRemoteContent;
|
||||
|
||||
// get phonetic fields if exist
|
||||
try {
|
||||
|
@ -456,7 +469,11 @@ function CheckAndSetCardValues(cardproperty, doc, check)
|
|||
var popup = document.getElementById("PreferMailFormatPopup");
|
||||
if (popup)
|
||||
cardproperty.preferMailFormat = popup.value;
|
||||
|
||||
|
||||
var allowRemoteContentEl = document.getElementById("allowRemoteContent");
|
||||
if (allowRemoteContentEl)
|
||||
cardproperty.allowRemoteContent = allowRemoteContentEl.checked;
|
||||
|
||||
// set phonetic fields if exist
|
||||
try {
|
||||
cardproperty.phoneticFirstName = doc.getElementById("PhoneticFirstName").value;
|
||||
|
|
|
@ -1,61 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998-1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
<?xml-stylesheet href="chrome://messenger/skin/addressbook/cardDialog.css" type="text/css"?>
|
||||
|
||||
<!DOCTYPE dialog SYSTEM "chrome://messenger/locale/addressbook/abNewCardDialog.dtd">
|
||||
|
||||
<?xul-overlay href="chrome://messenger/content/addressbook/abCardOverlay.xul"?>
|
||||
|
||||
<dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
id="abcardDialog"
|
||||
onload="OnLoadEditCard();"
|
||||
ondialogaccept="return EditCardOKButton();">
|
||||
|
||||
<stringbundleset id="stringbundleset">
|
||||
<stringbundle id="bundle_addressBook" src="chrome://messenger/locale/addressbook/addressBook.properties"/>
|
||||
</stringbundleset>
|
||||
|
||||
<!-- move needed functions into a single js file -->
|
||||
<script type="application/x-javascript" src="chrome://messenger/content/addressbook/abCommon.js"/>
|
||||
<script type="application/x-javascript" src="chrome://messenger/content/addressbook/abCardOverlay.js"/>
|
||||
|
||||
<vbox id="editcard"/>
|
||||
</dialog>
|
||||
|
|
@ -1,87 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is Mozilla Communicator client code, released
|
||||
# March 31, 1998.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998-1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
<?xml-stylesheet href="chrome://messenger/skin/addressbook/cardDialog.css" type="text/css"?>
|
||||
|
||||
<?xul-overlay href="chrome://messenger/content/addressbook/abCardOverlay.xul"?>
|
||||
|
||||
<!DOCTYPE dialog SYSTEM "chrome://messenger/locale/addressbook/abNewCardDialog.dtd">
|
||||
|
||||
<dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
xmlns:nc="http://home.netscape.com/NC-rdf#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
id="abcardDialog"
|
||||
onload="OnLoadNewCard();"
|
||||
ondialogaccept="return NewCardOKButton();">
|
||||
|
||||
<stringbundleset id="stringbundleset">
|
||||
<stringbundle id="bundle_addressBook" src="chrome://messenger/locale/addressbook/addressBook.properties"/>
|
||||
</stringbundleset>
|
||||
|
||||
<!-- move needed functions into a single js file -->
|
||||
<script type="application/x-javascript" src="chrome://messenger/content/addressbook/abCommon.js"/>
|
||||
<script type="application/x-javascript" src="chrome://messenger/content/addressbook/abCardOverlay.js"/>
|
||||
|
||||
<hbox align="center">
|
||||
|
||||
<label id="abPopupLabel" control="abPopup" value="&chooseAddressBook.label;" accesskey="&chooseAddressBook.accesskey;"/>
|
||||
<menulist id="abPopup">
|
||||
<menupopup id="abPopup-menupopup"
|
||||
ref="moz-abdirectory://"
|
||||
datasources="rdf:addressdirectory"
|
||||
sortActive="true"
|
||||
sortDirection="ascending"
|
||||
sortResource="http://home.netscape.com/NC-rdf#DirTreeNameSort">
|
||||
<template>
|
||||
<rule nc:IsWriteable="false"/>
|
||||
<rule nc:IsMailList="false">
|
||||
<menuitem uri="..."
|
||||
label="rdf:http://home.netscape.com/NC-rdf#DirName"
|
||||
value="rdf:http://home.netscape.com/NC-rdf#DirUri"/>
|
||||
</rule>
|
||||
</template>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
|
||||
</hbox>
|
||||
|
||||
<spacer style="height:1em"/>
|
||||
|
||||
<vbox id="editcard"/>
|
||||
</dialog>
|
|
@ -1,89 +1,3 @@
|
|||
<!-- Labels -->
|
||||
<!ENTITY chooseAddressBook.label "Add to: ">
|
||||
<!ENTITY chooseAddressBook.accesskey "A">
|
||||
|
||||
<!-- Contact Tab -->
|
||||
<!ENTITY Contact.tab "Contact">
|
||||
<!ENTITY Name.box "Name">
|
||||
<!-- LOCALIZATION NOTE:
|
||||
NameField1, NameField2, PhoneticField1, PhoneticField2
|
||||
those fields are either LN or FN depends on the target country.
|
||||
"FirstName" and "LastName" can be swapped for id to change the order
|
||||
but they should not be translated (same applied to phonetic id).
|
||||
Make sure the translation of label corresponds to the order of id.
|
||||
-->
|
||||
<!-- LOCALIZATION NOTE (NameField1.id) : DONT_TRANSLATE -->
|
||||
<!ENTITY NameField1.id "FirstName">
|
||||
<!-- LOCALIZATION NOTE (NameField2.id) : DONT_TRANSLATE -->
|
||||
<!ENTITY NameField2.id "LastName">
|
||||
<!-- LOCALIZATION NOTE (PhoneticField1.id) : DONT_TRANSLATE -->
|
||||
<!ENTITY PhoneticField1.id "PhoneticFirstName">
|
||||
<!-- LOCALIZATION NOTE (PhoneticField2.id) : DONT_TRANSLATE -->
|
||||
<!ENTITY PhoneticField2.id "PhoneticLastName">
|
||||
<!ENTITY NameField1.label "First:">
|
||||
<!ENTITY NameField1.accesskey "F">
|
||||
<!ENTITY NameField2.label "Last:">
|
||||
<!ENTITY NameField2.accesskey "L">
|
||||
<!ENTITY PhoneticField1.label "Phonetic:">
|
||||
<!ENTITY PhoneticField2.label "Phonetic:">
|
||||
<!ENTITY DisplayName.label "Display:">
|
||||
<!ENTITY DisplayName.accesskey "D">
|
||||
<!ENTITY NickName.label "Nickname:">
|
||||
<!ENTITY NickName.accesskey "N">
|
||||
<!ENTITY Internet.box "Internet">
|
||||
<!ENTITY PrimaryEmail.label "Email:">
|
||||
<!ENTITY PrimaryEmail.accesskey "E">
|
||||
<!ENTITY SecondEmail.label "Additional Email:">
|
||||
<!ENTITY SecondEmail.accesskey "o">
|
||||
<!ENTITY PreferMailFormat.label "Prefers to receive messages formatted as:">
|
||||
<!ENTITY PreferMailFormat.accesskey "r">
|
||||
<!ENTITY PlainText.label "Plain Text">
|
||||
<!ENTITY HTML.label "HTML">
|
||||
<!ENTITY Unknown.label "Unknown">
|
||||
<!ENTITY ScreenName.label "Screen Name:">
|
||||
<!ENTITY ScreenName.accesskey "S">
|
||||
<!ENTITY Phones.box "Phones">
|
||||
<!ENTITY WorkPhone.label "Work:">
|
||||
<!ENTITY WorkPhone.accesskey "W">
|
||||
<!ENTITY HomePhone.label "Home:">
|
||||
<!ENTITY HomePhone.accesskey "H">
|
||||
<!ENTITY FaxNumber.label "Fax:">
|
||||
<!ENTITY FaxNumber.accesskey "x">
|
||||
<!ENTITY PagerNumber.label "Pager:">
|
||||
<!ENTITY PagerNumber.accesskey "P">
|
||||
<!ENTITY CellularNumber.label "Mobile:">
|
||||
<!ENTITY CellularNumber.accesskey "M">
|
||||
|
||||
<!-- Address Tab -->
|
||||
<!ENTITY Address.tab "Address">
|
||||
<!ENTITY Home.box "Home">
|
||||
<!ENTITY HomeAddress.label "Address:">
|
||||
<!ENTITY HomeAddress2.label "">
|
||||
<!ENTITY HomeCity.label "City:">
|
||||
<!ENTITY HomeState.label "State/Province:">
|
||||
<!ENTITY HomeZipCode.label "ZIP/Postal Code:">
|
||||
<!ENTITY HomeCountry.label "Country:">
|
||||
<!ENTITY HomeWebPage.label "Web Page:">
|
||||
<!ENTITY Work.box "Work">
|
||||
<!ENTITY JobTitle.label "Title:">
|
||||
<!ENTITY Department.label "Department:">
|
||||
<!ENTITY Company.label "Organization:">
|
||||
<!ENTITY WorkAddress.label "Address:">
|
||||
<!ENTITY WorkAddress2.label "">
|
||||
<!ENTITY WorkCity.label "City:">
|
||||
<!ENTITY WorkState.label "State/Province:">
|
||||
<!ENTITY WorkZipCode.label "ZIP/Postal Code:">
|
||||
<!ENTITY WorkCountry.label "Country:">
|
||||
<!ENTITY WorkWebPage.label "Web Page:">
|
||||
|
||||
<!-- Other Tab -->
|
||||
<!ENTITY Other.tab "Other">
|
||||
<!ENTITY Custom1.label "Custom 1:">
|
||||
<!ENTITY Custom1.accesskey "1">
|
||||
<!ENTITY Custom2.label "Custom 2:">
|
||||
<!ENTITY Custom2.accesskey "2">
|
||||
<!ENTITY Custom3.label "Custom 3:">
|
||||
<!ENTITY Custom3.accesskey "3">
|
||||
<!ENTITY Custom4.label "Custom 4:">
|
||||
<!ENTITY Custom4.accesskey "4">
|
||||
<!ENTITY Notes.box "Notes">
|
||||
|
|
|
@ -44,7 +44,7 @@ interface nsIAbPreferMailFormat {
|
|||
const unsigned long html = 2;
|
||||
};
|
||||
|
||||
[scriptable, uuid(f1c34c6e-a211-4aa6-bdb6-e200c58db1d0)]
|
||||
[scriptable, uuid(6B46BDD5-10DB-44f4-99C9-C7FFE0D3D954)]
|
||||
interface nsIAbCard : nsISupports {
|
||||
// Card properties
|
||||
attribute wstring firstName;
|
||||
|
@ -114,6 +114,10 @@ interface nsIAbCard : nsISupports {
|
|||
* mail list
|
||||
*/
|
||||
attribute string mailListURI;
|
||||
/**
|
||||
* allowRemoteContent to be displayed in HTML mail received from this contact.
|
||||
*/
|
||||
attribute boolean allowRemoteContent;
|
||||
|
||||
wstring getCardValue(in string name);
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
#define kMDBDirectoryRootLen 21
|
||||
%}
|
||||
|
||||
[scriptable, uuid(C6BCF232-1DD1-11B2-A108-B41BFECED134)]
|
||||
[scriptable, uuid(08669294-66C6-414e-AE2D-69348A62F362)]
|
||||
interface nsIAbMDBDirectory : nsISupports {
|
||||
|
||||
// Creates an RDF directory component from the
|
||||
|
@ -90,6 +90,12 @@ interface nsIAbMDBDirectory : nsISupports {
|
|||
|
||||
[noscript] void clearDatabase();
|
||||
|
||||
// Check if the directory has a card for the specified email address
|
||||
// Check if the directory has a card for the specified email address
|
||||
boolean hasCardForEmailAddress(in string emailAddress);
|
||||
|
||||
/**
|
||||
* returns the address card for the specified email address. Returns NULL if
|
||||
* we were unable to find a card for the specified e-mail address
|
||||
*/
|
||||
nsIAbCard cardForEmailAddress(in string emailAddress);
|
||||
};
|
||||
|
|
|
@ -67,6 +67,7 @@ interface nsIMdbRow;
|
|||
#define k2ndEmailColumn "SecondEmail"
|
||||
#define kPreferMailFormatColumn "PreferMailFormat"
|
||||
#define kPopularityIndexColumn "PopularityIndex"
|
||||
#define kAllowRemoteContentColumn "AllowRemoteContent"
|
||||
#define kWorkPhoneColumn "WorkPhone"
|
||||
#define kHomePhoneColumn "HomePhone"
|
||||
#define kFaxColumn "FaxNumber"
|
||||
|
@ -136,7 +137,7 @@ interface nsAddrDBCommitType
|
|||
const long kCompressCommit = 3;
|
||||
};
|
||||
|
||||
[scriptable, uuid(b979cae8-8ad4-46b7-8ccc-0a1193df15fd)]
|
||||
[scriptable, uuid(E59ABE11-1E97-46ec-A1C4-500971BBC4B4)]
|
||||
interface nsIAddrDatabase : nsIAddrDBAnnouncer {
|
||||
|
||||
/**
|
||||
|
@ -266,6 +267,7 @@ interface nsIAddrDatabase : nsIAddrDBAnnouncer {
|
|||
[noscript] void addNotes(in nsIMdbRow row, in string value);
|
||||
[noscript] void addPreferMailFormat(in nsIMdbRow row, in unsigned long value);
|
||||
[noscript] void addPopularityIndex(in nsIMdbRow row, in unsigned long value);
|
||||
[noscript] void addAllowRemoteContent(in nsIMdbRow row, in boolean value);
|
||||
|
||||
[noscript] void addListName(in nsIMdbRow row, in string value);
|
||||
[noscript] void addListNickName(in nsIMdbRow row, in string value);
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
|
||||
const kNonVcardFields =
|
||||
["nickNameContainer", "secondaryEmailContainer", "screenNameContainer",
|
||||
"homeAddressGroup", "customFields"];
|
||||
"homeAddressGroup", "customFields", "allowRemoteContent"];
|
||||
|
||||
const kPhoneticFields =
|
||||
["PhoneticLastName", "PhoneticLabel1", "PhoneticSpacer1",
|
||||
|
@ -123,7 +123,7 @@ function OnLoadNewCard()
|
|||
else if (directory.operations & directory.opWrite)
|
||||
gEditCard.selectedAB = window.arguments[0].selectedAB;
|
||||
}
|
||||
|
||||
|
||||
// we may have been given properties to pre-initialize the window with....
|
||||
// we'll fill these in here...
|
||||
if ("primaryEmail" in window.arguments[0])
|
||||
|
@ -138,6 +138,10 @@ function OnLoadNewCard()
|
|||
}
|
||||
if ("aimScreenName" in window.arguments[0])
|
||||
gEditCard.card.aimScreenName = window.arguments[0].aimScreenName;
|
||||
|
||||
if ("allowRemoteContent" in window.arguments[0])
|
||||
document.getElementById('allowRemoteContent').checked =
|
||||
window.arguments[0].allowRemoteContent == 'true';
|
||||
|
||||
if ("okCallback" in window.arguments[0])
|
||||
gOkCallback = window.arguments[0].okCallback;
|
||||
|
@ -165,7 +169,7 @@ function OnLoadNewCard()
|
|||
if (gHideABPicker && abPopup) {
|
||||
abPopup.hidden = true;
|
||||
document.getElementById("abPopupLabel").hidden = true;
|
||||
}
|
||||
}
|
||||
|
||||
SetCardDialogTitle(gEditCard.card.displayName);
|
||||
|
||||
|
@ -301,6 +305,10 @@ function OnLoadEditCard()
|
|||
document.documentElement.buttons = "accept";
|
||||
document.documentElement.removeAttribute("ondialogaccept");
|
||||
}
|
||||
|
||||
// hide remote content in HTML field for remote directories
|
||||
if (directory.isRemote)
|
||||
document.getElementById('allowRemoteContent').hidden = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -418,6 +426,10 @@ function GetCardValues(cardproperty, doc)
|
|||
var popup = document.getElementById("PreferMailFormatPopup");
|
||||
if (popup)
|
||||
popup.value = cardproperty.preferMailFormat;
|
||||
|
||||
var allowRemoteContentEl = document.getElementById("allowRemoteContent");
|
||||
if (allowRemoteContentEl)
|
||||
allowRemoteContentEl.checked = cardproperty.allowRemoteContent;
|
||||
|
||||
// get phonetic fields if exist
|
||||
try {
|
||||
|
@ -455,6 +467,10 @@ function CheckAndSetCardValues(cardproperty, doc, check)
|
|||
var popup = document.getElementById("PreferMailFormatPopup");
|
||||
if (popup)
|
||||
cardproperty.preferMailFormat = popup.value;
|
||||
|
||||
var allowRemoteContentEl = document.getElementById("allowRemoteContent");
|
||||
if (allowRemoteContentEl)
|
||||
cardproperty.allowRemoteContent = allowRemoteContentEl.checked;
|
||||
|
||||
// set phonetic fields if exist
|
||||
try {
|
||||
|
|
|
@ -139,6 +139,13 @@
|
|||
<textbox id="SecondEmail" flex="1" class="uri-element"/>
|
||||
</hbox>
|
||||
</hbox>
|
||||
<hbox id="screenNameContainer">
|
||||
<spacer flex="1"/>
|
||||
<label control="ScreenName" value="&ScreenName.label;" accesskey="&ScreenName.accesskey;" class="CardEditLabel"/>
|
||||
<hbox class="CardEditWidth">
|
||||
<textbox id="ScreenName" flex="1"/>
|
||||
</hbox>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<vbox valign="middle">
|
||||
<label control="PreferMailFormatPopup" value="&PreferMailFormat.label;" accesskey="&PreferMailFormat.accesskey;"/>
|
||||
|
@ -152,13 +159,7 @@
|
|||
</menupopup>
|
||||
</menulist>
|
||||
</hbox>
|
||||
<hbox id="screenNameContainer">
|
||||
<spacer flex="1"/>
|
||||
<label control="ScreenName" value="&ScreenName.label;" accesskey="&ScreenName.accesskey;" class="CardEditLabel"/>
|
||||
<hbox class="CardEditWidth">
|
||||
<textbox id="ScreenName" flex="1"/>
|
||||
</hbox>
|
||||
</hbox>
|
||||
<checkbox id="allowRemoteContent" label="&allowRemoteContent.label;" accesskey="&allowRemoteContent.accesskey;"/>
|
||||
</vbox>
|
||||
</groupbox>
|
||||
|
||||
|
|
|
@ -123,11 +123,12 @@ static const AppendItem CUSTOM_ATTRS_ARRAY[] = {
|
|||
|
||||
nsAbCardProperty::nsAbCardProperty(void)
|
||||
{
|
||||
m_LastModDate = 0;
|
||||
m_LastModDate = 0;
|
||||
|
||||
m_PreferMailFormat = nsIAbPreferMailFormat::unknown;
|
||||
m_PopularityIndex = 0;
|
||||
m_IsMailList = PR_FALSE;
|
||||
m_PreferMailFormat = nsIAbPreferMailFormat::unknown;
|
||||
m_PopularityIndex = 0;
|
||||
m_AllowRemoteContent = PR_FALSE;
|
||||
m_IsMailList = PR_FALSE;
|
||||
}
|
||||
|
||||
nsAbCardProperty::~nsAbCardProperty(void)
|
||||
|
@ -164,6 +165,18 @@ NS_IMETHODIMP nsAbCardProperty::SetPopularityIndex(PRUint32 aPopularityIndex)
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsAbCardProperty::GetAllowRemoteContent(PRBool *aAllowRemoteContent)
|
||||
{
|
||||
*aAllowRemoteContent = m_AllowRemoteContent;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsAbCardProperty::SetAllowRemoteContent(PRBool aAllowRemoteContent)
|
||||
{
|
||||
m_AllowRemoteContent = aAllowRemoteContent;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsAbCardProperty::GetPreferMailFormat(PRUint32 *aFormat)
|
||||
{
|
||||
*aFormat = m_PreferMailFormat;
|
||||
|
@ -222,8 +235,16 @@ NS_IMETHODIMP nsAbCardProperty::GetCardValue(const char *attrname, PRUnichar **v
|
|||
rv = GetAimScreenName(value);
|
||||
break;
|
||||
case 'A':
|
||||
// AnniversaryYear, AnniversaryMonth, AnniversaryDay
|
||||
// AllowRemoteContent, AnniversaryYear, AnniversaryMonth, AnniversaryDay
|
||||
switch (attrname[11]) {
|
||||
case 'C':
|
||||
{
|
||||
PRBool allowRemoteContent = PR_FALSE;
|
||||
GetAllowRemoteContent(&allowRemoteContent);
|
||||
*value = allowRemoteContent ? ToNewUnicode(NS_LITERAL_STRING("true")) :
|
||||
ToNewUnicode(NS_LITERAL_STRING("false"));
|
||||
break;
|
||||
}
|
||||
case 'Y':
|
||||
rv = GetAnniversaryYear(value);
|
||||
break;
|
||||
|
@ -484,8 +505,11 @@ NS_IMETHODIMP nsAbCardProperty::SetCardValue(const char *attrname, const PRUnich
|
|||
rv = SetAimScreenName(value);
|
||||
break;
|
||||
case 'A':
|
||||
// AnniversaryYear, AnniversaryMonth, AnniversaryDay
|
||||
switch (attrname[5]) {
|
||||
// AllowRemoteContent, AnniversaryYear, AnniversaryMonth, AnniversaryDay
|
||||
switch (attrname[11]) {
|
||||
case 'C':
|
||||
SetAllowRemoteContent(value[0] == 't' || value[0] == 'T');
|
||||
break;
|
||||
case 'Y':
|
||||
rv = SetAnniversaryYear(value);
|
||||
break;
|
||||
|
@ -496,8 +520,8 @@ NS_IMETHODIMP nsAbCardProperty::SetCardValue(const char *attrname, const PRUnich
|
|||
rv = SetAnniversaryDay(value);
|
||||
break;
|
||||
default:
|
||||
rv = NS_ERROR_UNEXPECTED;
|
||||
break;
|
||||
rv = NS_ERROR_UNEXPECTED;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 'B':
|
||||
|
@ -1171,6 +1195,10 @@ NS_IMETHODIMP nsAbCardProperty::Copy(nsIAbCard* srcCard)
|
|||
srcCard->GetPopularityIndex(&popularityIndex);
|
||||
SetPopularityIndex(popularityIndex);
|
||||
|
||||
PRBool allowRemoteContent = PR_FALSE;
|
||||
srcCard->GetAllowRemoteContent(&allowRemoteContent);
|
||||
SetAllowRemoteContent(allowRemoteContent);
|
||||
|
||||
srcCard->GetWorkPhone(getter_Copies(str));
|
||||
SetWorkPhone(str);
|
||||
srcCard->GetHomePhone(getter_Copies(str));
|
||||
|
|
|
@ -126,6 +126,7 @@ protected:
|
|||
PRUint32 m_LastModDate;
|
||||
PRUint32 m_PreferMailFormat;
|
||||
PRUint32 m_PopularityIndex;
|
||||
PRBool m_AllowRemoteContent;
|
||||
|
||||
PRBool m_IsMailList;
|
||||
nsCString m_MailListURI;
|
||||
|
|
|
@ -162,6 +162,10 @@ NS_IMETHODIMP nsAbMDBCardProperty::CopyCard(nsIAbMDBCard* srcCardDB)
|
|||
srcCard->GetPopularityIndex(&popularityIndex);
|
||||
SetPopularityIndex(popularityIndex);
|
||||
|
||||
PRBool allowRemoteContent = PR_FALSE;
|
||||
srcCard->GetAllowRemoteContent(&allowRemoteContent);
|
||||
SetAllowRemoteContent(allowRemoteContent);
|
||||
|
||||
srcCard->GetWorkPhone(getter_Copies(str));
|
||||
SetWorkPhone(str);
|
||||
srcCard->GetHomePhone(getter_Copies(str));
|
||||
|
|
|
@ -182,3 +182,8 @@ NS_IMETHODIMP nsAbMDBDirProperty::HasCardForEmailAddress(const char * aEmailAddr
|
|||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsAbMDBDirProperty::CardForEmailAddress(const char * aEmailAddress, nsIAbCard ** aAbCard)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
|
|
@ -552,7 +552,6 @@ NS_IMETHODIMP nsAbMDBDirectory::HasCard(nsIAbCard *cards, PRBool *hasCard)
|
|||
{
|
||||
if(NS_SUCCEEDED(rv))
|
||||
rv = mDatabase->ContainsCard(cards, hasCard);
|
||||
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
@ -971,8 +970,20 @@ nsresult nsAbMDBDirectory::GetAbDatabase()
|
|||
|
||||
NS_IMETHODIMP nsAbMDBDirectory::HasCardForEmailAddress(const char * aEmailAddress, PRBool * aCardExists)
|
||||
{
|
||||
nsCOMPtr<nsIAbCard> card;
|
||||
nsresult rv = CardForEmailAddress(aEmailAddress, getter_AddRefs(card));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
*aCardExists = card ? PR_TRUE : PR_FALSE;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsAbMDBDirectory::CardForEmailAddress(const char * aEmailAddress, nsIAbCard ** aAbCard)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aAbCard);
|
||||
NS_ENSURE_ARG_POINTER(aEmailAddress);
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
*aCardExists = PR_FALSE;
|
||||
*aAbCard = NULL;
|
||||
|
||||
if (!mDatabase)
|
||||
rv = GetAbDatabase();
|
||||
|
@ -983,11 +994,8 @@ NS_IMETHODIMP nsAbMDBDirectory::HasCardForEmailAddress(const char * aEmailAddres
|
|||
}
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsIAbCard> card;
|
||||
mDatabase->GetCardFromAttribute(this, kLowerPriEmailColumn /* see #196777 */, aEmailAddress, PR_TRUE /* caseInsensitive, see bug #191798 */, getter_AddRefs(card));
|
||||
if (card)
|
||||
*aCardExists = PR_TRUE;
|
||||
else
|
||||
mDatabase->GetCardFromAttribute(this, kLowerPriEmailColumn /* see #196777 */, aEmailAddress, PR_TRUE /* caseInsensitive, see bug #191798 */, aAbCard);
|
||||
if (!*aAbCard)
|
||||
{
|
||||
// fix for bug #187239
|
||||
// didn't find it as the primary email? try again, with k2ndEmailColumn ("Additional Email")
|
||||
|
@ -995,9 +1003,8 @@ NS_IMETHODIMP nsAbMDBDirectory::HasCardForEmailAddress(const char * aEmailAddres
|
|||
// TODO bug #198731
|
||||
// unlike the kPriEmailColumn, we don't have kLower2ndEmailColumn
|
||||
// so we will still suffer from bug #196777 for "additional emails"
|
||||
mDatabase->GetCardFromAttribute(this, k2ndEmailColumn, aEmailAddress, PR_TRUE /* caseInsensitive, see bug #191798 */, getter_AddRefs(card));
|
||||
if (card)
|
||||
*aCardExists = PR_TRUE;
|
||||
mDatabase->GetCardFromAttribute(this, k2ndEmailColumn, aEmailAddress, PR_TRUE /* caseInsensitive, see bug #191798 */, aAbCard);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
|
|
@ -56,75 +56,76 @@
|
|||
#include "nsAbDirectoryRDFResource.h"
|
||||
#include "nsIAddrDBListener.h"
|
||||
|
||||
/*
|
||||
* Address Book Directory
|
||||
*/
|
||||
/*
|
||||
* Address Book Directory
|
||||
*/
|
||||
|
||||
class nsAbMDBDirectory:
|
||||
public nsAbDirectoryRDFResource,
|
||||
public nsAbMDBDirProperty, // nsIAbDirectory, nsIAbMDBDirectory
|
||||
public nsAbDirSearchListenerContext,
|
||||
public nsAbDirectoryRDFResource,
|
||||
public nsAbMDBDirProperty, // nsIAbDirectory, nsIAbMDBDirectory
|
||||
public nsAbDirSearchListenerContext,
|
||||
public nsIAddrDBListener,
|
||||
public nsIAbDirectorySearch
|
||||
public nsIAbDirectorySearch
|
||||
{
|
||||
public:
|
||||
nsAbMDBDirectory(void);
|
||||
virtual ~nsAbMDBDirectory(void);
|
||||
nsAbMDBDirectory(void);
|
||||
virtual ~nsAbMDBDirectory(void);
|
||||
|
||||
NS_DECL_ISUPPORTS_INHERITED
|
||||
NS_DECL_ISUPPORTS_INHERITED
|
||||
NS_DECL_NSIADDRDBLISTENER
|
||||
|
||||
// nsIAbMDBDirectory methods
|
||||
// nsIAbMDBDirectory methods
|
||||
NS_IMETHOD GetURI(nsACString &aURI);
|
||||
NS_IMETHOD ClearDatabase();
|
||||
NS_IMETHOD NotifyDirItemAdded(nsISupports *item) { return NotifyItemAdded(item);}
|
||||
NS_IMETHOD RemoveElementsFromAddressList();
|
||||
NS_IMETHOD RemoveEmailAddressAt(PRUint32 aIndex);
|
||||
NS_IMETHOD AddDirectory(const char *uriName, nsIAbDirectory **childDir);
|
||||
NS_IMETHOD GetDirUri(char **uri);
|
||||
NS_IMETHOD HasCardForEmailAddress(const char * aEmailAddress, PRBool * aCardExists);
|
||||
NS_IMETHOD ClearDatabase();
|
||||
NS_IMETHOD NotifyDirItemAdded(nsISupports *item) { return NotifyItemAdded(item);}
|
||||
NS_IMETHOD RemoveElementsFromAddressList();
|
||||
NS_IMETHOD RemoveEmailAddressAt(PRUint32 aIndex);
|
||||
NS_IMETHOD AddDirectory(const char *uriName, nsIAbDirectory **childDir);
|
||||
NS_IMETHOD GetDirUri(char **uri);
|
||||
NS_IMETHOD HasCardForEmailAddress(const char * aEmailAddress, PRBool * aCardExists);
|
||||
NS_IMETHOD CardForEmailAddress(const char * aEmailAddress, nsIAbCard ** aAbCard);
|
||||
|
||||
// nsIAbDirectory methods:
|
||||
NS_IMETHOD GetChildNodes(nsISimpleEnumerator* *result);
|
||||
NS_IMETHOD GetChildCards(nsISimpleEnumerator* *result);
|
||||
// nsIAbDirectory methods:
|
||||
NS_IMETHOD GetChildNodes(nsISimpleEnumerator* *result);
|
||||
NS_IMETHOD GetChildCards(nsISimpleEnumerator* *result);
|
||||
NS_IMETHOD ModifyDirectory(nsIAbDirectory *directory, nsIAbDirectoryProperties *aProperties);
|
||||
NS_IMETHOD DeleteDirectory(nsIAbDirectory *directory);
|
||||
NS_IMETHOD DeleteCards(nsISupportsArray *cards);
|
||||
NS_IMETHOD HasCard(nsIAbCard *cards, PRBool *hasCard);
|
||||
NS_IMETHOD HasDirectory(nsIAbDirectory *dir, PRBool *hasDir);
|
||||
NS_IMETHOD CreateNewDirectory(nsIAbDirectoryProperties *aProperties);
|
||||
NS_IMETHOD CreateDirectoryByURI(const PRUnichar *dirName, const char *uri, PRBool migrating);
|
||||
NS_IMETHOD AddMailList(nsIAbDirectory *list);
|
||||
NS_IMETHOD AddCard(nsIAbCard *card, nsIAbCard **addedCard);
|
||||
NS_IMETHOD DropCard(nsIAbCard *card, PRBool needToCopyCard);
|
||||
NS_IMETHOD EditMailListToDatabase(const char *uri, nsIAbCard *listCard);
|
||||
NS_IMETHOD DeleteDirectory(nsIAbDirectory *directory);
|
||||
NS_IMETHOD DeleteCards(nsISupportsArray *cards);
|
||||
NS_IMETHOD HasCard(nsIAbCard *cards, PRBool *hasCard);
|
||||
NS_IMETHOD HasDirectory(nsIAbDirectory *dir, PRBool *hasDir);
|
||||
NS_IMETHOD CreateNewDirectory(nsIAbDirectoryProperties *aProperties);
|
||||
NS_IMETHOD CreateDirectoryByURI(const PRUnichar *dirName, const char *uri, PRBool migrating);
|
||||
NS_IMETHOD AddMailList(nsIAbDirectory *list);
|
||||
NS_IMETHOD AddCard(nsIAbCard *card, nsIAbCard **addedCard);
|
||||
NS_IMETHOD DropCard(nsIAbCard *card, PRBool needToCopyCard);
|
||||
NS_IMETHOD EditMailListToDatabase(const char *uri, nsIAbCard *listCard);
|
||||
|
||||
// nsIAbDirectorySearch methods
|
||||
NS_DECL_NSIABDIRECTORYSEARCH
|
||||
// nsIAbDirectorySearch methods
|
||||
NS_DECL_NSIABDIRECTORYSEARCH
|
||||
|
||||
// nsAbDirSearchListenerContext methods
|
||||
nsresult OnSearchFinished (PRInt32 result);
|
||||
nsresult OnSearchFoundCard (nsIAbCard* card);
|
||||
// nsAbDirSearchListenerContext methods
|
||||
nsresult OnSearchFinished (PRInt32 result);
|
||||
nsresult OnSearchFoundCard (nsIAbCard* card);
|
||||
|
||||
PRBool IsMailingList(){ return (mIsMailingList == 1); }
|
||||
PRBool IsMailingList(){ return (mIsMailingList == 1); }
|
||||
|
||||
protected:
|
||||
nsresult NotifyPropertyChanged(nsIAbDirectory *list, const char *property, const PRUnichar* oldValue, const PRUnichar* newValue);
|
||||
nsresult NotifyItemAdded(nsISupports *item);
|
||||
nsresult NotifyItemDeleted(nsISupports *item);
|
||||
nsresult NotifyPropertyChanged(nsIAbDirectory *list, const char *property, const PRUnichar* oldValue, const PRUnichar* newValue);
|
||||
nsresult NotifyItemAdded(nsISupports *item);
|
||||
nsresult NotifyItemDeleted(nsISupports *item);
|
||||
nsresult NotifyItemChanged(nsISupports *item);
|
||||
nsresult RemoveCardFromAddressList(nsIAbCard* card);
|
||||
nsresult RemoveCardFromAddressList(nsIAbCard* card);
|
||||
|
||||
nsresult GetAbDatabase();
|
||||
nsCOMPtr<nsIAddrDatabase> mDatabase;
|
||||
nsresult GetAbDatabase();
|
||||
nsCOMPtr<nsIAddrDatabase> mDatabase;
|
||||
|
||||
nsCOMArray<nsIAbDirectory> mSubDirectories;
|
||||
PRBool mInitialized;
|
||||
PRInt16 mIsMailingList;
|
||||
nsCOMArray<nsIAbDirectory> mSubDirectories;
|
||||
PRBool mInitialized;
|
||||
PRInt16 mIsMailingList;
|
||||
|
||||
PRInt32 mContext;
|
||||
PRBool mPerformingQuery;
|
||||
nsSupportsHashtable mSearchCache;
|
||||
PRInt32 mContext;
|
||||
PRBool mPerformingQuery;
|
||||
nsSupportsHashtable mSearchCache;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1341,9 +1341,3 @@ nsresult nsAbOutlookDirectory::CreateCard(nsIAbCard *aData, nsIAbCard **aNewCard
|
|||
NS_ADDREF(*aNewCard) ;
|
||||
return retCode ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -163,6 +163,7 @@ nsAddrDatabase::nsAddrDatabase()
|
|||
m_LastModDateColumnToken(0),
|
||||
m_MailFormatColumnToken(0),
|
||||
m_PopularityIndexColumnToken(0),
|
||||
m_AllowRemoteContentColumnToken(0),
|
||||
m_AddressCharSetColumnToken(0),
|
||||
m_LastRecordKey(0),
|
||||
m_dbDirectory(nsnull)
|
||||
|
@ -1220,6 +1221,7 @@ nsresult nsAddrDatabase::InitMDBInfo()
|
|||
m_mdbStore->StringToToken(m_mdbEnv, k2ndEmailColumn, &m_2ndEmailColumnToken);
|
||||
m_mdbStore->StringToToken(m_mdbEnv, kPreferMailFormatColumn, &m_MailFormatColumnToken);
|
||||
m_mdbStore->StringToToken(m_mdbEnv, kPopularityIndexColumn, &m_PopularityIndexColumnToken);
|
||||
m_mdbStore->StringToToken(m_mdbEnv, kAllowRemoteContentColumn, &m_AllowRemoteContentColumnToken);
|
||||
m_mdbStore->StringToToken(m_mdbEnv, kWorkPhoneColumn, &m_WorkPhoneColumnToken);
|
||||
m_mdbStore->StringToToken(m_mdbEnv, kHomePhoneColumn, &m_HomePhoneColumnToken);
|
||||
m_mdbStore->StringToToken(m_mdbEnv, kFaxColumn, &m_FaxColumnToken);
|
||||
|
@ -1351,6 +1353,10 @@ nsresult nsAddrDatabase::AddAttributeColumnsToRow(nsIAbCard *card, nsIMdbRow *ca
|
|||
PRUint32 popularityIndex = 0;
|
||||
card->GetPopularityIndex(&popularityIndex);
|
||||
AddPopularityIndex(cardRow, popularityIndex);
|
||||
|
||||
PRBool allowRemoteContent = PR_FALSE;
|
||||
card->GetAllowRemoteContent(&allowRemoteContent);
|
||||
AddAllowRemoteContent(cardRow, allowRemoteContent);
|
||||
|
||||
card->GetWorkPhone(getter_Copies(unicodeStr));
|
||||
AddWorkPhone(cardRow, NS_ConvertUTF16toUTF8(unicodeStr).get());
|
||||
|
@ -2675,6 +2681,11 @@ NS_IMETHODIMP nsAddrDatabase::InitCardFromRow(nsIAbCard *newCard, nsIMdbRow* car
|
|||
if (NS_SUCCEEDED(err))
|
||||
newCard->SetPopularityIndex(popularityIndex);
|
||||
|
||||
PRBool allowRemoteContent;
|
||||
err = GetBoolColumn(cardRow, m_AllowRemoteContentColumnToken, &allowRemoteContent);
|
||||
if (NS_SUCCEEDED(err))
|
||||
newCard->SetAllowRemoteContent(allowRemoteContent);
|
||||
|
||||
err = GetStringColumn(cardRow, m_WorkPhoneColumnToken, tempString);
|
||||
if (NS_SUCCEEDED(err) && !tempString.IsEmpty())
|
||||
{
|
||||
|
|
|
@ -58,38 +58,38 @@ typedef enum
|
|||
class nsAddrDatabase : public nsIAddrDatabase
|
||||
{
|
||||
public:
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIADDRDBANNOUNCER
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIADDRDBANNOUNCER
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// nsIAddrDatabase methods:
|
||||
|
||||
NS_IMETHOD GetDbPath(nsIFile * *aDbPath);
|
||||
NS_IMETHOD SetDbPath(nsIFile * aDbPath);
|
||||
NS_IMETHOD Open(nsIFile *aMabFile, PRBool aCreate, PRBool upgrading, nsIAddrDatabase **pCardDB);
|
||||
NS_IMETHOD Close(PRBool forceCommit);
|
||||
NS_IMETHOD Open(nsIFile *aMabFile, PRBool aCreate, PRBool upgrading, nsIAddrDatabase **pCardDB);
|
||||
NS_IMETHOD Close(PRBool forceCommit);
|
||||
NS_IMETHOD OpenMDB(nsIFile *dbName, PRBool create);
|
||||
NS_IMETHOD CloseMDB(PRBool commit);
|
||||
NS_IMETHOD Commit(PRUint32 commitType);
|
||||
NS_IMETHOD ForceClosed();
|
||||
NS_IMETHOD CloseMDB(PRBool commit);
|
||||
NS_IMETHOD Commit(PRUint32 commitType);
|
||||
NS_IMETHOD ForceClosed();
|
||||
|
||||
NS_IMETHOD CreateNewCardAndAddToDB(nsIAbCard *newCard, PRBool notify);
|
||||
NS_IMETHOD CreateNewListCardAndAddToDB(nsIAbDirectory *list, PRUint32 listRowID, nsIAbCard *newCard, PRBool notify);
|
||||
NS_IMETHOD CreateMailListAndAddToDB(nsIAbDirectory *newList, PRBool notify);
|
||||
NS_IMETHOD EnumerateCards(nsIAbDirectory *directory, nsISimpleEnumerator **result);
|
||||
NS_IMETHOD GetMailingListsFromDB(nsIAbDirectory *parentDir);
|
||||
NS_IMETHOD EnumerateListAddresses(nsIAbDirectory *directory, nsISimpleEnumerator **result);
|
||||
NS_IMETHOD DeleteCard(nsIAbCard *newCard, PRBool notify);
|
||||
NS_IMETHOD EditCard(nsIAbCard *card, PRBool notify);
|
||||
NS_IMETHOD ContainsCard(nsIAbCard *card, PRBool *hasCard);
|
||||
NS_IMETHOD DeleteMailList(nsIAbDirectory *mailList, PRBool notify);
|
||||
NS_IMETHOD EditMailList(nsIAbDirectory *mailList, nsIAbCard *listCard, PRBool notify);
|
||||
NS_IMETHOD ContainsMailList(nsIAbDirectory *mailList, PRBool *hasCard);
|
||||
NS_IMETHOD DeleteCardFromMailList(nsIAbDirectory *mailList, nsIAbCard *card, PRBool aNotify);
|
||||
NS_IMETHOD CreateNewCardAndAddToDB(nsIAbCard *newCard, PRBool notify);
|
||||
NS_IMETHOD CreateNewListCardAndAddToDB(nsIAbDirectory *list, PRUint32 listRowID, nsIAbCard *newCard, PRBool notify);
|
||||
NS_IMETHOD CreateMailListAndAddToDB(nsIAbDirectory *newList, PRBool notify);
|
||||
NS_IMETHOD EnumerateCards(nsIAbDirectory *directory, nsISimpleEnumerator **result);
|
||||
NS_IMETHOD GetMailingListsFromDB(nsIAbDirectory *parentDir);
|
||||
NS_IMETHOD EnumerateListAddresses(nsIAbDirectory *directory, nsISimpleEnumerator **result);
|
||||
NS_IMETHOD DeleteCard(nsIAbCard *newCard, PRBool notify);
|
||||
NS_IMETHOD EditCard(nsIAbCard *card, PRBool notify);
|
||||
NS_IMETHOD ContainsCard(nsIAbCard *card, PRBool *hasCard);
|
||||
NS_IMETHOD DeleteMailList(nsIAbDirectory *mailList, PRBool notify);
|
||||
NS_IMETHOD EditMailList(nsIAbDirectory *mailList, nsIAbCard *listCard, PRBool notify);
|
||||
NS_IMETHOD ContainsMailList(nsIAbDirectory *mailList, PRBool *hasCard);
|
||||
NS_IMETHOD DeleteCardFromMailList(nsIAbDirectory *mailList, nsIAbCard *card, PRBool aNotify);
|
||||
NS_IMETHOD GetCardFromAttribute(nsIAbDirectory *directory, const char *aName, const char *aValue, PRBool aCaseInsensitive, nsIAbCard **card);
|
||||
NS_IMETHOD GetNewRow(nsIMdbRow * *newRow);
|
||||
NS_IMETHOD GetNewListRow(nsIMdbRow * *newRow);
|
||||
NS_IMETHOD AddCardRowToDB(nsIMdbRow *newRow);
|
||||
NS_IMETHOD AddLdifListMember(nsIMdbRow* row, const char * value);
|
||||
NS_IMETHOD GetNewRow(nsIMdbRow * *newRow);
|
||||
NS_IMETHOD GetNewListRow(nsIMdbRow * *newRow);
|
||||
NS_IMETHOD AddCardRowToDB(nsIMdbRow *newRow);
|
||||
NS_IMETHOD AddLdifListMember(nsIMdbRow* row, const char * value);
|
||||
|
||||
NS_IMETHOD GetDeletedCardList(PRUint32 *aCount, nsISupportsArray **aDeletedList);
|
||||
NS_IMETHOD GetDeletedCardCount(PRUint32 *count);
|
||||
|
@ -124,6 +124,9 @@ public:
|
|||
NS_IMETHOD AddPopularityIndex(nsIMdbRow * row, PRUint32 value)
|
||||
{ return AddIntColumn(row, m_PopularityIndexColumnToken, value); }
|
||||
|
||||
NS_IMETHOD AddAllowRemoteContent(nsIMdbRow * row, PRBool value)
|
||||
{ return AddBoolColumn(row, m_AllowRemoteContentColumnToken, value); }
|
||||
|
||||
NS_IMETHOD AddWorkPhone(nsIMdbRow * row, const char * value)
|
||||
{ return AddCharStringColumn(row, m_WorkPhoneColumnToken, value); }
|
||||
|
||||
|
@ -366,52 +369,52 @@ protected:
|
|||
nsIMdbTable *m_mdbPabTable;
|
||||
nsIMdbTable *m_mdbDeletedCardsTable;
|
||||
nsCOMPtr<nsIFile> m_dbName;
|
||||
PRBool m_mdbTokensInitialized;
|
||||
nsVoidArray /*<nsIAddrDBListener>*/ *m_ChangeListeners;
|
||||
PRBool m_mdbTokensInitialized;
|
||||
nsVoidArray /*<nsIAddrDBListener>*/ *m_ChangeListeners;
|
||||
|
||||
mdb_kind m_PabTableKind;
|
||||
mdb_kind m_MailListTableKind;
|
||||
mdb_kind m_DeletedCardsTableKind;
|
||||
mdb_kind m_PabTableKind;
|
||||
mdb_kind m_MailListTableKind;
|
||||
mdb_kind m_DeletedCardsTableKind;
|
||||
|
||||
mdb_scope m_CardRowScopeToken;
|
||||
mdb_scope m_ListRowScopeToken;
|
||||
mdb_scope m_DataRowScopeToken;
|
||||
mdb_scope m_CardRowScopeToken;
|
||||
mdb_scope m_ListRowScopeToken;
|
||||
mdb_scope m_DataRowScopeToken;
|
||||
|
||||
mdb_token m_FirstNameColumnToken;
|
||||
mdb_token m_LastNameColumnToken;
|
||||
mdb_token m_PhoneticFirstNameColumnToken;
|
||||
mdb_token m_PhoneticLastNameColumnToken;
|
||||
mdb_token m_DisplayNameColumnToken;
|
||||
mdb_token m_NickNameColumnToken;
|
||||
mdb_token m_PriEmailColumnToken;
|
||||
mdb_token m_2ndEmailColumnToken;
|
||||
mdb_token m_FirstNameColumnToken;
|
||||
mdb_token m_LastNameColumnToken;
|
||||
mdb_token m_PhoneticFirstNameColumnToken;
|
||||
mdb_token m_PhoneticLastNameColumnToken;
|
||||
mdb_token m_DisplayNameColumnToken;
|
||||
mdb_token m_NickNameColumnToken;
|
||||
mdb_token m_PriEmailColumnToken;
|
||||
mdb_token m_2ndEmailColumnToken;
|
||||
mdb_token m_DefaultEmailColumnToken;
|
||||
mdb_token m_CardTypeColumnToken;
|
||||
mdb_token m_WorkPhoneColumnToken;
|
||||
mdb_token m_HomePhoneColumnToken;
|
||||
mdb_token m_FaxColumnToken;
|
||||
mdb_token m_PagerColumnToken;
|
||||
mdb_token m_CellularColumnToken;
|
||||
mdb_token m_WorkPhoneColumnToken;
|
||||
mdb_token m_HomePhoneColumnToken;
|
||||
mdb_token m_FaxColumnToken;
|
||||
mdb_token m_PagerColumnToken;
|
||||
mdb_token m_CellularColumnToken;
|
||||
mdb_token m_WorkPhoneTypeColumnToken;
|
||||
mdb_token m_HomePhoneTypeColumnToken;
|
||||
mdb_token m_FaxTypeColumnToken;
|
||||
mdb_token m_PagerTypeColumnToken;
|
||||
mdb_token m_CellularTypeColumnToken;
|
||||
mdb_token m_HomeAddressColumnToken;
|
||||
mdb_token m_HomeAddress2ColumnToken;
|
||||
mdb_token m_HomeCityColumnToken;
|
||||
mdb_token m_HomeStateColumnToken;
|
||||
mdb_token m_HomeZipCodeColumnToken;
|
||||
mdb_token m_HomeCountryColumnToken;
|
||||
mdb_token m_WorkAddressColumnToken;
|
||||
mdb_token m_WorkAddress2ColumnToken;
|
||||
mdb_token m_WorkCityColumnToken;
|
||||
mdb_token m_WorkStateColumnToken;
|
||||
mdb_token m_WorkZipCodeColumnToken;
|
||||
mdb_token m_WorkCountryColumnToken;
|
||||
mdb_token m_JobTitleColumnToken;
|
||||
mdb_token m_DepartmentColumnToken;
|
||||
mdb_token m_CompanyColumnToken;
|
||||
mdb_token m_HomePhoneTypeColumnToken;
|
||||
mdb_token m_FaxTypeColumnToken;
|
||||
mdb_token m_PagerTypeColumnToken;
|
||||
mdb_token m_CellularTypeColumnToken;
|
||||
mdb_token m_HomeAddressColumnToken;
|
||||
mdb_token m_HomeAddress2ColumnToken;
|
||||
mdb_token m_HomeCityColumnToken;
|
||||
mdb_token m_HomeStateColumnToken;
|
||||
mdb_token m_HomeZipCodeColumnToken;
|
||||
mdb_token m_HomeCountryColumnToken;
|
||||
mdb_token m_WorkAddressColumnToken;
|
||||
mdb_token m_WorkAddress2ColumnToken;
|
||||
mdb_token m_WorkCityColumnToken;
|
||||
mdb_token m_WorkStateColumnToken;
|
||||
mdb_token m_WorkZipCodeColumnToken;
|
||||
mdb_token m_WorkCountryColumnToken;
|
||||
mdb_token m_JobTitleColumnToken;
|
||||
mdb_token m_DepartmentColumnToken;
|
||||
mdb_token m_CompanyColumnToken;
|
||||
mdb_token m_AimScreenNameColumnToken;
|
||||
mdb_token m_AnniversaryYearColumnToken;
|
||||
mdb_token m_AnniversaryMonthColumnToken;
|
||||
|
@ -420,34 +423,35 @@ protected:
|
|||
mdb_token m_FamilyNameColumnToken;
|
||||
mdb_token m_DefaultAddressColumnToken;
|
||||
mdb_token m_CategoryColumnToken;
|
||||
mdb_token m_WebPage1ColumnToken;
|
||||
mdb_token m_WebPage2ColumnToken;
|
||||
mdb_token m_BirthYearColumnToken;
|
||||
mdb_token m_BirthMonthColumnToken;
|
||||
mdb_token m_BirthDayColumnToken;
|
||||
mdb_token m_Custom1ColumnToken;
|
||||
mdb_token m_Custom2ColumnToken;
|
||||
mdb_token m_Custom3ColumnToken;
|
||||
mdb_token m_Custom4ColumnToken;
|
||||
mdb_token m_NotesColumnToken;
|
||||
mdb_token m_LastModDateColumnToken;
|
||||
mdb_token m_RecordKeyColumnToken;
|
||||
mdb_token m_LowerPriEmailColumnToken;
|
||||
mdb_token m_WebPage1ColumnToken;
|
||||
mdb_token m_WebPage2ColumnToken;
|
||||
mdb_token m_BirthYearColumnToken;
|
||||
mdb_token m_BirthMonthColumnToken;
|
||||
mdb_token m_BirthDayColumnToken;
|
||||
mdb_token m_Custom1ColumnToken;
|
||||
mdb_token m_Custom2ColumnToken;
|
||||
mdb_token m_Custom3ColumnToken;
|
||||
mdb_token m_Custom4ColumnToken;
|
||||
mdb_token m_NotesColumnToken;
|
||||
mdb_token m_LastModDateColumnToken;
|
||||
mdb_token m_RecordKeyColumnToken;
|
||||
mdb_token m_LowerPriEmailColumnToken;
|
||||
|
||||
mdb_token m_MailFormatColumnToken;
|
||||
mdb_token m_PopularityIndexColumnToken;
|
||||
mdb_token m_MailFormatColumnToken;
|
||||
mdb_token m_PopularityIndexColumnToken;
|
||||
mdb_token m_AllowRemoteContentColumnToken;
|
||||
|
||||
mdb_token m_AddressCharSetColumnToken;
|
||||
mdb_token m_LastRecordKeyColumnToken;
|
||||
mdb_token m_AddressCharSetColumnToken;
|
||||
mdb_token m_LastRecordKeyColumnToken;
|
||||
|
||||
mdb_token m_ListNameColumnToken;
|
||||
mdb_token m_ListNickNameColumnToken;
|
||||
mdb_token m_ListDescriptionColumnToken;
|
||||
mdb_token m_ListTotalColumnToken;
|
||||
mdb_token m_LowerListNameColumnToken;
|
||||
mdb_token m_ListNameColumnToken;
|
||||
mdb_token m_ListNickNameColumnToken;
|
||||
mdb_token m_ListDescriptionColumnToken;
|
||||
mdb_token m_ListTotalColumnToken;
|
||||
mdb_token m_LowerListNameColumnToken;
|
||||
|
||||
PRUint32 m_LastRecordKey;
|
||||
nsIAbDirectory* m_dbDirectory;
|
||||
PRUint32 m_LastRecordKey;
|
||||
nsIAbDirectory* m_dbDirectory;
|
||||
|
||||
private:
|
||||
nsresult GetRowForCharColumn(const PRUnichar *unicodeStr, mdb_column findColumn, PRBool bIsCard, nsIMdbRow **findRow);
|
||||
|
|
Загрузка…
Ссылка в новой задаче