Added code to update the cardview pane with data from datasource

This commit is contained in:
hangas%netscape.com 1999-06-07 18:50:20 +00:00
Родитель 31ed6648ad
Коммит a6ebf372cc
3 изменённых файлов: 113 добавлений и 64 удалений

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

@ -1,15 +1,60 @@
var rdf;
var cvData;
function OnLoadAddressBook()
{
// This should be in an onload for the card view window, but that is not currently working
rdf = Components.classes["component://netscape/rdf/rdf-service"].getService();
rdf = rdf.QueryInterface(Components.interfaces.nsIRDFService);
var doc = frames["cardViewFrame"].document;
/* data for address book, prefixes: "cvb" = card view box
"cvh" = crad view header
"cv" = card view (normal fields) */
cvData = new Object;
/* Card View - Title */
cvData.CardTitle = doc.getElementById("CardTitle");
/* Name section */
cvData.cvhName = doc.getElementById("cvhName");
cvData.cvNickname = doc.getElementById("cvNickname");
cvData.cvEmail1 = doc.getElementById("cvEmail1");
cvData.cvEmail2 = doc.getElementById("cvEmail2");
/* Home section */
cvData.cvhHome = doc.getElementById("cvhHome");
cvData.cvHomeAddress = doc.getElementById("cvHomeAddress");
cvData.cvHomeCityStZip = doc.getElementById("cvHomeCityStZip");
/* Other section */
cvData.cvhOther = doc.getElementById("cvhOther");
cvData.cvNotes = doc.getElementById("cvNotes");
/* Phone section */
cvData.cvhPhone = doc.getElementById("cvhPhone");
cvData.cvPhWork = doc.getElementById("cvPhWork");
cvData.cvPhHome = doc.getElementById("cvPhHome");
cvData.cvPhFax = doc.getElementById("cvPhFax");
cvData.cvPhCellular = doc.getElementById("cvPhCellular");
cvData.cvPhPager = doc.getElementById("cvPhPager");
/* Work section */
cvData.cvhWork = doc.getElementById("cvhWork");
cvData.cvJobTitle = doc.getElementById("cvJobTitle");
cvData.cvOrganization = doc.getElementById("cvOrganization");
cvData.cvWorkAddress = doc.getElementById("cvWorkAddress");
cvData.cvWorkCityStZip = doc.getElementById("cvWorkCityStZip");
}
function ChangeDirectoryByDOMNode(dirNode) function ChangeDirectoryByDOMNode(dirNode)
{ {
var uri = dirNode.getAttribute('id'); var uri = dirNode.getAttribute('id');
dump(uri + "\n"); dump(uri + "\n");
ChangeDirectoryByURI(uri); ChangeDirectoryByURI(uri);
} }
function ChangeDirectoryByURI(uri) function ChangeDirectoryByURI(uri)
{ {
var tree = frames[0].frames[1].document.getElementById('resultTree'); var tree = frames[0].frames[1].document.getElementById('resultTree');
tree.childNodes[7].setAttribute('id', uri); tree.childNodes[7].setAttribute('id', uri);
} }
@ -48,66 +93,69 @@ function EditCardCancelButton()
dump("Cancel Hit\n"); dump("Cancel Hit\n");
} }
function DisplayCardViewPane(messageNode) function DisplayCardViewPane(abNode)
{ {
/* Setup vars - this should move to a global var */ var uri = abNode.getAttribute('id');
/* data for address book, prefixes: "cvb" = card view box var cardResource = parent.parent.rdf.GetResource(uri);
"cvh" = crad view header var card = cardResource.QueryInterface(Components.interfaces.nsIAbCard);
"cv" = card view (normal fields) */
var data = parent.parent.cvData;
var doc = parent.frames["cardViewFrame"].document; var visible;
var name = card.personName;
/* Card View - Title */
var CardTitle = doc.getElementById("CardTitle");
/* Name section */
var cvbName = doc.getElementById("cvbName");
var cvhName = doc.getElementById("cvhName");
var cvNickname = doc.getElementById("cvNickname");
var cvEmail1 = doc.getElementById("cvEmail1");
var cvEmail2 = doc.getElementById("cvEmail2");
/* Home section */
var cvbHome = doc.getElementById("cvbHome");
var cvHomeAddress = doc.getElementById("cvHomeAddress");
var cvHomeCityStZip = doc.getElementById("cvHomeCityStZip");
/* Other section */
var cvbOther = doc.getElementById("cvbOther");
var cvNotes = doc.getElementById("cvNotes");
/* Phone section */
var cvbPhone = doc.getElementById("cvbPhone");
var cvPhWork = doc.getElementById("cvPhWork");
var cvPhHome = doc.getElementById("cvPhHome");
var cvPhFax = doc.getElementById("cvPhFax");
var cvPhCellular = doc.getElementById("cvPhCellular");
var cvPhPager = doc.getElementById("cvPhPager");
/* Work section */
var cvbWork = doc.getElementById("cvbWork");
var cvJobTitle = doc.getElementById("cvJobTitle");
var cvOrganization = doc.getElementById("cvOrganization");
var cvWorkAddress = doc.getElementById("cvWorkAddress");
var cvWorkCityStZip = doc.getElementById("cvWorkCityStZip");
/* set fields in card view pane */ /* set fields in card view pane */
CardTitle.childNodes[0].nodeValue = "Card for Winnie the Pooh"; visible = cvSetNode(data.CardTitle, "Card for " + name);
// FIX ME!
// Code needs to be fixed to make the entire box visible or not. Current hack just hides
// the header of the section that should be visible.
/* Name section */ /* Name section */
cvhName.childNodes[0].nodeValue = "Winnie the Pooh"; cvSetNode(data.cvhName, name);
cvNickname.childNodes[0].nodeValue = "\"Pooh\""; cvSetNode(data.cvNickname, "\"" + card.nickname + "\"");
cvEmail1.childNodes[0].nodeValue = "wpooh@netscape.com"; cvSetNode(data.cvEmail1, card.email);
cvEmail2.childNodes[0].nodeValue = "poohbear@netscape.net"; cvSetNode(data.cvEmail2, "poohbear@netscape.net");
/* Home section */ /* Home section */
cvHomeAddress.childNodes[0].nodeValue = "123 Treehouse Lane"; visible = cvSetNode(data.cvHomeAddress, "123 Treehouse Lane");
cvHomeCityStZip.childNodes[0].nodeValue = "Hundred Acre Wood, CA 94087"; visible = cvSetNode(data.cvHomeCityStZip, "Hundred Acre Wood, CA 94087") && visible;
cvSetVisible(data.cvhHome, visible);
/* Other section */ /* Other section */
cvNotes.childNodes[0].nodeValue = "This data is fake. It is inserted into the DOM from JavaScript."; visible = cvSetNode(data.cvNotes, "This data is fake. It is inserted into the DOM from JavaScript.");
cvSetVisible(data.cvhOther, visible);
/* Phone section */ /* Phone section */
cvPhWork.childNodes[0].nodeValue = "Work: (650) 937-1234"; visible = cvSetNode(data.cvPhWork, "Work: " + card.workPhone);
cvPhHome.childNodes[0].nodeValue = "Home: (408) 732-1212"; visible = cvSetNode(data.cvPhHome, "Home: (408) 732-1212") && visible;
cvPhFax.childNodes[0].nodeValue = "Fax: (650) 937-3434"; visible = cvSetNode(data.cvPhFax, "Fax: (650) 937-3434") && visible;
cvPhCellular.childNodes[0].nodeValue = "Cellular: (408) 734-9090"; visible = cvSetNode(data.cvPhCellular, "Cellular: (408) 734-9090") && visible;
cvPhPager.childNodes[0].nodeValue = "Pager: (408) 732-6545"; visible = cvSetNode(data.cvPhPager, "Pager: (408) 732-6545") && visible;
cvSetVisible(data.cvhPhone, visible);
/* Work section */ /* Work section */
cvJobTitle.childNodes[0].nodeValue = "Interaction Designer"; visible = cvSetNode(data.cvJobTitle, "Interaction Designer");
cvOrganization.childNodes[0].nodeValue = "Netscape Communications Corp."; visible = cvSetNode(data.cvOrganization, card.organization) && visible;
cvWorkAddress.childNodes[0].nodeValue = "501 E Middlefield Road"; visible = cvSetNode(data.cvWorkAddress, "501 E Middlefield Road") && visible;
cvWorkCityStZip.childNodes[0].nodeValue = "Mountain View, CA 94043"; visible = cvSetNode(data.cvWorkCityStZip, card.city + ", CA 94043") && visible;
cvSetVisible(data.cvhWork, visible);
}
function cvSetNode(node, text)
{
node.childNodes[0].nodeValue = text;
if ( text == "" )
{
node.style.display = "none";
return false;
}
else
{
node.style.display = "block";
return true;
}
}
function cvSetVisible(node, visible)
{
if ( visible )
node.style.display = "block";
else
node.style.display = "none";
} }

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

