Bug 317566 Using global LDAP server prefs for autocomplete lookup does not always work correctly. r=neil.parkwaycc.co.uk,sr=bienvenu
git-svn-id: svn://10.0.0.236/trunk@187957 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -178,7 +178,6 @@ var gComposePane = {
|
||||
var arrayOfDirectories;
|
||||
var position;
|
||||
var dirType;
|
||||
var directoriesList;
|
||||
var prefService;
|
||||
|
||||
prefService = Components.classes["@mozilla.org/preferences-service;1"]
|
||||
@@ -247,42 +246,30 @@ var gComposePane = {
|
||||
}
|
||||
}
|
||||
|
||||
var value;
|
||||
if (aPopup)
|
||||
{
|
||||
directoriesList = document.getElementById("directoriesList");
|
||||
if (gRefresh)
|
||||
// we are in mail/news Account settings
|
||||
item = document.createElement("menuitem");
|
||||
var addressBookBundle = document.getElementById("bundle_addressBook");
|
||||
var directoryName = addressBookBundle.getString("directoriesListItemNone");
|
||||
item.setAttribute("label", directoryName);
|
||||
item.setAttribute("value", "");
|
||||
aPopup.appendChild(item);
|
||||
|
||||
// Now check what we are displaying is valid.
|
||||
var directoriesList = document.getElementById("directoriesList");
|
||||
var value = directoriesList.value;
|
||||
directoriesList.selectedItem = null;
|
||||
directoriesList.value = value;
|
||||
if (!directoriesList.selectedItem)
|
||||
{
|
||||
// gRefresh is true if user edits, removes or adds a directory.
|
||||
value = directoriesList.value;
|
||||
directoriesList.selectedItem = null;
|
||||
directoriesList.value = value;
|
||||
if (!directoriesList.selectedItem)
|
||||
directoriesList.selectedIndex = 0;
|
||||
if (!directoriesList.selectedItem)
|
||||
{
|
||||
directoriesList.value = "";
|
||||
directoriesList.value = "";
|
||||
// If we have no other directories, also disable the popup.
|
||||
if (gAvailDirectories.length == 0)
|
||||
directoriesList.disabled = true;
|
||||
}
|
||||
else if (!prefService.prefIsLocked("ldap_2.autoComplete.directoryServer"))
|
||||
directoriesList.disabled = false;
|
||||
return;
|
||||
}
|
||||
|
||||
var pref_string_title = "ldap_2.autoComplete.directoryServer";
|
||||
try
|
||||
{
|
||||
var directoryServer = prefService.getCharPref(pref_string_title);
|
||||
directoriesList.value = directoryServer;
|
||||
if (!directoriesList.selectedItem)
|
||||
directoriesList.selectedIndex = 0;
|
||||
if (!directoriesList.selectedItem)
|
||||
directoriesList.value = "";
|
||||
}
|
||||
catch (ex)
|
||||
{
|
||||
directoriesList.selectedItem = null;
|
||||
}
|
||||
else if (!prefService.prefIsLocked("ldap_2.autoComplete.directoryServer"))
|
||||
directoriesList.disabled = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,6 +56,7 @@
|
||||
|
||||
<stringbundle id="languageBundle" src="chrome://global/locale/languageNames.properties"/>
|
||||
<stringbundle id="regionBundle" src="chrome://global/locale/regionNames.properties"/>
|
||||
<stringbundle id="bundle_addressBook" src="chrome://messenger/locale/addressbook/addressBook.properties"/>
|
||||
|
||||
<preferences>
|
||||
<preference id="mail.preferences.compose.selectedTabIndex" name="mail.preferences.compose.selectedTabIndex" type="int"/>
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
onload="onLoad();"
|
||||
headertitle="&pref.addressing.title;">
|
||||
|
||||
<stringbundle id="bundle_addressBook" src="chrome://messenger/locale/addressbook/addressBook.properties"/>
|
||||
|
||||
<script type="application/x-javascript" src="chrome://messenger/content/addressbook/pref-directory.js"/>
|
||||
<script type="application/x-javascript">
|
||||
<![CDATA[
|
||||
@@ -22,7 +24,7 @@
|
||||
|
||||
function onLoad()
|
||||
{
|
||||
createDirectoriesList(true);
|
||||
createDirectoriesList();
|
||||
parent.initPanel('chrome://messenger/content/addressbook/pref-addressing.xul');
|
||||
}
|
||||
|
||||
@@ -87,7 +89,7 @@
|
||||
preftype="string"
|
||||
prefstring="ldap_2.autoComplete.directoryServer">
|
||||
<menupopup id="directoriesListPopup"
|
||||
onpopupshowing="createDirectoriesList(true);">
|
||||
onpopupshowing="createDirectoriesList();">
|
||||
</menupopup>
|
||||
</menulist>
|
||||
<button id="editButton" label="&editDirectories.label;"
|
||||
|
||||
@@ -5,7 +5,6 @@ var gCurrentDirectoryServerId = null;
|
||||
var gRefresh = false;
|
||||
var gNewServer = null;
|
||||
var gNewServerString = null;
|
||||
var gFromGlobalPref = false;
|
||||
var gUpdate = false;
|
||||
var gDeletedDirectories = new Array();
|
||||
var gLDAPPrefsService;
|
||||
@@ -26,9 +25,8 @@ function initLDAPPrefsService()
|
||||
|
||||
function onEditDirectories()
|
||||
{
|
||||
var args = {fromGlobalPref: gFromGlobalPref};
|
||||
window.openDialog("chrome://messenger/content/addressbook/pref-editdirectories.xul",
|
||||
"editDirectories", "chrome,modal=yes,resizable=no", args);
|
||||
"editDirectories", "chrome,modal=yes,resizable=no", null);
|
||||
if (gRefresh)
|
||||
{
|
||||
var popup = document.getElementById("directoriesListPopup");
|
||||
@@ -74,7 +72,6 @@ function enableAutocomplete()
|
||||
// if we do not have any directories disable the dropdown list box
|
||||
if (!gAvailDirectories || (gAvailDirectories.length < 1))
|
||||
directoriesList.setAttribute("disabled", true);
|
||||
gFromGlobalPref = true;
|
||||
LoadDirectories(directoriesListPopup);
|
||||
}
|
||||
|
||||
@@ -102,12 +99,10 @@ function setupDirectoriesList()
|
||||
directoryServer = "";
|
||||
}
|
||||
directoriesList.value = directoryServer;
|
||||
gFromGlobalPref = false;
|
||||
}
|
||||
|
||||
function createDirectoriesList(flag)
|
||||
function createDirectoriesList()
|
||||
{
|
||||
gFromGlobalPref = flag;
|
||||
var directoriesListPopup = document.getElementById("directoriesListPopup");
|
||||
|
||||
if (directoriesListPopup) {
|
||||
@@ -124,7 +119,6 @@ function LoadDirectories(popup)
|
||||
var arrayOfDirectories;
|
||||
var position;
|
||||
var dirType;
|
||||
var directoriesList;
|
||||
if (!gPrefInt) {
|
||||
try {
|
||||
gPrefInt = Components.classes["@mozilla.org/preferences-service;1"]
|
||||
@@ -180,57 +174,30 @@ function LoadDirectories(popup)
|
||||
}
|
||||
}
|
||||
}
|
||||
var value;
|
||||
if (popup && !gFromGlobalPref)
|
||||
if (popup)
|
||||
{
|
||||
// we are in mail/news Account settings
|
||||
item=document.createElement("menuitem");
|
||||
item = document.createElement("menuitem");
|
||||
var addressBookBundle = document.getElementById("bundle_addressBook");
|
||||
var directoryName = addressBookBundle.getString("directoriesListItemNone");
|
||||
item.setAttribute("label", directoryName);
|
||||
item.setAttribute("value", "");
|
||||
popup.appendChild(item);
|
||||
if (gRefresh) {
|
||||
// gRefresh is true if user edits, removes or adds a directory.
|
||||
directoriesList = document.getElementById("directoriesList");
|
||||
value = directoriesList.value;
|
||||
directoriesList.selectedItem = null;
|
||||
directoriesList.value = value;
|
||||
if (!directoriesList.selectedItem)
|
||||
directoriesList.value = "";
|
||||
}
|
||||
}
|
||||
if (popup && gFromGlobalPref) {
|
||||
// we are in global preferences-> Addressing pane.
|
||||
directoriesList = document.getElementById("directoriesList");
|
||||
if (gRefresh) {
|
||||
// gRefresh is true if user edits, removes or adds a directory.
|
||||
value = directoriesList.value;
|
||||
directoriesList.selectedItem = null;
|
||||
directoriesList.value = value;
|
||||
if (!directoriesList.selectedItem)
|
||||
directoriesList.selectedIndex = 0;
|
||||
if (!directoriesList.selectedItem) {
|
||||
directoriesList.value = "";
|
||||
|
||||
// Now check what we are displaying is valid.
|
||||
var directoriesList = document.getElementById("directoriesList");
|
||||
var value = directoriesList.value;
|
||||
directoriesList.selectedItem = null;
|
||||
directoriesList.value = value;
|
||||
if (!directoriesList.selectedItem) {
|
||||
directoriesList.value = "";
|
||||
// If we have no other directories, also disable the popup.
|
||||
if (gAvailDirectories.length == 0)
|
||||
directoriesList.disabled = true;
|
||||
}
|
||||
else if (!gPrefInt.prefIsLocked("ldap_2.autoComplete.directoryServer"))
|
||||
directoriesList.disabled = false;
|
||||
return;
|
||||
}
|
||||
var pref_string_title = "ldap_2.autoComplete.directoryServer";
|
||||
try {
|
||||
var directoryServer = gPrefInt.getCharPref(pref_string_title);
|
||||
directoriesList.value = directoryServer;
|
||||
if (!directoriesList.selectedItem)
|
||||
directoriesList.selectedIndex = 0;
|
||||
if (!directoriesList.selectedItem)
|
||||
directoriesList.value = "";
|
||||
}
|
||||
catch (ex)
|
||||
{
|
||||
directoriesList.selectedItem = null;
|
||||
}
|
||||
// Only enable autocomplete if the pref isn't locked.
|
||||
else if (!gPrefInt.prefIsLocked("ldap_2.autoComplete.directoryServer"))
|
||||
directoriesList.disabled = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -239,7 +206,6 @@ function LoadDirectories(popup)
|
||||
function onInitEditDirectories()
|
||||
{
|
||||
var listbox = document.getElementById("directoriesList");
|
||||
gFromGlobalPref = window.arguments[0].fromGlobalPref;
|
||||
LoadDirectoriesList(listbox);
|
||||
// If the pref is locked disable the "Add" button
|
||||
if (gPrefInt.prefIsLocked("ldap_2.disable_button_add"))
|
||||
|
||||
@@ -3,7 +3,7 @@ var gPrefInt = null;
|
||||
|
||||
function onLoad()
|
||||
{
|
||||
createDirectoriesList(false);
|
||||
createDirectoriesList();
|
||||
parent.onPanelLoaded('am-addressing.xul');
|
||||
}
|
||||
|
||||
@@ -69,7 +69,6 @@ function enabling()
|
||||
document.getElementById("directoriesListPopup").setAttribute("disabled", "true");
|
||||
}
|
||||
|
||||
gFromGlobalPref = false;
|
||||
LoadDirectories(directoriesListPopup);
|
||||
}
|
||||
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
accesskey="&directories.accesskey;"/>
|
||||
<hbox class="indent">
|
||||
<menulist id="directoriesList" wsm_persist="true" style="min-width: 16em;">
|
||||
<menupopup onpopupshowing="createDirectoriesList(false);" id="directoriesListPopup"/>
|
||||
<menupopup onpopupshowing="createDirectoriesList();" id="directoriesListPopup"/>
|
||||
</menulist>
|
||||
<button id="editButton" label="&editDirectories.label;"
|
||||
accesskey="&editDirectories.accesskey;" oncommand="onEditDirectories();"/>
|
||||
|
||||
@@ -100,7 +100,7 @@ function initCopiesAndFolder(identity)
|
||||
|
||||
function initCompositionAndAddressing(identity)
|
||||
{
|
||||
createDirectoriesList(false);
|
||||
createDirectoriesList();
|
||||
|
||||
// if we are editing an existing identity, use it...otherwise copy our values from the default identity
|
||||
var addressingIdentity = identity ? identity : gAccount.defaultIdentity;
|
||||
|
||||
Reference in New Issue
Block a user