Revision 45f2fce6 Classes/FolderViewController.m
b/Classes/FolderViewController.m | ||
---|---|---|
23 | 23 |
#import "FolderDetailViewController.h" |
24 | 24 |
#import "AccountHomeViewController.h" |
25 | 25 |
#import "PithosImageViewController.h" |
26 |
#import "OpenStackRequest.h" |
|
27 |
#import "JSON.h" |
|
26 | 28 |
|
27 | 29 |
|
28 | 30 |
@implementation FolderViewController |
... | ... | |
65 | 67 |
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) |
66 | 68 |
[self setDetailViewController]; |
67 | 69 |
if (needsRefreshing) { |
68 |
[self refreshButtonPressed:nil]; |
|
70 |
[self refreshButtonPressed:nil];
|
|
69 | 71 |
} |
70 | 72 |
} |
71 | 73 |
} |
... | ... | |
82 | 84 |
if ([self.folder isEqual:self.container.rootFolder]) { |
83 | 85 |
ContainerDetailViewController *vc = [[ContainerDetailViewController alloc] initWithNibName:@"ContainerDetailViewController" bundle:nil]; |
84 | 86 |
vc.account = self.account; |
85 |
vc.container = container; |
|
87 |
vc.container = self.container;
|
|
86 | 88 |
vc.containersViewController = self.containersViewController; |
87 | 89 |
vc.rootFolderViewController = self; |
88 | 90 |
vc.selectedContainerIndexPath = self.selectedContainerIndexPath; |
89 | 91 |
[self presentPrimaryViewController:vc]; |
90 | 92 |
[vc release]; |
91 |
} else { |
|
93 |
} |
|
94 |
else { |
|
92 | 95 |
FolderDetailViewController *folderDetailViewController = [[FolderDetailViewController alloc] initWithNibName:@"FolderDetailViewController" bundle:nil]; |
93 | 96 |
folderDetailViewController.account = account; |
94 | 97 |
folderDetailViewController.container = container; |
95 | 98 |
folderDetailViewController.folder = self.folder; |
96 |
folderDetailViewController.folderViewController = self; |
|
99 |
folderDetailViewController.folderViewController = self.parentFolderViewController;
|
|
97 | 100 |
[self presentPrimaryViewController:folderDetailViewController]; |
98 | 101 |
[folderDetailViewController release]; |
99 | 102 |
} |
... | ... | |
130 | 133 |
} |
131 | 134 |
} |
132 | 135 |
|
136 |
|
|
137 |
|
|
133 | 138 |
#pragma mark - |
134 | 139 |
#pragma mark Table view data source |
135 | 140 |
|
... | ... | |
154 | 159 |
} |
155 | 160 |
} |
156 | 161 |
|
162 |
|
|
157 | 163 |
// Customize the appearance of table view cells. |
164 |
|
|
158 | 165 |
- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { |
159 | 166 |
if ([folder.objects count] + [folder.folders count] == 0) { |
160 | 167 |
NSString *noFoldersTitle = (self.account.shared || self.account.sharingAccount) ? |
161 | 168 |
@"No shared Files or Folders" : @"No Files or Folders"; |
162 |
NSString *noFoldersSubtitle = (self.account.shared || self.account.sharingAccount) ? |
|
169 |
NSString *noFoldersSubtitle = (self.account.shared || self.account.sharingAccount || [self.folder.name hasSuffix:@"/"]) ?
|
|
163 | 170 |
@"" : @"Tap the + button to create a new Folder"; |
164 | 171 |
NSString *deleteFolderButtonTitle = (self.account.shared || self.account.sharingAccount) ? |
165 | 172 |
nil : @"Delete Folder"; |
166 | 173 |
SEL deleteButtonSelector = (self.account.shared || self.account.sharingAccount) ? nil : @selector(deleteButtonPressed:); |
167 |
self.navigationItem.rightBarButtonItem.enabled = !self.account.shared;
|
|
168 |
|
|
174 |
self.navigationItem.rightBarButtonItem.enabled = (self.account.shared || [self.folder.name hasSuffix:@"/"]) ? NO : YES;
|
|
175 |
|
|
169 | 176 |
if ([self.container.rootFolder isEqual:self.folder]) { |
170 | 177 |
return [self tableView:aTableView |
171 | 178 |
emptyCellWithImage:[UIImage imageNamed:@"empty-files.png"] |
... | ... | |
319 | 326 |
[activityIndicatorView addToView:self.view]; |
320 | 327 |
|
321 | 328 |
[self.account.manager getObjects:self.container]; |
322 |
|
|
323 | 329 |
successObserver = [[NSNotificationCenter defaultCenter] addObserverForName:@"getObjectsSucceeded" object:self.container |
324 | 330 |
queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification* notification) |
325 | 331 |
{ |
326 | 332 |
contentsLoaded = YES; |
327 | 333 |
[self reloadFolderViewControllers]; |
328 | 334 |
needsRefreshing = NO; |
329 |
[[NSNotificationCenter defaultCenter] removeObserver:successObserver]; |
|
330 | 335 |
[activityIndicatorView removeFromSuperviewAndRelease]; |
336 |
[[NSNotificationCenter defaultCenter] removeObserver:successObserver]; |
|
331 | 337 |
}]; |
332 | 338 |
|
333 | 339 |
failureObserver = [[NSNotificationCenter defaultCenter] addObserverForName:@"getObjectsFailed" object:self.container |
334 | 340 |
queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification* notification) |
335 | 341 |
{ |
336 | 342 |
needsRefreshing = NO; |
337 |
[self.tableView reloadData]; |
|
338 |
[[NSNotificationCenter defaultCenter] removeObserver:failureObserver]; |
|
343 |
[self.tableView reloadData]; |
|
339 | 344 |
[activityIndicatorView removeFromSuperviewAndRelease]; |
345 |
[self alert:@"Error" message:@"Failed to retrieve files from server"]; |
|
346 |
[[NSNotificationCenter defaultCenter] removeObserver:failureObserver]; |
|
340 | 347 |
}]; |
341 | 348 |
|
342 | 349 |
|
Also available in: Unified diff