Revision 7db1712d Classes/UploadGenericFileViewController.m

b/Classes/UploadGenericFileViewController.m
19 19
#import "OCMimeType.h"
20 20
#import "RSTextFieldCell.h"
21 21
#import "NSObject+Conveniences.h"
22
#import "APICallback.h"
22 23

  
23 24
#define kName 0
24 25
#define kContentType 1
......
218 219
    BOOL objectNameHasTrailingSlash = [objectName hasSuffix:@"/"];
219 220
    NSUInteger indexOfFirstSlash = [objectName rangeOfString:@"/"].location;
220 221
    
221
    if (!objectNameHasTrailingSlash && indexOfFirstSlash != NSNotFound || 
222
        objectNameHasTrailingSlash && indexOfFirstSlash < objectName.length - 1) {
222
    if ((!objectNameHasTrailingSlash && indexOfFirstSlash != NSNotFound) || 
223
        (objectNameHasTrailingSlash && indexOfFirstSlash < objectName.length - 1)) {
223 224
        [self alert:@"Invalid folder name" message:@"'/' characters are only allowed at the end of folder names"];
224 225
        return;
225 226
    }
......
252 253
    object.data = data;
253 254
    object.bytes = [data length];
254 255
    
255
    [self.account.manager writeObject:self.container object:object downloadProgressDelegate:activityIndicatorView.progressView];
256
    
257
    successObserver = [[NSNotificationCenter defaultCenter] addObserverForName:@"writeObjectSucceeded" object:object queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification* notification) 
258
                       {
259
                           [activityIndicatorView removeFromSuperviewAndRelease];
260
                           object.data = nil;
261
                           object.sharing = folder.sharing;
262
                           [folder.objects setObject:object forKey:object.name];
263
                           [folderViewController.tableView reloadData];
264
                           allowOverwrite = NO;
265
                           [self dismissModalViewControllerAnimated:YES];
266
                           [[NSNotificationCenter defaultCenter] removeObserver:successObserver];
267
                       }];
268
    
269
    failureObserver = [[NSNotificationCenter defaultCenter] addObserverForName:@"writeObjectFailed" object:object queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification* notification) 
270
                       {
271
                           allowOverwrite = NO;
272
                           [activityIndicatorView removeFromSuperviewAndRelease];
273
                           [self alert:@"There was a problem uploading the file." request:[notification.userInfo objectForKey:@"request"]];
274
                           [[NSNotificationCenter defaultCenter] removeObserver:failureObserver];
275
                       }];
256
    [[self.account.manager writeObject:self.container object:object downloadProgressDelegate:activityIndicatorView.progressView]
257
     success:^(OpenStackRequest *request) {
258
         [activityIndicatorView removeFromSuperviewAndRelease];
259
         object.data = nil;
260
         object.sharing = folder.sharing;
261
         BOOL currentFolderIsRoot;
262
         if ([folderViewController.folder isEqual:container.rootFolder]) {
263
             currentFolderIsRoot = YES;
264
         }
265
         [folder.objects setObject:object forKey:object.name];
266
         [folderViewController.tableView reloadData];
267
         if (currentFolderIsRoot) {
268
             container.count += 1;
269
             container.rootFolder = folder;
270
             [self.account.containers setObject:container forKey:container.name];
271
         }
272
         if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
273
             [folderViewController setDetailViewController];
274
         allowOverwrite = NO;
275
         [self dismissModalViewControllerAnimated:YES];
276
     }
277
     failure:^(OpenStackRequest *request) {
278
         allowOverwrite = NO;
279
         [activityIndicatorView removeFromSuperviewAndRelease];
280
         [self alert:@"There was a problem uploading the file." request:request];
281
     }];    
276 282
}
277 283

  
278 284
#pragma mark - Alertview delegate

Also available in: Unified diff