@ -106,12 +106,10 @@
<window xmlns:html="http://www.w3.org/TR/REC-html40" <window xmlns:html="http://www.w3.org/TR/REC-html40"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
title="&addressbookWindow.title;" title="&addressbookWindow.title;"
style="width:100%;height:100%"> style="width:100%;height:100%"
onload="OnLoadAddressBook()">
<html:script src="chrome://messenger/content/widgetglue.js"/> <html:script language="JavaScript" src="chrome://addressbook/content/addressbook.js"/>
<html:script src="chrome://messenger/content/commandglue.js"/>
<html:script src="chrome://messenger/content/shareglue.js"/>
<html:script src="chrome://addressbook/content/addressbook.js"/>
<menubar> <menubar>
<menu name="&fileMenu.label;"> <menu name="&fileMenu.label;">

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

@ -27,11 +27,13 @@ div[class="CardViewHeading"] {
color: white; color: white;
background-color: #5050ff; background-color: #5050ff;
font-weight: bold; font-weight: bold;
display: none;
} }
div[class="CardViewText"] { div[class="CardViewText"] {
padding-left: 20px; padding-left: 20px;
padding-right: 2px; padding-right: 2px;
display: none;
} }
box[class="CardView"] { box[class="CardView"] {
@ -39,6 +41,7 @@ box[class="CardView"] {
padding-top: 12px; padding-top: 12px;
padding-bottom: 4px; padding-bottom: 4px;
border: none; border: none;
display: block;
} }
spring[class="CardViewHeadingSpace"] { spring[class="CardViewHeadingSpace"] {