Added some check for when addinf deleting contacts.

This commit is contained in:
Thomas Tanghus 2012-02-14 10:34:52 +01:00
parent 064f87680b
commit ae426ad115
3 changed files with 137 additions and 54 deletions

View File

@ -0,0 +1,62 @@
<?php
/**
* ownCloud - Addressbook
*
* @author Thomas Tanghus
* @copyright 2012 Thomas Tanghus <thomas@tanghus.net>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* 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/>.
*
*/
// Init owncloud
require_once('../../../lib/base.php');
function bailOut($msg) {
OC_JSON::error(array('data' => array('message' => $msg)));
OC_Log::write('contacts','ajax/newcontact.php: '.$msg, OC_Log::DEBUG);
exit();
}
function debug($msg) {
OC_Log::write('contacts','ajax/newcontact.php: '.$msg, OC_Log::DEBUG);
}
// foreach ($_POST as $key=>$element) {
// debug('_POST: '.$key.'=>'.$element);
// }
// Check if we are a user
OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('contacts');
// $addressbooks = OC_Contacts_Addressbook::all(OC_USER::getUser());
//
// $upload_max_filesize = OC_Helper::computerFileSize(ini_get('upload_max_filesize'));
// $post_max_size = OC_Helper::computerFileSize(ini_get('post_max_size'));
// $maxUploadFilesize = min($upload_max_filesize, $post_max_size);
//
// $freeSpace=OC_Filesystem::free_space('/');
// $freeSpace=max($freeSpace,0);
// $maxUploadFilesize = min($maxUploadFilesize ,$freeSpace);
// $adr_types = OC_Contacts_App::getTypesOfProperty('ADR');
// $phone_types = OC_Contacts_App::getTypesOfProperty('TEL');
$tmpl = new OC_Template('contacts','part.no_contacts');
// $tmpl->assign('uploadMaxFilesize', $maxUploadFilesize);
// $tmpl->assign('uploadMaxHumanFilesize', OC_Helper::humanFileSize($maxUploadFilesize));
// $tmpl->assign('adr_types',$adr_types);
// $tmpl->assign('phone_types',$phone_types);
// $tmpl->assign('addressbooks',$addressbooks);
// $tmpl->assign('id','');
$page = $tmpl->fetchPage();
OC_JSON::success(array('data' => array( 'page' => $page )));

View File

