More fixes on saving TYPE parameters.

Use jQuery Dialog for error messages instead of alert()
This commit is contained in:
Thomas Tanghus 2012-01-10 14:59:31 +01:00
parent 60653c0544
commit e316cddf65
4 changed files with 62 additions and 36 deletions

View File

@ -54,11 +54,24 @@ foreach( $add as $propname){
$value = $values[$propname];
if( isset( $parameters[$propname] ) && count( $parameters[$propname] )){
$prop_parameters = $parameters[$propname];
}
else{
$prop_parameters = array();
}
$vcard->addProperty($propname, $value, $prop_parameters);
$vcard->addProperty($propname, $value); //, $prop_parameters);
$line = count($vcard->children) - 1;
foreach ($prop_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);
}
}
} else {
$vcard->children[$line]->parameters[] = new Sabre_VObject_Parameter($key,$element);
}
}
}
$id = OC_Contacts_VCard::add($aid,$vcard->serialize());

View File

@ -48,6 +48,8 @@ foreach ($parameters as $key=>$element) {
$vcard->children[$line]->parameters[] = new Sabre_VObject_Parameter($key,$e);
}
}
} else {
$vcard->children[$line]->parameters[] = new Sabre_VObject_Parameter($key,$element);
}
}

View File

@ -18,9 +18,6 @@
* You should have received a copy of the GNU Affero General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
* TODO:
* If you add a contact, its thumbnail doesnt show in the list. But when you add another one it shows up, but not for the second contact added.
* Place a new contact in correct alphabetic order
*/
@ -31,6 +28,20 @@ Contacts={
$('#carddav_url').show();
$('#carddav_url_close').show();
},
messageBox:function(title, msg) {
var $dialog = $('<div></div>')
.html(msg)
.dialog({
autoOpen: true,
title: title,buttons: [
{
text: "Ok",
click: function() { $(this).dialog("close"); }
}
]
}
);
},
Addressbooks:{
overview:function(){
if($('#chooseaddressbook_dialog').dialog('isOpen') == true){
@ -85,7 +96,8 @@ Contacts={
Contacts.UI.Contacts.update();
Contacts.UI.Addressbooks.overview();
} else {
alert('Error: ' + data.message);
Contacts.UI.messageBox('Error', data.message);
//alert('Error: ' + data.message);
}
});
}
@ -114,37 +126,29 @@ Contacts={
}
},
Contacts:{
/**
* Reload the contacts list.
*/
update:function(){
$.getJSON('ajax/contacts.php',{},function(jsondata){
if(jsondata.status == 'success'){
$('#contacts').html(jsondata.data.page);
}
else{
alert(jsondata.data.message);
Contacts.UI.messageBox('Error',jsondata.data.message);
//alert(jsondata.data.message);
}
});
/*
var contactlist = $('#contacts');
var contacts = contactlist.children('li').get();
//alert(contacts);
contacts.sort(function(a, b) {
var compA = $(a).text().toUpperCase();
var compB = $(b).text().toUpperCase();
return (compA < compB) ? -1 : (compA > compB) ? 1 : 0;
})
$.each(contacts, function(idx, itm) { contactlist.append(itm); });
*/
setTimeout(Contacts.UI.Contacts.lazyupdate(), 500);
setTimeout(Contacts.UI.Contacts.lazyupdate, 500);
},
/**
* Add thumbnails to the contact list as they become visible in the viewport.
*/
lazyupdate:function(){
//alert('lazyupdate');
$('#contacts li').live('inview', function(){
if (!$(this).find('a').attr('style')) {
//alert($(this).data('id') + ' has background: ' + $(this).attr('style'));
$(this).find('a').css('background','url(thumbnail.php?id='+$(this).data('id')+') no-repeat');
}/* else {
alert($(this).data('id') + ' has style ' + $(this).attr('style').match('url'));
}*/
}
});
}
}
@ -168,7 +172,8 @@ $(document).ready(function(){
$('#leftcontent li[data-id="'+jsondata.data.id+'"]').addClass('active');
}
else{
alert(jsondata.data.message);
Contacts.UI.messageBox('Error', jsondata.data.message);
//alert(jsondata.data.message);
}
});
return false;
@ -183,7 +188,8 @@ $(document).ready(function(){
$('#rightcontent').empty();
}
else{
alert(jsondata.data.message);
Contacts.UI.messageBox('Error', jsondata.data.message);
//alert(jsondata.data.message);
}
});
return false;
@ -197,7 +203,8 @@ $(document).ready(function(){
$('#contacts_addproperty').hide();
}
else{
alert(jsondata.data.message);
Contacts.UI.messageBox('Error', jsondata.data.message);
//alert(jsondata.data.message);
}
});
return false;
@ -226,7 +233,8 @@ $(document).ready(function(){
$('#contacts_addpropertyform').before(jsondata.data.page);
}
else{
alert(jsondata.data.message);
Contacts.UI.messageBox('Error', jsondata.data.message);
//alert(jsondata.data.message);
}
}, 'json');
return false;
@ -248,7 +256,8 @@ $(document).ready(function(){
.find('select').chosen();
}
else{
alert(jsondata.data.message);
Contacts.UI.messageBox('Error', jsondata.data.message);
//alert(jsondata.data.message);
}
});
return false;
@ -277,7 +286,8 @@ $(document).ready(function(){
}
}
else{
alert(jsondata.data.message);
Contacts.UI.messageBox('Error', jsondata.data.message);
//alert(jsondata.data.message);
}
}, 'json');
return false;
@ -291,7 +301,8 @@ $(document).ready(function(){
.find('select').chosen();
}
else{
alert(jsondata.data.message);
Contacts.UI.messageBox('Error', jsondata.data.message);
//alert(jsondata.data.message);
}
});
return false;
@ -303,7 +314,8 @@ $(document).ready(function(){
$('.contacts_property[data-checksum="'+jsondata.data.oldchecksum+'"]').replaceWith(jsondata.data.page);
}
else{
alert(jsondata.data.message);
Contacts.UI.messageBox('Error', jsondata.data.message);
//alert(jsondata.data.message);
}
},'json');
return false;
@ -317,7 +329,8 @@ $(document).ready(function(){
$('.contacts_property[data-checksum="'+checksum+'"]').remove();
}
else{
alert(jsondata.data.message);
Contacts.UI.messageBox('Error', jsondata.data.message);
//alert(jsondata.data.message);
}
});
return false;
@ -357,4 +370,5 @@ $(document).ready(function(){
$('.action').tipsy();
$('.button').tipsy();
//Contacts.UI.messageBox('Hello','Sailor');
});

View File

@ -31,7 +31,4 @@ OC_Util::addStyle('contacts','formtastic');
</div>
<!-- Dialogs -->
<div id="dialog_holder"></div>
<div id="parsingfail_dialog" title="Parsing Fail">
<?php echo $l->t("There was a fail, while parsing the file."); ?>
</div>
<!-- End of Dialogs -->