display wiki list on wiki landing page.
This commit is contained in:
parent
69123590fb
commit
060982adb4
@ -91,6 +91,9 @@ class Wiki extends \Zotlabs\Web\Controller {
|
|||||||
$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,
|
||||||
|
@ -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
40
view/css/mod_wiki.css
Normal 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;
|
||||||
|
}
|
||||||
|
|
@ -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]
|
||||||
|
@ -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 {
|
||||||
|
@ -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();
|
||||||
|
@ -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}}
|
{{if $owner}}
|
||||||
<div id="edit-wiki-form-wrapper-{{$wiki.resource_id}}" class="section-content-tools-wrapper" style="display:none;">
|
<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> {{$create}}</button>
|
||||||
<form id="edit-wiki-form" action="wiki/edit/wiki" method="post" >
|
{{/if}}
|
||||||
<div class="clear"></div>
|
<h2>{{$header}}</h2>
|
||||||
<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> Delete Wiki</button>
|
|
||||||
</div>
|
</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> {{$addnew}}</a></li>
|
<div id="new-wiki-form-wrapper" class="section-content-tools-wrapper">
|
||||||
{{/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}}'>
|
<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>
|
||||||
{{$acl}}
|
</div>
|
||||||
|
<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>
|
||||||
|
45
view/tpl/wikilist_widget.tpl
Normal file
45
view/tpl/wikilist_widget.tpl
Normal 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> 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> {{$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}}
|
Reference in New Issue
Block a user