Merge branch 'dev' of https://github.com/redmatrix/hubzilla into dev_merge
This commit is contained in:
commit
6c5795b519
@ -44,8 +44,6 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
// Something like $interface = array('new_page_button' => false, 'new_wiki_button' => false, ...)
|
||||
$wiki_owner = false;
|
||||
$showNewWikiButton = false;
|
||||
$showCommitMsg = false;
|
||||
$hidePageHistory = false;
|
||||
$pageHistory = array();
|
||||
$local_observer = null;
|
||||
$resource_id = '';
|
||||
@ -173,10 +171,12 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
// Fetch the wiki info and determine observer permissions
|
||||
$wikiUrlName = urlencode(argv(2));
|
||||
$pageUrlName = urlencode(argv(3));
|
||||
|
||||
$w = wiki_exists_by_name($owner['channel_id'], $wikiUrlName);
|
||||
if(!$w['resource_id']) {
|
||||
notice(t('Wiki not found') . EOL);
|
||||
goaway('/'.argv(0).'/'.argv(1));
|
||||
return; //not reached
|
||||
}
|
||||
$resource_id = $w['resource_id'];
|
||||
|
||||
@ -187,6 +187,7 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
if(!$perms['read']) {
|
||||
notice(t('Permission denied.') . EOL);
|
||||
goaway('/'.argv(0).'/'.argv(1));
|
||||
return; //not reached
|
||||
}
|
||||
if($perms['write']) {
|
||||
$wiki_editor = true;
|
||||
@ -198,15 +199,18 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
$wikiheaderName = urldecode($wikiUrlName);
|
||||
$wikiheaderPage = urldecode($pageUrlName);
|
||||
$renamePage = (($wikiheaderPage === 'Home') ? '' : t('Rename page'));
|
||||
|
||||
$p = wiki_get_page_content(array('resource_id' => $resource_id, 'pageUrlName' => $pageUrlName));
|
||||
if(!$p['success']) {
|
||||
notice(t('Error retrieving page content') . EOL);
|
||||
goaway('/'.argv(0).'/'.argv(1).'/'.$wikiUrlName);
|
||||
return; //not reached
|
||||
}
|
||||
|
||||
$mimeType = $p['mimeType'];
|
||||
|
||||
$rawContent = $p['mimeType'] == 'text/bbcode' ? htmlspecialchars_decode(json_decode($p['content']),ENT_COMPAT) : htmlspecialchars_decode($p['content'],ENT_COMPAT);
|
||||
$rawContent = (($p['mimeType'] == 'text/bbcode') ? htmlspecialchars_decode(json_decode($p['content']),ENT_COMPAT) : htmlspecialchars_decode($p['content'],ENT_COMPAT));
|
||||
$content = ($p['content'] !== '' ? $rawContent : '"# New page\n"');
|
||||
// Render the Markdown-formatted page content in HTML
|
||||
if($mimeType == 'text/bbcode') {
|
||||
@ -221,12 +225,11 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
$showPageControls = $wiki_editor;
|
||||
$showNewWikiButton = $wiki_owner;
|
||||
$showNewPageButton = $wiki_editor;
|
||||
$hidePageHistory = false;
|
||||
$showCommitMsg = true;
|
||||
$pageHistory = wiki_page_history(array('resource_id' => $resource_id, 'pageUrlName' => $pageUrlName));
|
||||
break;
|
||||
default: // Strip the extraneous URL components
|
||||
goaway('/'.argv(0).'/'.argv(1).'/'.$wikiUrlName.'/'.$pageUrlName);
|
||||
goaway('/' . argv(0) . '/' . argv(1) . '/' . $wikiUrlName . '/' . $pageUrlName);
|
||||
return; //not reached
|
||||
}
|
||||
|
||||
$wikiModalID = random_string(3);
|
||||
@ -241,15 +244,14 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
$o .= replace_macros(get_markup_template('wiki.tpl'),array(
|
||||
'$wikiheaderName' => $wikiheaderName,
|
||||
'$wikiheaderPage' => $wikiheaderPage,
|
||||
'$renamePage' => $renamePage,
|
||||
'$hideEditor' => $hide_editor, // True will completely hide the content section and is used for the case of no wiki selected
|
||||
'$chooseWikiMessage' => t('Choose an available wiki from the list on the left.'),
|
||||
'$showPageControls' => $showPageControls,
|
||||
'$editOrSourceLabel' => (($showPageControls) ? t('Edit') : t('Source')),
|
||||
'$tools_label' => 'Wiki Tools',
|
||||
'$tools_label' => 'Page Tools',
|
||||
'$showNewWikiButton'=> $showNewWikiButton,
|
||||
'$showNewPageButton'=> $showNewPageButton,
|
||||
'$hidePageHistory' => $hidePageHistory,
|
||||
'$showCommitMsg' => $showCommitMsg,
|
||||
'$channel' => $owner['channel_address'],
|
||||
'$resource_id' => $resource_id,
|
||||
'$page' => $pageUrlName,
|
||||
@ -263,9 +265,7 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
'$mimeType' => $mimeType,
|
||||
'$content' => $content,
|
||||
'$renderedContent' => $renderedContent,
|
||||
'$wikiName' => array('wikiName', t('Enter the name of your new wiki:'), '', ''),
|
||||
'$pageName' => array('pageName', t('Enter the name of the new page:'), '', ''),
|
||||
'$pageRename' => array('pageRename', t('Enter the new name:'), '', ''),
|
||||
'$pageRename' => array('pageRename', t('New page name'), '', ''),
|
||||
'$commitMsg' => array('commitMsg', '', '', '', '', 'placeholder="Short description of your changes (optional)"'),
|
||||
'$pageHistory' => $pageHistory['history'],
|
||||
'$wikiModal' => $wikiModal,
|
||||
@ -282,7 +282,10 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
'$modalerrorlink' => t('Error getting photo link'),
|
||||
'$modalerroralbum' => t('Error getting album'),
|
||||
));
|
||||
head_add_js('library/ace/ace.js'); // Ace Code Editor
|
||||
|
||||
if($p['mimeType'] != 'text/bbcode')
|
||||
head_add_js('library/ace/ace.js'); // Ace Code Editor
|
||||
|
||||
return $o;
|
||||
}
|
||||
|
||||
|
@ -2,14 +2,16 @@
|
||||
<div class="section-title-wrapper">
|
||||
<div class="pull-right">
|
||||
{{if $showPageControls}}
|
||||
<div class="btn-group">
|
||||
<div id="page-tools" class="btn-group" style="display: none;">
|
||||
<button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown">
|
||||
<i class="fa fa-caret-down"></i> {{$tools_label}}
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-right">
|
||||
{{if $renamePage}}
|
||||
<li class="nav-item">
|
||||
<a id="rename-page" class="nav-link" href="#"><i class="fa fa-edit"></i> Rename Page</a>
|
||||
<a class="nav-link rename-page" href="#"><i class="fa fa-edit"></i> {{$renamePage}}</a>
|
||||
</li>
|
||||
{{/if}}
|
||||
<li class="nav-item">
|
||||
<a id="embed-image" class="nav-link" href="#"><i class="fa fa-picture-o"></i> Embed Image</a>
|
||||
</li>
|
||||
@ -28,17 +30,22 @@
|
||||
<div id="rename-page-form-wrapper" class="section-content-tools-wrapper" style="display:none;">
|
||||
<form id="rename-page-form" action="wiki/rename/page" method="post" >
|
||||
{{include file="field_input.tpl" field=$pageRename}}
|
||||
<div class="btn-group pull-right">
|
||||
<button id="rename-page-submit" class="btn btn-warning" type="submit" name="submit" >Rename Page</button>
|
||||
<div class="form-group">
|
||||
<div class="pull-right">
|
||||
<button id="rename-page-submit" class="btn btn-primary" type="submit" name="submit">Submit</button>
|
||||
</div>
|
||||
<div>
|
||||
<button class="btn btn-default rename-page" type="button">Cancel</button>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
<div id="wiki-content-container" class="section-content-wrapper" {{if $hideEditor}}style="display: none;"{{/if}}>
|
||||
<ul class="nav nav-tabs" id="wiki-nav-tabs">
|
||||
<li id="edit-pane-tab"><a data-toggle="tab" href="#edit-pane">{{$editOrSourceLabel}}</a></li>
|
||||
<li class="active"><a data-toggle="tab" href="#preview-pane" id="wiki-get-preview">View</a></li>
|
||||
<li {{if $hidePageHistory}}style="display: none;"{{/if}}><a data-toggle="tab" href="#page-history-pane" id="wiki-get-history">History</a></li>
|
||||
<li><a data-toggle="tab" href="#page-history-pane" id="wiki-get-history">History</a></li>
|
||||
</ul>
|
||||
<div class="tab-content" id="wiki-page-tabs">
|
||||
<div id="edit-pane" class="tab-pane fade">
|
||||
@ -47,7 +54,6 @@
|
||||
{{else}}
|
||||
<textarea id="editor">{{$content}}</textarea>
|
||||
{{/if}}
|
||||
{{if $showCommitMsg}}
|
||||
{{if $showPageControls}}
|
||||
<div>
|
||||
<div id="id_{{$commitMsg.0}}_wrapper" class="form-group field input">
|
||||
@ -60,14 +66,13 @@
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
<div id="preview-pane" class="tab-pane fade in active">
|
||||
<div id="wiki-preview">
|
||||
{{$renderedContent}}
|
||||
</div>
|
||||
</div>
|
||||
<div id="page-history-pane" class="tab-pane fade" {{if $hidePageHistory}}style="display: none;"{{/if}}>
|
||||
<div id="page-history-pane" class="tab-pane fade">
|
||||
<div id="page-history-list"></div>
|
||||
</div>
|
||||
</div>
|
||||
@ -105,17 +110,12 @@
|
||||
window.wiki_page_content = {{if !$mimeType || $mimeType == 'text/markdown'}}{{$content}}{{else}}`{{$content}}`{{/if}};
|
||||
window.wiki_page_commit = '{{$commit}}';
|
||||
|
||||
if (window.wiki_page_name === 'Home') {
|
||||
$('#delete-page').hide();
|
||||
$('#rename-page').hide();
|
||||
}
|
||||
|
||||
$("#generic-modal-ok-{{$wikiModalID}}").removeClass('btn-primary');
|
||||
$("#generic-modal-ok-{{$wikiModalID}}").addClass('btn-danger');
|
||||
|
||||
$('#rename-page').click(function (ev) {
|
||||
$('#rename-page-form-wrapper').show();
|
||||
ev.preventDefault();
|
||||
$('.rename-page').click(function (ev) {
|
||||
$('#rename-page-form-wrapper').toggle();
|
||||
ev.preventDefault();
|
||||
});
|
||||
|
||||
$( "#rename-page-form" ).submit(function( event ) {
|
||||
@ -155,17 +155,23 @@
|
||||
|
||||
editor.getSession().setValue(window.wiki_page_content);
|
||||
window.editor = editor; // Store the editor in the window object so the anonymous function can use it.
|
||||
{{if !$showPageControls}}
|
||||
editor.setReadOnly(true); // Disable editing if the viewer lacks edit permission
|
||||
{{/if}}
|
||||
|
||||
|
||||
{{else}}
|
||||
window.editor = editor = $('#editor');
|
||||
{{/if}}
|
||||
|
||||
{{if !$showPageControls}}
|
||||
{{if !$mimeType || $mimeType == 'text/markdown'}}
|
||||
editor.setReadOnly(true); // Disable editing if the viewer lacks edit permission
|
||||
{{else}}
|
||||
editor.prop('readonly', true);
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
||||
$('#edit-pane-tab').click(function (ev) {
|
||||
setTimeout(function() {window.editor.focus();}, 500); // Return the focus to the editor allowing immediate text entry
|
||||
$('#page-tools').show();
|
||||
});
|
||||
|
||||
$('#wiki-get-preview').click(function (ev) {
|
||||
@ -181,6 +187,7 @@
|
||||
if (data.success) {
|
||||
$('#wiki-preview').html(data.html);
|
||||
$("#wiki-toc").toc({content: "#wiki-preview", headings: "h1,h2,h3,h4"});
|
||||
$('#page-tools').hide();
|
||||
} else {
|
||||
window.console.log('Error previewing page.');
|
||||
}
|
||||
@ -192,6 +199,7 @@
|
||||
$.post("wiki/{{$channel}}/history/page", {name: window.wiki_page_name, resource_id: window.wiki_resource_id}, function (data) {
|
||||
if (data.success) {
|
||||
$('#page-history-list').html(data.historyHTML);
|
||||
$('#page-tools').hide();
|
||||
} else {
|
||||
window.console.log('Error getting page history.');
|
||||
}
|
||||
@ -407,27 +415,14 @@
|
||||
'json');
|
||||
};
|
||||
|
||||
function wiki_show_edit_wiki_form(wiki_title, wiki_resource_id) {
|
||||
window.wiki_resource_id = wiki_resource_id;
|
||||
window.wiki_title = wiki_title;
|
||||
$('div[id^=\'edit-wiki-form-wrapper\']').hide();
|
||||
$('#new-page-form-wrapper').hide();
|
||||
$('#new-wiki-form-wrapper').hide();
|
||||
$('#edit-wiki-form-wrapper').toggle();
|
||||
return false;
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
wiki_refresh_page_list();
|
||||
$("#wiki-toc").toc({content: "#wiki-preview", headings: "h1,h2,h3,h4"});
|
||||
|
||||
// This seems obsolete
|
||||
// Show Edit tab first. Otherwise the Ace editor does not load.
|
||||
$("#wiki-nav-tabs li:eq(1) a").tab('show');
|
||||
{{if $showNewWikiButton}}
|
||||
$('#new-wiki-button').show();
|
||||
{{else}}
|
||||
$('#new-wiki-button').hide();
|
||||
{{/if}}
|
||||
// using input event instead of change since it's called with some timeout
|
||||
//$("#wiki-nav-tabs li:eq(1) a").tab('show');
|
||||
|
||||
{{if !$mimeType || $mimeType == 'text/markdown'}}
|
||||
window.editor.on("input", function() {
|
||||
if(window.editor.getSession().getUndoManager().isClean()) {
|
||||
|
Reference in New Issue
Block a user