creating new directory
[qcg-portal.git] / filex / views.py
index b37a6ce..b72432b 100644 (file)
@@ -5,6 +5,7 @@ from django.http import JsonResponse, StreamingHttpResponse
 from django.template.defaultfilters import filesizeformat
 from django.utils.formats import date_format
 from django.views.decorators.http import require_POST
+from filex.forms import NewDirForm
 
 from filex.ftp import FTPOperation, FTPException
 from filex.uploadhandler import with_ftp_upload_handler
@@ -131,3 +132,31 @@ def delete(request):
             done.append(name)
 
     return JsonResponse({'done': done, 'fail': fail})
+
+
+@require_POST
+def mkdir(request):
+    check_auth(request)
+
+    # TODO actual data validation
+    form = NewDirForm(request.POST)
+
+    if form.is_valid():
+        host = form.cleaned_data['host']
+        path = form.cleaned_data['path']
+        name = form.cleaned_data['name']
+
+        url = 'gsiftp://' + host + path + '/' + name
+
+        print url
+
+        try:
+            FTPOperation(request.session['proxy']).mkdir(url)
+        except FTPException as e:
+            msg = e.message
+        else:
+            return JsonResponse({'success': True})
+    else:
+        msg = form.errors
+
+    return JsonResponse({'msg': msg}, status=400)