You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by he...@apache.org on 2014/01/09 21:10:39 UTC

[04/21] git commit: add/remove working

add/remove working


Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts/commit/f9da5ee3
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts/tree/f9da5ee3
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts/diff/f9da5ee3

Branch: refs/heads/master
Commit: f9da5ee37bcd94eb9bee5fb3699a2ead59aed0cd
Parents: fb78d22
Author: Piotr Zalewa <pi...@zalewa.info>
Authored: Fri Nov 15 13:44:21 2013 +0100
Committer: Piotr Zalewa <pi...@zalewa.info>
Committed: Fri Nov 15 13:44:21 2013 +0100

----------------------------------------------------------------------
 src/firefoxos/ContactsProxy.js | 55 +++++++++++++++++++++----------------
 1 file changed, 32 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts/blob/f9da5ee3/src/firefoxos/ContactsProxy.js
----------------------------------------------------------------------
diff --git a/src/firefoxos/ContactsProxy.js b/src/firefoxos/ContactsProxy.js
index c2ac0fd..bc5d871 100644
--- a/src/firefoxos/ContactsProxy.js
+++ b/src/firefoxos/ContactsProxy.js
@@ -25,20 +25,19 @@
 // http://cordova.apache.org/docs/en/2.5.0/cordova_contacts_contacts.md.html#Contact
 // FxOS contact definition:
 // https://developer.mozilla.org/en-US/docs/Web/API/mozContact
+
 function saveContacts(successCB, errorCB, contacts) {
-    // success and fail will be called every time a contact is saved
+    // success and/or fail will be called every time a contact is saved
+
     // a closure which is holding the object to be returned to sucessCB
     function makeSuccess(contact, moz) {
         return function(result) {
             // TODO modify contact so it will contain the link to moz
+            contact.id = moz.id;
             // call callback
             successCB(contact);
         }
     }
-    function error(e) {
-        console.log('BOO from moz');
-        errorCB(e);
-    }
         
     function exportContactFieldArray(contactFieldArray, key) {
         if (!key) {
@@ -73,11 +72,12 @@ function saveContacts(successCB, errorCB, contacts) {
     } 
     var i=0;
     var contact;
-
     while(contact = contacts[i++]){
-        var request;
         // prepare mozContact object
-        var translatedContact = {};
+        var moz = new mozContact();
+        if (contact.id) {
+            moz.id = contact.id;
+        }
         // building name
         var nameArray = [];
         var fields = ['honorificPrefix', 'familyName', 'givenName', 'middleName', 'nickname'];
@@ -86,32 +86,32 @@ function saveContacts(successCB, errorCB, contacts) {
                 nameArray.push(contact.name[field]);
             }
         }
-        translatedContact.name = nameArray.join(' ');
+        moz.name = nameArray.join(' ');
         // adding simple fields [contactField, eventualMozContactField]
         var simpleFields = [['honorificPrefix'], ['givenName'], ['familyName'], 
             ['honorificSuffix'], ['nickname'], ['birthday', 'bday'], ['note']];
         j = 0; while(field = simpleFields[j++]) {
           if (contact.name[field[0]]) {
-            translatedContact[field[1] || field[0]] = contact.name[field[0]];
+            moz[field[1] || field[0]] = contact.name[field[0]];
           }
         }
         if (contact.emails) {
-            translatedContact.email = exportContactFieldArray(contact.emails);
+            moz.email = exportContactFieldArray(contact.emails);
         }
         if (contact.categories) {
-            translatedContact.category = exportContactFieldArray(contact.categories);
+            moz.category = exportContactFieldArray(contact.categories);
         }
         if (contact.addresses) {
-            translatedContact.adr = exportAddress(contact.addresses);
+            moz.adr = exportAddress(contact.addresses);
         }
         if (contact.phoneNumbers) {
-            translatedContact.tel = exportContactFieldArray(contact.phoneNumbers);
+            moz.tel = exportContactFieldArray(contact.phoneNumbers);
         }
         if (contact.organizations) {
-            translatedContact.org = exportContactFieldArray(contact.organizations, 'name');
-            translatedContact.jobTitle = exportContactFieldArray(contact.organizations, 'title');
+            moz.org = exportContactFieldArray(contact.organizations, 'name');
+            moz.jobTitle = exportContactFieldArray(contact.organizations, 'title');
         }
-        /* 
+        /*  Find out how to translate these parameters
             // photo: Blob
             // url: Array with metadata (?)
             // impp: exportIM(contact.ims), TODO: find the moz impp definition
@@ -119,19 +119,28 @@ function saveContacts(successCB, errorCB, contacts) {
             // sex
             // genderIdentity
             // key
-        }
         */
-        // TODO: find a way to link existing mozContact and Contact by ID
-        var moz = new mozContact(translatedContact);
-        request = navigator.mozContacts.save(moz);
+        var request = navigator.mozContacts.save(moz);
         request.onsuccess = makeSuccess(contact, moz);
-        request.onerror = error;                
+        request.onerror = errorCB;                
     }
 }   
 
+function remove(successCB, errorCB, ids) {
+    var i=0;
+    var id;
+    while(id = ids[i++]){
+        var moz = new mozContact();
+        moz.id = id;
+        var request = navigator.mozContacts.remove(moz);
+        request.onsuccess = successCB;
+        request.onerror = errorCB;
+    }
+}
+
 module.exports = {
     save: saveContacts,
-    remove: function(){},
+    remove: remove,
     search: function(){},
 };