summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Tanghus <thomas@tanghus.net>2012-01-09 01:17:04 +0100
committerThomas Tanghus <thomas@tanghus.net>2012-01-09 20:38:06 +0100
commit978a08ab1c5e425210e8128e6d8efa432d593571 (patch)
treee2a43b5d7e31c36fce09a1c72312ecc677f1c0b3
parent604ca61d78881e3a1a0a41e4b50ef4cb7c1eeaf0 (diff)
downloadnextcloud-server-978a08ab1c5e425210e8128e6d8efa432d593571.tar.gz
nextcloud-server-978a08ab1c5e425210e8128e6d8efa432d593571.zip
Fixed Phone types not being saved correctly when adding them.
-rw-r--r--apps/contacts/ajax/addproperty.php20
-rw-r--r--apps/contacts/templates/part.property.php5
-rw-r--r--apps/contacts/templates/part.setpropertyform.php2
3 files changed, 22 insertions, 5 deletions
diff --git a/apps/contacts/ajax/addproperty.php b/apps/contacts/ajax/addproperty.php
index 98877805b46..0122cf019c7 100644
--- a/apps/contacts/ajax/addproperty.php
+++ b/apps/contacts/ajax/addproperty.php
@@ -34,13 +34,31 @@ $name = $_POST['name'];
$value = $_POST['value'];
$parameters = isset($_POST['parameters'])?$_POST['parameters']:array();
-$property = $vcard->addProperty($name, $value, $parameters);
+$property = $vcard->addProperty($name, $value); //, $parameters);
$line = count($vcard->children) - 1;
+// Apparently Sabre_VObject_Parameter doesn't do well with multiple values or I don't know how to do it. Tanghus.
+foreach ($parameters as $key=>$element) {
+ if(is_array($element) && strtoupper($key) == 'TYPE') {
+ // FIXME: Maybe this doesn't only apply for TYPE?
+ // And it probably shouldn't be done here anyways :-/
+ foreach($element as $e){
+ if($e != '' && !is_null($e)){
+ $vcard->children[$line]->parameters[] = new Sabre_VObject_Parameter($key,$e);
+ }
+ }
+ }
+}
+
OC_Contacts_VCard::edit($id,$vcard->serialize());
+$adr_types = OC_Contacts_App::getTypesOfProperty('ADR');
+$phone_types = OC_Contacts_App::getTypesOfProperty('TEL');
+
$tmpl = new OC_Template('contacts','part.property');
+$tmpl->assign('adr_types',$adr_types);
+$tmpl->assign('phone_types',$phone_types);
$tmpl->assign('property',OC_Contacts_VCard::structureProperty($property,$line));
$page = $tmpl->fetchPage();
diff --git a/apps/contacts/templates/part.property.php b/apps/contacts/templates/part.property.php
index d930a9ca99d..e4010397500 100644
--- a/apps/contacts/templates/part.property.php
+++ b/apps/contacts/templates/part.property.php
@@ -25,15 +25,14 @@
<?php echo $_['property']['value']; ?>
<?php if(isset($_['property']['parameters']['TYPE']) && !empty($_['property']['parameters']['TYPE'])): ?>
<?php
- $types = array();
- foreach($_['property']['parameters']['TYPE'] as $type):
+ foreach($_['property']['parameters']['TYPE'] as $type) {
if (isset($_['phone_types'][strtoupper($type)])){
$types[]=$_['phone_types'][strtoupper($type)];
}
else{
$types[]=$l->t(ucwords(strtolower($type)));
}
- endforeach;
+ }
$label = join(' ', $types);
?>
(<?php echo $label; ?>)
diff --git a/apps/contacts/templates/part.setpropertyform.php b/apps/contacts/templates/part.setpropertyform.php
index 8635d7db1ce..3e0b8d49b52 100644
--- a/apps/contacts/templates/part.setpropertyform.php
+++ b/apps/contacts/templates/part.setpropertyform.php
@@ -45,7 +45,7 @@
<p class="contacts_property_name"><label for="tel"><?php echo $l->t('Phone'); ?></label></p>
<p class="contacts_property_data"><input id="tel" type="phone" name="value" value="<?php echo $_['property']['value'] ?>">
<select id="tel_type<?php echo $_['property']['checksum'] ?>" name="parameters[TYPE][]" multiple="multiple" data-placeholder="<?php echo $l->t('Type') ?>">
- <?php echo html_select_options($_['phone_types'], isset($_['property']['parameters']['TYPE'])?$_['property']['parameters']['TYPE']:'') ?>
+ <?php echo html_select_options($_['phone_types'], isset($_['property']['parameters']['TYPE'])?$_['property']['parameters']['TYPE']:array()) ?>
</select></p>
<?php elseif($_['property']['name']=='EMAIL'): ?>
<p class="contacts_property_name"><label for="email"><?php echo $l->t('Email'); ?></label></p>