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
(cherry picked from commit c30a1ea66e)
This commit is contained in:
Luis Daniel Castellanos 2016-09-23 16:25:59 -05:00 committed by Rob Cresswell
parent eabb1b42b0
commit a3e89ebb91
4 changed files with 7 additions and 4 deletions

View File

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

View File

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

View File

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

View File

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