Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge

This commit is contained in:
zotlabs 2016-11-17 11:01:38 -08:00
commit 5a71984b38
8 changed files with 152 additions and 85 deletions

View File

@ -49,7 +49,7 @@
[*] nsabait - add random terrorism related hashtags to your posts
[*] nsfw - Highly recommended plugin to collpase posts with inappropriate content
[*] openclipatar - choose a profile photo from hundreds of royalty free images
[*] openid - OpenID authentication and OpenID server
[*] openid - OpenID authentication and OpenID server. Your OpenID URL is [observer.baseurl]/id/[observer.webname]
[*] openstreetmap - render locations and maps using OpenStreetMap
[*] pageheader - display text at the top of every page on the site
[*] phpmailer - alternate mail delivery system with more configurability

View File

@ -78,6 +78,7 @@ or<br /><br />[dl terms="b"]<br />[*= First element term] First element descript
<li>[observer.baseurl] website of observer</li>
<li>[observer.url] channel URL of observer</li>
<li>[observer.name] name of observer</li>
<li>[observer.webname] short name in the url of the observer</li>
<li>[observer.address] address (zot-id) of observer</li>
<li>[observer.photo] profile photo of observer<br /></li>

View File

@ -134,6 +134,7 @@ The options are:
- Anybody on this website.
- Anybody in this network.
- Anybody authenticated.
- Specific people you provide a Guest Access Token to in order to access a specific item.
- Anybody on the Internet.

View File

@ -32,6 +32,8 @@ We highly recommend that you use the "typical social network" settings when you
[*= Anybody authenticated ] This is similar to "anybody in this network" except that it can include anybody who can authenticate by any means - and therefore [i]may[/i] include visitors from other networks.
[*=Guest Access Token] This allows you to share a file, folder, photo, album, or channel with a specific person or group of people. They don't need to be Hubzilla members. You can set an expiration for the Access Token.
[*= Anybody on the internet ] Completely public. This permission will be approved for anybody at all.
[/dl]
[*= The individual permissions are:]

View File

