display wiki list on wiki landing page.

This commit is contained in:
Mario Vavti 2016-11-22 11:30:04 +01:00
parent 69123590fb
commit 060982adb4
8 changed files with 171 additions and 91 deletions

View File

@ -90,7 +90,10 @@ class Wiki extends \Zotlabs\Web\Controller {
// Not the channel owner // Not the channel owner
$owner_acl = $x = array(); $owner_acl = $x = array();
} }
$is_owner = ((local_channel()) && (local_channel() == \App::$profile['profile_uid']) ? true : false);
$o = profile_tabs($a, $is_owner, \App::$profile['channel_address']);
// Download a wiki // Download a wiki
if ((argc() > 3) && (argv(2) === 'download') && (argv(3) === 'wiki')) { if ((argc() > 3) && (argv(2) === 'download') && (argv(3) === 'wiki')) {
$resource_id = argv(4); $resource_id = argv(4);
@ -122,18 +125,33 @@ class Wiki extends \Zotlabs\Web\Controller {
switch (argc()) { switch (argc()) {
case 2: case 2:
// Configure page template $wikis = wiki_list($owner, get_observer_hash());
$wikiheaderName = t('Wiki'); if ($wikis) {
$wikiheaderPage = t('Sandbox'); $o .= replace_macros(get_markup_template('wikilist.tpl'), array(
require_once('library/markdown.php'); '$header' => t('Wikis'),
$content = t('"# Wiki Sandbox\n\nContent you **edit** and **preview** here *will not be saved*."'); '$channel' => $owner['channel_address'],
$renderedContent = Markdown(json_decode($content)); '$wikis' => $wikis['wikis'],
$hide_editor = true; // If the observer is the local channel owner, show the wiki controls
$showPageControls = false; '$owner' => ((local_channel() && local_channel() === intval(\App::$profile['uid'])) ? true : false),
$showNewWikiButton = $wiki_owner; '$edit' => t('Edit'),
$showNewPageButton = false; '$download' => t('Download'),
$hidePageHistory = true; '$view' => t('View'),
$showCommitMsg = false; '$create' => t('Create New'),
'$submit' => t('Submit'),
'$wikiName' => array('wikiName', t('Wiki name')),
'$name' => t('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'],
'$notify' => array('postVisible', t('Create a status post for this wiki'), '', '', array(t('No'), t('Yes')))
));
return $o;
}
break; break;
case 3: case 3:
// /wiki/channel/wiki -> No page was specified, so redirect to Home.md // /wiki/channel/wiki -> No page was specified, so redirect to Home.md
@ -201,11 +219,6 @@ class Wiki extends \Zotlabs\Web\Controller {
) )
); );
$is_owner = ((local_channel()) && (local_channel() == \App::$profile['profile_uid']) ? true : false);
$o .= profile_tabs($a, $is_owner, \App::$profile['channel_address']);
$o .= replace_macros(get_markup_template('wiki.tpl'),array( $o .= replace_macros(get_markup_template('wiki.tpl'),array(
'$wikiheaderName' => $wikiheaderName, '$wikiheaderName' => $wikiheaderName,
'$wikiheaderPage' => $wikiheaderPage, '$wikiheaderPage' => $wikiheaderPage,

View File

@ -956,7 +956,7 @@ function widget_wiki_list($arr) {
} }
} }
if ($wikis) { if ($wikis) {
return replace_macros(get_markup_template('wikilist.tpl'), array( return replace_macros(get_markup_template('wikilist_widget.tpl'), array(
'$header' => t('Wiki List'), '$header' => t('Wiki List'),
'$channel' => $channel['channel_address'], '$channel' => $channel['channel_address'],
'$wikis' => $wikis['wikis'], '$wikis' => $wikis['wikis'],

40
view/css/mod_wiki.css Normal file
View File

@ -0,0 +1,40 @@
#ace-editor {
position: relative;
width: 100%;
height: 500px;
}
.fade.in {
-webkit-transition: opacity 0.5s 0.5s ease;
-moz-transition: opacity 0.5s 0.5s ease;
-o-transition: opacity 0.5s 0.5s ease;
transition: opacity 0.5s 0.5s ease;
}
#new-wiki-form-wrapper {
display: none;
}
#wikis-index {
width: 100%;
}
#wikis-index th:nth-child(1),
#wikis-index td:nth-child(1){
padding: 7px 3px 7px 10px;
}
#wikis-index th:nth-child(2),
#wikis-index td:nth-child(2){
padding: 7px 10px 7px 7px;
}
#wikis-index th:nth-child(3),
#wikis-index td:nth-child(3){
padding: 7px 10px 7px 7px;
}
.wikis-index-tool {
padding: 7px 10px;
}

View File

@ -1,4 +1,4 @@
[region=aside] [region=aside]
[widget=wiki_list][/widget] [widget=vcard][/widget]
[widget=wiki_pages][/widget] [widget=wiki_pages][/widget]
[/region] [/region]

View File

@ -1649,6 +1649,7 @@ main.fullscreen .section-content-wrapper-np {
.atoken-index-row:hover td, .atoken-index-row:hover td,
.chatroom-index-row:hover td, .chatroom-index-row:hover td,
.wikis-index-row:hover td,
.locs-index-row:hover td, .locs-index-row:hover td,
[id^="cloud-index-"]:hover td, [id^="cloud-index-"]:hover td,
.cloud-index-active { .cloud-index-active {

View File

@ -1,16 +1,3 @@
<style type="text/css" media="screen">
#ace-editor {
position: relative;
width: 100%;
height: 500px;
}
.fade.in {
-webkit-transition: opacity 0.5s 0.5s ease;
-moz-transition: opacity 0.5s 0.5s ease;
-o-transition: opacity 0.5s 0.5s ease;
transition: opacity 0.5s 0.5s ease;
}
</style>
{{if $hideEditor}} {{if $hideEditor}}
<div> <div>
<p class="lead text-center">{{$chooseWikiMessage}}</p> <p class="lead text-center">{{$chooseWikiMessage}}</p>
@ -222,27 +209,6 @@
ev.preventDefault(); ev.preventDefault();
}); });
function wiki_delete_wiki(wikiHtmlName, resource_id) {
if(!confirm('Are you sure you want to delete the entire wiki: ' + JSON.stringify(wikiHtmlName))) {
return;
}
$.post("wiki/{{$channel}}/delete/wiki", {resource_id: resource_id}, function (data) {
if (data.success) {
window.console.log('Wiki deleted');
// Refresh list and redirect page as necessary
window.location = 'wiki/{{$channel}}';
} else {
alert('Error deleting wiki!');
window.console.log('Error deleting wiki.');
}
}, 'json');
}
function wiki_download_wiki(resource_id) {
window.location = "wiki/{{$channel}}/download/wiki/" + resource_id;
}
function wiki_refresh_page_list() { function wiki_refresh_page_list() {
if (window.wiki_resource_id === '') { if (window.wiki_resource_id === '') {
return false; return false;
@ -466,14 +432,6 @@
'json'); 'json');
}; };
function wiki_show_new_wiki_form() {
$('div[id^=\'edit-wiki-form-wrapper\']').hide();
$('#new-page-form-wrapper').hide();
$('#edit-wiki-form-wrapper').hide();
$('#new-wiki-form-wrapper').toggle();
return false;
}
function wiki_show_new_page_form() { function wiki_show_new_page_form() {
$('div[id^=\'edit-wiki-form-wrapper\']').hide(); $('div[id^=\'edit-wiki-form-wrapper\']').hide();
$('#edit-wiki-form-wrapper').hide(); $('#edit-wiki-form-wrapper').hide();

View File

@ -1,45 +1,68 @@
<div id="wiki_list" class="widget"> <div class="generic-content-wrapper">
<h3>{{$header}}</h3> <div class="section-title-wrapper">
<ul class="nav nav-pills nav-stacked">
{{if $wikis}}
{{foreach $wikis as $wiki}}
<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}}"{{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}} {{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> <button type="button" class="btn btn-success btn-xs pull-right acl-form-trigger" onclick="openClose('new-wiki-form-wrapper');" data-form_id="new-wiki-form"><i class="fa fa-plus-circle"></i>&nbsp;{{$create}}</button>
{{/if}} {{/if}}
</ul> <h2>{{$header}}</h2>
</div>
{{if $owner}} {{if $owner}}
<div id="new-wiki-form-wrapper" class="sub-menu" style="display:none;"> <div id="new-wiki-form-wrapper" class="section-content-tools-wrapper">
<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}}'> <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}} {{include file="field_input.tpl" field=$wikiName}}
{{include file="field_checkbox.tpl" field=$notify}} {{include file="field_checkbox.tpl" field=$notify}}
<div> <div>
<div id="profile-jot-submit-right" class="btn-group"> <div class="btn-group pull-right">
<button id="dbtn-acl" class="btn btn-default btn-sm" data-toggle="modal" data-target="#aclModal" title="Permission settings" onclick="return false;"> <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}} <i id="jot-perms-icon" class="fa fa-{{$lockstate}} jot-icons"></i>
</button> </button>
<button id="new-wiki-submit" class="btn btn-primary btn-sm" type="submit" name="submit" >{{$create}}</button> <button id="new-wiki-submit" class="btn btn-primary btn-sm" type="submit" name="submit" >{{$submit}}</button>
</div> </div>
</div> </div>
</form> </form>
{{$acl}}
<div class="clear"></div> <div class="clear"></div>
</div> </div>
{{/if}} {{/if}}
<div class="section-content-wrapper-np">
<table id="wikis-index">
<tr>
<th width="98%">{{$name}}</th>
<th width="1%" class="wikis-index-tool"></th>
{{if $owner}}
<th width="1%"></th>
{{/if}}
</tr>
{{foreach $wikis as $wiki}}
<tr class="wikis-index-row">
<td><a href="/wiki/{{$channel}}/{{$wiki.urlName}}/Home" title="{{$view}}"{{if $wiki.active}} class="active"{{/if}}>{{$wiki.title}}</a></td>
<td class="wiki-index-tool"><i class="fa fa-download fakelink" onclick="wiki_download_wiki('{{$wiki.resource_id}}'); return false;"></i></td>
{{if $owner}}
<td><i class="fa fa-trash-o drop-icons" onclick="wiki_delete_wiki('{{$wiki.title}}', '{{$wiki.resource_id}}'); return false;"></i></td>
{{/if}}
</tr>
{{/foreach}}
</table>
</div>
</div> </div>
{{$acl}} <script>
{{if $owner}}
function wiki_delete_wiki(wikiHtmlName, resource_id) {
if(!confirm('Are you sure you want to delete the entire wiki: ' + JSON.stringify(wikiHtmlName))) {
return;
}
$.post("wiki/{{$channel}}/delete/wiki", {resource_id: resource_id}, function (data) {
if (data.success) {
window.console.log('Wiki deleted');
// Refresh list and redirect page as necessary
window.location = 'wiki/{{$channel}}';
} else {
alert('Error deleting wiki!');
window.console.log('Error deleting wiki.');
}
}, 'json');
}
{{/if}}
function wiki_download_wiki(resource_id) {
window.location = "wiki/{{$channel}}/download/wiki/" + resource_id;
}
</script>

View File

@ -0,0 +1,45 @@
<div id="wiki_list" class="widget">
<h3>{{$header}}</h3>
<ul class="nav nav-pills nav-stacked">
{{if $wikis}}
{{foreach $wikis as $wiki}}
<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}}"{{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}}
<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}}
{{include file="field_checkbox.tpl" field=$notify}}
<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}}