Further changes to the login modal in the iPhone app.

This commit is contained in:
Samuel Clay 2010-11-11 20:05:53 -05:00
parent f485115ef2
commit 00551be672
11 changed files with 328 additions and 1292 deletions

View file

@ -22,7 +22,7 @@ try:
from apps.rss_feeds.models import Feed, MFeedPage, DuplicateFeed, MStory, FeedLoadtime
except:
pass
from utils import json_functions as json, urlnorm, json_encode
from utils import json_functions as json, urlnorm
from utils.user_functions import get_user, ajax_login_required
from utils.feed_functions import fetch_address_from_page, relative_timesince
from utils.story_functions import format_story_link_date__short
@ -84,13 +84,13 @@ def login(request):
login_user(request, form.get_user())
if request.POST.get('api'):
logging.info(" ---> [%s] iPhone Login" % form.get_user())
return HttpResponse(json_encode(dict(code=1)), mimetype='application/json')
return HttpResponse(json.encode(dict(code=1)), mimetype='application/json')
else:
logging.info(" ---> [%s] Login" % form.get_user())
return HttpResponseRedirect(reverse('index'))
if request.POST.get('api'):
return HttpResponse(json_encode(dict(code=-1)), mimetype='application/json')
return HttpResponse(json.encode(dict(code=-1)), mimetype='application/json')
else:
return index(request)

10
fabfile.py vendored
View file

