From: Thomas Tanghus Date: Mon, 5 Dec 2011 02:38:06 +0000 (+0100) Subject: Fixed adding, editing and deleting address books. One minor UI flaw remains. X-Git-Tag: v3.0~79^2~1^2~10 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=830efdccac71ebbd4ee5f9414abd0878f2ff9349;p=nextcloud-server.git Fixed adding, editing and deleting address books. One minor UI flaw remains. --- diff --git a/apps/contacts/ajax/addbook.php b/apps/contacts/ajax/addbook.php index ce74ccf9d28..d8e5a0ecd59 100644 --- a/apps/contacts/ajax/addbook.php +++ b/apps/contacts/ajax/addbook.php @@ -12,8 +12,12 @@ if(!OC_USER::isLoggedIn()) { die(""); } OC_JSON::checkAppEnabled('contacts'); +$book = array( + 'id' => 'new', + 'displayname' => '', +); $tmpl = new OC_Template('contacts', 'part.editaddressbook'); $tmpl->assign('new', true); -$tmpl->assign('book', $book); +$tmpl->assign('addressbook', $book); $tmpl->printPage(); ?> diff --git a/apps/contacts/ajax/chooseaddressbook.php b/apps/contacts/ajax/chooseaddressbook.php index e150f97f541..d55fdf3e93b 100644 --- a/apps/contacts/ajax/chooseaddressbook.php +++ b/apps/contacts/ajax/chooseaddressbook.php @@ -12,7 +12,7 @@ if(!OC_USER::isLoggedIn()) { die(""); } OC_JSON::checkAppEnabled('contacts'); -OC_Log::write('contacts','chooseaddressbook.php',OC_Log::DEBUG); +/* OC_Log::write('contacts','chooseaddressbook.php',OC_Log::DEBUG); */ $output = new OC_TEMPLATE("contacts", "part.chooseaddressbook"); $output -> printpage(); diff --git a/apps/contacts/ajax/createaddressbook.php b/apps/contacts/ajax/createaddressbook.php new file mode 100644 index 00000000000..3dd38703c17 --- /dev/null +++ b/apps/contacts/ajax/createaddressbook.php @@ -0,0 +1,26 @@ + + * Copyright (c) 2011 Bart Visscher + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ +require_once('../../../lib/base.php'); + +$l10n = new OC_L10N('contacts'); + +// Check if we are a user +OC_JSON::checkLoggedIn(); +OC_JSON::checkAppEnabled('contacts'); + +$userid = OC_User::getUser(); +$bookid = OC_Contacts_Addressbook::add($userid, $_POST['name'], null); +OC_Contacts_Addressbook::setActive($bookid, 1); +$book = OC_Contacts_Addressbook::find($bookid); +$tmpl = new OC_Template('contacts', 'part.chooseaddressbook.rowfields'); +$tmpl->assign('addressbook', $book); +OC_JSON::success(array( + 'page' => $tmpl->fetchPage(), + 'bookid' => $bookid, +)); diff --git a/apps/contacts/ajax/deletebook.php b/apps/contacts/ajax/deletebook.php index c13217ef2e2..238975436e7 100644 --- a/apps/contacts/ajax/deletebook.php +++ b/apps/contacts/ajax/deletebook.php @@ -23,7 +23,9 @@ // Init owncloud require_once('../../../lib/base.php'); -$id = $_GET['id']; +$id = $_POST['id']; + +OC_Log::write('contacts','deletebook.php: '.$id,OC_Log::DEBUG); $l10n = new OC_L10N('contacts'); diff --git a/apps/contacts/ajax/editaddressbook.php b/apps/contacts/ajax/editaddressbook.php new file mode 100644 index 00000000000..abdad09dea0 --- /dev/null +++ b/apps/contacts/ajax/editaddressbook.php @@ -0,0 +1,20 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +require_once('../../../lib/base.php'); +$l10n = new OC_L10N('contacts'); +if(!OC_USER::isLoggedIn()) { + die(""); +} +OC_JSON::checkAppEnabled('contacts'); +$addressbook = OC_Contacts_Addressbook::find($_GET['bookid']); +$tmpl = new OC_Template("contacts", "part.editaddressbook"); +$tmpl->assign('new', false); +$tmpl->assign('addressbook', $addressbook); +$tmpl->printPage(); +?> diff --git a/apps/contacts/ajax/updateaddressbook.php b/apps/contacts/ajax/updateaddressbook.php new file mode 100644 index 00000000000..ccf1cef03f7 --- /dev/null +++ b/apps/contacts/ajax/updateaddressbook.php @@ -0,0 +1,26 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +require_once('../../../lib/base.php'); + +$l10n = new OC_L10N('contacts'); + +// Check if we are a user +OC_JSON::checkLoggedIn(); +OC_JSON::checkAppEnabled('contacts'); + +$bookid = $_POST['id']; +OC_Contacts_Addressbook::edit($bookid, $_POST['name'], null); +OC_Contacts_Addressbook::setActive($bookid, $_POST['active']); +$addressbook = OC_Contacts_Addressbook::find($bookid); +$tmpl = new OC_Template('contacts', 'part.chooseaddressbook.rowfields'); +$tmpl->assign('book', $book); +OC_JSON::success(array( + 'page' => $tmpl->fetchPage(), + 'addressbook' => $addressbook, +)); diff --git a/apps/contacts/js/interface.js b/apps/contacts/js/interface.js index 077bbd2071e..f34cde89576 100644 --- a/apps/contacts/js/interface.js +++ b/apps/contacts/js/interface.js @@ -36,7 +36,7 @@ Contacts={ */ if (data.status == 'success'){ checkbox.checked = data.active == 1; - alert('Update Contacts list.'); + alert('TODO: Update Contacts list.'); /* TODO: Update Contacts list. if (data.active == 1){ $('#calendar_holder').fullCalendar('addEventSource', data.eventSource); @@ -53,6 +53,11 @@ Contacts={ $(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){ @@ -61,38 +66,35 @@ Contacts={ $.post(OC.filePath('contacts', 'ajax', 'deletebook.php'), { id: bookid}, function(data) { if (data.status == 'success'){ - alert('TODO: Update Contacts list.'); + /* alert('TODO: Update Contacts list.'); */ /* TODO: Update Contacts list. var url = 'ajax/deletebook.php?id='+bookid; - $('#calendar_holder').fullCalendar('removeEventSource', url); - $('#choosecalendar_dialog').dialog('destroy').remove();*/ + $('#calendar_holder').fullCalendar('removeEventSource', url);*/ + $('#chooseaddressbook_dialog').dialog('destroy').remove(); Contacts.UI.Addressbooks.overview(); + } else { + alert('Error: ' + data.message); } }); } }, submit:function(button, bookid){ - alert('TODO: Add or update address book.'); - /* TODO: Add or update address book. - var displayname = $("#displayname_"+calendarid).val(); - var active = $("#edit_active_"+calendarid+":checked").length; - var description = $("#description_"+calendarid).val(); - var calendarcolor = $("#calendarcolor_"+calendarid).val(); + var displayname = $("#displayname_"+bookid).val(); + var active = $("#edit_active_"+bookid+":checked").length; + var description = $("#description_"+bookid).val(); var url; - if (calendarid == 'new'){ - url = "ajax/createcalendar.php"; + if (bookid == 'new'){ + url = OC.filePath('contacts', 'ajax', 'createaddressbook.php'); }else{ - url = "ajax/updatecalendar.php"; + url = OC.filePath('contacts', 'ajax', 'updateaddressbook.php'); } - $.post(url, { id: calendarid, name: displayname, active: active, description: description, color: calendarcolor }, + $.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(); - $('#calendar_holder').fullCalendar('removeEventSource', data.eventSource.url); - $('#calendar_holder').fullCalendar('addEventSource', data.eventSource); } - }, 'json');*/ + }); }, cancel:function(button, bookid){ $(button).closest('tr').prev().show().next().remove(); diff --git a/apps/contacts/templates/part.chooseaddressbook.rowfields.php b/apps/contacts/templates/part.chooseaddressbook.rowfields.php index f6c11310960..7f7b5a9154e 100644 --- a/apps/contacts/templates/part.chooseaddressbook.rowfields.php +++ b/apps/contacts/templates/part.chooseaddressbook.rowfields.php @@ -1,4 +1,4 @@ "; echo ""; - echo "t("CardDav Link") . "\" class=\"action\">t("Download") . "\" class=\"action\">t("Delete") . "\" class=\"action\">"; + echo "t("CardDav Link") . "\" class=\"action\">t("Download") . "\" class=\"action\">t("Edit") . "\" class=\"action\" onclick=\"Contacts.UI.Addressbooks.editAddressbook(this, " . $_['addressbook']["id"] . ");\">t("Delete") . "\" class=\"action\">";