Commit bf2e25a1 authored by Serge S. Koval's avatar Serge S. Koval

Updated docs.

Delete icon for directories won't be displayed if directory deletion is disabled.
parent adf7a6c8
...@@ -10,3 +10,4 @@ API ...@@ -10,3 +10,4 @@ API
mod_tools mod_tools
mod_ext_sqlamodel mod_ext_sqlamodel
mod_ext_fileadmin
``flask.ext.adminex.ext.fileadmin``
===================================
.. automodule:: flask.ext.adminex.ext.fileadmin
.. autoclass:: FileAdmin
Permissions
-----------
.. autoattribute:: FileAdmin.can_upload
.. autoattribute:: FileAdmin.can_delete
.. autoattribute:: FileAdmin.can_delete_dirs
.. autoattribute:: FileAdmin.can_mkdir
.. autoattribute:: FileAdmin.can_rename
.. autoattribute:: FileAdmin.allowed_extensions
Templates
---------
.. autoattribute:: FileAdmin.list_template
.. autoattribute:: FileAdmin.upload_template
.. autoattribute:: FileAdmin.mkdir_template
.. autoattribute:: FileAdmin.rename_template
Constructor
-----------
.. automethod:: FileAdmin.__init__
Permissions
-----------
.. automethod:: FileAdmin.is_accessible_path
.. automethod:: FileAdmin.is_file_allowed
Helpers
-------
.. automethod:: FileAdmin.get_base_path
.. automethod:: FileAdmin.get_base_url
.. automethod:: FileAdmin.is_in_folder
Views
-----
.. automethod:: FileAdmin.index
.. automethod:: FileAdmin.upload
.. automethod:: FileAdmin.mkdir
.. automethod:: FileAdmin.delete
.. automethod:: FileAdmin.rename
Internal API
------------
.. automethod:: FileAdmin._get_dir_url
.. automethod:: FileAdmin._get_file_url
.. automethod:: FileAdmin._normalize_path
...@@ -106,6 +106,26 @@ class FileAdmin(BaseView): ...@@ -106,6 +106,26 @@ class FileAdmin(BaseView):
allowed_extensions = ('swf', 'jpg', 'gif', 'png') allowed_extensions = ('swf', 'jpg', 'gif', 'png')
""" """
list_template = 'admin/file/list.html'
"""
File list template
"""
upload_template = 'admin/file/form.html'
"""
File upload template
"""
mkdir_template = 'admin/file/form.html'
"""
Directory creation (mkdir) template
"""
rename_template = 'admin/file/rename.html'
"""
Rename template
"""
def __init__(self, base_path, base_url, def __init__(self, base_path, base_url,
name=None, category=None, endpoint=None, url=None): name=None, category=None, endpoint=None, url=None):
""" """
...@@ -276,9 +296,8 @@ class FileAdmin(BaseView): ...@@ -276,9 +296,8 @@ class FileAdmin(BaseView):
# Generate breadcrumbs # Generate breadcrumbs
accumulator = '' accumulator = ''
breadcrumbs = [(n, op.join(accumulator, n)) for n in path.split(os.sep)] breadcrumbs = [(n, op.join(accumulator, n)) for n in path.split(os.sep)]
print breadcrumbs, path, breadcrumbs[:-1], breadcrumbs[-1]
return self.render('admin/file/list.html', return self.render(self.list_template,
dir_path=path, dir_path=path,
breadcrumbs=breadcrumbs, breadcrumbs=breadcrumbs,
get_dir_url=self._get_dir_url, get_dir_url=self._get_dir_url,
...@@ -310,11 +329,13 @@ class FileAdmin(BaseView): ...@@ -310,11 +329,13 @@ class FileAdmin(BaseView):
flash('File "%s" already exists.' % form.upload.file.filename, flash('File "%s" already exists.' % form.upload.file.filename,
'error') 'error')
else: else:
form.upload.file.save(filename) try:
form.upload.file.save(filename)
return redirect(self._get_dir_url('.index', path)) return redirect(self._get_dir_url('.index', path))
except Exception, ex:
flash('Failed to save file: %s' % ex)
return self.render('admin/file/form.html', form=form) return self.render(self.upload_template, form=form)
@expose('/mkdir/', methods=('GET', 'POST')) @expose('/mkdir/', methods=('GET', 'POST'))
@expose('/mkdir/<path:path>', methods=('GET', 'POST')) @expose('/mkdir/<path:path>', methods=('GET', 'POST'))
...@@ -343,7 +364,7 @@ class FileAdmin(BaseView): ...@@ -343,7 +364,7 @@ class FileAdmin(BaseView):
except Exception, ex: except Exception, ex:
flash('Failed to create directory: %s' % ex, 'error') flash('Failed to create directory: %s' % ex, 'error')
return self.render('admin/file/form.html', return self.render(self.mkdir_template,
form=form, form=form,
dir_url=dir_url) dir_url=dir_url)
...@@ -368,6 +389,7 @@ class FileAdmin(BaseView): ...@@ -368,6 +389,7 @@ class FileAdmin(BaseView):
if op.isdir(full_path): if op.isdir(full_path):
if not self.can_delete_dirs: if not self.can_delete_dirs:
flash('Directory deletion is disabled.')
return redirect(return_url) return redirect(return_url)
try: try:
...@@ -421,7 +443,7 @@ class FileAdmin(BaseView): ...@@ -421,7 +443,7 @@ class FileAdmin(BaseView):
return redirect(return_url) return redirect(return_url)
return self.render('admin/file/rename.html', return self.render(self.rename_template,
form=form, form=form,
path=op.dirname(path), path=op.dirname(path),
name=op.basename(path), name=op.basename(path),
......
...@@ -35,8 +35,8 @@ ...@@ -35,8 +35,8 @@
</a> </a>
{% endif %} {% endif %}
{%- if admin_view.can_delete and path -%} {%- if admin_view.can_delete and path -%}
{% if is_dir and admin_view.can_delete_dirs %} {% if is_dir %}
{% if name != '..' %} {% if name != '..' and admin_view.can_delete_dirs %}
<form class="icon" method="POST" action="{{ url_for('.delete') }}"> <form class="icon" method="POST" action="{{ url_for('.delete') }}">
<input type="hidden" name="path" value="{{ path }}"></input> <input type="hidden" name="path" value="{{ path }}"></input>
<button onclick="return confirm('Are you sure you want to delete \'{{ name }}\' recursively?')"> <button onclick="return confirm('Are you sure you want to delete \'{{ name }}\' recursively?')">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment