issue list && build used data model

This commit is contained in:
lizj0505 2013-07-15 17:59:24 +08:00
parent 98be56f117
commit 8271490b60
19 changed files with 625 additions and 86 deletions

View File

@ -13,6 +13,11 @@
2BCF88141793CB94006FC859 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2BCF88131793CB94006FC859 /* SystemConfiguration.framework */; };
2BCF88181793E353006FC859 /* OZLProjectDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BCF88161793E353006FC859 /* OZLProjectDetailViewController.m */; };
2BCF88191793E353006FC859 /* OZLProjectDetailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2BCF88171793E353006FC859 /* OZLProjectDetailViewController.xib */; };
2BCF881E1793F3C8006FC859 /* OZLModelIssue.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BCF881D1793F3C8006FC859 /* OZLModelIssue.m */; };
2BCF88211793F478006FC859 /* OZLModelTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BCF88201793F478006FC859 /* OZLModelTracker.m */; };
2BCF88271793F4AA006FC859 /* OZLModelStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BCF88261793F4AA006FC859 /* OZLModelStatus.m */; };
2BCF882A1793F4C9006FC859 /* OZLModelPriority.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BCF88291793F4C9006FC859 /* OZLModelPriority.m */; };
2BCF88301793F5CE006FC859 /* OZLModelUser.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BCF882F1793F5CE006FC859 /* OZLModelUser.m */; };
D5DB805A1792F2BF0081662A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5DB80591792F2BF0081662A /* UIKit.framework */; };
D5DB805C1792F2BF0081662A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5DB805B1792F2BF0081662A /* Foundation.framework */; };
D5DB805E1792F2BF0081662A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5DB805D1792F2BF0081662A /* CoreGraphics.framework */; };
@ -57,6 +62,16 @@
2BCF88151793E352006FC859 /* OZLProjectDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OZLProjectDetailViewController.h; path = ViewControllers/OZLProjectDetailViewController.h; sourceTree = "<group>"; };
2BCF88161793E353006FC859 /* OZLProjectDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OZLProjectDetailViewController.m; path = ViewControllers/OZLProjectDetailViewController.m; sourceTree = "<group>"; };
2BCF88171793E353006FC859 /* OZLProjectDetailViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = OZLProjectDetailViewController.xib; path = ViewControllers/OZLProjectDetailViewController.xib; sourceTree = "<group>"; };
2BCF881C1793F3C8006FC859 /* OZLModelIssue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OZLModelIssue.h; path = Models/OZLModelIssue.h; sourceTree = "<group>"; };
2BCF881D1793F3C8006FC859 /* OZLModelIssue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OZLModelIssue.m; path = Models/OZLModelIssue.m; sourceTree = "<group>"; };
2BCF881F1793F478006FC859 /* OZLModelTracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OZLModelTracker.h; path = Models/OZLModelTracker.h; sourceTree = "<group>"; };
2BCF88201793F478006FC859 /* OZLModelTracker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OZLModelTracker.m; path = Models/OZLModelTracker.m; sourceTree = "<group>"; };
2BCF88251793F4AA006FC859 /* OZLModelStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OZLModelStatus.h; path = Models/OZLModelStatus.h; sourceTree = "<group>"; };
2BCF88261793F4AA006FC859 /* OZLModelStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OZLModelStatus.m; path = Models/OZLModelStatus.m; sourceTree = "<group>"; };
2BCF88281793F4C9006FC859 /* OZLModelPriority.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OZLModelPriority.h; path = Models/OZLModelPriority.h; sourceTree = "<group>"; };
2BCF88291793F4C9006FC859 /* OZLModelPriority.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OZLModelPriority.m; path = Models/OZLModelPriority.m; sourceTree = "<group>"; };
2BCF882E1793F5CE006FC859 /* OZLModelUser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OZLModelUser.h; path = Models/OZLModelUser.h; sourceTree = "<group>"; };
2BCF882F1793F5CE006FC859 /* OZLModelUser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OZLModelUser.m; path = Models/OZLModelUser.m; sourceTree = "<group>"; };
D5DB80561792F2BF0081662A /* RedmineMobile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RedmineMobile.app; sourceTree = BUILT_PRODUCTS_DIR; };
D5DB80591792F2BF0081662A /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
D5DB805B1792F2BF0081662A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
@ -150,6 +165,29 @@
path = Reachability;
sourceTree = "<group>";
};
2BCF881A1793EF9F006FC859 /* Project */ = {
isa = PBXGroup;
children = (
D5DB80A31792F4DE0081662A /* OZLProjectListViewController.h */,
D5DB80A41792F4DE0081662A /* OZLProjectListViewController.m */,
D5DB80A51792F4DE0081662A /* OZLProjectListViewController.xib */,
D5DB80A91792F6980081662A /* OZLProjectViewController.h */,
D5DB80AA1792F6980081662A /* OZLProjectViewController.m */,
D5DB80AB1792F6980081662A /* OZLProjectViewController.xib */,
2BCF88151793E352006FC859 /* OZLProjectDetailViewController.h */,
2BCF88161793E353006FC859 /* OZLProjectDetailViewController.m */,
2BCF88171793E353006FC859 /* OZLProjectDetailViewController.xib */,
);
name = Project;
sourceTree = "<group>";
};
2BCF881B1793EFB7006FC859 /* Issue */ = {
isa = PBXGroup;
children = (
);
name = Issue;
sourceTree = "<group>";
};
D5DB804D1792F2BF0081662A = {
isa = PBXGroup;
children = (
@ -278,18 +316,11 @@
D5DB80A81792F4E40081662A /* ViewControllers */ = {
isa = PBXGroup;
children = (
D5DB80A31792F4DE0081662A /* OZLProjectListViewController.h */,
D5DB80A41792F4DE0081662A /* OZLProjectListViewController.m */,
D5DB80A51792F4DE0081662A /* OZLProjectListViewController.xib */,
D5DB80A91792F6980081662A /* OZLProjectViewController.h */,
D5DB80AA1792F6980081662A /* OZLProjectViewController.m */,
D5DB80AB1792F6980081662A /* OZLProjectViewController.xib */,
2BCF881B1793EFB7006FC859 /* Issue */,
2BCF881A1793EF9F006FC859 /* Project */,
D5DB80B21793016B0081662A /* OZLAccountViewController.h */,
D5DB80B31793016B0081662A /* OZLAccountViewController.m */,
D5DB80B41793016B0081662A /* OZLAccountViewController.xib */,
2BCF88151793E352006FC859 /* OZLProjectDetailViewController.h */,
2BCF88161793E353006FC859 /* OZLProjectDetailViewController.m */,
2BCF88171793E353006FC859 /* OZLProjectDetailViewController.xib */,
);
name = ViewControllers;
sourceTree = "<group>";
@ -310,8 +341,18 @@
D5DB80BF17931C580081662A /* Models */ = {
isa = PBXGroup;
children = (
2BCF88251793F4AA006FC859 /* OZLModelStatus.h */,
2BCF88261793F4AA006FC859 /* OZLModelStatus.m */,
D5DB80C017931C8B0081662A /* OZLModelProject.h */,
D5DB80C117931C8B0081662A /* OZLModelProject.m */,
2BCF881C1793F3C8006FC859 /* OZLModelIssue.h */,
2BCF881D1793F3C8006FC859 /* OZLModelIssue.m */,
2BCF881F1793F478006FC859 /* OZLModelTracker.h */,
2BCF88201793F478006FC859 /* OZLModelTracker.m */,
2BCF88281793F4C9006FC859 /* OZLModelPriority.h */,
2BCF88291793F4C9006FC859 /* OZLModelPriority.m */,
2BCF882E1793F5CE006FC859 /* OZLModelUser.h */,
2BCF882F1793F5CE006FC859 /* OZLModelUser.m */,
);
name = Models;
sourceTree = "<group>";
@ -411,6 +452,11 @@
2BCF880C1793A26A006FC859 /* MBProgressHUD.m in Sources */,
2BCF88101793ABA0006FC859 /* Reachability.m in Sources */,
2BCF88181793E353006FC859 /* OZLProjectDetailViewController.m in Sources */,
2BCF881E1793F3C8006FC859 /* OZLModelIssue.m in Sources */,
2BCF88211793F478006FC859 /* OZLModelTracker.m in Sources */,
2BCF88271793F4AA006FC859 /* OZLModelStatus.m in Sources */,
2BCF882A1793F4C9006FC859 /* OZLModelPriority.m in Sources */,
2BCF88301793F5CE006FC859 /* OZLModelUser.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};

View File

@ -0,0 +1,34 @@
//
// OZLModelIssue.h
// RedmineMobile
//
// Created by lizhijie on 7/15/13.
// Copyright (c) 2013 Lee Zhijie. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "OZLModelTracker.h"
#import "OZLModelStatus.h"
#import "OZLModelUser.h"
#import "OZLModelPriority.h"
@interface OZLModelIssue : NSObject
@property(nonatomic) int index;
@property(nonatomic) int projectId;
@property(nonatomic) int parentIssueId;
@property(nonatomic,strong) OZLModelTracker* tracker;
@property(nonatomic,strong) OZLModelUser* author;
@property(nonatomic,strong) OZLModelUser* assignedTo;
@property(nonatomic,strong) OZLModelPriority* priority;
@property(nonatomic,strong) NSString* subject;
@property(nonatomic,strong) NSString* description;
@property(nonatomic,strong) NSString* startDate;
@property(nonatomic,strong) NSString* dueDate;
@property(nonatomic,strong) NSString* createdOn;
@property(nonatomic,strong) NSString* updatedOn;
@property(nonatomic) float doneRatio;
-(id)initWithDictionary:(NSDictionary*)dic;
@end

View File

@ -0,0 +1,68 @@
//
// OZLModelIssue.m
// RedmineMobile
//
// Created by lizhijie on 7/15/13.
// Copyright (c) 2013 Lee Zhijie. All rights reserved.
//
#import "OZLModelIssue.h"
@implementation OZLModelIssue
-(id)initWithDictionary:(NSDictionary*)dic
{
self = [super init];
if (!self) {
return nil;
}
// @property(nonatomic) int index;
// @property(nonatomic) int projectId;
// @property(nonatomic) int parentIssueId;
// @property(nonatomic,strong) OZLModelTracker* tracker;
// @property(nonatomic,strong) OZLModelUser* author;
// @property(nonatomic,strong) OZLModelUser* assignedTo;
// @property(nonatomic,strong) OZLModelPriority* priority;
// @property(nonatomic,strong) NSString* subject;
// @property(nonatomic,strong) NSString* description;
// @property(nonatomic,strong) NSString* startDate;
// @property(nonatomic,strong) NSString* dueDate;
// @property(nonatomic,strong) NSString* createdOn;
// @property(nonatomic,strong) NSString* updatedOn;
// @property(nonatomic) float doneRatio;
_index = [[dic objectForKey:@"id"] intValue];
_projectId = [[[dic objectForKey:@"project"] objectForKey:@"id"] intValue];
id parent = [dic objectForKey:@"parent"];
if (parent != nil) {
_parentIssueId = [[parent objectForKey:@"id"] intValue];
}else {
_parentIssueId = -1;
}
id tracker = [dic objectForKey:@"tracker"];
if (tracker != nil) {
_tracker = [[OZLModelTracker alloc] initWithDictionary:tracker];
}
id author = [dic objectForKey:@"author"];
if (author != nil) {
_author = [[OZLModelUser alloc] initWithDictionary:author];
}
id assignedTo = [dic objectForKey:@"assigned_to"];
if (assignedTo != nil) {
_assignedTo = [[OZLModelUser alloc] initWithDictionary:assignedTo];
}
id priority = [dic objectForKey:@"priority"];
if (priority != nil) {
_priority = [[OZLModelPriority alloc] initWithDictionary:priority];
}
_subject = [dic objectForKey:@"subject"];
_description = [dic objectForKey:@"description"];
_startDate = [dic objectForKey:@"start_date"];
_dueDate = [dic objectForKey:@"due_date"];
_createdOn = [dic objectForKey:@"created_on"];
_updatedOn = [dic objectForKey:@"updated_on"];
_doneRatio = [[dic objectForKey:@"done_ratio"] floatValue];
return self;
}
@end

View File

@ -0,0 +1,18 @@
//
// OZLModelPriority.h
// RedmineMobile
//
// Created by lizhijie on 7/15/13.
// Copyright (c) 2013 Lee Zhijie. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface OZLModelPriority : NSObject
@property(nonatomic) int index;
@property(nonatomic, strong) NSString* name;
-(id)initWithDictionary:(NSDictionary*)dic;
@end

View File

@ -0,0 +1,26 @@
//
// OZLModelPriority.m
// RedmineMobile
//
// Created by lizhijie on 7/15/13.
// Copyright (c) 2013 Lee Zhijie. All rights reserved.
//
#import "OZLModelPriority.h"
@implementation OZLModelPriority
-(id)initWithDictionary:(NSDictionary*)dic
{
self = [super init];
if (!self) {
return nil;
}
_index = [[dic objectForKey:@"id"] intValue];
_name = [dic objectForKey:@"name"];
return self;
}
@end

View File

@ -38,4 +38,5 @@
@property(nonatomic,strong) NSString* updatedOn;
-(id)initWithDictionary:(NSDictionary*)dic;
@end

View File

@ -0,0 +1,18 @@
//
// OZLModelStatus.h
// RedmineMobile
//
// Created by lizhijie on 7/15/13.
// Copyright (c) 2013 Lee Zhijie. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface OZLModelStatus : NSObject
@property(nonatomic) int index;
@property(nonatomic, strong) NSString* name;
-(id)initWithDictionary:(NSDictionary*)dic;
@end

View File

@ -0,0 +1,25 @@
//
// OZLModelStatus.m
// RedmineMobile
//
// Created by lizhijie on 7/15/13.
// Copyright (c) 2013 Lee Zhijie. All rights reserved.
//
#import "OZLModelStatus.h"
@implementation OZLModelStatus
-(id)initWithDictionary:(NSDictionary*)dic
{
self = [super init];
if (!self) {
return nil;
}
_index = [[dic objectForKey:@"id"] intValue];
_name = [dic objectForKey:@"name"];
return self;
}
@end

View File

@ -0,0 +1,18 @@
//
// OZLModelTracker.h
// RedmineMobile
//
// Created by lizhijie on 7/15/13.
// Copyright (c) 2013 Lee Zhijie. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface OZLModelTracker : NSObject
@property(nonatomic) int index;
@property(nonatomic, strong) NSString* name;
-(id)initWithDictionary:(NSDictionary*)dic;
@end

View File

@ -0,0 +1,25 @@
//
// OZLModelTracker.m
// RedmineMobile
//
// Created by lizhijie on 7/15/13.
// Copyright (c) 2013 Lee Zhijie. All rights reserved.
//
#import "OZLModelTracker.h"
@implementation OZLModelTracker
-(id)initWithDictionary:(NSDictionary*)dic
{
self = [super init];
if (!self) {
return nil;
}
_index = [[dic objectForKey:@"id"] intValue];
_name = [dic objectForKey:@"name"];
return self;
}
@end

View File

@ -0,0 +1,18 @@
//
// OZLModelUser.h
// RedmineMobile
//
// Created by lizhijie on 7/15/13.
// Copyright (c) 2013 Lee Zhijie. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface OZLModelUser : NSObject
@property(nonatomic) int index;
@property(nonatomic, strong) NSString* name;
-(id)initWithDictionary:(NSDictionary*)dic;
@end

View File

@ -0,0 +1,26 @@
//
// OZLModelUser.m
// RedmineMobile
//
// Created by lizhijie on 7/15/13.
// Copyright (c) 2013 Lee Zhijie. All rights reserved.
//
#import "OZLModelUser.h"
@implementation OZLModelUser
-(id)initWithDictionary:(NSDictionary*)dic
{
self = [super init];
if (!self) {
return nil;
}
_index = [[dic objectForKey:@"id"] intValue];
_name = [dic objectForKey:@"name"];
return self;
}
@end

View File

@ -28,6 +28,11 @@
#import <Foundation/Foundation.h>
#import "OZLModelProject.h"
#import "OZLModelIssue.h"
#import "OZLModelPriority.h"
#import "OZLModelStatus.h"
#import "OZLModelTracker.h"
#import "OZLModelUser.h"
@interface OZLNetwork : NSObject
@ -35,4 +40,8 @@
+(void)getProjectListWithParams:(NSDictionary*)params andBlock:(void (^)(NSArray *result, NSError *error))block;
+(void)getDetailForProject:(int)projectid withParams:(NSDictionary*)params andBlock:(void (^)(OZLModelProject *result, NSError *error))block;
// issue
+(void)getIssueListForProject:(int)projectid withParams:(NSDictionary*)params andBlock:(void (^)(NSArray *result, NSError *error))block;
+(void)getDetailFoIssue:(int)issueid withParams:(NSDictionary*)params andBlock:(void (^)(OZLModelIssue *result, NSError *error))block;
@end

View File

@ -30,7 +30,6 @@
#import "OZLNetworkBase.h"
#import "AFHTTPRequestOperation.h"
#import "JSONKit.h"
#import "OZLModelProject.h"
@implementation OZLNetwork
@ -86,4 +85,58 @@
}];
}
+(void)getIssueListForProject:(int)projectid withParams:(NSDictionary*)params andBlock:(void (^)(NSArray *result, NSError *error))block
{
NSString* path = [NSString stringWithFormat:@"/issues.json"];
NSMutableDictionary* dic = [[NSMutableDictionary alloc] initWithDictionary:params];
[dic setObject:[NSNumber numberWithInt:projectid] forKey:@"project_id"];
[[OZLNetworkBase sharedClient] getPath:path parameters:dic success:^(AFHTTPRequestOperation *operation, id responseObject) {
if (block) {
NSLog(@"the repsonse:%@",responseObject);
NSMutableArray* issues = [[NSMutableArray alloc] init];
NSArray* issuesDic = [responseObject objectForKey:@"issues"];
for (NSDictionary* p in issuesDic) {
[issues addObject:[[OZLModelIssue alloc] initWithDictionary:p]];
}
block(issues,nil);
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (block) {
block([NSArray array], error);
}
}];
}
+(void)getDetailFoIssue:(int)issueid withParams:(NSDictionary*)params andBlock:(void (^)(OZLModelIssue *result, NSError *error))block
{
NSString* path = [NSString stringWithFormat:@"/issues/%d.json",issueid];
[[OZLNetworkBase sharedClient] getPath:path parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
if (block) {
NSLog(@"the repsonse:%@",responseObject);
NSDictionary* projectDic = [responseObject objectForKey:@"issue"];
OZLModelIssue* issue = [[OZLModelIssue alloc] initWithDictionary:projectDic];
block(issue,nil);
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
if (block) {
block([NSArray array], error);
}
}];
}
@end

View File

@ -61,6 +61,10 @@
_HUD = [[MBProgressHUD alloc] initWithView:self.view];
[self.view addSubview:_HUD];
_HUD.labelText = @"Refreshing...";
UIBarButtonItem* accountBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemOrganize target:self action:@selector(showAccountView:)];
[self.navigationItem setLeftBarButtonItem:accountBtn];
}
-(void) viewWillAppear:(BOOL)animated

View File

@ -2,18 +2,19 @@
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1552</int>
<string key="IBDocument.SystemVersion">12E55</string>
<string key="IBDocument.SystemVersion">11G63</string>
<string key="IBDocument.InterfaceBuilderVersion">3084</string>
<string key="IBDocument.AppKitVersion">1187.39</string>
<string key="IBDocument.HIToolboxVersion">626.00</string>
<string key="IBDocument.AppKitVersion">1138.51</string>
<string key="IBDocument.HIToolboxVersion">569.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="NS.object.0">2083</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>IBProxyObject</string>
<string>IBUIButton</string>
<string>IBUIBarButtonItem</string>
<string>IBUITableView</string>
<string>IBUIToolbar</string>
<string>IBUIView</string>
</array>
<array key="IBDocument.PluginDependencies">
@ -36,48 +37,17 @@
<reference key="NSNextResponder"/>
<int key="NSvFlags">274</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUIButton" id="586838365">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{320, 44}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSNextKeyView" ref="505504489"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">Account</string>
<object class="NSColor" key="IBUIHighlightedTitleColor" id="152654569">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<object class="NSColor" key="IBUINormalTitleColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
</object>
<object class="NSColor" key="IBUINormalTitleShadowColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
<object class="IBUIFontDescription" key="IBUIFontDescription">
<int key="type">2</int>
<double key="pointSize">15</double>
</object>
<object class="NSFont" key="IBUIFont">
<string key="NSName">Helvetica-Bold</string>
<double key="NSSize">15</double>
<int key="NSfFlags">16</int>
</object>
</object>
<object class="IBUITableView" id="505504489">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">274</int>
<string key="NSFrame">{{0, 45}, {320, 503}}</string>
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<reference key="IBUIBackgroundColor" ref="152654569"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<bool key="IBUIClipsSubviews">YES</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<bool key="IBUIAlwaysBounceVertical">YES</bool>
@ -88,10 +58,30 @@
<float key="IBUISectionHeaderHeight">22</float>
<float key="IBUISectionFooterHeight">22</float>
</object>
<object class="IBUIToolbar" id="249106664">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">266</int>
<string key="NSFrame">{{0, 460}, {320, 44}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="IBUIOpaque">NO</bool>
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<array class="NSMutableArray" key="IBUIItems">
<object class="IBUIBarButtonItem" id="75098941">
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIStyle">1</int>
<reference key="IBUIToolbar" ref="249106664"/>
<int key="IBUISystemItemIdentifier">4</int>
</object>
</array>
</object>
</array>
<string key="NSFrame">{{0, 20}, {320, 548}}</string>
<string key="NSFrame">{{0, 64}, {320, 504}}</string>
<reference key="NSSuperview"/>
<reference key="NSNextKeyView" ref="586838365"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
@ -100,6 +90,9 @@
</object>
</object>
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
<object class="IBUISimulatedNavigationBarMetrics" key="IBUISimulatedTopBarMetrics">
<bool key="IBUIPrompted">NO</bool>
</object>
<object class="IBUIScreenMetrics" key="IBUISimulatedDestinationMetrics">
<string key="IBUISimulatedSizeMetricsClass">IBUIScreenMetrics</string>
<object class="NSMutableDictionary" key="IBUINormalizedOrientationToSizeMap">
@ -138,15 +131,6 @@
</object>
<int key="connectionID">20</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchEventConnection" key="connection">
<string key="label">showAccountView:</string>
<reference key="source" ref="586838365"/>
<reference key="destination" ref="372490531"/>
<int key="IBEventType">7</int>
</object>
<int key="connectionID">17</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
@ -160,8 +144,8 @@
<int key="objectID">1</int>
<reference key="object" ref="191373211"/>
<array class="NSMutableArray" key="children">
<reference ref="586838365"/>
<reference ref="505504489"/>
<reference ref="249106664"/>
</array>
<reference key="parent" ref="0"/>
</object>
@ -176,18 +160,25 @@
<reference key="object" ref="975951072"/>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4</int>
<reference key="object" ref="586838365"/>
<array class="NSMutableArray" key="children"/>
<reference key="parent" ref="191373211"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">9</int>
<reference key="object" ref="505504489"/>
<array class="NSMutableArray" key="children"/>
<reference key="parent" ref="191373211"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">21</int>
<reference key="object" ref="249106664"/>
<array class="NSMutableArray" key="children">
<reference ref="75098941"/>
</array>
<reference key="parent" ref="191373211"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">22</int>
<reference key="object" ref="75098941"/>
<reference key="parent" ref="249106664"/>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
@ -196,16 +187,50 @@
<string key="-2.CustomClassName">UIResponder</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="21.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="22.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string key="9.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">20</int>
<int key="maxID">22</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">OZLProjectListViewController</string>
<string key="superclassName">UIViewController</string>
<object class="NSMutableDictionary" key="actions">
<string key="NS.key.0">showAccountView:</string>
<string key="NS.object.0">id</string>
</object>
<object class="NSMutableDictionary" key="actionInfosByName">
<string key="NS.key.0">showAccountView:</string>
<object class="IBActionInfo" key="NS.object.0">
<string key="name">showAccountView:</string>
<string key="candidateClassName">id</string>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">projectsTableview</string>
<string key="NS.object.0">UITableView</string>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<string key="NS.key.0">projectsTableview</string>
<object class="IBToOneOutletInfo" key="NS.object.0">
<string key="name">projectsTableview</string>
<string key="candidateClassName">UITableView</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/OZLProjectListViewController.h</string>
</object>
</object>
</array>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes"/>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>

View File

@ -30,5 +30,6 @@
#import "OZLModelProject.h"
@interface OZLProjectViewController : UIViewController
@property (weak, nonatomic) IBOutlet UITableView *issuesTableview;
@property (nonatomic,strong) OZLModelProject* projectData;
@end

View File

@ -35,6 +35,8 @@
@interface OZLProjectViewController () {
NSArray* _issuesList;
float _sideviewOffset;
MBProgressHUD * _HUD;
}
@ -80,7 +82,14 @@
_projectData = result;
[self.navigationItem setTitle:_projectData.name];
[_HUD hide:YES];
// load issues
[OZLNetwork getIssueListForProject:_projectData.index withParams:nil andBlock:^(NSArray *result, NSError *error) {
_issuesList = result;
[_issuesTableview reloadData];
[_HUD hide:YES];
}];
}];
}
@ -131,4 +140,93 @@
// Dispose of any resources that can be recreated.
}
- (void)viewDidUnload {
[self setIssuesTableview:nil];
[super viewDidUnload];
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return [_issuesList count];
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 44;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString* cellidentifier = [NSString stringWithFormat:@"issue_cell_id"];
UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:cellidentifier];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellidentifier];
}
OZLModelIssue* issue = [_issuesList objectAtIndex:indexPath.row];
cell.textLabel.text = issue.subject;
cell.detailTextLabel.text = issue.description;
return cell;
}
/*
// Override to support conditional editing of the table view.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
// Return NO if you do not want the specified item to be editable.
return YES;
}
*/
/*
// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
else if (editingStyle == UITableViewCellEditingStyleInsert) {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
}
}
*/
/*
// Override to support rearranging the table view.
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
{
}
*/
/*
// Override to support conditional rearranging of the table view.
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
// Return NO if you do not want the item to be re-orderable.
return YES;
}
*/
#pragma mark - Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// [self showProjectView:[_issuesList objectAtIndex:indexPath.row]];
}
@end

View File

@ -37,11 +37,12 @@
<reference key="NSNextResponder"/>
<int key="NSvFlags">274</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="IBUITableView" id="324142915">
<object class="IBUITableView" id="593675336">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSNextKeyView" ref="366696023"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
@ -57,7 +58,7 @@
<float key="IBUISectionHeaderHeight">22</float>
<float key="IBUISectionFooterHeight">22</float>
</object>
<object class="IBUIToolbar" id="768411385">
<object class="IBUIToolbar" id="366696023">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">266</int>
<string key="NSFrame">{{0, 460}, {320, 44}}</string>
@ -67,17 +68,18 @@
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<array class="NSMutableArray" key="IBUIItems">
<object class="IBUIBarButtonItem" id="929895283">
<string key="IBUITitle">Item</string>
<object class="IBUIBarButtonItem" id="512025889">
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIStyle">1</int>
<reference key="IBUIToolbar" ref="768411385"/>
<reference key="IBUIToolbar" ref="366696023"/>
<int key="IBUISystemItemIdentifier">4</int>
</object>
</array>
</object>
</array>
<string key="NSFrame">{{0, 64}, {320, 504}}</string>
<reference key="NSSuperview"/>
<reference key="NSNextKeyView" ref="593675336"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
@ -119,6 +121,30 @@
</object>
<int key="connectionID">3</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">issuesTableview</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="593675336"/>
</object>
<int key="connectionID">9</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">dataSource</string>
<reference key="source" ref="593675336"/>
<reference key="destination" ref="372490531"/>
</object>
<int key="connectionID">10</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">delegate</string>
<reference key="source" ref="593675336"/>
<reference key="destination" ref="372490531"/>
</object>
<int key="connectionID">11</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
@ -132,8 +158,8 @@
<int key="objectID">1</int>
<reference key="object" ref="191373211"/>
<array class="NSMutableArray" key="children">
<reference ref="768411385"/>
<reference ref="324142915"/>
<reference ref="366696023"/>
<reference ref="593675336"/>
</array>
<reference key="parent" ref="0"/>
</object>
@ -150,20 +176,20 @@
</object>
<object class="IBObjectRecord">
<int key="objectID">6</int>
<reference key="object" ref="768411385"/>
<reference key="object" ref="366696023"/>
<array class="NSMutableArray" key="children">
<reference ref="929895283"/>
<reference ref="512025889"/>
</array>
<reference key="parent" ref="191373211"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">7</int>
<reference key="object" ref="929895283"/>
<reference key="parent" ref="768411385"/>
<reference key="object" ref="512025889"/>
<reference key="parent" ref="366696023"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">8</int>
<reference key="object" ref="324142915"/>
<reference key="object" ref="593675336"/>
<reference key="parent" ref="191373211"/>
</object>
</array>
@ -182,7 +208,7 @@
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">8</int>
<int key="maxID">11</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes"/>
<int key="IBDocument.localizationMode">0</int>