wiki: move delete page functionality to the widget
This commit is contained in:
parent
68fd1c28b0
commit
1ce4eda0b9
@ -31,16 +31,29 @@ function wiki_page_list($resource_id) {
|
||||
if (!$w['path']) {
|
||||
return array('pages' => null, 'wiki' => null);
|
||||
}
|
||||
$pages = array();
|
||||
$pages[] = array('title' => 'Home', 'url' => 'Home');
|
||||
|
||||
$pages[] = [
|
||||
'resource_id' => '',
|
||||
'title' => 'Home',
|
||||
'url' => 'Home',
|
||||
'link_id' => 'id_wiki_home_0'
|
||||
];
|
||||
|
||||
if (is_dir($w['path']) === true) {
|
||||
$files = array_diff(scandir($w['path']), array('.', '..', '.git'));
|
||||
// TODO: Check that the files are all text files
|
||||
|
||||
$i = 1;
|
||||
foreach($files as $file) {
|
||||
// strip the .md file extension and unwrap URL encoding to leave HTML encoded name
|
||||
if( urldecode(substr($file, 0, -3)) !== 'Home') {
|
||||
$pages[] = array('title' => urldecode(substr($file, 0, -3)), 'url' => urlencode(substr($file, 0, -3)));
|
||||
$title = substr($file, 0, -3);
|
||||
if(urldecode($title) !== 'Home') {
|
||||
$pages[] = [
|
||||
'resource_id' => $resource_id,
|
||||
'title' => urldecode($title),
|
||||
'url' => $title,
|
||||
'link_id' => 'id_' . substr($resource_id, 0, 10) . '_' . $i
|
||||
];
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,41 @@
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.widget-nav-pills-icons {
|
||||
opacity: 0;
|
||||
padding: 6px 10px;
|
||||
float: right;
|
||||
position: relative;
|
||||
z-index:1;
|
||||
}
|
||||
|
||||
|
||||
.widget-nav-pills-checkbox {
|
||||
padding: 6px 10px;
|
||||
float: right;
|
||||
position: relative;
|
||||
z-index:1;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
i.widget-nav-pills-icons,
|
||||
i.widget-nav-pills-checkbox {
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.widget-nav-pills-icons:hover + a {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.widget-nav-pills-checkbox:hover + a {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
li:hover .widget-nav-pills-icons {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
|
||||
/* suggest */
|
||||
|
||||
.suggest-widget-more {
|
||||
|
@ -2040,3 +2040,14 @@ dl.bb-dl > dd > li {
|
||||
padding-left: 15px;
|
||||
border-left: 3px solid #eee;
|
||||
}
|
||||
|
||||
.nav-pills-stacked-icons {
|
||||
padding: 6px 10px;
|
||||
float: right;
|
||||
position: relative;
|
||||
z-index:1;
|
||||
}
|
||||
|
||||
.nav-pills-stacked-icons:hover + a {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
@ -5,12 +5,10 @@
|
||||
{{foreach $groups as $group}}
|
||||
<li>
|
||||
{{if $group.cid}}
|
||||
<a class="pull-right group-edit-tool fakelink" onclick="contactgroupChangeMember('{{$group.id}}','{{$group.enc_cid}}'); return true;"/>
|
||||
<i id="group-{{$group.id}}" class="fa {{if $group.ismember}}fa-check-square-o{{else}}fa-square-o{{/if}}"></i>
|
||||
</a>
|
||||
<i id="group-{{$group.id}}" class="widget-nav-pills-checkbox fa {{if $group.ismember}}fa-check-square-o{{else}}fa-square-o{{/if}}" onclick="contactgroupChangeMember('{{$group.id}}','{{$group.enc_cid}}'); return true;"></i>
|
||||
{{/if}}
|
||||
{{if $group.edit}}
|
||||
<a class="pull-right group-edit-tool" href="{{$group.edit.href}}" title="{{$edittext}}"><i class="group-edit-icon fa fa-pencil"></i></a>
|
||||
<a href="{{$group.edit.href}}" class="widget-nav-pills-icons" title="{{$edittext}}"><i class="fa fa-pencil"></i></a>
|
||||
{{/if}}
|
||||
<a{{if $group.selected}} class="group-selected"{{/if}} href="{{$group.href}}">{{$group.text}}</a>
|
||||
</li>
|
||||
|
@ -10,9 +10,6 @@
|
||||
<li class="nav-item">
|
||||
<a id="rename-page" class="nav-link" href="#"><i class="fa fa-edit"></i> Rename Page</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a id="delete-page" class="nav-link" href="#"><i class="fa fa-trash-o"></i> Delete Page</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a id="embed-image" class="nav-link" href="#"><i class="fa fa-picture-o"></i> Embed Image</a>
|
||||
</li>
|
||||
@ -239,33 +236,6 @@
|
||||
ev.preventDefault();
|
||||
});
|
||||
|
||||
$('#delete-page').click(function (ev) {
|
||||
if (window.wiki_resource_id === '' || window.wiki_page_name === '' || window.wiki_page_name === 'Home') {
|
||||
window.console.log('You must have a wiki page open in order to delete pages.');
|
||||
ev.preventDefault();
|
||||
return false;
|
||||
}
|
||||
if(!confirm('Are you sure you want to delete the page: ' + window.wiki_page_name)) {
|
||||
ev.preventDefault();
|
||||
return;
|
||||
}
|
||||
$.post("wiki/{{$channel}}/delete/page", {name: window.wiki_page_name, resource_id: window.wiki_resource_id},
|
||||
function (data) {
|
||||
if (data.success) {
|
||||
window.console.log('Page deleted successfully.');
|
||||
var url = window.location.href;
|
||||
if (url.substr(-1) == '/') url = url.substr(0, url.length - 2);
|
||||
url = url.split('/');
|
||||
url.pop();
|
||||
window.location = url.join('/');
|
||||
} else {
|
||||
alert('Error deleting page.'); // TODO: Replace alerts with auto-timeout popups
|
||||
window.console.log('Error deleting page.');
|
||||
}
|
||||
}, 'json');
|
||||
ev.preventDefault();
|
||||
});
|
||||
|
||||
function wiki_revert_page(commitHash) {
|
||||
if (window.wiki_resource_id === '' || window.wiki_page_name === '') {
|
||||
window.console.log('You must have a wiki page open in order to revert pages.');
|
||||
|
@ -4,7 +4,12 @@
|
||||
<ul class="nav nav-pills nav-stacked">
|
||||
{{if $pages}}
|
||||
{{foreach $pages as $page}}
|
||||
<li><a href="/wiki/{{$channel}}/{{$wikiname}}/{{$page.url}}">{{$page.title}}</a></li>
|
||||
<li id="{{$page.link_id}}">
|
||||
{{if $page.resource_id && $canadd}}
|
||||
<i class="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 href="/wiki/{{$channel}}/{{$wikiname}}/{{$page.url}}">{{$page.title}}</a>
|
||||
</li>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
{{if $canadd}}
|
||||
@ -39,4 +44,31 @@
|
||||
}, 'json');
|
||||
ev.preventDefault();
|
||||
});
|
||||
|
||||
function wiki_delete_page(wiki_page_name, wiki_page_url, wiki_resource_id, wiki_link_id) {
|
||||
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},
|
||||
function (data) {
|
||||
if (data.success) {
|
||||
window.console.log('Page deleted successfully.');
|
||||
if(wiki_page_url == window.wiki_page_name) {
|
||||
var url = window.location.href;
|
||||
if(url.substr(-1) == '/')
|
||||
url = url.substr(0, url.length - 2);
|
||||
url = url.split('/');
|
||||
url.pop();
|
||||
window.location = url.join('/');
|
||||
}
|
||||
else {
|
||||
$('#' + wiki_link_id).remove();
|
||||
}
|
||||
} else {
|
||||
alert('Error deleting page.'); // TODO: Replace alerts with auto-timeout popups
|
||||
window.console.log('Error deleting page.');
|
||||
}
|
||||
}, 'json');
|
||||
return false;
|
||||
}
|
||||
</script>
|
||||
|
Reference in New Issue
Block a user