You Are Here:

Community: Wiki

This page was last modified on 20 January 2009, at 06:51.

CS001243 - Removing contacts in WRT

From Forum Nokia Wiki



ID CS001243 Creation date December 18, 2008
Platform S60 5th Edition Tested on devices Nokia 5800 XpressMusic
Category Web Runtime (WRT) Subcategory PIM


Keywords (APIs, classes, methods, functions): device.getServiceObject(), Service.Contact.GetList(), Service.Contact.Delete()

Overview

This code snippet shows how to remove contacts from the phone book using the Contacts Platform Service for S60 Web Runtime introduced in S60 5th Edition.

To obtain access to the service object for the Contact Service API, the device.getServiceObject("Service.Contact", "IDataSource") method is used.

After setting the correct values for the criteria object (criteria.Type and criteria.Filter), the IDataSource.GetList(criteria) method is used to retrieve information.

Method IDataSource.Delete(criteria) is used to remove contacts.

Source: phonebookrem.html

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<script type="text/javascript" src="phonebookrem.js" />
<title></title>
</head>
<body onload="init()">
<!-- Table for displaying contacts info -->
<table id="maintable" cellspacing=1 cellpadding=1 border=1 cols=4>
<tr>
<th>D</th>
<th>Firstname</th>
<th>Lastname</th>
<th>Phone</th>
<th>Email</th>
</tr>
</table>
<input type="button" value="Remove selected" onclick="doRemove();" />
</body>
</html>

Source: phonebookrem.js

// contacts system service object
var phonebook;
// IDs of contacts to be removed
var ids = new Array();
// system error code
var NO_ITEMS_ERROR_CODE = 1012;
 
/**
* Setting default data on application load
*/

function init() {
// getting contacts system service object
try {
phonebook = device.getServiceObject("Service.Contact", "IDataSource");
} catch(err) {
alert( "No Contact service available" );
return;
}
 
// Refreshing info
doRefresh();
}
 
/**
* function refreshes information in table
*/

function doRefresh() {
// Criteria object for making a GetList call to receive
// contacts information
var criteria = new Object();
criteria.Type = 'Contact';
 
// making a call to service to receive a list of suitable items
try {
contacts = phonebook.IDataSource.GetList(criteria);
} catch(err) {
alert( "Error retrieving contacts information" );
return;
}
 
// receiving a handle to table to display info
var table = document.getElementById('maintable');
// cleaning table and adding header
while(table.rows[0] != undefined) {
table.deleteRow(0);
}
table.insertRow(0);
table.rows[0].innerHTML = "<th>D</th><th>Firstname</th>" +
"<th>Lastname</th><th>Phone</th><th>Email</th>";
 
// looking for error code returned by GetList
if(contacts.ErrorCode != 0) {
// If error code is not "no suitable items", show alert.
// Otherwise just leave the function.
if(contacts.ErrorCode != NO_ITEMS_ERROR_CODE) {
alert(contacts.ErrorMessage);
}
return;
} else {
// filling table with received data and adding checkboxes into the
// first columns
var i; // iterator
var item; // pointer to item in received list
for(i = 0;
(item = contacts.ReturnValue.getNext()) != undefined;
++i) {
table.insertRow(i + 1);
ids[i + 1] = item.id;
var result = "<td><input name=\"check" +
"\" type=\"checkbox\"></input></td><td>";
if(item.FirstName != undefined) {
result += item.FirstName.Value;
}
result += "</td><td>";
if(item.LastName != undefined) {
result += item.LastName.Value;
}
result += "</td><td>";
if(item.MobilePhoneGen != undefined) {
result += item.MobilePhoneGen.Value;
}
result += "</td><td>";
if(item.EmailGen != undefined) {
result += item.EmailGen.Value;
}
result += "</td>";
table.rows[i + 1].innerHTML = result;
}
}
}
 
/**
* function removes selected items from the contacts list
*/

function doRemove( ) {
// criteria object for deleting contacts
var criteria = new Object();
criteria.Type = 'Contact';
criteria.Data = new Object();
criteria.Data.IdList = new Array();
var action = false;
var table = document.getElementById('maintable');
var count = table.rows.length;
var iterator = 0;
// filling criteria IdList with item ids to delete (according to marked
// checkboxes)
for (var i = 1; i < count; i++) {
if (table.rows[i].cells[0].childNodes[0].checked == true) {
action = true;
criteria.Data.IdList[iterator++] = ids[i];
}
}
// if there are marked checkboxes delete items
if (action) {
try {
var result = phonebook.IDataSource.Delete(criteria);
} catch(err) {
alert( "Error removing data" );
return;
}
}
// update info in table
doRefresh();
}

Postconditions

  • The application shows a table with all contacts. Each row contains a checkbox.
  • Mark some of the checkboxes and select "Remove contacts" to remove the checked items from the phone book.

Supplementary material

You can view source file and executable application in the attached ZIP archive. The archive is available for download at Media:Removing_contacts_in_WRT.zip.

See also

Related Wiki Articles

No related wiki articles found

Rate This

 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditDiigoTechnocratiTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
京ICP备05048969号    Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia 
RDF Facets: qfnZuserE5FtagQSxjmbaoX