summaryrefslogtreecommitdiffstats
path: root/js
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2016-04-25 10:52:34 +0200
committerThomas Müller <thomas.mueller@tmit.eu>2016-04-25 10:52:34 +0200
commit33cf707a904abc13a411dd18a770069e80242e46 (patch)
tree5bf0ba3d38cf346885d8a2a310671baf2e734948 /js
parentb28ef41c9e47d7c791b29bc8c185067eba359718 (diff)
Do not rely on the file type but simply try to parse the given file as vcard - fixes #385
Diffstat (limited to 'js')
-rw-r--r--js/services/contact_service.js31
1 files changed, 17 insertions, 14 deletions
diff --git a/js/services/contact_service.js b/js/services/contact_service.js
index 99aaffca..dec16385 100644
--- a/js/services/contact_service.js
+++ b/js/services/contact_service.js
@@ -113,21 +113,24 @@ angular.module('contactsApp')
this.import = function(data, type, addressBook, progressCallback) {
addressBook = addressBook || AddressBookService.getDefaultAddressBook();
- if(type === 'text/vcard') {
- var regexp = /BEGIN:VCARD[\s\S]*?END:VCARD/mgi;
- var singleVCards = data.match(regexp);
-
- var num = 1;
- for(var i in singleVCards) {
- var newContact = new Contact(addressBook, {addressData: singleVCards[i]});
- this.create(newContact, addressBook).then(function() {
- // Update the progress indicator
- if (progressCallback) progressCallback(num/singleVCards.length);
- num++;
- });
+ var regexp = /BEGIN:VCARD[\s\S]*?END:VCARD/mgi;
+ var singleVCards = data.match(regexp);
+
+ if (!singleVCards) {
+ OC.Notification.showTemporary(t('contacts', 'No contacts in file. Only VCard files are allowed.'));
+ if (progressCallback) {
+ progressCallback(1);
}
- } else {
- OC.Notification.showTemporary(t('contacts', 'Invalid file type.'));
+ return;
+ }
+ var num = 1;
+ for(var i in singleVCards) {
+ var newContact = new Contact(addressBook, {addressData: singleVCards[i]});
+ this.create(newContact, addressBook).then(function() {
+ // Update the progress indicator
+ if (progressCallback) progressCallback(num/singleVCards.length);
+ num++;
+ });
}
};