rewrite wiki pages widget - no need for ajax on pageload, show the pages to not authenticated people.
This commit is contained in:
		| @@ -197,7 +197,23 @@ class Wiki extends \Zotlabs\Web\Controller { | ||||
| 				// Fetch the wiki info and determine observer permissions | ||||
|  | ||||
| 				$wikiUrlName = urldecode(argv(2)); | ||||
| 				$pageUrlName = urldecode(argv(3)); | ||||
|  | ||||
| 				$page_name = ''; | ||||
| 				$ignore_language = false; | ||||
|  | ||||
| 				for($x = 3; $x < argc(); $x ++) { | ||||
| 					if($page_name === '' && argv($x) === '-') { | ||||
| 						$ignore_language = true; | ||||
| 						continue; | ||||
| 					} | ||||
| 					if($page_name) { | ||||
| 						$page_name .= '/'; | ||||
| 					} | ||||
| 					$page_name .= argv($x); | ||||
| 				} | ||||
|  | ||||
| 				$pageUrlName = urldecode($page_name); | ||||
| 				$langPageUrlName = urldecode(\App::$language . '/' . $page_name); | ||||
|  | ||||
| 				$w = Zlib\NativeWiki::exists_by_name($owner['channel_id'], $wikiUrlName); | ||||
|  | ||||
| @@ -274,7 +290,8 @@ class Wiki extends \Zotlabs\Web\Controller { | ||||
| 			'$showPageControls' => $showPageControls, | ||||
| 			'$editOrSourceLabel' => (($showPageControls) ? t('Edit') : t('Source')), | ||||
| 			'$tools_label' => 'Page Tools', | ||||
| 			'$channel' => $owner['channel_address'], | ||||
| 			'$channel_address' => $owner['channel_address'], | ||||
| 			'$channel_id' => $owner['channel_id'], | ||||
| 			'$resource_id' => $resource_id, | ||||
| 			'$page' => $pageUrlName, | ||||
| 			'$mimeType' => $mimeType, | ||||
| @@ -473,10 +490,12 @@ class Wiki extends \Zotlabs\Web\Controller { | ||||
|  | ||||
| 			$x = new \Zotlabs\Widget\Wiki_pages(); | ||||
|  | ||||
| 			$page_list_html = $x->widget(array( | ||||
| 					'resource_id' => $resource_id,  | ||||
| 					'refresh' => true,  | ||||
| 					'channel' => argv(1))); | ||||
| 			$page_list_html = $x->widget([ | ||||
| 				'resource_id' => $resource_id, | ||||
| 				'channel_id' => $owner['channel_id'], | ||||
| 				'channel_address' => $owner['channel_address'], | ||||
| 				'refresh' => true | ||||
| 			]); | ||||
| 			json_return_and_die(array('pages' => $page_list_html, 'message' => '', 'success' => true));					 | ||||
| 		} | ||||
| 		 | ||||
|   | ||||
| @@ -7,58 +7,57 @@ class Wiki_pages { | ||||
|  | ||||
| 	function widget($arr) { | ||||
|  | ||||
| 		$channelname = ((array_key_exists('channel',$arr)) ? $arr['channel'] : ''); | ||||
| 		$c = channelx_by_nick($channelname); | ||||
| 		if(argc() < 3) | ||||
| 			return; | ||||
|  | ||||
| 		if(! $arr['resource_id']) { | ||||
|  | ||||
| 		if(! $c) | ||||
| 			$c = \App::get_channel(); | ||||
|  | ||||
| 		if(! $c) | ||||
| 			return ''; | ||||
| 			if(! $c) | ||||
| 				$c = channelx_by_nick(argv(1)); | ||||
|  | ||||
| 			$w = \Zotlabs\Lib\NativeWiki::exists_by_name($c['channel_id'],argv(2)); | ||||
|  | ||||
| 			$arr = array( | ||||
| 				'resource_id' => $w['resource_id'], | ||||
| 				'channel_id' => $c['channel_id'], | ||||
| 				'channel_address' => $c['channel_address'], | ||||
| 				'refresh' => false | ||||
| 			); | ||||
| 		} | ||||
|  | ||||
| 		$wikiname = ''; | ||||
| 		if(array_key_exists('refresh', $arr)) { | ||||
| 			$not_refresh = (($arr['refresh']=== true) ? false : true); | ||||
| 		} | ||||
| 		else { | ||||
| 			$not_refresh = true; | ||||
| 		} | ||||
|  | ||||
| 		$pages = array(); | ||||
| 		if(! array_key_exists('resource_id', $arr)) { | ||||
| 			$hide = true; | ||||
| 		} | ||||
| 		else { | ||||
| 			$p = \Zotlabs\Lib\NativeWikiPage::page_list($c['channel_id'],get_observer_hash(),$arr['resource_id']); | ||||
|  | ||||
| 			if($p['pages']) { | ||||
| 				$pages = $p['pages']; | ||||
| 				$w = $p['wiki']; | ||||
| 				// Wiki item record is $w['wiki'] | ||||
| 				$wikiname = $w['urlName']; | ||||
| 				if (!$wikiname) { | ||||
| 					$wikiname = ''; | ||||
| 				} | ||||
| 		$p = \Zotlabs\Lib\NativeWikiPage::page_list($arr['channel_id'],get_observer_hash(),$arr['resource_id']); | ||||
|  | ||||
| 		if($p['pages']) { | ||||
| 			$pages = $p['pages']; | ||||
| 			$w = $p['wiki']; | ||||
| 			// Wiki item record is $w['wiki'] | ||||
| 			$wikiname = $w['urlName']; | ||||
| 			if (!$wikiname) { | ||||
| 				$wikiname = ''; | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
|  | ||||
| 		$can_create = perm_is_allowed(\App::$profile['uid'],get_observer_hash(),'write_wiki'); | ||||
|  | ||||
| 		$can_delete = ((local_channel() && (local_channel() == \App::$profile['uid'])) ? true : false); | ||||
|  | ||||
| 		return replace_macros(get_markup_template('wiki_page_list.tpl'), array( | ||||
| 				'$hide' => $hide, | ||||
| 				'$resource_id' => $arr['resource_id'], | ||||
| 				'$not_refresh' => $not_refresh, | ||||
| 				'$header' => t('Wiki Pages'), | ||||
| 				'$channel' => $channelname, | ||||
| 				'$channel_address' => $arr['channel_address'], | ||||
| 				'$wikiname' => $wikiname, | ||||
| 				'$pages' => $pages, | ||||
| 				'$canadd' => $can_create, | ||||
| 				'$candel' => $can_delete, | ||||
| 				'$addnew' => t('Add new page'), | ||||
| 				'$pageName' => array('pageName', t('Page name')), | ||||
| 				'$refresh' => $arr['refresh'] | ||||
| 		)); | ||||
| 	} | ||||
| } | ||||
|   | ||||
| @@ -115,7 +115,7 @@ | ||||
| 	}); | ||||
|  | ||||
| 	$( "#rename-page-form" ).submit(function( event ) { | ||||
| 		$.post("wiki/{{$channel}}/rename/page",  | ||||
| 		$.post("wiki/{{$channel_address}}/rename/page", | ||||
| 		{ | ||||
| 			oldName: window.wiki_page_name,  | ||||
| 			newName: $('#id_pageRename').val(),  | ||||
| @@ -177,7 +177,7 @@ | ||||
| 	}); | ||||
|  | ||||
| 	$('#wiki-get-preview').click(function (ev) { | ||||
| 		$.post("wiki/{{$channel}}/preview", { | ||||
| 		$.post("wiki/{{$channel_address}}/preview", { | ||||
| 			{{if !$mimeType || $mimeType == 'text/markdown'}} | ||||
| 			content: editor.getValue(), | ||||
| 			{{else}} | ||||
| @@ -200,7 +200,7 @@ | ||||
| 	}); | ||||
|  | ||||
| 	$('#wiki-get-history').click(function (ev) { | ||||
| 		$.post("wiki/{{$channel}}/history/page", {name: window.wiki_page_name, resource_id: window.wiki_resource_id}, function (data) { | ||||
| 		$.post("wiki/{{$channel_address}}/history/page", {name: window.wiki_page_name, resource_id: window.wiki_resource_id}, function (data) { | ||||
| 			if (data.success) { | ||||
| 				$('#page-history-list').html(data.historyHTML); | ||||
| 				$('#page-tools').hide(); | ||||
| @@ -215,10 +215,9 @@ | ||||
| 		if (window.wiki_resource_id === '') { | ||||
| 			return false; | ||||
| 		} | ||||
| 		$.post("wiki/{{$channel}}/get/page/list/", {resource_id: window.wiki_resource_id}, function (data) { | ||||
| 		$.post("wiki/{{$channel_address}}/get/page/list/", {channel_id: '{{$channel_id}}', resource_id: window.wiki_resource_id}, function (data) { | ||||
| 			if (data.success) { | ||||
| 				$('#wiki_page_list_container').html(data.pages); | ||||
| 				$('#wiki_page_list_container').show(); | ||||
| 				$('#wiki_page_list').html(data.pages); | ||||
| 			} else { | ||||
| 				alert('Error fetching page list!'); | ||||
| 				window.console.log('Error fetching page list!'); | ||||
| @@ -245,7 +244,7 @@ | ||||
| 			ev.preventDefault(); | ||||
| 			return false; | ||||
| 		} | ||||
| 		$.post("wiki/{{$channel}}/save/page", { | ||||
| 		$.post("wiki/{{$channel_address}}/save/page", { | ||||
| 			content: currentContent,  | ||||
| 			commitMsg: $('#id_commitMsg').val(), | ||||
| 			name: window.wiki_page_name,  | ||||
| @@ -276,7 +275,7 @@ | ||||
| 			window.console.log('You must have a wiki page open in order to revert pages.'); | ||||
| 			return false; | ||||
| 		} | ||||
| 		$.post("wiki/{{$channel}}/revert/page", {commitHash: commitHash, name: window.wiki_page_name, resource_id: window.wiki_resource_id},  | ||||
| 		$.post("wiki/{{$channel_address}}/revert/page", {commitHash: commitHash, name: window.wiki_page_name, resource_id: window.wiki_resource_id}, | ||||
| 		function (data) { | ||||
| 			if (data.success) { | ||||
| 			$('button[id^=revert-]').removeClass('btn-success'); | ||||
| @@ -299,7 +298,7 @@ | ||||
| 			window.console.log('You must have a wiki page open in order to revert pages.'); | ||||
| 			return false; | ||||
| 		} | ||||
| 		$.post("wiki/{{$channel}}/compare/page", { | ||||
| 		$.post("wiki/{{$channel_address}}/compare/page", { | ||||
| 			compareCommit: compareCommit,  | ||||
| 			currentCommit: window.wiki_page_commit,  | ||||
| 			name: window.wiki_page_name,  | ||||
| @@ -442,8 +441,6 @@ | ||||
| 	}; | ||||
|  | ||||
| 	$(document).ready(function () { | ||||
| 		wiki_refresh_page_list(); | ||||
|  | ||||
| 		{{if !$mimeType || $mimeType == 'text/markdown'}} | ||||
| 		$("#wiki-toc").toc({content: "#wiki-preview", headings: "h1,h2,h3,h4"}); | ||||
| 		window.editor.on("input", function() { | ||||
|   | ||||
| @@ -1,5 +1,6 @@ | ||||
| {{if $not_refresh}}<div id="wiki_page_list_container" {{if $hide}} style="display: none;" {{/if}}>{{/if}} | ||||
| {{if ! $refresh}} | ||||
| <div id="wiki_page_list" class="widget" > | ||||
| {{/if}} | ||||
| 	<h3>{{$header}}</h3> | ||||
| 	<ul class="nav nav-pills flex-column"> | ||||
| 		{{if $pages}} | ||||
| @@ -8,7 +9,7 @@ | ||||
| 			{{if $page.resource_id && $candel}} | ||||
| 			<i class="nav-link widget-nav-pills-icons fa fa-trash-o drop-icons" onclick="wiki_delete_page('{{$page.title}}', '{{$page.url}}', '{{$page.resource_id}}', '{{$page.link_id}}')"></i> | ||||
| 			{{/if}} | ||||
| 			<a class="nav-link" href="/wiki/{{$channel}}/{{$wikiname}}/{{$page.url}}">{{$page.title}}</a> | ||||
| 			<a class="nav-link" href="/wiki/{{$channel_address}}/{{$wikiname}}/{{$page.url}}">{{$page.title}}</a> | ||||
| 		</li> | ||||
| 		{{/foreach}} | ||||
| 		{{/if}} | ||||
| @@ -18,19 +19,21 @@ | ||||
| 	</ul> | ||||
| 	{{if $canadd}} | ||||
| 	<div id="new-page-form-wrapper" class="sub-menu" style="display:none;"> | ||||
| 		<form id="new-page-form" action="wiki/{{$channel}}/create/page" method="post" > | ||||
| 		<form id="new-page-form" action="wiki/{{$channel_address}}/create/page" method="post" > | ||||
| 			<input type="hidden" name="resource_id" value="{{$resource_id}}"> | ||||
| 			{{include file="field_input.tpl" field=$pageName}} | ||||
| 			<button id="new-page-submit" class="btn btn-primary" type="submit" name="submit" >Submit</button> | ||||
| 		</form> | ||||
| 	</div> | ||||
| 	{{/if}} | ||||
| {{if ! $refresh}} | ||||
| </div> | ||||
| {{if $not_refresh}}</div>{{/if}} | ||||
| {{/if}} | ||||
|  | ||||
| {{if $canadd}} | ||||
| <script> | ||||
| 	$('#new-page-submit').click(function (ev) { | ||||
| 		$.post("wiki/{{$channel}}/create/page", {pageName: $('#id_pageName').val(), resource_id: window.wiki_resource_id},  | ||||
| 		$.post("wiki/{{$channel_address}}/create/page", {pageName: $('#id_pageName').val(), resource_id: window.wiki_resource_id}, | ||||
| 		function(data) { | ||||
| 			if(data.success) { | ||||
| 				window.location = data.url; | ||||
| @@ -45,7 +48,7 @@ | ||||
| 		if(!confirm('Are you sure you want to delete the page: ' + wiki_page_name)) { | ||||
| 			return; | ||||
| 		} | ||||
| 		$.post("wiki/{{$channel}}/delete/page", {name: wiki_page_url, resource_id: wiki_resource_id}, | ||||
| 		$.post("wiki/{{$channel_address}}/delete/page", {name: wiki_page_url, resource_id: wiki_resource_id}, | ||||
| 		function (data) { | ||||
| 			if (data.success) { | ||||
| 				window.console.log('Page deleted successfully.'); | ||||
| @@ -74,3 +77,4 @@ | ||||
| 		return false; | ||||
| 	} | ||||
| </script> | ||||
| {{/if}} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user