Addressbooks settings rewrite and cleanup.
This commit is contained in:
parent
47e4793c30
commit
a8faae4f42
|
@ -1,32 +0,0 @@
|
||||||
<?php
|
|
||||||
/**
|
|
||||||
* Copyright (c) 2011 Thomas Tanghus <thomas@tanghus.net>
|
|
||||||
* Copyright (c) 2011 Bart Visscher <bartv@thisnet.nl>
|
|
||||||
* This file is licensed under the Affero General Public License version 3 or
|
|
||||||
* later.
|
|
||||||
* See the COPYING-README file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
OCP\JSON::checkLoggedIn();
|
|
||||||
OCP\JSON::checkAppEnabled('contacts');
|
|
||||||
OCP\JSON::callCheck();
|
|
||||||
|
|
||||||
$bookid = $_POST['bookid'];
|
|
||||||
$book = OC_Contacts_App::getAddressbook($bookid);// is owner access check
|
|
||||||
|
|
||||||
if(!OC_Contacts_Addressbook::setActive($bookid, $_POST['active'])) {
|
|
||||||
OCP\Util::writeLog('contacts',
|
|
||||||
'ajax/activation.php: Error activating addressbook: '. $bookid,
|
|
||||||
OCP\Util::ERROR);
|
|
||||||
OCP\JSON::error(array(
|
|
||||||
'data' => array(
|
|
||||||
'message' => OC_Contacts_App::$l10n->t('Error (de)activating addressbook.'))));
|
|
||||||
exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
OCP\JSON::success(array(
|
|
||||||
'active' => OC_Contacts_Addressbook::isActive($bookid),
|
|
||||||
'bookid' => $bookid,
|
|
||||||
'book' => $book,
|
|
||||||
));
|
|
|
@ -6,13 +6,13 @@
|
||||||
* later.
|
* later.
|
||||||
* See the COPYING-README file.
|
* See the COPYING-README file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
// Check if we are a user
|
// Check if we are a user
|
||||||
OCP\JSON::checkLoggedIn();
|
OCP\JSON::checkLoggedIn();
|
||||||
OCP\JSON::checkAppEnabled('contacts');
|
OCP\JSON::checkAppEnabled('contacts');
|
||||||
OCP\JSON::callCheck();
|
OCP\JSON::callCheck();
|
||||||
require_once 'loghandler.php';
|
require_once __DIR__.'/../loghandler.php';
|
||||||
|
|
||||||
debug('name: '.$_POST['name']);
|
debug('name: '.$_POST['name']);
|
||||||
|
|
||||||
|
@ -34,4 +34,4 @@ if(!OC_Contacts_Addressbook::setActive($bookid, 1)) {
|
||||||
bailOut('Error activating addressbook.');
|
bailOut('Error activating addressbook.');
|
||||||
}
|
}
|
||||||
$addressbook = OC_Contacts_App::getAddressbook($bookid);
|
$addressbook = OC_Contacts_App::getAddressbook($bookid);
|
||||||
OCP\JSON::success(array('data' => $addressbook));
|
OCP\JSON::success(array('addressbook' => $addressbook));
|
|
@ -24,9 +24,12 @@
|
||||||
OCP\JSON::checkLoggedIn();
|
OCP\JSON::checkLoggedIn();
|
||||||
OCP\JSON::checkAppEnabled('contacts');
|
OCP\JSON::checkAppEnabled('contacts');
|
||||||
OCP\JSON::callCheck();
|
OCP\JSON::callCheck();
|
||||||
|
require_once __DIR__.'/../loghandler.php';
|
||||||
|
|
||||||
//$id = $_GET['id'];
|
|
||||||
$id = $_POST['id'];
|
$id = $_POST['id'];
|
||||||
|
if(!$id) {
|
||||||
|
bailOut(OC_Contacts_App::$l10n->t('id is not set.'));
|
||||||
|
}
|
||||||
OC_Contacts_App::getAddressbook( $id ); // is owner access check
|
OC_Contacts_App::getAddressbook( $id ); // is owner access check
|
||||||
|
|
||||||
OC_Contacts_Addressbook::delete($id);
|
OC_Contacts_Addressbook::delete($id);
|
|
@ -6,33 +6,34 @@
|
||||||
* See the COPYING-README file.
|
* See the COPYING-README file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Check if we are a user
|
// Check if we are a user
|
||||||
OCP\JSON::checkLoggedIn();
|
OCP\JSON::checkLoggedIn();
|
||||||
OCP\JSON::checkAppEnabled('contacts');
|
OCP\JSON::checkAppEnabled('contacts');
|
||||||
require_once 'loghandler.php';
|
require_once __DIR__.'/../loghandler.php';
|
||||||
|
|
||||||
$bookid = $_POST['id'];
|
|
||||||
OC_Contacts_App::getAddressbook($bookid); // is owner access check
|
|
||||||
|
|
||||||
|
$id = $_POST['id'];
|
||||||
$name = trim(strip_tags($_POST['name']));
|
$name = trim(strip_tags($_POST['name']));
|
||||||
|
$description = trim(strip_tags($_POST['description']));
|
||||||
|
if(!$id) {
|
||||||
|
bailOut(OC_Contacts_App::$l10n->t('id is not set.'));
|
||||||
|
}
|
||||||
|
|
||||||
if(!$name) {
|
if(!$name) {
|
||||||
bailOut(OC_Contacts_App::$l10n->t('Cannot update addressbook with an empty name.'));
|
bailOut(OC_Contacts_App::$l10n->t('Cannot update addressbook with an empty name.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!OC_Contacts_Addressbook::edit($bookid, $name, null)) {
|
if(!OC_Contacts_Addressbook::edit($id, $name, $description)) {
|
||||||
bailOut(OC_Contacts_App::$l10n->t('Error updating addressbook.'));
|
bailOut(OC_Contacts_App::$l10n->t('Error updating addressbook.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!OC_Contacts_Addressbook::setActive($bookid, $_POST['active'])) {
|
if(!OC_Contacts_Addressbook::setActive($id, $_POST['active'])) {
|
||||||
bailOut(OC_Contacts_App::$l10n->t('Error (de)activating addressbook.'));
|
bailOut(OC_Contacts_App::$l10n->t('Error (de)activating addressbook.'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$addressbook = OC_Contacts_App::getAddressbook($bookid);
|
OC_Contacts_App::getAddressbook($id); // is owner access check
|
||||||
$tmpl = new OCP\Template('contacts', 'part.chooseaddressbook.rowfields');
|
$addressbook = OC_Contacts_App::getAddressbook($id);
|
||||||
$tmpl->assign('addressbook', $addressbook);
|
|
||||||
OCP\JSON::success(array(
|
OCP\JSON::success(array(
|
||||||
'page' => $tmpl->fetchPage(),
|
|
||||||
'addressbook' => $addressbook,
|
'addressbook' => $addressbook,
|
||||||
));
|
));
|
|
@ -1,15 +0,0 @@
|
||||||
<?php
|
|
||||||
/**
|
|
||||||
* Copyright (c) 2011 Thomas Tanghus <thomas@tanghus.net>
|
|
||||||
* This file is licensed under the Affero General Public License version 3 or
|
|
||||||
* later.
|
|
||||||
* See the COPYING-README file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
OCP\JSON::checkLoggedIn();
|
|
||||||
OCP\JSON::checkAppEnabled('contacts');
|
|
||||||
|
|
||||||
$tmpl = new OCP\Template("contacts", "part.chooseaddressbook");
|
|
||||||
$page = $tmpl->fetchPage();
|
|
||||||
OCP\JSON::success(array('data' => array('page'=>$page)));
|
|
|
@ -1,36 +0,0 @@
|
||||||
<?php
|
|
||||||
/**
|
|
||||||
* Copyright (c) 2011-2012 Thomas Tanghus <thomas@tanghus.net>
|
|
||||||
* Copyright (c) 2011 Bart Visscher <bartv@thisnet.nl>
|
|
||||||
* This file is licensed under the Affero General Public License version 3 or
|
|
||||||
* later.
|
|
||||||
* See the COPYING-README file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
// Check if we are a user
|
|
||||||
OCP\JSON::checkLoggedIn();
|
|
||||||
OCP\JSON::checkAppEnabled('contacts');
|
|
||||||
OCP\JSON::callCheck();
|
|
||||||
require_once 'loghandler.php';
|
|
||||||
|
|
||||||
$userid = OCP\USER::getUser();
|
|
||||||
$name = trim(strip_tags($_POST['name']));
|
|
||||||
if(!$name) {
|
|
||||||
bailOut('Cannot add addressbook with an empty name.');
|
|
||||||
}
|
|
||||||
$bookid = OC_Contacts_Addressbook::add($userid, $name, null);
|
|
||||||
if(!$bookid) {
|
|
||||||
bailOut('Error adding addressbook: '.$name);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!OC_Contacts_Addressbook::setActive($bookid, 1)) {
|
|
||||||
bailOut('Error activating addressbook.');
|
|
||||||
}
|
|
||||||
$addressbook = OC_Contacts_App::getAddressbook($bookid);
|
|
||||||
$tmpl = new OCP\Template('contacts', 'part.chooseaddressbook.rowfields');
|
|
||||||
$tmpl->assign('addressbook', $addressbook);
|
|
||||||
OCP\JSON::success(array(
|
|
||||||
'page' => $tmpl->fetchPage(),
|
|
||||||
'addressbook' => $addressbook,
|
|
||||||
));
|
|
|
@ -1,16 +0,0 @@
|
||||||
<?php
|
|
||||||
/**
|
|
||||||
* Copyright (c) 2011 Bart Visscher <bartv@thisnet.nl>
|
|
||||||
* This file is licensed under the Affero General Public License version 3 or
|
|
||||||
* later.
|
|
||||||
* See the COPYING-README file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
OCP\JSON::checkLoggedIn();
|
|
||||||
OCP\JSON::checkAppEnabled('contacts');
|
|
||||||
$addressbook = OC_Contacts_App::getAddressbook($_GET['bookid']);
|
|
||||||
$tmpl = new OCP\Template("contacts", "part.editaddressbook");
|
|
||||||
$tmpl->assign('new', false);
|
|
||||||
$tmpl->assign('addressbook', $addressbook);
|
|
||||||
$tmpl->printPage();
|
|
|
@ -134,3 +134,10 @@ input[type="checkbox"] { width: 20px; height: 20px; vertical-align: bottom; }
|
||||||
.help-section dl { width: 100%; float: left; clear: right; margin: 0; padding: 0; cursor: normal; }
|
.help-section dl { width: 100%; float: left; clear: right; margin: 0; padding: 0; cursor: normal; }
|
||||||
.help-section dt { display: table-cell; clear: left; float: left; width: 35%; margin: 0; padding: 0.2em; text-align: right; text-overflow: ellipsis; vertical-align: text-bottom; font-weight: bold: }
|
.help-section dt { display: table-cell; clear: left; float: left; width: 35%; margin: 0; padding: 0.2em; text-align: right; text-overflow: ellipsis; vertical-align: text-bottom; font-weight: bold: }
|
||||||
.help-section dd { display: table-cell; clear: right; float: left; margin: 0; padding: 0.2em; white-space: nowrap; vertical-align: text-bottom; }
|
.help-section dd { display: table-cell; clear: right; float: left; margin: 0; padding: 0.2em; white-space: nowrap; vertical-align: text-bottom; }
|
||||||
|
.contacts-settings dl { width: 100%; }
|
||||||
|
.addressbooks-settings table { width: 100%; }
|
||||||
|
.addressbooks-settings .actions { width: 100%; white-space: nowrap; }
|
||||||
|
.addressbooks-settings .actions * { float: left; }
|
||||||
|
.addressbooks-settings .actions input.name { width: 5em; }
|
||||||
|
.addressbooks-settings .actions input.name { width: 7em; }
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ Contacts={
|
||||||
* cancel: If set cancel all ongoing timer events and hide the notification.
|
* cancel: If set cancel all ongoing timer events and hide the notification.
|
||||||
*/
|
*/
|
||||||
notify:function(params) {
|
notify:function(params) {
|
||||||
self = this;
|
var self = this;
|
||||||
if(!self.notifier) {
|
if(!self.notifier) {
|
||||||
self.notifier = $('#notification');
|
self.notifier = $('#notification');
|
||||||
}
|
}
|
||||||
|
@ -40,6 +40,10 @@ Contacts={
|
||||||
self.notifier.fadeIn();
|
self.notifier.fadeIn();
|
||||||
self.notifier.on('click', function() { $(this).fadeOut();});
|
self.notifier.on('click', function() { $(this).fadeOut();});
|
||||||
var timer = setTimeout(function() {
|
var timer = setTimeout(function() {
|
||||||
|
if(!self || !self.notifier) {
|
||||||
|
var self = Contacts.UI;
|
||||||
|
self.notifier = $('#notification');
|
||||||
|
}
|
||||||
self.notifier.fadeOut();
|
self.notifier.fadeOut();
|
||||||
if(params.timeouthandler && $.isFunction(params.timeouthandler)) {
|
if(params.timeouthandler && $.isFunction(params.timeouthandler)) {
|
||||||
params.timeouthandler(self.notifier.data(dataid));
|
params.timeouthandler(self.notifier.data(dataid));
|
||||||
|
@ -53,6 +57,10 @@ Contacts={
|
||||||
}
|
}
|
||||||
if(params.clickhandler && $.isFunction(params.clickhandler)) {
|
if(params.clickhandler && $.isFunction(params.clickhandler)) {
|
||||||
self.notifier.on('click', function() {
|
self.notifier.on('click', function() {
|
||||||
|
if(!self || !self.notifier) {
|
||||||
|
var self = Contacts.UI;
|
||||||
|
self.notifier = $(this);
|
||||||
|
}
|
||||||
clearTimeout(timer);
|
clearTimeout(timer);
|
||||||
self.notifier.off('click');
|
self.notifier.off('click');
|
||||||
params.clickhandler(self.notifier.data(dataid));
|
params.clickhandler(self.notifier.data(dataid));
|
||||||
|
@ -1382,123 +1390,6 @@ Contacts={
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Addressbooks:{
|
|
||||||
overview:function(){
|
|
||||||
if($('#chooseaddressbook_dialog').dialog('isOpen') == true){
|
|
||||||
$('#chooseaddressbook_dialog').dialog('moveToTop');
|
|
||||||
}else{
|
|
||||||
$('body').append('<div id="addressbook_dialog"></div>');
|
|
||||||
$.getJSON(OC.filePath('contacts', 'ajax', 'chooseaddressbook.php'), function(jsondata){
|
|
||||||
if(jsondata.status == 'success'){
|
|
||||||
$('#addressbook_dialog').html(jsondata.data.page).find('#chooseaddressbook_dialog').dialog({
|
|
||||||
minWidth : 600,
|
|
||||||
close : function(event, ui) {
|
|
||||||
$(this).dialog('destroy').remove();
|
|
||||||
$('#addressbook_dialog').remove();
|
|
||||||
}
|
|
||||||
}).css('overflow','visible');
|
|
||||||
} else {
|
|
||||||
alert(jsondata.data.message);
|
|
||||||
$('#addressbook_dialog').remove();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
activation:function(checkbox, bookid){
|
|
||||||
var active = checkbox.checked;
|
|
||||||
$.post(OC.filePath('contacts', 'ajax', 'activation.php'), {bookid: bookid, active: (active?1:0)}, function(jsondata) {
|
|
||||||
if (jsondata.status == 'success'){
|
|
||||||
if(!active) {
|
|
||||||
$('#contacts h3[data-id="'+bookid+'"],#contacts ul[data-id="'+bookid+'"]').remove();
|
|
||||||
} else {
|
|
||||||
Contacts.UI.Contacts.update();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
|
|
||||||
checkbox.checked = !active;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
addAddressbook:function(name, description, cb) {
|
|
||||||
$.post(OC.filePath('contacts', 'ajax', 'addaddressbook.php'), { name: name, description: description, active: true },
|
|
||||||
function(jsondata){
|
|
||||||
if(jsondata.status == 'success'){
|
|
||||||
if(cb) {
|
|
||||||
cb(jsondata.data);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
},
|
|
||||||
newAddressbook:function(object){
|
|
||||||
var tr = $(document.createElement('tr'))
|
|
||||||
.load(OC.filePath('contacts', 'ajax', 'addbook.php'));
|
|
||||||
$(object).closest('tr').after(tr).hide();
|
|
||||||
},
|
|
||||||
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(obj, 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(jsondata) {
|
|
||||||
if (jsondata.status == 'success'){
|
|
||||||
$(obj).closest('tr').remove();
|
|
||||||
$('#contacts h3[data-id="'+bookid+'"],#contacts ul[data-id="'+bookid+'"]').remove();
|
|
||||||
Contacts.UI.Contacts.update();
|
|
||||||
} else {
|
|
||||||
OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
doImport:function(file, aid){
|
|
||||||
$.post(OC.filePath('contacts', '', 'import.php'), { id: aid, file: file, fstype: 'OC_FilesystemView' },
|
|
||||||
function(jsondata){
|
|
||||||
if(jsondata.status != 'success'){
|
|
||||||
Contacts.UI.notify({message:jsondata.data.message});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
submit:function(button, bookid){
|
|
||||||
var displayname = $("#displayname_"+bookid).val().trim();
|
|
||||||
var active = $("#edit_active_"+bookid+":checked").length;
|
|
||||||
var description = $("#description_"+bookid).val();
|
|
||||||
|
|
||||||
if(displayname.length == 0) {
|
|
||||||
OC.dialogs.alert(t('contacts', 'Displayname cannot be empty.'), t('contacts', 'Error'));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
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(jsondata){
|
|
||||||
if(jsondata.status == 'success'){
|
|
||||||
$(button).closest('tr').prev().html(jsondata.page).show().next().remove();
|
|
||||||
Contacts.UI.Contacts.update();
|
|
||||||
} else {
|
|
||||||
OC.dialogs.alert(jsondata.data.message, t('contacts', 'Error'));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
cancel:function(button, bookid){
|
|
||||||
$(button).closest('tr').prev().show().next().remove();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Contacts:{
|
Contacts:{
|
||||||
contacts:{},
|
contacts:{},
|
||||||
deletionQueue:[],
|
deletionQueue:[],
|
||||||
|
@ -1613,6 +1504,15 @@ Contacts={
|
||||||
//this.contacts[id] = contact;
|
//this.contacts[id] = contact;
|
||||||
return contact;
|
return contact;
|
||||||
},
|
},
|
||||||
|
doImport:function(file, aid){
|
||||||
|
$.post(OC.filePath('contacts', '', 'import.php'), { id: aid, file: file, fstype: 'OC_FilesystemView' },
|
||||||
|
function(jsondata){
|
||||||
|
if(jsondata.status != 'success'){
|
||||||
|
Contacts.UI.notify({message:jsondata.data.message});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
},
|
||||||
next:function(reverse) {
|
next:function(reverse) {
|
||||||
// TODO: Check if we're last-child/first-child and jump to next/prev address book.
|
// TODO: Check if we're last-child/first-child and jump to next/prev address book.
|
||||||
var curlistitem = $('#contacts li[data-id="'+Contacts.UI.Card.id+'"]');
|
var curlistitem = $('#contacts li[data-id="'+Contacts.UI.Card.id+'"]');
|
||||||
|
@ -1747,7 +1647,11 @@ $(document).ready(function(){
|
||||||
|
|
||||||
//$('#chooseaddressbook').on('click keydown', Contacts.UI.Addressbooks.overview);
|
//$('#chooseaddressbook').on('click keydown', Contacts.UI.Addressbooks.overview);
|
||||||
$('#bottomcontrols .settings').on('click keydown', function() {
|
$('#bottomcontrols .settings').on('click keydown', function() {
|
||||||
OC.appSettings({appid:'contacts'});
|
try {
|
||||||
|
OC.appSettings({appid:'contacts', loadJS:true, cache:false});
|
||||||
|
} catch(e) {
|
||||||
|
console.log('error:', e.message);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
$('#bottomcontrols .import').click(function() {
|
$('#bottomcontrols .import').click(function() {
|
||||||
$('#import_upload_start').trigger('click');
|
$('#import_upload_start').trigger('click');
|
||||||
|
@ -2045,7 +1949,7 @@ $(document).ready(function(){
|
||||||
$('#uploadprogressbar').progressbar('value',50);
|
$('#uploadprogressbar').progressbar('value',50);
|
||||||
var todo = uploadedfiles;
|
var todo = uploadedfiles;
|
||||||
$.each(fileList, function(fileName, data) {
|
$.each(fileList, function(fileName, data) {
|
||||||
Contacts.UI.Addressbooks.doImport(fileName, aid);
|
Contacts.UI.Contacts.doImport(fileName, aid);
|
||||||
delete fileList[fileName];
|
delete fileList[fileName];
|
||||||
numfiles -= 1; uploadedfiles -= 1;
|
numfiles -= 1; uploadedfiles -= 1;
|
||||||
$('#uploadprogressbar').progressbar('value',50+(50/(todo-uploadedfiles)));
|
$('#uploadprogressbar').progressbar('value',50+(50/(todo-uploadedfiles)));
|
||||||
|
|
|
@ -22,16 +22,18 @@ class OC_Contacts_App {
|
||||||
public static $categories = null;
|
public static $categories = null;
|
||||||
|
|
||||||
public static function getAddressbook($id) {
|
public static function getAddressbook($id) {
|
||||||
|
// TODO: Throw an exception instead of returning json.
|
||||||
$addressbook = OC_Contacts_Addressbook::find( $id );
|
$addressbook = OC_Contacts_Addressbook::find( $id );
|
||||||
if($addressbook === false || $addressbook['userid'] != OCP\USER::getUser()) {
|
if($addressbook === false || $addressbook['userid'] != OCP\USER::getUser()) {
|
||||||
if ($addressbook === false) {
|
if ($addressbook === false) {
|
||||||
OCP\Util::writeLog('contacts',
|
OCP\Util::writeLog('contacts',
|
||||||
'Addressbook not found: '. $id,
|
'Addressbook not found: '. $id,
|
||||||
OCP\Util::ERROR);
|
OCP\Util::ERROR);
|
||||||
|
//throw new Exception('Addressbook not found: '. $id);
|
||||||
OCP\JSON::error(
|
OCP\JSON::error(
|
||||||
array(
|
array(
|
||||||
'data' => array(
|
'data' => array(
|
||||||
'message' => self::$l10n->t('Addressbook not found.')
|
'message' => self::$l10n->t('Addressbook not found: ' . $id)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -40,6 +42,7 @@ class OC_Contacts_App {
|
||||||
OCP\Util::writeLog('contacts',
|
OCP\Util::writeLog('contacts',
|
||||||
'Addressbook('.$id.') is not from '.OCP\USER::getUser(),
|
'Addressbook('.$id.') is not from '.OCP\USER::getUser(),
|
||||||
OCP\Util::ERROR);
|
OCP\Util::ERROR);
|
||||||
|
//throw new Exception('This is not your addressbook.');
|
||||||
OCP\JSON::error(
|
OCP\JSON::error(
|
||||||
array(
|
array(
|
||||||
'data' => array(
|
'data' => array(
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="rightcontent" class="rightcontent" data-id="<?php echo $_['id']; ?>">
|
<div id="rightcontent" class="rightcontent" data-id="<?php echo $_['id']; ?>">
|
||||||
<div id="appsettings" class="popup bottomleft hidden"></div>
|
|
||||||
<?php
|
<?php
|
||||||
if($_['has_contacts']) {
|
if($_['has_contacts']) {
|
||||||
echo $this->inc('part.contact');
|
echo $this->inc('part.contact');
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
<div id="chooseaddressbook_dialog" title="<?php echo $l->t("Configure Address Books"); ?>">
|
|
||||||
<table width="100%" style="border: 0;">
|
|
||||||
<?php
|
|
||||||
$option_addressbooks = OC_Contacts_Addressbook::all(OCP\USER::getUser());
|
|
||||||
for($i = 0; $i < count($option_addressbooks); $i++){
|
|
||||||
echo "<tr>";
|
|
||||||
$tmpl = new OCP\Template('contacts', 'part.chooseaddressbook.rowfields');
|
|
||||||
$tmpl->assign('addressbook', $option_addressbooks[$i]);
|
|
||||||
$tmpl->assign('active', OC_Contacts_Addressbook::isActive($option_addressbooks[$i]['id']));
|
|
||||||
$tmpl->printpage();
|
|
||||||
echo "</tr>";
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
<tr>
|
|
||||||
<td colspan="5" style="padding: 0.5em;">
|
|
||||||
<a class="button" href="#" onclick="Contacts.UI.Addressbooks.newAddressbook(this);"><?php echo $l->t('New Address Book') ?></a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="5">
|
|
||||||
<p style="margin: 0 auto;width: 90%;"><input style="display:none;width: 90%;float: left;" type="text" id="carddav_url" onmouseover="$('#carddav_url').select();" title="<?php echo $l->t("CardDav Link"); ?>"><a class="action delete" id="carddav_url_close" style="height: 20px;vertical-align: middle;display: none;" title="close" onclick="$('#carddav_url').hide();$('#carddav_url_close').hide();"/></a></p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
|
@ -1,18 +0,0 @@
|
||||||
<td width="20px">
|
|
||||||
<input id="active_<?php echo $_['addressbook']["id"]; ?>" type="checkbox" onClick="Contacts.UI.Addressbooks.activation(this, <?php echo $_['addressbook']["id"]; ?>)" <?php echo (OC_Contacts_Addressbook::isActive($_['addressbook']["id"]) ? ' checked="checked"' : ''); ?>>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<label for="active_<?php echo $_['addressbook']["id"]; ?>"><?php echo $_['addressbook']["displayname"]; ?></label>
|
|
||||||
</td>
|
|
||||||
<td width="20px">
|
|
||||||
<a onclick="Contacts.UI.showCardDAVUrl('<?php echo OCP\USER::getUser(); ?>', '<?php echo rawurlencode(html_entity_decode($_['addressbook']['uri'], ENT_QUOTES, 'UTF-8')); ?>');" title="<?php echo $l->t("CardDav Link"); ?>" class="svg action globe"></a>
|
|
||||||
</td>
|
|
||||||
<td width="20px">
|
|
||||||
<a href="<?php echo OCP\Util::linkTo('contacts', 'export.php'); ?>?bookid=<?php echo $_['addressbook']["id"]; ?>" title="<?php echo $l->t("Download"); ?>" class="svg action download"></a>
|
|
||||||
</td>
|
|
||||||
<td width="20px">
|
|
||||||
<a title="<?php echo $l->t("Edit"); ?>" class="svg action edit" onclick="Contacts.UI.Addressbooks.editAddressbook(this, <?php echo $_['addressbook']["id"]; ?>);"></a>
|
|
||||||
</td>
|
|
||||||
<td width="20px">
|
|
||||||
<a onclick="Contacts.UI.Addressbooks.deleteAddressbook(this, <?php echo $_['addressbook']["id"]; ?>);" title="<?php echo $l->t("Delete"); ?>" class="svg action delete"></a>
|
|
||||||
</td>
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<div id="appsettings" class="popup bottomleft hidden"></div>
|
||||||
<?php
|
<?php
|
||||||
$id = isset($_['id']) ? $_['id'] : '';
|
$id = isset($_['id']) ? $_['id'] : '';
|
||||||
?>
|
?>
|
||||||
|
@ -73,7 +74,7 @@ $id = isset($_['id']) ? $_['id'] : '';
|
||||||
<div id="phones">
|
<div id="phones">
|
||||||
<ul id="phonelist" class="propertylist">
|
<ul id="phonelist" class="propertylist">
|
||||||
<li class="template hidden" data-element="TEL">
|
<li class="template hidden" data-element="TEL">
|
||||||
<input type="checkbox" class="contacts_property tip" name="parameters[TYPE][]" value="PREF" title="<?php echo $l->t('Preferred'); ?>" />
|
<input type="checkbox" class="contacts_property tip" name="parameters[TYPE][]" value="PREF" title="<?php echo $l->t('Preferred'); ?>" />
|
||||||
<input type="text" required="required" class="nonempty contacts_property" name="value" value="" placeholder="<?php echo $l->t('Enter phone number'); ?>" />
|
<input type="text" required="required" class="nonempty contacts_property" name="value" value="" placeholder="<?php echo $l->t('Enter phone number'); ?>" />
|
||||||
<select multiple="multiple" name="parameters[TYPE][]">
|
<select multiple="multiple" name="parameters[TYPE][]">
|
||||||
<?php echo OCP\html_select_options($_['phone_types'], array()) ?>
|
<?php echo OCP\html_select_options($_['phone_types'], array()) ?>
|
||||||
|
|
|
@ -57,6 +57,7 @@ $types = isset($_['types'])?$_['types']:array();
|
||||||
<input type="text" id="adr_country" name="value[ADR][6]" placeholder="<?php echo $l->t('Country'); ?>" value="<?php echo isset($adr[6])?$adr[6]:''; ?>">
|
<input type="text" id="adr_country" name="value[ADR][6]" placeholder="<?php echo $l->t('Country'); ?>" value="<?php echo isset($adr[6])?$adr[6]:''; ?>">
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
<div style="width: 100%; text-align:center;">Powered by <a href="http://geonames.org/" target="_blank">geonames.org</a></div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
<div id="appsettings" class="popup bottomleft hidden"></div>
|
||||||
<div id="firstrun">
|
<div id="firstrun">
|
||||||
<?php echo $l->t('You have no contacts in your addressbook.') ?>
|
<?php echo $l->t('You have no contacts in your addressbook.') ?>
|
||||||
<div id="selections">
|
<div id="selections">
|
||||||
|
|
|
@ -6,13 +6,49 @@
|
||||||
<dd><code><?php echo OCP\Util::linkToRemote('carddav'); ?></code></dd>
|
<dd><code><?php echo OCP\Util::linkToRemote('carddav'); ?></code></dd>
|
||||||
<dt><?php echo $l->t('iOS/OS X'); ?></dt>
|
<dt><?php echo $l->t('iOS/OS X'); ?></dt>
|
||||||
<dd><code><?php echo OCP\Util::linkToRemote('carddav'); ?>principals/<?php echo OCP\USER::getUser(); ?></code>/</dd>
|
<dd><code><?php echo OCP\Util::linkToRemote('carddav'); ?>principals/<?php echo OCP\USER::getUser(); ?></code>/</dd>
|
||||||
<dt><?php echo $l->t('Read only vCard directory link(s)'); ?></dt>
|
<dt class="hidden"><?php echo $l->t('Addressbooks'); ?></dt>
|
||||||
<dd>
|
<dd class="addressbooks-settings hidden">
|
||||||
|
<table>
|
||||||
<?php foreach($_['addressbooks'] as $addressbook) { ?>
|
<?php foreach($_['addressbooks'] as $addressbook) { ?>
|
||||||
<a href="<?php echo OCP\Util::linkToRemote('carddav').'addressbooks/'.OCP\USER::getUser().'/'.rawurlencode($addressbook['uri']) ?>?export"><?php echo $addressbook['displayname'] ?></a><br />
|
<tr class="addressbook" data-id="<?php echo $addressbook['id'] ?>" data-uri="<?php echo $addressbook['uri'] ?>">
|
||||||
|
<td class="active">
|
||||||
|
<input type="checkbox" <?php echo (($addressbook['active']) == '1' ? ' checked="checked"' : ''); ?> />
|
||||||
|
</td>
|
||||||
|
<td class="name"><?php echo $addressbook['displayname'] ?></td>
|
||||||
|
<td class="description"><?php echo $addressbook['description'] ?></td>
|
||||||
|
<td class="action">
|
||||||
|
<a class="svg action globe" title="<?php echo $l->t('Show CardDav link'); ?>"></a>
|
||||||
|
</td>
|
||||||
|
<td class="action">
|
||||||
|
<a class="svg action cloud" title="<?php echo $l->t('Show read-only VCF link'); ?>"></a>
|
||||||
|
</td>
|
||||||
|
<td class="action">
|
||||||
|
<a class="svg action download" title="<?php echo $l->t('Download'); ?>"
|
||||||
|
href="<?php echo OCP\Util::linkToRemote('carddav').'addressbooks/'.OCP\USER::getUser().'/'
|
||||||
|
.rawurlencode($addressbook['uri']) ?>?export"></a>
|
||||||
|
</td>
|
||||||
|
<td class="action">
|
||||||
|
<a class="svg action edit" title="<?php echo $l->t("Edit"); ?>"></a>
|
||||||
|
</td>
|
||||||
|
<td class="action">
|
||||||
|
<a class="svg action delete" title="<?php echo $l->t("Delete"); ?>"></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
|
</table>
|
||||||
|
<div class="actions" style="width: 100%;">
|
||||||
|
<input class="active hidden" type="checkbox" />
|
||||||
|
<button class="new"><?php echo $l->t('New Address Book') ?></button>
|
||||||
|
<input class="name hidden" type="text" autofocus="autofocus" placeholder="<?php echo $l->t('Name'); ?>" />
|
||||||
|
<input class="description hidden" type="text" placeholder="<?php echo $l->t('Description'); ?>" />
|
||||||
|
<input class="link hidden" style="width: 80%" type="text" autofocus="autofocus" />
|
||||||
|
<button class="save hidden"><?php echo $l->t('Save') ?></button>
|
||||||
|
<button class="cancel hidden"><?php echo $l->t('Cancel') ?></button>
|
||||||
|
</div>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
Powered by <a href="http://geonames.org/" target="_blank">geonames.org webservice</a>
|
<div style="width: 100%; clear: both;">
|
||||||
|
<button class="moreless"><?php echo $l->t('More...') ?></button>
|
||||||
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
|
|
Loading…
Reference in New Issue