aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Zotlabs/Module/Wiki.php49
-rw-r--r--include/widgets.php2
-rw-r--r--view/css/mod_wiki.css40
-rw-r--r--view/pdl/mod_wiki.pdl2
-rw-r--r--view/theme/redbasic/css/style.css1
-rw-r--r--view/tpl/wiki.tpl42
-rw-r--r--view/tpl/wikilist.tpl81
-rw-r--r--view/tpl/wikilist_widget.tpl45
8 files changed, 171 insertions, 91 deletions
diff --git a/Zotlabs/Module/Wiki.php b/Zotlabs/Module/Wiki.php
index c4fa63673..65d694b12 100644
--- a/Zotlabs/Module/Wiki.php
+++ b/Zotlabs/Module/Wiki.php
@@ -90,7 +90,10 @@ class Wiki extends \Zotlabs\Web\Controller {
// Not the channel owner
$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
if ((argc() > 3) && (argv(2) === 'download') && (argv(3) === 'wiki')) {
$resource_id = argv(4);
@@ -122,18 +125,33 @@ class Wiki extends \Zotlabs\Web\Controller {
switch (argc()) {
case 2:
- // Configure page template
- $wikiheaderName = t('Wiki');
- $wikiheaderPage = t('Sandbox');
- require_once('library/markdown.php');
- $content = t('"# Wiki Sandbox\n\nContent you **edit** and **preview** here *will not be saved*."');
- $renderedContent = Markdown(json_decode($content));
- $hide_editor = true;
- $showPageControls = false;
- $showNewWikiButton = $wiki_owner;
- $showNewPageButton = false;
- $hidePageHistory = true;
- $showCommitMsg = false;
+ $wikis = wiki_list($owner, get_observer_hash());
+ if ($wikis) {
+ $o .= replace_macros(get_markup_template('wikilist.tpl'), array(
+ '$header' => t('Wikis'),
+ '$channel' => $owner['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'),
+ '$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;
case 3:
// /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(
'$wikiheaderName' => $wikiheaderName,
'$wikiheaderPage' => $wikiheaderPage,
diff --git a/include/widgets.php b/include/widgets.php
index 1441fbeb3..97f3ec019 100644
--- a/include/widgets.php
+++ b/include/widgets.php
@@ -956,7 +956,7 @@ function widget_wiki_list($arr) {
}
}
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'),
'$channel' => $channel['channel_address'],
'$wikis' => $wikis['wikis'],
diff --git a/view/css/mod_wiki.css b/view/css/mod_wiki.css
new file mode 100644
index 000000000..1abb0b3b4
--- /dev/null
+++ b/view/css/mod_wiki.css
@@ -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;
+}
+
diff --git a/view/pdl/mod_wiki.pdl b/view/pdl/mod_wiki.pdl
index 76ed1c70c..052ae61a1 100644
--- a/view/pdl/mod_wiki.pdl
+++ b/view/pdl/mod_wiki.pdl
@@ -1,4 +1,4 @@
[region=aside]
-[widget=wiki_list][/widget]
+[widget=vcard][/widget]
[widget=wiki_pages][/widget]
[/region]
diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css
index bd0e372f8..fba6da17a 100644
--- a/view/theme/redbasic/css/style.css
+++ b/view/theme/redbasic/css/style.css
@@ -1649,6 +1649,7 @@ main.fullscreen .section-content-wrapper-np {
.atoken-index-row:hover td,
.chatroom-index-row:hover td,
+.wikis-index-row:hover td,
.locs-index-row:hover td,
[id^="cloud-index-"]:hover td,
.cloud-index-active {
diff --git a/view/tpl/wiki.tpl b/view/tpl/wiki.tpl
index cf076c244..1e167c8b0 100644
--- a/view/tpl/wiki.tpl
+++ b/view/tpl/wiki.tpl
@@ -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}}
<div>
<p class="lead text-center">{{$chooseWikiMessage}}</p>
@@ -222,27 +209,6 @@
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() {
if (window.wiki_resource_id === '') {
return false;
@@ -466,14 +432,6 @@
'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() {
$('div[id^=\'edit-wiki-form-wrapper\']').hide();
$('#edit-wiki-form-wrapper').hide();
diff --git a/view/tpl/wikilist.tpl b/view/tpl/wikilist.tpl
index 51eccad90..27fb6370e 100644
--- a/view/tpl/wikilist.tpl
+++ b/view/tpl/wikilist.tpl
@@ -1,45 +1,68 @@
-<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}}
+<div class="generic-content-wrapper">
+ <div class="section-title-wrapper">
{{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}}
- </ul>
+ <h2>{{$header}}</h2>
+ </div>
{{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}}'>
{{include file="field_input.tpl" field=$wikiName}}
{{include file="field_checkbox.tpl" field=$notify}}
<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;">
- <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 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>
</form>
+ {{$acl}}
<div class="clear"></div>
</div>
{{/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}}
+<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>
diff --git a/view/tpl/wikilist_widget.tpl b/view/tpl/wikilist_widget.tpl
new file mode 100644
index 000000000..51eccad90
--- /dev/null
+++ b/view/tpl/wikilist_widget.tpl
@@ -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}}