Custom commit message available. Improved history viewer and feedback from revert buttons.

This commit is contained in:
Andrew Manning 2016-06-05 20:30:45 -04:00
parent 08a9553ccc
commit b8b50bdb5a
3 changed files with 32 additions and 7 deletions

View File

@ -29,6 +29,7 @@ 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;
$pageHistory = array();
$local_observer = null;
$resource_id = '';
@ -77,6 +78,7 @@ class Wiki extends \Zotlabs\Web\Controller {
$showPageControls = false;
$showNewWikiButton = $wiki_owner;
$showNewPageButton = false;
$showCommitMsg = false;
break;
case 3:
// /wiki/channel/wiki -> No page was specified, so redirect to Home.md
@ -114,6 +116,7 @@ class Wiki extends \Zotlabs\Web\Controller {
$showPageControls = $wiki_owner;
$showNewWikiButton = $wiki_owner;
$showNewPageButton = $wiki_owner;
$showCommitMsg = true;
$pageHistory = wiki_page_history(array('resource_id' => $resource_id, 'pageUrlName' => $pageUrlName));
break;
default: // Strip the extraneous URL components
@ -128,6 +131,7 @@ class Wiki extends \Zotlabs\Web\Controller {
'$showPageControls' => $showPageControls,
'$showNewWikiButton'=> $showNewWikiButton,
'$showNewPageButton'=> $showNewPageButton,
'$showCommitMsg' => $showCommitMsg,
'$channel' => $channel['channel_address'],
'$resource_id' => $resource_id,
'$page' => $pageUrlName,
@ -138,6 +142,7 @@ class Wiki extends \Zotlabs\Web\Controller {
'$renderedContent' => Markdown(json_decode($content)),
'$wikiName' => array('wikiName', t('Enter the name of your new wiki:'), '', ''),
'$pageName' => array('pageName', t('Enter the name of the new page:'), '', ''),
'$commitMsg' => array('commitMsg', '', '', '', '', 'placeholder="(optional) Enter a custom message when saving the page..."'),
'$pageHistory' => $pageHistory['history']
));
head_add_js('library/ace/ace.js'); // Ace Code Editor
@ -290,6 +295,10 @@ class Wiki extends \Zotlabs\Web\Controller {
$pageUrlName = $_POST['name'];
$pageHtmlName = escape_tags($_POST['name']);
$content = escape_tags($_POST['content']); //Get new content
$commitMsg = $_POST['commitMsg'];
if ($commitMsg === '') {
$commitMsg = 'Updated ' . $pageHtmlName;
}
// Determine if observer has permission to save content
if (local_channel()) {
$channel = \App::get_channel();
@ -314,7 +323,7 @@ class Wiki extends \Zotlabs\Web\Controller {
if($saved['success']) {
$ob = \App::get_observer();
$commit = wiki_git_commit(array(
'commit_msg' => 'Updated ' . $pageHtmlName,
'commit_msg' => $commitMsg,
'resource_id' => $resource_id,
'observer' => $ob,
'files' => array($pageUrlName.'.md')

View File

@ -101,6 +101,11 @@
</div>
</div>
{{if $showCommitMsg}}
<div class="section-content-wrapper">
{{include file="field_input.tpl" field=$commitMsg}}
</div>
{{/if}}
</div>
<script>
@ -198,10 +203,16 @@ function wiki_delete_wiki(wikiHtmlName, resource_id) {
ev.preventDefault();
return false;
}
$.post("wiki/{{$channel}}/save/page", {content: editor.getValue(), name: window.wiki_page_name, resource_id: window.wiki_resource_id},
$.post("wiki/{{$channel}}/save/page",
{ content: editor.getValue(),
commitMsg: $('#id_commitMsg').val(),
name: window.wiki_page_name,
resource_id: window.wiki_resource_id
},
function (data) {
if (data.success) {
window.console.log('Page saved successfully.');
$('#id_commitMsg').val(''); // Clear the commit message box
} else {
alert('Error saving page.'); // TODO: Replace alerts with auto-timeout popups
window.console.log('Error saving page.');
@ -241,7 +252,12 @@ function wiki_delete_wiki(wikiHtmlName, resource_id) {
$.post("wiki/{{$channel}}/revert/page", {commitHash: commitHash, name: window.wiki_page_name, resource_id: window.wiki_resource_id},
function (data) {
if (data.success) {
window.console.log('Reverted content: ' + data.content);
$('button[id^=revert-]').removeClass('btn-success');
$('button[id^=revert-]').addClass('btn-danger');
$('button[id^=revert-]').html('Revert');
$('#revert-'+commitHash).removeClass('btn-danger');
$('#revert-'+commitHash).addClass('btn-success');
$('#revert-'+commitHash).html('Page reverted<br>but not saved');
// put contents in editor
editor.getSession().setValue(data.content);
} else {

View File

@ -1,10 +1,10 @@
<table class="table-striped table-responsive table-hover" style="width: 100%;">
{{foreach $pageHistory as $commit}}
<tr><td>
<table id="rev-{{$commit.hash}}" onclick="$('#details-{{$commit.hash}}').show()">
<tr><td>Date</td><td>{{$commit.date}}</td><td rowspan="3"">
<button id="revert-{{$commit.hash}}" class="btn btn-warning btn-xs" onclick="wiki_revert_page('{{$commit.hash}}')">Revert</button></td></tr>
<tr><td>Name</td><td>{{$commit.name}}</td></tr>
<table id="rev-{{$commit.hash}}" onclick="$('#details-{{$commit.hash}}').show()" width="100%">
<tr><td width="10%">Date</td><td width="70%">{{$commit.date}}</td><td rowspan="3" width="20%" align="right">
<button id="revert-{{$commit.hash}}" class="btn btn-danger btn-xs" onclick="wiki_revert_page('{{$commit.hash}}')">Revert</button></td></tr>
<tr><td>Name</td><td>{{$commit.name}} &lt;{{$commit.email}}&gt;</td></tr>
<tr><td>Message</td><td>{{$commit.title}}</td></tr>
</table>
</td></tr>