Get delete page feature working
This commit is contained in:
parent
4ef08cc988
commit
4e4cdf6348
|
@ -24,3 +24,12 @@ def wiki_rename_page(old_name, *args, **kwargs):
|
|||
return
|
||||
|
||||
return search.delete_wiki(old_name)
|
||||
|
||||
|
||||
@Wiki.after('delete_page')
|
||||
def wiki_delete_page(name, *args, **kwargs):
|
||||
|
||||
if not hasattr(search, 'index_wiki'):
|
||||
return
|
||||
|
||||
return search.delete_wiki(name)
|
||||
|
|
|
@ -156,11 +156,14 @@ class Wiki(HookMixin):
|
|||
message = "Deleted %s" % name
|
||||
|
||||
filename = cname_to_filename(name)
|
||||
|
||||
# gittle.rm won't actually remove the file, have to do it ourselves
|
||||
os.remove(os.path.join(self.path, filename))
|
||||
self.gittle.rm(filename)
|
||||
commit = self.gittle.commit(name=username,
|
||||
email=email,
|
||||
message=message,
|
||||
files=[str(filename)])
|
||||
files=[filename])
|
||||
cache.delete_many(name)
|
||||
return commit
|
||||
|
||||
|
|
|
@ -52,6 +52,11 @@ class WikiTest(WikiBaseTest):
|
|||
self.assert_403(self.client.delete(url_for('wiki.page_write', name='test')))
|
||||
self.app.config['WIKI_LOCKED_PAGES'] = []
|
||||
|
||||
# Create page, check it exists
|
||||
self.create_page('test', message='test message', content='testing')
|
||||
self.assert_200(self.client.get(url_for('wiki.page', name='test')))
|
||||
|
||||
# Delete page
|
||||
self.assert_200(self.client.delete(url_for('wiki.page_write', name='test')))
|
||||
|
||||
rv = self.client.get(url_for('wiki.page', name='test'))
|
||||
|
|
|
@ -151,12 +151,12 @@ def page_write(name):
|
|||
|
||||
return dict(sha=sha)
|
||||
|
||||
else:
|
||||
elif request.method == 'DELETE':
|
||||
# DELETE
|
||||
if cname in current_app.config.get('WIKI_LOCKED_PAGES'):
|
||||
return dict(error=True, message="Page is locked"), 403
|
||||
|
||||
sha = g.current_wiki.delete_page(name,
|
||||
sha = g.current_wiki.delete_page(cname,
|
||||
username=current_user.username,
|
||||
email=current_user.email)
|
||||
|
||||
|
|
|
@ -58,9 +58,30 @@ $(function(){
|
|||
});
|
||||
|
||||
$("#delete-page-btn").click(function() {
|
||||
bootbox.alert("Not Done Yet! Sorry");
|
||||
bootbox.confirm('Are you sure you want to delete this page?', function(result) {
|
||||
if (result) {
|
||||
deletePage();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
var deletePage = function() {
|
||||
var pageName = $page_name.val();
|
||||
var path = Config['RELATIVE_PATH'] + '/' + pageName;
|
||||
|
||||
$.ajax({
|
||||
type: 'DELETE',
|
||||
url: path,
|
||||
}).done(function(data) {
|
||||
var msg = 'Deleted page: ' + pageName;
|
||||
bootbox.alert(msg, function() {
|
||||
location.href = '/';
|
||||
});
|
||||
}).fail(function(data, status, error) {
|
||||
bootbox.alert('Error deleting page!');
|
||||
});
|
||||
};
|
||||
|
||||
var aced = new Aced({
|
||||
editor: $('#entry-markdown-content').find('.editor').attr('id'),
|
||||
|
|
Loading…
Reference in a new issue