Fix for swift ui displaying infinite folders

When creating a folder in swift ui with the following
name format "f1;/f2" swift ui is not able to pick the
objects/floders for "f1;" and when this folder is
selected the ui ends in an infinite loop of "f1;"
folders

Change-Id: I8e2d8fdb5fb3b67dfd14bbdd1b100f13e84222eb
Closes-Bug: #1624546
This commit is contained in:
Luis Daniel Castellanos 2016-09-23 16:25:59 -05:00
parent db0a78d09b
commit c30a1ea66e
4 changed files with 7 additions and 4 deletions

View File

@ -17,6 +17,7 @@ import os
from django import forms from django import forms
from django.http import StreamingHttpResponse from django.http import StreamingHttpResponse
from django.utils.http import urlunquote
from django.views.decorators.csrf import csrf_exempt from django.views.decorators.csrf import csrf_exempt
from django.views import generic from django.views import generic
import six import six
@ -120,6 +121,8 @@ class Objects(generic.View):
:return: :return:
""" """
path = request.GET.get('path') path = request.GET.get('path')
if path is not None:
path = urlunquote(path)
objects = api.swift.swift_get_objects( objects = api.swift.swift_get_objects(
request, request,

View File

@ -121,7 +121,7 @@
delimiter: model.DELIMETER delimiter: model.DELIMETER
}; };
if (folder) { if (folder) {
spec.path = folder + model.DELIMETER; spec.path = encodeURIComponent(folder) + model.DELIMETER;
} }
return swiftAPI.getObjects(name, spec).then(function onObjects(response) { return swiftAPI.getObjects(name, spec).then(function onObjects(response) {
@ -279,7 +279,7 @@
state.counted.folders++; state.counted.folders++;
var spec = { var spec = {
delimiter: model.DELIMETER, delimiter: model.DELIMETER,
path: item.path + model.DELIMETER path: encodeURIComponent(item.path).replace(/%2F/g, '/')
}; };
return swiftAPI.getObjects(model.container.name, spec) return swiftAPI.getObjects(model.container.name, spec)
.then(function objects(response) { .then(function objects(response) {

View File

@ -244,7 +244,7 @@
beforeEach(function before() { beforeEach(function before() {
spyOn(swiftAPI, 'getObjects').and.callFake(function fake(container, spec) { spyOn(swiftAPI, 'getObjects').and.callFake(function fake(container, spec) {
var deferred = $q.defer(); var deferred = $q.defer();
var items = fakeSwift[spec.path]; var items = fakeSwift[spec.path + '/'];
expect(items).toBeDefined(); // sanity check expect(items).toBeDefined(); // sanity check
deferred.resolve({data: {items: items}}); deferred.resolve({data: {items: items}});
return deferred.promise; return deferred.promise;

View File

@ -8,7 +8,7 @@
</div> </div>
</div> </div>
<div ng-form="uploadForm" <div ng-form="uploadForm">
<div class="modal-body"> <div class="modal-body">
<div class="row"> <div class="row">
<div class="col-sm-6"> <div class="col-sm-6">