1
0
mirror of https://github.com/owncloudarchive/contacts.git synced 2024-12-04 15:24:35 +01:00
OwncloudContactsOfficial/js/interface.js

283 lines
8.7 KiB
JavaScript
Raw Normal View History

Contacts={
space:' ',
UI:{
showCardDAVUrl:function(username, bookname){
$('#carddav_url').val(totalurl + '/' + username + '/' + bookname);
$('#carddav_url').show();
$('#carddav_url_close').show();
},
Addressbooks:{
overview:function(){
if($('#chooseaddressbook_dialog').dialog('isOpen') == true){
$('#chooseaddressbook_dialog').dialog('moveToTop');
}else{
$('#dialog_holder').load(OC.filePath('contacts', 'ajax', 'chooseaddressbook.php'), function(){
$('#chooseaddressbook_dialog').dialog({
width : 600,
close : function(event, ui) {
$(this).dialog('destroy').remove();
}
});
});
}
},
activation:function(checkbox, bookid)
{
$.post(OC.filePath('contacts', 'ajax', 'activation.php'), { bookid: bookid, active: checkbox.checked?1:0 },
function(data) {
/*
* Arguments:
* data.status
* data.bookid
* data.active
*/
if (data.status == 'success'){
checkbox.checked = data.active == 1;
Contacts.UI.Contacts.update();
}
});
},
newAddressbook:function(object){
var tr = $(document.createElement('tr'))
.load(OC.filePath('contacts', 'ajax', 'addbook.php'));
$(object).closest('tr').after(tr).hide();
/* TODO: Shouldn't there be some kinda error checking here? */
},
editAddressbook:function(object, bookid){
var tr = $(document.createElement('tr'))
.load(OC.filePath('contacts', 'ajax', 'editaddressbook.php') + "?bookid="+bookid);
$(object).closest('tr').after(tr).hide();
},
deleteAddressbook:function(bookid){
var check = confirm("Do you really want to delete this address book?");
if(check == false){
return false;
}else{
$.post(OC.filePath('contacts', 'ajax', 'deletebook.php'), { id: bookid},
function(data) {
if (data.status == 'success'){
$('#chooseaddressbook_dialog').dialog('destroy').remove();
Contacts.UI.Contacts.update();
Contacts.UI.Addressbooks.overview();
} else {
alert('Error: ' + data.message);
}
});
}
},
submit:function(button, bookid){
var displayname = $("#displayname_"+bookid).val();
var active = $("#edit_active_"+bookid+":checked").length;
var description = $("#description_"+bookid).val();
var url;
if (bookid == 'new'){
url = OC.filePath('contacts', 'ajax', 'createaddressbook.php');
}else{
url = OC.filePath('contacts', 'ajax', 'updateaddressbook.php');
}
$.post(url, { id: bookid, name: displayname, active: active, description: description },
function(data){
if(data.status == 'success'){
$(button).closest('tr').prev().html(data.page).show().next().remove();
}
});
},
cancel:function(button, bookid){
$(button).closest('tr').prev().show().next().remove();
}
},
Contacts:{
update:function(){
$.getJSON('ajax/contacts.php',{},function(jsondata){
if(jsondata.status == 'success'){
$('#contacts').html(jsondata.data.page);
}
else{
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); });
*/
}
}
}
}
2011-08-06 22:32:06 +02:00
$(document).ready(function(){
2011-09-08 23:36:47 +02:00
/*-------------------------------------------------------------------------
* Event handlers
*-----------------------------------------------------------------------*/
2011-08-11 10:08:02 +02:00
$('#leftcontent li').live('click',function(){
var id = $(this).data('id');
2011-09-08 23:36:47 +02:00
var oldid = $('#rightcontent').data('id');
if(oldid != 0){
$('#leftcontent li[data-id="'+oldid+'"]').removeClass('active');
}
2011-08-09 13:53:58 +02:00
$.getJSON('ajax/getdetails.php',{'id':id},function(jsondata){
2011-08-06 22:32:06 +02:00
if(jsondata.status == 'success'){
2011-08-11 10:08:02 +02:00
$('#rightcontent').data('id',jsondata.data.id);
$('#rightcontent').html(jsondata.data.page);
2011-09-08 23:36:47 +02:00
$('#leftcontent li[data-id="'+jsondata.data.id+'"]').addClass('active');
2011-08-06 22:32:06 +02:00
}
else{
alert(jsondata.data.message);
}
});
return false;
});
2011-08-06 23:29:25 +02:00
2011-08-09 13:53:58 +02:00
$('#contacts_deletecard').live('click',function(){
2011-08-11 10:08:02 +02:00
var id = $('#rightcontent').data('id');
2011-08-09 13:53:58 +02:00
$.getJSON('ajax/deletecard.php',{'id':id},function(jsondata){
if(jsondata.status == 'success'){
2011-08-11 10:08:02 +02:00
$('#leftcontent [data-id="'+jsondata.data.id+'"]').remove();
$('#rightcontent').data('id','');
$('#rightcontent').empty();
2011-08-09 13:53:58 +02:00
}
else{
alert(jsondata.data.message);
}
});
return false;
});
$('#contacts_addproperty').live('click',function(){
2011-08-11 10:08:02 +02:00
var id = $('#rightcontent').data('id');
2011-08-09 13:53:58 +02:00
$.getJSON('ajax/showaddproperty.php',{'id':id},function(jsondata){
if(jsondata.status == 'success'){
$('#contacts_details_list').append(jsondata.data.page);
$('#contacts_addproperty').hide();
2011-08-09 13:53:58 +02:00
}
else{
alert(jsondata.data.message);
}
});
2011-08-06 23:29:25 +02:00
return false;
});
2011-08-09 13:53:58 +02:00
$('#contacts_addpropertyform [name="name"]').live('change',function(){
$('#contacts_addpropertyform #contacts_addresspart').remove();
$('#contacts_addpropertyform #contacts_phonepart').remove();
$('#contacts_addpropertyform #contacts_fieldpart').remove();
$('#contacts_addpropertyform #contacts_generic').remove();
if($(this).val() == 'ADR'){
2011-10-23 11:35:47 +02:00
$('#contacts_addresspart').clone().insertAfter($('#contacts_addpropertyform .contacts_property_name'));
2011-08-09 13:53:58 +02:00
}
else if($(this).val() == 'TEL'){
2011-10-23 11:35:47 +02:00
$('#contacts_phonepart').clone().insertAfter($('#contacts_addpropertyform .contacts_property_name'));
2011-08-09 13:53:58 +02:00
}
else{
2011-10-23 11:35:47 +02:00
$('#contacts_generic').clone().insertAfter($('#contacts_addpropertyform .contacts_property_name'));
2011-08-09 13:53:58 +02:00
}
$('#contacts_addpropertyform .contacts_property_data select').chosen();
2011-08-09 13:53:58 +02:00
});
$('#contacts_addpropertyform input[type="submit"]').live('click',function(){
$.post('ajax/addproperty.php',$('#contacts_addpropertyform').serialize(),function(jsondata){
if(jsondata.status == 'success'){
2011-10-22 21:28:20 +02:00
$('#contacts_addpropertyform').before(jsondata.data.page);
2011-08-09 13:53:58 +02:00
}
else{
alert(jsondata.data.message);
}
}, 'json');
return false;
});
$('#chooseaddressbook').click(function(){
Contacts.UI.Addressbooks.overview();
return false;
});
2011-08-09 13:53:58 +02:00
$('#contacts_newcontact').click(function(){
$.getJSON('ajax/showaddcard.php',{},function(jsondata){
if(jsondata.status == 'success'){
2011-08-11 10:08:02 +02:00
$('#rightcontent').data('id','');
$('#rightcontent').html(jsondata.data.page)
.find('select').chosen();
2011-08-09 13:53:58 +02:00
}
else{
alert(jsondata.data.message);
}
});
return false;
});
$('#contacts_addcardform input[type="submit"]').live('click',function(){
$.post('ajax/addcard.php',$('#contacts_addcardform').serialize(),function(jsondata){
if(jsondata.status == 'success'){
2011-08-11 10:08:02 +02:00
$('#rightcontent').data('id',jsondata.data.id);
$('#rightcontent').html(jsondata.data.page);
$('#leftcontent .active').removeClass('active');
$('#leftcontent ul').append('<li data-id="'+jsondata.data.id+'" class="active"><a href="index.php?id='+jsondata.data.id+'">'+jsondata.data.name+'</a></li>');
2011-08-09 13:53:58 +02:00
}
else{
alert(jsondata.data.message);
}
}, 'json');
return false;
});
$('.contacts_property [data-use="edit"]').live('click',function(){
2011-08-11 10:08:02 +02:00
var id = $('#rightcontent').data('id');
2011-12-02 21:24:48 +01:00
var checksum = $(this).parents('.contacts_property').first().data('checksum');
$.getJSON('ajax/showsetproperty.php',{'id': id, 'checksum': checksum },function(jsondata){
2011-08-09 13:53:58 +02:00
if(jsondata.status == 'success'){
$('.contacts_property[data-checksum="'+checksum+'"]').html(jsondata.data.page)
.find('select').chosen();
2011-08-09 13:53:58 +02:00
}
else{
alert(jsondata.data.message);
}
});
return false;
});
$('#contacts_setpropertyform input[type="submit"]').live('click',function(){
$.post('ajax/setproperty.php',$(this).parents('form').first().serialize(),function(jsondata){
2011-08-09 13:53:58 +02:00
if(jsondata.status == 'success'){
$('.contacts_property[data-checksum="'+jsondata.data.oldchecksum+'"]').replaceWith(jsondata.data.page);
2011-08-09 13:53:58 +02:00
}
else{
alert(jsondata.data.message);
}
},'json');
return false;
});
$('.contacts_property [data-use="delete"]').live('click',function(){
2011-08-11 10:08:02 +02:00
var id = $('#rightcontent').data('id');
var checksum = $(this).parents('li').first().data('checksum');
$.getJSON('ajax/deleteproperty.php',{'id': id, 'checksum': checksum },function(jsondata){
2011-08-09 13:53:58 +02:00
if(jsondata.status == 'success'){
$('.contacts_property[data-checksum="'+checksum+'"]').remove();
2011-08-09 13:53:58 +02:00
}
else{
alert(jsondata.data.message);
}
});
return false;
});
$('.contacts_property').live('mouseenter',function(){
$(this).find('span[data-use]').show();
2011-08-09 13:53:58 +02:00
});
$('.contacts_property').live('mouseleave',function(){
$(this).find('span[data-use]').hide();
2011-08-09 13:53:58 +02:00
});
$('#contacts_addcardform select').chosen();
2011-08-06 22:32:06 +02:00
});