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