@ -899,32 +899,86 @@ function widget_chatroom_members() {
function widget_wiki_list($arr) {
require_once("include/wiki.php");
$channel = null;
if (argc() < 2 && local_channel()) {
// This should not occur because /wiki should redirect to /wiki/channel ...
$channel = \App::get_channel();
} else {
$channel = channelx_by_nick(argv(1)); // Channel being viewed by observer
}
if (!$channel) {
require_once("include/wiki.php");
$channel = null;
if (argc() < 2 && local_channel()) {
// This should not occur because /wiki should redirect to /wiki/channel ...
$channel = \App::get_channel();
} else {
$channel = channelx_by_nick(argv(1)); // Channel being viewed by observer
}
if (!$channel) {
return '';
}
// init() should have forced the URL to redirect to /wiki/channel so assume argc() > 1
$nick = argv(1);
$owner = channelx_by_nick($nick); // The channel who owns the wikis being viewed
// Determine if the observer is the channel owner so the ACL dialog can be populated
if (local_channel() === intval($owner['channel_id'])) {
// Obtain the default permission settings of the channel
$owner_acl = array(
'allow_cid' => $owner['channel_allow_cid'],
'allow_gid' => $owner['channel_allow_gid'],
'deny_cid' => $owner['channel_deny_cid'],
'deny_gid' => $owner['channel_deny_gid']
);
// Initialize the ACL to the channel default permissions
$x = array(
'lockstate' => (( $owner['channel_allow_cid'] ||
$owner['channel_allow_gid'] ||
$owner['channel_deny_cid'] ||
$owner['channel_deny_gid']) ? 'lock' : 'unlock'
),
'acl' => populate_acl($owner_acl),
'allow_cid' => acl2json($owner_acl['allow_cid']),
'allow_gid' => acl2json($owner_acl['allow_gid']),
'deny_cid' => acl2json($owner_acl['deny_cid']),
'deny_gid' => acl2json($owner_acl['deny_gid']),
'bang' => ''
);
} else {
// Not the channel owner
$owner_acl = $x = array();
}
if(argc()>1) {
$activeWikiURLname = argv(2);
} else {
$activeWikiURLname = '';
}
logger($activeWikiURLname, LOGGER_DEBUG);
$wikis = wiki_list($channel, get_observer_hash());
foreach($wikis['wikis'] as &$w) {
if($w['urlName'] === $activeWikiURLname) {
$w['active'] = true;
} else {
$w['active'] = false;
}
}
if ($wikis) {
return replace_macros(get_markup_template('wikilist.tpl'), array(
'$header' => t('Wiki List'),
'$channel' => $channel['channel_address'],
'$wikis' => $wikis['wikis'],
// If the observer is the local channel owner, show the wiki controls
'$owner' => ((local_channel() && local_channel() === intval(\App::$profile['uid'])) ? true : false),
'$edit' => t('Edit'),
'$download' => t('Download'),
'$view' => t('View'),
'$addnew' => t('Create new wiki'),
'$create' => t('Create'),
'$wikiName' => array('wikiName', t('Wiki name'), '', ''),
'$lockstate' => $x['lockstate'],
'$acl' => $x['acl'],
'$allow_cid' => $x['allow_cid'],
'$allow_gid' => $x['allow_gid'],
'$deny_cid' => $x['deny_cid'],
'$deny_gid' => $x['deny_gid'],
'$bang' => $x['bang'],
'$notify' => t('Send notification')
));
}
return '';
}
$wikis = wiki_list($channel, get_observer_hash());
if ($wikis) {
return replace_macros(get_markup_template('wikilist.tpl'), array(
'$header' => t('Wiki List'),
'$channel' => $channel['channel_address'],
'$wikis' => $wikis['wikis'],
// If the observer is the local channel owner, show the wiki controls
'$owner' => ((local_channel() && local_channel() === intval(\App::$profile['uid'])) ? true : false),
'$edit' => t('Edit'),
'$download' => t('Download'),
'$view' => t('View'),
'$addnew' => t('Add new wiki')
));
}
return '';
}
function widget_wiki_pages($arr) {

View File

@ -2025,11 +2025,17 @@ dl.bb-dl > dd > li {
}
.embed-photo-selected-photo {
border-color: blue;
border-style: solid;
border-width: 5px;
border-color: blue;
border-style: solid;
border-width: 5px;
}
#wiki-preview img {
max-width: 100%;
max-width: 100%;
}
.sub-menu {
margin-top: 10px;
padding-left: 15px;
border-left: 3px solid #ccc;
}

View File

@ -43,47 +43,7 @@
<h2><span id="wiki-header-name">{{$wikiheaderName}}</span>: <span id="wiki-header-page">{{$wikiheaderPage}}</span></h2>
<div class="clear"></div>
</div>
<div id="new-wiki-form-wrapper" class="section-content-tools-wrapper" style="display:none;">
<form id="new-wiki-form" action="wiki/{{$channel}}/create/wiki" method="post" class="acl-form" data-form_id="new-wiki-form" data-allow_cid='{{$allow_cid}}' data-allow_gid='{{$allow_gid}}' data-deny_cid='{{$deny_cid}}' data-deny_gid='{{$deny_gid}}'>
<div class="clear"></div>
{{include file="field_input.tpl" field=$wikiName}}
<div id="post-visible-container" class="form-group field checkbox">
<span style="font-size:1.2em;" class="pull-left">Send notification post?</span>
<div style="margin-left:20px" class="pull-left">
<input name="postVisible" id="postVisible" value="0" type="checkbox">
<label class="switchlabel" for="postVisible">
<span class="onoffswitch-inner" data-on="Post" data-off="None"></span>
<span class="onoffswitch-switch"></span>
</label>
</div>
</div>
<div class="btn-group pull-right">
<div id="profile-jot-submit-right" class="btn-group">
<button id="dbtn-acl" class="btn btn-default btn-sm" data-toggle="modal" data-target="#aclModal" title="Permission settings" onclick="return false;">
<i id="jot-perms-icon" class="fa fa-{{$lockstate}} jot-icons"></i>{{$bang}}
</button>
<button id="new-wiki-submit" class="btn btn-primary" type="submit" name="submit" >Create Wiki</button>
</div>
</div>
</form>
{{$acl}}
<div class="clear"></div>
<hr>
</div>
<div id="edit-wiki-form-wrapper" class="section-content-tools-wrapper" style="display:none;">
<form id="edit-wiki-form" action="wiki/edit/wiki" method="post" >
<div class="clear"></div>
<div class="btn-group pull-right">
<!--<button id="edit-wiki-submit" class="btn btn-success" type="submit" name="submit" >Edit Wiki</button>-->
<button class="btn btn-md btn-danger" onclick="wiki_delete_wiki(window.wiki_title, window.wiki_resource_id); return false;"><i class="fa fa-trash-o"></i>&nbsp;Delete Wiki</button>
</div>
</form> <div class="clear"></div>
<hr>
</div>
<div id="new-page-form-wrapper" class="section-content-tools-wrapper" style="display:none;">
<form id="new-page-form" action="wiki/create/page" method="post" >
@ -218,14 +178,23 @@
});
var editor = ace.edit("ace-editor");
editor.setTheme("ace/theme/github");
editor.setShowPrintMargin(false);
editor.getSession().setUseWrapMode('free');
editor.getSession().setMode("ace/mode/markdown");
editor.setOptions({
theme: "ace/theme/github",
mode: "ace/mode/markdown",
wrap: true,
minLines: 30,
maxLines: Infinity,
printMargin: false
});
editor.getSession().setValue(window.wiki_page_content);
window.editor = editor; // Store the editor in the window object so the anonymous function can use it.
$('#edit-pane-tab').click(function (ev) {
setTimeout(function() {window.editor.focus();}, 500); // Return the focus to the editor allowing immediate text entry
window.editor = editor; // Store the editor in the window object so the anonymous function can use it.
$('#edit-pane-tab').click(function (ev) {
setTimeout(function() {window.editor.focus();}, 500); // Return the focus to the editor allowing immediate text entry
});
$('#wiki-get-preview').click(function (ev) {

View File

@ -1,15 +1,49 @@
<div id="wiki_list" class="widget">
<h3>{{$header}}</h3>
<ul class="nav nav-pills nav-stacked">
<h3>{{$header}}</h3>
<ul class="nav nav-pills nav-stacked">
{{if $wikis}}
{{foreach $wikis as $wiki}}
<li>{{if $owner}}<a href="#" onclick="wiki_show_edit_wiki_form('{{$wiki.title}}', '{{$wiki.resource_id}}'); return false;" class="pull-right wikilist" title="{{$edit}}"><i class="fa fa-pencil"></i></a>{{/if}}
<li>{{if $owner}}<a href="#" onclick="$('div[id^=\'edit-wiki-form-wrapper\']').hide(); $('div[id^=\'new-wiki-form-wrapper\']').hide(); openClose('edit-wiki-form-wrapper-{{$wiki.resource_id}}'); return false;" class="pull-right wikilist" title="{{$edit}}"><i class="fa fa-pencil"></i></a>{{/if}}
<a href="#" onclick="wiki_download_wiki('{{$wiki.resource_id}}'); return false;" title="{{$download}}" class="pull-right wikilist"><i class="fa fa-download"></i></a>
<a href="/wiki/{{$channel}}/{{$wiki.urlName}}/Home" title="{{$view}}">{{$wiki.title}}</a>
</li>
<a href="/wiki/{{$channel}}/{{$wiki.urlName}}/Home" title="{{$view}}"{{if $wiki.active}} class="active"{{/if}}>{{$wiki.title}}</a>
{{if $owner}}
<div id="edit-wiki-form-wrapper-{{$wiki.resource_id}}" class="section-content-tools-wrapper" style="display:none;">
<form id="edit-wiki-form" action="wiki/edit/wiki" method="post" >
<div class="clear"></div>
<div class="btn-group pull-right">
<button class="btn btn-xs btn-danger" onclick="wiki_delete_wiki('{{$wiki.title}}', '{{$wiki.resource_id}}'); return false;"><i class="fa fa-trash-o"></i>&nbsp;Delete Wiki</button>
</div>
</form>
<div class="clear"></div>
</div>
{{/if}}
</li>
{{/foreach}}
{{/if}}
{{if $owner}}<li><a href="#" class="fakelink" onclick="wiki_show_new_wiki_form(); return false;"><i id="new-wiki-button" class="fa fa-plus-circle"></i>&nbsp;{{$addnew}}</a></li>{{/if}}
</ul>
{{if $owner}}
<li><a href="#" class="fakelink" onclick="$('div[id^=\'edit-wiki-form-wrapper\']').hide(); openClose('new-wiki-form-wrapper'); return false;"><i id="new-wiki-button" class="fa fa-plus-circle"></i>&nbsp;{{$addnew}}</a></li>
{{/if}}
</ul>
{{if $owner}}
<div id="new-wiki-form-wrapper" class="sub-menu" style="display:none;">
<form id="new-wiki-form" action="wiki/{{$channel}}/create/wiki" method="post" class="acl-form" data-form_id="new-wiki-form" data-allow_cid='{{$allow_cid}}' data-allow_gid='{{$allow_gid}}' data-deny_cid='{{$deny_cid}}' data-deny_gid='{{$deny_gid}}'>
{{include file="field_input.tpl" field=$wikiName}}
<div id="post-visible-container" class="checkbox">
<label>
<input name="postVisible" id="postVisible" value="0" type="checkbox">{{$notify}}
</label>
</div>
<div>
<div id="profile-jot-submit-right" class="btn-group">
<button id="dbtn-acl" class="btn btn-default btn-sm" data-toggle="modal" data-target="#aclModal" title="Permission settings" onclick="return false;">
<i id="jot-perms-icon" class="fa fa-{{$lockstate}} jot-icons"></i>{{$bang}}
</button>
<button id="new-wiki-submit" class="btn btn-primary btn-sm" type="submit" name="submit" >{{$create}}</button>
</div>
</div>
</form>
<div class="clear"></div>
</div>
{{/if}}
</div>
{{$acl}}