1
0
mirror of https://github.com/owncloudarchive/contacts.git synced 2025-01-18 07:52:21 +01:00

Merge branch 'master' of https://github.com/owncloud/contacts into ldap

This commit is contained in:
babelouest 2014-04-01 09:17:38 -04:00
commit 536b5d5261
16 changed files with 228 additions and 158 deletions

View File

@ -1,5 +1,12 @@
ownCloud Contacts Changelog
6.0.3
- Some browsers showed the contact photo crop editor in upper-left corner.
- Added test for functional localStorage.
- Fixed CardDAV Extended MKCOL.
- The list item for an open contact disappeared if the user clicked on "New contact".
- Silenced annoying warning on address book sharing.
6.0.2
- Many improvements for groups both front- and back-end.
- Fix unusable app after import of contact with no name.

View File

@ -67,6 +67,17 @@ $this->create('contacts_address_book', 'addressbook/{backend}/{addressBookId}')
)
->requirements(array('backend', 'addressBookId'));
$this->create('contacts_address_book_contacts', 'addressbook/{backend}/{addressBookId}/contacts')
->get()
->action(
function($params) {
\OC::$session->close();
$dispatcher = new Dispatcher($params);
$dispatcher->dispatch('AddressBookController', 'getContacts');
}
)
->requirements(array('backend', 'addressBookId'));
$this->create('contacts_address_book_headers', 'addressbook/{backend}/{addressBookId}')
->method('HEAD')
->action(

View File

@ -1598,7 +1598,7 @@ OC.notify = function(params) {
if(!this.$cropBoxTmpl) {
this.$cropBoxTmpl = $('#cropBoxTemplate');
}
var $container = $('<div />').appendTo($('body'));
var $container = $('<div />').appendTo($('#content'));
var $dlg = this.$cropBoxTmpl.octemplate().prependTo($container);
$.when(this.storage.getTempContactPhoto(

View File

@ -1564,64 +1564,6 @@ OC.Contacts = OC.Contacts || {};
$('body').bind('click', bodyListener);
});
});
$elem.find('.value.city')
.autocomplete({
source: function( request, response ) {
$.ajax({
url: 'http://ws.geonames.org/searchJSON',
dataType: 'jsonp',
data: {
featureClass: 'P',
style: 'full',
maxRows: 12,
lang: $elem.data('lang'),
name_startsWith: request.term
},
success: function( data ) {
response( $.map( data.geonames, function( item ) {
return {
label: item.name + (item.adminName1 ? ', ' + item.adminName1 : '') + ', ' + item.countryName,
value: item.name,
country: item.countryName
};
}));
}
});
},
minLength: 2,
select: function( event, ui ) {
if(ui.item && $.trim($elem.find('.value.country').val()).length === 0) {
$elem.find('.value.country').val(ui.item.country);
}
}
});
$elem.find('.value.country')
.autocomplete({
source: function(request, response) {
$.ajax({
url: 'http://ws.geonames.org/searchJSON',
dataType: 'jsonp',
data: {
/*featureClass: "A",*/
featureCode: 'PCLI',
/*countryBias: "true",*/
/*style: "full",*/
lang: lang,
maxRows: 12,
name_startsWith: request.term
},
success: function( data ) {
response( $.map( data.geonames, function( item ) {
return {
label: item.name,
value: item.name
};
}));
}
});
},
minLength: 2
});
return $elem;
};
@ -2591,7 +2533,7 @@ OC.Contacts = OC.Contacts || {};
}
var self = this;
return $.when(self.storage.getAddressBook(backend, addressBookId, false))
return $.when(self.storage.getContacts(backend, addressBookId, false))
.then(function(response) {
console.log('ContactList.loadContacts - fetching', response);
if(!response.error) {

View File

@ -57,6 +57,26 @@ OC.Contacts = OC.Contacts || {};
this.user = user ? user : OC.currentUser;
};
/**
* Test if localStorage is working
*
* @return bool
*/
Storage.prototype.hasLocalStorage = function() {
if (Modernizr && !Modernizr.localStorage) {
return false;
}
// Some browsers report support but doesn't have it
// e.g. Safari in private browsing mode.
try {
OC.localStorage.setItem('Hello', 'World');
OC.localStorage.removeItem('Hello');
} catch (e) {
return false;
}
return true;
};
/**
* When the response isn't returned from requestRoute(), you can
* wrap it in a JSONResponse so that it's parsable by other objects.
@ -148,7 +168,7 @@ OC.Contacts = OC.Contacts || {};
Storage.prototype.deleteAddressBook = function(backend, addressBookId) {
var key = 'contacts::' + backend + '::' + addressBookId;
if(OC.localStorage.hasItem(key)) {
if(this.hasLocalStorage() && OC.localStorage.hasItem(key)) {
OC.localStorage.removeItem(key);
}
@ -204,6 +224,42 @@ OC.Contacts = OC.Contacts || {};
);
};
/**
* Get metadata from an address book from a specific backend
*
* @param string backend
* @param string addressBookId Address book ID
* @return
*
* metadata:
* {
* id:'1234'
* permissions:31,
* displayname:'Contacts',
* lastmodified: (unix timestamp),
* owner: 'joye'
* }
*/
Storage.prototype.getAddressBook = function(backend, addressBookId) {
var defer = $.Deferred();
$.when(this.requestRoute(
'addressbook/{backend}/{addressBookId}',
'GET',
{backend: backend, addressBookId: addressBookId},
''
))
.then(function(response) {
console.log('response', response);
defer.resolve(response);
})
.fail(function(response) {
console.warn('Request Failed:', response.message);
defer.reject(response);
});
return defer;
};
/**
* Get contacts from an address book from a specific backend
*
@ -223,18 +279,19 @@ OC.Contacts = OC.Contacts || {};
* data: //array of VCard data
* }
*/
Storage.prototype.getAddressBook = function(backend, addressBookId) {
var headers = {},
Storage.prototype.getContacts = function(backend, addressBookId) {
var self = this,
headers = {},
data,
key = 'contacts::' + backend + '::' + addressBookId,
defer = $.Deferred();
if(OC.localStorage.hasItem(key)) {
if(this.hasLocalStorage() && OC.localStorage.hasItem(key)) {
data = OC.localStorage.getItem(key);
headers['If-None-Match'] = data.Etag;
}
$.when(this.requestRoute(
'addressbook/{backend}/{addressBookId}',
'addressbook/{backend}/{addressBookId}/contacts',
'GET',
{backend: backend, addressBookId: addressBookId},
'',
@ -246,7 +303,9 @@ OC.Contacts = OC.Contacts || {};
console.log('Returning fetched address book');
if(response.data) {
response.data.Etag = response.getResponseHeader('Etag');
OC.localStorage.setItem(key, response.data);
if (!self.hasLocalStorage()) {
OC.localStorage.setItem(key, response.data);
}
defer.resolve(response);
}
} else if(response.statusCode === 304) {

View File

@ -1,6 +1,11 @@
<?php $TRANSLATIONS = array(
"Contacts" => "Επαφές",
"Save" => "Αποθήκευση",
"Starting file import" => "Έναρξη εισαγωγής αρχείου",
"Format selected: {format}" => "Επιλεγμένη μορφή: {format}",
"Automatic format detection" => "Αυτόματη ανίχνευση μορφής",
"Processing {count}/{total} cards" => "Επεξεργασία {count}/{total} καρτών",
"Total:{total}, Success:{imported}, Errors:{failed}" => "Σύνολο:{total}, Επιτυχείς:{imported}, Ανεπιτυχείς:{failed}",
"An address book called {name} already exists" => "Το βιβλίο διευθύνσεων με το όνομα {name} υπάρχει ήδη ",
"Failed adding address book: {error}" => "Αποτυχία πρόσθεσης βιβλίου διευθύνσεων: {error}",
"Failed loading address books: {error}" => "Αποτυχία φόρτωσης βιβλίων διευθύνσεων: {error}",
@ -17,6 +22,8 @@
"Merge failed. Error saving contact." => "Αποτυχία συγχώνευσης. Σφάλμα αποθήκευσης επαφής.",
"Select photo" => "Επέλεξε φωτογραφία",
"Network or server error. Please inform administrator." => "Σφάλμα δικτύου ή διακομιστή. Παρακαλώ ενημερώστε το διαχειριστή.",
"Only images can be used as contact photos" => "Μόνο αρχεία εικόνας μπορούν να χρησιμοποιηθούν σαν φωτογραφίες επαφών",
"The size of \"{filename}\" exceeds the maximum allowed {size}" => "Το μέγεθος του \"{filename}\" υπερβαίνει το μέγιστο επιτρεπόμενο {size}",
"Error adding to group." => "Σφάλμα κατά την προσθήκη σε ομάδα.",
"Error removing from group." => "Σφάλμα κατά την αφαίρεση από ομάδα.",
"You have selected over 300 contacts.\nThis will most likely fail! Click here to try anyway." => "Έχετε επιλέξει πάνω από 300 επαφές.\nΑυτό μάλλον θα αποτύχει! Κλικάρετε εδώ για να δοκιμάσετε ούτως ή άλλως.",
@ -31,6 +38,7 @@
"Error parsing date: {date}" => "Σφάλμα κατά την ανάλυση της ημερομηνίας: {date}",
"# groups" => "# ομάδων",
"Error parsing birthday {bday}" => "Σφάλμα κατά την ανάλυση των γενεθλίων {bday}",
"The backend does not support multi-byte characters." => "Το σύστημα δεν υποστηρίζει χαρακτήρες πολλών bytes",
"Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted." => "Κάποιες επαφές σημειώθηκαν προς διαγραφή αλλά δεν έχουν διαγραφεί ακόμα. Παρακαλώ περιμένετε μέχρι να διαγραφούν.",
"Click to undo deletion of {num} contacts" => "Επιλέξτε για να αναιρέσετε τη διαγραφή {num} επαφών",
"Cancelled deletion of {num} contacts" => "Αναιρέθηκε η διαγραφή {num} επαφών",
@ -67,6 +75,7 @@
"You do not have permissions to delete this contact" => "Δεν έχετε άδεια για τη διαγραφή αυτής της επαφής",
"The backend for this address book does not support deleting contacts" => "Το σύστημα για αυτό το βιβλίο διευθύνσεων δεν υποστηρίζει τη διαγραφή επαφών",
"Unknown error" => "Άγνωστο σφάλμα",
"Access denied" => "Δεν επιτρέπεται η πρόσβαση",
"The backend for this address book does not support updating" => "Το σύστημα για αυτό το βιβλίο διευθύνσεων δεν υποστηρίζει ενημέρωση ",
"You don't have permissions to delete the address book." => "Δεν έχετε άδεια να διαγράψετε το βιβλίο διευθύνσεων.",
"Address book not found" => "Δε βρέθηκε βιβλίο διευθύνσεων",
@ -79,13 +88,16 @@
"Unknown IM: " => "Άγνωστο AM:",
"{name}'s Birthday" => "Τα γενέθλια του/της {name}",
"Error creating address book" => "Σφάλμα κατά την δημιουργία βιβλίου διευθύνσεων ",
"The \"%s\" backend does not support deleting address books" => "Το σύστημα \"%s\" δεν υποστηρίζει την διαγραφή βιβλίων διευθύνσεων",
"You do not have permissions to delete the \"%s\" address book" => "Δεν έχετε άδεια να διαγράψετε το βιβλίο διευθύνσεων \"%s\"",
"Error deleting address book" => "Σφάλμα κατά την διαγραφή βιβλίου διεευθύνσεων ",
"Error creating contact." => "Σφάλμα δημιουργίας επαφής.",
"Error creating contact" => "Σφάλμα δημιουργίας επαφής",
"Error deleting contact" => "Σφάλμα διαγραφής επαφής",
"Error retrieving contact" => "Σφάλμα κατά την ανάκτηση της επαφής",
"Error saving contact" => "Σφάλμα αποθήκευσης επαφής",
"Error removing contact from other address book." => "Σφάλμα διαγραφής επαφής από άλλο βιβλίο διευθύνσεων.",
"Error getting moved contact" => "Σφάλμα κατά την λήψη μετακινημένης επαφής",
"Couldn't find contact." => "Αδυναμία εύρεσης επαφής.",
"No contact data in request." => "Δεν υπάρχουν δεδομένα επαφής στο αίτημα.",
"Error merging into contact." => "Σφάλμα κατά τη συγχώνευση με επαφή. ",
@ -97,6 +109,7 @@
"Error saving contact to backend" => "Σφάλμα κατά την αποθήκευση επαφής στο σύστημα",
"Error getting user photo" => "Σφάλμα κατά την λήψη φωτογραφίας χρήστη",
"No photo path was submitted." => "Δεν δόθηκε διαδρομή εικόνας",
"Error loading image from cache" => "Σφάλμα κατά την φόρτωση της εικόνας από την προσωρινή αποθήκευση",
"Error getting PHOTO property." => "Σφάλμα κατά τη λήψη ιδιοτήτων ΦΩΤΟΓΡΑΦΙΑΣ.",
"Error saving contact." => "Σφάλμα κατά την αποθήκευση επαφής.",
"No group name given." => "Δεν δόθηκε όνομα ομάδας.",
@ -160,6 +173,7 @@
"Address books" => "Βιβλία Διευθύνσεων",
"Display name" => "Προβαλλόμενο όνομα",
"Add Address Book" => "Προσθήκη Βιβλίου Διευθύνσεων",
"Automatic format" => "Αυτόματη μορφοποίηση",
"Select file..." => "Επιλογή αρχείου...",
"(De-)select all" => "(Απο-)επιλογή όλων",
"Sort order" => "Σειρά ταξινόμησης",

View File

@ -21,6 +21,7 @@
# Nisok Kosin <nikos.efthimiou@gmail.com>, 2012
# Petros Kyladitis <petros.kyladitis@gmail.com>, 2011-2012
# Serenata <pamponiros@yahoo.com>, 2013
# pe_ppe <peppe@cs.uoi.gr>, 2014
# Teogramm <theodorewii121@hotmail.com>, 2013
# xneo1 <vagelis@cyberdest.com>, 2013
# xneo1 <vagelis@cyberdest.com>, 2012
@ -33,9 +34,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-26 05:41-0400\n"
"PO-Revision-Date: 2014-03-26 06:00+0000\n"
"Last-Translator: I Robot\n"
"POT-Creation-Date: 2014-04-01 00:49-0400\n"
"PO-Revision-Date: 2014-03-31 16:21+0000\n"
"Last-Translator: pe_ppe <peppe@cs.uoi.gr>\n"
"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -53,23 +54,23 @@ msgstr "Αποθήκευση"
#: js/addressbooks.js:306
msgid "Starting file import"
msgstr ""
msgstr "Έναρξη εισαγωγής αρχείου"
#: js/addressbooks.js:310 js/addressbooks.js:338
msgid "Format selected: {format}"
msgstr ""
msgstr "Επιλεγμένη μορφή: {format}"
#: js/addressbooks.js:313 js/addressbooks.js:341
msgid "Automatic format detection"
msgstr ""
msgstr "Αυτόματη ανίχνευση μορφής"
#: js/addressbooks.js:391
msgid "Processing {count}/{total} cards"
msgstr ""
msgstr "Επεξεργασία {count}/{total} καρτών"
#: js/addressbooks.js:415
msgid "Total:{total}, Success:{imported}, Errors:{failed}"
msgstr ""
msgstr "Σύνολο:{total}, Επιτυχείς:{imported}, Ανεπιτυχείς:{failed}"
#: js/addressbooks.js:569
msgid "An address book called {name} already exists"
@ -137,11 +138,11 @@ msgstr "Σφάλμα δικτύου ή διακομιστή. Παρακαλώ ε
#: js/app.js:789
msgid "Only images can be used as contact photos"
msgstr ""
msgstr "Μόνο αρχεία εικόνας μπορούν να χρησιμοποιηθούν σαν φωτογραφίες επαφών"
#: js/app.js:798
msgid "The size of \"{filename}\" exceeds the maximum allowed {size}"
msgstr ""
msgstr "Το μέγεθος του \"{filename}\" υπερβαίνει το μέγιστο επιτρεπόμενο {size}"
#: js/app.js:967
msgid "Error adding to group."
@ -204,19 +205,19 @@ msgstr "Σφάλμα κατά την ανάλυση των γενεθλίων {b
#: js/contacts.js:1315
msgid "The backend does not support multi-byte characters."
msgstr ""
msgstr "Το σύστημα δεν υποστηρίζει χαρακτήρες πολλών bytes"
#: js/contacts.js:2270
#: js/contacts.js:2212
msgid ""
"Some contacts are marked for deletion, but not deleted yet. Please wait for "
"them to be deleted."
msgstr "Κάποιες επαφές σημειώθηκαν προς διαγραφή αλλά δεν έχουν διαγραφεί ακόμα. Παρακαλώ περιμένετε μέχρι να διαγραφούν."
#: js/contacts.js:2281
#: js/contacts.js:2223
msgid "Click to undo deletion of {num} contacts"
msgstr "Επιλέξτε για να αναιρέσετε τη διαγραφή {num} επαφών"
#: js/contacts.js:2290
#: js/contacts.js:2232
msgid "Cancelled deletion of {num} contacts"
msgstr "Αναιρέθηκε η διαγραφή {num} επαφών"
@ -319,7 +320,7 @@ msgstr "Κλείσιμο"
msgid "Server error! Please inform system administator"
msgstr "Σφάλμα διακομιστή! Παρακαλώ ενημερώστε το διαχειριστή"
#: js/storage.js:346 js/storage.js:385
#: js/storage.js:405 js/storage.js:444
msgid "Failed loading photo: {error}"
msgstr "Αποτυχία φόρτωσης φωτογραφίας: {error}"
@ -357,7 +358,7 @@ msgstr "Άγνωστο σφάλμα"
#: lib/addressbook.php:410
msgid "Access denied"
msgstr ""
msgstr "Δεν επιτρέπεται η πρόσβαση"
#: lib/addressbook.php:417
msgid "The backend for this address book does not support updating"
@ -403,51 +404,51 @@ msgstr "Άγνωστο AM:"
msgid "{name}'s Birthday"
msgstr "Τα γενέθλια του/της {name}"
#: lib/controller/addressbookcontroller.php:141
#: lib/controller/addressbookcontroller.php:163
msgid "Error creating address book"
msgstr "Σφάλμα κατά την δημιουργία βιβλίου διευθύνσεων "
#: lib/controller/addressbookcontroller.php:173
#: lib/controller/addressbookcontroller.php:195
#, php-format
msgid "The \"%s\" backend does not support deleting address books"
msgstr ""
msgstr "Το σύστημα \"%s\" δεν υποστηρίζει την διαγραφή βιβλίων διευθύνσεων"
#: lib/controller/addressbookcontroller.php:181
#: lib/controller/addressbookcontroller.php:203
#, php-format
msgid "You do not have permissions to delete the \"%s\" address book"
msgstr "Δεν έχετε άδεια να διαγράψετε το βιβλίο διευθύνσεων \"%s\""
#: lib/controller/addressbookcontroller.php:188
#: lib/controller/addressbookcontroller.php:210
msgid "Error deleting address book"
msgstr "Σφάλμα κατά την διαγραφή βιβλίου διεευθύνσεων "
#: lib/controller/addressbookcontroller.php:228
#: lib/controller/addressbookcontroller.php:250
msgid "Error creating contact."
msgstr "Σφάλμα δημιουργίας επαφής."
#: lib/controller/addressbookcontroller.php:237
#: lib/controller/addressbookcontroller.php:259
msgid "Error creating contact"
msgstr "Σφάλμα δημιουργίας επαφής"
#: lib/controller/addressbookcontroller.php:269
#: lib/controller/addressbookcontroller.php:291
msgid "Error deleting contact"
msgstr "Σφάλμα διαγραφής επαφής"
#: lib/controller/addressbookcontroller.php:309
#: lib/controller/addressbookcontroller.php:331
msgid "Error retrieving contact"
msgstr ""
msgstr "Σφάλμα κατά την ανάκτηση της επαφής"
#: lib/controller/addressbookcontroller.php:320
#: lib/controller/addressbookcontroller.php:342
msgid "Error saving contact"
msgstr "Σφάλμα αποθήκευσης επαφής"
#: lib/controller/addressbookcontroller.php:326
#: lib/controller/addressbookcontroller.php:348
msgid "Error removing contact from other address book."
msgstr "Σφάλμα διαγραφής επαφής από άλλο βιβλίο διευθύνσεων."
#: lib/controller/addressbookcontroller.php:333
#: lib/controller/addressbookcontroller.php:355
msgid "Error getting moved contact"
msgstr ""
msgstr "Σφάλμα κατά την λήψη μετακινημένης επαφής"
#: lib/controller/contactcontroller.php:37
#: lib/controller/contactcontroller.php:63
@ -498,7 +499,7 @@ msgstr "Δεν δόθηκε διαδρομή εικόνας"
#: lib/controller/contactphotocontroller.php:193
msgid "Error loading image from cache"
msgstr ""
msgstr "Σφάλμα κατά την φόρτωση της εικόνας από την προσωρινή αποθήκευση"
#: lib/controller/contactphotocontroller.php:203
msgid "Error getting PHOTO property."
@ -768,7 +769,7 @@ msgstr "Προσθήκη Βιβλίου Διευθύνσεων"
#: templates/contacts.php:35
msgid "Automatic format"
msgstr ""
msgstr "Αυτόματη μορφοποίηση"
#: templates/contacts.php:44 templates/contacts.php:45
msgid "Select file..."

View File

@ -4,8 +4,8 @@
"Starting file import" => "Inizio importazione file",
"Format selected: {format}" => "Formato selezionato: {format}",
"Automatic format detection" => "Rilevamento automatico del formato",
"Processing {count}/{total} cards" => "Elaborazione di {count}/{total} scheda/e",
"Total:{total}, Success:{imported}, Errors:{failed}" => "Totale:{total}, Riusciti:{imported}, Errori:{failed}",
"Processing {count}/{total} cards" => "Elaborazione di {count}/{total} schede",
"Total:{total}, Success:{imported}, Errors:{failed}" => "Totale:{total}, riusciti:{imported}, errori:{failed}",
"An address book called {name} already exists" => "Una rubrica con nome {name} esiste già",
"Failed adding address book: {error}" => "Aggiunta della rubrica non riuscita: {error}",
"Failed loading address books: {error}" => "Caricamento rubriche non riuscito: {error}",

View File

@ -17,9 +17,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-26 05:41-0400\n"
"PO-Revision-Date: 2014-03-26 06:00+0000\n"
"Last-Translator: Paolo Velati <paolo.velati@gmail.com>\n"
"POT-Creation-Date: 2014-03-30 00:49-0400\n"
"PO-Revision-Date: 2014-03-29 08:40+0000\n"
"Last-Translator: Vincenzo Reale <vinx.reale@gmail.com>\n"
"Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -49,11 +49,11 @@ msgstr "Rilevamento automatico del formato"
#: js/addressbooks.js:391
msgid "Processing {count}/{total} cards"
msgstr "Elaborazione di {count}/{total} scheda/e"
msgstr "Elaborazione di {count}/{total} schede"
#: js/addressbooks.js:415
msgid "Total:{total}, Success:{imported}, Errors:{failed}"
msgstr "Totale:{total}, Riusciti:{imported}, Errori:{failed}"
msgstr "Totale:{total}, riusciti:{imported}, errori:{failed}"
#: js/addressbooks.js:569
msgid "An address book called {name} already exists"

View File

@ -1,6 +1,7 @@
<?php $TRANSLATIONS = array(
"Contacts" => "Kontakty",
"Save" => "Uložiť",
"Starting file import" => "Spusteni importu súboru",
"An address book called {name} already exists" => "Adresár s názvom {name} už existuje",
"Failed adding address book: {error}" => "Pridanie adresára zlyhalo: {error}",
"Failed loading address books: {error}" => "Načítanie adresára zlyhalo: {error}",
@ -67,6 +68,7 @@
"You do not have permissions to delete this contact" => "Nemáte oprávnenie na vymazanie tohto kontaktu",
"The backend for this address book does not support deleting contacts" => "Úložisko tohto adresára nepodporuje vymazanie kontaktov",
"Unknown error" => "Neznáma chyba",
"Access denied" => "Prístup bol odmietnutý",
"The backend for this address book does not support updating" => "Úložisko tohto adresára nepodporuje jeho aktualizáciu",
"You don't have permissions to delete the address book." => "Nemáte oprávnenie na vymazanie tohto adresára.",
"Address book not found" => "Adresár nenájdený",
@ -82,6 +84,9 @@
"You do not have permissions to delete the \"%s\" address book" => "Nemáte oprávnenie pre zmazanie zoznamu kontaktov \"%s\"",
"Error deleting address book" => "Chyba pri vymazávaní adresára",
"Error creating contact." => "Chyba pri vytváraní kontaktu.",
"Error creating contact" => "Chyba pri vytváraní kontaktu",
"Error deleting contact" => "Chyba pri odstraňovaní kontaktu",
"Error saving contact" => "Chyba pri ukladaní kontaktu",
"Error removing contact from other address book." => "Chyba pri vymazávaní kontaktu z iného adresára.",
"Couldn't find contact." => "Kontakt sa nenašiel.",
"No contact data in request." => "Neobsahuje požadované kontaktné údaje.",
@ -158,6 +163,7 @@
"Address books" => "Adresár",
"Display name" => "Zobrazované meno",
"Add Address Book" => "Pridať adresár",
"Automatic format" => "Automatický formát",
"Select file..." => "Vybrať súbor...",
"(De-)select all" => "(Ne-)vybrať všetky",
"Sort order" => "Zoradiť podľa",

View File

@ -16,9 +16,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-26 05:41-0400\n"
"PO-Revision-Date: 2014-03-26 06:00+0000\n"
"Last-Translator: I Robot\n"
"POT-Creation-Date: 2014-04-01 00:49-0400\n"
"PO-Revision-Date: 2014-03-31 10:51+0000\n"
"Last-Translator: mhh <marian.hvolka@stuba.sk>\n"
"Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -36,7 +36,7 @@ msgstr "Uložiť"
#: js/addressbooks.js:306
msgid "Starting file import"
msgstr ""
msgstr "Spusteni importu súboru"
#: js/addressbooks.js:310 js/addressbooks.js:338
msgid "Format selected: {format}"
@ -189,17 +189,17 @@ msgstr "Chyba parsovania narodenín {bday}"
msgid "The backend does not support multi-byte characters."
msgstr ""
#: js/contacts.js:2270
#: js/contacts.js:2212
msgid ""
"Some contacts are marked for deletion, but not deleted yet. Please wait for "
"them to be deleted."
msgstr "Počkajte prosím do skončenia mazania kontaktov označených na mazanie."
#: js/contacts.js:2281
#: js/contacts.js:2223
msgid "Click to undo deletion of {num} contacts"
msgstr "Kliknite pre odvrátenie operácie zmazania {num} kontaktov."
#: js/contacts.js:2290
#: js/contacts.js:2232
msgid "Cancelled deletion of {num} contacts"
msgstr "Zrušené vymazanie {num} kontaktov"
@ -302,7 +302,7 @@ msgstr "Zavrieť"
msgid "Server error! Please inform system administator"
msgstr "Chyba servera! Informujte vášho administrátora"
#: js/storage.js:346 js/storage.js:385
#: js/storage.js:405 js/storage.js:444
msgid "Failed loading photo: {error}"
msgstr "Načítanie fotografie sa nepodarilo: {error}"
@ -340,7 +340,7 @@ msgstr "Neznáma chyba"
#: lib/addressbook.php:410
msgid "Access denied"
msgstr ""
msgstr "Prístup bol odmietnutý"
#: lib/addressbook.php:417
msgid "The backend for this address book does not support updating"
@ -386,49 +386,49 @@ msgstr "Neznáme IM:"
msgid "{name}'s Birthday"
msgstr "Narodeniny {name}"
#: lib/controller/addressbookcontroller.php:141
#: lib/controller/addressbookcontroller.php:163
msgid "Error creating address book"
msgstr "Chyba pri vytváraní adresára"
#: lib/controller/addressbookcontroller.php:173
#: lib/controller/addressbookcontroller.php:195
#, php-format
msgid "The \"%s\" backend does not support deleting address books"
msgstr ""
#: lib/controller/addressbookcontroller.php:181
#: lib/controller/addressbookcontroller.php:203
#, php-format
msgid "You do not have permissions to delete the \"%s\" address book"
msgstr "Nemáte oprávnenie pre zmazanie zoznamu kontaktov \"%s\""
#: lib/controller/addressbookcontroller.php:188
#: lib/controller/addressbookcontroller.php:210
msgid "Error deleting address book"
msgstr "Chyba pri vymazávaní adresára"
#: lib/controller/addressbookcontroller.php:228
#: lib/controller/addressbookcontroller.php:250
msgid "Error creating contact."
msgstr "Chyba pri vytváraní kontaktu."
#: lib/controller/addressbookcontroller.php:237
#: lib/controller/addressbookcontroller.php:259
msgid "Error creating contact"
msgstr ""
msgstr "Chyba pri vytváraní kontaktu"
#: lib/controller/addressbookcontroller.php:269
#: lib/controller/addressbookcontroller.php:291
msgid "Error deleting contact"
msgstr ""
msgstr "Chyba pri odstraňovaní kontaktu"
#: lib/controller/addressbookcontroller.php:309
#: lib/controller/addressbookcontroller.php:331
msgid "Error retrieving contact"
msgstr ""
#: lib/controller/addressbookcontroller.php:320
#: lib/controller/addressbookcontroller.php:342
msgid "Error saving contact"
msgstr ""
msgstr "Chyba pri ukladaní kontaktu"
#: lib/controller/addressbookcontroller.php:326
#: lib/controller/addressbookcontroller.php:348
msgid "Error removing contact from other address book."
msgstr "Chyba pri vymazávaní kontaktu z iného adresára."
#: lib/controller/addressbookcontroller.php:333
#: lib/controller/addressbookcontroller.php:355
msgid "Error getting moved contact"
msgstr ""
@ -751,7 +751,7 @@ msgstr "Pridať adresár"
#: templates/contacts.php:35
msgid "Automatic format"
msgstr ""
msgstr "Automatický formát"
#: templates/contacts.php:44 templates/contacts.php:45
msgid "Select file..."

View File

@ -1,6 +1,11 @@
<?php $TRANSLATIONS = array(
"Contacts" => "Stiki",
"Save" => "Shrani",
"Starting file import" => "Začenjanje uvoza datoteke",
"Format selected: {format}" => "Izbran zapis: {format}",
"Automatic format detection" => "Samodejno zaznavanje zapisa",
"Processing {count}/{total} cards" => "Obdelava {count}/{total} kartic",
"Total:{total}, Success:{imported}, Errors:{failed}" => "Skupaj:{total}, od tega {imported} uspešno uvoženih in {failed} napak.",
"An address book called {name} already exists" => "Imenik z imenom {name} že obstaja",
"Failed adding address book: {error}" => "Dodajanje imenika je spodletelo: {error}",
"Failed loading address books: {error}" => "Nalaganje imenikov je spodletelo: {error}",
@ -17,6 +22,7 @@
"Merge failed. Error saving contact." => "Združevanje je spodletelo. Prišlo je do napake med shranjevanjem stika.",
"Select photo" => "Izbor slike",
"Network or server error. Please inform administrator." => "Napaka omrežja ali strežnika. Pošljite obvestilo skrbniku sistema.",
"Only images can be used as contact photos" => "Kot slike stika je mogoče uporabljati le slike.",
"The size of \"{filename}\" exceeds the maximum allowed {size}" => "Velikost datoteke \"{filename}\" presega največjo dovoljeno velikost {size}",
"Error adding to group." => "Napaka med dodajanjem stika v skupino.",
"Error removing from group." => "Napaka med odstranjevanjem stika iz skupino.",
@ -69,6 +75,7 @@
"You do not have permissions to delete this contact" => "Ni ustreznih dovoljenj za brisanje tega stika",
"The backend for this address book does not support deleting contacts" => "Zaledje tega imenika ne omogoča brisanje stikov",
"Unknown error" => "Neznana napaka",
"Access denied" => "Dostop je zavrnjen",
"The backend for this address book does not support updating" => "Zaledje tega imenika ne omogoča posodobitev",
"You don't have permissions to delete the address book." => "Ni ustreznih dovoljenj za brisanje imenika.",
"Address book not found" => "Imenika ni mogoče najti",
@ -167,6 +174,7 @@
"Address books" => "Imeniki",
"Display name" => "Ime za prikaz",
"Add Address Book" => "Dodaj imenik",
"Automatic format" => "Samodejno zaznavanje zapisa",
"Select file..." => "Izbor datoteke ...",
"(De-)select all" => "Preklopi izbor vsega",
"Sort order" => "Vrstni red razvrščanja",

View File

@ -14,9 +14,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-26 05:41-0400\n"
"PO-Revision-Date: 2014-03-26 06:00+0000\n"
"Last-Translator: I Robot\n"
"POT-Creation-Date: 2014-03-30 00:49-0400\n"
"PO-Revision-Date: 2014-03-29 20:30+0000\n"
"Last-Translator: mateju <>\n"
"Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -34,23 +34,23 @@ msgstr "Shrani"
#: js/addressbooks.js:306
msgid "Starting file import"
msgstr ""
msgstr "Začenjanje uvoza datoteke"
#: js/addressbooks.js:310 js/addressbooks.js:338
msgid "Format selected: {format}"
msgstr ""
msgstr "Izbran zapis: {format}"
#: js/addressbooks.js:313 js/addressbooks.js:341
msgid "Automatic format detection"
msgstr ""
msgstr "Samodejno zaznavanje zapisa"
#: js/addressbooks.js:391
msgid "Processing {count}/{total} cards"
msgstr ""
msgstr "Obdelava {count}/{total} kartic"
#: js/addressbooks.js:415
msgid "Total:{total}, Success:{imported}, Errors:{failed}"
msgstr ""
msgstr "Skupaj:{total}, od tega {imported} uspešno uvoženih in {failed} napak."
#: js/addressbooks.js:569
msgid "An address book called {name} already exists"
@ -118,7 +118,7 @@ msgstr "Napaka omrežja ali strežnika. Pošljite obvestilo skrbniku sistema."
#: js/app.js:789
msgid "Only images can be used as contact photos"
msgstr ""
msgstr "Kot slike stika je mogoče uporabljati le slike."
#: js/app.js:798
msgid "The size of \"{filename}\" exceeds the maximum allowed {size}"
@ -338,7 +338,7 @@ msgstr "Neznana napaka"
#: lib/addressbook.php:410
msgid "Access denied"
msgstr ""
msgstr "Dostop je zavrnjen"
#: lib/addressbook.php:417
msgid "The backend for this address book does not support updating"
@ -749,7 +749,7 @@ msgstr "Dodaj imenik"
#: templates/contacts.php:35
msgid "Automatic format"
msgstr ""
msgstr "Samodejno zaznavanje zapisa"
#: templates/contacts.php:44 templates/contacts.php:45
msgid "Select file..."

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud contacts 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-28 00:48-0400\n"
"POT-Creation-Date: 2014-04-01 00:49-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -180,17 +180,17 @@ msgstr ""
msgid "The backend does not support multi-byte characters."
msgstr ""
#: js/contacts.js:2270
#: js/contacts.js:2212
msgid ""
"Some contacts are marked for deletion, but not deleted yet. Please wait for "
"them to be deleted."
msgstr ""
#: js/contacts.js:2281
#: js/contacts.js:2223
msgid "Click to undo deletion of {num} contacts"
msgstr ""
#: js/contacts.js:2290
#: js/contacts.js:2232
msgid "Cancelled deletion of {num} contacts"
msgstr ""
@ -293,7 +293,7 @@ msgstr ""
msgid "Server error! Please inform system administator"
msgstr ""
#: js/storage.js:346 js/storage.js:385
#: js/storage.js:405 js/storage.js:444
msgid "Failed loading photo: {error}"
msgstr ""
@ -377,49 +377,49 @@ msgstr ""
msgid "{name}'s Birthday"
msgstr ""
#: lib/controller/addressbookcontroller.php:141
#: lib/controller/addressbookcontroller.php:163
msgid "Error creating address book"
msgstr ""
#: lib/controller/addressbookcontroller.php:173
#: lib/controller/addressbookcontroller.php:195
#, php-format
msgid "The \"%s\" backend does not support deleting address books"
msgstr ""
#: lib/controller/addressbookcontroller.php:181
#: lib/controller/addressbookcontroller.php:203
#, php-format
msgid "You do not have permissions to delete the \"%s\" address book"
msgstr ""
#: lib/controller/addressbookcontroller.php:188
#: lib/controller/addressbookcontroller.php:210
msgid "Error deleting address book"
msgstr ""
#: lib/controller/addressbookcontroller.php:228
#: lib/controller/addressbookcontroller.php:250
msgid "Error creating contact."
msgstr ""
#: lib/controller/addressbookcontroller.php:237
#: lib/controller/addressbookcontroller.php:259
msgid "Error creating contact"
msgstr ""
#: lib/controller/addressbookcontroller.php:269
#: lib/controller/addressbookcontroller.php:291
msgid "Error deleting contact"
msgstr ""
#: lib/controller/addressbookcontroller.php:309
#: lib/controller/addressbookcontroller.php:331
msgid "Error retrieving contact"
msgstr ""
#: lib/controller/addressbookcontroller.php:320
#: lib/controller/addressbookcontroller.php:342
msgid "Error saving contact"
msgstr ""
#: lib/controller/addressbookcontroller.php:326
#: lib/controller/addressbookcontroller.php:348
msgid "Error removing contact from other address book."
msgstr ""
#: lib/controller/addressbookcontroller.php:333
#: lib/controller/addressbookcontroller.php:355
msgid "Error getting moved contact"
msgstr ""

View File

@ -67,6 +67,28 @@ class AddressBookController extends Controller {
public function getAddressBook() {
$params = $this->request->urlParams;
$addressBook = $this->app->getAddressBook($params['backend'], $params['addressBookId']);
$lastModified = $addressBook->lastModified();
$response = new JSONResponse();
$response->setData(array('data' => $addressBook->getMetaData()));
if (!is_null($lastModified)) {
$response->addHeader('Cache-Control', 'private, must-revalidate');
$response->setLastModified(\DateTime::createFromFormat('U', $lastModified) ?: null);
$etag = md5($lastModified);
$response->setETag($etag);
}
return $response;
}
/**
* @NoAdminRequired
* @NoCSRFRequired
*/
public function getContacts() {
$params = $this->request->urlParams;
$addressBook = $this->app->getAddressBook($params['backend'], $params['addressBookId']);
$lastModified = $addressBook->lastModified();
$etag = null;

View File

@ -83,8 +83,8 @@ class ContactController extends Controller {
$patch = $this->request->patch;
$response = new JSONResponse();
$name = $patch['name'];
$value = $patch['value'];
$name = isset($patch['name']) ? $patch['name'] : null;
$value = isset($patch['value']) ? $patch['value'] : null;
$checksum = isset($patch['checksum']) ? $patch['checksum'] : null;
$parameters = isset($patch['parameters']) ? $patch['parameters'] : null;