@ -132,7 +132,10 @@ Contacts={
$('#carddav_url_close').show();
},
messageBox:function(title, msg) {
//alert(msg);
if(msg.toLowerCase().indexOf('auth') > 0) {
// fugly hack, I know
alert(msg);
}
if($('#messagebox').dialog('isOpen') == true){
// NOTE: Do we ever get here?
$('#messagebox').dialog('moveToTop');
@ -253,6 +256,50 @@ Contacts={
//$.get(OC.linkTo('contacts', 'export.php'),{'contactid':this.id},function(jsondata){
//});
},
import:function(){
Contacts.UI.notImplemented();
},
add:function(n, fn, aid){ // add a new contact
console.log('Add contact: ' + n + ', ' + fn + ' ' + aid);
$.post(OC.filePath('contacts', 'ajax', 'addcontact.php'), { n: n, fn: fn, aid: aid },
function(jsondata) {
if (jsondata.status == 'success'){
$('#rightcontent').data('id',jsondata.data.id);
var id = jsondata.data.id;
$.getJSON('ajax/contactdetails.php',{'id':id},function(jsondata){
if(jsondata.status == 'success'){
Contacts.UI.loadHandlers();
Contacts.UI.Card.loadContact(jsondata.data);
$('#leftcontent .active').removeClass('active');
var item = '<li data-id="'+jsondata.data.id+'" class="active"><a href="index.php?id='+jsondata.data.id+'" style="background: url(thumbnail.php?id='+jsondata.data.id+') no-repeat scroll 0% 0% transparent;">'+Contacts.UI.Card.fn+'</a></li>';
var added = false;
$('#leftcontent ul li').each(function(){
if ($(this).text().toLowerCase() > Contacts.UI.Card.fn.toLowerCase()) {
$(this).before(item).fadeIn('fast');
added = true;
return false;
}
});
if(!added) {
$('#leftcontent ul').append(item);
}
}
else{
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
//alert(jsondata.data.message);
}
});
$('#contact_identity').show();
$('#actionbar').show();
// TODO: Add to contacts list.
}
else{
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
//alert(jsondata.data.message);
}
});
},
delete:function() {
$('#contacts_deletecard').tipsy('hide');
$.getJSON('ajax/deletecard.php',{'id':this.id},function(jsondata){
@ -262,17 +309,31 @@ Contacts={
//$('#rightcontent').empty();
this.id = this.fn = this.fullname = this.shortname = this.famname = this.givname = this.addname = this.honpre = this.honsuf = '';
this.data = undefined;
// Load empty page.
var firstid = $('#contacts li:first-child').data('id');
console.log('trying to load: ' + firstid);
$.getJSON(OC.filePath('contacts', 'ajax', 'contactdetails.php'),{'id':firstid},function(jsondata){
if(jsondata.status == 'success'){
Contacts.UI.Card.loadContact(jsondata.data);
}
else{
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
}
});
// Load first in list.
if($('#contacts li').length > 0) {
var firstid = $('#contacts li:first-child').data('id');
console.log('trying to load: ' + firstid);
$.getJSON(OC.filePath('contacts', 'ajax', 'contactdetails.php'),{'id':firstid},function(jsondata){
if(jsondata.status == 'success'){
Contacts.UI.Card.loadContact(jsondata.data);
}
else{
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
}
});
} else {
// load intro page
$.getJSON('ajax/loadintro.php',{},function(jsondata){
if(jsondata.status == 'success'){
id = '';
$('#rightcontent').data('id','');
$('#rightcontent').html(jsondata.data.page);
}
else{
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
}
});
}
}
else{
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
@ -285,6 +346,7 @@ Contacts={
$('#contact_communication').hide();
this.data = jsondata;
this.id = this.data.id;
$('#rightcontent').data('id',this.id);
//console.log('loaded: ' + this.data.FN[0]['value']);
this.populateNameFields();
this.loadPhoto();
@ -397,47 +459,6 @@ Contacts={
$('#rightcontent').html(jsondata.data.page);
Contacts.UI.Card.editName();
}
else{
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
alert(jsondata.data.message);
}
});
},
add:function(n, fn, aid){ // add a new contact
console.log('Add contact: ' + n + ', ' + fn + ' ' + aid);
$.post(OC.filePath('contacts', 'ajax', 'addcontact.php'), { n: n, fn: fn, aid: aid },
function(jsondata) {
if (jsondata.status == 'success'){
$('#rightcontent').data('id',jsondata.data.id);
var id = jsondata.data.id;
$.getJSON('ajax/contactdetails.php',{'id':id},function(jsondata){
if(jsondata.status == 'success'){
Contacts.UI.loadHandlers();
Contacts.UI.Card.loadContact(jsondata.data);
$('#leftcontent .active').removeClass('active');
var item = '<li data-id="'+jsondata.data.id+'" class="active"><a href="index.php?id='+jsondata.data.id+'" style="background: url(thumbnail.php?id='+jsondata.data.id+') no-repeat scroll 0% 0% transparent;">'+Contacts.UI.Card.fn+'</a></li>';
var added = false;
$('#leftcontent ul li').each(function(){
if ($(this).text().toLowerCase() > Contacts.UI.Card.fn.toLowerCase()) {
$(this).before(item).fadeIn('fast');
added = true;
return false;
}
});
if(!added) {
$('#leftcontent ul').append(item);
}
}
else{
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
//alert(jsondata.data.message);
}
});
$('#contact_identity').show();
$('#actionbar').show();
// TODO: Add to contacts list.
}
else{
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
//alert(jsondata.data.message);

View File

@ -2,7 +2,7 @@
You have no contacts in your list.
<div id="selections">
<input type="button" value="Import contacts" onclick="Contacts.UI.Addressbooks.import()" />
<input type="button" value="Add contact" onclick="Contacts.UI.Card.add()" />
<input type="button" value="Add contact" onclick="Contacts.UI.Card.editNew()" />
<input type="button" value="Edit addressbooks" onclick="Contacts.UI.Addressbooks.overview()" />
</div>
</div>