diff options
Diffstat (limited to 'apps/contacts')
-rw-r--r-- | apps/contacts/ajax/contact/add.php | 6 | ||||
-rw-r--r-- | apps/contacts/ajax/contact/details.php | 6 | ||||
-rw-r--r-- | apps/contacts/ajax/contact/move.php | 30 | ||||
-rw-r--r-- | apps/contacts/appinfo/remote.php | 11 | ||||
-rw-r--r-- | apps/contacts/img/contact-new.png | bin | 658 -> 525 bytes | |||
-rw-r--r-- | apps/contacts/img/person.png | bin | 978 -> 852 bytes | |||
-rw-r--r-- | apps/contacts/img/person_large.png | bin | 7929 -> 6993 bytes | |||
-rw-r--r-- | apps/contacts/js/contacts.js | 30 | ||||
-rw-r--r-- | apps/contacts/l10n/ca.php | 1 | ||||
-rw-r--r-- | apps/contacts/l10n/cs_CZ.php | 50 | ||||
-rw-r--r-- | apps/contacts/l10n/de.php | 1 | ||||
-rw-r--r-- | apps/contacts/l10n/el.php | 7 | ||||
-rw-r--r-- | apps/contacts/l10n/eo.php | 13 | ||||
-rw-r--r-- | apps/contacts/l10n/fr.php | 1 | ||||
-rw-r--r-- | apps/contacts/l10n/it.php | 1 | ||||
-rw-r--r-- | apps/contacts/l10n/ja_JP.php | 41 | ||||
-rw-r--r-- | apps/contacts/l10n/sl.php | 51 | ||||
-rw-r--r-- | apps/contacts/l10n/sv.php | 3 | ||||
-rw-r--r-- | apps/contacts/l10n/th_TH.php | 51 | ||||
-rw-r--r-- | apps/contacts/lib/vcard.php | 29 | ||||
-rw-r--r-- | apps/contacts/templates/part.contact.php | 1 |
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 Binary files differindex 087ad9ab2d3..a91f2e620fa 100644 --- a/apps/contacts/img/contact-new.png +++ b/apps/contacts/img/contact-new.png diff --git a/apps/contacts/img/person.png b/apps/contacts/img/person.png Binary files differindex 17e79196540..e88bb5653af 100644 --- a/apps/contacts/img/person.png +++ b/apps/contacts/img/person.png diff --git a/apps/contacts/img/person_large.png b/apps/contacts/img/person_large.png Binary files differindex 4edba0c5489..8293df61829 100644 --- a/apps/contacts/img/person_large.png +++ b/apps/contacts/img/person_large.png 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"> |