1
0
mirror of https://github.com/owncloudarchive/contacts.git synced 2024-12-01 13:24:10 +01:00

Merge branch 'master' into filesystem

This commit is contained in:
Robin Appelman 2013-01-20 03:00:44 +01:00
commit e3c6556280
33 changed files with 126 additions and 69 deletions

View File

@ -128,10 +128,10 @@ if(in_array($name, $multi_properties)) {
'Cannot save property of type "%s" as array', array($name,)
));
}
setParameters($property, $parameters);
} else {
$property = VObject\Property::create($name, $value, $parameters);
}
setParameters($property, $parameters);
$vcard->add($property);
$checksum = substr(md5($property->serialize()), 0, 8);
try {

View File

@ -31,8 +31,8 @@
}
#content textarea { font-family: inherit; }
#content input:-moz-placeholder #content ::-moz-placeholder, #content input[placeholder], #content input:placeholder, #content input:-ms-input-placeholder, #content input::-webkit-input-placeholder, #content input:-moz-placeholder {
color: #aaa;
#content ::-moz-placeholder, #content input:-moz-placeholder, #content input[placeholder], #content input:placeholder, #content input:-ms-input-placeholder, #content input::-webkit-input-placeholder, #content input:-moz-placeholder {
color: #bbb;
text-overflow: ellipsis;
}
@ -43,7 +43,6 @@
-moz-border-radius: 0px; -webkit-border-radius: 0px; border-radius: 0px;
-moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;
float: left;
width: auto;
}
#content input[type="button"]:hover, #content select:hover, #content select:focus, #content select:active, #content input[type="button"]:focus, #content .button:hover, button:hover { background-color:#fff; color:#333; }
@ -135,18 +134,23 @@
#firstrun #selections { font-size:0.8em; margin: 2em auto auto auto; clear: both; }
#contact { margin: 1em; }
#contact textarea { min-height: 5em; min-width: 30em; margin: 0 !important; padding: 0 !important; outline: 0 !important;}
#contact textarea { min-height: 5em; width: 100%; margin: 0 !important; padding: 0 !important; outline: 0 !important;}
#contact input[type="checkbox"] { margin-top: 10px; vertical-align: bottom; float: left; }
dl.form { display: block; width: auto; margin: 0; padding: 0; cursor: normal; }
.form dt { display: table-cell; clear: left; float: left; width: 7em; margin: 0; padding: 0.8em 0.5em 0 0; text-align:right; text-overflow:ellipsis; o-text-overflow: ellipsis; vertical-align: text-bottom; color: #bbb;/* white-space: pre-wrap; white-space: -moz-pre-wrap !important; white-space: -pre-wrap; white-space: -o-pre-wrap;*/ }
.form dd { display: table-cell; clear: right; float: left; margin: 0; padding: 0; white-space: nowrap; vertical-align: text-bottom; }
/*dl.form { display: block; width: auto; margin: 0; padding: 0; cursor: normal; }*/
.form dt { display: inline-block; clear: left; float: left; width: 7em; margin: 0; padding: 0.8em 0.5em 0 0; text-align:right; text-overflow:ellipsis; o-text-overflow: ellipsis; vertical-align: text-bottom; color: #bbb;/* white-space: pre-wrap; white-space: -moz-pre-wrap !important; white-space: -pre-wrap; white-space: -o-pre-wrap;*/ }
.form dd { display: inline-block; clear: right; float: left; margin: 0; padding: 0; white-space: nowrap; vertical-align: text-bottom; }
/* override the default margin on share dropdown */
#dropdown { margin: 1.5em 0; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; width: 100%; }
/* reset box-sizing for multiSelect */
#content div.multiselect, #content div.multiselect > * { -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; }
/* Reset values for jquery.multiselect */
.ui-multiselect-checkboxes label { width: 100%; color: #333; font-size: 1em !important; }
.ui-multiselect-checkboxes input[type="checkbox"] { margin: 3px !important; }
#content .multiselectoptions > li > * {
-webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box;
color: #888888;
@ -245,8 +249,9 @@ dl.form { display: block; width: auto; margin: 0; padding: 0; cursor: normal; }
width: 20px; height: 20px;
opacity: 0;
}
.singleproperties .groupscontainer { display: block; clear: left; }
.singleproperties .propertycontainer:hover .action { opacity: 1; }
.singleproperties dl { width: 270px; }
.singleproperties dl { width: 280px;}
.parameters {
width: 120px;
@ -296,7 +301,7 @@ ul.propertylist { width: 450px; }
display: inline-block;
box-sizing: border-box;
}
#rightcontent label:hover, .form dt:hover, #rightcontent input.label:hover { color: #777 !important; }
#rightcontent label:hover, #rightcontent dt:hover, #rightcontent input.label:hover { color: #777 !important; }
#rightcontent input.label:hover, #rightcontent input.label:active { border: 0 none !important; border-radius: 0; cursor: pointer; }
.typelist[type="button"] { float: left; max-width: 8em; border: 0; background-color: #fff; color: #bbb; box-shadow: none; } /* for multiselect */
.typelist[type="button"]:hover { color: #777; } /* for multiselect */

View File

@ -48,6 +48,7 @@ $freeSpace=max($freeSpace, 0);
$maxUploadFilesize = min($maxUploadFilesize, $freeSpace);
OCP\Util::addscript('contacts', 'multiselect');
OCP\Util::addscript('', 'jquery.multiselect');
OCP\Util::addscript('', 'oc-vcategories');
OCP\Util::addscript('contacts', 'modernizr.custom');
OCP\Util::addscript('contacts', 'app');
@ -58,6 +59,7 @@ OCP\Util::addscript('contacts', 'jquery.combobox');
OCP\Util::addscript('files', 'jquery.fileupload');
OCP\Util::addscript('contacts', 'jquery.Jcrop');
OCP\Util::addStyle('contacts', 'multiselect');
OCP\Util::addStyle('', 'jquery.multiselect');
OCP\Util::addStyle('contacts', 'jquery.combobox');
OCP\Util::addStyle('contacts', 'jquery.Jcrop');
OCP\Util::addStyle('contacts', 'contacts');

View File

@ -389,8 +389,14 @@ OC.Contacts = OC.Contacts || {
});
$(document).bind('request.contact.addtogroup', function(e, data) {
console.log('contact', data.id, 'request.contact.addtogroup');
self.groups.addTo(data.id, data.groupid);
self.groups.addTo(data.id, data.groupid, function(response) {
console.log('contact', data.id, 'request.contact.addtogroup', response);
});
});
$(document).bind('request.contact.removefromgroup', function(e, data) {
console.log('contact', data.id, 'request.contact.removefromgroup');
self.groups.removeFrom(data.id, data.groupid);
});
$(document).bind('request.contact.export', function(e, data) {

View File

@ -110,6 +110,15 @@ OC.Contacts = OC.Contacts || {};
}
if($elem) {
// If there's already a property of this type enable setting as preferred.
if(this.multi_properties.indexOf(name) !== -1 && this.data[name] && this.data[name].length > 0) {
var selector = 'li[data-element="' + name.toLowerCase() + '"]';
$.each(this.$fullelem.find(selector), function(idx, elem) {
$(elem).find('input.parameter[value="PREF"]').show();
});
} else if(this.multi_properties.indexOf(name) !== -1) {
$elem.find('input.parameter[value="PREF"]').hide();
}
$elem.find('select.type[name="parameters[TYPE][]"]')
.combobox({
singleclick: true,
@ -119,6 +128,7 @@ OC.Contacts = OC.Contacts || {};
};
Contact.prototype.deleteProperty = function(params) {
// TODO: Disable PREF if less than 2 multi_properties.
var obj = params.obj;
if(!this.enabled) {
return;
@ -225,10 +235,6 @@ OC.Contacts = OC.Contacts || {};
var q = '';
if(params.obj) {
obj = params.obj;
if($(obj).is('select')) {
console.warn('Group adding will have to be refactored.');
return;
}
q = this.queryStringFor(obj);
element = this.propertyTypeFor(obj);
} else {
@ -476,17 +482,17 @@ OC.Contacts = OC.Contacts || {};
self.access.id = parseInt(jsondata.data.aid);
self.data = jsondata.data.details;
// Add contact to current group
if(self.groupprops && self.groupprops.currentgroup.name !== 'all'
&& self.groupprops.currentgroup.name !== 'fav') {
if(self.groupprops && self.groupprops.currentgroup.id !== 'all'
&& self.groupprops.currentgroup.id !== 'fav') {
if(!self.data.CATEGORIES) {
self.data.CATEGORIES = [{value:[self.groupprops.currentgroup.name], parameters:[]}];
// Save to vCard
self.saveProperty({name:'CATEGORIES', value:self.data.CATEGORIES[0].value.join(',') });
// Tell OC.Contacts to save in backend
self.addToGroup(self.groupprops.currentgroup.name);
$(document).trigger('request.contact.addtogroup', {
id: self.id,
groupid: self.groupprops.currentgroup.id
});
self.$groupSelect.find('option[value="' + self.groupprops.currentgroup.id + '"]')
.attr('selected', 'selected');
self.$groupSelect.multiselect('refresh');
}
}
$(document).trigger('status.contact.added', {
@ -579,14 +585,6 @@ OC.Contacts = OC.Contacts || {};
return $container.is('input')
? $container.val()
: (function() {
if($container.is('select[data-element="categories"]')) {
console.warn('Group adding will have to be refactored.');
retval = {};
$.each($container.find(':selected'), function(idx, e) {
retval[$(e).val()] = $(e).text();
});
return retval;
} else {
var $elem = $container.find('textarea.value,input.value:not(:checkbox)');
console.assert($elem.length > 0, 'Couldn\'t find value for ' + $container.data('element'));
if($elem.length === 1) {
@ -598,7 +596,6 @@ OC.Contacts = OC.Contacts || {};
});
return retval;
}
}
})();
};
@ -660,13 +657,33 @@ OC.Contacts = OC.Contacts || {};
var self = this;
this.groupprops = groupprops;
var buildGroupSelect = function($groupSelect, availableGroups) {
var buildGroupSelect = function(availableGroups) {
//this.$groupSelect.find('option').remove();
$.each(availableGroups, function(idx, group) {
var $option = $('<option value="' + group.id + '">' + group.name + '</option>');
if(self.inGroup(group.name)) {
$option.attr('selected', 'selected');
}
$groupSelect.append($option);
self.$groupSelect.append($option);
});
self.$groupSelect.multiselect({
header: false,
selectedList: 3,
noneSelectedText: self.$groupSelect.attr('title'),
selectedText: t('contacts', '# groups')
});
self.$groupSelect.bind('multiselectclick', function(event, ui) {
var action = ui.checked ? 'addtogroup' : 'removefromgroup';
console.assert(typeof self.id === 'number', 'ID is not a number')
$(document).trigger('request.contact.' + action, {
id: self.id,
groupid: parseInt(ui.value)
});
if(ui.checked) {
self.addToGroup(ui.text);
} else {
self.removeFromGroup(ui.text);
}
});
};
@ -699,8 +716,7 @@ OC.Contacts = OC.Contacts || {};
});
this.$groupSelect = this.$fullelem.find('#contactgroups');
buildGroupSelect(this.$groupSelect, groupprops.groups);
this.$groupSelect.multiSelect();
buildGroupSelect(groupprops.groups);
this.$addMenu = this.$fullelem.find('#addproperty');
this.$addMenu.on('change', function(event) {
@ -776,7 +792,7 @@ OC.Contacts = OC.Contacts || {};
});
this.$fullelem.on('change', '.value,.parameter', function(event) {
if(this.value === this.defaultValue) {
if($(this).hasClass('value') && this.value === this.defaultValue) {
return;
}
console.log('change', this.defaultValue, this.value);
@ -838,7 +854,7 @@ OC.Contacts = OC.Contacts || {};
case 'URL':
case 'EMAIL':
$property = self.renderStandardProperty(name.toLowerCase(), property);
if(self.data[name].length >= 1) {
if(self.data[name].length === 1) {
$property.find('input:checkbox[value="PREF"]').hide();
}
break;
@ -847,6 +863,9 @@ OC.Contacts = OC.Contacts || {};
break;
case 'IMPP':
$property = self.renderIMProperty(property);
if(self.data[name].length === 1) {
$property.find('input:checkbox[value="PREF"]').hide();
}
break;
}
if(!$property) {
@ -1656,7 +1675,7 @@ OC.Contacts = OC.Contacts || {};
self.contacts[parseInt(contact.id)]
= new Contact(
self,
contact.id,
parseInt(contact.id),
self.addressbooks[parseInt(contact.aid)],
contact.data,
self.$contactListItemTemplate,

View File

@ -87,7 +87,7 @@ OC.Contacts = OC.Contacts || {};
* @returns string The name of the group.
*/
GroupList.prototype.nameById = function(id) {
return this.findById(id).clone().find("*").remove().end().text(); //.contents().filter(function(){ return(this.nodeType == 3); }).text().trim();
return this.findById(id).clone().find("*").remove().end().text().trim(); //.contents().filter(function(){ return(this.nodeType == 3); }).text().trim();
};
/** Get the group element by id.
@ -206,6 +206,8 @@ OC.Contacts = OC.Contacts || {};
cb({status:'error', message:t('contacts', 'Contacts are already in this group.')});
}
}
} else {
console.warn('Invalid data type: ' + typeof contactid);
}
if(doPost) {
$.post(OC.filePath('contacts', 'ajax', 'categories/addto.php'), {contactids: ids, categoryid: groupid},function(jsondata) {

View File

@ -3,10 +3,12 @@
"Contacts" => "Контакти",
"Upload too large" => "Файлът който сте избрали за качване е прекалено голям",
"Download" => "Изтегляне",
"Edit" => "Промяна",
"Delete" => "Изтриване",
"Text" => "Текст",
"Settings" => "Настройки",
"Groups" => "Групи",
"Title" => "Заглавие",
"Add" => "Добавяне",
"Email" => "E-mail",
"Name" => "Име",

View File

@ -112,6 +112,7 @@
"Additional names" => "অতিরিক্ত নামসমূহ",
"Nickname" => "ছদ্মনাম",
"Enter nickname" => "ছদ্মনাম প্রবেশ করান",
"Title" => "শিরোনাম",
"Organization" => "প্রতিস্ঠান",
"Birthday" => "জন্মদিন",
"Add" => "যোগ কর",

View File

@ -83,6 +83,7 @@
"The address book name cannot be empty." => "El nom de la llibreta d'adreces no pot ser buit.",
"Is this correct?" => "És correcte?",
"There was an unknown error when trying to delete this contact" => "S'ha produït un error en intentar esborrat aquest contacte",
"# groups" => "# grups",
"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.",
"Click to undo deletion of {num} contacts" => "Feu clic a desfés eliminació de {num} contactes",
"Cancelled deletion of {num}" => "S'ha cancel·lat l'eliminació de {num}",
@ -185,10 +186,10 @@
"Edit current photo" => "Edita la foto actual",
"Upload new photo" => "Carrega una foto nova",
"Select photo from ownCloud" => "Selecciona una foto de ownCloud",
"Select groups" => "Selecciona grups",
"First name" => "Nom",
"Additional names" => "Noms addicionals",
"Last name" => "Cognom",
"Select groups" => "Selecciona grups",
"Nickname" => "Sobrenom",
"Enter nickname" => "Escriviu el sobrenom",
"Title" => "Títol",

View File

@ -83,6 +83,7 @@
"The address book name cannot be empty." => "Název knihy adres nemůže být prázdný.",
"Is this correct?" => "Je to správně?",
"There was an unknown error when trying to delete this contact" => "Nastala neznámá chyba při mazání tohoto kontaktu",
"# groups" => "# skupiny",
"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í, ale nejsou smazány. Počkejte, prosím, na dokončení operace.",
"Click to undo deletion of {num} contacts" => "Klikněte pro navrácení mazání {num} kontaktů",
"Cancelled deletion of {num}" => "Mazání {num} položek zrušeno",
@ -185,10 +186,10 @@
"Edit current photo" => "Upravit současnou fotku",
"Upload new photo" => "Nahrát novou fotku",
"Select photo from ownCloud" => "Vybrat fotku z ownCloudu",
"Select groups" => "Vybrat skupiny",
"First name" => "Křestní jméno",
"Additional names" => "Další jména",
"Last name" => "Příjmení",
"Select groups" => "Vybrat skupiny",
"Nickname" => "Přezdívka",
"Enter nickname" => "Zadejte přezdívku",
"Title" => "Název",

View File

@ -185,10 +185,10 @@
"Edit current photo" => "Derzeitiges Foto ändern",
"Upload new photo" => "Neues Foto hochladen",
"Select photo from ownCloud" => "Foto aus der ownCloud auswählen",
"Select groups" => "Wähle Gruppen aus",
"First name" => "Vorname",
"Additional names" => "Zusätzliche Namen",
"Last name" => "Nachname",
"Select groups" => "Wähle Gruppen aus",
"Nickname" => "Spitzname",
"Enter nickname" => "Spitzname angeben",
"Title" => "Titel",

View File

@ -83,6 +83,7 @@
"The address book name cannot be empty." => "Der Name des Adressbuches darf nicht leer sein.",
"Is this correct?" => "Ist das richtig?",
"There was an unknown error when trying to delete this contact" => "Beim Löschen des Kontakts trat ein unbekannten Fehler auf.",
"# groups" => "# Gruppen",
"Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted." => "Einige zum Löschen vorgemerkte Kontakte wurden noch nicht gelöscht. Bitte warten.",
"Click to undo deletion of {num} contacts" => "Klicken Sie hier um das Löschen von {num} Kontakten rückgängig zu machen",
"Cancelled deletion of {num}" => "Das Löschen von {num} wurde abgebrochen.",
@ -185,10 +186,10 @@
"Edit current photo" => "Derzeitiges Foto ändern",
"Upload new photo" => "Neues Foto hochladen",
"Select photo from ownCloud" => "Foto aus der ownCloud auswählen",
"Select groups" => "Wähle Gruppe",
"First name" => "Vorname",
"Additional names" => "Zusätzliche Namen",
"Last name" => "Nachname",
"Select groups" => "Wähle Gruppe",
"Nickname" => "Spitzname",
"Enter nickname" => "Spitzname angeben",
"Title" => "Titel",

View File

@ -83,6 +83,7 @@
"The address book name cannot be empty." => "Το όνομα του βιβλίου διευθύνσεων δεν πρέπει να είναι κενό.",
"Is this correct?" => "Είναι σωστό;",
"There was an unknown error when trying to delete this contact" => "Παρουσιάστηκε άγνωστο σφάλμα κατά τη διαγραφή αυτής της επαφής",
"# groups" => "# ομάδες",
"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}" => "Αναιρέθηκε η διαγραφή {num}",
@ -188,6 +189,7 @@
"First name" => "Όνομα",
"Additional names" => "Επιπλέον ονόματα",
"Last name" => "Επώνυμο",
"Select groups" => "Επιλέξτε ομάδες",
"Nickname" => "Παρατσούκλι",
"Enter nickname" => "Εισάγετε παρατσούκλι",
"Title" => "Τίτλος",

View File

@ -185,10 +185,10 @@
"Edit current photo" => "Editar fotografía actual",
"Upload new photo" => "Subir nueva fotografía",
"Select photo from ownCloud" => "Seleccionar fotografía desde ownCloud",
"Select groups" => "Seleccionar grupos",
"First name" => "Nombre",
"Additional names" => "Nombres adicionales",
"Last name" => "Apellido",
"Select groups" => "Seleccionar grupos",
"Nickname" => "Alias",
"Enter nickname" => "Introduce un alias",
"Title" => "Título",

View File

@ -185,10 +185,10 @@
"Edit current photo" => "Editar imagen actual",
"Upload new photo" => "Subir nueva imagen",
"Select photo from ownCloud" => "Seleccionar imagen desde ownCloud",
"Select groups" => "Seleccionar grupos",
"First name" => "Nombre",
"Additional names" => "Segundo nombre",
"Last name" => "Apellido",
"Select groups" => "Seleccionar grupos",
"Nickname" => "Sobrenombre",
"Enter nickname" => "Escribí un sobrenombre",
"Title" => "Título",

View File

@ -82,6 +82,7 @@
"The address book name cannot be empty." => "Helbide-liburuaren izena ezin da hutsik egon.",
"Is this correct?" => "Hau zuzena al da?",
"There was an unknown error when trying to delete this contact" => "Errore ezezagun bat izan da kontaktu hau ezabatzeko orduan",
"# groups" => "# taldeak",
"Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted." => "Kontaktu batzuk ezabatzeko markatuta daude, baina oraindik ez dira ezabatu. Mesedez itxoin ezabatu arte.",
"Click to undo deletion of {num} contacts" => "Klikatu {num} kontaktuen ezabaketa desegiteko",
"Cancelled deletion of {num}" => "{num}en ezabaketa ezeztatuta",
@ -187,6 +188,7 @@
"First name" => "Izena",
"Additional names" => "Tarteko izenak",
"Last name" => "Abizena",
"Select groups" => "Hautatu taldeak",
"Nickname" => "Ezizena",
"Enter nickname" => "Sartu ezizena",
"Title" => "Izenburua",

View File

@ -2,6 +2,7 @@
"Error (de)activating addressbook." => "Virhe osoitekirjan (de)aktivoinnissa ",
"id is not set." => "Tunnistetta (ID) ei ole asetettu.",
"Cannot update addressbook with an empty name." => "Osoitekirjaa ei voida päivittää, koska nimi on tyhjä.",
"Error adding group." => "Virhe ryhmää lisättäessä.",
"No ID provided" => "Tunnistetta (ID) ei ole tarjottu",
"Error setting checksum." => "Virhe asettaessa tarkistussummaa.",
"No categories selected for deletion." => "Luokkia ei ole valittu poistettavaksi.",
@ -10,6 +11,7 @@
"element name is not set." => "kohteen nimeä ei ole asetettu.",
"checksum is not set." => "tarkistussummaa ei ole asetettu.",
"Information about vCard is incorrect. Please reload the page." => "vCardin tiedot eivät kelpaa. Lataa sivu uudelleen.",
"Couldn't find vCard for %d." => "Kohteelle %d ei löytynyt vCardia.",
"Information about vCard is incorrect. Please reload the page: " => "vCard osoitetietueen tiedot ovat virheelliset. Virkistä sivu uudestaan: ",
"Something went FUBAR. " => "Jokin meni pahasti pieleen.",
"Missing IM parameter." => "Puuttuva IM-arvo.",
@ -154,6 +156,7 @@
"Add new contact" => "Lisää uusi yhteystieto",
"Add new addressbook" => "Lisää uusi osoitekirja",
"Delete current contact" => "Poista nykyinen yhteystieto",
"<h3>You have no contacts in your addressbook.</h3><p>Add a new contact or import existing contacts from a VCF file.</p>" => "<h3>Osoitekirjassasi ei ole yhteystietoja.</h3><p>Lisää uusi yhteystieto tai tuo olemassa olevia yhteystietoja VCF-tiedostosta.</p>",
"Add contact" => "Lisää yhteystieto",
"Compose mail" => "Lähetä sähköpostia",
"Delete group" => "Poista ryhmä",
@ -161,10 +164,10 @@
"Edit current photo" => "Muokkaa nykyistä valokuvaa",
"Upload new photo" => "Lähetä uusi valokuva",
"Select photo from ownCloud" => "Valitse valokuva ownCloudista",
"Select groups" => "Valitse ryhmät",
"First name" => "Etunimi",
"Additional names" => "Lisänimet",
"Last name" => "Sukunimi",
"Select groups" => "Valitse ryhmät",
"Nickname" => "Kutsumanimi",
"Enter nickname" => "Anna kutsumanimi",
"Title" => "Otsikko",

View File

@ -185,10 +185,10 @@
"Edit current photo" => "Editer la photo actuelle",
"Upload new photo" => "Envoyer une nouvelle photo",
"Select photo from ownCloud" => "Sélectionner une photo depuis ownCloud",
"Select groups" => "Sélectionnez les groupes",
"First name" => "Prénom",
"Additional names" => "Nom supplémentaires",
"Last name" => "Nom",
"Select groups" => "Sélectionnez les groupes",
"Nickname" => "Surnom",
"Enter nickname" => "Entrer un surnom",
"Title" => "Titre",

View File

@ -129,10 +129,10 @@
"Edit current photo" => "Aktuális kép szerkesztése",
"Upload new photo" => "Új kép feltöltése",
"Select photo from ownCloud" => "Kép kiválasztása ownCloud-ból",
"Select groups" => "Csoportok kiválasztása",
"First name" => "Keresztnév",
"Additional names" => "További nevek",
"Last name" => "Vezetéknév",
"Select groups" => "Csoportok kiválasztása",
"Nickname" => "Becenév",
"Enter nickname" => "Becenév megadása",
"Title" => "Felirat",

View File

@ -37,6 +37,7 @@
"Close" => "tutup",
"Nickname" => "nama panggilan",
"Enter nickname" => "masukkan nama panggilan",
"Title" => "Judul",
"Organization" => "organisasi",
"Birthday" => "tanggal lahir",
"Add" => "tambah",

View File

@ -83,6 +83,7 @@
"The address book name cannot be empty." => "Il nome della rubrica non può essere vuoto.",
"Is this correct?" => "È corretto?",
"There was an unknown error when trying to delete this contact" => "Si è verificato un errore durante il tentativo di eliminare il contatto.",
"# groups" => "# gruppi",
"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.",
"Click to undo deletion of {num} contacts" => "Un clic per annullare l'eliminazione di {num} contatti",
"Cancelled deletion of {num}" => "Eliminazione di {num} annullata",
@ -185,10 +186,10 @@
"Edit current photo" => "Modifica la foto corrente",
"Upload new photo" => "Invia una nuova foto",
"Select photo from ownCloud" => "Seleziona la foto da ownCloud",
"Select groups" => "Seleziona gruppi",
"First name" => "Nome",
"Additional names" => "Nomi aggiuntivi",
"Last name" => "Cognome",
"Select groups" => "Seleziona gruppi",
"Nickname" => "Pseudonimo",
"Enter nickname" => "Inserisci pseudonimo",
"Title" => "Titolo",

View File

@ -83,6 +83,7 @@
"The address book name cannot be empty." => "アドレス帳名は空に出来ません。",
"Is this correct?" => "これは正しいですか?",
"There was an unknown error when trying to delete this contact" => "この連絡先の削除時に不明なエラーが発生しました",
"# groups" => "グループ数",
"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}" => "{num} 個の削除をキャンセルしました",
@ -185,10 +186,10 @@
"Edit current photo" => "現在の写真を編集",
"Upload new photo" => "新しい写真をアップロード",
"Select photo from ownCloud" => "ownCloudから写真を選択",
"Select groups" => "グループを選択",
"First name" => "",
"Additional names" => "ミドルネーム",
"Last name" => "",
"Select groups" => "グループを選択",
"Nickname" => "ニックネーム",
"Enter nickname" => "ニックネームを入力",
"Title" => "タイトル",

View File

@ -185,10 +185,10 @@
"Edit current photo" => "현재 사진 편집",
"Upload new photo" => "새로운 사진 업로드",
"Select photo from ownCloud" => "ownCloud에서 사진 선택",
"Select groups" => "그룹 선택",
"First name" => "이름",
"Additional names" => "추가 이름",
"Last name" => "",
"Select groups" => "그룹 선택",
"Nickname" => "별명",
"Enter nickname" => "별명 입력",
"Title" => "직위",

View File

@ -85,6 +85,7 @@
"Additional names" => "Nama tambahan",
"Nickname" => "Nama Samaran",
"Enter nickname" => "Masukkan nama samaran",
"Title" => "Judul",
"Organization" => "Organisasi",
"Birthday" => "Hari lahir",
"Add" => "Tambah",

View File

@ -83,6 +83,7 @@
"The address book name cannot be empty." => "De naam van het adresboek mag niet leeg zijn.",
"Is this correct?" => "Is dit correct?",
"There was an unknown error when trying to delete this contact" => "Er is een onbekende fout opgetreden bij het verwijderen van deze contactpersoon",
"# groups" => "# groepen",
"Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted." => "Enkele contacten zijn gemarkeerd om verwijderd te worden, maar zijn nog niet verwijderd. Wacht totdat ze zijn verwijderd.",
"Click to undo deletion of {num} contacts" => "Klik om het verwijderen van {num} contactpersonen ongedaan te maken.",
"Cancelled deletion of {num}" => "Verwijderen geannuleerd van {num}",
@ -185,10 +186,10 @@
"Edit current photo" => "Wijzig huidige foto",
"Upload new photo" => "Upload nieuwe foto",
"Select photo from ownCloud" => "Selecteer foto uit ownCloud",
"Select groups" => "Selecteer groepen",
"First name" => "Voornaam",
"Additional names" => "Extra namen",
"Last name" => "Achternaam",
"Select groups" => "Selecteer groepen",
"Nickname" => "Roepnaam",
"Enter nickname" => "Voer roepnaam in",
"Title" => "Titel",

View File

@ -185,10 +185,10 @@
"Edit current photo" => "Edytuj aktualne zdjęcie",
"Upload new photo" => "Wczytaj nowe zdjęcie",
"Select photo from ownCloud" => "Wybierz zdjęcie z ownCloud",
"Select groups" => "Wybierz grupy",
"First name" => "Imię",
"Additional names" => "Dodatkowe nazwy",
"Last name" => "Nazwisko",
"Select groups" => "Wybierz grupy",
"Nickname" => "Nazwa",
"Enter nickname" => "Wpisz nazwę",
"Title" => "Tytuł",

View File

@ -83,6 +83,7 @@
"The address book name cannot be empty." => "O nome do livro de endereços não pode estar vazio.",
"Is this correct?" => "Isto está correcto?",
"There was an unknown error when trying to delete this contact" => "Houve um erro desconhecido enquanto tentava eliminar este contacto.",
"# groups" => "# grupos",
"Some contacts are marked for deletion, but not deleted yet. Please wait for them to be deleted." => "Alguns contactos forma marcados para apagar, mas ainda não foram apagados. Por favor espere que ele sejam apagados.",
"Click to undo deletion of {num} contacts" => "Clique para desfazer a eliminar de {num} contactos",
"Cancelled deletion of {num}" => "Cancelada a eliminação de {num} contactos",
@ -185,10 +186,10 @@
"Edit current photo" => "Editar a foto actual",
"Upload new photo" => "Carregar nova foto",
"Select photo from ownCloud" => "Selecionar uma foto da ownCloud",
"Select groups" => "Seleccionar Grupos",
"First name" => "Primeiro Nome",
"Additional names" => "Nomes adicionais",
"Last name" => "Ultimo Nome",
"Select groups" => "Seleccionar Grupos",
"Nickname" => "Alcunha",
"Enter nickname" => "Introduza alcunha",
"Title" => "Titulo ",

View File

@ -185,10 +185,10 @@
"Edit current photo" => "Редактировать текущую фотографию",
"Upload new photo" => "Загрузить новую фотографию",
"Select photo from ownCloud" => "Выбрать фотографию из ownCloud",
"Select groups" => "Выбрать группу",
"First name" => "Имя",
"Additional names" => "Отчество",
"Last name" => "Фамилия",
"Select groups" => "Выбрать группу",
"Nickname" => "Псевдоним",
"Enter nickname" => "Введите псевдоним",
"Title" => "Заголовок",

View File

@ -185,10 +185,10 @@
"Edit current photo" => "Upraviť súčasnú fotku",
"Upload new photo" => "Nahrať novú fotku",
"Select photo from ownCloud" => "Vybrať fotku z ownCloud",
"Select groups" => "Vyber skupiny",
"First name" => "Krstné meno",
"Additional names" => "Ďalšie mená",
"Last name" => "Priezvisko",
"Select groups" => "Vyber skupiny",
"Nickname" => "Prezývka",
"Enter nickname" => "Zadajte prezývku",
"Title" => "Nadpis",

View File

@ -185,10 +185,10 @@
"Edit current photo" => "Redigera aktuellt foto",
"Upload new photo" => "Ladda upp ett nytt foto",
"Select photo from ownCloud" => "Välj foto från ownCloud",
"Select groups" => "Välj grupper",
"First name" => "Förnamn",
"Additional names" => "Mellannamn",
"Last name" => "Efternamn",
"Select groups" => "Välj grupper",
"Nickname" => "Smeknamn",
"Enter nickname" => "Ange smeknamn",
"Title" => "Titel",

View File

@ -83,6 +83,7 @@
"The address book name cannot be empty." => "Ім'я адресної книги не може бути порожнім.",
"Is this correct?" => "Це вірно?",
"There was an unknown error when trying to delete this contact" => "Виникла невідома помилка при спробі видалити цей контакт",
"# groups" => "# груп",
"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}" => "Відмінено видалення {num}",
@ -188,6 +189,7 @@
"First name" => "Ім'я",
"Additional names" => "Додаткові імена",
"Last name" => "Прізвище",
"Select groups" => "Оберіть групи",
"Nickname" => "Прізвисько",
"Enter nickname" => "Ввести прізвисько",
"Title" => "Назва",

View File

@ -178,10 +178,10 @@
"Edit current photo" => "编辑当前照片",
"Upload new photo" => "上传新照片",
"Select photo from ownCloud" => "从 ownCloud 选择照片",
"Select groups" => "选择分组",
"First name" => "",
"Additional names" => "其他名称",
"Last name" => "",
"Select groups" => "选择分组",
"Nickname" => "昵称",
"Enter nickname" => "输入昵称",
"Title" => "标题",

View File

@ -172,7 +172,6 @@
</ul>
<a class="favorite action {favorite}"></a>
</div>
<select id="contactgroups" class="value propertycontainer" data-element="categories" title="<?php echo $l->t('Select groups'); ?>" name="value" multiple></select>
<div class="singleproperties">
<input data-element="fn" class="fullname value propertycontainer" type="text" name="value" value="{name}" required />
<a class="action edit"></a>
@ -197,6 +196,9 @@
<input class="value" type="hidden" id="n_3" name="value[3]" value="{n3}" />
<input class="value" type="hidden" id="n_4" name="value[4]" value="{n4}" />
</fieldset>
<div class="groupscontainer propertycontainer" data-element="categories">
<select id="contactgroups" title="<?php echo $l->t('Select groups'); ?>" name="value" multiple></select>
</div>
<dl class="form">
<dt data-element="nickname">
<?php echo $l->t('Nickname'); ?>
@ -262,6 +264,7 @@
<select class="add action text button" id="addproperty">
<option value=""><?php echo $l->t('Add'); ?></option>
<option value="ORG"><?php echo $l->t('Organization'); ?></option>
<option value="TITLE"><?php echo $l->t('Title'); ?></option>
<option value="NICKNAME"><?php echo $l->t('Nickname'); ?></option>
<option value="BDAY"><?php echo $l->t('Birthday'); ?></option>
<option value="TEL"><?php echo $l->t('Phone'); ?></option>
@ -270,7 +273,6 @@
<option value="ADR"><?php echo $l->t('Address'); ?></option>
<option value="NOTE"><?php echo $l->t('Note'); ?></option>
<option value="URL"><?php echo $l->t('Web site'); ?></option>
<option value="CATEGORIES"><?php echo $l->t('Groups'); ?></option>
</select>
<button class="delete action text float right tooltipped downwards" title="<?php echo $l->t('Delete contact'); ?>"><?php echo $l->t('Delete'); ?></button>
</footer>