import mimetypes
+from django.contrib.auth.decorators import login_required
from django.core.exceptions import PermissionDenied, SuspiciousOperation
from django.http import JsonResponse, StreamingHttpResponse
+from django.shortcuts import get_object_or_404
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, RenameForm
+from filex.forms import NewDirForm, RenameForm, FavoriteForm
from filex.ftp import FTPOperation, FTPException
+from filex.models import Favorite
from filex.uploadhandler import with_ftp_upload_handler
return JsonResponse({'msg': e.message}, status=400)
else:
return JsonResponse({'success': True})
+
+
+@require_POST
+@login_required
+def fav_add(request):
+ data = request.POST.copy()
+ data['owner'] = request.user.id
+
+ form = FavoriteForm(data)
+
+ # TODO check if path exists
+ if form.is_valid():
+ instance = form.save()
+
+ return JsonResponse({'group': 'usr', 'host': instance.host, 'path': instance.path,
+ 'value': instance.host + instance.path})
+
+ return JsonResponse({'msg': form.errors}, status=400)
+
+
+@require_POST
+@login_required
+def fav_delete(request):
+ fav = get_object_or_404(Favorite, owner=request.user, host=request.POST['host'], path=request.POST['path'])
+ fav.delete()
+
+ return JsonResponse({'success': True})