Revision 54fd5c36 Classes/FolderDetailViewController.m

b/Classes/FolderDetailViewController.m
39 39
#import "EditMetadataViewController.h"
40 40
#import "EditPermissionsViewController.h"
41 41
#import "StorageObject.h"
42
#import "APICallback.h"
43
#import "AccountManager.h"
44
#import "UIViewController+Conveniences.h"
42 45

  
43 46
#define kOverview 0
44 47
#define kMetadata 1
......
123 126
- (void)viewDidAppear:(BOOL)animated
124 127
{
125 128
    [super viewDidAppear:animated];
129
    if (folder.metadata == nil) {
130
        [self reloadMetadataSection];
131
    }
126 132
}
127 133

  
128 134
- (void)viewWillDisappear:(BOOL)animated
......
159 165
    }
160 166
    else if (section == kMetadata)
161 167
        if (folderIsReadOnly)
162
            return [object.metadata count];
168
            return [folder.metadata count];
163 169
        else
164
            return 1 + [object.metadata count];     
170
            return 1 + [folder.metadata count];     
165 171
        return 0;
166 172
}
167 173

  
......
362 368
    } 
363 369
}
364 370

  
371
#pragma mark - 
372
#pragma mark Helper functions
373

  
374
- (void)reloadMetadataSection {
375
    NSString *activityMessage = @"Loading metadata...";
376
    ActivityIndicatorView *activityIndicatorView = [[ActivityIndicatorView alloc] initWithFrame:[ActivityIndicatorView frameForText:activityMessage] text:activityMessage];
377
    [activityIndicatorView addToView:self.view];         
378
    [[self.account.manager getObjectInfo:container object:object version:nil] 
379
     success:^(OpenStackRequest *request) {
380
         [activityIndicatorView removeFromSuperviewAndRelease];
381
         folder.metadata = [NSMutableDictionary dictionary];
382
         for (NSString *header in request.responseHeaders) {
383
             NSString *metadataKey;
384
             NSString *metadataValue;
385
             if ([header rangeOfString:@"X-Object-Meta-"].location != NSNotFound) {
386
                 metadataKey = [header substringFromIndex:14];
387
                 metadataValue = [request.responseHeaders objectForKey:header];
388
                 [folder.metadata setObject:metadataValue forKey:metadataKey];
389
             }
390
         }   
391
         object.metadata = folder.metadata;
392
         NSIndexSet *metadataSections = [NSIndexSet indexSetWithIndex:kMetadata];
393
         [self.tableView reloadSections:metadataSections withRowAnimation:UITableViewRowAnimationFade];
394
     }
395
     failure:^(OpenStackRequest *request) {
396
         [activityIndicatorView removeFromSuperviewAndRelease];
397
         [self alert:@"There was a problem retrieving the object's metadata." request:request]; 
398
     }];
399
}
400

  
365 401
@end

Also available in: Unified diff