@ -5,11 +5,11 @@ from fabric.api import env, run, require, sudo, settings
# =========
env.user = 'conesus'
env.hosts = ['www.newsblur.com', 'db01.newsblur.com']
env.hosts = ['www.newsblur.com', 'db01.newsblur.com', 'db02.newsblur.com', 'db03.newsblur.com']
env.roledefs ={
'web': ['app01.newsblur.com'],
'ff': ['app01.newsblur.com', 'db01.newsblur.com'],
'web': ['www.newsblur.com'],
'db': ['db01.newsblur.com'],
'task': ['db02.newsblur.com', 'db03.newsblur.com'],
}
"""
@ -20,8 +20,8 @@ env.database_password = '$(db_password)'
env.site_media_prefix = "site_media"
env.admin_media_prefix = "admin_media"
env.newsapps_media_prefix = "na_media"
env.path = '/home/newsapps/sites/%(project_name)s' % env
env.log_path = '/home/newsapps/logs/%(project_name)s' % env
env.path = '/home/conesus/%(project_name)s' % env
env.log_path = '/home/home/conesus/%(project_name)s/logs' % env
env.env_path = '%(path)s/env' % env
env.repo_path = '%(path)s/repository' % env
env.apache_config_path = '/home/newsapps/sites/apache/%(project_name)s' % env

View file

@ -20,7 +20,7 @@
- (void)checkPassword;
@property (nonatomic, retain) IBOutlet NewsBlurAppDelegate *appDelegate;
@property (nonatomic, retain) NewsBlurAppDelegate *appDelegate;
@property (nonatomic, retain) IBOutlet UITextField *usernameTextField;
@property (nonatomic, retain) IBOutlet UITextField *passwordTextField;
@property (nonatomic, retain) NSMutableData * jsonString;

View file

@ -7,7 +7,9 @@
//
#import "LoginViewController.h"
#import "NewsBlurAppDelegate.h"
#import "Three20/Three20.h"
#import "JSON.h"
@implementation LoginViewController
@ -16,8 +18,20 @@
@synthesize passwordTextField;
@synthesize jsonString;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
[appDelegate hideNavigationBar:NO];
}
return self;
}
- (void)viewDidLoad {
[usernameTextField becomeFirstResponder];
[appDelegate hideNavigationBar:NO];
NSLog(@"appdelegate:: %@", [self appDelegate]);
[super viewDidLoad];
}
@ -27,12 +41,14 @@
[passwordTextField becomeFirstResponder];
} else if (textField == passwordTextField) {
NSLog(@"Password return");
NSLog(@"appdelegate:: %@", [self appDelegate]);
[self checkPassword];
}
return YES;
}
- (void)checkPassword {
NSLog(@"appdelegate:: %@", [self appDelegate]);
NSString *url = @"http://nb.local.host:8000/reader/login";
TTURLRequest *theRequest = [[TTURLRequest alloc] initWithURL:url delegate:self];
[theRequest setHttpMethod:@"POST"];
@ -51,11 +67,16 @@
- (void)requestDidFinishLoad:(TTURLRequest *)request {
TTURLDataResponse *response = request.response;
NSLog(@"request: %@", response);
NSLog(@"response: %@", [response data]);
NSLog(@"response: %@", [[NSString alloc] initWithData:response.data encoding:NSUTF8StringEncoding]);
NSString *rawCode = [[NSString alloc] initWithData:response.data
encoding:NSUTF8StringEncoding];
[response release];
NSDictionary *results = [[NSDictionary alloc]
initWithDictionary:[rawCode JSONValue]];
NSLog(@"response: %@", [results valueForKey:@"code"]);
NSLog(@"appdelegate:: %@", [self appDelegate]);
[[self appDelegate] reloadFeedsView];
[rawCode release];
[results release];
}
- (void)request:(TTURLRequest *)request didFailLoadWithError:(NSError *)error {

View file

@ -24,6 +24,8 @@
NSDictionary * activeFeed;
NSArray * activeFeedStories;
NSDictionary * activeStory;
BOOL isLoggedIn;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@ -36,9 +38,11 @@
@property (readwrite, retain) NSDictionary * activeFeed;
@property (readwrite, retain) NSArray * activeFeedStories;
@property (readwrite, retain) NSDictionary * activeStory;
@property (readwrite) BOOL isLoggedIn;
- (void)loadFeedDetailView;
- (void)loadStoryDetailView;
- (void)reloadFeedsView;
- (void)hideNavigationBar:(BOOL)animated;
- (void)showNavigationBar:(BOOL)animated;

View file

@ -24,18 +24,21 @@
@synthesize activeFeed;
@synthesize activeFeedStories;
@synthesize activeStory;
@synthesize isLoggedIn;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UINavigationController *navController = self.navigationController;
NSLog(@"storyDetailViewController: %@", storyDetailViewController);
navigationController.viewControllers = [NSArray arrayWithObject:feedsViewController];
[window addSubview:navigationController.view];
[window makeKeyAndVisible];
LoginViewController *login = [[LoginViewController alloc] init];
[navigationController presentModalViewController:login animated:YES];
NSLog(@"loginViewController: %@", loginViewController);
[navController presentModalViewController:loginViewController animated:YES];
[login release];
return YES;
}
- (void)dealloc {
[feedsViewController release];
[feedDetailViewController release];
@ -60,6 +63,12 @@
#pragma mark -
#pragma mark Views
- (void)reloadFeedsView {
NSLog(@"Reloading feeds list");
[loginViewController dismissModalViewControllerAnimated:YES];
[feedsViewController fetchFeedList];
}
- (void)loadFeedDetailView {
UINavigationController *navController = self.navigationController;

View file

@ -38,7 +38,6 @@
self.dictFolders = [[NSDictionary alloc] init];
self.dictFoldersArray = [[NSMutableArray alloc] init];
[appDelegate hideNavigationBar:NO];
[self fetchFeedList];
[super viewDidLoad];
}
@ -92,7 +91,7 @@
- (void)fetchFeedList {
NSURL *urlFeedList = [NSURL URLWithString:[NSString
stringWithFormat:@"http://www.newsblur.com/reader/load_feeds_iphone/"]];
stringWithFormat:@"http://nb.local.host:8000/reader/load_feeds_iphone/"]];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL: urlFeedList];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[connection release];

View file

@ -270,7 +270,48 @@
</dict>
</array>
<key>OpenEditors</key>
<array/>
<array>
<dict>
<key>Content</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>7816BDDE128C4494008ED38C</string>
<key>PBXProjectModuleLabel</key>
<string>NewsBlurAppDelegate.h</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>7816BDDF128C4494008ED38C</string>
<key>PBXProjectModuleLabel</key>
<string>NewsBlurAppDelegate.h</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
<string>78D09B65128CCA46009B016D</string>
<key>history</key>
<array>
<string>78D09B3C128CB5B4009B016D</string>
</array>
</dict>
<key>SplitCount</key>
<string>1</string>
</dict>
<key>StatusBarVisibility</key>
<true/>
</dict>
<key>Geometry</key>
<dict>
<key>Frame</key>
<string>{{0, 20}, {750, 461}}</string>
<key>PBXModuleWindowStatusBarHidden2</key>
<false/>
<key>RubberWindowFrame</key>
<string>90 350 750 502 0 0 1440 878 </string>
</dict>
</dict>
</array>
<key>PerspectiveWidths</key>
<array>
<integer>705</integer>
@ -339,6 +380,7 @@
<array>
<string>29B97314FDCFA39411CA2CEA</string>
<string>080E96DDFE201D6D7F000001</string>
<string>29B97317FDCFA39411CA2CEA</string>
<string>29B97323FDCFA39411CA2CEA</string>
<string>1C37FBAC04509CD000000102</string>
<string>1C37FABC05509CD000000102</string>
@ -382,6 +424,8 @@
<key>Dock</key>
<array>
<dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
@ -399,10 +443,9 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
<string>7816BD67128B8477008ED38C</string>
<string>78D09B64128CCA46009B016D</string>
<key>history</key>
<array>
<string>787A0E8411CEAF200056422D</string>
<string>7842EB9911CFFC1B0066CF9D</string>
<string>7842EB9A11CFFC1B0066CF9D</string>
<string>7843F5AA11EEC0AA00675F64</string>
@ -410,18 +453,20 @@
<string>7843F5AC11EEC0AA00675F64</string>
<string>7843F5AD11EEC0AA00675F64</string>
<string>7843F5AE11EEC0AA00675F64</string>
<string>785086B412089C6000CF3B50</string>
<string>784B510E127E417E008F90EA</string>
<string>784B514C127E44C3008F90EA</string>
<string>784B514D127E44C3008F90EA</string>
<string>78E69EEA127E650C00AB2B15</string>
<string>78E69EEC127E650C00AB2B15</string>
<string>7816BCA5128B74CD008ED38C</string>
<string>7816BCCC128B7D7D008ED38C</string>
<string>7816BCCD128B7D7D008ED38C</string>
<string>7816BCCE128B7D7D008ED38C</string>
<string>7816BCCF128B7D7D008ED38C</string>
<string>7816BD26128B82C5008ED38C</string>
<string>7816BE07128C4651008ED38C</string>
<string>78D09B32128CB59B009B016D</string>
<string>78D09B5B128CCA46009B016D</string>
<string>78D09B5C128CCA46009B016D</string>
<string>78D09B5D128CCA46009B016D</string>
<string>78D09B5E128CCA46009B016D</string>
<string>78D09B5F128CCA46009B016D</string>
<string>78D09B60128CCA46009B016D</string>
<string>78D09B61128CCA46009B016D</string>
<string>78D09B62128CCA46009B016D</string>
<string>78D09B63128CCA46009B016D</string>
</array>
</dict>
<key>SplitCount</key>
@ -433,18 +478,16 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 0}, {735, 559}}</string>
<string>{{0, 0}, {735, 549}}</string>
<key>RubberWindowFrame</key>
<string>377 111 1034 767 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
<string>559pt</string>
<string>549pt</string>
</dict>
<dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
@ -455,14 +498,14 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 564}, {735, 162}}</string>
<string>{{0, 554}, {735, 172}}</string>
<key>RubberWindowFrame</key>
<string>377 111 1034 767 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
<key>Proportion</key>
<string>162pt</string>
<string>172pt</string>
</dict>
</array>
<key>Proportion</key>
@ -481,9 +524,9 @@
</array>
<key>TableOfContents</key>
<array>
<string>7816BC8C128B6FE2008ED38C</string>
<string>78D09B45128CB5BF009B016D</string>
<string>1CE0B1FE06471DED0097A5F4</string>
<string>7816BC8D128B6FE2008ED38C</string>
<string>78D09B46128CB5BF009B016D</string>
<string>1CE0B20306471E060097A5F4</string>
<string>1CE0B20506471E060097A5F4</string>
</array>
@ -618,7 +661,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
<real>311133303.62725598</real>
<real>311216710.60232002</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@ -635,14 +678,11 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
<string>7816BD3A128B82FD008ED38C</string>
<string>7816BD20128B829F008ED38C</string>
<string>7816BD13128B8237008ED38C</string>
<string>1C530D57069F1CE1000CFCEE</string>
<string>1C78EAAD065D492600B07095</string>
<string>1CD10A99069EF8BA00B06720</string>
<string>788997AE11C9C87C00041675</string>
<string>7816BDDE128C4494008ED38C</string>
<string>/Users/conesus/newsblur/media/iphone/NewsBlur.xcodeproj</string>
<string>1C78EAAD065D492600B07095</string>
</array>
<key>WindowString</key>
<string>377 111 1034 767 0 0 1440 878 </string>
@ -666,7 +706,7 @@
<key>PBXProjectModuleGUID</key>
<string>1CD0528F0623707200166675</string>
<key>PBXProjectModuleLabel</key>
<string>LoginViewController.m</string>
<string></string>
<key>StatusBarVisibility</key>
<true/>
</dict>
@ -724,7 +764,7 @@
<key>TableOfContents</key>
<array>
<string>788997AE11C9C87C00041675</string>
<string>7816BC89128B6FDE008ED38C</string>
<string>78D09B48128CB5BF009B016D</string>
<string>1CD0528F0623707200166675</string>
<string>XCMainBuildResultsModuleGUID</string>
</array>
@ -848,13 +888,13 @@
<key>TableOfContents</key>
<array>
<string>1CD10A99069EF8BA00B06720</string>
<string>7816BC8E128B6FE2008ED38C</string>
<string>78D09B4E128CB5DD009B016D</string>
<string>1C162984064C10D400B95A72</string>
<string>7816BC8F128B6FE2008ED38C</string>
<string>7816BC90128B6FE2008ED38C</string>
<string>7816BC91128B6FE2008ED38C</string>
<string>7816BC92128B6FE2008ED38C</string>
<string>7816BC93128B6FE2008ED38C</string>
<string>78D09B4F128CB5DD009B016D</string>
<string>78D09B50128CB5DD009B016D</string>
<string>78D09B51128CB5DD009B016D</string>
<string>78D09B52128CB5DD009B016D</string>
<string>78D09B53128CB5DD009B016D</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.debugV3</string>
@ -886,7 +926,7 @@
<key>PBXProjectModuleGUID</key>
<string>1CDD528C0622207200134675</string>
<key>PBXProjectModuleLabel</key>
<string>LoginViewController.m</string>
<string></string>
<key>StatusBarVisibility</key>
<true/>
</dict>
@ -944,8 +984,8 @@
<key>TableOfContents</key>
<array>
<string>1C530D57069F1CE1000CFCEE</string>
<string>7816BCC3128B7D4A008ED38C</string>
<string>7816BCC4128B7D4A008ED38C</string>
<string>78D09B2B128CB542009B016D</string>
<string>78D09B2C128CB542009B016D</string>
<string>1CDD528C0622207200134675</string>
<string>1CD0528E0623707200166675</string>
</array>
@ -987,7 +1027,7 @@
<key>Frame</key>
<string>{{0, 0}, {744, 532}}</string>
<key>RubberWindowFrame</key>
<string>294 162 744 573 0 0 1440 878 </string>
<string>337 135 744 573 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXDebugCLIModule</string>
@ -1010,17 +1050,17 @@
<key>TableOfContents</key>
<array>
<string>1C78EAAD065D492600B07095</string>
<string>7816BC94128B6FE2008ED38C</string>
<string>78D09B54128CB5DD009B016D</string>
<string>1C78EAAC065D492600B07095</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.consoleV3</string>
<key>WindowString</key>
<string>294 162 744 573 0 0 1440 878 </string>
<string>337 135 744 573 0 0 1440 878 </string>
<key>WindowToolGUID</key>
<string>1C78EAAD065D492600B07095</string>
<key>WindowToolIsVisible</key>
<true/>
<false/>
</dict>
<dict>
<key>Identifier</key>

File diff suppressed because it is too large Load diff

View file

@ -15,7 +15,6 @@
2899E5220DE3E06400AC0155 /* NewsBlurViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2899E5210DE3E06400AC0155 /* NewsBlurViewController.xib */; };
28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; };
28D7ACF80DDB3853001CB0EB /* NewsBlurViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D7ACF70DDB3853001CB0EB /* NewsBlurViewController.m */; };
320AF8492C47A4D819F7C451 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 320AF8492C47A4D819F7C450 /* QuartzCore.framework */; };
7842ECF811D44A530066CF9D /* StoryDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7842ECF611D44A530066CF9D /* StoryDetailViewController.m */; };
7842ECF911D44A540066CF9D /* StoryDetailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7842ECF711D44A530066CF9D /* StoryDetailViewController.xib */; };
7843F4E911EEABDC00675F64 /* FeedDetailTableCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7843F4E811EEABDC00675F64 /* FeedDetailTableCell.xib */; };
@ -49,7 +48,6 @@
28D7ACF60DDB3853001CB0EB /* NewsBlurViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewsBlurViewController.h; sourceTree = "<group>"; };
28D7ACF70DDB3853001CB0EB /* NewsBlurViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = NewsBlurViewController.m; sourceTree = "<group>"; tabWidth = 4; usesTabs = 1; wrapsLines = 1; };
29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
320AF8492C47A4D819F7C450 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDK_ROOT; };
32CA4F630368D1EE00C91783 /* NewsBlur_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewsBlur_Prefix.pch; sourceTree = "<group>"; };
7842ECF511D44A530066CF9D /* StoryDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StoryDetailViewController.h; sourceTree = "<group>"; };
7842ECF611D44A530066CF9D /* StoryDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StoryDetailViewController.m; sourceTree = "<group>"; };
@ -89,7 +87,6 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
320AF8492C47A4D819F7C451 /* QuartzCore.framework in Frameworks */,
1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,
1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */,
@ -169,7 +166,6 @@
29B97323FDCFA39411CA2CEA /* Frameworks */ = {
isa = PBXGroup;
children = (
320AF8492C47A4D819F7C450 /* QuartzCore.framework */,
78FC34E911CA94900055C312 /* JSON */,
1DF5F4DF0D08C38300B7A737 /* UIKit.framework */,
1D30AB110D05D00D00671497 /* Foundation.framework */,

View file

@ -249,7 +249,7 @@ $(document).ready(function() {
</h3>
<div class="NB-module-account-title">
<div class="NB-modal-submit">
<div class="NB-modal-submit-green NB-modal-submit-button NB-module-account-train">Train Your Filters</div>
<div class="NB-modal-submit-green NB-modal-submit-button NB-module-account-train">Launch Intelligence Trainer</div>
</div>
</div>
</div>