Merge remote-tracking branch 'upstream/dev' into dev

This commit is contained in:
Andrew Manning 2017-01-02 07:56:23 -05:00
commit bc0d4f28ef
9 changed files with 344 additions and 9 deletions

View File

@ -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'),

View File

@ -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
View 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

View File

@ -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'),

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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();
}
});

View File

@ -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}}

View File

@ -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;
},