summaryrefslogtreecommitdiffstats
path: root/apps/contacts
diff options
context:
space:
mode:
Diffstat (limited to 'apps/contacts')
-rw-r--r--apps/contacts/ajax/contact/add.php6
-rw-r--r--apps/contacts/ajax/contact/details.php6
-rw-r--r--apps/contacts/ajax/contact/move.php30
-rw-r--r--apps/contacts/appinfo/remote.php11
-rw-r--r--apps/contacts/img/contact-new.pngbin658 -> 525 bytes
-rw-r--r--apps/contacts/img/person.pngbin978 -> 852 bytes
-rw-r--r--apps/contacts/img/person_large.pngbin7929 -> 6993 bytes
-rw-r--r--apps/contacts/js/contacts.js30
-rw-r--r--apps/contacts/l10n/ca.php1
-rw-r--r--apps/contacts/l10n/cs_CZ.php50
-rw-r--r--apps/contacts/l10n/de.php1
-rw-r--r--apps/contacts/l10n/el.php7
-rw-r--r--apps/contacts/l10n/eo.php13
-rw-r--r--apps/contacts/l10n/fr.php1
-rw-r--r--apps/contacts/l10n/it.php1
-rw-r--r--apps/contacts/l10n/ja_JP.php41
-rw-r--r--apps/contacts/l10n/sl.php51
-rw-r--r--apps/contacts/l10n/sv.php3
-rw-r--r--apps/contacts/l10n/th_TH.php51
-rw-r--r--apps/contacts/lib/vcard.php29
-rw-r--r--apps/contacts/templates/part.contact.php1
21 files changed, 267 insertions, 66 deletions
diff --git a/apps/contacts/ajax/contact/add.php b/apps/contacts/ajax/contact/add.php
index 043e947dc4b..c7cec7d9461 100644
--- a/apps/contacts/ajax/contact/add.php
+++ b/apps/contacts/ajax/contact/add.php
@@ -49,10 +49,14 @@ if(!$id) {
exit();
}
+$lastmodified = OC_Contacts_App::lastModified($vcard);
+if(!$lastmodified) {
+ $lastmodified = new DateTime();
+}
OCP\JSON::success(array(
'data' => array(
'id' => $id,
'aid' => $aid,
- 'lastmodified' => OC_Contacts_VCard::lastModified($vcard)->format('U')
+ 'lastmodified' => $lastmodified->format('U')
)
));
diff --git a/apps/contacts/ajax/contact/details.php b/apps/contacts/ajax/contact/details.php
index c22f18937d7..5bf337e645e 100644
--- a/apps/contacts/ajax/contact/details.php
+++ b/apps/contacts/ajax/contact/details.php
@@ -50,9 +50,13 @@ if(isset($details['PHOTO'])) {
} else {
$details['PHOTO'] = false;
}
+$lastmodified = OC_Contacts_App::lastModified($vcard);
+if(!$lastmodified) {
+ $lastmodified = new DateTime();
+}
$details['id'] = $id;
$details['displayname'] = $card['fullname'];
$details['addressbookid'] = $card['addressbookid'];
-$details['lastmodified'] = OC_Contacts_App::lastModified($vcard)->format('U');
+$details['lastmodified'] = $lastmodified->format('U');
OC_Contacts_App::setLastModifiedHeader($vcard);
OCP\JSON::success(array('data' => $details));
diff --git a/apps/contacts/ajax/contact/move.php b/apps/contacts/ajax/contact/move.php
index a3336c3cb6c..053343c47ed 100644
--- a/apps/contacts/ajax/contact/move.php
+++ b/apps/contacts/ajax/contact/move.php
@@ -7,35 +7,23 @@
* later.
* See the COPYING-README file.
*/
-
+
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('contacts');
OCP\JSON::callCheck();
-$ids = $_POST['ids'];
+$id = intval($_POST['id']);
$aid = intval($_POST['aid']);
+$isaddressbook = isset($_POST['isaddressbook']) ? true: false;
+
+// Ownership checking
OC_Contacts_App::getAddressbook($aid);
-
-if(!is_array($ids)) {
- $ids = array($ids,);
-}
-$goodids = array();
-foreach ($ids as $id){
- try {
- $card = OC_Contacts_App::getContactObject( intval($id) );
- if($card) {
- $goodids[] = $id;
- }
- } catch (Exception $e) {
- OCP\Util::writeLog('contacts', 'Error moving contact "'.$id.'" to addressbook "'.$aid.'"'.$e->getMessage(), OCP\Util::ERROR);
- }
-}
try {
- OC_Contacts_VCard::moveToAddressBook($aid, $ids);
+ OC_Contacts_VCard::moveToAddressBook($aid, $id, $isaddressbook);
} catch (Exception $e) {
$msg = $e->getMessage();
- OCP\Util::writeLog('contacts', 'Error moving contacts "'.implode(',', $ids).'" to addressbook "'.$aid.'"'.$msg, OCP\Util::ERROR);
+ OCP\Util::writeLog('contacts', 'Error moving contacts "'.implode(',', $id).'" to addressbook "'.$aid.'"'.$msg, OCP\Util::ERROR);
OC_JSON::error(array('data' => array('message' => $msg,)));
}
-
-OC_JSON::success(array('data' => array('ids' => $goodids,))); \ No newline at end of file
+
+OC_JSON::success(array('data' => array('ids' => $id,))); \ No newline at end of file
diff --git a/apps/contacts/appinfo/remote.php b/apps/contacts/appinfo/remote.php
index 9eee55583a4..6cb5b59525c 100644
--- a/apps/contacts/appinfo/remote.php
+++ b/apps/contacts/appinfo/remote.php
@@ -36,12 +36,15 @@ $principalBackend = new OC_Connector_Sabre_Principal();
$carddavBackend = new OC_Connector_Sabre_CardDAV();
// Root nodes
-$collection = new Sabre_CalDAV_Principal_Collection($principalBackend);
-$collection->disableListing = true; // Disable listening
+$Sabre_CalDAV_Principal_Collection = new Sabre_CalDAV_Principal_Collection($principalBackend);
+$Sabre_CalDAV_Principal_Collection->disableListing = true; // Disable listening
+
+$Sabre_CardDAV_AddressBookRoot = new Sabre_CardDAV_AddressBookRoot($principalBackend, $carddavBackend);
+$Sabre_CardDAV_AddressBookRoot->disableListing = true; // Disable listening
$nodes = array(
- $collection,
- new Sabre_CardDAV_AddressBookRoot($principalBackend, $carddavBackend),
+ $Sabre_CalDAV_Principal_Collection,
+ $Sabre_CardDAV_AddressBookRoot,
);
// Fire up server
diff --git a/apps/contacts/img/contact-new.png b/apps/contacts/img/contact-new.png
index 087ad9ab2d3..a91f2e620fa 100644
--- a/apps/contacts/img/contact-new.png
+++ b/apps/contacts/img/contact-new.png
Binary files differ
diff --git a/apps/contacts/img/person.png b/apps/contacts/img/person.png
index 17e79196540..e88bb5653af 100644
--- a/apps/contacts/img/person.png
+++ b/apps/contacts/img/person.png
Binary files differ
diff --git a/apps/contacts/img/person_large.png b/apps/contacts/img/person_large.png
index 4edba0c5489..8293df61829 100644
--- a/apps/contacts/img/person_large.png
+++ b/apps/contacts/img/person_large.png
Binary files differ
diff --git a/apps/contacts/js/contacts.js b/apps/contacts/js/contacts.js
index 35637de050d..f535dc03f3f 100644
--- a/apps/contacts/js/contacts.js
+++ b/apps/contacts/js/contacts.js
@@ -1437,8 +1437,12 @@ OC.Contacts={
if(dragitem.data('bookid') == droptarget.data('id')) {
return false;
}
- var droplist = (droptarget.is('ul'))?droptarget:droptarget.next();
- $.post(OC.filePath('contacts', 'ajax', 'contact/move.php'), { ids: dragitem.data('id'), aid: droptarget.data('id') },
+ var droplist = (droptarget.is('ul')) ? droptarget : droptarget.next();
+ $.post(OC.filePath('contacts', 'ajax', 'contact/move.php'),
+ {
+ id: dragitem.data('id'),
+ aid: droptarget.data('id')
+ },
function(jsondata){
if(jsondata.status == 'success'){
dragitem.attr('data-bookid', droptarget.data('id'))
@@ -1454,7 +1458,27 @@ OC.Contacts={
});
},
dropAddressbook:function(event, dragitem, droptarget) {
- alert('Dropping address books not implemented yet');
+ if(confirm(t('contacts', 'Do you want to merge these address books?'))) {
+ if(dragitem.data('bookid') == droptarget.data('id')) {
+ return false;
+ }
+ var droplist = (droptarget.is('ul')) ? droptarget : droptarget.next();
+ $.post(OC.filePath('contacts', 'ajax', 'contact/move.php'),
+ {
+ id: dragitem.data('id'),
+ aid: droptarget.data('id'),
+ isaddressbook: 1
+ },
+ function(jsondata){
+ if(jsondata.status == 'success'){
+ OC.Contacts.Contacts.update(); // Easier to refresh the whole bunch.
+ } else {
+ OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
+ }
+ });
+ } else {
+ return false;
+ }
},
/**
* @params params An object with the properties 'contactlist':a jquery object of the ul to insert into,
diff --git a/apps/contacts/l10n/ca.php b/apps/contacts/l10n/ca.php
index 72550522d5b..7abdc4114fd 100644
--- a/apps/contacts/l10n/ca.php
+++ b/apps/contacts/l10n/ca.php
@@ -62,6 +62,7 @@
"Error loading profile picture." => "Error en carregar la imatge de perfil.",
"Select type" => "Seleccioneu un tipus",
"Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted." => "Heu marcat eliminar alguns contactes, però encara no s'han eliminat. Espereu mentre s'esborren.",
+"Do you want to merge these address books?" => "Voleu fusionar aquestes llibretes d'adreces?",
"Result: " => "Resultat: ",
" imported, " => " importat, ",
" failed." => " fallada.",
diff --git a/apps/contacts/l10n/cs_CZ.php b/apps/contacts/l10n/cs_CZ.php
index 9b342328ac9..89f242d5c86 100644
--- a/apps/contacts/l10n/cs_CZ.php
+++ b/apps/contacts/l10n/cs_CZ.php
@@ -10,9 +10,11 @@
"No contacts found." => "Žádné kontakty nenalezeny.",
"There was an error adding the contact." => "Během přidávání kontaktu nastala chyba.",
"element name is not set." => "jméno elementu není nastaveno.",
+"Could not parse contact: " => "Nelze analyzovat kontakty",
"Cannot add empty property." => "Nelze přidat prazdný údaj.",
"At least one of the address fields has to be filled out." => "Musí být uveden nejméně jeden z adresních údajů",
"Trying to add duplicate property: " => "Pokoušíte se přidat duplicitní atribut: ",
+"Error adding contact property: " => "Chyba během přidávání vlastností kontaktu:",
"Information about vCard is incorrect. Please reload the page." => "Informace o vCard je nesprávná. Obnovte stránku, prosím.",
"Error deleting contact property." => "Chyba při odstraňování údaje kontaktu.",
"Missing ID" => "Chybí ID",
@@ -57,10 +59,14 @@
"Edit name" => "Upravit jméno",
"No files selected for upload." => "Žádné soubory nebyly vybrány k nahrání.",
"The file you are trying to upload exceed the maximum size for file uploads on this server." => "Soubor, který se pokoušíte odeslat, přesahuje maximální povolenou velikost.",
+"Error loading profile picture." => "Chyba při otevírání obrázku profilu",
"Select type" => "Vybrat typ",
+"Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted." => "Některé kontakty jsou označeny ke smazání. Počkete prosím na dokončení operace.",
"Result: " => "Výsledek: ",
" imported, " => "importováno v pořádku,",
" failed." => "neimportováno.",
+"Displayname cannot be empty." => "Zobrazované jméno nemůže zůstat prázdné.",
+"Addressbook not found: " => "Adresář nenalezen:",
"This is not your addressbook." => "Toto není Váš adresář.",
"Contact could not be found." => "Kontakt nebyl nalezen.",
"Address" => "Adresa",
@@ -78,12 +84,38 @@
"Pager" => "Pager",
"Internet" => "Internet",
"Birthday" => "Narozeniny",
+"Business" => "Pracovní",
+"Call" => "Volat",
+"Clients" => "Klienti",
+"Deliverer" => "Dodavatel",
+"Holidays" => "Prázdniny",
+"Ideas" => "Nápady",
+"Journey" => "Cestování",
+"Jubilee" => "Jubileum",
+"Meeting" => "Schůzka",
+"Other" => "Ostatní",
+"Personal" => "Osobní",
+"Projects" => "Projekty",
+"Questions" => "Dotazy",
"{name}'s Birthday" => "Narozeniny {name}",
"Contact" => "Kontakt",
"Add Contact" => "Přidat kontakt",
"Import" => "Import",
+"Settings" => "Nastavení",
"Addressbooks" => "Adresáře",
"Close" => "Zavřít",
+"Keyboard shortcuts" => "Klávesoví zkratky",
+"Navigation" => "Navigace",
+"Next contact in list" => "Následující kontakt v seznamu",
+"Previous contact in list" => "Předchozí kontakt v seznamu",
+"Expand/collapse current addressbook" => "Rozbalit/sbalit aktuální Adresář",
+"Next addressbook" => "Následující Adresář",
+"Previous addressbook" => "Předchozí Adresář",
+"Actions" => "Akce",
+"Refresh contacts list" => "Občerstvit seznam kontaktů",
+"Add new contact" => "Přidat kontakt",
+"Add new addressbook" => "Předat nový Adresář",
+"Delete current contact" => "Odstranit aktuální kontakt",
"Drop photo to upload" => "Přetáhněte sem fotku pro její nahrání",
"Delete current photo" => "Smazat současnou fotku",
"Edit current photo" => "Upravit současnou fotku",
@@ -94,6 +126,9 @@
"Delete" => "Odstranit",
"Nickname" => "Přezdívka",
"Enter nickname" => "Zadejte přezdívku",
+"Web site" => "Web",
+"http://www.somesite.com" => "http://www.somesite.com",
+"Go to web site" => "Přejít na web",
"dd-mm-yyyy" => "dd. mm. yyyy",
"Groups" => "Skupiny",
"Separate groups with commas" => "Oddělte skupiny čárkami",
@@ -117,10 +152,15 @@
"Edit address" => "Upravit adresu",
"Type" => "Typ",
"PO Box" => "PO box",
+"Street address" => "Ulice",
+"Street and number" => "Ulice a číslo",
"Extended" => "Rozšířené",
+"Apartment number etc." => "Byt číslo atd.",
"City" => "Město",
"Region" => "Kraj",
+"E.g. state or province" => "Např. stát nebo okres",
"Zipcode" => "PSČ",
+"Postal code" => "PSČ",
"Country" => "Země",
"Addressbook" => "Adresář",
"Hon. prefixes" => "Tituly před",
@@ -150,13 +190,21 @@
"You have no contacts in your addressbook." => "Nemáte žádné kontakty v adresáři.",
"Add contact" => "Přidat kontakt",
"Configure addressbooks" => "Nastavit adresář",
+"Select Address Books" => "Vybrat Adresář",
+"Enter name" => "Vložte jméno",
+"Enter description" => "Vložte popis",
"CardDAV syncing addresses" => "Adresa pro synchronizaci pomocí CardDAV:",
"more info" => "víc informací",
"Primary address (Kontact et al)" => "Hlavní adresa (Kontakt etc)",
"iOS/OS X" => "iOS/OS X",
+"Show CardDav link" => "Zobrazit odklaz CardDAV:",
+"Show read-only VCF link" => "Zobrazit odkaz VCF pouze pro čtení",
"Download" => "Stažení",
"Edit" => "Editovat",
"New Address Book" => "Nový adresář",
+"Name" => "Název",
+"Description" => "Popis",
"Save" => "Uložit",
-"Cancel" => "Storno"
+"Cancel" => "Storno",
+"More..." => "Více..."
);
diff --git a/apps/contacts/l10n/de.php b/apps/contacts/l10n/de.php
index a47b61d5075..2aeb106c48d 100644
--- a/apps/contacts/l10n/de.php
+++ b/apps/contacts/l10n/de.php
@@ -62,6 +62,7 @@
"Error loading profile picture." => "Fehler beim Laden des Profilbildes.",
"Select type" => "Wähle Typ",
"Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted." => "Einige zum Löschen markiert Kontakte wurden noch nicht gelöscht. Bitte warten.",
+"Do you want to merge these address books?" => "Möchtest du diese Adressbücher zusammenführen?",
"Result: " => "Ergebnis: ",
" imported, " => " importiert, ",
" failed." => " fehlgeschlagen.",
diff --git a/apps/contacts/l10n/el.php b/apps/contacts/l10n/el.php
index 2f31bccbf23..8e1b0e61e64 100644
--- a/apps/contacts/l10n/el.php
+++ b/apps/contacts/l10n/el.php
@@ -59,11 +59,14 @@
"Edit name" => "Αλλαγή ονόματος",
"No files selected for upload." => "Δεν επιλέχτηκαν αρχεία για μεταφόρτωση",
"The file you are trying to upload exceed the maximum size for file uploads on this server." => "Το αρχείο που προσπαθείτε να ανεβάσετε υπερβαίνει το μέγιστο μέγεθος για τις προσθήκες αρχείων σε αυτόν τον server.",
+"Error loading profile picture." => "Σφάλμα στην φόρτωση εικόνας προφίλ.",
"Select type" => "Επιλογή τύπου",
"Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted." => "Κάποιες επαφές σημειώθηκαν προς διαγραφή,δεν έχουν διαγραφεί ακόμα. Παρακαλώ περιμένετε μέχρι να διαγραφούν.",
"Result: " => "Αποτέλεσμα: ",
" imported, " => " εισάγεται,",
" failed." => " απέτυχε.",
+"Displayname cannot be empty." => "Το όνομα προβολής δεν μπορεί να είναι κενό. ",
+"Addressbook not found: " => "Το βιβλίο διευθύνσεων δεν βρέθηκε:",
"This is not your addressbook." => "Αυτό δεν είναι το βιβλίο διευθύνσεων σας.",
"Contact could not be found." => "Η επαφή δεν μπόρεσε να βρεθεί.",
"Address" => "Διεύθυνση",
@@ -106,6 +109,8 @@
"Next contact in list" => "Επόμενη επαφή στη λίστα",
"Previous contact in list" => "Προηγούμενη επαφή στη λίστα",
"Expand/collapse current addressbook" => "Ανάπτυξη/σύμπτυξη τρέχοντος βιβλίου διευθύνσεων",
+"Next addressbook" => "Επόμενο βιβλίο διευθύνσεων",
+"Previous addressbook" => "Προηγούμενο βιβλίο διευθύνσεων",
"Actions" => "Ενέργειες",
"Refresh contacts list" => "Ανανέωσε τη λίστα επαφών",
"Add new contact" => "Προσθήκη νέας επαφής",
@@ -192,6 +197,8 @@
"more info" => "περισσότερες πληροφορίες",
"Primary address (Kontact et al)" => "Κύρια διεύθυνση",
"iOS/OS X" => "iOS/OS X",
+"Show CardDav link" => "Εμφάνιση συνδέσμου CardDav",
+"Show read-only VCF link" => "Εμφάνιση συνδέσμου VCF μόνο για ανάγνωση",
"Download" => "Λήψη",
"Edit" => "Επεξεργασία",
"New Address Book" => "Νέο βιβλίο διευθύνσεων",
diff --git a/apps/contacts/l10n/eo.php b/apps/contacts/l10n/eo.php
index 33c0106d5a4..9787b6e010f 100644
--- a/apps/contacts/l10n/eo.php
+++ b/apps/contacts/l10n/eo.php
@@ -10,6 +10,7 @@
"No contacts found." => "Neniu kontakto troviĝis.",
"There was an error adding the contact." => "Eraro okazis dum aldono de kontakto.",
"element name is not set." => "eronomo ne agordiĝis.",
+"Could not parse contact: " => "Ne eblis analizi kontakton:",
"Cannot add empty property." => "Ne eblas aldoni malplenan propraĵon.",
"At least one of the address fields has to be filled out." => "Almenaŭ unu el la adreskampoj necesas pleniĝi.",
"Trying to add duplicate property: " => "Provante aldoni duobligitan propraĵon:",
@@ -53,6 +54,7 @@
"Couldn't get a valid address." => "Ne eblis ekhavi validan adreson.",
"Error" => "Eraro",
"This property has to be non-empty." => "Ĉi tiu propraĵo devas ne esti malplena.",
+"Couldn't serialize elements." => "Ne eblis seriigi erojn.",
"Edit name" => "Redakti nomon",
"No files selected for upload." => "Neniu dosiero elektita por alŝuto.",
"The file you are trying to upload exceed the maximum size for file uploads on this server." => "La dosiero, kiun vi provas alŝuti, transpasas la maksimuman grandon por dosieraj alŝutoj en ĉi tiu servilo.",
@@ -81,8 +83,11 @@
"Business" => "Negoco",
"Call" => "Voko",
"Clients" => "Klientoj",
+"Deliverer" => "Liveranto",
"Holidays" => "Ferioj",
"Ideas" => "Ideoj",
+"Journey" => "Vojaĝo",
+"Jubilee" => "Jubileo",
"Meeting" => "Kunveno",
"Other" => "Alia",
"Personal" => "Persona",
@@ -97,10 +102,10 @@
"Close" => "Fermi",
"Keyboard shortcuts" => "Fulmoklavoj",
"Navigation" => "Navigado",
-"Next contact in list" => "Sekva kontakto en la listo",
-"Previous contact in list" => "Malsekva kontakto en la listo",
-"Next addressbook" => "Sekva adresaro",
-"Previous addressbook" => "Malsekva adresaro",
+"Next contact in list" => "Jena kontakto en la listo",
+"Previous contact in list" => "Maljena kontakto en la listo",
+"Next addressbook" => "Jena adresaro",
+"Previous addressbook" => "Maljena adresaro",
"Actions" => "Agoj",
"Refresh contacts list" => "Refreŝigi la kontaktoliston",
"Add new contact" => "Aldoni novan kontakton",
diff --git a/apps/contacts/l10n/fr.php b/apps/contacts/l10n/fr.php
index 93299380d22..eba0fff150d 100644
--- a/apps/contacts/l10n/fr.php
+++ b/apps/contacts/l10n/fr.php
@@ -59,6 +59,7 @@
"Edit name" => "Éditer le nom",
"No files selected for upload." => "Aucun fichiers choisis pour être chargés",
"The file you are trying to upload exceed the maximum size for file uploads on this server." => "Le fichier que vous tenter de charger dépasse la taille maximum de fichier autorisé sur ce serveur.",
+"Error loading profile picture." => "Erreur pendant le chargement de la photo de profil.",
"Select type" => "Sélectionner un type",
"Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted." => "Certains contacts sont marqués pour être supprimés mais sont encore présents, veuillez attendre que l'opération se termine.",
"Result: " => "Résultat :",
diff --git a/apps/contacts/l10n/it.php b/apps/contacts/l10n/it.php
index e1af39fe91a..eb98780d472 100644
--- a/apps/contacts/l10n/it.php
+++ b/apps/contacts/l10n/it.php
@@ -62,6 +62,7 @@
"Error loading profile picture." => "Errore durante il caricamento dell'immagine di profilo.",
"Select type" => "Seleziona il tipo",
"Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted." => "Alcuni contatti sono marcati per l'eliminazione, ma non sono stati ancora rimossi. Attendi fino al completamento dell'operazione.",
+"Do you want to merge these address books?" => "Vuoi unire queste rubriche?",
"Result: " => "Risultato: ",
" imported, " => " importato, ",
" failed." => " non riuscito.",
diff --git a/apps/contacts/l10n/ja_JP.php b/apps/contacts/l10n/ja_JP.php
index 4f7800e1dbc..c3be215ce6e 100644
--- a/apps/contacts/l10n/ja_JP.php
+++ b/apps/contacts/l10n/ja_JP.php
@@ -1,12 +1,12 @@
<?php $TRANSLATIONS = array(
-"Error (de)activating addressbook." => "アドレスブックの有効/無効化に失敗しました。",
+"Error (de)activating addressbook." => "アドレス帳の有効/無効化に失敗しました。",
"id is not set." => "idが設定されていません。",
-"Cannot update addressbook with an empty name." => "空白の名前でアドレスブックを更新することはできません。",
-"Error updating addressbook." => "アドレスブックの更新に失敗しました。",
+"Cannot update addressbook with an empty name." => "空白の名前でアドレス帳を更新することはできません。",
+"Error updating addressbook." => "アドレス帳の更新に失敗しました。",
"No ID provided" => "IDが提供されていません",
"Error setting checksum." => "チェックサムの設定エラー。",
"No categories selected for deletion." => "削除するカテゴリが選択されていません。",
-"No address books found." => "アドレスブックが見つかりません。",
+"No address books found." => "アドレス帳が見つかりません。",
"No contacts found." => "連絡先が見つかりません。",
"There was an error adding the contact." => "連絡先の追加でエラーが発生しました。",
"element name is not set." => "要素名が設定されていません。",
@@ -59,12 +59,15 @@
"Edit name" => "名前を編集",
"No files selected for upload." => "アップロードするファイルが選択されていません。",
"The file you are trying to upload exceed the maximum size for file uploads on this server." => "アップロードしようとしているファイルは、このサーバの最大ファイルアップロードサイズを超えています。",
+"Error loading profile picture." => "プロファイルの画像の読み込みエラー",
"Select type" => "タイプを選択",
+"Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted." => "いくつかのコンタクトが削除とマークされていますが、まだ削除されていません。削除するまでお待ちください。",
+"Do you want to merge these address books?" => "これらのアドレス帳をマージしてもよろしいですか?",
"Result: " => "結果: ",
" imported, " => " をインポート、 ",
" failed." => " は失敗しました。",
"Displayname cannot be empty." => "表示名は空にできません。",
-"Addressbook not found: " => "連絡先が見つかりません:",
+"Addressbook not found: " => "アドレス帳が見つかりません:",
"This is not your addressbook." => "これはあなたの電話帳ではありません。",
"Contact could not be found." => "連絡先を見つける事ができません。",
"Address" => "住所",
@@ -100,25 +103,26 @@
"Add Contact" => "連絡先の追加",
"Import" => "インポート",
"Settings" => "設定",
-"Addressbooks" => "電話帳",
+"Addressbooks" => "アドレス帳",
"Close" => "閉じる",
"Keyboard shortcuts" => "キーボードショートカット",
"Navigation" => "ナビゲーション",
"Next contact in list" => "リスト内の次のコンタクト",
"Previous contact in list" => "リスト内の前のコンタクト",
-"Expand/collapse current addressbook" => "現在の連絡帳を展開する/折りたたむ",
-"Next addressbook" => "次の連絡先",
-"Previous addressbook" => "前の連絡先",
+"Expand/collapse current addressbook" => "現在のアドレス帳を展開する/折りたたむ",
+"Next addressbook" => "次のアドレス帳",
+"Previous addressbook" => "前のアドレス帳",
"Actions" => "アクション",
"Refresh contacts list" => "連絡先リストを再読込する",
"Add new contact" => "新しいコンタクトを追加",
-"Add new addressbook" => "新しいアドレスブックを追加",
+"Add new addressbook" => "新しいアドレス帳を追加",
"Delete current contact" => "現在のコンタクトを削除",
"Drop photo to upload" => "写真をドロップしてアップロード",
"Delete current photo" => "現在の写真を削除",
"Edit current photo" => "現在の写真を編集",
"Upload new photo" => "新しい写真をアップロード",
"Select photo from ownCloud" => "ownCloudから写真を選択",
+"Format custom, Short name, Full name, Reverse or Reverse with comma" => "編集フォーマット、ショートネーム、フルネーム、逆順、カンマ区切りの逆順",
"Edit name details" => "名前の詳細を編集",
"Delete" => "削除",
"Nickname" => "ニックネーム",
@@ -131,7 +135,7 @@
"Separate groups with commas" => "コンマでグループを分割",
"Edit groups" => "グループを編集",
"Preferred" => "推奨",
-"Please specify a valid email address." => "連絡先を追加",
+"Please specify a valid email address." => "有効なメールアドレスを指定してください。",
"Enter email address" => "メールアドレスを入力",
"Mail to address" => "アドレスへメールを送る",
"Delete email address" => "メールアドレスを削除",
@@ -159,7 +163,8 @@
"Zipcode" => "郵便番号",
"Postal code" => "郵便番号",
"Country" => "国名",
-"Addressbook" => "アドレスブック",
+"Addressbook" => "アドレス帳",
+"Hon. prefixes" => "敬称",
"Miss" => "Miss",
"Ms" => "Ms",
"Mr" => "Mr",
@@ -169,7 +174,7 @@
"Given name" => "名",
"Additional names" => "ミドルネーム",
"Family name" => "姓",
-"Hon. suffixes" => "ストレージへの連絡先のアップロードエラー。",
+"Hon. suffixes" => "称号",
"J.D." => "J.D.",
"M.D." => "M.D.",
"D.O." => "D.O.",
@@ -179,14 +184,14 @@
"Jr." => "Jr.",
"Sn." => "Sn.",
"Import a contacts file" => "コンタクトファイルをインポート",
-"Please choose the addressbook" => "アドレスブックを選択してください",
-"create a new addressbook" => "新しいアドレスブックを作成",
+"Please choose the addressbook" => "アドレス帳を選択してください",
+"create a new addressbook" => "新しいアドレス帳を作成",
"Name of new addressbook" => "新しいアドレスブックの名前",
"Importing contacts" => "コンタクトをインポート",
-"You have no contacts in your addressbook." => "アドレスブックに連絡先が登録されていません。",
+"You have no contacts in your addressbook." => "アドレス帳に連絡先が登録されていません。",
"Add contact" => "連絡先を追加",
"Configure addressbooks" => "アドレス帳を設定",
-"Select Address Books" => "連絡先を洗濯してください",
+"Select Address Books" => "アドレス帳を選択してください",
"Enter name" => "名前を入力",
"Enter description" => "説明を入力してください",
"CardDAV syncing addresses" => "CardDAV同期アドレス",
@@ -197,7 +202,7 @@
"Show read-only VCF link" => "読み取り専用のVCFリンクを表示",
"Download" => "ダウンロード",
"Edit" => "編集",
-"New Address Book" => "新規電話帳",
+"New Address Book" => "新規のアドレス帳",
"Name" => "名前",
"Description" => "説明",
"Save" => "保存",
diff --git a/apps/contacts/l10n/sl.php b/apps/contacts/l10n/sl.php
index 1dc0cef74b5..8746a839193 100644
--- a/apps/contacts/l10n/sl.php
+++ b/apps/contacts/l10n/sl.php
@@ -10,9 +10,11 @@
"No contacts found." => "Ni bilo najdenih stikov.",
"There was an error adding the contact." => "Med dodajanjem stika je prišlo do napake",
"element name is not set." => "ime elementa ni nastavljeno.",
+"Could not parse contact: " => "Ne morem razčleniti stika:",
"Cannot add empty property." => "Ne morem dodati prazne lastnosti.",
"At least one of the address fields has to be filled out." => "Vsaj eno izmed polj je še potrebno izpolniti.",
"Trying to add duplicate property: " => "Poskušam dodati podvojeno lastnost:",
+"Error adding contact property: " => "Napaka pri dodajanju lastnosti stiku:",
"Information about vCard is incorrect. Please reload the page." => "Informacije o vCard niso pravilne. Prosimo, če ponovno naložite stran.",
"Error deleting contact property." => "Napaka pri brisanju lastnosti stika.",
"Missing ID" => "Manjkajoč ID",
@@ -57,10 +59,15 @@
"Edit name" => "Uredi ime",
"No files selected for upload." => "Nobena datoteka ni bila izbrana za nalaganje.",
"The file you are trying to upload exceed the maximum size for file uploads on this server." => "Datoteka, ki jo poskušate naložiti, presega največjo dovoljeno velikost za nalaganje na tem strežniku.",
+"Error loading profile picture." => "Napaka pri nalaganju slike profila.",
"Select type" => "Izberite vrsto",
+"Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted." => "Nekateri stiki so označeni za izbris, vendar še niso izbrisani. Prosimo, če počakate na njihov izbris.",
+"Do you want to merge these address books?" => "Ali želite združiti adresarje?",
"Result: " => "Rezultati: ",
" imported, " => " uvoženih, ",
" failed." => " je spodletelo.",
+"Displayname cannot be empty." => "Ime za prikaz ne more biti prazno.",
+"Addressbook not found: " => "Adresar ni bil najden:",
"This is not your addressbook." => "To ni vaš imenik.",
"Contact could not be found." => "Stika ni bilo mogoče najti.",
"Address" => "Naslov",
@@ -78,12 +85,38 @@
"Pager" => "Pozivnik",
"Internet" => "Internet",
"Birthday" => "Rojstni dan",
+"Business" => "Poslovno",
+"Call" => "Klic",
+"Clients" => "Stranka",
+"Deliverer" => "Dostavljalec",
+"Holidays" => "Prazniki",
+"Ideas" => "Ideje",
+"Journey" => "Potovanje",
+"Jubilee" => "Jubilej",
+"Meeting" => "Sestanek",
+"Other" => "Drugo",
+"Personal" => "Osebno",
+"Projects" => "Projekti",
+"Questions" => "Vprašanja",
"{name}'s Birthday" => "{name} - rojstni dan",
"Contact" => "Stik",
"Add Contact" => "Dodaj stik",
"Import" => "Uvozi",
+"Settings" => "Nastavitve",
"Addressbooks" => "Imeniki",
"Close" => "Zapri",
+"Keyboard shortcuts" => "Bližnjice na tipkovnici",
+"Navigation" => "Krmarjenje",
+"Next contact in list" => "Naslednji stik na seznamu",
+"Previous contact in list" => "Predhodni stik na seznamu",
+"Expand/collapse current addressbook" => "Razširi/skrči trenutni adresar",
+"Next addressbook" => "Naslednji adresar",
+"Previous addressbook" => "Predhodni adresar",
+"Actions" => "Dejanja",
+"Refresh contacts list" => "Osveži seznam stikov",
+"Add new contact" => "Dodaj nov stik",
+"Add new addressbook" => "Dodaj nov adresar",
+"Delete current contact" => "Izbriši trenutni stik",
"Drop photo to upload" => "Spustite sliko tukaj, da bi jo naložili",
"Delete current photo" => "Izbriši trenutno sliko",
"Edit current photo" => "Uredi trenutno sliko",
@@ -94,6 +127,9 @@
"Delete" => "Izbriši",
"Nickname" => "Vzdevek",
"Enter nickname" => "Vnesite vzdevek",
+"Web site" => "Spletna stran",
+"http://www.somesite.com" => "http://www.nekastran.si",
+"Go to web site" => "Pojdi na spletno stran",
"dd-mm-yyyy" => "dd. mm. yyyy",
"Groups" => "Skupine",
"Separate groups with commas" => "Skupine ločite z vejicami",
@@ -117,10 +153,15 @@
"Edit address" => "Uredi naslov",
"Type" => "Vrsta",
"PO Box" => "Poštni predal",
+"Street address" => "Ulični naslov",
+"Street and number" => "Ulica in štelika",
"Extended" => "Razširjeno",
+"Apartment number etc." => "Številka stanovanja itd.",
"City" => "Mesto",
"Region" => "Regija",
+"E.g. state or province" => "Npr. dežela ali pokrajina",
"Zipcode" => "Poštna št.",
+"Postal code" => "Poštna številka",
"Country" => "Dežela",
"Addressbook" => "Imenik",
"Hon. prefixes" => "Predpone",
@@ -150,13 +191,21 @@
"You have no contacts in your addressbook." => "V vašem imeniku ni stikov.",
"Add contact" => "Dodaj stik",
"Configure addressbooks" => "Nastavi imenike",
+"Select Address Books" => "Izberite adresarje",
+"Enter name" => "Vnesite ime",
+"Enter description" => "Vnesite opis",
"CardDAV syncing addresses" => "CardDAV naslovi za sinhronizacijo",
"more info" => "več informacij",
"Primary address (Kontact et al)" => "Primarni naslov (za kontakt et al)",
"iOS/OS X" => "iOS/OS X",
+"Show CardDav link" => "Pokaži CardDav povezavo",
+"Show read-only VCF link" => "Pokaži VCF povezavo samo za branje",
"Download" => "Prenesi",
"Edit" => "Uredi",
"New Address Book" => "Nov imenik",
+"Name" => "Ime",
+"Description" => "Opis",
"Save" => "Shrani",
-"Cancel" => "Prekliči"
+"Cancel" => "Prekliči",
+"More..." => "Več..."
);
diff --git a/apps/contacts/l10n/sv.php b/apps/contacts/l10n/sv.php
index f470a338b6a..1fee6455945 100644
--- a/apps/contacts/l10n/sv.php
+++ b/apps/contacts/l10n/sv.php
@@ -13,6 +13,7 @@
"Could not parse contact: " => "Kunde inte läsa kontakt:",
"Cannot add empty property." => "Kan inte lägga till en tom egenskap.",
"At least one of the address fields has to be filled out." => "Minst ett fält måste fyllas i.",
+"Trying to add duplicate property: " => "Försöker lägga till dubblett:",
"Error adding contact property: " => "Kunde inte lägga till egenskap för kontakt:",
"Information about vCard is incorrect. Please reload the page." => "Information om vCard är felaktigt. Vänligen ladda om sidan.",
"Error deleting contact property." => "Fel uppstod när kontaktegenskap skulle tas bort.",
@@ -58,8 +59,10 @@
"Edit name" => "Ändra namn",
"No files selected for upload." => "Inga filer valda för uppladdning",
"The file you are trying to upload exceed the maximum size for file uploads on this server." => "Filen du försöker ladda upp är större än den maximala storleken för filuppladdning på denna server.",
+"Error loading profile picture." => "Fel vid hämtning av profilbild.",
"Select type" => "Välj typ",
"Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted." => "Vissa kontakter är markerade för radering, men är inte raderade än. Vänta tills dom är raderade.",
+"Do you want to merge these address books?" => "Vill du slå samman dessa adressböcker?",
"Result: " => "Resultat:",
" imported, " => "importerad,",
" failed." => "misslyckades.",
diff --git a/apps/contacts/l10n/th_TH.php b/apps/contacts/l10n/th_TH.php
index 553271d88f6..887d13bc383 100644
--- a/apps/contacts/l10n/th_TH.php
+++ b/apps/contacts/l10n/th_TH.php
@@ -10,9 +10,11 @@
"No contacts found." => "ไม่พบข้อมูลการติดต่อที่ต้องการ",
"There was an error adding the contact." => "เกิดข้อผิดพลาดในการเพิ่มรายชื่อผู้ติดต่อใหม่",
"element name is not set." => "ยังไม่ได้กำหนดชื่อ",
+"Could not parse contact: " => "ไม่สามารถแจกแจงรายชื่อผู้ติดต่อได้",
"Cannot add empty property." => "ไม่สามารถเพิ่มรายละเอียดที่ไม่มีข้อมูลได้",
"At least one of the address fields has to be filled out." => "อย่างน้อยที่สุดช่องข้อมูลที่อยู่จะต้องถูกกรอกลงไป",
"Trying to add duplicate property: " => "พยายามที่จะเพิ่มทรัพยากรที่ซ้ำซ้อนกัน: ",
+"Error adding contact property: " => "เกิดข้อผิดพลาดในการเพิ่มคุณสมบัติข้อมูลผู้ติดต่อ",
"Information about vCard is incorrect. Please reload the page." => "ข้อมูลเกี่ยวกับ vCard ไม่ถูกต้อง กรุณาโหลดหน้าเวปใหม่อีกครั้ง",
"Error deleting contact property." => "เกิดข้อผิดพลาดในการลบรายละเอียดการติดต่อ",
"Missing ID" => "รหัสสูญหาย",
@@ -57,10 +59,15 @@
"Edit name" => "แก้ไขชื่อ",
"No files selected for upload." => "ยังไม่ได้เลือกไฟล์ำสำหรับอัพโหลด",
"The file you are trying to upload exceed the maximum size for file uploads on this server." => "ไฟล์ที่คุณกำลังพยายามที่จะอัพโหลดมีขนาดเกินจำนวนสูงสุดที่สามารถอัพโหลดได้สำหรับเซิร์ฟเวอร์นี้",
+"Error loading profile picture." => "เกิดข้อผิดพลาดในการโหลดรูปภาพประจำตัว",
"Select type" => "เลือกชนิด",
+"Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted." => "ข้อมูลผู้ติดต่อบางรายการได้ถูกทำเครื่องหมายสำหรับลบทิ้งเอาไว้, แต่ยังไม่ได้ถูกลบทิ้ง, กรุณารอให้รายการดังกล่าวถูกลบทิ้งเสียก่อน",
+"Do you want to merge these address books?" => "คุณต้องการผสานข้อมูลสมุดบันทึกที่อยู่เหล่านี้หรือไม่?",
"Result: " => "ผลลัพธ์: ",
" imported, " => " นำเข้าข้อมูลแล้ว, ",
" failed." => " ล้มเหลว.",
+"Displayname cannot be empty." => "ชื่อที่ใช้แสดงไม่สามารถเว้นว่างได้",
+"Addressbook not found: " => "ไม่พบสมุดบันทึกที่อยู่ที่ต้องการ",
"This is not your addressbook." => "นี่ไม่ใช่สมุดบันทึกที่อยู่ของคุณ",
"Contact could not be found." => "ไม่พบข้อมูลการติดต่อ",
"Address" => "ที่อยู่",
@@ -78,12 +85,38 @@
"Pager" => "เพจเจอร์",
"Internet" => "อินเทอร์เน็ต",
"Birthday" => "วันเกิด",
+"Business" => "ธุรกิจ",
+"Call" => "โทร",
+"Clients" => "ลูกค้า",
+"Deliverer" => "ผู้จัดส่ง",
+"Holidays" => "วันหยุด",
+"Ideas" => "ไอเดีย",
+"Journey" => "การเดินทาง",
+"Jubilee" => "งานเฉลิมฉลอง",
+"Meeting" => "ประชุม",
+"Other" => "อื่นๆ",
+"Personal" => "ส่วนตัว",
+"Projects" => "โปรเจค",
+"Questions" => "คำถาม",
"{name}'s Birthday" => "วันเกิดของ {name}",
"Contact" => "ข้อมูลการติดต่อ",
"Add Contact" => "เพิ่มรายชื่อผู้ติดต่อใหม่",
"Import" => "นำเข้า",
+"Settings" => "ตั้งค่า",
"Addressbooks" => "สมุดบันทึกที่อยู่",
"Close" => "ปิด",
+"Keyboard shortcuts" => "ปุ่มลัด",
+"Navigation" => "ระบบเมนู",
+"Next contact in list" => "ข้อมูลผู้ติดต่อถัดไปในรายการ",
+"Previous contact in list" => "ข้อมูลผู้ติดต่อก่อนหน้าในรายการ",
+"Expand/collapse current addressbook" => "ขยาย/ย่อ สมุดบันทึกที่อยู่ปัจจุบัน",
+"Next addressbook" => "สมุดบันทึกที่อยู่ถัดไป",
+"Previous addressbook" => "สมุดบันทึกที่อยู่ก่อนหน้า",
+"Actions" => "การกระทำ",
+"Refresh contacts list" => "รีเฟรชรายชื่อผู้ติดต่อใหม่",
+"Add new contact" => "เพิ่มข้อมูลผู้ติดต่อใหม่",
+"Add new addressbook" => "เพิ่มสมุดบันทึกที่อยู่ใหม่",
+"Delete current contact" => "ลบข้อมูลผู้ติดต่อปัจจุบัน",
"Drop photo to upload" => "วางรูปภาพที่ต้องการอัพโหลด",
"Delete current photo" => "ลบรูปภาพปัจจุบัน",
"Edit current photo" => "แก้ไขรูปภาพปัจจุบัน",
@@ -94,6 +127,9 @@
"Delete" => "ลบ",
"Nickname" => "ชื่อเล่น",
"Enter nickname" => "กรอกชื่อเล่น",
+"Web site" => "เว็บไซต์",
+"http://www.somesite.com" => "http://www.somesite.com",
+"Go to web site" => "ไปที่เว็บไซต์",
"dd-mm-yyyy" => "dd-mm-yyyy",
"Groups" => "กลุ่ม",
"Separate groups with commas" => "คั่นระหว่างรายชื่อกลุ่มด้วยเครื่องหมายจุลภาีคหรือคอมม่า",
@@ -117,10 +153,15 @@
"Edit address" => "แก้ไขที่อยู่",
"Type" => "ประเภท",
"PO Box" => "ตู้ ปณ.",
+"Street address" => "ที่อยู่",
+"Street and number" => "ถนนและหมายเลข",
"Extended" => "เพิ่ม",
+"Apartment number etc." => "หมายเลขอพาร์ทเมนต์ ฯลฯ",
"City" => "เมือง",
"Region" => "ภูมิภาค",
+"E.g. state or province" => "เช่น รัฐ หรือ จังหวัด",
"Zipcode" => "รหัสไปรษณีย์",
+"Postal code" => "รหัสไปรษณีย์",
"Country" => "ประเทศ",
"Addressbook" => "สมุดบันทึกที่อยู่",
"Hon. prefixes" => "คำนำหน้าชื่อคนรัก",
@@ -150,13 +191,21 @@
"You have no contacts in your addressbook." => "คุณยังไม่มีข้อมูลการติดต่อใดๆในสมุดบันทึกที่อยู่ของคุณ",
"Add contact" => "เพิ่มชื่อผู้ติดต่อ",
"Configure addressbooks" => "กำหนดค่าสมุดบันทึกที่อยู่",
+"Select Address Books" => "เลือกสมุดบันทึกที่อยู่",
+"Enter name" => "กรอกชื่อ",
+"Enter description" => "กรอกคำอธิบาย",
"CardDAV syncing addresses" => "ที่อยู่ที่ใช้เชื่อมข้อมูลกับ CardDAV",
"more info" => "ข้อมูลเพิ่มเติม",
"Primary address (Kontact et al)" => "ที่อยู่หลัก (สำหรับติดต่อ)",
"iOS/OS X" => "iOS/OS X",
+"Show CardDav link" => "แสดงลิงก์ CardDav",
+"Show read-only VCF link" => "แสดงลิงก์ VCF สำหรับอ่านเท่านั้น",
"Download" => "ดาวน์โหลด",
"Edit" => "แก้ไข",
"New Address Book" => "สร้างสมุดบันทึกข้อมูลการติดต่อใหม่",
+"Name" => "ชื่อ",
+"Description" => "คำอธิบาย",
"Save" => "บันทึก",
-"Cancel" => "ยกเลิก"
+"Cancel" => "ยกเลิก",
+"More..." => "เพิ่มเติม..."
);
diff --git a/apps/contacts/lib/vcard.php b/apps/contacts/lib/vcard.php
index 7ae80cd5cb0..8c38f1ba15d 100644
--- a/apps/contacts/lib/vcard.php
+++ b/apps/contacts/lib/vcard.php
@@ -600,6 +600,9 @@ class OC_Contacts_VCard{
}
}
}
+ if(is_string($value)) {
+ $value = strtr($value, array('\,' => ',', '\;' => ';'));
+ }
$temp = array(
'name' => $property->name,
'value' => $value,
@@ -637,7 +640,8 @@ class OC_Contacts_VCard{
* @return boolean
*
*/
- public static function moveToAddressBook($aid, $id) {
+ public static function moveToAddressBook($aid, $id, $isAddressbook = false) {
+ OC_Contacts_App::getAddressbook($aid); // check for user ownership.
$addressbook = OC_Contacts_Addressbook::find($aid);
if ($addressbook['userid'] != OCP\User::getUser()) {
$sharedAddressbook = OCP\Share::getItemSharedWithBySource('addressbook', $aid);
@@ -673,19 +677,24 @@ class OC_Contacts_VCard{
return false;
}
} else {
- $card = self::find($id);
- if (!$card) {
- return false;
- }
- $oldAddressbook = OC_Contacts_Addressbook::find($card['addressbookid']);
- if ($oldAddressbook['userid'] != OCP\User::getUser()) {
- $sharedContact = OCP\Share::getItemSharedWithBySource('contact', $id, OCP\Share::FORMAT_NONE, null, true);
- if (!$sharedContact || !($sharedContact['permissions'] & OCP\Share::PERMISSION_DELETE)) {
+ $stmt = null;
+ if($isAddressbook) {
+ $stmt = OCP\DB::prepare( 'UPDATE *PREFIX*contacts_cards SET addressbookid = ? WHERE addressbookid = ?' );
+ } else {
+ $card = self::find($id);
+ if (!$card) {
return false;
}
+ $oldAddressbook = OC_Contacts_Addressbook::find($card['addressbookid']);
+ if ($oldAddressbook['userid'] != OCP\User::getUser()) {
+ $sharedContact = OCP\Share::getItemSharedWithBySource('contact', $id, OCP\Share::FORMAT_NONE, null, true);
+ if (!$sharedContact || !($sharedContact['permissions'] & OCP\Share::PERMISSION_DELETE)) {
+ return false;
+ }
+ }
+ $stmt = OCP\DB::prepare( 'UPDATE *PREFIX*contacts_cards SET addressbookid = ? WHERE id = ?' );
}
try {
- $stmt = OCP\DB::prepare( 'UPDATE *PREFIX*contacts_cards SET addressbookid = ? WHERE id = ?' );
$result = $stmt->execute(array($aid, $id));
} catch(Exception $e) {
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::DEBUG);
diff --git a/apps/contacts/templates/part.contact.php b/apps/contacts/templates/part.contact.php
index 3670ce0389b..4d465e418cf 100644
--- a/apps/contacts/templates/part.contact.php
+++ b/apps/contacts/templates/part.contact.php
@@ -22,7 +22,6 @@ $id = isset($_['id']) ? $_['id'] : '';
<li><a class="svg cloud" title="<?php echo $l->t('Select photo from ownCloud'); ?>"></a></li>
</ul>
</div>
- <img />
</div> <!-- contact_photo -->
<div id="contact_identity" class="contactsection">