diff options
-rw-r--r-- | Zotlabs/Module/Wiki.php | 49 | ||||
-rw-r--r-- | include/widgets.php | 2 | ||||
-rw-r--r-- | view/css/mod_wiki.css | 40 | ||||
-rw-r--r-- | view/pdl/mod_wiki.pdl | 2 | ||||
-rw-r--r-- | view/theme/redbasic/css/style.css | 1 | ||||
-rw-r--r-- | view/tpl/wiki.tpl | 42 | ||||
-rw-r--r-- | view/tpl/wikilist.tpl | 81 | ||||
-rw-r--r-- | view/tpl/wikilist_widget.tpl | 45 |
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> 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> {{$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> {{$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> 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}} |