Fixing delete site in nested folders. Also refactoring and adding tail truncating to feed gradients.

This commit is contained in:
Samuel Clay 2011-12-04 21:09:16 -08:00
parent 85feadb3f1
commit 2ec7c55eac
6 changed files with 58 additions and 44 deletions

View file

@ -445,7 +445,7 @@ class UserSubscriptionFolders(models.Model):
new_folders.append({f_k: nf})
return new_folders, multiples_found, deleted
print "In folder: %s" % in_folder
user_sub_folders = json.decode(self.folders)
user_sub_folders, multiples_found, deleted = _find_feed_in_folders(user_sub_folders)
self.folders = json.encode(user_sub_folders)

View file

@ -772,7 +772,7 @@
__block ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:urlFeedDetail];
[request setDelegate:self];
[request addPostValue:[[appDelegate activeFeed] objectForKey:@"id"] forKey:@"feed_id"];
[request addPostValue:[appDelegate activeFolder] forKey:@"in_folder"];
[request addPostValue:[appDelegate extractFolderName:appDelegate.activeFolder] forKey:@"in_folder"];
[request setFailedBlock:^(void) {
[self informError:[request error]];
}];

View file

@ -23,8 +23,6 @@
- (IBAction)doCancelButton;
- (IBAction)doMoveButton;
- (NSArray *)pickerFolders;
- (NSString *)extractFolderName:(NSString *)folderName;
- (NSString *)extractParentFolderName:(NSString *)folderName;
@property (nonatomic, retain) IBOutlet NewsBlurAppDelegate *appDelegate;
@property (nonatomic, retain) IBOutlet UITextField *fromFolderInput;

View file

@ -60,7 +60,13 @@
for (UIView *subview in [self.titleLabel subviews]) {
[subview removeFromSuperview];
}
[self.titleLabel addSubview:[appDelegate makeFeedTitle:appDelegate.activeFeed]];
UIView *label = [appDelegate makeFeedTitle:appDelegate.activeFeed];
label.frame = CGRectMake(label.frame.origin.x,
label.frame.origin.y,
self.titleLabel.frame.size.width -
(self.titleLabel.frame.origin.x-label.frame.origin.x),
label.frame.size.height);
[self.titleLabel addSubview:label];
[self reload];
[super viewWillAppear:animated];
}
@ -84,11 +90,12 @@
}
- (void)reload {
BOOL isTopLevel = [[appDelegate.activeFolder trim] isEqualToString:@""];
[toFolderInput setText:@""];
if (appDelegate.isRiverView) {
[fromFolderInput setText:[self extractParentFolderName:appDelegate.activeFolder]];
[fromFolderInput setText:[appDelegate extractParentFolderName:appDelegate.activeFolder]];
} else {
[fromFolderInput setText:appDelegate.activeFolder];
fromFolderInput.text = isTopLevel ? @"— Top Level —" : appDelegate.activeFolder;
}
self.folders = [NSMutableArray array];
[folderPicker reloadAllComponents];
@ -96,9 +103,8 @@
int row = 0;
if (appDelegate.isRiverView) {
row = [[self pickerFolders]
indexOfObject:[self extractParentFolderName:appDelegate.activeFolder]];
indexOfObject:[appDelegate extractParentFolderName:appDelegate.activeFolder]];
} else {
BOOL isTopLevel = [[appDelegate.activeFolder trim] isEqualToString:@""];
row = isTopLevel ?
0 :
[[self pickerFolders] indexOfObject:appDelegate.activeFolder];
@ -132,8 +138,8 @@
NEWSBLUR_URL];
NSURL *url = [NSURL URLWithString:urlString];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
NSString *fromFolder = [self extractFolderName:[fromFolderInput text]];
NSString *toFolder = [self extractFolderName:[toFolderInput text]];
NSString *fromFolder = [appDelegate extractFolderName:[fromFolderInput text]];
NSString *toFolder = [appDelegate extractFolderName:[toFolderInput text]];
[request setPostValue:fromFolder forKey:@"in_folder"];
[request setPostValue:toFolder forKey:@"to_folder"];
[request setPostValue:[appDelegate.activeFeed objectForKey:@"id"] forKey:@"feed_id"];
@ -166,35 +172,6 @@
[results release];
}
- (NSString *)extractParentFolderName:(NSString *)folderName {
if ([folderName containsString:@"Top Level"]) {
folderName = @"";
}
if ([folderName containsString:@" - "]) {
int lastFolderLoc = [folderName rangeOfString:@" - " options:NSBackwardsSearch].location;
// int secondLastFolderLoc = [[folderName substringToIndex:lastFolderLoc] rangeOfString:@" - " options:NSBackwardsSearch].location;
folderName = [folderName substringToIndex:lastFolderLoc];
} else {
folderName = @"— Top Level —";
}
return folderName;
}
- (NSString *)extractFolderName:(NSString *)folderName {
if ([folderName containsString:@"Top Level"]) {
folderName = @"";
}
if ([folderName containsString:@" - "]) {
int folder_loc = [folderName rangeOfString:@" - " options:NSBackwardsSearch].location;
folderName = [folderName substringFromIndex:(folder_loc + 3)];
}
return folderName;
}
#pragma mark -
#pragma mark Move Folder
@ -207,9 +184,9 @@
NEWSBLUR_URL];
NSURL *url = [NSURL URLWithString:urlString];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
NSString *folderName = [self extractFolderName:appDelegate.activeFolder];
NSString *fromFolder = [self extractFolderName:[fromFolderInput text]];
NSString *toFolder = [self extractFolderName:[toFolderInput text]];
NSString *folderName = [appDelegate extractFolderName:appDelegate.activeFolder];
NSString *fromFolder = [appDelegate extractFolderName:[fromFolderInput text]];
NSString *toFolder = [appDelegate extractFolderName:[toFolderInput text]];
[request setPostValue:fromFolder forKey:@"in_folder"];
[request setPostValue:toFolder forKey:@"to_folder"];
[request setPostValue:folderName forKey:@"folder_name"];

