Fix 60627: JS strict warnings in abCommon.js. patch by Mark Olson (maolson@earthlink.net). r=jag sr=mscott

This commit is contained in:
blakeross%telocity.com 2001-01-11 21:05:53 +00:00
Родитель 9906e380fd
Коммит 58b434774d
1 изменённых файлов: 359 добавлений и 420 удалений

Просмотреть файл

@ -6,494 +6,438 @@ var resultsTree = 0;
// Controller object for Results Pane
var ResultsPaneController =
{
supportsCommand: function(command)
{
switch ( command )
{
case "cmd_selectAll":
case "cmd_delete":
case "button_delete":
return true;
default:
return false;
}
},
supportsCommand: function(command)
{
switch (command) {
case "cmd_selectAll":
case "cmd_delete":
case "button_delete":
return true;
default:
return false;
}
},
isCommandEnabled: function(command)
{
//dump('ResultsPaneController::isCommandEnabled(' + command + ')\n');
switch ( command )
{
case "cmd_selectAll":
return true;
case "cmd_delete":
case "button_delete":
var numSelected = 0;
if ( resultsTree && resultsTree.selectedItems )
numSelected = resultsTree.selectedItems.length;
if ( command == "cmd_delete" )
{
if ( numSelected < 2 )
goSetMenuValue(command, 'valueCard');
else
goSetMenuValue(command, 'valueCards');
}
return ( numSelected > 0 );
default:
return false;
}
},
isCommandEnabled: function(command)
{
switch (command) {
case "cmd_selectAll":
return true;
case "cmd_delete":
case "button_delete":
var numSelected = 0;
if (resultsTree && resultsTree.selectedItems)
numSelected = resultsTree.selectedItems.length;
if (command == "cmd_delete") {
if (numSelected < 2)
goSetMenuValue(command, "valueCard");
else
goSetMenuValue(command, "valueCards");
}
return (numSelected > 0);
default:
return false;
}
},
doCommand: function(command)
{
switch ( command )
{
case "cmd_selectAll":
if ( resultsTree )
{
dump("select all now!!!!!!" + "\n");
resultsTree.selectAll();
}
break;
case "cmd_delete":
case "button_delete":
if ( resultsTree )
{
var cardList = resultsTree.selectedItems;
top.addressbook.deleteCards(resultsTree, resultsTree, cardList);
}
break;
}
},
onEvent: function(event)
{
dump("onEvent("+event+")\n");
// on blur events set the menu item texts back to the normal values
if ( event == 'blur' )
{
goSetMenuValue('cmd_delete', 'valueDefault');
}
}
doCommand: function(command)
{
switch (command) {
case "cmd_selectAll":
if (resultsTree)
resultsTree.selectAll();
break;
case "cmd_delete":
case "button_delete":
if (resultsTree) {
var cardList = resultsTree.selectedItems;
top.addressbook.deleteCards(resultsTree, resultsTree, cardList);
}
break;
}
},
onEvent: function(event)
{
// on blur events set the menu item texts back to the normal values
if (event == "blur")
goSetMenuValue("cmd_delete", "valueDefault");
}
};
// Controller object for Dir Pane
var DirPaneController =
{
supportsCommand: function(command)
{
switch ( command )
{
case "cmd_selectAll":
case "cmd_delete":
case "button_delete":
return true;
default:
return false;
}
},
supportsCommand: function(command)
{
switch (command) {
case "cmd_selectAll":
case "cmd_delete":
case "button_delete":
return true;
default:
return false;
}
},
isCommandEnabled: function(command)
{
//dump('DirPaneController::isCommandEnabled(' + command + ')\n');
switch ( command )
{
case "cmd_selectAll":
return true;
case "cmd_delete":
case "button_delete":
if ( command == "cmd_delete" )
goSetMenuValue(command, 'valueAddressBook');
if ( dirTree && dirTree.selectedItems )
return true;
else
return false;
isCommandEnabled: function(command)
{
switch (command) {
case "cmd_selectAll":
return true;
case "cmd_delete":
case "button_delete":
if (command == "cmd_delete")
goSetMenuValue(command, "valueAddressBook");
if (dirTree && dirTree.selectedItems)
return true;
else
return false;
default:
return false;
}
},
default:
return false;
}
},
doCommand: function(command)
{
switch ( command )
{
case "cmd_selectAll":
if ( dirTree )
{
dump("select all now!!!!!!" + "\n");
dirTree.selectAll();
}
break;
doCommand: function(command)
{
switch (command) {
case "cmd_selectAll":
if (dirTree)
dirTree.selectAll();
break;
case "cmd_delete":
case "button_delete":
if ( dirTree )
AbDeleteDirectory();
// top.addressbook.deleteAddressBooks(dirTree.database, dirTree, dirTree.selectedItems);
break;
}
},
onEvent: function(event)
{
dump("onEvent("+event+")\n");
// on blur events set the menu item texts back to the normal values
if ( event == 'blur' )
{
goSetMenuValue('cmd_delete', 'valueDefault');
}
}
case "cmd_delete":
case "button_delete":
if (dirTree)
AbDeleteDirectory();
// top.addressbook.deleteAddressBooks(dirTree.database, dirTree, dirTree.selectedItems);
break;
}
},
onEvent: function(event)
{
// on blur events set the menu item texts back to the normal values
if (event == "blur")
goSetMenuValue("cmd_delete", "valueDefault");
}
};
function InitCommonJS()
{
dirTree = document.getElementById('dirTree');
resultsTree = document.getElementById('resultsTree');
dirTree = document.getElementById("dirTree");
resultsTree = document.getElementById("resultsTree");
}
function SetupCommandUpdateHandlers()
{
// dir pane
if ( dirTree )
dirTree.controllers.appendController(DirPaneController);
// results pane
if ( resultsTree )
resultsTree.controllers.appendController(ResultsPaneController);
// dir pane
if (dirTree)
dirTree.controllers.appendController(DirPaneController);
// results pane
if (resultsTree)
resultsTree.controllers.appendController(ResultsPaneController);
}
function AbNewCard()
{
var selectedAB = 0;
if ( dirTree && dirTree.selectedItems && (dirTree.selectedItems.length == 1) )
selectedAB = dirTree.selectedItems[0].getAttribute('id');
goNewCardDialog(selectedAB);
var selectedAB = 0;
if (dirTree && dirTree.selectedItems && (dirTree.selectedItems.length == 1))
selectedAB = dirTree.selectedItems[0].getAttribute("id");
goNewCardDialog(selectedAB);
}
function AbEditCard()
{
var rdf = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService();
rdf = rdf.QueryInterface(Components.interfaces.nsIRDFService);
var rdf = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService();
rdf = rdf.QueryInterface(Components.interfaces.nsIRDFService);
if ( resultsTree.selectedItems && resultsTree.selectedItems.length == 1 )
{
var uri = resultsTree.selectedItems[0].getAttribute('id');
var card = rdf.GetResource(uri);
card = card.QueryInterface(Components.interfaces.nsIAbCard);
if (card.isMailList)
{
var dirUri = dirTree.selectedItems[0].getAttribute('id');
listUri = dirUri + "/MailList" + card.dbRowID;
goEditListDialog(resultsTree.getAttribute('ref'), listUri);
}
else
{
goEditCardDialog(resultsTree.getAttribute('ref'), card, top.gUpdateCardView);
}
}
if (resultsTree.selectedItems && resultsTree.selectedItems.length == 1) {
var uri = resultsTree.selectedItems[0].getAttribute("id");
var card = rdf.GetResource(uri);
card = card.QueryInterface(Components.interfaces.nsIAbCard);
if (card.isMailList) {
var dirUri = dirTree.selectedItems[0].getAttribute("id");
listUri = dirUri + "/MailList" + card.dbRowID;
goEditListDialog(resultsTree.getAttribute("ref"), listUri);
}
else
goEditCardDialog(resultsTree.getAttribute("ref"), card, top.gUpdateCardView);
}
}
function AbNewMessage()
{
var msgComposeType = Components.interfaces.nsIMsgCompType;
var msgComposFormat = Components.interfaces.nsIMsgCompFormat;
var msgComposeService = Components.classes["@mozilla.org/messengercompose;1"].getService();
msgComposeService = msgComposeService.QueryInterface(Components.interfaces.nsIMsgComposeService);
var msgComposeType = Components.interfaces.nsIMsgCompType;
var msgComposFormat = Components.interfaces.nsIMsgCompFormat;
var msgComposeService = Components.classes["@mozilla.org/messengercompose;1"].getService();
msgComposeService = msgComposeService.QueryInterface(Components.interfaces.nsIMsgComposeService);
msgComposeService.OpenComposeWindowWithValues(null, msgComposeType.New, msgComposFormat.Default,
GetSelectedAddresses(), null, null,
null, null, null, null, null);
}
msgComposeService.OpenComposeWindowWithValues(null, msgComposeType.New, msgComposFormat.Default,
GetSelectedAddresses(), null, null,
null, null, null, null, null);
}
function GetSelectedAddresses()
{
var item, uri, rdf, cardResource, card;
var selectedAddresses = "";
rdf = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService();
rdf = rdf.QueryInterface(Components.interfaces.nsIRDFService);
var item, uri, rdf, cardResource, card;
var selectedAddresses = "";
rdf = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService();
rdf = rdf.QueryInterface(Components.interfaces.nsIRDFService);
if ( resultsTree.selectedItems && resultsTree.selectedItems.length )
{
for ( item = 0; item < resultsTree.selectedItems.length; item++ )
{
uri = resultsTree.selectedItems[item].getAttribute('id');
cardResource = rdf.GetResource(uri);
card = cardResource.QueryInterface(Components.interfaces.nsIAbCard);
if ( selectedAddresses )
selectedAddresses += ",";
selectedAddresses += "\"" + card.displayName + "\" <" + card.primaryEmail + ">";
}
}
return selectedAddresses;
if (resultsTree.selectedItems && resultsTree.selectedItems.length) {
for (item = 0; item < resultsTree.selectedItems.length; item++) {
uri = resultsTree.selectedItems[item].getAttribute("id");
cardResource = rdf.GetResource(uri);
card = cardResource.QueryInterface(Components.interfaces.nsIAbCard);
if (selectedAddresses)
selectedAddresses += ",";
selectedAddresses += "\"" + card.displayName + "\" <" + card.primaryEmail + ">";
}
}
return selectedAddresses;
}
function SelectFirstAddressBook()
{
var body = document.getElementById('dirTreeBody');
if ( dirTree && body )
{
var treeitems = body.getElementsByTagName('treeitem');
if ( treeitems && treeitems.length > 0 )
{
dirTree.selectItem(treeitems[0]);
ChangeDirectoryByDOMNode(treeitems[0]);
}
}
var body = document.getElementById("dirTreeBody");
if (dirTree && body) {
var treeitems = body.getElementsByTagName("treeitem");
if (treeitems && treeitems.length > 0) {
dirTree.selectItem(treeitems[0]);
ChangeDirectoryByDOMNode(treeitems[0]);
}
}
}
function SelectFirstCard()
{
var body = GetResultsTreeChildren();
if ( resultsTree && body )
{
var treeitems = body.getElementsByTagName('treeitem');
if ( treeitems && treeitems.length > 0 )
{
resultsTree.selectItem(treeitems[0]);
ResultsPaneSelectionChange();
}
}
var body = GetResultsTreeChildren();
if (resultsTree && body) {
var treeitems = body.getElementsByTagName("treeitem");
if (treeitems && treeitems.length > 0) {
resultsTree.selectItem(treeitems[0]);
ResultsPaneSelectionChange();
}
}
}
function DirPaneSelectionChange()
{
if ( dirTree && dirTree.selectedItems && (dirTree.selectedItems.length == 1) )
{
ChangeDirectoryByDOMNode(dirTree.selectedItems[0]);
}
else
{
if ( resultsTree )
{
ClearResultsTreeSelection();
resultsTree.setAttribute('ref', null);
}
}
if (dirTree && dirTree.selectedItems && (dirTree.selectedItems.length == 1))
ChangeDirectoryByDOMNode(dirTree.selectedItems[0]);
else {
if (resultsTree) {
ClearResultsTreeSelection();
resultsTree.setAttribute("ref", null);
}
}
function ChangeDirectoryByDOMNode(dirNode)
{
var uri = dirNode.getAttribute('id');
if ( resultsTree )
{
if ( uri != resultsTree.getAttribute('ref') )
{
ClearResultsTreeSelection();
resultsTree.setAttribute('ref', uri);
WaitUntilDocumentIsLoaded();
SortToPreviousSettings();
SelectFirstCard();
}
}
var uri = dirNode.getAttribute("id");
if (resultsTree) {
if (uri != resultsTree.getAttribute("ref")) {
ClearResultsTreeSelection();
resultsTree.setAttribute("ref", uri);
WaitUntilDocumentIsLoaded();
SortToPreviousSettings();
SelectFirstCard();
}
}
}
function ResultsPaneSelectionChange()
{
if ( top.gUpdateCardView )
top.gUpdateCardView();
if ( top.gDialogResultsPaneSelectionChanged )
top.gDialogResultsPaneSelectionChanged();
if ("gUpdateCardView" in top)
top.gUpdateCardView();
if ("gDialogResultsPaneSelectionChanged" in top)
top.gDialogResultsPaneSelectionChanged();
}
function ClearResultsTreeSelection()
{
if ( resultsTree )
resultsTree.clearItemSelection();
if (resultsTree)
resultsTree.clearItemSelection();
}
function RedrawResultsTree()
{
if ( resultsTree )
{
var ref = resultsTree.getAttribute('ref');
resultsTree.setAttribute('ref', ref);
}
if (resultsTree) {
var ref = resultsTree.getAttribute("ref");
resultsTree.setAttribute("ref", ref);
}
}
function RememberResultsTreeSelection()
{
var selectionArray = 0;
if ( resultsTree )
{
var selectedItems = resultsTree.selectedItems;
var numSelected = selectedItems.length;
var selectionArray = 0;
if (resultsTree) {
var selectedItems = resultsTree.selectedItems;
var numSelected = selectedItems.length;
selectionArray = new Array(numSelected);
selectionArray = new Array(numSelected);
for ( var i = 0; i < numSelected; i++ )
{
selectionArray[i] = selectedItems[i].getAttribute("id");
dump("selectionArray["+i+"] = " + selectionArray[i] + "\n");
}
}
return selectionArray;
for (var i = 0; i < numSelected; i++) {
selectionArray[i] = selectedItems[i].getAttribute("id");
dump("selectionArray["+i+"] = " + selectionArray[i] + "\n");
}
}
return selectionArray;
}
function RestoreResultsTreeSelection(selectionArray)
{
if ( resultsTree && selectionArray )
{
var numSelected = selectionArray.length;
if (resultsTree && selectionArray) {
var numSelected = selectionArray.length;
WaitUntilDocumentIsLoaded();
WaitUntilDocumentIsLoaded();
var rowElement;
for ( var i = 0 ; i < numSelected; i++ )
{
rowElement = document.getElementById(selectionArray[i]);
resultsTree.addItemToSelection(rowElement);
if ( rowElement && (i==0) )
resultsTree.ensureElementIsVisible(rowElement);
}
ResultsPaneSelectionChange();
}
var rowElement;
for (var i = 0 ; i < numSelected; i++) {
rowElement = document.getElementById(selectionArray[i]);
resultsTree.addItemToSelection(rowElement);
if (rowElement && (i==0))
resultsTree.ensureElementIsVisible(rowElement);
}
ResultsPaneSelectionChange();
}
}
function WaitUntilDocumentIsLoaded()
{
// FIX ME - we should really have this function available in a global place that does not
// require that we have access to mailnews code (msgNavigationService) from address book.
var msgNavigationService = Components.classes['@mozilla.org/messenger/msgviewnavigationservice;1'].getService();
msgNavigationService= msgNavigationService.QueryInterface(Components.interfaces.nsIMsgViewNavigationService);
msgNavigationService.EnsureDocumentIsLoaded(document);
// FIX ME - we should really have this function available in a global place that does not
// require that we have access to mailnews code (msgNavigationService) from address book.
var msgNavigationService = omponents.classes["@mozilla.org/messenger/msgviewnavigationservice;1"].getService();
msgNavigationService= msgNavigationService.QueryInterface(Components.interfaces.nsIMsgViewNavigationService);
msgNavigationService.EnsureDocumentIsLoaded(document);
}
function GetResultsTreeChildren()
{
if ( resultsTree && resultsTree.childNodes )
{
for ( var index = resultsTree.childNodes.length - 1; index >= 0; index-- )
{
if ( resultsTree.childNodes[index].localName == 'treechildren' )
{
return(resultsTree.childNodes[index]);
}
}
}
return null;
if (resultsTree && resultsTree.childNodes) {
for (var index = resultsTree.childNodes.length - 1; index >= 0; index--) {
if (resultsTree.childNodes[index].localName == "treechildren")
return(resultsTree.childNodes[index]);
}
}
return null;
}
function GetResultsTreeItem(row)
{
var treechildren = GetResultsTreeChildren();
if ( treechildren && row > 0)
{
var treeitems = treechildren.getElementsByTagName('treeitem');
if ( treeitems && treeitems.length >= row )
return treeitems[row-1];
}
return null;
var treechildren = GetResultsTreeChildren();
if (treechildren && row > 0) {
var treeitems = treechildren.getElementsByTagName("treeitem");
if (treeitems && treeitems.length >= row)
return treeitems[row-1];
}
return null;
}
function SortResultPane(column, sortKey)
{
var node = document.getElementById(column);
if (!node) return(false);
var node = document.getElementById(column);
if (!node)
return false;
var sortDirection = "ascending";
var currentDirection = node.getAttribute('sortDirection');
if ( currentDirection == "ascending" )
sortDirection = "descending";
else
sortDirection = "ascending";
UpdateSortIndicator(column, sortDirection);
var sortDirection = "ascending";
var currentDirection = node.getAttribute("sortDirection");
DoSort(column, sortKey, sortDirection);
SaveSortSetting(column, sortKey, sortDirection);
return(true);
if (currentDirection == "ascending")
sortDirection = "descending";
else
sortDirection = "ascending";
UpdateSortIndicator(column, sortDirection);
DoSort(column, sortKey, sortDirection);
SaveSortSetting(column, sortKey, sortDirection);
return true;
}
function DoSort(column, key, direction)
{
var isupports = Components.classes["@mozilla.org/rdf/xul-sort-service;1"].getService();
if (!isupports) return(false);
var xulSortService = isupports.QueryInterface(Components.interfaces.nsIXULSortService);
if (!xulSortService) return(false);
var isupports = Components.classes["@mozilla.org/rdf/xul-sort-service;1"].getService();
if (!isupports)
return false;
var xulSortService = isupports.QueryInterface(Components.interfaces.nsIXULSortService);
if (!xulSortService)
return false;
var node = document.getElementById(column);
if ( node )
{
var selectionArray = RememberResultsTreeSelection();
if (selectionArray.length)
{
xulSortService.Sort(node, key, direction);
ClearResultsTreeSelection() ;
WaitUntilDocumentIsLoaded();
RestoreResultsTreeSelection(selectionArray);
}
else
{
try {
xulSortService.Sort(node, key, direction);
WaitUntilDocumentIsLoaded();
}
catch (ex) {
dump("failed to do sort\n");
}
}
}
var node = document.getElementById(column);
if (node) {
var selectionArray = RememberResultsTreeSelection();
if (selectionArray.length) {
xulSortService.Sort(node, key, direction);
ClearResultsTreeSelection();
WaitUntilDocumentIsLoaded();
RestoreResultsTreeSelection(selectionArray);
}
else {
try {
xulSortService.Sort(node, key, direction);
WaitUntilDocumentIsLoaded();
}
catch(ex) {
dump("failed to do sort\n");
}
}
}
return true;
}
function SortToPreviousSettings()
{
if ( dirTree && resultsTree )
{
var ref = resultsTree.getAttribute('ref');
var folder = document.getElementById(ref);
if ( folder )
{
var column = folder.getAttribute('sortColumn');
var key = folder.getAttribute('sortKey');
var direction = folder.getAttribute('sortDirection');
if ( !column || !key )
{
column = "NameColumn";
key = 'http://home.netscape.com/NC-rdf#Name';
}
if ( !direction )
direction = 'ascending';
UpdateSortIndicator(column,direction);
DoSort(column, key, direction);
}
}
if (dirTree && resultsTree) {
var ref = resultsTree.getAttribute("ref");
var folder = document.getElementById(ref);
if (folder) {
var column = folder.getAttribute("sortColumn");
var key = folder.getAttribute("sortKey");
var direction = folder.getAttribute("sortDirection");
if (!column || !key) {
column = "NameColumn";
key = "http://home.netscape.com/NC-rdf#Name";
}
if (!direction)
direction = "ascending";
UpdateSortIndicator(column,direction);
DoSort(column, key, direction);
}
}
}
function SaveSortSetting(column, key, direction)
{
if ( dirTree && resultsTree )
{
var ref = resultsTree.getAttribute('ref');
var folder = document.getElementById(ref);
if ( folder )
{
folder.setAttribute('sortColumn', column);
folder.setAttribute('sortKey', key);
folder.setAttribute('sortDirection', direction);
}
}
if (dirTree && resultsTree) {
var ref = resultsTree.getAttribute("ref");
var folder = document.getElementById(ref);
if (folder) {
folder.setAttribute("sortColumn", column);
folder.setAttribute("sortKey", key);
folder.setAttribute("sortDirection", direction);
}
}
}
//------------------------------------------------------------
@ -510,54 +454,49 @@ function SaveSortSetting(column, key, direction)
//------------------------------------------------------------
function UpdateSortIndicator(column,sortDirection)
{
// Find the <treerow> element
var treerow = document.getElementById("headRow");
var id = column + "Header";
if (treerow)
{
// Grab all of the <treecell> elements
var treecell = treerow.getElementsByTagName("treecell");
if (treecell)
{
// Loop through each treecell...
var node_count = treecell.length;
for (var i=0; i < node_count; i++)
{
// Is this the requested column ?
if (id == treecell[i].getAttribute("id"))
{
// Set the sortDirection so the class (CSS) will add the
// appropriate icon to the header cell
treecell[i].setAttribute('sortDirection',sortDirection);
}
else
{
// This is not the sorted row
treecell[i].removeAttribute('sortDirection');
}
}
}
}
// Find the <treerow> element
var treerow = document.getElementById("headRow");
var id = column + "Header";
if (treerow) {
// Grab all of the <treecell> elements
var treecell = treerow.getElementsByTagName("treecell");
if (treecell) {
// Loop through each treecell...
var node_count = treecell.length;
for (var i=0; i < node_count; i++) {
// Is this the requested column ?
if (id == treecell[i].getAttribute("id")) {
// Set the sortDirection so the class (CSS) will add the
// appropriate icon to the header cell
treecell[i].setAttribute("sortDirection", sortDirection);
}
else {
// This is not the sorted row
treecell[i].removeAttribute("sortDirection");
}
}
}
}
}
function AbNewList()
{
var selectedAB = 0;
if ( dirTree && dirTree.selectedItems && (dirTree.selectedItems.length == 1) )
selectedAB = dirTree.selectedItems[0].getAttribute('id');
window.openDialog("chrome://messenger/content/addressbook/abMailListDialog.xul",
"",
"chrome,titlebar,resizeable=no",
{selectedAB:selectedAB});
var selectedAB = 0;
if (dirTree && dirTree.selectedItems && (dirTree.selectedItems.length == 1))
selectedAB = dirTree.selectedItems[0].getAttribute("id");
window.openDialog("chrome://messenger/content/addressbook/abMailListDialog.xul",
"",
"chrome,titlebar,resizeable=no",
{selectedAB:selectedAB});
}
function goEditListDialog(abURI, listURI)
{
window.openDialog("chrome://messenger/content/addressbook/abEditListDialog.xul",
"",
"chrome,titlebar,resizeable=no",
{abURI:abURI, listURI:listURI});
window.openDialog("chrome://messenger/content/addressbook/abEditListDialog.xul",
"",
"chrome,titlebar,resizeable=no",
{abURI:abURI, listURI:listURI});
}