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.
|
||||
* 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';
|
||||
require_once __DIR__.'/../loghandler.php';
|
||||
|
||||
debug('name: '.$_POST['name']);
|
||||
|
||||
|
@ -34,4 +34,4 @@ if(!OC_Contacts_Addressbook::setActive($bookid, 1)) {
|
|||
bailOut('Error activating addressbook.');
|
||||
}
|
||||
$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::checkAppEnabled('contacts');
|
||||
OCP\JSON::callCheck();
|
||||
require_once __DIR__.'/../loghandler.php';
|
||||
|
||||
//$id = $_GET['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_Addressbook::delete($id);
|
|
@ -6,33 +6,34 @@
|
|||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
// Check if we are a user
|
||||
OCP\JSON::checkLoggedIn();
|
||||
OCP\JSON::checkAppEnabled('contacts');
|
||||
require_once 'loghandler.php';
|
||||
|
||||
$bookid = $_POST['id'];
|
||||
OC_Contacts_App::getAddressbook($bookid); // is owner access check
|
||||
require_once __DIR__.'/../loghandler.php';
|
||||
|
||||
$id = $_POST['id'];
|
||||
$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) {
|
||||
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.'));
|
||||
}
|
||||
|
||||
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.'));
|
||||
}
|
||||
|
||||
$addressbook = OC_Contacts_App::getAddressbook($bookid);
|
||||
$tmpl = new OCP\Template('contacts', 'part.chooseaddressbook.rowfields');
|
||||
$tmpl->assign('addressbook', $addressbook);
|
||||
OC_Contacts_App::getAddressbook($id); // is owner access check
|
||||
$addressbook = OC_Contacts_App::getAddressbook($id);
|
||||
OCP\JSON::success(array(
|
||||
'page' => $tmpl->fetchPage(),
|
||||
'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 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; }
|
||||
.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.
|
||||
*/
|
||||
notify:function(params) {
|
||||
self = this;
|
||||
var self = this;
|
||||
if(!self.notifier) {
|
||||
self.notifier = $('#notification');
|
||||
}
|
||||
|
@ -40,6 +40,10 @@ Contacts={
|
|||
self.notifier.fadeIn();
|
||||
self.notifier.on('click', function() { $(this).fadeOut();});
|
||||
var timer = setTimeout(function() {
|
||||
if(!self || !self.notifier) {
|
||||
var self = Contacts.UI;
|
||||
self.notifier = $('#notification');
|
||||
}
|
||||
self.notifier.fadeOut();
|
||||
if(params.timeouthandler && $.isFunction(params.timeouthandler)) {
|
||||
params.timeouthandler(self.notifier.data(dataid));
|
||||
|
@ -53,6 +57,10 @@ Contacts={
|
|||
}
|
||||
if(params.clickhandler && $.isFunction(params.clickhandler)) {
|
||||
self.notifier.on('click', function() {
|
||||
if(!self || !self.notifier) {
|
||||
var self = Contacts.UI;
|
||||
self.notifier = $(this);
|
||||
}
|
||||
clearTimeout(timer);
|
||||
self.notifier.off('click');
|
||||
params.clickhandler(self.notifier.data(dataid));
|
||||
|
@ -1382,123 +1390,6 @@ Contacts={
|
|||
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:{},
|
||||
deletionQueue:[],
|
||||
|
@ -1613,6 +1504,15 @@ Contacts={
|
|||
//this.contacts[id] = 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) {
|
||||
// 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+'"]');
|
||||
|
@ -1747,7 +1647,11 @@ $(document).ready(function(){
|
|||
|
||||
//$('#chooseaddressbook').on('click keydown', Contacts.UI.Addressbooks.overview);
|
||||
$('#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() {
|
||||
$('#import_upload_start').trigger('click');
|
||||
|
@ -2045,7 +1949,7 @@ $(document).ready(function(){
|
|||
$('#uploadprogressbar').progressbar('value',50);
|
||||
var todo = uploadedfiles;
|
||||
$.each(fileList, function(fileName, data) {
|
||||
Contacts.UI.Addressbooks.doImport(fileName, aid);
|
||||
Contacts.UI.Contacts.doImport(fileName, aid);
|
||||
delete fileList[fileName];
|
||||
numfiles -= 1; uploadedfiles -= 1;
|
||||
$('#uploadprogressbar').progressbar('value',50+(50/(todo-uploadedfiles)));
|
||||
|
|
|
@ -22,16 +22,18 @@ class OC_Contacts_App {
|
|||
public static $categories = null;
|
||||
|
||||
public static function getAddressbook($id) {
|
||||
// TODO: Throw an exception instead of returning json.
|
||||
$addressbook = OC_Contacts_Addressbook::find( $id );
|
||||
if($addressbook === false || $addressbook['userid'] != OCP\USER::getUser()) {
|
||||
if ($addressbook === false) {
|
||||
OCP\Util::writeLog('contacts',
|
||||
'Addressbook not found: '. $id,
|
||||
OCP\Util::ERROR);
|
||||
//throw new Exception('Addressbook not found: '. $id);
|
||||
OCP\JSON::error(
|
||||
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',
|
||||
'Addressbook('.$id.') is not from '.OCP\USER::getUser(),
|
||||
OCP\Util::ERROR);
|
||||
//throw new Exception('This is not your addressbook.');
|
||||
OCP\JSON::error(
|
||||
array(
|
||||
'data' => array(
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
</div>
|
||||
</div>
|
||||
<div id="rightcontent" class="rightcontent" data-id="<?php echo $_['id']; ?>">
|
||||
<div id="appsettings" class="popup bottomleft hidden"></div>
|
||||
<?php
|
||||
if($_['has_contacts']) {
|
||||
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
|
||||
$id = isset($_['id']) ? $_['id'] : '';
|
||||
?>
|
||||
|
@ -73,7 +74,7 @@ $id = isset($_['id']) ? $_['id'] : '';
|
|||
<div id="phones">
|
||||
<ul id="phonelist" class="propertylist">
|
||||
<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'); ?>" />
|
||||
<select multiple="multiple" name="parameters[TYPE][]">
|
||||
<?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]:''; ?>">
|
||||
</dd>
|
||||
</dl>
|
||||
<div style="width: 100%; text-align:center;">Powered by <a href="http://geonames.org/" target="_blank">geonames.org</a></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
<div id="appsettings" class="popup bottomleft hidden"></div>
|
||||
<div id="firstrun">
|
||||
<?php echo $l->t('You have no contacts in your addressbook.') ?>
|
||||
<div id="selections">
|
||||
|
|
|
@ -6,13 +6,49 @@
|
|||
<dd><code><?php echo OCP\Util::linkToRemote('carddav'); ?></code></dd>
|
||||
<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>
|
||||
<dt><?php echo $l->t('Read only vCard directory link(s)'); ?></dt>
|
||||
<dd>
|
||||
<dt class="hidden"><?php echo $l->t('Addressbooks'); ?></dt>
|
||||
<dd class="addressbooks-settings hidden">
|
||||
<table>
|
||||
<?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 } ?>
|
||||
</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>
|
||||
</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>
|
||||
</form>
|
||||
|
|
Loading…
Reference in New Issue