View file

@ -121,6 +121,8 @@
- (void)markFeedAllRead:(id)feedId;
- (void)calculateStoryLocations;
+ (int)computeStoryScore:(NSDictionary *)intelligence;
- (NSString *)extractFolderName:(NSString *)folderName;
- (NSString *)extractParentFolderName:(NSString *)folderName;
+ (UIView *)makeGradientView:(CGRect)rect startColor:(NSString *)start endColor:(NSString *)end;
- (UIView *)makeFeedTitleGradient:(NSDictionary *)feed withRect:(CGRect)rect;
- (UIView *)makeFeedTitle:(NSDictionary *)feed;

View file

@ -16,6 +16,7 @@
#import "OriginalStoryViewController.h"
#import "MBProgressHUD.h"
#import "Utilities.h"
#import "StringHelper.h"
@implementation NewsBlurAppDelegate
@ -515,6 +516,40 @@
return score;
}
- (NSString *)extractParentFolderName:(NSString *)folderName {
if ([folderName containsString:@"Top Level"]) {
folderName = @"";
}
if ([folderName containsString:@" - "]) {
int lastFolderLoc = [folderName rangeOfString:@" - " options:NSBackwardsSearch].location;
// int secondLastFolderLoc = [[folderName substringToIndex:lastFolderLoc] rangeOfString:@" - " options:NSBackwardsSearch].location;
folderName = [folderName substringToIndex:lastFolderLoc];
} else {
folderName = @"— Top Level —";
}
return folderName;
}
- (NSString *)extractFolderName:(NSString *)folderName {
if ([folderName containsString:@"Top Level"]) {
folderName = @"";
}
if ([folderName containsString:@" - "]) {
int folder_loc = [folderName rangeOfString:@" - " options:NSBackwardsSearch].location;
folderName = [folderName substringFromIndex:(folder_loc + 3)];
}
return folderName;
}
#pragma mark -
#pragma mark Feed Templates
+ (UIView *)makeGradientView:(CGRect)rect startColor:(NSString *)start endColor:(NSString *)end {
UIView *gradientView = [[[UIView alloc] initWithFrame:rect] autorelease];
@ -570,6 +605,7 @@
titleLabel.backgroundColor = [UIColor clearColor];
titleLabel.textAlignment = UITextAlignmentLeft;
titleLabel.lineBreakMode = UILineBreakModeTailTruncation;
titleLabel.numberOfLines = 1;
titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:11.0];
titleLabel.shadowOffset = CGSizeMake(0, 1);
if ([[feed objectForKey:@"favicon_text_color"] class] != [NSNull class]) {
@ -585,7 +621,7 @@
titleLabel.textColor = [UIColor whiteColor];
titleLabel.shadowColor = [UIColor blackColor];
}
titleLabel.frame = CGRectMake(32, 1, window.frame.size.width-20, 20);
titleLabel.frame = CGRectMake(32, 1, rect.size.width-32, 20);
NSString *feedIdStr = [NSString stringWithFormat:@"%@", [feed objectForKey:@"id"]];
UIImage *titleImage = [Utilities getImage:feedIdStr];
@ -621,6 +657,7 @@
titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:15.0];
titleLabel.textColor = [UIColor whiteColor];
titleLabel.lineBreakMode = UILineBreakModeTailTruncation;
titleLabel.numberOfLines = 1;
titleLabel.shadowColor = [UIColor blackColor];
titleLabel.shadowOffset = CGSizeMake(0, -1);
titleLabel.center = CGPointMake(28, -2);