diff --git a/apps/reader/views.py b/apps/reader/views.py index 689588f53..d993e8ea8 100644 --- a/apps/reader/views.py +++ b/apps/reader/views.py @@ -249,10 +249,11 @@ def load_feeds_flat(request): for folder_name in item: folder = item[folder_name] flat_folder_name = "%s%s%s" % ( - parent_folder, + parent_folder if parent_folder and parent_folder != ' ' else "", " - " if parent_folder and parent_folder != ' ' else "", folder_name ) + flat_folders[flat_folder_name] = [] make_feeds_folder(folder, flat_folder_name, depth+1) make_feeds_folder(folders) @@ -761,7 +762,7 @@ def add_url(request): def add_folder(request): folder = request.POST['folder'] parent_folder = request.POST.get('parent_folder', '') - + logging.user(request, "~FRAdding Folder: ~SB%s (in %s)" % (folder, parent_folder)) if folder: diff --git a/media/iphone/Classes/AddViewController.h b/media/iphone/Classes/AddViewController.h index 302570661..4ee9c298a 100644 --- a/media/iphone/Classes/AddViewController.h +++ b/media/iphone/Classes/AddViewController.h @@ -39,8 +39,9 @@ UILabel *passwordOptionalLabel; } -- (void)addSite; -- (void)addFolder; +- (void)reload; +- (IBAction)addSite; +- (IBAction)addFolder; - (IBAction)selectAddTypeSignup; - (IBAction)doCancelButton; - (IBAction)doAddButton; diff --git a/media/iphone/Classes/AddViewController.m b/media/iphone/Classes/AddViewController.m index 233b62aad..ff96eaf17 100644 --- a/media/iphone/Classes/AddViewController.m +++ b/media/iphone/Classes/AddViewController.m @@ -47,7 +47,6 @@ [inFolderInput setLeftViewMode:UITextFieldViewModeAlways]; [folderImage release]; - navBar.tintColor = [UIColor colorWithRed:0.16f green:0.36f blue:0.46 alpha:0.9]; [super viewDidLoad]; @@ -89,13 +88,30 @@ [super dealloc]; } +- (IBAction)doCancelButton { + [appDelegate.addViewController dismissModalViewControllerAnimated:YES]; +} + +- (IBAction)doAddButton { + if ([self.addTypeControl selectedSegmentIndex] == 0) { + return [self addSite]; + } else { + return [self addFolder]; + } +} + +- (void)reload { + [folderPicker reloadAllComponents]; +} + #pragma mark - #pragma mark Add Site - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { - if (textField == inFolderInput) { + if (textField == inFolderInput && ![inFolderInput isFirstResponder]) { [siteAddressInput resignFirstResponder]; [newFolderInput resignFirstResponder]; + [inFolderInput setInputView:folderPicker]; folderPicker.frame = CGRectMake(0, self.view.bounds.size.height, folderPicker.frame.size.width, folderPicker.frame.size.height); folderPicker.hidden = NO; [UIView animateWithDuration:.35 animations:^{ @@ -118,34 +134,31 @@ - (BOOL)textFieldShouldReturn:(UITextField *)textField { if (textField == inFolderInput) { + + } else if (textField == siteAddressInput) { + [self addSite]; + } else if (textField == newFolderInput) { + [self addFolder]; } -// if(textField == usernameInput) { -// [passwordInput becomeFirstResponder]; -// } else if (textField == passwordInput && [self.addTypeControl selectedSegmentIndex] == 0) { -// NSLog(@"Password return"); -// NSLog(@"appdelegate:: %@", [self appDelegate]); -// [self checkPassword]; -// } else if (textField == passwordInput && [self.addTypeControl selectedSegmentIndex] == 1) { -// [emailInput becomeFirstResponder]; -// } else if (textField == emailInput) { -// [self registerAccount]; -// } return YES; } -- (void)addSite { +- (IBAction)addSite { + [siteAddressInput resignFirstResponder]; [self.addingLabel setHidden:NO]; [self.addingLabel setText:@"Adding site..."]; [self.errorLabel setHidden:YES]; [self.activityIndicator startAnimating]; - NSString *urlString = [NSString stringWithFormat:@"http://%@/api/login", + NSString *urlString = [NSString stringWithFormat:@"http://%@/reader/add_url", NEWSBLUR_URL]; NSURL *url = [NSURL URLWithString:urlString]; - [[NSHTTPCookieStorage sharedHTTPCookieStorage] - setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways]; ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; - [request setPostValue:[inFolderInput text] forKey:@"in_folder"]; - [request setPostValue:[siteAddressInput text] forKey:@"address"]; + NSString *folder_title = [inFolderInput text]; + if (folder_title == @"- Top Level -") { + folder_title = @""; + } + [request setPostValue:folder_title forKey:@"folder"]; + [request setPostValue:[siteAddressInput text] forKey:@"url"]; [request setDelegate:self]; [request setDidFinishSelector:@selector(requestFinished:)]; [request setDidFailSelector:@selector(requestFailed:)]; @@ -162,14 +175,10 @@ // int statusCode = [request responseStatusCode]; int code = [[results valueForKey:@"code"] intValue]; if (code == -1) { - NSDictionary *errors = [results valueForKey:@"errors"]; - if ([errors valueForKey:@"username"]) { - [self.errorLabel setText:[[errors valueForKey:@"username"] objectAtIndex:0]]; - } else if ([errors valueForKey:@"__all__"]) { - [self.errorLabel setText:[[errors valueForKey:@"__all__"] objectAtIndex:0]]; - } + [self.errorLabel setText:[results valueForKey:@"message"]]; [self.errorLabel setHidden:NO]; } else { + [appDelegate.addViewController dismissModalViewControllerAnimated:YES]; [appDelegate reloadFeedsView]; } @@ -177,17 +186,28 @@ } -- (void)addFolder { +#pragma mark - +#pragma mark Add Folder + + +- (IBAction)addFolder { + [newFolderInput resignFirstResponder]; [self.addingLabel setHidden:NO]; [self.addingLabel setText:@"Adding Folder..."]; [self.errorLabel setHidden:YES]; [self.activityIndicator startAnimating]; - NSString *urlString = [NSString stringWithFormat:@"http://%@/api/add_folder", + NSString *urlString = [NSString stringWithFormat:@"http://%@/reader/add_folder", NEWSBLUR_URL]; NSURL *url = [NSURL URLWithString:urlString]; ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; - [request setPostValue:[inFolderInput text] forKey:@"in_folder"]; - [request setPostValue:[newFolderInput text] forKey:@"folder_name"]; + // [string rangeOfString:substring options:NSBackwardsSearch].location + NSString *parent_folder = [inFolderInput text]; + int folder_loc = [parent_folder rangeOfString:@" - " options:NSBackwardsSearch].location; + if ([parent_folder length] && folder_loc > 0) { + parent_folder = [parent_folder substringFromIndex:(folder_loc + 3)]; + } + [request setPostValue:parent_folder forKey:@"parent_folder"]; + [request setPostValue:[newFolderInput text] forKey:@"folder"]; [request setDelegate:self]; [request setDidFinishSelector:@selector(finishAddFolder:)]; [request setDidFailSelector:@selector(requestFailed:)]; @@ -203,14 +223,10 @@ // int statusCode = [request responseStatusCode]; int code = [[results valueForKey:@"code"] intValue]; if (code == -1) { - NSDictionary *errors = [results valueForKey:@"errors"]; - if ([errors valueForKey:@"email"]) { - [self.errorLabel setText:[[errors valueForKey:@"email"] objectAtIndex:0]]; - } else if ([errors valueForKey:@"username"]) { - [self.errorLabel setText:[[errors valueForKey:@"username"] objectAtIndex:0]]; - } + [self.errorLabel setText:[results valueForKey:@"message"]]; [self.errorLabel setHidden:NO]; } else { + [appDelegate.addViewController dismissModalViewControllerAnimated:YES]; [appDelegate reloadFeedsView]; } @@ -224,7 +240,7 @@ } #pragma mark - -#pragma mark Add Folder +#pragma mark Page Controls - (IBAction)selectAddTypeSignup { [self animateLoop]; @@ -290,7 +306,13 @@ numberOfRowsInComponent:(NSInteger)component { - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { - + NSString *folder_title; + if (row == 0) { + folder_title = @"- Top Level -"; + } else { + folder_title = [[appDelegate dictFoldersArray] objectAtIndex:row]; + } + [inFolderInput setText:folder_title]; } #pragma mark - @@ -301,15 +323,4 @@ numberOfRowsInComponent:(NSInteger)component { return 0; } -#pragma mark - -#pragma mark Server - -- (IBAction)doCancelButton { - [appDelegate.addViewController dismissModalViewControllerAnimated:YES]; -} - -- (IBAction)doAddButton { - -} - @end diff --git a/media/iphone/Classes/AddViewController.xib b/media/iphone/Classes/AddViewController.xib index b86a16be5..c2cab2c86 100644 --- a/media/iphone/Classes/AddViewController.xib +++ b/media/iphone/Classes/AddViewController.xib @@ -130,7 +130,6 @@ {{98, 310}, {20, 20}} - _NS:824 NO IBCocoaTouchFramework @@ -5132,6 +5131,8 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE YES YES + addFolder + addSite doAddButton doCancelButton selectAddTypeSignup @@ -5141,18 +5142,30 @@ AAgAAAAIAAIACAACAAAAAgAAAAEAAQABAAE id id id + id + id YES YES + addFolder + addSite doAddButton doCancelButton selectAddTypeSignup YES + + addFolder + id + + + addSite + id + doAddButton id diff --git a/media/iphone/Classes/NewsBlurAppDelegate.m b/media/iphone/Classes/NewsBlurAppDelegate.m index 634cb12a4..2f898dd36 100644 --- a/media/iphone/Classes/NewsBlurAppDelegate.m +++ b/media/iphone/Classes/NewsBlurAppDelegate.m @@ -110,6 +110,7 @@ - (void)showAdd { UINavigationController *navController = self.navigationController; [navController presentModalViewController:addViewController animated:YES]; + [addViewController reload]; } - (void)reloadFeedsView { diff --git a/media/iphone/NewsBlur_Prefix.pch b/media/iphone/NewsBlur_Prefix.pch index 9c9478329..71220eaf8 100644 --- a/media/iphone/NewsBlur_Prefix.pch +++ b/media/iphone/NewsBlur_Prefix.pch @@ -12,8 +12,8 @@ green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \ blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0] -// #define NEWSBLUR_URL [NSString stringWithFormat:@"nb.local.host:8000"] - #define NEWSBLUR_URL [NSString stringWithFormat:@"www.newsblur.com"] + #define NEWSBLUR_URL [NSString stringWithFormat:@"nb.local.host:8000"] +// #define NEWSBLUR_URL [NSString stringWithFormat:@"www.newsblur.com"] #define UIColorFromRGB(rgbValue) [UIColor \ colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \