Merge remote-tracking branch 'upstream/dev' into dev
This commit is contained in:
commit
bc0d4f28ef
@ -43,6 +43,10 @@ class Events extends \Zotlabs\Web\Controller {
|
||||
$adjust = intval($_POST['adjust']);
|
||||
$nofinish = intval($_POST['nofinish']);
|
||||
|
||||
$timezone = ((x($_POST,'timezone_select')) ? notags(trim($_POST['timezone_select'])) : '');
|
||||
|
||||
$tz = (($timezone) ? $timezone : date_default_timezone_get());
|
||||
|
||||
$categories = escape_tags(trim($_POST['category']));
|
||||
|
||||
// only allow editing your own events.
|
||||
@ -71,9 +75,9 @@ class Events extends \Zotlabs\Web\Controller {
|
||||
|
||||
|
||||
if($adjust) {
|
||||
$start = datetime_convert(date_default_timezone_get(),'UTC',$start);
|
||||
$start = datetime_convert($tz,'UTC',$start);
|
||||
if(! $nofinish)
|
||||
$finish = datetime_convert(date_default_timezone_get(),'UTC',$finish);
|
||||
$finish = datetime_convert($tz,'UTC',$finish);
|
||||
}
|
||||
else {
|
||||
$start = datetime_convert('UTC','UTC',$start);
|
||||
@ -478,6 +482,8 @@ class Events extends \Zotlabs\Web\Controller {
|
||||
'$allow_gid' => acl2json($permissions['allow_gid']),
|
||||
'$deny_cid' => acl2json($permissions['deny_cid']),
|
||||
'$deny_gid' => acl2json($permissions['deny_gid']),
|
||||
'$tz_choose' => feature_enabled(local_channel(),'event_tz_select'),
|
||||
'$timezone' => array('timezone_select' , t('Timezone:'), date_default_timezone_get(), '', get_timezones()),
|
||||
|
||||
'$lockstate' => (($acl->is_private()) ? 'lock' : 'unlock'),
|
||||
|
||||
|
@ -243,6 +243,7 @@ class Profiles extends \Zotlabs\Web\Controller {
|
||||
|
||||
check_form_security_token_redirectOnErr('/profiles', 'profile_edit');
|
||||
|
||||
|
||||
$is_default = (($orig[0]['is_default']) ? 1 : 0);
|
||||
|
||||
$profile_name = notags(trim($_POST['profile_name']));
|
||||
@ -315,6 +316,15 @@ class Profiles extends \Zotlabs\Web\Controller {
|
||||
|
||||
$hide_friends = ((intval($_POST['hide_friends'])) ? 1: 0);
|
||||
|
||||
|
||||
$orig_vcard = (($orig[0]['profile_vcard']) ? \Sabre\VObject\Reader::read($orig[0]['profile_vcard']) : null);
|
||||
|
||||
$_REQUEST['fn'] = $name;
|
||||
$_REQUEST['title'] = $pdesc;
|
||||
|
||||
$profile_vcard = update_vcard($_REQUEST,$orig_vcard);
|
||||
|
||||
|
||||
require_once('include/text.php');
|
||||
linkify_tags($a, $likes, local_channel());
|
||||
linkify_tags($a, $dislikes, local_channel());
|
||||
@ -511,7 +521,8 @@ class Profiles extends \Zotlabs\Web\Controller {
|
||||
romance = '%s',
|
||||
employment = '%s',
|
||||
education = '%s',
|
||||
hide_friends = %d
|
||||
hide_friends = %d,
|
||||
profile_vcard = '%s'
|
||||
WHERE id = %d AND uid = %d",
|
||||
dbesc($profile_name),
|
||||
dbesc($name),
|
||||
@ -546,6 +557,7 @@ class Profiles extends \Zotlabs\Web\Controller {
|
||||
dbesc($work),
|
||||
dbesc($education),
|
||||
intval($hide_friends),
|
||||
dbesc($profile_vcard),
|
||||
intval(argv(1)),
|
||||
intval(local_channel())
|
||||
);
|
||||
|
23
doc/roadmap_hz3.md
Normal file
23
doc/roadmap_hz3.md
Normal file
@ -0,0 +1,23 @@
|
||||
|
||||
Hubzilla III
|
||||
============
|
||||
|
||||
Due: December 2017
|
||||
Codename:
|
||||
|
||||
|
||||
Wishlist:
|
||||
|
||||
- Move CalDAV/CardDAV server to core
|
||||
|
||||
- Integrate Hubzilla events with CalDAV
|
||||
|
||||
- Connection 'roles' allows you to select different permission roles for your connections; such as follower, friend, contributor, etc.
|
||||
|
||||
- CardDAV integration with abook and profiles
|
||||
|
||||
- App tray
|
||||
|
||||
- issues manager
|
||||
|
||||
- wiki cloning
|
@ -157,6 +157,15 @@ function get_features($filtered = true) {
|
||||
feature_level('smart_birthdays',2),
|
||||
],
|
||||
|
||||
[
|
||||
'event_tz_select',
|
||||
t('Event Timezone Selection'),
|
||||
t('Allow event creation in timezones other than your own.'),
|
||||
false,
|
||||
get_config('feature_lock','event_tz_select'),
|
||||
feature_level('event_tz_select',2),
|
||||
],
|
||||
|
||||
[
|
||||
'advanced_dirsearch',
|
||||
t('Advanced Directory Search'),
|
||||
|
@ -5,3 +5,111 @@
|
||||
.profile-thing-img {
|
||||
margin: 7px 0px;
|
||||
}
|
||||
|
||||
.vcard-header {
|
||||
cursor: pointer;
|
||||
padding: 7px 10px;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
.vcard-header:hover,
|
||||
.vcard-header.active {
|
||||
background-color: rgb(238,238,238);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.vcard-header.active:hover {
|
||||
cursor: initial;
|
||||
}
|
||||
|
||||
.vcard-add-field {
|
||||
margin-top: 8px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.vcard-cancel {
|
||||
margin: 6px 10px;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
color: #777;
|
||||
font-size: 16px;
|
||||
|
||||
cursor: pointer;
|
||||
display: none;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.vcard-info {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.vcard-nophoto {
|
||||
display: inline-block;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #ccc;
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
color: #fff;
|
||||
background-color: #ddd;
|
||||
}
|
||||
|
||||
.vcard-photo {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #ccc;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.vcard-fn-preview,
|
||||
input.vcard-fn {
|
||||
font-size: 16px !important;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.vcard-email-preview,
|
||||
.vcard-tel-preview {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
|
||||
.vcard-fn,
|
||||
#create_form,
|
||||
#more_block {
|
||||
display: none;
|
||||
}
|
||||
|
||||
input.vcard-fn,
|
||||
.vcard-fn-create input,
|
||||
.vcard-org input,
|
||||
.vcard-title input,
|
||||
.vcard-tel input,
|
||||
.vcard-email input,
|
||||
.vcard-impp input,
|
||||
.vcard-url input,
|
||||
.vcard-adr input,
|
||||
.vcard-note input {
|
||||
padding: 0px;
|
||||
margin-left: 5px;
|
||||
border-width: 0px 0px 1px 0px;
|
||||
border-radius: 0px;
|
||||
background-color: transparent;
|
||||
min-width: 160px;
|
||||
}
|
||||
|
||||
#template-form-vcard-org,
|
||||
#template-form-vcard-title,
|
||||
#template-form-vcard-tel,
|
||||
#template-form-vcard-email,
|
||||
#template-form-vcard-impp,
|
||||
#template-form-vcard-url,
|
||||
#template-form-vcard-adr,
|
||||
#template-form-vcard-note {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.connphone {
|
||||
color: green;
|
||||
}
|
||||
|
@ -29,3 +29,110 @@
|
||||
height: 48px;
|
||||
margin: 10px 0px;
|
||||
}
|
||||
.vcard-header {
|
||||
cursor: pointer;
|
||||
padding: 7px 10px;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
|
||||
.vcard-header:hover,
|
||||
.vcard-header.active {
|
||||
background-color: rgb(238,238,238);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.vcard-header.active:hover {
|
||||
cursor: initial;
|
||||
}
|
||||
|
||||
.vcard-add-field {
|
||||
margin-top: 8px;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.vcard-cancel {
|
||||
margin: 6px 10px;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
color: #777;
|
||||
font-size: 16px;
|
||||
|
||||
cursor: pointer;
|
||||
display: none;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.vcard-info {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.vcard-nophoto {
|
||||
display: inline-block;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #ccc;
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
color: #fff;
|
||||
background-color: #ddd;
|
||||
}
|
||||
|
||||
.vcard-photo {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #ccc;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.vcard-fn-preview,
|
||||
input.vcard-fn {
|
||||
font-size: 16px !important;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.vcard-email-preview,
|
||||
.vcard-tel-preview {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
|
||||
.vcard-fn,
|
||||
#create_form,
|
||||
#more_block {
|
||||
display: none;
|
||||
}
|
||||
|
||||
input.vcard-fn,
|
||||
.vcard-fn-create input,
|
||||
.vcard-org input,
|
||||
.vcard-title input,
|
||||
.vcard-tel input,
|
||||
.vcard-email input,
|
||||
.vcard-impp input,
|
||||
.vcard-url input,
|
||||
.vcard-adr input,
|
||||
.vcard-note input {
|
||||
padding: 0px;
|
||||
margin-left: 5px;
|
||||
border-width: 0px 0px 1px 0px;
|
||||
border-radius: 0px;
|
||||
background-color: transparent;
|
||||
min-width: 160px;
|
||||
}
|
||||
|
||||
#template-form-vcard-org,
|
||||
#template-form-vcard-title,
|
||||
#template-form-vcard-tel,
|
||||
#template-form-vcard-email,
|
||||
#template-form-vcard-impp,
|
||||
#template-form-vcard-url,
|
||||
#template-form-vcard-adr,
|
||||
#template-form-vcard-note {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.connphone {
|
||||
color: green;
|
||||
}
|
@ -1,4 +1,70 @@
|
||||
$(document).ready(function() {
|
||||
$('form').areYouSure(); // Warn user about unsaved settings
|
||||
$('textarea').bbco_autocomplete('bbcode');
|
||||
|
||||
$(document).on('click', '.vcard-header, .vcard-cancel-btn', updateView);
|
||||
$(document).on('click', '.add-field', doAdd);
|
||||
$(document).on('click', '.remove-field', doRemove);
|
||||
|
||||
function updateView() {
|
||||
var id = $(this).data('id');
|
||||
var action = $(this).data('action');
|
||||
var header = $('#vcard-header-' + id);
|
||||
var cancel = $('#vcard-cancel-' + id);
|
||||
var addField = $('#vcard-add-field-' + id);
|
||||
var info = $('#vcard-info-' + id);
|
||||
var vcardPreview = $('#vcard-preview-' + id);
|
||||
var fn = $('#vcard-fn-' + id);
|
||||
|
||||
if(action === 'open') {
|
||||
$(header).addClass('active');
|
||||
$(cancel).show();
|
||||
$(addField).show();
|
||||
$(info).show();
|
||||
$(fn).show();
|
||||
$(vcardPreview).hide();
|
||||
}
|
||||
else {
|
||||
$(header).removeClass('active');
|
||||
$(cancel).hide();
|
||||
$(addField).hide();
|
||||
$(info).hide();
|
||||
$(fn).hide();
|
||||
$(vcardPreview).show();
|
||||
}
|
||||
}
|
||||
|
||||
function doAdd() {
|
||||
var what = $(this).data('add');
|
||||
var id = $(this).data('id');
|
||||
var element = '#template-form-' + what;
|
||||
var where = '#abook-edit-form';
|
||||
|
||||
$(element + ' .remove-field').attr('data-id', id)
|
||||
|
||||
if(what === 'vcard-adr') {
|
||||
var adrCount = $(where + ' .form-' + what).length;
|
||||
var attrName = 'adr[' + adrCount + '][]';
|
||||
$(element + ' input').attr('name', attrName);
|
||||
}
|
||||
|
||||
if(what === 'vcard-org' || what === 'vcard-title' || what === 'vcard-note') {
|
||||
$(where + ' .add-' + what).hide()
|
||||
}
|
||||
|
||||
$(element).clone().removeAttr('id').appendTo(where + ' .form-' + what + '-wrapper');
|
||||
}
|
||||
|
||||
function doRemove() {
|
||||
var what = $(this).data('remove');
|
||||
var element = $(this).parents('div.form-' + what);
|
||||
var where = '#abook_edit_form' + $(this).data('id');
|
||||
|
||||
if(what === 'vcard-org' || what === 'vcard-title' || what === 'vcard-note') {
|
||||
$(where + ' .add-' + what).show()
|
||||
}
|
||||
|
||||
$(element).remove();
|
||||
}
|
||||
|
||||
});
|
||||
|
@ -10,6 +10,10 @@
|
||||
|
||||
{{include file="field_input.tpl" field=$summary}}
|
||||
|
||||
{{if $tz_choose}}
|
||||
{{include file="field_select_grouped.tpl" field=$timezone}}
|
||||
{{/if}}
|
||||
|
||||
{{$s_dsel}}
|
||||
|
||||
{{$f_dsel}}
|
||||
|
@ -368,7 +368,7 @@
|
||||
$.post("embedphotos/album", {name: album},
|
||||
function(data) {
|
||||
if (data['status']) {
|
||||
$('#embedPhotoModalLabel').html('{{$modalchooseimages}}');
|
||||
$('#embedPhotoModalLabel').html("{{$modalchooseimages}}");
|
||||
$('#embedPhotoModalBodyAlbumDialog').html('\
|
||||
<div><ul class="nav">\n\
|
||||
<li><a href="#" onclick="initializeEmbedPhotoDialog();return false;">\n\
|
||||
@ -402,7 +402,7 @@
|
||||
$('#editor').val(currentContent + ddata['photolink']);
|
||||
{{/if}}
|
||||
} else {
|
||||
window.console.log('{{$modalerrorlink}}' + ':' + ddata['errormsg']);
|
||||
window.console.log("{{$modalerrorlink}}" + ':' + ddata['errormsg']);
|
||||
}
|
||||
return false;
|
||||
},
|
||||
@ -413,7 +413,7 @@
|
||||
$('#embedPhotoModal').modal('hide');
|
||||
});
|
||||
} else {
|
||||
window.console.log('{{$modalerroralbum}} ' + JSON.stringify(album) + ':' + data['errormsg']);
|
||||
window.console.log("{{$modalerroralbum}} " + JSON.stringify(album) + ':' + data['errormsg']);
|
||||
}
|
||||
return false;
|
||||
},
|
||||
@ -425,19 +425,19 @@
|
||||
function(data) {
|
||||
if (data['status']) {
|
||||
var albums = data['albumlist']; //JSON.parse(data['albumlist']);
|
||||
$('#embedPhotoModalLabel').html('{{$modalchoosealbum}}');
|
||||
$('#embedPhotoModalLabel').html("{{$modalchoosealbum}}");
|
||||
$('#embedPhotoModalBodyAlbumList').html('<ul class="nav"></ul>');
|
||||
for(var i=0; i<albums.length; i++) {
|
||||
var albumName = albums[i].text;
|
||||
var albumLink = '<li>';
|
||||
albumLink += '<a href="#" onclick="choosePhotoFromAlbum(\'' + albumName + '\');return false;">' + albumName + '</a>';
|
||||
albumLink += '<a href="#" onclick="choosePhotoFromAlbum("' + albumName + '");return false;">' + albumName + '</a>';
|
||||
albumLink += '</li>';
|
||||
$('#embedPhotoModalBodyAlbumList').find('ul').append(albumLink);
|
||||
}
|
||||
$('#embedPhotoModalBodyAlbumDialog').addClass('hide');
|
||||
$('#embedPhotoModalBodyAlbumListDialog').removeClass('hide');
|
||||
} else {
|
||||
window.console.log('{{$modalerrorlist}}' + ':' + data['errormsg']);
|
||||
window.console.log("{{$modalerrorlist}}" + ':' + data['errormsg']);
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
Reference in New Issue
Block a user